diff --git a/NewAisa_Order_GZTH/NewAisa_Order_GZTH/Sal_Order/DataChageFZ.cs b/NewAisa_Order_GZTH/NewAisa_Order_GZTH/Sal_Order/DataChageFZ.cs new file mode 100644 index 0000000..72658e4 --- /dev/null +++ b/NewAisa_Order_GZTH/NewAisa_Order_GZTH/Sal_Order/DataChageFZ.cs @@ -0,0 +1,824 @@ +using Kingdee.BOS.Core.DependencyRules; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace NewAisa_Order_GZTH.Sal_Order +{ + [Description("表单插件:值更新事件,辅助属性赋值"), HotUpdate] + public class DataChageFZ : AbstractDynamicFormPlugIn + { + public override void DataChanged(DataChangedEventArgs e) + { + base.DataChanged(e); + int setRows = e.Row; + //需要修改的地方 + var entity = this.View.BusinessInfo.GetEntity("FCRMContractEntry"); + if (entity == null) + { + entity = this.View.BusinessInfo.GetEntity("FEntity"); + } + if (entity == null) + { + entity = this.View.BusinessInfo.GetEntity("FEntityDetail"); + } + var tempRow = this.Model.GetEntityDataObject(entity, e.Row); + if (e.Field.Key == "FAuxPropId" || e.Field.Key == "FAuxpropId" + || e.Field.Key == "FAUXPROPID") + { + //判断是否为应收单明细,应收单明细辅助资料属性不同 + var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + DynamicObject Aux = null; + if (entity1 != null) + { + Aux = tempRow["FAUXPROPID"] as DynamicObject; + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + Aux = tempRow["AuxPropId"] as DynamicObject; + } + //辅助属性 - 长度:$$FAUXPROPID__FF100001,xiugial + if (tempRow != null && Aux != null) + { + + if (Aux["F100001"] != null) + { + if (double.TryParse(Aux["F100001"].ToString(), out double length)) + { + this.View.Model.SetItemValueByID("F_Length", length, setRows); + + } + } + else if (Aux["F100001"] == null) + { + this.View.Model.SetItemValueByID("F_Length", 0, setRows); + } + + if (Aux["F100002"] != null) + { + if (double.TryParse(Aux["F100002"].ToString(), out double width)) + { + this.View.Model.SetItemValueByID("F_Width", width, setRows); + + } + } + else if (Aux["F100002"] == null) + { + this.View.Model.SetItemValueByID("F_Width", 0, setRows); + } + + if (Aux["F100004"] != null) + { + if (double.TryParse(Aux["F100004"].ToString(), out double box)) + { + this.View.Model.SetItemValueByID("F_Box", box, setRows); + + } + } + else if (Aux["F100004"] == null) + { + this.View.Model.SetItemValueByID("F_Box", 0, setRows); + } + + + if (Aux["F100006"] != null) + { + if (double.TryParse(Aux["F100006"].ToString(), out double rollBox)) + { + this.View.Model.SetItemValueByID("F_RollBox", rollBox, setRows); + + } + } + else if (Aux["F100006"] == null) + { + this.View.Model.SetItemValueByID("F_RollBox", 0, setRows); + } + + if (Aux["F100007"] != null) + { + if (double.TryParse(Aux["F100007"].ToString(), out double depth)) + { + this.View.Model.SetItemValueByID("F_Depth", depth, setRows); + + } + } + else if (Aux["F100007"] == null) + { + this.View.Model.SetItemValueByID("F_Depth", 0, setRows); + } + } + } + + if (e.Field.Key == "FMaterialId" || e.Field.Key == "FMaterialID" + ||e.Field.Key == "FMATERIALID") + { + entity = this.View.BusinessInfo.GetEntity("FCRMContractEntry"); + if (entity == null) + { + entity = this.View.BusinessInfo.GetEntity("FEntity"); + } + if (entity == null) + { + entity = this.View.BusinessInfo.GetEntity("FEntityDetail"); + } + tempRow = this.Model.GetEntityDataObject(entity, e.Row); + if (tempRow != null && tempRow["MaterialId"] != null) + { + + var WLDS1 = tempRow["MaterialId"] as DynamicObject; + //当物料的分组为成品时。 + if (WLDS1["MaterialGroup_id"].ToString() == "100252" || WLDS1["MaterialGroup_id"].ToString() == "109721" || + WLDS1["MaterialGroup_id"].ToString() == "109723" || WLDS1["MaterialGroup_id"].ToString() == "109724" || + WLDS1["MaterialGroup_id"].ToString() == "109725" || WLDS1["MaterialGroup_id"].ToString() == "109727" || + WLDS1["MaterialGroup_id"].ToString() == "109728" || WLDS1["MaterialGroup_id"].ToString() == "116090" || + WLDS1["MaterialGroup_id"].ToString() == "116149" || WLDS1["MaterialGroup_id"].ToString() == "116093" || + WLDS1["MaterialGroup_id"].ToString() == "124946" || WLDS1["MaterialGroup_id"].ToString() == "116094") + { + this.View.Model.SetValue("$$FAUXPROPID__FF100007", "0", e.Row); + this.View.Model.SetValue("F_Depth", 0, e.Row); + this.View.Model.SetItemValueByID("$$FAUXPROPID__FF100003", "6822f8e692e739", e.Row); + //设置卷和面积字段锁定 + this.View.GetFieldEditor("$$FAUXPROPID__FF100005", e.Row).Enabled = false; + this.View.GetFieldEditor("F_Area", e.Row).Enabled = false; + //当物料的规格型号不为空时 + if (WLDS1["Specification"] != null) + { + + var spec = WLDS1["Specification"].ToString(); + this.View.Model.SetValue("$$FAUXPROPID__FF100002", WLDS1["Specification"].ToString(), e.Row); + this.View.Model.SetItemValueByID("F_Width", WLDS1["Specification"].ToString(), e.Row); + } + + } + //当物料为半成品时,赋值默认值 + if (WLDS1["MaterialGroup_id"].ToString() == "112215" || WLDS1["MaterialGroup_id"].ToString() == "112217" || WLDS1["MaterialGroup_id"].ToString() == "112218" + || WLDS1["MaterialGroup_id"].ToString() == "112219" || WLDS1["MaterialGroup_id"].ToString() == "112221" || WLDS1["MaterialGroup_id"].ToString() == "112222" + || WLDS1["MaterialGroup_id"].ToString() == "116091" || WLDS1["MaterialGroup_id"].ToString() == "116150" || WLDS1["MaterialGroup_id"].ToString() == "116095" + || WLDS1["MaterialGroup_id"].ToString() == "124564" || WLDS1["MaterialGroup_id"].ToString() == "129698") + { + //设置字段锁定 + this.View.GetFieldEditor("$$FAUXPROPID__FF100005", e.Row).Enabled = true; + this.View.GetFieldEditor("F_Area", e.Row).Enabled = false; + + this.View.Model.SetValue("$$FAUXPROPID__FF100007", "0", e.Row); + this.View.Model.SetValue("F_Depth", 0, e.Row); + this.View.Model.SetValue("$$FAUXPROPID__FF100005", "0", e.Row); + this.View.Model.SetValue("F_Roll", 0, e.Row); + this.View.Model.SetItemValueByID("$$FAUXPROPID__FF100003", "6822f8e692e739", e.Row); + } + if (WLDS1["MaterialGroup_id"].ToString() == "116097") + { + this.View.Model.SetValue("$$FAUXPROPID__FF100005", "0", e.Row); + this.View.Model.SetValue("F_Roll", 0, e.Row); + } + } + } + if (tempRow == null) + { + return; + } + //获取物料对象 + var WLDS = tempRow["MaterialId"] as DynamicObject; + if (WLDS == null) + { + return; + } + //当物料的分组为成品时。 + if (WLDS["MaterialGroup_id"].ToString() == "100252" || WLDS["MaterialGroup_id"].ToString() == "109721" || + WLDS["MaterialGroup_id"].ToString() == "109723" || WLDS["MaterialGroup_id"].ToString() == "109724" || + WLDS["MaterialGroup_id"].ToString() == "109725" || WLDS["MaterialGroup_id"].ToString() == "109727" || + WLDS["MaterialGroup_id"].ToString() == "109728" || WLDS["MaterialGroup_id"].ToString() == "116090" || + WLDS["MaterialGroup_id"].ToString() == "116149" || WLDS["MaterialGroup_id"].ToString() == "116093" || + WLDS["MaterialGroup_id"].ToString() == "124946" || WLDS["MaterialGroup_id"].ToString() == "116094") + { + + //添加箱和卷/箱时,计算卷数 + if (e.Field.Key == "F_Box") + { + var BOX = Convert.ToDouble(this.View.Model.GetValue("F_Box", e.Row)); + var JB = Convert.ToDouble(this.View.Model.GetValue("F_RollBox", e.Row)); + this.View.Model.SetItemValueByID("F_Roll", BOX * JB, setRows); + this.View.Model.SetValue("$$FAUXPROPID__FF100005", BOX * JB, e.Row); + + } + if (e.Field.Key == "F_RollBox") + { + var BOX = Convert.ToDouble(this.View.Model.GetValue("F_Box", e.Row)); + var JB = Convert.ToDouble(this.View.Model.GetValue("F_RollBox", e.Row)); + this.View.Model.SetItemValueByID("F_Roll", BOX * JB, setRows); + this.View.Model.SetValue("$$FAUXPROPID__FF100005", BOX * JB, e.Row); + + } + //处理规格型号 + //长度:$$FAUXPROPID__FF100001, + //宽度:$$FAUXPROPID__FF100002, + //厚度$$FAUXPROPID__FF100007 + if (e.Field.Key == "F_Length" || e.Field.Key == "F_Width" + || e.Field.Key == "F_Depth") + { + var CD = Convert.ToString(this.Model.GetValue("F_Length", e.Row)); + var KD = Convert.ToString(this.Model.GetValue("F_Width", e.Row)); + var HD = Convert.ToString(this.Model.GetValue("F_Depth", e.Row)); + // 去尾0的辅助方法 + string TrimTrailingZeros(string input) + { + if (decimal.TryParse(input, out decimal d)) + { + return d.ToString("G29"); + } + return input; + } + + // 初始化规格字符串 + var spec = ""; + + // 处理宽度 + if (!string.IsNullOrWhiteSpace(KD) && KD != "0") + { + spec += TrimTrailingZeros(KD); + } + + // 处理长度(带M) + if (!string.IsNullOrWhiteSpace(CD) && CD != "0") + { + if (!string.IsNullOrEmpty(spec)) spec += "*"; + spec += TrimTrailingZeros(CD) + "M"; + } + + // 处理厚度(带U) + if (!string.IsNullOrWhiteSpace(HD) && HD != "0") + { + if (!string.IsNullOrEmpty(spec)) spec += "*"; + spec += TrimTrailingZeros(HD) + "U"; + } + + // 设置规格字段 + this.Model.SetValue("F_Size", spec, e.Row); + //当单位为码的时候 + if (tempRow["F_Unit2_Id"].ToString() == "68528632a2db53") + { + //判断规格中是否含有M字母 + if (tempRow["F_Size"].ToString().Contains("M")) + { + string newSize = tempRow["F_Size"].ToString().Replace("M", "Y"); + // 将替换后的值重新赋值 + this.View.Model.SetValue("F_Size", newSize, e.Row); + } + } + } + if (e.Field.Key == "F_Roll" || e.Field.Key == "F_Length" || e.Field.Key == "F_Width" || e.Field.Key == "F_Unit2") + { + //单位#字段切换时,计算面积#字段 + if (tempRow["F_Unit2"] != null) + { + //当单为米时,面积#=长度*宽度*卷数 /1000 + if (tempRow["F_Unit2_Id"].ToString() == "6852862ca2db51") + { + if (Convert.ToString(this.View.Model.GetValue("F_Length", e.Row)) != "0" && Convert.ToString(this.View.Model.GetValue("F_Width", e.Row)) != "0" + && Convert.ToString(this.View.Model.GetValue("F_Roll", e.Row)) != "0") + { + var MJ = Convert.ToDouble(this.View.Model.GetValue("F_Length", e.Row)) * Convert.ToDouble(this.View.Model.GetValue("F_Width", e.Row)) + * Convert.ToDouble(this.View.Model.GetValue("F_Roll", e.Row)) / 1000; + this.View.Model.SetValue("F_Area", MJ, e.Row); + //当单价种类默认值为面积时,对销售数量赋值面积 + if (tempRow["F_UnitTypes_Id"].ToString() == "683fab479cfb2b") + { + if (Convert.ToString(this.View.Model.GetValue("F_Area", e.Row)) != "0") + { + var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + DynamicObject Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row); + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row); + } + + } + } + } + else + { + this.View.Model.SetValue("F_Area", 0, e.Row); + } + } + else if (tempRow["F_Unit2_Id"].ToString() == "68528632a2db53") + { + if (Convert.ToString(this.View.Model.GetValue("F_Length", e.Row)) != "0" && Convert.ToString(this.View.Model.GetValue("F_Width", e.Row)) != "0" + && Convert.ToString(this.View.Model.GetValue("F_Roll", e.Row)) != "0") + { + var MJ = Convert.ToDouble(this.View.Model.GetValue("F_Length", e.Row)) * Convert.ToDouble(this.View.Model.GetValue("F_Width", e.Row)) + * Convert.ToDouble(this.View.Model.GetValue("F_Roll", e.Row)) / 1000 * 0.9144; + this.View.Model.SetValue("F_Area", MJ, e.Row); + //当单价种类默认值为面积时,对销售数量赋值面积 + if (tempRow["F_UnitTypes_Id"].ToString() == "683fab479cfb2b") + { + if (Convert.ToString(this.View.Model.GetValue("F_Area", e.Row)) != "0") + { + var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + DynamicObject Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row); + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row); + } + } + } + } + else + { + this.View.Model.SetValue("F_Area", 0, e.Row); + } + } + } + else if (tempRow["F_Unit2"] == null) + { + this.View.Model.SetValue("F_Area", 0, e.Row); + } + //触发数量的值更新 + this.View.RuleContainer.RaiseDataChanged("FQty", + this.Model.DataObject, new BOSActionExecuteContext(this.View)); + this.View.RuleContainer.RaiseDataChanged("FTaxPrice", + this.Model.DataObject, new BOSActionExecuteContext(this.View)); + + } + //根据单价种类,赋值销售数量 + if (e.Field.Key == "F_UnitTypes" || e.Field.Key == "F_Area" || e.Field.Key == "F_Roll" + || e.Field.Key == "F_Box") + { + //单价种类依面积 + if (tempRow["F_UnitTypes_Id"].ToString() == "683fab479cfb2b") + { + if (Convert.ToString(this.View.Model.GetValue("F_Area", e.Row)) != "0") + { + var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + DynamicObject Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row); + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row); + } + + } + else + { + var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + DynamicObject Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", 0, e.Row); + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + this.View.Model.SetValue("FQty", 0, e.Row); + } + + } + } + //单价种类依卷数 + else if (tempRow["F_UnitTypes_Id"].ToString() == "683fab589cfb2d") + { + if (Convert.ToString(this.View.Model.GetValue("F_Roll", e.Row)) != "0") + { + var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + DynamicObject Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Roll", e.Row)), e.Row); + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Roll", e.Row)), e.Row); + } + + + } + else + { + var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + DynamicObject Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", 0, e.Row); + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + this.View.Model.SetValue("FQty", 0, e.Row); + } + + } + } + //单价种类依箱数 + else if (tempRow["F_UnitTypes_Id"].ToString() == "683fab5e9cfb2f") + { + if (Convert.ToString(this.View.Model.GetValue("F_Box", e.Row)) != "0") + { + var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + DynamicObject Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Box", e.Row)), e.Row); + } + else + { + //判断是否为应收单, + this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Box", e.Row)), e.Row); + + } + + + } + else + { + var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + DynamicObject Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", 0, e.Row); + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + this.View.Model.SetValue("FQty", 0, e.Row); + } + + } + } + else + { + var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + DynamicObject Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", 0, e.Row); + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + this.View.Model.SetValue("FQty", 0, e.Row); + } + + } + //触发数量的值更新 + this.View.RuleContainer.RaiseDataChanged("FQty", + this.Model.DataObject, new BOSActionExecuteContext(this.View)); + this.View.RuleContainer.RaiseDataChanged("FTaxPrice", + this.Model.DataObject, new BOSActionExecuteContext(this.View)); + } + } + //当物料分组为半成品时 + if (WLDS["MaterialGroup_id"].ToString() == "112215" || WLDS["MaterialGroup_id"].ToString() == "112217" || WLDS["MaterialGroup_id"].ToString() == "112218" + || WLDS["MaterialGroup_id"].ToString() == "112219" || WLDS["MaterialGroup_id"].ToString() == "112221" || WLDS["MaterialGroup_id"].ToString() == "112222" + || WLDS["MaterialGroup_id"].ToString() == "116091" || WLDS["MaterialGroup_id"].ToString() == "116150" || WLDS["MaterialGroup_id"].ToString() == "116095" + || WLDS["MaterialGroup_id"].ToString() == "124564" || WLDS["MaterialGroup_id"].ToString() == "129698") + { + + //填写辅助属性卷数时,赋值卷数#字段 + //判断是否为应收单明细,应收单明细辅助资料属性不同 + var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + DynamicObject Aux = null; + if (entity1 != null) + { + Aux = tempRow["FAUXPROPID"] as DynamicObject; + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + Aux = tempRow["AuxPropId"] as DynamicObject; + } + if (Aux == null) + { + return; + } + if (Aux["F100005"] != null) + { + this.View.Model.SetValue("F_Roll", Aux["F100005"], e.Row); + } + else if(Aux["F100005"] == null) + { + this.View.Model.SetValue("F_Roll", 0, e.Row); + } + //处理规格型号 + //长度:$$FAUXPROPID__FF100001, + //宽度:$$FAUXPROPID__FF100002, + //厚度$$FAUXPROPID__FF100007 + if (e.Field.Key == "F_Length" || e.Field.Key == "F_Width" + || e.Field.Key == "F_Depth") + { + var CD = Convert.ToString(this.Model.GetValue("F_Length", e.Row)); + var KD = Convert.ToString(this.Model.GetValue("F_Width", e.Row)); + var HD = Convert.ToString(this.Model.GetValue("F_Depth", e.Row)); + // 去尾0的辅助方法 + string TrimTrailingZeros(string input) + { + if (decimal.TryParse(input, out decimal d)) + { + return d.ToString("G29"); + } + return input; + } + + // 初始化规格字符串 + var spec = ""; + + // 处理宽度 + if (!string.IsNullOrWhiteSpace(KD) && KD != "0") + { + spec += TrimTrailingZeros(KD); + } + + // 处理长度(带M) + if (!string.IsNullOrWhiteSpace(CD) && CD != "0") + { + if (!string.IsNullOrEmpty(spec)) spec += "*"; + spec += TrimTrailingZeros(CD) + "M"; + } + + // 处理厚度(带U) + if (!string.IsNullOrWhiteSpace(HD) && HD != "0") + { + if (!string.IsNullOrEmpty(spec)) spec += "*"; + spec += TrimTrailingZeros(HD) + "U"; + } + + // 设置规格字段 + this.Model.SetValue("F_Size", spec, e.Row); + //当单位为码的时候 + if (tempRow["F_Unit2_Id"].ToString() == "68528632a2db53") + { + //判断规格中是否含有M字母 + if (tempRow["F_Size"].ToString().Contains("M")) + { + string newSize = tempRow["F_Size"].ToString().Replace("M", "Y"); + // 将替换后的值重新赋值 + this.View.Model.SetValue("F_Size", newSize, e.Row); + } + } + } + //当填写长度和宽度时,计算面积 + if (e.Field.Key == "F_Length" || e.Field.Key == "F_Width") + { + if (Convert.ToString(this.View.Model.GetValue("F_Length", e.Row)) != "0" && Convert.ToString(this.View.Model.GetValue("F_Width", e.Row)) != "0") + { + var MJ = Convert.ToDouble(this.View.Model.GetValue("F_Length", e.Row)) * Convert.ToDouble(this.View.Model.GetValue("F_Width", e.Row))/ 1000; + this.View.Model.SetValue("F_Area", MJ, e.Row); + //当单价种类默认值为面积时,对销售数量赋值面积 + if (tempRow["F_UnitTypes_Id"].ToString() == "683fab479cfb2b") + { + if (Convert.ToString(this.View.Model.GetValue("F_Area", e.Row)) != "0") + { + entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row); + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row); + } + + + } + } + } + else + { + this.View.Model.SetValue("F_Area", 0, e.Row); + } + //触发数量的值更新 + this.View.RuleContainer.RaiseDataChanged("FQty", + this.Model.DataObject, new BOSActionExecuteContext(this.View)); + this.View.RuleContainer.RaiseDataChanged("FTaxPrice", + this.Model.DataObject, new BOSActionExecuteContext(this.View)); + } + //根据单价种类,赋值销售数量字段 + if (e.Field.Key == "F_UnitTypes" || e.Field.Key == "F_Area" || e.Field.Key == "F_Roll" + || e.Field.Key == "F_Box") + { + //单价种类依面积 + if (tempRow["F_UnitTypes_Id"].ToString() == "683fab479cfb2b") + { + if (Convert.ToString(this.View.Model.GetValue("F_Area", e.Row)) != "0") + { + entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row); + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row); + } + + } + else + { + entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", 0, e.Row); + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + this.View.Model.SetValue("FQty", 0, e.Row); + } + + } + } + //单价种类依卷数 + else if (tempRow["F_UnitTypes_Id"].ToString() == "683fab589cfb2d") + { + if (Convert.ToString(this.View.Model.GetValue("F_Roll", e.Row)) != "0") + { + entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Roll", e.Row)), e.Row); + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Roll", e.Row)), e.Row); + } + + + } + else + { + entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", 0, e.Row); + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + this.View.Model.SetValue("FQty", 0, e.Row); + } + + } + } + else + { + entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail"); + Aux = null; + if (entity1 != null) + { + this.View.Model.SetValue("FPriceQty", 0, e.Row); + } + else + { + //判断是否为应收单,应收单辅助资料属性字段不同,为FAUXPROPID + this.View.Model.SetValue("FQty", 0, e.Row); + } + + } + //触发数量的值更新 + this.View.RuleContainer.RaiseDataChanged("FQty", + this.Model.DataObject, new BOSActionExecuteContext(this.View)); + this.View.RuleContainer.RaiseDataChanged("FTaxPrice", + this.Model.DataObject, new BOSActionExecuteContext(this.View)); + } + } + //当物料分组为薄膜类 + if (WLDS["MaterialGroup_id"].ToString() == "116097") + { + //处理规格型号 + //长度:$$FAUXPROPID__FF100001, + //宽度:$$FAUXPROPID__FF100002, + //厚度$$FAUXPROPID__FF100007 + if (e.Field.Key == "F_Length" || e.Field.Key == "F_Width" + || e.Field.Key == "F_Depth") + { + var CD = Convert.ToString(this.Model.GetValue("F_Length",e.Row)); + var KD = Convert.ToString(this.Model.GetValue("F_Width", e.Row)); + var HD = Convert.ToString(this.Model.GetValue("F_Depth", e.Row)); + + + // 去尾0的辅助方法 + string TrimTrailingZeros(string input) + { + if (decimal.TryParse(input, out decimal d)) + { + return d.ToString("G29"); + } + return input; + } + + // 初始化规格字符串 + var spec = ""; + + // 1)厚度(带 U) + if (!string.IsNullOrWhiteSpace(HD) && HD != "0") + spec += TrimTrailingZeros(HD) + "U"; + + // 2)宽度 + if (!string.IsNullOrWhiteSpace(KD) && KD != "0") + { + if (!string.IsNullOrEmpty(spec)) spec += "*"; + spec += TrimTrailingZeros(KD); + } + + // 3)长度(带 M) + if (!string.IsNullOrWhiteSpace(CD) && CD != "0") + { + if (!string.IsNullOrEmpty(spec)) spec += "*"; + spec += TrimTrailingZeros(CD) + "M"; + } + + // 设置规格字段 + this.Model.SetValue("F_Size", spec, e.Row); + //当单位为码的时候 + if (tempRow["F_Unit2_Id"].ToString() == "68528632a2db53") + { + //判断规格中是否含有M字母 + if (tempRow["F_Size"].ToString().Contains("M")) + { + string newSize = tempRow["F_Size"].ToString().Replace("M", "Y"); + // 将替换后的值重新赋值 + this.View.Model.SetValue("F_Size", newSize, e.Row); + } + } + } + } + //当切换单位字段为码时,将规格型号中的M替换成为Y + if (e.Field.Key == "F_Unit2") + { + //当单位为码的时候 + if (tempRow["F_Unit2_Id"].ToString() == "68528632a2db53") + { + //判断规格中是否含有M字母 + if (tempRow["F_Size"].ToString().Contains("M")) + { + string newSize = tempRow["F_Size"].ToString().Replace("M", "Y"); + // 将替换后的值重新赋值 + this.View.Model.SetValue("F_Size", newSize, e.Row); + } + } + else if (tempRow["F_Unit2_Id"].ToString() == "6852862ca2db51") + { + //判断规格中是否含有Y字母 + if (tempRow["F_Size"].ToString().Contains("Y")) + { + string newSize = tempRow["F_Size"].ToString().Replace("Y", "M"); + // 将替换后的值重新赋值 + this.View.Model.SetValue("F_Size", newSize, e.Row); + } + } + } + if (e.Field.Key == "FQty" ) + { + //触发字段值更新 + this.View.RuleContainer.RaiseDataChanged("FQty", + this.Model.DataObject, new BOSActionExecuteContext(this.View)); + this.View.InvokeFieldUpdateService("FQty", e.Row); + this.View.RuleContainer.RaiseDataChanged("FTaxPrice", + this.Model.DataObject, new BOSActionExecuteContext(this.View)); + this.View.InvokeFieldUpdateService("FTaxPrice", e.Row); + } + //应收单特殊设置 + if (e.Field.Key == "FPriceQty") + { + //触发字段值更新 + this.View.RuleContainer.RaiseDataChanged("FPriceQty", + this.Model.DataObject, new BOSActionExecuteContext(this.View)); + this.View.InvokeFieldUpdateService("FPriceQty", e.Row); + this.View.RuleContainer.RaiseDataChanged("FTaxPrice", + this.Model.DataObject, new BOSActionExecuteContext(this.View)); + this.View.InvokeFieldUpdateService("FTaxPrice", e.Row); + } + } + } +} +