using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Util; using Kingdee.K3.BD.NewCode.Core.Utils; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Pilot_KD_Parino.SAL_DELIVERYNOTICE { [HotUpdate, Description("1.发货通知单表单插件")] public class Bill : AbstractBillPlugIn { public override void DataChanged(DataChangedEventArgs e) { base.DataChanged(e); if (e.Field.Key.EqualsIgnoreCase("FQty")) { LinkedModifiQty(e); } if (e.Field.Key.EqualsIgnoreCase("FBaseUnitQty")) { LinkedModifiQty(e); } } /// /// 联动修改数量 /// /// private void LinkedModifiQty(DataChangedEventArgs e) { var groupIdObj = this.View.Model.GetValue("FGroup", e.Row); var groupId = groupIdObj == null ? "" : groupIdObj.Convert(); if (!groupId.IsNullOrEmptyOrWhiteSpace()) { var groupItemObj = this.View.Model.GetValue("F_IsGroupItem", e.Row); var groupItem = groupItemObj == null ? false : groupItemObj.Convert(); if (!groupItem) { var entrys = this.View.Model.DataObject["SAL_DELIVERYNOTICEENTRY"] as DynamicObjectCollection; if (entrys != null && entrys.Count > 0) { var mainQty = e.NewValue.Convert(); var currIndex = 0; foreach (var entry in entrys) { var currGroup = entry["FGroup"].Convert(); var currGroupItem = entry["F_IsGroupItem"].Convert(); if (currGroup.EqualsIgnoreCase(groupId) && currGroupItem) { var currGroupDosage = entry["F_GroupDosage"].Convert(); this.View.Model.SetValue("FQty", mainQty * currGroupDosage, currIndex); this.View.InvokeFieldUpdateService("FQty", currIndex); } currIndex++; } } } } } /// /// 删除主体物料时,删除其对应的配件物料 /// /// public override void AfterDeleteRow(AfterDeleteRowEventArgs e) { if (e.EntityKey.EqualsIgnoreCase("FEntity")) { //this.View.ShowErrMessage(JsonUtil.Serialize(e.DataEntity)); var currDataEntity = e.DataEntity; var groupIdObj = currDataEntity["FGroup"]; var groupId = groupIdObj == null ? "" : groupIdObj.Convert(); if (groupId.IsNullOrEmptyOrWhiteSpace()) return; var groupItemObj = this.View.Model.GetValue("F_IsGroupItem", e.Row); var groupItem = groupItemObj == null ? false : groupItemObj.Convert(); if (groupItem) return; var entrys = this.View.Model.DataObject["SAL_DELIVERYNOTICEENTRY"] as DynamicObjectCollection; if (entrys != null && entrys.Count > 0) { var rowIndex = 0; var deleteIndexs = new List(); foreach (var entry in entrys) { var currGroup = entry["FGroup"].Convert(); var currGroupItem = entry["F_IsGroupItem"].Convert(); if (currGroup.EqualsIgnoreCase(groupId) && currGroupItem) { deleteIndexs.Add(rowIndex); } rowIndex++; } if (deleteIndexs.Count > 0) { deleteIndexs.Reverse(); foreach (var index in deleteIndexs) { this.View.Model.DeleteEntryRow("FEntity", index); } } } } base.AfterDeleteRow(e); } public override void AfterBindData(EventArgs e) { base.AfterBindData(e); } private void SetFieldEditorDisabled(int rowIndex) { this.View.GetFieldEditor("FMaterialID", rowIndex).Enabled = false; this.View.GetFieldEditor("FUnitID", rowIndex).Enabled = false; this.View.GetFieldEditor("FQty", rowIndex).Enabled = false; this.View.GetFieldEditor("FIsFree", rowIndex).Enabled = false; this.View.GetFieldEditor("FDeliveryDate", rowIndex).Enabled = false; //billView.GetFieldEditor("FStockID", rowIndex).Enabled = false; //billView.GetFieldEditor("FStockLocID", rowIndex).Enabled = false; this.View.GetFieldEditor("FTaxPrice", rowIndex).Enabled = false; this.View.GetFieldEditor("FEntryTaxRate", rowIndex).Enabled = false; } } }