|
@@ -142,55 +142,53 @@ public class BusTravelCheckBillEdit extends AbstractBillPlugIn implements BusTra
|
|
|
Object newValue = e.getChangeSet()[0].getNewValue();
|
|
|
DynamicObject entryRow = getModel().getEntryRowEntity(NCKD_BZ_SUPDATA.ENTITYID, rowIndex);
|
|
|
// 出差申请单号
|
|
|
- if(NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL.equals(name)){
|
|
|
+ if (NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL.equals(name)) {
|
|
|
tripReqBillChanged(oldValue, newValue, rowIndex);
|
|
|
}
|
|
|
- if(NCKD_BZ_SUPDATA.NCKD_SUPDAYS.equals( name) || BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_SUAPMT.equals(name)){
|
|
|
+ // 财务核定出差天数
|
|
|
+ if (NCKD_BZ_SUPDATA.NCKD_CHECKSUPDAYS.equals(name)) {
|
|
|
+ // 计算补助金额
|
|
|
+ Integer checkSupDay = (Integer) getModel().getValue(NCKD_BZ_SUPDATA.NCKD_CHECKSUPDAYS);
|
|
|
+ BigDecimal bzAmount = CommonUtils.getBzAmount();
|
|
|
+ getModel().setValue(NCKD_BZ_SUPDATA.NCKD_SUAPMT, bzAmount.multiply(new BigDecimal(checkSupDay)), rowIndex);
|
|
|
updateBzEntryFromUnCoveredData(rowIndex);
|
|
|
}
|
|
|
//监听单据内设置字段的值改变,用于计算新的日期范围控件的最早可选日期
|
|
|
-
|
|
|
-// if (NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RSTARTDATE.equals(name)){
|
|
|
-// Date startDate = entryRow.getDate(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RSTARTDATE);
|
|
|
-// Date tripStartDate = new Date(entryRow.getDynamicObject(NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL).getDate(TripReqBillConstant.RSTARTDATE).getTime());
|
|
|
-// if(startDate != null && tripStartDate != null && startDate.before(tripStartDate)){
|
|
|
-// getView().showTipNotification("未涵盖日期范围不能早于行程开始时间。");
|
|
|
-// entryRow.set(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RSTARTDATE,oldValue);
|
|
|
-// getView().updateView(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RSTARTDATE,rowIndex);
|
|
|
-// return;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// if(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RENDDATE.equals(name)){
|
|
|
-// Date endDate = entryRow.getDate(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RENDDATE);
|
|
|
-// Date tripEndDate = new Date(entryRow.getDynamicObject(NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL).getDate(TripReqBillConstant.RENDDATE).getTime());
|
|
|
-// if(endDate != null && tripEndDate != null && endDate.after(tripEndDate)){
|
|
|
-// getView().showTipNotification("未涵盖日期范围不能晚于行程结束时间。");
|
|
|
-// entryRow.set(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RENDDATE,oldValue);
|
|
|
-// getView().updateView(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RENDDATE,rowIndex);
|
|
|
-// return;
|
|
|
-// }
|
|
|
-// }
|
|
|
+ if (NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RSTARTDATE.equals(name)){
|
|
|
+ Date startDate = entryRow.getDate(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RSTARTDATE);
|
|
|
+ Date tripStartDate = new Date(entryRow.getDynamicObject(NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL).getDate(TripReqBillConstant.RSTARTDATE).getTime());
|
|
|
+ if(startDate != null && tripStartDate != null && startDate.before(tripStartDate)){
|
|
|
+ getView().showTipNotification("未涵盖日期范围不能早于行程开始时间。");
|
|
|
+ entryRow.set(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RSTARTDATE,null);
|
|
|
+ entryRow.set(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RENDDATE,null);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RENDDATE.equals(name)){
|
|
|
+ Date endDate = entryRow.getDate(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RENDDATE);
|
|
|
+ Date tripEndDate = new Date(entryRow.getDynamicObject(NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL).getDate(TripReqBillConstant.RENDDATE).getTime());
|
|
|
+ if(endDate != null && tripEndDate != null && endDate.after(tripEndDate)){
|
|
|
+ getView().showTipNotification("未涵盖日期范围不能晚于行程结束时间。");
|
|
|
+ entryRow.set(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RSTARTDATE,null);
|
|
|
+ entryRow.set(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RENDDATE,null);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
if (NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RSTARTDATE.equals(name) ||
|
|
|
- NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RENDDATE.equals(name)){
|
|
|
+ NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RENDDATE.equals(name)) {
|
|
|
Date startDate = entryRow.getDate(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RSTARTDATE);
|
|
|
Date endDate = entryRow.getDate(NCKD_BZ_SUPDATA.NCKD_BZDATERANGE_RENDDATE);
|
|
|
|
|
|
- if (startDate != null && endDate != null){
|
|
|
+ if (startDate != null && endDate != null) {
|
|
|
DynamicObject applierCpmpany = entryRow.getDynamicObject(NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL).getDynamicObject(TripReqBillConstant.COMPANY);
|
|
|
int days = CommonUtils.getDaysByWorkCalandar(startDate, endDate, applierCpmpany);
|
|
|
getModel().setValue(NCKD_BZ_SUPDATA.NCKD_SUPDAYS, days, rowIndex);
|
|
|
getModel().setValue(NCKD_BZ_SUPDATA.NCKD_CHECKSUPDAYS, days, rowIndex);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
getModel().setValue(NCKD_BZ_SUPDATA.NCKD_SUPDAYS, 0, rowIndex);
|
|
|
getModel().setValue(NCKD_BZ_SUPDATA.NCKD_CHECKSUPDAYS, 0, rowIndex);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- if(NCKD_BZ_SUPDATA.NCKD_CHECKSUPDAYS.equals(name)){
|
|
|
- Integer checkSupDay = (Integer) getModel().getValue(NCKD_BZ_SUPDATA.NCKD_CHECKSUPDAYS);
|
|
|
- BigDecimal bzAmount = CommonUtils.getBzAmount();
|
|
|
- getModel().setValue(NCKD_BZ_SUPDATA.NCKD_SUAPMT, bzAmount.multiply(new BigDecimal(checkSupDay)), rowIndex);
|
|
|
- }
|
|
|
}
|
|
|
protected void tripReqBillChanged(Object oldValue , Object newValue, int rowIndex){
|
|
|
if(oldValue != null){
|
|
@@ -209,10 +207,17 @@ public class BusTravelCheckBillEdit extends AbstractBillPlugIn implements BusTra
|
|
|
// 更新补助天数
|
|
|
int updateRow = getApplierBzEntryRow(tripReqBill.getDynamicObject(TripReqBillConstant.APPLIER).getLong(TripReqBillConstant.ID));
|
|
|
if(updateRow >= 0){
|
|
|
- getModel().setValue(NCKD_BZ_ENTRY.NCKD_BZ_SUPDAYS, this.getModel().getValue(NCKD_BZ_SUPDATA.NCKD_SUPDAYS,rowIndex) , updateRow);
|
|
|
+ // 更新财务核定天数到补助未涵盖天数
|
|
|
+ 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);
|
|
|
- }
|
|
|
|
|
|
+ DynamicObject bzInfo = (DynamicObject)this.getModel().getValue(NCKD_BZ_ENTRY.NCKD_BZ_INFO,updateRow);
|
|
|
+ //出差天数合计 = 出差天数 + 补助未涵盖天数
|
|
|
+ Integer sumDays = bzInfo.getInt(NCKD_BZ_ENTRY.NCKD_BZ_TRAVELDAYS) + (Integer)getModel().getValue(NCKD_BZ_ENTRY.NCKD_BZ_SUPDAYS,updateRow);
|
|
|
+ getModel().setValue(NCKD_BZ_ENTRY.NCKD_BZ_SUMDAYS, sumDays, updateRow);
|
|
|
+ BigDecimal sumAmount = CommonUtils.add(bzInfo.getBigDecimal(NCKD_BZ_ENTRY.NCKD_BZ_AMOUNT),(BigDecimal)getModel().getValue(NCKD_BZ_ENTRY.NCKD_BZ_ADJAMOUNT,updateRow));
|
|
|
+ getModel().setValue(NCKD_BZ_ENTRY.NCKD_BZ_CHECKAMT, sumAmount, updateRow);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
protected int getApplierBzEntryRow(Long applierId){
|