出库单科目属性过滤和成本分解结构必录逻辑添加
This commit is contained in:
parent
9614b86ae4
commit
e1fedec632
|
@ -5,19 +5,25 @@ import kd.bos.dataentity.entity.DynamicObject;
|
||||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
import kd.bos.entity.datamodel.events.ChangeData;
|
import kd.bos.entity.datamodel.events.ChangeData;
|
||||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
|
import kd.bos.form.control.events.ItemClickEvent;
|
||||||
import kd.bos.form.field.BasedataEdit;
|
import kd.bos.form.field.BasedataEdit;
|
||||||
|
import kd.bos.form.field.TextEdit;
|
||||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||||
import kd.bos.form.field.events.BeforeF7SelectListener;
|
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||||
import kd.bos.list.ListShowParameter;
|
import kd.bos.list.ListShowParameter;
|
||||||
import kd.bos.orm.query.QCP;
|
import kd.bos.orm.query.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.EventObject;
|
import java.util.EventObject;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 出库单表单插件
|
* 出库单表单插件
|
||||||
* 说明:1:核算组织由项目中的财务记账组织携带而来
|
* 说明:1:核算组织由项目中的财务记账组织携带而来
|
||||||
* 2:使用设备过滤,通过核算组织与使用设备中的使用组织比对而来过滤
|
* 2:使用设备过滤,通过核算组织与使用设备中的使用组织比对而来过滤
|
||||||
|
* 3:科目属性过滤和成本分解结构必录逻辑控制
|
||||||
*/
|
*/
|
||||||
public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
|
public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
|
||||||
|
|
||||||
|
@ -28,6 +34,11 @@ public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF
|
||||||
if (zcgj_shebei != null) {
|
if (zcgj_shebei != null) {
|
||||||
zcgj_shebei.addBeforeF7SelectListener(this);
|
zcgj_shebei.addBeforeF7SelectListener(this);
|
||||||
}
|
}
|
||||||
|
BasedataEdit zcgj_accounttype = this.getControl("zcgj_accounttype"); //科目属性
|
||||||
|
if (zcgj_accounttype != null) {
|
||||||
|
zcgj_accounttype.addBeforeF7SelectListener(this);
|
||||||
|
}
|
||||||
|
this.addItemClickListeners("advcontoolbarap");//出库单明细分录工具栏
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -54,21 +65,99 @@ public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF
|
||||||
entryCollection.clear();
|
entryCollection.clear();
|
||||||
this.getView().updateView("entryentity");//刷新分录
|
this.getView().updateView("entryentity");//刷新分录
|
||||||
}
|
}
|
||||||
|
} else if ("zcgj_accounttype".equals(key)) {
|
||||||
|
//科目属性
|
||||||
|
DynamicObjectCollection entryEntityCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity");//出库单分录
|
||||||
|
boolean hasFL001 = false;
|
||||||
|
for (DynamicObject entryEntity : entryEntityCollection) {
|
||||||
|
DynamicObject accountType = entryEntity.getDynamicObject("zcgj_accounttype");//科目属性
|
||||||
|
if (accountType != null && "FL001".equals(accountType.getString("number"))) {
|
||||||
|
//科目属性-为生成成本时
|
||||||
|
hasFL001 = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BasedataEdit edit = this.getView().getControl("procbs");//工作分解结构
|
||||||
|
edit.setMustInput(hasFL001);// 设置必录
|
||||||
|
this.getView().updateView("entryentity");//刷新分录
|
||||||
|
} else if ("material".equals(key)) {
|
||||||
|
//资源
|
||||||
|
ChangeData[] changeSet = e.getChangeSet();
|
||||||
|
ChangeData changeData = changeSet[0];
|
||||||
|
Object newValue = changeData.getNewValue();//新值
|
||||||
|
Object oldValue = changeData.getOldValue();//旧值
|
||||||
|
int rowIndex = changeData.getRowIndex(); //修改行所在行行号
|
||||||
|
if (newValue == null || !newValue.equals(oldValue)) {
|
||||||
|
this.getModel().setValue("zcgj_accounttype", null, rowIndex);//科目属性
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void itemClick(ItemClickEvent evt) {
|
||||||
|
super.itemClick(evt);
|
||||||
|
String itemKey = evt.getItemKey();
|
||||||
|
if (itemKey.equals("deleteentry")) {
|
||||||
|
//出库单明细删除按钮
|
||||||
|
DynamicObjectCollection entryEntityCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity");//出库单分录
|
||||||
|
boolean hasFL001 = false;
|
||||||
|
for (DynamicObject entryEntity : entryEntityCollection) {
|
||||||
|
DynamicObject accountType = entryEntity.getDynamicObject("zcgj_accounttype");//科目属性
|
||||||
|
if (accountType != null && "FL001".equals(accountType.getString("number"))) {
|
||||||
|
//科目属性-为生成成本时
|
||||||
|
hasFL001 = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BasedataEdit edit = this.getView().getControl("procbs");//工作分解结构
|
||||||
|
edit.setMustInput(hasFL001);// 设置必录
|
||||||
|
this.getView().updateView("entryentity");//刷新分录
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
||||||
String name = beforeF7SelectEvent.getProperty().getName();
|
|
||||||
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
||||||
Object zcgj_fiorg = this.getModel().getValue("zcgj_fiorg");//核算组织
|
String name = beforeF7SelectEvent.getProperty().getName();
|
||||||
if (zcgj_fiorg != null) {
|
QFilter qFilter = null;
|
||||||
DynamicObject zcgj_fiorg1 = (DynamicObject) zcgj_fiorg;
|
if ("zcgj_shebei".equals(name)) {
|
||||||
QFilter qFilter = new QFilter("useorg", QCP.equals, zcgj_fiorg1.getPkValue());
|
//使用设备
|
||||||
formShowParameter.getListFilterParameter().getQFilters().add(qFilter);
|
Object zcgj_fiorg = this.getModel().getValue("zcgj_fiorg");//核算组织
|
||||||
} else {
|
if (zcgj_fiorg != null) {
|
||||||
this.getView().showErrorNotification("请先填写核算组织!");
|
DynamicObject zcgj_fiorg1 = (DynamicObject) zcgj_fiorg;
|
||||||
beforeF7SelectEvent.setCancel(true);
|
qFilter = new QFilter("useorg", QCP.equals, zcgj_fiorg1.getPkValue());
|
||||||
|
} else {
|
||||||
|
this.getView().showErrorNotification("请先填写核算组织!");
|
||||||
|
beforeF7SelectEvent.setCancel(true);
|
||||||
|
}
|
||||||
|
} else if ("zcgj_accounttype".equals(name)) {
|
||||||
|
//科目属性
|
||||||
|
int row = beforeF7SelectEvent.getRow();
|
||||||
|
Object material = this.getModel().getValue("material", row);//资源
|
||||||
|
if (material != null) {
|
||||||
|
DynamicObject material1 = (DynamicObject) material;
|
||||||
|
DynamicObject resource = material1.getDynamicObject("resource");//资源-清单分类
|
||||||
|
List<Long> accountTypeIds = new ArrayList<>();
|
||||||
|
if (resource != null) {
|
||||||
|
QFilter qFilter1 = new QFilter("id", QCP.equals, resource.getPkValue());
|
||||||
|
DynamicObject ecbd_resource = BusinessDataServiceHelper.loadSingle("ecbd_resource", new QFilter[]{qFilter1});//清单分类
|
||||||
|
if (ecbd_resource != null) {
|
||||||
|
DynamicObjectCollection zcgj_accountTypeCollection = ecbd_resource.getDynamicObjectCollection("zcgj_accounttypes");//清单分类-科目属性
|
||||||
|
if (zcgj_accountTypeCollection != null && zcgj_accountTypeCollection.size() > 0) {
|
||||||
|
for (DynamicObject zcgj_accountType : zcgj_accountTypeCollection) {
|
||||||
|
DynamicObject basedataObj = (DynamicObject) zcgj_accountType.getDynamicObject("fbasedataid");
|
||||||
|
Long zcgj_accountTypeId = (Long) basedataObj.getPkValue();
|
||||||
|
accountTypeIds.add(zcgj_accountTypeId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
qFilter = new QFilter("id", QCP.in, accountTypeIds.toArray());
|
||||||
|
} else {
|
||||||
|
this.getView().showErrorNotification("请先填写资源!");
|
||||||
|
beforeF7SelectEvent.setCancel(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
formShowParameter.getListFilterParameter().getQFilters().add(qFilter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue