付款单原币为0可以保存

This commit is contained in:
lihao 2025-04-09 13:57:18 +08:00
parent 1f38628e81
commit 3ba56293fe
2 changed files with 23 additions and 22 deletions

View File

@ -31,6 +31,7 @@ public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction
this.validatorCode.add(93);
this.validatorCode.add(94);
this.validatorCode.add(100);
this.validatorCode.remove(44);
}
protected void doBeforeUpdate(AggregatedValueObject[] bills, AggregatedValueObject[] orginBills) throws BusinessException {
@ -41,34 +42,34 @@ public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction
}
/**
* 收款单保存校验关联的销售订单实际收款金额是否超过价税合计
* 收款单保存校验关联的销售订单实际收款金额是否超过价税合计
*/
int i = 0;
for(AggregatedValueObject bill : bills) {
AggregatedValueObject oriBill = orginBills[i++];
BaseBillVO billVO = (BaseBillVO) bill.getParentVO(); //修改的收款单
BaseBillVO billOriVO = (BaseBillVO) oriBill.getParentVO(); //之前的收款单
UFDouble money = billVO.getMoney(); //修改后的金额
UFDouble oriMoney = billOriVO.getMoney(); //修改前的金额
BaseBillVO billVO = (BaseBillVO) bill.getParentVO(); //修改的收款单
BaseBillVO billOriVO = (BaseBillVO) oriBill.getParentVO(); //之前的收款单
UFDouble money = billVO.getMoney(); //修改后的金额
UFDouble oriMoney = billOriVO.getMoney(); //修改前的金额
String pk_tradetype = billVO.getPk_tradetype();
if(!"F2-Cxx-02".equals(pk_tradetype)){
continue;
}
String def3 = billVO.getDef3(); //收款单对应的销售订单id
String def3 = billVO.getDef3(); //收款单对应的销售订单id
if(StringUtil.isEmpty(def3) || "N".equals(def3) || "~".equals(def3)){
//无绑定的销售订单则下一次循环
//无绑定的销售订单则下一次循环
continue;
}
//计算收款单金额差值
//计算收款单金额差值
UFDouble changeMoney = money.sub(oriMoney);
//根据销售订单id去查询销售订单
//根据销售订单id去查询销售订单
BaseDAO dao = new BaseDAO();
String sql = "select nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" +def3+"'";
Map saleMap = (Map)dao.executeQuery(sql, new MapProcessor());
//销售订单价税合计
//销售订单价税合计
UFDouble ntotalorigmny = UFDouble.ZERO_DBL;
//销售订单实际收款金额
//销售订单实际收款金额
UFDouble nreceivedmny = UFDouble.ZERO_DBL;
if(saleMap != null) {
nreceivedmny = new UFDouble(saleMap.get("nreceivedmny") == null ? "0" : saleMap.get("nreceivedmny").toString());
@ -76,7 +77,7 @@ public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction
}
UFDouble moreMoney = nreceivedmny.add(changeMoney).sub(ntotalorigmny);
if(nreceivedmny.add(changeMoney).compareTo(ntotalorigmny) > 0){
throw new BusinessException("【该笔收款已超销售订单"+ moreMoney +"元,无法传输!请检查订单累计收款金额!】");
throw new BusinessException("【该笔收款已超销售订单"+ moreMoney +"元,无法传输!请检查订单累计收款金额!】");
}
}

View File

@ -30,7 +30,7 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction {
this.validatorCode.add(8);
this.validatorCode.add(24);
this.validatorCode.add(28);
this.validatorCode.add(44);
// this.validatorCode.add(44);
this.validatorCode.add(46);
this.validatorCode.add(31);
this.validatorCode.add(36);
@ -59,29 +59,29 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction {
ArapBillVOUtils.setDefaultSettleFlag(bills);
/**
* 收款单保存校验关联的销售订单实际收款金额是否超过价税合计
* 收款单保存校验关联的销售订单实际收款金额是否超过价税合计
*/
for(AggregatedValueObject bill : bills) {
BaseBillVO billVO = (BaseBillVO) bill.getParentVO(); //修改的收款单
UFDouble money = billVO.getMoney(); //金额
BaseBillVO billVO = (BaseBillVO) bill.getParentVO(); //修改的收款单
UFDouble money = billVO.getMoney(); //金额
String pk_tradetype = billVO.getPk_tradetype();
if(!"F2-Cxx-02".equals(pk_tradetype)){
continue;
}
String def3 = billVO.getDef3(); //收款单对应的销售订单id
String def3 = billVO.getDef3(); //收款单对应的销售订单id
if(StringUtil.isEmpty(def3) || "N".equals(def3) || "~".equals(def3)){
//无绑定的销售订单则下一次循环
//无绑定的销售订单则下一次循环
continue;
}
//根据销售订单id去查询销售订单
//根据销售订单id去查询销售订单
BaseDAO dao = new BaseDAO();
String sql = "select nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" +def3+"'";
Map saleMap = (Map)dao.executeQuery(sql, new MapProcessor());
//销售订单价税合计
//销售订单价税合计
UFDouble ntotalorigmny = UFDouble.ZERO_DBL;
//销售订单实际收款金额
//销售订单实际收款金额
UFDouble nreceivedmny = UFDouble.ZERO_DBL;
if(saleMap != null) {
nreceivedmny = new UFDouble(saleMap.get("nreceivedmny") == null ? "0" : saleMap.get("nreceivedmny").toString());
@ -89,7 +89,7 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction {
}
UFDouble moreMoney = nreceivedmny.add(money).sub(ntotalorigmny);
if(nreceivedmny.add(money).compareTo(ntotalorigmny) > 0){
throw new BusinessException("【该笔收款已超销售订单"+ moreMoney +"元,无法传输!请检查订单累计收款金额!】");
throw new BusinessException("【该笔收款已超销售订单"+ moreMoney +"元,无法传输!请检查订单累计收款金额!】");
}
}
}