|
@@ -1,21 +1,14 @@
|
|
|
package nckd.jimin.jyyy.fi.plugin.form.travelcheck;
|
|
|
|
|
|
-import com.grapecity.documents.excel.Q;
|
|
|
import kd.bos.bill.AbstractBillPlugIn;
|
|
|
import kd.bos.context.RequestContext;
|
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
-import kd.bos.dataentity.metadata.clr.DataEntityPropertyCollection;
|
|
|
import kd.bos.entity.EntityMetadataCache;
|
|
|
import kd.bos.entity.MainEntityType;
|
|
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
|
-import kd.bos.form.ShowType;
|
|
|
-import kd.bos.form.control.EntryGrid;
|
|
|
import kd.bos.form.events.BeforeDoOperationEventArgs;
|
|
|
-import kd.bos.form.events.HyperLinkClickEvent;
|
|
|
-import kd.bos.form.events.HyperLinkClickListener;
|
|
|
import kd.bos.form.operate.FormOperate;
|
|
|
-import kd.bos.list.ListShowParameter;
|
|
|
import kd.bos.orm.query.QCP;
|
|
|
import kd.bos.orm.query.QFilter;
|
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
@@ -25,8 +18,11 @@ import nckd.jimin.jyyy.fi.common.constant.BillConstant;
|
|
|
import nckd.jimin.jyyy.fi.common.constant.travelcheck.BusTravelCheckBillConstant;
|
|
|
import nckd.jimin.jyyy.fi.common.constant.travelcheck.FinanceBillConfirmConstant;
|
|
|
import nckd.jimin.jyyy.fi.common.constant.travelcheck.TripReqBillConstant;
|
|
|
-import nckd.jimin.jyyy.fi.common.constant.travelcheck.TravelFinanDraftConstant;
|
|
|
+import nckd.jimin.jyyy.fi.common.util.CommonUtils;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.Date;
|
|
|
import java.util.EventObject;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -34,6 +30,7 @@ import java.util.stream.Collectors;
|
|
|
import java.util.stream.IntStream;
|
|
|
|
|
|
public class BusTravelCheckBillEdit extends AbstractBillPlugIn implements BusTravelCheckBillConstant {
|
|
|
+ private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
|
@Override
|
|
|
public void beforeBindData(EventObject e) {
|
|
@@ -143,13 +140,57 @@ public class BusTravelCheckBillEdit extends AbstractBillPlugIn implements BusTra
|
|
|
int rowIndex = e.getChangeSet()[0].getRowIndex();
|
|
|
Object oldValue = e.getChangeSet()[0].getOldValue();
|
|
|
Object newValue = e.getChangeSet()[0].getNewValue();
|
|
|
+ DynamicObject entryRow = getModel().getEntryRowEntity(NCKD_BZ_SUPDATA.ENTITYID, rowIndex);
|
|
|
// 出差申请单号
|
|
|
- if(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL.equals(name)){
|
|
|
+ if(NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL.equals(name)){
|
|
|
tripReqBillChanged(oldValue, newValue, rowIndex);
|
|
|
}
|
|
|
- if(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_SUPDAYS.equals( name) || BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_SUAPMT.equals(name)){
|
|
|
+ if(NCKD_BZ_SUPDATA.NCKD_SUPDAYS.equals( name) || BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_SUAPMT.equals(name)){
|
|
|
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) ||
|
|
|
+ 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){
|
|
|
+ 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{
|
|
|
+ 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){
|
|
@@ -177,11 +218,14 @@ public class BusTravelCheckBillEdit extends AbstractBillPlugIn implements BusTra
|
|
|
protected int getApplierBzEntryRow(Long applierId){
|
|
|
int entryRowCount = this.getModel().getEntryRowCount(NCKD_BZ_ENTRY.ENTITYID);
|
|
|
for(int i = 0 ; i < entryRowCount ; i++){
|
|
|
- DynamicObject traverInfo = (DynamicObject) getModel().getValue(NCKD_BZ_ENTRY.NCKD_BZ_TRAVELER, i);
|
|
|
- // 通过出差人查询对应的补助分录
|
|
|
- if(traverInfo != null
|
|
|
- && traverInfo.getLong(ID) == applierId){
|
|
|
- return i;
|
|
|
+ DynamicObject bzInfo = (DynamicObject) getModel().getValue(NCKD_BZ_ENTRY.NCKD_BZ_INFO, i);
|
|
|
+ if(bzInfo != null){
|
|
|
+ DynamicObject traverInfo = bzInfo.getDynamicObject(NCKD_BZ_ENTRY.NCKD_BZ_TRAVELER);
|
|
|
+ // 通过出差人查询对应的补助分录
|
|
|
+ if(traverInfo != null
|
|
|
+ && traverInfo.getLong(ID) == applierId){
|
|
|
+ return i;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return -1;
|