This commit is contained in:
parent
31f67bd356
commit
58b5dcb946
|
|
@ -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<String> 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);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue