diff --git a/GZ_LTHPilot_ORDER.csproj b/GZ_LTHPilot_ORDER.csproj index b05ecd2..8475a6b 100644 --- a/GZ_LTHPilot_ORDER.csproj +++ b/GZ_LTHPilot_ORDER.csproj @@ -446,7 +446,6 @@ - - + copy $(TargetPath) "D:\kingdee\K3Cloud\WebSite\Bin\$(TargetFileName)" \ No newline at end of file diff --git a/T_IV_SALESIC/ServicePlugIn/Submit.cs b/T_IV_SALESIC/ServicePlugIn/Submit.cs index 765a471..16fbb11 100644 --- a/T_IV_SALESIC/ServicePlugIn/Submit.cs +++ b/T_IV_SALESIC/ServicePlugIn/Submit.cs @@ -41,21 +41,8 @@ namespace GZ_LTHPilot_ORDER.T_IV_SALESIC.ServicePlugIn { // 纸质合同号 var contractNo = group.Key; - - // 销售订单服务 - var saleOrderService = new SaleOrderService(this.Context); - // TODO 根据组织和纸质合同号查找销售订单 - var saleOrderList = saleOrderService.GetSaleOrderByOrgIdAndContractNo(orgId, contractNo); - if (saleOrderList.Count == 0) - { - continue; - } - - var saleOrder = saleOrderList[0]; - // 源纸质合同号 - var srcContractNo = saleOrder["F_SOURPAPERCONTRACT"].ToString(); - // 校验源单是否超额 - var srcVerifResult = ExcessVerification(orgId, srcContractNo, 0); + // 校验原单是否超额 + var srcVerifResult = SrcExcessVerification(orgId, contractNo); if (srcVerifResult != null) { //有错误信息 @@ -79,6 +66,42 @@ namespace GZ_LTHPilot_ORDER.T_IV_SALESIC.ServicePlugIn } } } + /// + /// 校验源头单据是否超额 + /// + /// + /// + /// + /// + private OperateResult SrcExcessVerification(string orgId, string contractNo) + { + // 销售订单服务 + var saleOrderService = new SaleOrderService(this.Context); + // TODO 根据组织和纸质合同号查找销售订单 + var saleOrderList = saleOrderService.GetSaleOrderByOrgIdAndContractNo(orgId, contractNo); + if (saleOrderList.Count == 0) + { + return null; + } + + var saleOrder = saleOrderList[0]; + // 源纸质合同号 + var srcContractNo = saleOrder["F_SOURPAPERCONTRACT"]?.ToString(); + // 如果原纸质合同号为空,则认为是源头单 + if (srcContractNo.IsNullOrEmptyOrWhiteSpace()) + { + return null; + } + // 校验源单是否超额 + var srcVerifResult = ExcessVerification(orgId, srcContractNo, 0); + if (srcVerifResult != null) + { + return srcVerifResult; + } + // 递归校验 + return SrcExcessVerification(orgId, srcContractNo); + } + /// /// 超额校验,如果校验不通过会返回OperateResult实例,通过返回null