|
|
|
@ -23,20 +23,24 @@ namespace BWP.B3_YunKen.TypeIoc |
|
|
|
|
|
|
|
public void Invoke(CustomerAccept entity, SaleOutStore dmo, System.Collections.Generic.IEnumerable<SaleOutStore_Detail> details, IDmoSession session) |
|
|
|
{ |
|
|
|
entity.FreightPayment = dmo.FreightPayment; |
|
|
|
var anyNum = details.Sum(x => (x.UnitNum ?? 0).Value); |
|
|
|
var anyFre = dmo.FreightUnitPrice * anyNum; |
|
|
|
if (entity.FreightPayment == 运费支付方式.计重) { |
|
|
|
entity.FreightPrice = anyFre; |
|
|
|
} else if (entity.FreightPayment == 运费支付方式.包车) { |
|
|
|
var alreadyUnitNum = GetAlreadyAcceptUnitNum(dmo,session); |
|
|
|
if ((alreadyUnitNum + anyNum) >= dmo.AllUnitNum) { |
|
|
|
entity.FreightPrice = dmo.FreightPrice - (anyFre ?? 0); |
|
|
|
var alreadyUnitNum = GetAlreadyAcceptUnitNum(dmo, session); |
|
|
|
if (alreadyUnitNum > 0) { |
|
|
|
if ((alreadyUnitNum + anyNum) >= dmo.AllUnitNum) { |
|
|
|
entity.FreightPrice = dmo.FreightPrice - ((dmo.FreightUnitPrice??0).Value * alreadyUnitNum); |
|
|
|
} |
|
|
|
} else if (anyNum >= dmo.AllUnitNum) { |
|
|
|
entity.FreightPrice = dmo.FreightPrice; |
|
|
|
} else { |
|
|
|
entity.FreightPrice = anyFre; |
|
|
|
} |
|
|
|
} |
|
|
|
entity.FreightUnitPrice = dmo.FreightUnitPrice; |
|
|
|
entity.FreightPayment = dmo.FreightPayment; |
|
|
|
} |
|
|
|
} |
|
|
|
} |