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.SAL_ORDER.ServicePlugIn { [Description("服务插件:销售订单反审核,刷新销售订单和源单整单可开票金额和退货金额金额字段"), HotUpdate] public class UnAudit : AbstractOperationServicePlugIn { public override void OnPreparePropertys(PreparePropertysEventArgs e) { base.OnPreparePropertys(e); e.FieldKeys.Add("F_totalinvoiceAmount"); // 整单可开票金额 e.FieldKeys.Add("F_allreturnAmount"); // 云星空退货金额 e.FieldKeys.Add("F_sourorderno"); // 源单编号 e.FieldKeys.Add("FSALEORGID"); // 销售组织 e.FieldKeys.Add("FRETURNTYPE"); // 退补类型 e.FieldKeys.Add("F_sourpapercontract"); // 源头纸质合同号# e.FieldKeys.Add("F_contractnumber"); // 纸质合同号 } /// /// 审核插件执行后插件、事务提交后事件 /// /// public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e) { base.AfterExecuteOperationTransaction(e); SaleOrderService saleOrderService = new SaleOrderService(this.Context); foreach (var bill in e.DataEntitys) { var org = bill["SALEORGID"] as DynamicObject; var orgId = org["Id"].ToString(); // 销售组织 var contractNo = bill["F_contractnumber"].ToString(); // 纸质合同号 var srcContractNo = bill["F_sourpapercontract"].ToString(); // 源头纸质合同号 var saleOrderAmont = saleOrderService.GetSaleOrderAmount(orgId, contractNo); // 本单累计可开票金额 var k3RetrunAmount = saleOrderService.GetK3SaleOrderRetrunAmount(orgId, contractNo); // 本单云星空退货金额 var retrunAmount = saleOrderService.GetSaleOrderRetrunAmount(orgId, contractNo); // 本单k3退货金额 saleOrderService.UpdateSaleOrderOrderAmountAndRetrunAmount(orgId, contractNo, saleOrderAmont, retrunAmount, k3RetrunAmount); if (srcContractNo.IsNullOrEmpty()) { continue; } var srcSaleOrderAmont = saleOrderService.GetSaleOrderAmount(orgId, srcContractNo); // 源单累计可开票金额 var srcK3RetrunAmount = saleOrderService.GetK3SaleOrderRetrunAmount(orgId, srcContractNo); // 源单云星空退货金额 var srcRetrunAmount = saleOrderService.GetSaleOrderRetrunAmount(orgId, srcContractNo); // 源单k3退货金额 saleOrderService.UpdateSaleOrderOrderAmountAndRetrunAmount(orgId, srcContractNo, srcSaleOrderAmont, srcRetrunAmount, srcK3RetrunAmount); } } } }