Ver código fonte

1、李盛提交的代码

wanghaiwu 1 dia atrás
pai
commit
65f7488d1d

+ 18 - 3
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/travelcheck/BusTravelCheckBillEdit.java

@@ -124,11 +124,26 @@ public class BusTravelCheckBillEdit extends AbstractBillPlugIn implements BusTra
     protected void updateBzEntryFromUnCoveredData(int rowIndex){
         DynamicObject tripReqBill = (DynamicObject)this.getModel().getValue(NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL, rowIndex);
         // 更新补助天数
-        int updateRow = getApplierBzEntryRow(tripReqBill.getDynamicObject(TripReqBillConstant.APPLIER).getLong(TripReqBillConstant.ID));
+        long applierId = tripReqBill.getDynamicObject(TripReqBillConstant.APPLIER).getLong(TripReqBillConstant.ID);
+        int updateRow = getApplierBzEntryRow(applierId);
         if(updateRow >= 0){
             // 更新财务核定天数到补助未涵盖天数
-            getModel().setValue(NCKD_BZ_ENTRY.NCKD_BZ_SUPDAYS, this.getModel().getValue(NCKD_BZ_SUPDATA.NCKD_CHECKSUPDAYS,rowIndex) , updateRow);
-            getModel().setValue(NCKD_BZ_ENTRY.NCKD_BZ_ADJAMOUNT, this.getModel().getValue(NCKD_BZ_SUPDATA.NCKD_SUAPMT,rowIndex)  , updateRow);
+            DynamicObjectCollection supEntryCol = getModel().getEntryEntity(NCKD_BZ_SUPDATA.ENTITYID);
+
+            // 合计同一出差人的补助未涵盖中的 财务核定出差天数 、补助金额
+            Integer sumCheckSupDays = 0;
+            BigDecimal sumSupAmount = BigDecimal.ZERO;
+            for(DynamicObject supEntry : supEntryCol){
+                if(supEntry.getDynamicObject(NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL) != null
+                    && supEntry.getDynamicObject(NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL).getDynamicObject(TripReqBillConstant.APPLIER) != null
+                    && supEntry.getDynamicObject(NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL).getDynamicObject(TripReqBillConstant.APPLIER).getLong(TripReqBillConstant.ID) == applierId){
+                    sumCheckSupDays = sumCheckSupDays + supEntry.getInt(NCKD_BZ_SUPDATA.NCKD_CHECKSUPDAYS);
+                    sumSupAmount = sumSupAmount.add(supEntry.getBigDecimal(NCKD_BZ_SUPDATA.NCKD_SUAPMT));
+                }
+            }
+            getModel().setValue(NCKD_BZ_ENTRY.NCKD_BZ_SUPDAYS, sumCheckSupDays , updateRow);
+            getModel().setValue(NCKD_BZ_ENTRY.NCKD_BZ_ADJAMOUNT, sumSupAmount , updateRow);
+
 
             //出差天数合计 = 出差天数 + 补助未涵盖天数
             Integer sumDays = (Integer)getModel().getValue(NCKD_BZ_ENTRY.NCKD_BZ_TRAVELDAYS,updateRow) + (Integer)getModel().getValue(NCKD_BZ_ENTRY.NCKD_BZ_SUPDAYS,updateRow);