61 lines
2.5 KiB
C#
61 lines
2.5 KiB
C#
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 Audit : AbstractOperationServicePlugIn
|
|
{
|
|
public override void OnPreparePropertys(PreparePropertysEventArgs e)
|
|
{
|
|
base.OnPreparePropertys(e);
|
|
e.FieldKeys.Add("F_PaperNumber");
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 审核插件执行后插件、事务提交后事件
|
|
/// </summary>
|
|
/// <param name="e"></param>
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
}
|