|
|
@@ -339,8 +339,7 @@ public class SettlebillFormPlugin extends AbstractFormPlugin implements Plugin {
|
|
|
// 计算本次可核销金额(取主体剩余金额和辅助未核销金额的较小值)
|
|
|
BigDecimal writeOffAmount = remainingMainAmount.min(assistUnwrittenAmount);
|
|
|
|
|
|
- // 执行核销操作
|
|
|
- performRowWriteOffWithSupplier(mainBill, assistBill, writeOffAmount, mainSupplier);
|
|
|
+
|
|
|
|
|
|
// 更新主体行未核销金额
|
|
|
remainingMainAmount = remainingMainAmount.subtract(writeOffAmount);
|
|
|
@@ -350,6 +349,9 @@ public class SettlebillFormPlugin extends AbstractFormPlugin implements Plugin {
|
|
|
BigDecimal newAssistUnwrittenAmount = assistUnwrittenAmount.subtract(writeOffAmount);
|
|
|
assistBill.set("nckd_writeoffamount", newAssistUnwrittenAmount);
|
|
|
|
|
|
+ // 执行核销操作
|
|
|
+ performRowWriteOffWithSupplier(mainBill, assistBill, writeOffAmount, mainSupplier,remainingMainAmount,newAssistUnwrittenAmount);
|
|
|
+
|
|
|
System.out.println("主体行" + (i+1) + "(供应商:" + mainSupplier + ")与辅助行" + (j+1) +
|
|
|
"(供应商:" + assistSupplier + ")核销金额:" + writeOffAmount +
|
|
|
",主体剩余未核销:" + remainingMainAmount +
|
|
|
@@ -408,7 +410,7 @@ public class SettlebillFormPlugin extends AbstractFormPlugin implements Plugin {
|
|
|
* @param supplier 供应商信息
|
|
|
*/
|
|
|
private void performRowWriteOffWithSupplier(DynamicObject mainBill, DynamicObject assistBill,
|
|
|
- BigDecimal amount, String supplier) {
|
|
|
+ BigDecimal amount, String supplier,BigDecimal mainUnwrittenAmount,BigDecimal assistUnwrittenAmount) {
|
|
|
// 获取单据相关信息
|
|
|
String mainBillNo = mainBill.getString("nckd_billno");
|
|
|
String assistBillNo = assistBill.getString("nckd_billno1");
|
|
|
@@ -441,8 +443,8 @@ public class SettlebillFormPlugin extends AbstractFormPlugin implements Plugin {
|
|
|
//dyn.set("nckd_asstdate", assistBill.getDate("nckd_date1"));
|
|
|
dyn.set("nckd_mainamt", mainBill.getBigDecimal("nckd_amount"));
|
|
|
dyn.set("nckd_asstamt", assistBill.getBigDecimal("nckd_amount1"));
|
|
|
- dyn.set("nckd_maincheckamt", mainBill.getBigDecimal("nckd_writeamount"));
|
|
|
- dyn.set("nckd_asstcheckamt", assistBill.getBigDecimal("nckd_writeoffamount"));
|
|
|
+ dyn.set("nckd_maincheckamt", mainUnwrittenAmount);
|
|
|
+ dyn.set("nckd_asstcheckamt", assistUnwrittenAmount);
|
|
|
dyn.set("nckd_amount", amount);
|
|
|
dyn.set("enable", "1");
|
|
|
|