出库单科目属性过滤和成本分解结构必录逻辑添加
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.entity.datamodel.events.ChangeData;
|
||||
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.TextEdit;
|
||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||
import kd.bos.list.ListShowParameter;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.EventObject;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 出库单表单插件
|
||||
* 说明:1:核算组织由项目中的财务记账组织携带而来
|
||||
* 2:使用设备过滤,通过核算组织与使用设备中的使用组织比对而来过滤
|
||||
* 3:科目属性过滤和成本分解结构必录逻辑控制
|
||||
*/
|
||||
public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
|
||||
|
||||
|
@ -28,6 +34,11 @@ public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF
|
|||
if (zcgj_shebei != null) {
|
||||
zcgj_shebei.addBeforeF7SelectListener(this);
|
||||
}
|
||||
BasedataEdit zcgj_accounttype = this.getControl("zcgj_accounttype"); //科目属性
|
||||
if (zcgj_accounttype != null) {
|
||||
zcgj_accounttype.addBeforeF7SelectListener(this);
|
||||
}
|
||||
this.addItemClickListeners("advcontoolbarap");//出库单明细分录工具栏
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -54,21 +65,99 @@ public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF
|
|||
entryCollection.clear();
|
||||
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
|
||||
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
||||
String name = beforeF7SelectEvent.getProperty().getName();
|
||||
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
||||
Object zcgj_fiorg = this.getModel().getValue("zcgj_fiorg");//核算组织
|
||||
if (zcgj_fiorg != null) {
|
||||
DynamicObject zcgj_fiorg1 = (DynamicObject) zcgj_fiorg;
|
||||
QFilter qFilter = new QFilter("useorg", QCP.equals, zcgj_fiorg1.getPkValue());
|
||||
formShowParameter.getListFilterParameter().getQFilters().add(qFilter);
|
||||
} else {
|
||||
this.getView().showErrorNotification("请先填写核算组织!");
|
||||
beforeF7SelectEvent.setCancel(true);
|
||||
String name = beforeF7SelectEvent.getProperty().getName();
|
||||
QFilter qFilter = null;
|
||||
if ("zcgj_shebei".equals(name)) {
|
||||
//使用设备
|
||||
Object zcgj_fiorg = this.getModel().getValue("zcgj_fiorg");//核算组织
|
||||
if (zcgj_fiorg != null) {
|
||||
DynamicObject zcgj_fiorg1 = (DynamicObject) zcgj_fiorg;
|
||||
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