清账明细单反写清账单已认领金额按照凭证类型DZ来判断
This commit is contained in:
parent
38e2721ee4
commit
488b84fb88
|
|
@ -188,37 +188,6 @@ public class ClearDetailBillOperation extends AbstractOperationServicePlugIn imp
|
||||||
return "ok";
|
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 q3 = clearBillInfo.getBigDecimal("shjh_receamount");
|
||||||
//获取清账单的本次核销金额合计
|
//获取清账单的本次核销金额合计
|
||||||
BigDecimal entrytotal = BigDecimal.ZERO;
|
// BigDecimal entrytotal = BigDecimal.ZERO;
|
||||||
BigDecimal entrynegatetotal = BigDecimal.ZERO;//获取清账单中对应的已认领收款金额
|
BigDecimal entrynegatetotal = BigDecimal.ZERO;//获取清账单中对应的已认领收款金额
|
||||||
for (int i = 0; i < cleardoc.size(); i++) {
|
for (int i = 0; i < cleardoc.size(); i++) {
|
||||||
clearEntryInfo = cleardoc.get(i);
|
clearEntryInfo = cleardoc.get(i);
|
||||||
entrytotal = entrytotal.add(clearEntryInfo.getBigDecimal("shjh_e_cursettle"));
|
// entrytotal = entrytotal.add(clearEntryInfo.getBigDecimal("shjh_e_cursettle"));
|
||||||
if(clearEntryInfo.getBigDecimal("shjh_e_cursettle").signum() == -1){
|
if(isDZvourcherType(clearEntryInfo.getString("shjh_e_pzlx"))){
|
||||||
entrynegatetotal = entrynegatetotal.add(clearEntryInfo.getBigDecimal("shjh_e_cursettle"));
|
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));
|
// clearBillInfo.set("shjh_claimamount", entrytotal.subtract(q1).subtract(q2));
|
||||||
//已认领收款金额=分录负数金额合计的绝对值
|
//已认领收款金额=分录凭证类型DZ负数金额合计的绝对值
|
||||||
clearBillInfo.set("shjh_claimamount", entrynegatetotal.abs());
|
clearBillInfo.set("shjh_claimamount", entrynegatetotal.abs());
|
||||||
//未认领收款金额=收款金额-已认领收款金额
|
//未认领收款金额=收款金额-已认领收款金额
|
||||||
clearBillInfo.set("shjh_unclaimamount", q3.subtract(clearBillInfo.getBigDecimal("shjh_claimamount")));
|
clearBillInfo.set("shjh_unclaimamount", q3.subtract(clearBillInfo.getBigDecimal("shjh_claimamount")));
|
||||||
|
|
@ -395,7 +364,7 @@ public class ClearDetailBillOperation extends AbstractOperationServicePlugIn imp
|
||||||
clearEntryInfo = cleardoc.get(i);
|
clearEntryInfo = cleardoc.get(i);
|
||||||
if(idsets.contains(clearEntryInfo.getString("shjh_e_detailentryid"))){
|
if(idsets.contains(clearEntryInfo.getString("shjh_e_detailentryid"))){
|
||||||
cleardoc.remove(clearEntryInfo);
|
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"));
|
entrynegatetotal = entrynegatetotal.add(clearEntryInfo.getBigDecimal("shjh_e_cursettle"));
|
||||||
}
|
}
|
||||||
// else{
|
// else{
|
||||||
|
|
@ -412,7 +381,7 @@ public class ClearDetailBillOperation extends AbstractOperationServicePlugIn imp
|
||||||
clearBillInfo.set("shjh_diffamount",q2);
|
clearBillInfo.set("shjh_diffamount",q2);
|
||||||
//已认领收款金额=本次核销金额合计-账扣-尾差
|
//已认领收款金额=本次核销金额合计-账扣-尾差
|
||||||
// clearBillInfo.set("shjh_claimamount", entrytotal.subtract(q1).subtract(q2));
|
// clearBillInfo.set("shjh_claimamount", entrytotal.subtract(q1).subtract(q2));
|
||||||
//已认领收款金额=分录负数金额合计的绝对值
|
//已认领收款金额=分录凭证类型DZ负数金额合计的绝对值
|
||||||
clearBillInfo.set("shjh_claimamount", entrynegatetotal.abs());
|
clearBillInfo.set("shjh_claimamount", entrynegatetotal.abs());
|
||||||
//未认领收款金额=收款金额-已认领收款金额
|
//未认领收款金额=收款金额-已认领收款金额
|
||||||
clearBillInfo.set("shjh_unclaimamount", JhzjUtils.reduceTwoAmount(clearBillInfo.getBigDecimal("shjh_receamount"),
|
clearBillInfo.set("shjh_unclaimamount", JhzjUtils.reduceTwoAmount(clearBillInfo.getBigDecimal("shjh_receamount"),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue