using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Kingdee.BOS.Core.Bill; using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.Core.Metadata.EntityElement; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.ServiceHelper; using Newtonsoft.Json.Linq; using ZD.Cloud.Logger; using ZD.Cloud.WebApi; using Demo.Model.Model; using System.Diagnostics; using System.Linq; using Kingdee.BOS.Core.Bill.PlugIn.Args; namespace Demo.BillView.PRD { /// /// 日计划用料清单变更单 表单插件 /// [Description("日计划用料清单变更单表单插件")] [Kingdee.BOS.Util.HotUpdate] public class Pro_DayPlanBG : AbstractBillPlugIn { CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/"); public override void DataChanged(DataChangedEventArgs e) { base.DataChanged(e); var model = this.View.Model; double FHQty = Convert.ToDouble(model.GetValue("FHQty")); if (e.Field.Key.Contains("FUseRateNew")) { if (e.OldValue == e.NewValue) return; var m = e.Row; double FNumerator = Convert.ToDouble(model.GetValue("FNumerator", e.Row));//分子 double FDenominator = Convert.ToDouble(model.GetValue("FDenominator", e.Row));//分母 double FUseRateNew = Convert.ToDouble(model.GetValue("FUseRateNew", e.Row));//使用比例 double Hqty; if (FNumerator == 0 || FDenominator == 0) { Hqty = Math.Ceiling(FHQty * (FUseRateNew / 100)); } Hqty = Math.Ceiling((FNumerator / FDenominator) * FHQty * (FUseRateNew / 100)); this.View.Model.SetValue("FHQtyMustNew", Hqty, e.Row);//新计划数量 int FentryID = Convert.ToInt32(model.GetEntryPKValue("FEntity",e.Row));//明细表id //查询同项次的序号 string sql = $"select top 1 FSEQ from Sc_DayPlanPPBomBillSubBG where FReplaceGroup in(select FReplaceGroup from Sc_DayPlanPPBomBillSubBG where FEntryID = {FentryID} )and FEntryID<> { FentryID} "; int Fseq = DBServiceHelper.ExecuteScalar(Context,sql,0); if (Fseq > 0) { this.View.Model.SetValue("FUseRateNew", 100 - FUseRateNew, Fseq - 1);//新计划数量 } } if (e.Field.Key.Contains("FHQtyMustNew")) { if (e.OldValue == e.NewValue) return; var m = e.Row; double FNumerator = Convert.ToDouble(model.GetValue("FNumerator", e.Row));//分子 double FDenominator = Convert.ToDouble(model.GetValue("FDenominator", e.Row));//分母 double FHQtyMustNew = Convert.ToDouble(model.GetValue("FHQtyMustNew", e.Row));//新计划数量 double Hqty; if (FNumerator == 0 || FDenominator == 0) { Hqty = Math.Ceiling(FHQtyMustNew / FHQty * 100); } Hqty = Math.Ceiling(FHQtyMustNew / ((FNumerator / FDenominator) * FHQty) * 100); this.View.Model.SetValue("FUseRateNew", Hqty, e.Row);//新计划数量 int FentryID = Convert.ToInt32(model.GetEntryPKValue("FEntity", e.Row));//明细表id //查询同项次的序号 string sql = $"select top 1 FSEQ from Sc_DayPlanPPBomBillSubBG where FReplaceGroup in(select FReplaceGroup from Sc_DayPlanPPBomBillSubBG where FEntryID = {FentryID} )and FEntryID<> { FentryID} "; int Fseq = DBServiceHelper.ExecuteScalar(Context, sql, 0); if (Fseq > 0) { double FUseRateNew = Convert.ToDouble(model.GetValue("FUseRateNew", e.Row));//使用比例 this.View.Model.SetValue("FUseRateNew", 100 - FUseRateNew, Fseq - 1);//新计划数量 } } } //public override void BeforeSave(BeforeSaveEventArgs e) //{ // base.BeforeSave(e); // e.Cancel = true; //} } }