From 58b5dcb946cc905ab8516402db91585e6d63d296 Mon Sep 17 00:00:00 2001 From: xuhaihui <2098865055@qq.com> Date: Fri, 28 Nov 2025 14:56:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=87=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/EquipSettleFormPluginExt.java | 745 ++++++++++++++++++ 1 file changed, 745 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipSettleFormPluginExt.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipSettleFormPluginExt.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipSettleFormPluginExt.java new file mode 100644 index 0000000..50d7d03 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipSettleFormPluginExt.java @@ -0,0 +1,745 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + +package zcgj.zcdev.zcdev.pr.plugin.form; + +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.Calendar; +import java.util.Date; +import java.util.EventObject; +import java.util.List; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.resource.ResManager; +import kd.bos.dataentity.utils.StringUtils; +import kd.bos.entity.datamodel.ListSelectedRowCollection; +import kd.bos.entity.datamodel.events.ChangeData; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.ConfirmCallBackListener; +import kd.bos.form.MessageBoxOptions; +import kd.bos.form.MessageBoxResult; +import kd.bos.form.events.AfterDoOperationEventArgs; +import kd.bos.form.events.BeforeDoOperationEventArgs; +import kd.bos.form.events.MessageBoxClosedEvent; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.DateEdit; +import kd.bos.form.field.events.AfterF7SelectEvent; +import kd.bos.form.field.events.AfterF7SelectListener; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.form.operate.FormOperate; +import kd.bos.list.ListShowParameter; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.ec.basedata.common.utils.EcDateUtils; +import kd.ec.eceq.common.enums.EquipSettleObjectTypeEnum; +import kd.ec.eceq.formplugin.EquipSettleAutoFillHandler; +import kd.ec.eceq.formplugin.EquipSettlePriceSelectHandler; +import kd.ec.eceq.formplugin.util.EntryUtil; + +public class EquipSettleFormPluginExt extends AbstractBillPlugIn implements BeforeF7SelectListener, AfterF7SelectListener { + protected static final String OP_NEW_ENTRY = "newentry"; + protected static final String OP_AUTO = "auto"; + + public EquipSettleFormPluginExt() { + } + + public void afterCreateNewData(EventObject e) { + this.initSettlePeriod(); + EntryUtil.clearEntryData(this); + } + + public void afterBindData(EventObject e) { + super.afterBindData(e); + this.initSettleObjectType(); + this.initIsCost(); + this.setCostMustInput(); + } + + protected void initIsCost() { + Boolean isCost = (Boolean) this.getModel().getValue("iscost"); + BasedataEdit control = (BasedataEdit) this.getView().getControl("contract"); + if (isCost) { + if (control != null) { + control.setMustInput(true); + } + } else if (control != null) { + control.setMustInput(false); + } + + } + + protected void initSettleObjectType() { + String objectType = this.getCurSettleObjectType(); + if (StringUtils.isEmpty(objectType)) { + objectType = EquipSettleObjectTypeEnum.INTERNAL_ORG.getVal(); + } + + this.showSettleObjectType(objectType); + } + + protected void initSettlePeriod() { + Calendar cal = Calendar.getInstance(); + int year = cal.get(1); + int month = cal.get(2) + 1; + QFilter yearFilter = new QFilter("periodyear", "=", year); + QFilter monthFilter = new QFilter("periodnumber", "=", month); + DynamicObject[] peridoArr = BusinessDataServiceHelper.load("bd_period", "number,name,periodyear,periodnumber,begindate,enddate", new QFilter[]{yearFilter, monthFilter}); + if (peridoArr.length != 0) { + DynamicObject period = peridoArr[0]; + this.getModel().setValue("period", period); + this.updateTimeByPeriod(period); + this.updateTimeRange(period); + } + } + + protected void updateTimeByPeriod(DynamicObject period) { + if (period != null) { + Date beginDate = period.getDate("begindate"); + if (beginDate != null) { + this.getModel().setValue("begindate", beginDate); + } + + Date endDate = period.getDate("enddate"); + if (endDate != null) { + this.getModel().setValue("enddate", endDate); + } + + } + } + + protected void showSettleObjectType(String typeVal) { + if (!StringUtils.isEmpty(typeVal)) { + if (EquipSettleObjectTypeEnum.INTERNAL_ORG.getVal().equals(typeVal)) { + this.getView().setVisible(true, new String[]{"internalorg"}); + this.setMustInput("internalorg", true); + this.getView().setVisible(false, new String[]{"externalunit"}); + this.setMustInput("externalunit", false); + this.getModel().setValue("externalunit", (Object) null); + } else { + this.getView().setVisible(false, new String[]{"internalorg"}); + this.setMustInput("internalorg", false); + this.getModel().setValue("internalorg", (Object) null); + this.setMustInput("externalunit", true); + this.getView().setVisible(true, new String[]{"externalunit"}); + } + + } + } + + protected void setMustInput(String tag, Boolean must) { + BasedataEdit basedataEdit = (BasedataEdit) this.getControl(tag); + if (basedataEdit != null) { + basedataEdit.setMustInput(must); + } + + } + + public void registerListener(EventObject e) { + super.registerListener(e); + BasedataEdit equipmentEdit = (BasedataEdit) this.getControl("equipment"); + if (equipmentEdit != null) { + equipmentEdit.addBeforeF7SelectListener(this); + equipmentEdit.addAfterF7SelectListener(this); + } + + BasedataEdit contractEdit = (BasedataEdit) this.getControl("contract"); + if (contractEdit != null) { + contractEdit.addBeforeF7SelectListener(this); + } + + BasedataEdit ca = (BasedataEdit) this.getControl("ca"); + if (ca != null) { + ca.addBeforeF7SelectListener(this); + } + + BasedataEdit boq = (BasedataEdit) this.getControl("proboq"); + if (boq != null) { + boq.addBeforeF7SelectListener(this); + } + + BasedataEdit cbs = (BasedataEdit) this.getControl("procbs"); + if (cbs != null) { + cbs.addBeforeF7SelectListener(this); + } + + } + + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + switch (beforeF7SelectEvent.getProperty().getName()) { + case "equipment": + this.beforeEquipmentF7Selected(beforeF7SelectEvent); + break; + case "contract": + this.beforeContractF7Selected(beforeF7SelectEvent); + break; + case "ca": + this.beforeCAF7Selected(beforeF7SelectEvent); + break; + case "proboq": + this.beforeBOQF7Selected(beforeF7SelectEvent); + break; + case "procbs": + this.beforeCBSF7Selected(beforeF7SelectEvent); + } + + } + + public void afterF7Select(AfterF7SelectEvent afterF7SelectEvent) { + BasedataEdit basedataEdit = (BasedataEdit) afterF7SelectEvent.getSource(); + if ("equipment".equals(basedataEdit.getKey())) { + int currentRowIndex = afterF7SelectEvent.getCurrentRowIndex(); + ListSelectedRowCollection listSelectedRowCollection = afterF7SelectEvent.getListSelectedRowCollection(); + Object taxRate = this.getModel().getValue("taxrate"); + if (taxRate != null) { + for (int i = currentRowIndex; i < listSelectedRowCollection.size(); ++i) { + this.getModel().setValue("taxrateof", taxRate, i); + } + } + } + + } + + protected void beforeCAF7Selected(BeforeF7SelectEvent e) { + ListShowParameter listShowParameter = (ListShowParameter) e.getFormShowParameter(); + this.setSingleF7Selected(listShowParameter); + } + + protected void beforeBOQF7Selected(BeforeF7SelectEvent e) { + ListShowParameter listShowParameter = (ListShowParameter) e.getFormShowParameter(); + listShowParameter.setFormId("bos_listf7"); + this.setSingleF7Selected(listShowParameter); + this.setProjectFilter(listShowParameter); + this.setIsLeafFilter(listShowParameter); + } + + protected void beforeCBSF7Selected(BeforeF7SelectEvent e) { + ListShowParameter listShowParameter = (ListShowParameter) e.getFormShowParameter(); + listShowParameter.setFormId("bos_listf7"); + this.setSingleF7Selected(listShowParameter); + this.setProjectFilter(listShowParameter); + } + + protected void setSingleF7Selected(ListShowParameter listShowParameter) { + listShowParameter.setMultiSelect(false); + } + + protected void setProjectFilter(ListShowParameter listShowParameter) { + DynamicObject project = (DynamicObject) this.getModel().getValue("project"); + Long projectId = -1L; + if (project != null) { + projectId = (Long) project.getPkValue(); + } + + listShowParameter.getListFilterParameter().getQFilters().add(new QFilter("project", "=", projectId)); + } + + protected void setIsLeafFilter(ListShowParameter listShowParameter) { + listShowParameter.getListFilterParameter().getQFilters().add(new QFilter("isleaf", "=", "1")); + } + + protected void beforeContractF7Selected(BeforeF7SelectEvent e) { + DynamicObject project = (DynamicObject) this.getModel().getValue("project"); + if (project == null) { + this.getView().showTipNotification(ResManager.loadKDString("请先选择项目。", "EquipSettleFormPlugin_7", "ec-eceq-formplugin", new Object[0])); + e.setCancel(true); + } else { + ListShowParameter listShowParameter = (ListShowParameter) e.getFormShowParameter(); + QFilter qFilter = new QFilter("contracttype.contattr.basictype", "=", "04"); + qFilter.and("project", "=", project.getPkValue()); + DynamicObject curSettleObject = this.getCurSettleObject(); + if (curSettleObject != null) { + qFilter.and(new QFilter("partb", "=", curSettleObject.getPkValue())); + } + + qFilter.and(new QFilter("billstatus", "=", "C")); + listShowParameter.getListFilterParameter().getQFilters().add(qFilter); + } + } + + protected DynamicObject getCurSettleObject() { + String type = this.getCurSettleObjectType(); + return EquipSettleObjectTypeEnum.INTERNAL_ORG.getVal().equals(type) ? (DynamicObject) this.getModel().getValue("internalorg") : (DynamicObject) this.getModel().getValue("externalunit"); + } + + protected String getCurSettleObjectType() { + return (String) this.getModel().getValue("objecttype"); + } + + protected void beforeEquipmentF7Selected(BeforeF7SelectEvent e) { + DynamicObject project = (DynamicObject) this.getModel().getValue("project"); + if (project == null) { + this.getView().showTipNotification(ResManager.loadKDString("请选择工程项目。", "EquipSettleFormPlugin_0", "ec-eceq-formplugin", new Object[0])); + e.setCancel(true); + } else { + ListShowParameter listShowParameter = (ListShowParameter) e.getFormShowParameter(); + listShowParameter.setCustomParam("projectId", project.getPkValue()); + listShowParameter.setCustomParam("selectedId", EntryUtil.getEntryF7SelectedIds(this, "entryentity", "equipment")); + listShowParameter.setFormId("eceq_settleequipf7tpl"); + } + } + + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + switch (e.getProperty().getName()) { + case "contract": + this.onContractChange(e); + break; + case "project": + this.onProjectChange(e); + break; + case "taxrate": + this.onTaxRateChange(e); + break; + case "period": + this.onPeriodChange(e); + break; + case "objecttype": + this.onSettleObjectTypeChange(e); + break; + case "internalorg": + this.onInternalOrgChange(e); + break; + case "externalunit": + this.onExternalUnitChange(e); + break; + case "begindate": + this.onBeginDateChangeWithMessageBox(e); + break; + case "enddate": + this.onEndDateChangeWithMessageBox(e); + break; + case "usestartdate": + this.onEntryUseStartDateChange(e); + break; + case "useenddate": + this.onEntryUseEndDateChange(e); + break; + case "amount": + case "taxamount": + this.refreshHeaderAmount(); + break; + case "usedays": + this.onEntryUseDaysChange(e); + break; + case "iscost": + this.onIsCostChange(e); + } + + } + + protected void onEntryUseDaysChange(PropertyChangedArgs e) { + Object useDays = this.getModel().getValue("usedays"); + Integer accountNum = (Integer) this.getModel().getValue("accountnum"); + if (accountNum == null) { + this.getModel().setValue("accountnum", useDays); + } + + } + + protected void onEntryUseStartDateChange(PropertyChangedArgs e) { + ChangeData[] changeSet = e.getChangeSet(); + ChangeData changeData = changeSet[0]; + Date newStartDate = (Date) changeData.getNewValue(); + Date endDate = (Date) this.getModel().getValue("useenddate"); + if (!this.isEntryDateValid(newStartDate, endDate)) { + this.getView().showTipNotification(ResManager.loadKDString("使用开始日期必须不晚于结束日期。", "EquipSettleFormPlugin_1", "ec-eceq-formplugin", new Object[0])); + this.getModel().setValue("usestartdate", (Object) null); + this.getModel().setValue("usedays", 0); + } else { + this.resetEntryUseDays(); + } + } + + protected Boolean isEntryDateValid(Date startDate, Date endDate) { + return startDate != null && endDate != null ? startDate.compareTo(endDate) <= 0 : true; + } + + protected void resetEntryUseDays() { + Date startDate = (Date) this.getModel().getValue("usestartdate"); + Date endDate = (Date) this.getModel().getValue("useenddate"); + if (startDate != null && endDate != null) { + int daysBetweenTwoDate = EcDateUtils.getDaysBetweenTwoDate(startDate, endDate); + int currentRowIndex = this.getModel().getEntryCurrentRowIndex("entryentity"); + this.getModel().setValue("usedays", daysBetweenTwoDate, currentRowIndex); + } + + } + + protected void onEntryUseEndDateChange(PropertyChangedArgs e) { + ChangeData[] changeSet = e.getChangeSet(); + ChangeData changeData = changeSet[0]; + Date newEndDate = (Date) changeData.getNewValue(); + Date startDate = (Date) this.getModel().getValue("usestartdate"); + if (!this.isEntryDateValid(startDate, newEndDate)) { + this.getView().showTipNotification(ResManager.loadKDString("使用结束日期必须不早于开始日期。", "EquipSettleFormPlugin_2", "ec-eceq-formplugin", new Object[0])); + this.getModel().setValue("useenddate", (Object) null); + this.getModel().setValue("usedays", 0); + } else { + this.resetEntryUseDays(); + } + } + + protected void onProjectChange(PropertyChangedArgs e) { + if (EntryUtil.isEntryEmpty(this)) { + this.setCostMustInput(); + this.getModel().setValue("contract", (Object) null); + } else { + this.onChangeWithMessageBox(e, ResManager.loadKDString("修改项目会清空分录,是否继续?", "EquipSettleFormPlugin_3", "ec-eceq-formplugin", new Object[0]), "project"); + } + } + + protected void onChangeWithMessageBox(PropertyChangedArgs e, String message, String callBackId) { + ChangeData[] data = e.getChangeSet(); + if (data.length > 0) { + ChangeData changeData = data[0]; + Object newValue = changeData.getNewValue(); + Object oldValue = changeData.getOldValue(); + if (newValue == null || !newValue.equals(oldValue)) { + if (!EntryUtil.isEntryEmpty(this)) { + this.getView().showConfirm(message, MessageBoxOptions.OKCancel, new ConfirmCallBackListener(callBackId, this)); + String cacheOldValue = ""; + if (oldValue != null) { + if (oldValue instanceof DynamicObject) { + cacheOldValue = ((DynamicObject) oldValue).getPkValue().toString(); + } else if (oldValue instanceof Date) { + cacheOldValue = EcDateUtils.formatShortDate((Date) oldValue); + } else { + cacheOldValue = oldValue.toString(); + } + } + + this.getPageCache().put(callBackId, cacheOldValue); + } + + } + } + } + + protected void setCostMustInput() { + DynamicObject project = (DynamicObject) this.getModel().getValue("project"); + if (project != null) { + String costModelStr = project.getString("costcontrolmodel"); + if (!StringUtils.isEmpty(costModelStr)) { + String[] split = StringUtils.split(costModelStr, ","); + List costModel = Arrays.asList(split); + BasedataEdit cbs = (BasedataEdit) this.getControl("procbs"); + if (cbs != null && costModel.contains("1")) { + cbs.setMustInput(true); + } else { + cbs.setMustInput(false); + } + + BasedataEdit boq = (BasedataEdit) this.getControl("proboq"); + if (boq != null && costModel.contains("4")) { + boq.setMustInput(true); + } else { + boq.setMustInput(false); + } + + BasedataEdit ca = (BasedataEdit) this.getControl("ca"); + if (ca != null && costModel.contains("2")) { + ca.setMustInput(true); + } else { + ca.setMustInput(false); + } + + } + } + } + + protected void clearEntry() { + EntryUtil.clearEntryData(this); + this.refreshHeaderAmount(); + } + + protected void refreshHeaderAmount() { + BigDecimal curOfTaxAmount = EntryUtil.sumEntryAmount(this, "taxamount"); + this.getModel().setValue("curoftaxamount", curOfTaxAmount); + BigDecimal curAmount = EntryUtil.sumEntryAmount(this, "amount"); + this.getModel().setValue("curamount", curAmount); + BigDecimal totalTax = curOfTaxAmount.subtract(curAmount); + if (BigDecimal.ZERO.compareTo(totalTax) >= 0) { + totalTax = BigDecimal.ZERO; + } + + this.getModel().setValue("totaltax", totalTax); + } + + protected void onBeginDateChange() { + DynamicObject period = (DynamicObject) this.getModel().getValue("period"); + this.updateTimeRange(period); + } + + protected void onBeginDateChangeWithMessageBox(PropertyChangedArgs e) { + if (EntryUtil.isEntryEmpty(this)) { + this.onBeginDateChange(); + } else { + this.onChangeWithMessageBox(e, ResManager.loadKDString("修改开始日期会清空分录,是否继续?", "EquipSettleFormPlugin_8", "ec-eceq-formplugin", new Object[0]), "begindate"); + } + + } + + protected void onEndDateChangeWithMessageBox(PropertyChangedArgs e) { + if (EntryUtil.isEntryEmpty(this)) { + this.onEndDateChange(); + } else { + this.onChangeWithMessageBox(e, ResManager.loadKDString("修改结束日期会清空分录,是否继续?", "EquipSettleFormPlugin_9", "ec-eceq-formplugin", new Object[0]), "enddate"); + } + + } + + protected void onEndDateChange() { + DynamicObject period = (DynamicObject) this.getModel().getValue("period"); + this.updateTimeRange(period); + } + + protected void onInternalOrgChange(PropertyChangedArgs e) { + this.getModel().setValue("contract", (Object) null); + } + + protected void onExternalUnitChange(PropertyChangedArgs e) { + this.getModel().setValue("contract", (Object) null); + } + + protected void onSettleObjectTypeChange(PropertyChangedArgs e) { + String curSettleObjectType = this.getCurSettleObjectType(); + this.showSettleObjectType(curSettleObjectType); + } + + protected void onPeriodChange(PropertyChangedArgs e) { + if (EntryUtil.isEntryEmpty(this)) { + this.updateTimeValueAndRange(); + } + + this.onChangeWithMessageBox(e, ResManager.loadKDString("切换期间会清空分录,是否继续?", "EquipSettleFormPlugin_10", "ec-eceq-formplugin", new Object[0]), "period"); + } + + protected void updateTimeRange(DynamicObject period) { + if (period != null) { + Date periodBeginDate = period.getDate("begindate"); + Date periodEndDate = period.getDate("enddate"); + Date beginDate = (Date) this.getModel().getValue("begindate"); + Date endDate = (Date) this.getModel().getValue("enddate"); + this.setDateRange("begindate", periodBeginDate, endDate); + this.setDateRange("enddate", beginDate, periodEndDate); + this.updateEntryTimeRange(beginDate, endDate); + } + } + + protected void updateEntryTimeRange(Date beginDate, Date endDate) { + this.setDateRange("usestartdate", beginDate, endDate); + this.setDateRange("useenddate", beginDate, endDate); + } + + protected void setDateRange(String metaTag, Date minDate, Date maxDate) { + DateEdit dateEdit = (DateEdit) this.getControl(metaTag); + if (dateEdit != null) { + dateEdit.setMinDate(minDate); + dateEdit.setMaxDate(maxDate); + } + + } + + protected void onContractChange(PropertyChangedArgs e) { + ChangeData[] changeSet = e.getChangeSet(); + if (changeSet.length != 0) { + ChangeData changeData = changeSet[0]; + if (changeData.getNewValue() != null) { + (new EquipSettlePriceSelectHandler(this)).refreshEntryUnitPrice(); + this.refreshHeaderAmount(); + } + } + } + + protected void onTaxRateChange(PropertyChangedArgs e) { + } + + public void click(EventObject evt) { + super.click(evt); + } + + public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) { + super.afterDoOperation(afterDoOperationEventArgs); + switch (afterDoOperationEventArgs.getOperateKey()) { + case "newentry": + this.afterNewEntry(); + case "deleteentry": + this.afterDeleteEntry(); + default: + } + } + + public void beforeDoOperation(BeforeDoOperationEventArgs args) { + super.beforeDoOperation(args); + FormOperate formOperate = (FormOperate) args.getSource(); + switch (formOperate.getOperateKey()) { + case "auto": + this.beforeDoAutoCal(args); + default: + } + } + + protected void beforeDoAutoCal(BeforeDoOperationEventArgs args) { + Object project = this.getModel().getValue("project"); + if (project == null) { + this.getView().showTipNotification(ResManager.loadKDString("请选择项目。", "EquipSettleFormPlugin_4", "ec-eceq-formplugin", new Object[0])); + args.setCancel(true); + } else { + Object period = this.getModel().getValue("period"); + if (period == null) { + this.getView().showTipNotification(ResManager.loadKDString("请选择结算期间。", "EquipSettleFormPlugin_5", "ec-eceq-formplugin", new Object[0])); + args.setCancel(true); + } else { + Object beginDate = this.getModel().getValue("begindate"); + if (beginDate == null) { + this.getView().showTipNotification(ResManager.loadKDString("请选择开始日期。", "EquipSettleFormPlugin_11", "ec-eceq-formplugin", new Object[0])); + args.setCancel(true); + } else { + Object endDate = this.getModel().getValue("enddate"); + if (endDate == null) { + this.getView().showTipNotification(ResManager.loadKDString("请选择结束日期。", "EquipSettleFormPlugin_12", "ec-eceq-formplugin", new Object[0])); + args.setCancel(true); + } else { + boolean entryEmpty = EntryUtil.isEntryEmpty(this); + if (!entryEmpty) { + this.getView().showConfirm(ResManager.loadKDString("自动取数会清空分录,是否继续?", "EquipSettleFormPlugin_6", "ec-eceq-formplugin", new Object[0]), MessageBoxOptions.OKCancel, new ConfirmCallBackListener("auto", this)); + args.setCancel(true); + } else { + this.doAutoFill(); + } + } + } + } + } + } + + protected void afterNewEntry() { + Object taxRate = this.getModel().getValue("taxrate"); + if (taxRate != null) { + this.getModel().setValue("taxrateof", taxRate, this.getModel().getEntryCurrentRowIndex("entryentity")); + } + + } + + protected void afterDeleteEntry() { + this.refreshHeaderAmount(); + } + + public void confirmCallBack(MessageBoxClosedEvent messageBoxClosedEvent) { + super.confirmCallBack(messageBoxClosedEvent); + switch (messageBoxClosedEvent.getCallBackId()) { + case "project": + this.doProjectConfirmCallBack(messageBoxClosedEvent); + break; + case "auto": + this.doAutoCalConfirmCallBack(messageBoxClosedEvent); + break; + case "period": + this.doPeriodConfirmCallBack(messageBoxClosedEvent); + break; + case "begindate": + this.doBeginDateConfirmCallBack(messageBoxClosedEvent); + break; + case "enddate": + this.doEndDateConfirmCallBack(messageBoxClosedEvent); + } + + } + + protected void updateTimeValueAndRange() { + DynamicObject newPeriod = (DynamicObject) this.getModel().getValue("period"); + this.updateTimeByPeriod(newPeriod); + this.updateTimeRange(newPeriod); + } + + protected void doPeriodConfirmCallBack(MessageBoxClosedEvent messageBoxClosedEvent) { + if (messageBoxClosedEvent.getResult().equals(MessageBoxResult.Yes)) { + this.clearEntry(); + this.updateTimeValueAndRange(); + } else { + Long oldProject = Long.valueOf(this.getPageCache().get("period")); + this.getModel().beginInit(); + this.getModel().setValue("period", oldProject); + this.getView().updateView("period"); + this.getModel().endInit(); + } + + } + + protected void doBeginDateConfirmCallBack(MessageBoxClosedEvent messageBoxClosedEvent) { + if (messageBoxClosedEvent.getResult().equals(MessageBoxResult.Yes)) { + this.clearEntry(); + this.onBeginDateChange(); + } else { + Date oldBeginDate = EcDateUtils.parseShortDate(this.getPageCache().get("begindate")); + this.getModel().beginInit(); + this.getModel().setValue("begindate", oldBeginDate); + this.getView().updateView("begindate"); + this.getModel().endInit(); + } + + } + + protected void doEndDateConfirmCallBack(MessageBoxClosedEvent messageBoxClosedEvent) { + if (messageBoxClosedEvent.getResult().equals(MessageBoxResult.Yes)) { + this.clearEntry(); + this.onEndDateChange(); + } else { + Date oldBeginDate = EcDateUtils.parseShortDate(this.getPageCache().get("enddate")); + this.getModel().beginInit(); + this.getModel().setValue("enddate", oldBeginDate); + this.getView().updateView("enddate"); + this.getModel().endInit(); + } + + } + + protected void doProjectConfirmCallBack(MessageBoxClosedEvent messageBoxClosedEvent) { + if (messageBoxClosedEvent.getResult().equals(MessageBoxResult.Yes)) { + this.clearEntry(); + this.setCostMustInput(); + this.getModel().setValue("contract", (Object) null); + } else if (StringUtils.isNotEmpty(this.getPageCache().get("project"))) { + Long oldProject = Long.valueOf(this.getPageCache().get("project")); + this.getModel().beginInit(); + this.getModel().setValue("project", oldProject); + this.getView().updateView("project"); + this.getModel().endInit(); + } + + } + + protected void doAutoCalConfirmCallBack(MessageBoxClosedEvent messageBoxClosedEvent) { + if (messageBoxClosedEvent.getResult().equals(MessageBoxResult.Yes)) { + this.clearEntry(); + this.doAutoFill(); + } + + } + + protected void doAutoFill() { + (new EquipSettleAutoFillHandler(this)).autoFillEntryData(); + this.refreshHeaderAmount(); + } + + protected void onIsCostChange(PropertyChangedArgs e) { + ChangeData[] changeSet = e.getChangeSet(); + ChangeData changeData = changeSet[0]; + Boolean newValue = (Boolean) changeData.getNewValue(); + BasedataEdit control = (BasedataEdit) this.getView().getControl("contract"); + if (newValue) { + if (control != null) { + control.setMustInput(true); + } + } else if (control != null) { + control.setMustInput(false); + } + + this.getModel().setValue("contract", (Object) null); + } +}