diff --git a/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/Butcher_/ButcherEdit.cs b/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/Butcher_/ButcherEdit.cs index 5823e62..f09c073 100644 --- a/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/Butcher_/ButcherEdit.cs +++ b/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/Butcher_/ButcherEdit.cs @@ -15,6 +15,8 @@ using System.Web.UI; using System.Web.UI.WebControls; using TSingSoft.WebControls2; using TSingSoft.WebPluginFramework; +using Forks.Utils.Collections; +using BWP.B3SheepButcherManage; namespace BWP.Web.Pages.B3SheepButcherManage.Bills.Butcher_ { @@ -79,8 +81,20 @@ namespace BWP.Web.Pages.B3SheepButcherManage.Bills.Butcher_ _detailGrid.Columns.Add(new DFEditGridColumn("Sequence")); _detailGrid.Columns.Add(new DFEditGridColumn("PhaseCode")); _detailGrid.Columns.Add(new DFEditGridColumn("WeightBill_ID")); - _detailGrid.Columns.Add(new DFEditGridColumn("LiveVarieties_Name")); - _detailGrid.Columns.Add(new DFEditGridColumn("Livestock_Name")); + _detailGrid.Columns.EAdd(new DFEditGridColumn("LiveVarieties_Name")).InitEditControl += (sender, e) => + { + e.Control.DataKind = B3ProduceUnitedInfos.B3ProduceUnitedInfosDataSources.活体品种; + e.Control.DFDisplayField = "LiveVarieties_Name"; + e.Control.Width = Unit.Pixel(150); + e.Control.EnableInputArgument = true; + }; + _detailGrid.Columns.EAdd(new DFEditGridColumn("Livestock_ID")).InitEditControl += (sender, e) => + { + e.Control.EnableInputArgument = true; + e.Control.DataKind = B3SheepButcherManageConsts.DataSources.活体级别; + e.Control.DFDisplayField = "Livestock_Name"; + e.Control.Width = 180; + }; // 重量 var weight = new DFEditGridColumn("Weight"); weight.Align = AlignMode.Center; diff --git a/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/FixedPrice_/FixedPriceEdit.cs b/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/FixedPrice_/FixedPriceEdit.cs index aa18e9a..5cb9c41 100644 --- a/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/FixedPrice_/FixedPriceEdit.cs +++ b/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/FixedPrice_/FixedPriceEdit.cs @@ -18,6 +18,8 @@ using System.Web.UI.WebControls; using TSingSoft.WebControls2; using TSingSoft.WebPluginFramework.Controls; using TSingSoft.WebPluginFramework.Exports; +using Forks.Utils.Collections; +using BWP.B3ProduceUnitedInfos.NamedValueTemplate; namespace BWP.Web.Pages.B3SheepButcherManage.Bills.FixedPrice_ { @@ -142,7 +144,11 @@ namespace BWP.Web.Pages.B3SheepButcherManage.Bills.FixedPrice_ _detailGrid.Columns.Add(new DFEditGridColumn("ValuationArea_ID")); - _detailGrid.Columns.Add(new DFEditGridColumn("LiveVarieties_ID")); + _detailGrid.Columns.EAdd(new DFEditGridColumn("LiveVarieties_ID")).InitEditControl += (sender, e) => { + e.Control.DFDisplayField = "LiveVarieties_Name"; + e.Control.CodeArgument = 生物资产属性.羊.Value.ToString(); + e.Control.Width = Unit.Pixel(160); + }; _detailGrid.Columns.Add(new DFEditGridColumn("Livestock_ID")); _detailGrid.Columns.Add(new DFEditGridColumn("OriginalPrice")); _detailGrid.Columns.Add(new DFEditGridColumn("Price")); diff --git a/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/WeightBill_/WeightBillEdit.cs b/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/WeightBill_/WeightBillEdit.cs index f0b32e7..9939166 100644 --- a/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/WeightBill_/WeightBillEdit.cs +++ b/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/WeightBill_/WeightBillEdit.cs @@ -176,6 +176,7 @@ __DFContainer.setValue('Supplier_Card_ID',''); e.Control.DFDisplayField = "LiveVarieties_Name"; e.Control.Width = Unit.Pixel(150); e.Control.EnableInputArgument = true; + e.Control.CodeArgument = 生物资产属性.羊.Value.ToString(); }; _weightGrid.Columns.EAdd(new DFEditGridColumn("Number")).InitEditControl += (sender, e) => { @@ -268,15 +269,16 @@ __DFContainer.setValue('Supplier_Card_ID',''); _abnormalGrid.Columns.EAdd(new DFEditGridColumn("RewardItem_ID")).InitEditControl += (sender, e) => { e.Control.DataKind = B3CowButcherManageConsts.DataSources.奖罚项目; - e.Control.OnBeforeDrop = "this.codeArgument=dfContainer.getValue('RewardItem_ID');"; e.Control.DFDisplayField = "RewardItem_Name"; e.Control.Width = Unit.Pixel(150); }; - _abnormalGrid.Columns.EAdd(new DFEditGridColumn("Abnormal_Money")).InitEditControl += (sender, e) => + _abnormalGrid.Columns.EAdd(new DFEditGridColumn("Number")).InitEditControl += (sender, e) => { e.Control.Style["width"] = "160px"; }; - _abnormalGrid.PreferWidthGridSet = new Dictionary { { "序号", Unit.Pixel(80) }, { "奖罚项目", Unit.Percentage(45) }, { "金额", Unit.Percentage(45) } }; + _abnormalGrid.Columns.Add(new DFEditGridColumn("Price")); + _abnormalGrid.Columns.Add(new DFEditGridColumn("Abnormal_Money")); + _abnormalGrid.PreferWidthGridSet = new Dictionary { { "序号", Unit.Pixel(80) }, { "奖罚项目", Unit.Percentage(20) }, { "头数", Unit.Percentage(20) }, { "单价", Unit.Percentage(20) }, { "金额", Unit.Percentage(20) } }; var section3 = mPageLayoutManager.AddSection("detailColumns2", "明细"); section3.ApplyLayout(_abnormalGrid, mPageLayoutManager, DFInfo.Get(typeof(WeightBill_AbnormalRecording))); titlePanel.SetPageLayoutSetting(mPageLayoutManager, section3.Name); diff --git a/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Reports/WeightBillAnalyse_/WeightBillAbnormalAnalyse.cs b/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Reports/WeightBillAnalyse_/WeightBillAbnormalAnalyse.cs index 9394393..0fe136a 100644 --- a/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Reports/WeightBillAnalyse_/WeightBillAbnormalAnalyse.cs +++ b/B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Reports/WeightBillAnalyse_/WeightBillAbnormalAnalyse.cs @@ -71,6 +71,8 @@ namespace BWP.Web.Pages.B3SheepButcherManage.Reports.WeightBillAnalyse_ mDisplayHelper.AddOptionItem("收购重量", "bill", "BuyWeigh1", false); mDisplayHelper.AddOptionItem("奖罚项目", "detail", "RewardItem_Name", false); + mDisplayHelper.AddOptionItem("头数", "detail", "Number", false, true); + mDisplayHelper.AddOptionItem("单价", "detail", "Price", false); mDisplayHelper.AddOptionItem("扣罚金额", "detail", "Abnormal_Money", false, true); AddQueryOption("选项", mDisplayHelper.GetAllDisplayNames(), mDisplayHelper.GetDefaultSelelectedDisplayNames()); diff --git a/B3SheepButcherManage/BL/Bill/ButcherBL/ButcherBL.cs b/B3SheepButcherManage/BL/Bill/ButcherBL/ButcherBL.cs index 516348d..96c2a57 100644 --- a/B3SheepButcherManage/BL/Bill/ButcherBL/ButcherBL.cs +++ b/B3SheepButcherManage/BL/Bill/ButcherBL/ButcherBL.cs @@ -89,6 +89,7 @@ namespace BWP.B3SheepButcherManage.BL if (Session.ExecuteScalar(dom) != null) throw new Exception("你要删除的屠宰单明细后已经有重量录入"); + var needUpdateIds = GetNeedUpdateWeightDetailIDs(butcherID, startID, endID); //删除屠宰单明细 var delDom = new DQDeleteDom(typeof(Butcher_Detail)); delDom.Where.Conditions.Add(DQCondition.EQ("Butcher_ID", butcherID)); @@ -96,9 +97,27 @@ namespace BWP.B3SheepButcherManage.BL delDom.Where.Conditions.Add(DQCondition.LessThanOrEqual("Sequence", endID)); Session.ExecuteNonQuery(delDom); + var weightBL = BIFactory.Create(this); + foreach (var id in needUpdateIds) + { + weightBL.UpdateDetailOtherNumber(id); + } + ReUpdateSequenceAndPhaseCode(butcherID); } + private List GetNeedUpdateWeightDetailIDs(long butcherID, long? startID, long? endID) + { + var dom = new DQueryDom(new JoinAlias(typeof(Butcher_Detail))); + dom.Where.Conditions.Add(DQCondition.EQ("Butcher_ID", butcherID)); + dom.Where.Conditions.Add(DQCondition.IsNotNull(DQExpression.Field("Weigh_Detail_ID"))); + dom.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("Sequence", startID)); + dom.Where.Conditions.Add(DQCondition.LessThanOrEqual("Sequence", endID)); + dom.Columns.Add(DQSelectColumn.Field("Weigh_Detail_ID")); + dom.GroupBy.Expressions.Add(DQExpression.Field("Weigh_Detail_ID")); + return dom.EExecuteList(Session); + } + void ReUpdateSequenceAndPhaseCode(long butcherID) { var query = new DmoQuery(typeof(Butcher_Detail)); @@ -158,6 +177,7 @@ namespace BWP.B3SheepButcherManage.BL var detail = new Butcher_Detail(); detail.StatPay_ID = preDetail.StatPay_ID; detail.WeightBill_ID = preDetail.WeightBill_ID; + detail.Weigh_Detail_ID = preDetail.Weigh_Detail_ID; detail.Livestock_ID = preDetail.Livestock_ID; detail.Livestock_Name = preDetail.Livestock_Name; detail.Sequence = currentSequence; @@ -182,6 +202,11 @@ namespace BWP.B3SheepButcherManage.BL } Update(dmo); + if (preDetail.Weigh_Detail_ID.HasValue) + { + var weightBL = BIFactory.Create(this); + weightBL.UpdateDetailOtherNumber(preDetail.Weigh_Detail_ID.Value); + } } public long InsertOrUpdate(long? accID, long? deptID, DateTime? date, IList selectedList) @@ -412,7 +437,7 @@ namespace BWP.B3SheepButcherManage.BL dom.Where.Conditions.Add(DQCondition.EQ("Shortcut", code.ToString())); dom.Where.Conditions.Add(DQCondition.EQ("Stopped", false)); return dom.EExecuteScalar(Session); - } + } } class tempWeightTable diff --git a/B3SheepButcherManage/BL/Bill/WeightBillBL/WeightBillBL.cs b/B3SheepButcherManage/BL/Bill/WeightBillBL/WeightBillBL.cs index 5e5f343..bdb3eed 100644 --- a/B3SheepButcherManage/BL/Bill/WeightBillBL/WeightBillBL.cs +++ b/B3SheepButcherManage/BL/Bill/WeightBillBL/WeightBillBL.cs @@ -44,22 +44,17 @@ namespace BWP.B3SheepButcherManage.BL public void SetAbnormal_Money(WeightBill dmo) { - if (dmo.WeighAbnormalRecording.Count <= 0) + var riIDs = dmo.WeighAbnormalRecording.Where(x => x.RewardItem_ID.HasValue).Select(x => x.RewardItem_ID).Distinct(); + if (riIDs.Count() <= 0) return; - var sanction = new JoinAlias(typeof(CB.SanctionSetting)); - var abnormalItem = new JoinAlias(typeof(CB.RewardItem)); - var dom = new DQueryDom(sanction); - dom.From.AddJoin(JoinType.Inner, new DQDmoSource(abnormalItem), - DQCondition.EQ(sanction, "RewardItem_ID", abnormalItem, "ID")); - dom.Columns.Add(DQSelectColumn.Field("ID", abnormalItem)); - dom.Columns.Add(DQSelectColumn.Field("ID", sanction)); - dom.Columns.Add(DQSelectColumn.Field("Condition", sanction)); - dom.Columns.Add(DQSelectColumn.Field("BeforeScript", sanction)); - dom.Where.Conditions.Add(DQCondition.EQ(sanction, "FitBill", 奖罚设置适用单据类型.过磅单)); + var dom = new DQueryDom(new JoinAlias(typeof(CB.SanctionSetting))); + dom.Columns.Add(DQSelectColumn.Field("RewardItem_ID")); + dom.Columns.Add(DQSelectColumn.Field("Condition")); + dom.Columns.Add(DQSelectColumn.Field("BeforeScript")); + dom.Where.Conditions.Add(DQCondition.EQ("FitBill", 奖罚设置适用单据类型.过磅单)); dom.Where.Conditions.Add(DQCondition.EQ("BillState", 单据状态.已审核)); - dom.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID)); - dom.Where.Conditions.Add(DQCondition.EQ("AccountingUnit_ID", dmo.AccountingUnit_ID)); - var sanctionList = dom.EExecuteList(Session); + dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("RewardItem_ID"), riIDs.Select(x => DQExpression.Value(x)).ToArray())); + var sanctionList = dom.EExecuteList(Session); foreach (var detail in dmo.WeighAbnormalRecording) { var items = sanctionList.Where(x => x.Item1 == detail.RewardItem_ID); @@ -68,19 +63,20 @@ namespace BWP.B3SheepButcherManage.BL var result = items.First(); var runner = new Runner(); runner.Global["奖罚依据"] = ""; - runner.Execute(result.Item4); + runner.Execute(result.Item3); var bType = TypeMarshal.AsString(runner.Global["奖罚依据"]); if (bType == "过磅单") { runner.Global["单价"] = 0m; - runner.Execute(result.Item3); - detail.Abnormal_Money = TypeMarshal.AsNumber(runner.Global["单价"]); + runner.Execute(result.Item2); + detail.Price = TypeMarshal.AsNumber(runner.Global["单价"]); } } else { - detail.Abnormal_Money = null; + detail.Price = null; } + detail.Abnormal_Money = detail.Price * detail.Number; } } diff --git a/B3SheepButcherManage/BO/Bill/FixedPrice/FixedPrice_Detail.cs b/B3SheepButcherManage/BO/Bill/FixedPrice/FixedPrice_Detail.cs index f38c5ce..9428601 100644 --- a/B3SheepButcherManage/BO/Bill/FixedPrice/FixedPrice_Detail.cs +++ b/B3SheepButcherManage/BO/Bill/FixedPrice/FixedPrice_Detail.cs @@ -25,7 +25,6 @@ namespace BWP.B3SheepButcherManage.BO [DFExtProperty("WebControlType", DFEditControl.ChoiceBox)] [DFDataKind(B3CowButcherManageConsts.DataSources.计价区域全部)] [DFExtProperty(B3FrameworksConsts.DFExtProperties.DisplayField, "ValuationArea_Name")] - [DFExtProperty(B3FrameworksConsts.DFExtProperties.QueryDataKind, B3CowButcherManageConsts.DataSources.计价区域全部)] public long? ValuationArea_ID { get; set; } [LogicName("定价地区")] @@ -38,7 +37,6 @@ namespace BWP.B3SheepButcherManage.BO [DFExtProperty("WebControlType", DFEditControl.ChoiceBox)] [DFDataKind(B3ProduceUnitedInfosDataSources.活体品种)] [DFExtProperty(B3FrameworksConsts.DFExtProperties.DisplayField, "LiveVarieties_Name")] - [DFExtProperty(B3FrameworksConsts.DFExtProperties.QueryDataKind, B3ProduceUnitedInfosDataSources.活体品种)] public long? LiveVarieties_ID { get; set; } [LogicName("品种")] @@ -51,7 +49,6 @@ namespace BWP.B3SheepButcherManage.BO [DFExtProperty("WebControlType", DFEditControl.ChoiceBox)] [DFDataKind(B3SheepButcherManageConsts.DataSources.活体级别)] [DFExtProperty(B3FrameworksConsts.DFExtProperties.DisplayField, "Livestock_Name")] - [DFExtProperty(B3FrameworksConsts.DFExtProperties.QueryDataKind, B3SheepButcherManageConsts.DataSources.活体级别)] public long? Livestock_ID { get; set; } [LogicName("级别")] diff --git a/B3SheepButcherManage/BO/Bill/WeightBill/WeightBill_AbnormalRecording.cs b/B3SheepButcherManage/BO/Bill/WeightBill/WeightBill_AbnormalRecording.cs index 47ab7e1..8eee906 100644 --- a/B3SheepButcherManage/BO/Bill/WeightBill/WeightBill_AbnormalRecording.cs +++ b/B3SheepButcherManage/BO/Bill/WeightBill/WeightBill_AbnormalRecording.cs @@ -2,6 +2,7 @@ using BWP.B3CowButcherManage.BO; using BWP.B3Frameworks; using BWP.B3Frameworks.BO; +using BWP.B3Frameworks.BO.MoneyTemplate; using Forks.EnterpriseServices; using Forks.EnterpriseServices.DataDictionary; using Forks.EnterpriseServices.DataForm; @@ -21,8 +22,14 @@ namespace BWP.B3SheepButcherManage.BO [DbColumn(Index = IndexType.Normal, AllowNull = false)] public long WeightBill_ID { get; set; } + [LogicName("头数")] + public int? Number { get; set; } + + [LogicName("单价")] + public Money? Price { get; set; } + [LogicName("金额")] - public Money? Abnormal_Money { get; set; } + public Money<金额>? Abnormal_Money { get; set; } [LogicName("奖罚项目")] [DFDataKind(B3CowButcherManageConsts.DataSources.奖罚项目)]