using GZ_LTHPilot_ORDER.Service; 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.Threading.Tasks; namespace GZ_LTHPilot_ORDER.T_IV_SALESIC.ServicePlugIn { [Description("服务插件:发票反审核,刷新销售订单累计开票金额字段"), HotUpdate] public class UnAudit : AbstractOperationServicePlugIn { public override void OnPreparePropertys(PreparePropertysEventArgs e) { base.OnPreparePropertys(e); e.FieldKeys.Add("F_PaperNumber"); } /// /// 审核插件执行后插件、事务提交后事件 /// /// public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e) { base.AfterExecuteOperationTransaction(e); foreach (var bill in e.DataEntitys) { var org = bill["SALEORGID"] as DynamicObject; var orgId = org["Id"].ToString(); // 销售订单 var contractNo = bill["F_PaperNumber"].ToString(); // 纸质合同号 // 销售订单服务 var saleOrderService = new SaleOrderService(this.Context); // TODO 根据组织和纸质合同号查找销售订单 var saleOrderList = saleOrderService.GetSaleOrderByOrgIdAndContractNo(orgId, contractNo); if (saleOrderList.Count == 0) { //var errInfo = string.Format("纸质合同号:{0},没有找到对应的销售订单,请检查销售订单是否已审核,或者被作废", contractNo); //throw new Exception(errInfo); continue; } if (saleOrderList.Count > 1) { var errInfo = string.Format("纸质合同号:{0},找到多个销售订单,请检查组织内纸质合同号唯一性", contractNo); throw new Exception(errInfo); } var saleOrder = saleOrderList[0]; // 发票服务 SaleSicsService saleSicsService = new SaleSicsService(this.Context); // TODO 刷新销售订单单头的累计开票金额 saleSicsService.UpdateSaleOrderSumSicsamountBySaleOrder(saleOrder); } } } }