Hi Rob Aah. Got it. I tried to fix it by doing the below code. set <str,str,str> PerVol_Based_Rate_NoZeroes;
num PerVol_Based_Rate {PerVol_Based_Rate_NoZeroes};
read data CASUSER.BOXRATE (where=(RateBasis="PerVolUOM" and Ratetype='Linehaul' and Rate>0)) into PerVol_Based_Rate_NoZeroes=[ORG DES BOX] PerVol_Based_Rate=Rate;
impvar PerVol_Based_Costs = sum {i in ISN, b in BOX: <Org_ISN[i],Des_ISN[i],b> in PerVol_Based_Rate_NoZeroes}
PerVol_Based_Rate[Org_ISN[i],Des_ISN[i],b] * Vol_ISN[i]*BoxesNeeded[i,b];
Min TotalCost = PerBox_Based_Costs + PerVol_Based_Costs; Basically, how I want the model to calculate cost is like this : - when the BOX type is "LCL", there is no BOX based charge. It is only a volume based charge. However, I am thinking LCL like a physical box with weight and volume capacities. So, I calculate the volume based costs as below. PerVol_Based_Rate[Org_ISN[i],Des_ISN[i],b] * Vol_ISN[i]*BoxesNeeded[i,b]; But I realize that this may solve removing LCL, this is not the correct representation either, ie. multiplying by BoxesNeeded . I did a test for a particular shipment by changing its input CBM and Wt and the rate as below. data CASUSER.InputData_AssetMix;
Set CASUSER.InputData_AssetMix;
If ISN='SHA_SEA_10' then Volume=30;
If ISN='SHA_SEA_10' then Weight=100;
Run;
data CASUSER.BOXRATE;
Set CASUSER.BOXRATE;
If Org='SHA' and
Des='SEA' and
Box='LCL' then Rate=31;
Run; these are the specs of this shipment: SHA_SEA_10: that has a volume of 30 and wt of 100 and a rate of this: Org Des Box Ratetype Rate RateBasis SHA SEA LCL Linehaul 31 PerVolUOM SHA SEA 20F Linehaul 880 PerBox SHA SEA 40F Linehaul 1100 PerBox SHA SEA 40H Linehaul 1210 PerBox SHA SEA 45F Linehaul 1320 PerBox The model says 1X40F whereas that is actually more expensive ($1,100). I can ship it via 1x20F and 1xLCL for a total cost of ($880+ (1x31)=$911 . So can you please tell how to fix this?
... View more