报销单费用项目过滤

This commit is contained in:
zhangzhiguo 2025-07-22 10:42:06 +08:00
parent 3a6bfaa1f8
commit 82c1c1bf54
1 changed files with 41 additions and 0 deletions

View File

@ -46,6 +46,12 @@ public class ReimbursementAccountTypePlugin extends AbstractBillPlugIn implemen
if(accounttype != null) { if(accounttype != null) {
accounttype.addBeforeF7SelectListener(this); accounttype.addBeforeF7SelectListener(this);
} }
//仅针对矿山下组织下的逻辑
BasedataEdit expenseitem = this.getControl("expenseitem"); //科目分类
if(expenseitem != null) {
expenseitem.addBeforeF7SelectListener(this);
}
} }
} }
} }
@ -102,6 +108,41 @@ public class ReimbursementAccountTypePlugin extends AbstractBillPlugIn implemen
} }
}else if("expenseitem".equals(name)){//费用项目增加过滤
int row = beforeF7SelectEvent.getRow();
DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("expenseentryentity");
if(dynamicObjectCollection!=null){
DynamicObject expenseitem = dynamicObjectCollection.get(row).getDynamicObject("expenseitem");
if(expenseitem!=null){
// QFilter filter = new QFilter("zcgj_entryentity.zcgj_fee", QCP.equals,expenseitem.getLong("id"));
String typeKey = "20"; //差旅报销单
if("er_dailyreimbursebill".equals(billFormId)){ //费用报销单
typeKey = "30"; //差旅报销单
}else if("er_publicreimbursebill".equals(billFormId)){ //对公报销单
typeKey = "40"; //差旅报销单
}else if("er_prepaybill".equals(billFormId)){ //预付单
typeKey = "50"; //差旅报销单
}
QFilter biztypefilter = new QFilter("zcgj_biztype",QCP.equals,typeKey); //过滤业务单据为支出财务确认单
//分录过滤
//使用BusinessDataServiceHelper.load查出来的数据返回的是符合条件的整单即使只有分录中的某一行符合条件也会返回整张单包括其他分录行的数据
//使用 QueryServiceHelper.query查出来的数据只会包含符合条件的分录行不含其他行数据
DynamicObjectCollection accountfeeEntries = QueryServiceHelper.query("zcgj_accountfee", "zcgj_entryentity.zcgj_accounttype.number," +
"zcgj_entryentity.zcgj_fee.number", new QFilter[]{biztypefilter});
List<String> numbers = new ArrayList<>();
if(accountfeeEntries!=null){
for (DynamicObject dynamicObject : accountfeeEntries) {
String zcgjFeeNumber = dynamicObject.getString("zcgj_entryentity.zcgj_fee.number");
if(zcgjFeeNumber!=null){
numbers.add(zcgjFeeNumber);
}
}
}
QFilter qFilter = new QFilter("number", QCP.in, numbers);
ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
showParameter.getListFilterParameter().getQFilters().add(qFilter);
}
}
} }
} }
} }