diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/ClearDetailBillOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/ClearDetailBillOperation.java index a420138..3208100 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/ClearDetailBillOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/ClearDetailBillOperation.java @@ -188,37 +188,6 @@ public class ClearDetailBillOperation extends AbstractOperationServicePlugIn imp return "ok"; } - private boolean checkAmount(DynamicObject prinfo){ - //【未清金额】+【账扣金额】+【尾差金额】≥【本次核销金额合计】 - BigDecimal billtotal = BigDecimal.ZERO; - BigDecimal a1 = prinfo.getBigDecimal("shjh_unclaimamount");//未清金额 - BigDecimal a2 = prinfo.getBigDecimal("shjh_deductionamount");//账扣金额 - BigDecimal a3 = prinfo.getBigDecimal("shjh_diffamount");//尾差金额 - if(a1 != null){ - billtotal = billtotal.add(a1); - } - if(a2 != null){ - billtotal = billtotal.add(a2); - } - if(a3 != null){ - billtotal = billtotal.add(a3); - } - //获取分录本次核销金额合计 - BigDecimal entrytotal = BigDecimal.ZERO; - DynamicObjectCollection doc = prinfo.getDynamicObjectCollection("shjh_details");//获取分录 - for (int i = 0; i < doc.size(); i++) { - if(doc.get(i).getBigDecimal("shjh_e_cursettle") != null){ - entrytotal = entrytotal.add(doc.get(i).getBigDecimal("shjh_e_cursettle"));//累计分录本次核销金额 - } - } - //本次核销金额合计-账扣-尾差 >=0 才允许提交 - if(billtotal.compareTo(entrytotal) >= 0 && entrytotal.compareTo(JhzjUtils.addTwoAmount(a2,a3)) >= 0){ - //校验通过返回true - return true; - } - return false; - } - /** * 操作执行完毕,事务提交之后,触发此事件; * 插件可以在此事件,处理操作后续事情,与操作事务无关 @@ -335,12 +304,12 @@ public class ClearDetailBillOperation extends AbstractOperationServicePlugIn imp //获取清账单收款金额 BigDecimal q3 = clearBillInfo.getBigDecimal("shjh_receamount"); //获取清账单的本次核销金额合计 - BigDecimal entrytotal = BigDecimal.ZERO; +// BigDecimal entrytotal = BigDecimal.ZERO; BigDecimal entrynegatetotal = BigDecimal.ZERO;//获取清账单中对应的已认领收款金额 for (int i = 0; i < cleardoc.size(); i++) { clearEntryInfo = cleardoc.get(i); - entrytotal = entrytotal.add(clearEntryInfo.getBigDecimal("shjh_e_cursettle")); - if(clearEntryInfo.getBigDecimal("shjh_e_cursettle").signum() == -1){ +// entrytotal = entrytotal.add(clearEntryInfo.getBigDecimal("shjh_e_cursettle")); + if(isDZvourcherType(clearEntryInfo.getString("shjh_e_pzlx"))){ entrynegatetotal = entrynegatetotal.add(clearEntryInfo.getBigDecimal("shjh_e_cursettle")); } } @@ -350,7 +319,7 @@ public class ClearDetailBillOperation extends AbstractOperationServicePlugIn imp // } // //已认领收款金额=本次核销金额合计-账扣-尾差 // clearBillInfo.set("shjh_claimamount", entrytotal.subtract(q1).subtract(q2)); - //已认领收款金额=分录负数金额合计的绝对值 + //已认领收款金额=分录凭证类型DZ负数金额合计的绝对值 clearBillInfo.set("shjh_claimamount", entrynegatetotal.abs()); //未认领收款金额=收款金额-已认领收款金额 clearBillInfo.set("shjh_unclaimamount", q3.subtract(clearBillInfo.getBigDecimal("shjh_claimamount"))); @@ -395,7 +364,7 @@ public class ClearDetailBillOperation extends AbstractOperationServicePlugIn imp clearEntryInfo = cleardoc.get(i); if(idsets.contains(clearEntryInfo.getString("shjh_e_detailentryid"))){ cleardoc.remove(clearEntryInfo); - }else if(clearEntryInfo.getBigDecimal("shjh_e_cursettle").signum() == -1){ + }else if(isDZvourcherType(clearEntryInfo.getString("shjh_e_pzlx"))){ entrynegatetotal = entrynegatetotal.add(clearEntryInfo.getBigDecimal("shjh_e_cursettle")); } // else{ @@ -412,7 +381,7 @@ public class ClearDetailBillOperation extends AbstractOperationServicePlugIn imp clearBillInfo.set("shjh_diffamount",q2); //已认领收款金额=本次核销金额合计-账扣-尾差 // clearBillInfo.set("shjh_claimamount", entrytotal.subtract(q1).subtract(q2)); - //已认领收款金额=分录负数金额合计的绝对值 + //已认领收款金额=分录凭证类型DZ负数金额合计的绝对值 clearBillInfo.set("shjh_claimamount", entrynegatetotal.abs()); //未认领收款金额=收款金额-已认领收款金额 clearBillInfo.set("shjh_unclaimamount", JhzjUtils.reduceTwoAmount(clearBillInfo.getBigDecimal("shjh_receamount"),