|
|
@@ -0,0 +1,78 @@
|
|
|
+package nckd.xtpoc.fi.app.plugin.form;
|
|
|
+
|
|
|
+import kd.bos.bill.AbstractBillPlugIn;
|
|
|
+import kd.bos.dataentity.entity.DynamicObject;
|
|
|
+import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
+import kd.bos.entity.datamodel.events.BizDataEventArgs;
|
|
|
+import kd.bos.entity.datamodel.events.ChangeData;
|
|
|
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
|
+
|
|
|
+import java.util.EventObject;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 费用申请单:nckd_er_dailyapplybil_ext
|
|
|
+ */
|
|
|
+public class DailyApplyBillCusEditPlugin extends AbstractBillPlugIn {
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void registerListener(EventObject e) {
|
|
|
+ super.registerListener(e);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void createNewData(BizDataEventArgs e) {
|
|
|
+ super.createNewData(e);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void afterBindData(EventObject e) {
|
|
|
+ super.afterBindData(e);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void propertyChanged(PropertyChangedArgs e) {
|
|
|
+ super.propertyChanged(e);
|
|
|
+ String propertyName = e.getProperty().getName();
|
|
|
+ ChangeData changeData = e.getChangeSet()[0];
|
|
|
+ int rowIndex = changeData.getRowIndex();
|
|
|
+ if ("expenseitem".equals(propertyName)) {
|
|
|
+ // 设置【供应商、车牌号】字段的显示
|
|
|
+ setSupplierVisibleByExpenseItem();
|
|
|
+ // 设置字段锁定和清空
|
|
|
+ Object newValue = changeData.getNewValue();
|
|
|
+ if (newValue != null && "FY00202".equals(((DynamicObject) newValue).getString("number"))) {
|
|
|
+ this.getView().setEnable(true, rowIndex, "nckd_supplier");
|
|
|
+ this.getView().setEnable(true, rowIndex, "nckd_plateno");
|
|
|
+ } else {
|
|
|
+ // 清空供应商和车牌号
|
|
|
+ this.getModel().setValue("nckd_supplier", null, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_plateno", null, rowIndex);
|
|
|
+ // 锁定供应商和车牌号
|
|
|
+ this.getView().setEnable(false, rowIndex, "nckd_supplier");
|
|
|
+ this.getView().setEnable(false, rowIndex, "nckd_plateno");
|
|
|
+ }
|
|
|
+ e.getChangeSet();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 费用明细分录,根据【费用项目】控制【供应商、车牌号】字段的显示
|
|
|
+ * 费用项目 = FY00202,显示【供应商、车牌号】字段,而且必录
|
|
|
+ */
|
|
|
+ private void setSupplierVisibleByExpenseItem() {
|
|
|
+ DynamicObject dataEntity = getModel().getDataEntity(true);
|
|
|
+ DynamicObjectCollection expenseEntryCols = dataEntity.getDynamicObjectCollection("expenseentryentity");
|
|
|
+ boolean isShowBookClass = false;
|
|
|
+ for (DynamicObject expenseEntry : expenseEntryCols) {
|
|
|
+ DynamicObject enpenseItem = expenseEntry.getDynamicObject("expenseitem");
|
|
|
+ if (enpenseItem != null && "FY00202".equals(enpenseItem.getString("number"))) {
|
|
|
+ isShowBookClass = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.getView().setVisible(isShowBookClass, "nckd_supplier");
|
|
|
+ this.getView().setVisible(isShowBookClass, "nckd_plateno");
|
|
|
+ }
|
|
|
+
|
|
|
+}
|