This commit is contained in:
parent
f52b7ad44a
commit
d1a7de5f5c
|
@ -0,0 +1,123 @@
|
||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package zcgj.zcdev.zcdev.pr.plugin.form;
|
||||||
|
|
||||||
|
import java.util.EventObject;
|
||||||
|
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.BasedataEntityType;
|
||||||
|
import kd.bos.entity.EntityMetadataCache;
|
||||||
|
import kd.bos.form.field.BasedataEdit;
|
||||||
|
import kd.bos.form.field.FieldEdit;
|
||||||
|
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.list.ListShowParameter;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.basedata.BaseDataRefrenceHelper;
|
||||||
|
import kd.ec.basedata.common.utils.OpenPageUtils;
|
||||||
|
|
||||||
|
public class DepotEditPluginExt extends AbstractBillPlugIn implements BeforeF7SelectListener, AfterF7SelectListener {
|
||||||
|
private static final String PROJECT = "project";
|
||||||
|
private static final String EC_PROJECT = "ec_project";
|
||||||
|
|
||||||
|
public DepotEditPluginExt() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void afterCreateNewData(EventObject e) {
|
||||||
|
super.afterCreateNewData(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void registerListener(EventObject e) {
|
||||||
|
super.registerListener(e);
|
||||||
|
BasedataEdit projectEdit = (BasedataEdit)this.getView().getControl("project");
|
||||||
|
projectEdit.addBeforeF7SelectListener(this);
|
||||||
|
projectEdit.addAfterF7SelectListener(this);
|
||||||
|
BasedataEdit unitProjectEdit = (BasedataEdit)this.getView().getControl("unitProject");
|
||||||
|
unitProjectEdit.addBeforeF7SelectListener(this);
|
||||||
|
BasedataEdit proj = (BasedataEdit)this.getView().getControl("project");
|
||||||
|
if (proj != null) {
|
||||||
|
proj.addBeforeF7ViewDetailListener((beforeF7ViewDetailEvent) -> {
|
||||||
|
beforeF7ViewDetailEvent.setCancel(true);
|
||||||
|
this.getView().showForm(OpenPageUtils.buildBillShowParam(beforeF7ViewDetailEvent.getPkId(), "ec_project"));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void beforeF7Select(BeforeF7SelectEvent paramBeforeF7SelectEvent) {
|
||||||
|
String propName = paramBeforeF7SelectEvent.getProperty().getName();
|
||||||
|
if (!StringUtils.equals(propName, "project") && StringUtils.equals("unitproject", propName)) {
|
||||||
|
ListShowParameter parameter = (ListShowParameter)paramBeforeF7SelectEvent.getFormShowParameter();
|
||||||
|
DynamicObject org = (DynamicObject)this.getModel().getValue("org");
|
||||||
|
Long orgId = (Long)org.getPkValue();
|
||||||
|
DynamicObject project = (DynamicObject)this.getModel().getValue("project");
|
||||||
|
if (project == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFilter projectFilter = new QFilter("parent", "=", project.getPkValue());
|
||||||
|
parameter.getListFilterParameter().getQFilters().add(projectFilter);
|
||||||
|
Long projectOrgId = (Long)project.getDynamicObject("projectorg").getPkValue();
|
||||||
|
if (projectOrgId.equals(orgId)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFilter orgFilter = new QFilter("responsibleorg", "=", org.getPkValue());
|
||||||
|
parameter.getListFilterParameter().getQFilters().add(orgFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void afterF7Select(AfterF7SelectEvent afterF7SelectEvent) {
|
||||||
|
FieldEdit fieldEdit = (FieldEdit)afterF7SelectEvent.getSource();
|
||||||
|
if (StringUtils.equals("project", fieldEdit.getKey())) {
|
||||||
|
this.getModel().setValue("unitproject", (Object)null);
|
||||||
|
this.setUnitProject();
|
||||||
|
this.getView().updateView("unitproject");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void afterBindData(EventObject e) {
|
||||||
|
super.afterBindData(e);
|
||||||
|
Object pkValue = this.getModel().getDataEntity().getPkValue();
|
||||||
|
if (pkValue != null) {
|
||||||
|
boolean isRefrenced = BaseDataRefrenceHelper.isRefrenced((BasedataEntityType)EntityMetadataCache.getDataEntityType("ecma_depot"), pkValue);
|
||||||
|
if (isRefrenced) {
|
||||||
|
this.getView().setEnable(false, new String[]{"project"});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.getModel().setValue("instruction", this.getInstruction());
|
||||||
|
this.setUnitProject();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setUnitProject() {
|
||||||
|
DynamicObject project = (DynamicObject)this.getModel().getValue("project");
|
||||||
|
FieldEdit unitProjectEdit = (FieldEdit)this.getView().getControl("unitproject");
|
||||||
|
if (project == null) {
|
||||||
|
this.getView().setEnable(false, new String[]{"unitproject"});
|
||||||
|
unitProjectEdit.setMustInput(false);
|
||||||
|
} else {
|
||||||
|
boolean editOnUnit = project.getBoolean("editonunit");
|
||||||
|
if (editOnUnit) {
|
||||||
|
this.getView().setEnable(true, new String[]{"unitproject"});
|
||||||
|
} else {
|
||||||
|
unitProjectEdit.setMustInput(false);
|
||||||
|
this.getView().setEnable(false, new String[]{"unitproject"});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected String getInstruction() {
|
||||||
|
return ResManager.loadKDString("本软件按加权平均计算各种材料的当前库存和出库单价(材料需规格型号、单位、批次相同);如不需使用加权平均计算,请结合使用入库、出库单的批次功能。 加权平均的计算范围首先按工程项目,再按仓库,即:属于同一个工程项目的仓库(可能多个仓库),在本工程项目内一并计算;仓库没有设置工程项目时,每种材料在本仓库范围内均独立加权平均计算。 为保证单价计算的准确性,请初始设置仓库时就明确相关范围,中途修改会导致因为计算范围的调整,单价出错。", "DepotEditPlugin_0", "ec-ecma-formplugin", new Object[0]);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue