diff --git a/src/main/java/com/yem/wm/im/debcrednotenew/op/DebCredNewSubmitOp.java b/src/main/java/com/yem/wm/im/debcrednotenew/op/DebCredNewSubmitOp.java index 9e1d1753..d72bd132 100644 --- a/src/main/java/com/yem/wm/im/debcrednotenew/op/DebCredNewSubmitOp.java +++ b/src/main/java/com/yem/wm/im/debcrednotenew/op/DebCredNewSubmitOp.java @@ -52,8 +52,33 @@ public class DebCredNewSubmitOp extends AbstractOperationServicePlugIn { public void beforeExecuteOperationTransaction(BeforeOperationArgs e) { super.beforeExecuteOperationTransaction(e); for (ExtendedDataEntity dataEntity : e.getSelectedRows()) { - DynamicObject billObj = dataEntity.getDataEntity(); - getlast(billObj); + DynamicObject dynamicObject = dataEntity.getDataEntity(); + DynamicObject billObj = BusinessDataServiceHelper.loadSingle(dynamicObject.getPkValue(), dynamicObject.getDynamicObjectType().getName()); + DynamicObject yemCurrency = billObj.getDynamicObject("yem_currency"); + getlast(dynamicObject); + if (yemCurrency!=null){ + /* + (1)如果结算币别=美元: + ① 扣减后金额(美元)=上次美元金额(实际)+ 配件资金池增加金额-配件资金池扣减金额; + ② 扣减后金额(人民币)= 上次人民币金额(实际); + (2)如果结算币别=人民币: + ① 扣减后金额(美元)=上次美元金额(实际); + ② 扣减后金额(人民币)= 上次人民币金额(实际)+ 配件资金池增加金额-配件资金池扣减金额; + */ + String number = yemCurrency.getString("number"); + BigDecimal yemCreditusdamt = billObj.getBigDecimal("yem_creditusdamt");//上次美元金额(实际) + BigDecimal yemCreditrmbamt = billObj.getBigDecimal("yem_creditrmbamt");//上次人民币金额(实际) + BigDecimal yemAmount = billObj.getBigDecimal("yem_amount");//配件资金池增加金额 + BigDecimal yemAmountSub = billObj.getBigDecimal("yem_amount_sub");//配件资金池扣减金额 + if ("CNY".equals(number)){ + dynamicObject.set("yem_koujianusd",yemCreditusdamt); + dynamicObject.set("yem_koujiancny",yemCreditrmbamt.add(yemAmount.subtract(yemAmountSub))); + }else if ("USD".equals(number)){ + dynamicObject.set("yem_koujianusd",yemCreditusdamt.add(yemAmount.subtract(yemAmountSub))); + dynamicObject.set("yem_koujiancny",yemCreditrmbamt); + } + } + SaveServiceHelper.update(dynamicObject); } } /** @@ -155,7 +180,5 @@ public class DebCredNewSubmitOp extends AbstractOperationServicePlugIn { } } } - - SaveServiceHelper.update(temp); } }