From 4169d8967f6db9dd80e7d606f71b051da875fdb9 Mon Sep 17 00:00:00 2001 From: yibo <361071264@qq.com> Date: Thu, 19 Apr 2018 09:38:10 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9C=80=E6=B1=82=E5=8D=95No.139589=20?= =?UTF-8?q?=E7=BB=93=E7=AE=97=E5=8D=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Overlays/StatPayEdit_Ext.cs | 9 ++-- B3QingDaoWanFu/TypeIOCs/StatPayBLTypeIoc.cs | 52 +++++++++++++++++++ 2 files changed, 58 insertions(+), 3 deletions(-) diff --git a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Overlays/StatPayEdit_Ext.cs b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Overlays/StatPayEdit_Ext.cs index 1b21e71..e1eea3c 100644 --- a/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Overlays/StatPayEdit_Ext.cs +++ b/B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Overlays/StatPayEdit_Ext.cs @@ -2,12 +2,14 @@ using BWP.Web.Pages.B3ButcherManage.Bills.StatPay_; using BWP.Web.WebControls; using Forks.EnterpriseServices.DataForm; +using Forks.EnterpriseServices.DomainObjects2.DQuery; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.UI.WebControls; using TSingSoft.WebControls2; +using TSingSoft.WebPluginFramework; namespace BWP.Web.Pages.B3QingDaoWanFu.Overlays { @@ -29,7 +31,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Overlays editor.CanDeleteFunc = detail => false; editor.IsEditableFunc = (field, detail) => { - return CanSave && field.Name == "Money"; + return CanSave && field.Name == "ExtMoney"; }; _farmerGrid = panel.EAdd(new DFEditGrid(editor) { Width = Unit.Percentage(100), ShowLineNo = true }); @@ -39,8 +41,8 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Overlays _farmerGrid.Columns.Add(new DFEditGridColumn("Farmer_Address")); _farmerGrid.Columns.Add(new DFEditGridColumn("Farmer_Tel")); _farmerGrid.Columns.Add(new DFEditGridColumn("Number")); - _farmerGrid.Columns.Add(new DFEditGridColumn("Weight")); - _farmerGrid.Columns.Add(new DFEditGridColumn("Money")); + _farmerGrid.Columns.Add(new DFEditGridColumn("ExeWeight")); + _farmerGrid.Columns.Add(new DFEditGridColumn("ExtMoney")); var section4 = mPageLayoutManager.AddSection("detailColumns4", "养殖户信息"); section4.ApplyLayout(_farmerGrid, mPageLayoutManager, DFInfo.Get(typeof(Weigh_FarmerDetail))); @@ -56,6 +58,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Overlays public override void AppToUI() { base.AppToUI(); + mDFContainer.MakeReadonly("ShackMoney"); _farmerGrid.DataBind(); } } diff --git a/B3QingDaoWanFu/TypeIOCs/StatPayBLTypeIoc.cs b/B3QingDaoWanFu/TypeIOCs/StatPayBLTypeIoc.cs index 9fbdbff..504659d 100644 --- a/B3QingDaoWanFu/TypeIOCs/StatPayBLTypeIoc.cs +++ b/B3QingDaoWanFu/TypeIOCs/StatPayBLTypeIoc.cs @@ -28,6 +28,56 @@ namespace BWP.B3QingDaoWanFu.TypeIOCs // } //} + [TypeIOC(typeof(StatPayBL), typeof(StatPayBL.BaseBLIOCs.AfterInsert))] + public class StatPayAfterInsertBLTypeIoc : StatPayBL.BaseBLIOCs.AfterInsert + { + public void Invoke(IDmoContext context, StatPay dmo) + { + if (dmo.Weigh_ID == null) + return; + var details = GetFarmerDetail(context.Session, dmo.Weigh_ID.Value); + var total = details.Sum(x => x.Item2 ?? 0); + foreach (var detail in details) + { + var arr = new List>(); + if (total != 0) + { + var v = dmo.RealWeight * detail.Item2 / total; + if (v.HasValue) + { + v = decimal.Round(v.Value, 2); + arr.Add(new Tuple("ExeWeight", v)); + } + } + if (detail.Item3 != null) + { + arr.Add(new Tuple("ExtMoney", detail.Item3)); + } + if (arr.Any()) + UpdateProperty(detail.Item1, context.Session, arr.ToArray()); + } + } + + List> GetFarmerDetail(IDmoSession session, long weightID) + { + var query = new DQueryDom(new JoinAlias(typeof(Weigh_FarmerDetail))); + query.Where.Conditions.Add(DQCondition.EQ("Weigh_ID", weightID)); + query.Columns.Add(DQSelectColumn.Field("ID")); + query.Columns.Add(DQSelectColumn.Field("Number")); + query.Columns.Add(DQSelectColumn.Field("Money")); + return query.EExecuteList(session); + } + + void UpdateProperty(long id, IDmoSession session, params Tuple[] par) + { + var update = new DQUpdateDom(typeof(Weigh_FarmerDetail)); + update.Where.Conditions.Add(DQCondition.EQ("ID", id)); + foreach (var item in par) + update.Columns.Add(new DQUpdateColumn(item.Item1, item.Item2)); + session.ExecuteNonQuery(update); + } + } + [TypeIOC(typeof(StatPayBL), typeof(StatPayBL.BaseBLIOCs.AfterSave))] @@ -50,6 +100,8 @@ namespace BWP.B3QingDaoWanFu.TypeIOCs if (dmo.PurchaseType_Name == "业务") { + if (dmo.FarmerDetails.Any()) + dmo.ShackMoney = dmo.FarmerDetails.Sum(x => x.ExtMoney ?? 0); dmo.ActualMoney = (dmo.ShackMoney.EToDecimal() ?? 0); Money? we = null; if (dmo.ShackWeight != 0)