ソースを参照

付款反写预付借款单单头

wanwei 6 ヶ月 前
コミット
c163b2bde2
1 ファイル変更10 行追加23 行削除
  1. 10 23
      src/main/java/fi/cas/opplugin/PaymentProcessOpPlugin.java

+ 10 - 23
src/main/java/fi/cas/opplugin/PaymentProcessOpPlugin.java

@@ -63,7 +63,7 @@ public class PaymentProcessOpPlugin extends AbstractOperationServicePlugIn {
                 //循环数组获取结算状态,已结算金额,未结算金额
                 for (int c=0;c<gzDynamicObjects.length;c++) {
                     //应收挂帐单头数据包
-                    DynamicObject gzInfo = BusinessDataServiceHelper.loadSingle(gzDynamicObjects[i].getPkValue(), gzDynamicObjects[i].getDynamicObjectType().getName());
+                    DynamicObject gzInfo = BusinessDataServiceHelper.loadSingle(gzDynamicObjects[c].getPkValue(), gzDynamicObjects[c].getDynamicObjectType().getName());
                     //获取预付借款单id
                     String yfjkId = gzInfo.getString("sourcebillid");
                     if (!StringUtils.isEmpty(yfjkId)) {
@@ -90,8 +90,10 @@ public class PaymentProcessOpPlugin extends AbstractOperationServicePlugIn {
                         DynamicObject[] yfjkDynamicObjects = BusinessDataServiceHelper.load(nckd_er_prepaybill_ext,"id",new QFilter[] {nckd_yfjkFilter});
                         //循环数组获取结算状态,已结算金额,未结算金额
                         for (int d=0;d<yfjkDynamicObjects.length;d++) {
+                            BigDecimal nckd_amountfield5 = BigDecimal.ZERO;
+                            BigDecimal nckd_amountfield6 = BigDecimal.ZERO;
                             //预付借款单头数据包
-                            DynamicObject yfjkInfo = BusinessDataServiceHelper.loadSingle(yfjkDynamicObjects[i].getPkValue(), yfjkDynamicObjects[i].getDynamicObjectType().getName());
+                            DynamicObject yfjkInfo = BusinessDataServiceHelper.loadSingle(yfjkDynamicObjects[d].getPkValue(), yfjkDynamicObjects[d].getDynamicObjectType().getName());
                             //循环预付借款单预付借款信息分录
                             for (DynamicObject entryentity : yfjkInfo.getDynamicObjectCollection("expenseentryentity")) {
                                 //获取分录实付金额
@@ -102,7 +104,11 @@ public class PaymentProcessOpPlugin extends AbstractOperationServicePlugIn {
                                 //反写分录已结算金额,未结算金额
                                 entryentity.set("nckd_amountfield4",nckd_amountfield4);
                                 entryentity.set("nckd_amountfield3",nckd_amountfield3);
+                                nckd_amountfield5 = nckd_amountfield5.add(nckd_amountfield4);
+                                nckd_amountfield6 = nckd_amountfield6.add(nckd_amountfield3);
                             }
+                            yfjkInfo.set("nckd_amountfield5", nckd_amountfield5);
+                            yfjkInfo.set("nckd_amountfield6", nckd_amountfield6);
                             yfjkInfo.set("billstatus", "G");
                             SaveServiceHelper.save(new DynamicObject[]{yfjkInfo});
                         }
@@ -113,7 +119,7 @@ public class PaymentProcessOpPlugin extends AbstractOperationServicePlugIn {
                 //循环数组获取结算状态,已结算金额,未结算金额
                 for (int c=0;c<bxDynamicObjects.length;c++) {
                     //报销单头数据包
-                    DynamicObject bxInfo = BusinessDataServiceHelper.loadSingle(bxDynamicObjects[i].getPkValue(), bxDynamicObjects[i].getDynamicObjectType().getName());
+                    DynamicObject bxInfo = BusinessDataServiceHelper.loadSingle(bxDynamicObjects[c].getPkValue(), bxDynamicObjects[c].getDynamicObjectType().getName());
                     String nckd_sourcebillid = bxInfo.getString("nckd_sourcebillid");
                     //报账类型等于工程报账回写合同台账单
                     if (!StringUtils.isEmpty(nckd_sourcebillid)) {
@@ -124,7 +130,7 @@ public class PaymentProcessOpPlugin extends AbstractOperationServicePlugIn {
                         DynamicObject[] htDynamicObjects = BusinessDataServiceHelper.load(er_contractbill,"id",new QFilter[] {htFilter});
                         for (int j=0;j<htDynamicObjects.length;j++) {
                             //合同台账单头数据包
-                            DynamicObject htInfo = BusinessDataServiceHelper.loadSingle(htDynamicObjects[i].getPkValue(), htDynamicObjects[i].getDynamicObjectType().getName());
+                            DynamicObject htInfo = BusinessDataServiceHelper.loadSingle(htDynamicObjects[j].getPkValue(), htDynamicObjects[j].getDynamicObjectType().getName());
                             //反写付款明细
                             DynamicObjectCollection entryEntity = htInfo.getDynamicObjectCollection("nckd_payentry");
                             DynamicObject entry1 = entryEntity.addNew();
@@ -139,23 +145,4 @@ public class PaymentProcessOpPlugin extends AbstractOperationServicePlugIn {
             }
         }
     }
-
-    /*
-     * 给结算状态,结算金额,未结算金额赋值
-     * */
-    private void settleMethod(DynamicObject object ,String settlestatus ,String settleamount ,String unsettleamount ,BigDecimal totalSettledamt ,BigDecimal totalUnsettledamt) {
-        if (totalSettledamt.compareTo(BigDecimal.ZERO) > 0 && totalUnsettledamt.compareTo(BigDecimal.ZERO) == 0) {
-            object.set(settlestatus, SettlementStatusEnum.已结算.getValue());
-            object.set(settleamount, totalSettledamt);
-            object.set(unsettleamount, totalUnsettledamt);
-        } else if (totalUnsettledamt.compareTo(BigDecimal.ZERO) > 0 && totalSettledamt.compareTo(BigDecimal.ZERO) == 0) {
-            object.set(settlestatus, SettlementStatusEnum.未结算.getValue());
-            object.set(settleamount, totalSettledamt);
-            object.set(unsettleamount, totalUnsettledamt);
-        } else if (totalSettledamt.compareTo(BigDecimal.ZERO) > 0 && totalUnsettledamt.compareTo(BigDecimal.ZERO) > 0) {
-            object.set(settlestatus, SettlementStatusEnum.部分结算.getValue());
-            object.set(settleamount, totalSettledamt);
-            object.set(unsettleamount, totalUnsettledamt);
-        }
-    }
 }