From 7cb6e5f9fb8bdafbad005a9cf85ebcba51a13016 Mon Sep 17 00:00:00 2001
From: wugang <425674808@qq.com>
Date: Fri, 29 Dec 2017 16:27:12 +0800
Subject: [PATCH] =?UTF-8?q?=E9=9C=80=E6=B1=82=E5=8D=95No.137971?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...toreFreightData.cs => OrderFreightData.cs} | 2 +-
BWP.B3_YunKen/BWP.B3_YunKen.csproj | 4 +-
...SaleOutStoreManyBillsSetFreightPriceIOC.cs | 32 ++++++++++++++
.../TypeIoc/SaleOutStoreSetFreightPriceIOC.cs | 42 +++++++++++++++++++
4 files changed, 78 insertions(+), 2 deletions(-)
rename BWP.B3_YunKen/BLActions/{SaleOutStoreFreightData.cs => OrderFreightData.cs} (96%)
create mode 100644 BWP.B3_YunKen/TypeIoc/SaleOutStoreManyBillsSetFreightPriceIOC.cs
create mode 100644 BWP.B3_YunKen/TypeIoc/SaleOutStoreSetFreightPriceIOC.cs
diff --git a/BWP.B3_YunKen/BLActions/SaleOutStoreFreightData.cs b/BWP.B3_YunKen/BLActions/OrderFreightData.cs
similarity index 96%
rename from BWP.B3_YunKen/BLActions/SaleOutStoreFreightData.cs
rename to BWP.B3_YunKen/BLActions/OrderFreightData.cs
index ad007cf..4b358db 100644
--- a/BWP.B3_YunKen/BLActions/SaleOutStoreFreightData.cs
+++ b/BWP.B3_YunKen/BLActions/OrderFreightData.cs
@@ -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
{
diff --git a/BWP.B3_YunKen/BWP.B3_YunKen.csproj b/BWP.B3_YunKen/BWP.B3_YunKen.csproj
index 12988d6..a8b9fd7 100644
--- a/BWP.B3_YunKen/BWP.B3_YunKen.csproj
+++ b/BWP.B3_YunKen/BWP.B3_YunKen.csproj
@@ -67,7 +67,7 @@
-
+
@@ -75,6 +75,8 @@
+
+
diff --git a/BWP.B3_YunKen/TypeIoc/SaleOutStoreManyBillsSetFreightPriceIOC.cs b/BWP.B3_YunKen/TypeIoc/SaleOutStoreManyBillsSetFreightPriceIOC.cs
new file mode 100644
index 0000000..9c21e0c
--- /dev/null
+++ b/BWP.B3_YunKen/TypeIoc/SaleOutStoreManyBillsSetFreightPriceIOC.cs
@@ -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 @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;
+ }
+ }
+}
diff --git a/BWP.B3_YunKen/TypeIoc/SaleOutStoreSetFreightPriceIOC.cs b/BWP.B3_YunKen/TypeIoc/SaleOutStoreSetFreightPriceIOC.cs
new file mode 100644
index 0000000..cb4a48c
--- /dev/null
+++ b/BWP.B3_YunKen/TypeIoc/SaleOutStoreSetFreightPriceIOC.cs
@@ -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 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?)session.ExecuteScalar(dom)) ?? 0;
+ return alreadyUnitNum;
+ }
+
+ public void Invoke(CustomerAccept entity, SaleOutStore dmo, System.Collections.Generic.IEnumerable 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;
+ }
+ }
+}