Code snippet

    for (int i = 0; i < TerminalPlan.Count; i++)
    {
	if (TerminalPlan[i].MeatinessMax >= Carcass.Meatiness && TerminalPlan[i].MeatinessMin <= Carcass.Meatiness)
	{
	    if (TerminalPlan[i].WeightMax >= Carcass.Weight && TerminalPlan[i].WeightMin <= Carcass.Weight)
	    {
		if (TerminalPlan[i].MuscleMax >= Carcass.Muscle && TerminalPlan[i].MuscleMin <= Carcass.Muscle)
		{
		    if (TerminalPlan[i].FatMax >= Carcass.Lard && TerminalPlan[i].FatMin <= Carcass.Lard)
		    {
			if (String.Equals(TerminalPlan[i].Country, Storage.GetBatchCountry(Batch()))
			    || (String.IsNullOrEmpty(TerminalPlan[i].Country)))
			{
			    if ((TerminalPlan[i].Classification == classification) || 
				(String.IsNullOrEmpty(TerminalPlan[i].Classification)))
			    {
				if (TerminalPlan[i].HeadsLimit > TerminalPlan[i].HeadsTotal)
				{
				    if (TerminalPlan[i].WeightLimit > TerminalPlan[i].WeightTotal)
				    {
					string rails = TerminalPlan[i].Rails;

					int counter = 1;
					for (int j = 0; j < rails.Length; j++)
					{
					    if (rails[j] == ',') counter++;
					}

					for (int j = 0; j < counter; j++)
					{
					    int rn = Core.Basic.StringToInt(GetItemFromRails(rails, j));

					    for (int r = 0; r < Rails.Count; r++)
					    {
						if ((rn == Rails[r].Rail) && (!Rails[r].Lock) && (!Rails[r].Block))
						{
						    railnumber = rn;
						    railitemno = r;
						    plannumber = i;
						}
					    } // for r
					} // for j
				    } // weight limit
				} // Heads limit
			    } // Class
			} // Country
		    } // fat
		} // Muscle
	    } // Weight
	} // Meatiness
    } // for i