浏览代码

优化超额检测提示

wuxiaobing 4 天之前
父节点
当前提交
219fee5f6b

+ 16 - 4
code/wnq/nckd-wnq01-wnq-scm/src/main/java/nckd/poc602/plugin/operate/PayBillSubmitOperationServicePlugIn.java

@@ -79,20 +79,32 @@ public class PayBillSubmitOperationServicePlugIn extends AbstractOperationServic
 						}
 						
 						if(srsTemp != null) {
+							BigDecimal jshj = srsTemp.getBigDecimal("totalallamount");//价税合计
+							BigDecimal ycje = srsTemp.getBigDecimal("nckd_ycje");//已采金额
 							BigDecimal receiptallamount = srsTemp.getBigDecimal("receiptallamount");//已收金额
 							BigDecimal nckd_cgyfje = srsTemp.getBigDecimal("nckd_cgyfje");//采购已付金额
 							if(iswriteback) {
 								BigDecimal nckd_cgyfjeNew = e_actamt.add(nckd_cgyfje);
 								if(nckd_cgyfjeNew.compareTo(receiptallamount) > 0) {
 									existError = true;
-									String error = "付款处理(" + fbno + ")的实付超额。";
+									String error = "对应销售合同已收金额" + receiptallamount +",采购已付款金额" + nckd_cgyfje + ",当前付款金额已超出可付金额";
 									e.setCancel(true);
 									e.setCancelMessage(error);
 									break;
-								}else {
-									srsTemp.set("nckd_cgyfje", nckd_cgyfjeNew);
-									scs.add(srsTemp);
 								}
+								if(jshj.compareTo(BigDecimal.ZERO) != 0 && ycje.compareTo(BigDecimal.ZERO) != 0 ){
+									//销售合同的比例:已收金额/价税合计 ;销售合同的比例:采购已付金额+当前付款金额/ 已采金额
+									BigDecimal xsbl = receiptallamount.divide(jshj).multiply(BigDecimal.valueOf(100));
+									BigDecimal cgbl = (nckd_cgyfje.add(e_actamt)).divide(ycje).multiply(BigDecimal.valueOf(100));
+									if(cgbl.compareTo(xsbl) > 0) {
+										existError = true;
+										String error = "对应销售合同收款比例" + xsbl +"%,采购已付款比例" + cgbl + "%,当前付款金额 已超出可付比例";
+										e.setCancel(true);
+										e.setCancelMessage(error);
+									}
+								}
+								srsTemp.set("nckd_cgyfje", nckd_cgyfjeNew);
+								scs.add(srsTemp);
 							}else {
 								BigDecimal nckd_cgyfjeNew = nckd_cgyfje.subtract(e_actamt);
 								srsTemp.set("nckd_cgyfje", nckd_cgyfjeNew);

+ 1 - 1
code/wnq/nckd-wnq01-wnq-scm/src/main/java/nckd/poc602/plugin/operate/PurContractSubmitOperationServicePlugIn.java

@@ -53,7 +53,7 @@ public class PurContractSubmitOperationServicePlugIn extends AbstractOperationSe
 					BigDecimal nckd_ycjeNew = purjshj.add(nckd_ycje);
 					if(nckd_ycjeNew.compareTo(salejshj) > 0) {
 						existError = true;
-						String error = "采购合同(" + purbillno + ")的价税合计超额。";
+						String error = "当前合同累计已下采购订单金额" + nckd_ycje + ",当前采购金额已超" + nckd_ycjeNew.subtract(salejshj) + "不允许采购";
 						e.setCancel(true);
 						e.setCancelMessage(error);
 						break;