报销单支付公司初始化及费用明细的成本中心过滤
This commit is contained in:
parent
a64fa20e49
commit
db46106696
|
@ -0,0 +1,96 @@
|
||||||
|
package shkd.fi.er.plugin.formplugin;
|
||||||
|
|
||||||
|
import kd.bos.bill.AbstractBillPlugIn;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.form.control.Control;
|
||||||
|
import kd.bos.form.field.BasedataEdit;
|
||||||
|
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 kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.EventObject;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 报销单界面插件
|
||||||
|
*/
|
||||||
|
public class CommonReimburseBillFormPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener,Plugin {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*注册实物卡片F7字段监听事件
|
||||||
|
* @param e
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void registerListener(EventObject e) {
|
||||||
|
super.registerListener(e);
|
||||||
|
//监听实物卡片F7字段点击事件
|
||||||
|
BasedataEdit edit = this.getView().getControl("std_entrycostcenter");
|
||||||
|
edit.addBeforeF7SelectListener(this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付公司默认为人员上的劳动主体
|
||||||
|
* @param e
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void afterCreateNewData(EventObject e) {
|
||||||
|
super.afterCreateNewData(e);
|
||||||
|
DynamicObject dataEntity = this.getModel().getDataEntity();
|
||||||
|
DynamicObject applier = dataEntity.getDynamicObject("applier");//申请人
|
||||||
|
if (applier != null){
|
||||||
|
DynamicObject bos_user = BusinessDataServiceHelper.loadSingle(applier.getPkValue(), "bos_user");
|
||||||
|
DynamicObject shkd_labororg = bos_user.getDynamicObject("shkd_labororg");
|
||||||
|
this.getModel().setValue("paycompany",shkd_labororg);//设置支付公司为申请人员上的劳动主体
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 费用明细分录的成本中心只能选择申请人员上存在的成本中心
|
||||||
|
* @param beforeF7SelectEvent
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
||||||
|
String name = beforeF7SelectEvent.getProperty().getName();
|
||||||
|
DynamicObject dataEntity = this.getModel().getDataEntity();//获取单据实体
|
||||||
|
switch (name){
|
||||||
|
case "std_entrycostcenter":
|
||||||
|
DynamicObject applier = dataEntity.getDynamicObject("applier");//申请人
|
||||||
|
if (applier != null){
|
||||||
|
ArrayList<Object> costIds = new ArrayList<>();
|
||||||
|
DynamicObject bos_user = BusinessDataServiceHelper.loadSingle(applier.getPkValue(), "bos_user");
|
||||||
|
DynamicObjectCollection costEntity = bos_user.getDynamicObjectCollection("shkd_costentity");
|
||||||
|
if (costEntity.size() > 0){//当人员的成本中心分录存在数据时执行设置过滤条件
|
||||||
|
for (DynamicObject dynamicObject : costEntity) {
|
||||||
|
DynamicObject shkd_e_cost = dynamicObject.getDynamicObject("shkd_e_cost");
|
||||||
|
if (shkd_e_cost != null){
|
||||||
|
costIds.add(shkd_e_cost.getPkValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (costIds.size()>0){
|
||||||
|
QFilter qFilter = new QFilter("id", QCP.in,costIds);
|
||||||
|
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
||||||
|
formShowParameter.getListFilterParameter().setFilter(qFilter);
|
||||||
|
}else {
|
||||||
|
beforeF7SelectEvent.setCancel(true);
|
||||||
|
this.getView().showTipNotification("用户未设置成本中心");
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
beforeF7SelectEvent.setCancel(true);
|
||||||
|
this.getView().showTipNotification("用户未设置成本中心");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue