|
@@ -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);
|