Browse Source

需求单No.137971

master
wugang 8 years ago
parent
commit
7cb6e5f9fb
4 changed files with 78 additions and 2 deletions
  1. +1
    -1
      BWP.B3_YunKen/BLActions/OrderFreightData.cs
  2. +3
    -1
      BWP.B3_YunKen/BWP.B3_YunKen.csproj
  3. +32
    -0
      BWP.B3_YunKen/TypeIoc/SaleOutStoreManyBillsSetFreightPriceIOC.cs
  4. +42
    -0
      BWP.B3_YunKen/TypeIoc/SaleOutStoreSetFreightPriceIOC.cs

BWP.B3_YunKen/BLActions/SaleOutStoreFreightData.cs → BWP.B3_YunKen/BLActions/OrderFreightData.cs View File

@ -16,7 +16,7 @@ using BWP.B3Frameworks.BO.MoneyTemplate;
namespace BWP.B3_YunKen.BLActions
{
public class SaleOutStoreFreightData : IBLMethodAction
public class OrderFreightData : IBLMethodAction
{
public string Description
{

+ 3
- 1
BWP.B3_YunKen/BWP.B3_YunKen.csproj View File

@ -67,7 +67,7 @@
<Compile Include="BLActions\SaleForecastBLIsSetWrappageActions.cs" />
<Compile Include="BLActions\SaleOutStoreBLIsSetWrappageActions.c.cs" />
<Compile Include="BLActions\CustomerDealerBLAction.cs" />
<Compile Include="BLActions\SaleOutStoreFreightData.cs" />
<Compile Include="BLActions\OrderFreightData.cs" />
<Compile Include="BL\Bill\Goods_PackageBL.cs" />
<Compile Include="BO\Bill\Goods_Package.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
@ -75,6 +75,8 @@
<Compile Include="TimerTask\NullifyCustomerTask.cs" />
<Compile Include="TypeIoc\DriverBeforeSaveTypeIoc.cs" />
<Compile Include="TypeIoc\SaleOutStoreFreightBearTypeIoc.cs" />
<Compile Include="TypeIoc\SaleOutStoreManyBillsSetFreightPriceIOC.cs" />
<Compile Include="TypeIoc\SaleOutStoreSetFreightPriceIOC.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="BL\BaseInfo\" />


+ 32
- 0
BWP.B3_YunKen/TypeIoc/SaleOutStoreManyBillsSetFreightPriceIOC.cs View File

@ -0,0 +1,32 @@
using BWP.B3Sale.BL;
using BWP.B3Sale.BO;
using BWP.B3Frameworks;
using System.Linq;
using BWP.B3Sale.Utils;
using Forks.Utils;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.DomainObjects2;
using System;
namespace BWP.B3_YunKen.TypeIoc
{
[TypeIOC(typeof(SaleOutStoreBL), typeof(SaleOutStoreBL.IManyBillsSetFreightPrice))]
public class SaleOutStoreManyBillsSetFreightPriceIOC : SaleOutStoreBL.IManyBillsSetFreightPrice
{
public void Invoke(CustomerAccept entity, IGrouping<long?, SaleOutStore> @group, IDmoSession session)
{
var dmo = @group.FirstOrDefault();
var fGroups = @group.GroupBy(x => x.FreightPayment);
if (fGroups.Count() > 1)
throw new ApplicationException("购货客户为【" + dmo.Customer_Name + "】的出库单,计价方式不一致");
var pGroups = @group.GroupBy(x => x.FreightUnitPrice);
if (pGroups.Count() > 1)
throw new ApplicationException("购货客户为【" + dmo.Customer_Name + "】的出库单,运费单价不一致");
entity.FreightPrice = @group.Sum(x => (x.FreightPrice ?? 0).Value);
var result = @group.Sum(x => (x.AllUnitNum ?? 0).Value);
if(result!=0)
entity.FreightUnitPrice = entity.FreightPrice / result;
entity.FreightPayment = dmo.FreightPayment;
}
}
}

+ 42
- 0
BWP.B3_YunKen/TypeIoc/SaleOutStoreSetFreightPriceIOC.cs View File

@ -0,0 +1,42 @@
using BWP.B3Sale.BL;
using BWP.B3Sale.BO;
using BWP.B3Frameworks;
using System.Linq;
using BWP.B3Sale.Utils;
using Forks.Utils;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.DomainObjects2;
namespace BWP.B3_YunKen.TypeIoc
{
[TypeIOC(typeof(SaleOutStoreBL), typeof(SaleOutStoreBL.ISetFreightPrice))]
public class SaleOutStoreSetFreightPriceIOC : SaleOutStoreBL.ISetFreightPrice
{
private Money<decimal> GetAlreadyAcceptUnitNum(SaleOutStore dmo,IDmoSession session)
{
var dom = new DQueryDom(new JoinAlias(typeof(SaleOutStore_DetailToCustomerAcceptNumber)));
dom.Columns.Add(DQSelectColumn.Sum("AlreadyAcceptUnitNum"));
dom.Where.Conditions.Add(DQCondition.EQ("SaleOutStore_ID", dmo.ID));
var alreadyUnitNum = ((Money<decimal>?)session.ExecuteScalar(dom)) ?? 0;
return alreadyUnitNum;
}
public void Invoke(CustomerAccept entity, SaleOutStore dmo, System.Collections.Generic.IEnumerable<SaleOutStore_Detail> details, IDmoSession session)
{
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);
} else {
entity.FreightPrice = anyFre;
}
}
entity.FreightUnitPrice = dmo.FreightUnitPrice;
entity.FreightPayment = dmo.FreightPayment;
}
}
}

Loading…
Cancel
Save