diff --git a/BWP.B3_YunKen/TypeIoc/SaleOutStoreSetFreightPriceIOC.cs b/BWP.B3_YunKen/TypeIoc/SaleOutStoreSetFreightPriceIOC.cs index cb4a48c..89484d1 100644 --- a/BWP.B3_YunKen/TypeIoc/SaleOutStoreSetFreightPriceIOC.cs +++ b/BWP.B3_YunKen/TypeIoc/SaleOutStoreSetFreightPriceIOC.cs @@ -23,20 +23,24 @@ namespace BWP.B3_YunKen.TypeIoc public void Invoke(CustomerAccept entity, SaleOutStore dmo, System.Collections.Generic.IEnumerable 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; } } }