Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyDetailDSInvoiceItemView.js =================================================================== diff -u -r30854 -r32759 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyDetailDSInvoiceItemView.js (.../departmentMonthlyDetailDSInvoiceItemView.js) (revision 30854) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyDetailDSInvoiceItemView.js (.../departmentMonthlyDetailDSInvoiceItemView.js) (revision 32759) @@ -452,38 +452,46 @@ layout : 'form', labelWidth : 120, items : [{ - xtype : 'combo', + xtype : 'multiSelect', fieldLabel : '物品类型', id : 'tousseType', name : 'tousseType', valueField : 'value', displayField : 'value', store : tousseTypeStore, - forceSelection : true, + forceSelection : false, value:'全部', editable : false, mode : 'local', triggerAction : 'all', anchor : '95%', listeners : { - select : function(store,records){ - if(Ext.getCmp('disposableGoodsType')){ - if(Ext.getCmp('tousseType').getValue() == '全部' - || Ext.getCmp('tousseType').getValue() == '一次性物品'){ - Ext.getCmp('disposableGoodsType').setDisabled(false); - }else{ - Ext.getCmp('disposableGoodsType').setValue('全部'); - Ext.getCmp('disposableGoodsType').setDisabled(true); + select: function (combo, record, index) { + //1、如果选中“全部”的项,则把所有的项选中,反之全部取消选择 + if (record.get('value') == ALL) { + if (record.get('checked')) { + combo.selectAll(); + } else { + combo.deselectAll(); } - //旧的高值耗材才显示高值耗材类型,新的高值耗材不显示 - if(Ext.getCmp('tousseType').getValue() == '高值耗材' && !sstsConfig.enableExpensiveGoods){ - Ext.getCmp('goodsTypeElement').show(); - }else{ - Ext.getCmp('goodsType').setValue('全部'); - Ext.getCmp('goodsTypeElement').hide(); + } + + //2、如果已经选中所有的项,则把“全部”项选中,反之把“全部”项取消选择 + var selectAll = true; + combo.store.each(function(record) { + if (record.get('value') != ALL && !record.get(this.checkField)) { + selectAll = false; + return; } - reloadReport(); + }, combo); + + var all = combo.store.getAt(0); + if (selectAll) { + all.set(combo.checkField, true); + } else { + all.set(combo.checkField, false); } + combo.setValue(combo.getCheckedValue()); } } }] Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r32756 -r32759 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 32756) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 32759) @@ -5355,7 +5355,58 @@ boolean showMaterialsAmountColumnOfDetailMonthReport = CssdUtils.getSystemSetConfigByNameBool("showMaterialsAmountColumnOfDetailMonthReport", false); List datas = new ArrayList(); - List allTousseType = getTousseTypes(typeSearch); + List allTousseType = new ArrayList(); + Set returnGoodType = new HashSet(); + if(StringTools.isBlank(typeSearch) || typeSearch.contains("全部器械包")){ + allTousseType.add(TousseDefinition.PACKAGE_TYPE_CUSTOM); + allTousseType.add(TousseDefinition.PACKAGE_TYPE_DISINFECTION); + allTousseType.add(TousseDefinition.PACKAGE_TYPE_DRESSING); + allTousseType.add(TousseDefinition.PACKAGE_TYPE_FOREIGN); + allTousseType.add(TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY); + allTousseType.add(TousseDefinition.PACKAGE_TYPE_INSIDE); + allTousseType.add(TousseDefinition.PACKAGE_TYPE_SPLIT); + allTousseType.add(TousseDefinition.PACKAGE_TYPE_COMBO); + if(StringTools.isBlank(typeSearch) && enableExpensiveGoods){ + allTousseType.add(ExpensiveGoods.TYPE_NAME); + } + returnGoodType.add("器械包"); + } + if(!StringTools.isBlank(typeSearch)){ + if(!typeSearch.contains("全部器械包")){ + if(typeSearch.contains("外来器械包")){ + allTousseType.add(TousseDefinition.PACKAGE_TYPE_FOREIGN); + allTousseType.add(TousseDefinition.PACKAGE_TYPE_SPLIT); + returnGoodType.add("器械包"); + } + if(typeSearch.contains("外部代理灭菌包")){ + allTousseType.add(TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY); + returnGoodType.add("器械包"); + } + if(typeSearch.contains(ExpensiveGoods.TYPE_NAME) && enableExpensiveGoods){ + allTousseType.add(ExpensiveGoods.TYPE_NAME); + } + if(typeSearch.contains(TousseDefinition.PACKAGE_TYPE_CUSTOM)){ + allTousseType.add(TousseDefinition.PACKAGE_TYPE_CUSTOM); + returnGoodType.add("器械包"); + } + if(typeSearch.contains(TousseDefinition.PACKAGE_TYPE_INSIDE)){ + allTousseType.add(TousseDefinition.PACKAGE_TYPE_INSIDE); + returnGoodType.add("器械包"); + } + if(typeSearch.contains(TousseDefinition.PACKAGE_TYPE_DRESSING)){ + allTousseType.add(TousseDefinition.PACKAGE_TYPE_DRESSING); + returnGoodType.add("器械包"); + } + if(typeSearch.contains(TousseDefinition.PACKAGE_TYPE_DISINFECTION)){ + allTousseType.add(TousseDefinition.PACKAGE_TYPE_DISINFECTION); + returnGoodType.add("器械包"); + } + } + if(typeSearch.contains("一次性物品")){ + allTousseType.add("一次性物品"); + returnGoodType.add("一次性物品"); + } + } // 查看是否配置显示供应商 Boolean showSupplierNameInDetailedAccountingMonthlyReport = CssdUtils.getSystemSetConfigByNameBool("showSupplierNameInDetailedAccountingMonthlyReport", false); String tousseDefinitionOfSupplierNameSql = "";//用器械包定义里的供应商拼接的sql语句,主要用于查询供应商和按供应商分组 @@ -5472,140 +5523,35 @@ String expensiveDisposablegoodsSql = ""; if (StringUtils.isNotBlank(typeSearch)) { - if ("全部器械包".equals(typeSearch)) { - //ii.diposable = '否' and ii.tousseType='高值耗材'的是新版本的高值耗材 - typeFilterSql = " and ii.diposable = '否' and ii.tousseType <> '" + ExpensiveGoods.TYPE_NAME + "'"; - returnGoodsFilterSql += " and rr.type = '器械包'"; - supplyRoomDiposableGoodsFilterSql += " and 1=2"; - outEntryFilterSql += " and 1=2"; - lostMaterialFilterSql += " and 1=2 "; - damageFilterSql += " and 1=2 "; - returnGoodsItemPredicate = String.format(" ri.tousseDefinition_id in (select id from TousseDefinition where %s) ", SqlUtils.getStringFieldInLargeCollectionsPredicate("tousseType", allTousseType)); - }else if("器械包".equals(typeSearch)) { - typeFilterSql = " and ii.tousseType = '" - + TousseDefinition.PACKAGE_TYPE_INSIDE - + "'"; - returnGoodsFilterSql += " and rr.type = '器械包'"; - supplyRoomDiposableGoodsFilterSql += " and 1=2"; - outEntryFilterSql += " and 1=2"; - lostMaterialFilterSql += " and 1=2 "; - damageFilterSql += " and 1=2 "; - returnGoodsItemPredicate = String.format(" ri.tousseDefinition_id in (select id from TousseDefinition where %s) ", SqlUtils.getStringFieldInLargeCollectionsPredicate("tousseType", allTousseType)); - }else if("敷料包".equals(typeSearch)){ - typeFilterSql = " and ii.tousseType = '" - + TousseDefinition.PACKAGE_TYPE_DRESSING - + "'"; - returnGoodsFilterSql += " and rr.type = '器械包'"; - supplyRoomDiposableGoodsFilterSql += " and 1=2"; - outEntryFilterSql += " and 1=2"; - lostMaterialFilterSql += " and 1=2 "; - damageFilterSql += " and 1=2 "; - returnGoodsItemPredicate = String.format(" ri.tousseDefinition_id in (select id from TousseDefinition where %s) ", SqlUtils.getStringFieldInLargeCollectionsPredicate("tousseType", allTousseType)); - } else if ("消毒物品".equals(typeSearch)) { - typeFilterSql = " and ii.tousseType = '" - + TousseDefinition.PACKAGE_TYPE_DISINFECTION - + "'"; - returnGoodsFilterSql += " and rr.type = '器械包'"; - supplyRoomDiposableGoodsFilterSql += " and 1=2"; - outEntryFilterSql += " and 1=2"; - lostMaterialFilterSql += " and 1=2 "; - damageFilterSql += " and 1=2 "; - returnGoodsItemPredicate = String.format(" ri.tousseDefinition_id in (select id from TousseDefinition where %s) ", SqlUtils.getStringFieldInLargeCollectionsPredicate("tousseType", allTousseType)); - } else if ("外来器械包".equals(typeSearch)) { - typeFilterSql = " and (ii.tousseType = '" - + TousseDefinition.PACKAGE_TYPE_FOREIGN - + "' or ii.tousseType = '" - + TousseDefinition.PACKAGE_TYPE_SPLIT + "') "; - - returnGoodsFilterSql += " and rr.type = '器械包'"; - supplyRoomDiposableGoodsFilterSql += " and 1=2"; - outEntryFilterSql += " and 1=2"; - lostMaterialFilterSql += " and 1=2 "; - damageFilterSql += " and 1=2 "; - returnGoodsItemPredicate = String.format(" ri.tousseDefinition_id in (select id from TousseDefinition where %s) ", SqlUtils.getStringFieldInLargeCollectionsPredicate("tousseType", allTousseType)); - } else if ("自定义器械包".equals(typeSearch)) { - typeFilterSql = " and ii.tousseType = '" - + TousseDefinition.PACKAGE_TYPE_CUSTOM + "'"; - returnGoodsFilterSql += " and rr.type = '器械包'"; - supplyRoomDiposableGoodsFilterSql += " and 1=2"; - outEntryFilterSql += " and 1=2"; - lostMaterialFilterSql += " and 1=2 "; - damageFilterSql += " and 1=2 "; - returnGoodsItemPredicate = String.format(" ri.tousseDefinition_id in (select id from TousseDefinition where %s) ", SqlUtils.getStringFieldInLargeCollectionsPredicate("tousseType", allTousseType)); - } else if ("外部代理灭菌包".equals(typeSearch)) { - typeFilterSql = " and ii.tousseType = '" - + TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY + "'"; - returnGoodsFilterSql += " and rr.type = '器械包'"; - lostMaterialFilterSql += " and 1=2 "; - damageFilterSql += " and 1=2 "; - damageFilterSql += " and 1=2 "; - supplyRoomDiposableGoodsFilterSql += " and 1=2"; - outEntryFilterSql += " and 1=2"; - returnGoodsItemPredicate = String.format(" ri.tousseDefinition_id in (select id from TousseDefinition where %s) ", SqlUtils.getStringFieldInLargeCollectionsPredicate("tousseType", allTousseType)); - } else if ("一次性物品".equals(typeSearch)) { - typeFilterSql = " and ii.tousseType = '一次性物品'"; - returnGoodsFilterSql += " and rr.type = '一次性物品'"; - lostMaterialFilterSql += " and 1=2 "; - damageFilterSql += " and 1=2 "; + } + if (StringUtils.isNotBlank(typeSearch)) { + typeFilterSql = String.format(" and (%s)", SqlUtils.getStringFieldInLargeCollectionsPredicate("ii.tousseType", allTousseType)); + returnGoodsItemPredicate = String.format(" ri.tousseDefinition_id in (select id from TousseDefinition where %s) ", SqlUtils.getStringFieldInLargeCollectionsPredicate("tousseType", allTousseType)); + returnGoodsFilterSql = " and " + SqlUtils.getStringFieldInLargeCollectionsPredicate("rr.type", returnGoodType); + if(!typeSearch.contains("一次性物品") && !typeSearch.contains(DisposableGoods.TYPE_EXPENSIVEDIPOSABLEGOODS)){ + outEntryFilterSql += " and 1=2 "; + }else if(!typeSearch.contains("一次性物品") && typeSearch.contains(DisposableGoods.TYPE_EXPENSIVEDIPOSABLEGOODS)){ + outEntryFilterSql += " and dg.goodsType = '" + DisposableGoods.TYPE_EXPENSIVEDIPOSABLEGOODS + "' "; + expensiveDisposablegoodsSql = " and d.expensiveDisposablegoodsId is not null "; + } + if(typeSearch.contains("器械材料") && typeSearch.contains("一次性物品") ){ + supplyRoomDiposableGoodsFilterSql += " and (rri.type = '一次性物品' or rri.materialDefinition_id in (select id from MaterialDefinition)) "; + }else if(typeSearch.contains("器械材料")){ + supplyRoomDiposableGoodsFilterSql += " and rri.materialDefinition_id in (select id from MaterialDefinition) "; + }else if(typeSearch.contains("一次性物品")){ supplyRoomDiposableGoodsFilterSql += " and rri.type = '一次性物品' "; - } else if ("器械材料".equals(typeSearch)) { - typeFilterSql = " and 1=2"; - returnGoodsFilterSql += " and 1=2"; + } + if(typeSearch.contains("器械材料")){ lostMaterialFilterSql += " and 1=1 "; damageFilterSql += " and 1=1 "; - supplyRoomDiposableGoodsFilterSql += " and rri.materialDefinition_id in (select id from MaterialDefinition) "; - outEntryFilterSql += " and 1=2"; - } else if ("高值耗材".equals(typeSearch)) { + }else if(typeSearch.contains("高值耗材")){ if(enableExpensiveGoods){ - //新的高值耗材 - typeFilterSql = " and ii.diposable = '否' and ii.tousseType = '" + ExpensiveGoods.TYPE_NAME + "'"; - returnGoodsFilterSql += " and 1=2"; - materialTypeFilterSql = " and 1=2 "; lostMaterialFilterSql += " and 1=2 "; - damageFilterSql += " and 1=2 "; - outEntryFilterSql += " and 1=2"; - //新的高值耗材还没有供应室领用功能 - supplyRoomDiposableGoodsFilterSql += " and 1=2"; + damageFilterSql += " and 1=1 "; }else{ - //goodsType是高值耗材类型,值有全部、一次性物品、器械 - if(StringUtils.isNotBlank(goodsType)){ - if("一次性物品".equals(goodsType)){ - returnGoodsFilterSql += " and ri.expensiveDisposablegoodsId is not null and ri.expensiveDisposablegoodsId <> 0"; - materialTypeFilterSql = " and 1=2 "; - supplyRoomDiposableGoodsFilterSql += " and d.goodsType = '"+DisposableGoods.TYPE_EXPENSIVEDIPOSABLEGOODS+"'"; - lostMaterialFilterSql += " and 1=2 "; - damageFilterSql += " and 1=2 "; - expensiveDisposablegoodsSql = " and d.expensiveDisposablegoodsId is not null "; - outEntryFilterSql += " and dg.goodsType = '" + DisposableGoods.TYPE_EXPENSIVEDIPOSABLEGOODS + "' "; - }else{ - returnGoodsFilterSql += " and 1=2 "; - materialTypeFilterSql = " and d.goodsType = '"+MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS+"'"; - supplyRoomDiposableGoodsFilterSql += " and rri.materialDefinition_id in (select id from MaterialDefinition where goodsType = '" - + MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS + "') "; - lostMaterialFilterSql += " and m.goodsType = '"+MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS+"' "; - damageFilterSql += " and m.goodsType = '"+MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS+"' "; - expensiveDisposablegoodsSql = " and 1=2 "; - outEntryFilterSql += " and 1=2 "; - } - }else{ - returnGoodsFilterSql += " and ri.expensiveDisposablegoodsId is not null and ri.expensiveDisposablegoodsId <> 0"; - materialTypeFilterSql = " and d.goodsType = '"+MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS+"'"; - supplyRoomDiposableGoodsFilterSql += " and rri.materialDefinition_id in (select id from MaterialDefinition where goodsType = '" - + MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS + "') "; - lostMaterialFilterSql += " and m.goodsType = '"+MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS+"' "; - damageFilterSql += " and m.goodsType = '"+MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS+"' "; - expensiveDisposablegoodsSql = " and d.expensiveDisposablegoodsId is not null "; - outEntryFilterSql += " and dg.goodsType = '" + DisposableGoods.TYPE_EXPENSIVEDIPOSABLEGOODS + "' "; - } - typeFilterSql = " and 1=2 "; + lostMaterialFilterSql += " and m.goodsType = '"+MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS+"' "; + damageFilterSql += " and m.goodsType = '"+MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS+"' "; } - }else if (TYPE_AUTO_DEDUCTION.equals(typeSearch)) { - typeFilterSql = " and 1=2 "; - }else if(TYPE_ALL.equals(typeSearch)){ - if(!enableExpensiveGoods){ - //没有启用高值耗材,就不查询新的高值耗材的数据 - typeFilterSql = " and ii.tousseType <> '" + ExpensiveGoods.TYPE_NAME + "'"; - } } }else{ if(!enableExpensiveGoods){ @@ -5773,7 +5719,7 @@ excludeSciProjectSql = ""; excludeDiposableGoodsItemSql = ""; } - if(StringUtils.isBlank(typeSearch) || "一次性物品".equals(typeSearch) || "高值耗材".equals(typeSearch) && !enableExpensiveGoods || TYPE_AUTO_DEDUCTION.equals(typeSearch)){ + if(StringUtils.isBlank(typeSearch) || typeSearch.contains("一次性物品") || typeSearch.contains("高值耗材") || typeSearch.contains(TYPE_AUTO_DEDUCTION)){ diposableGoodsSql = " union all (select "+ noMaterialAmountSql +" i.depart,i.settleaccountsdepart "+ dgbsOfSupplierNameSql+noQueryIntegralSql +",d.name as name,sum(d.amount) as amount," +"sum(d.fluctuationPrice*d.amount) as settlementprice,sum(d.fluctuationPrice*d.amount) as settlementDiscountPrice,'一次性物品' as type" + ",d.batch as batchNumber,dgbs.expDate,0 as tousseDefinitionId from invoice i join DiposableGoodsItem d on d.invoice_id=i.id join " + DisposableGoodsBatchStock.class.getSimpleName() + " dgbs on d.disposableGoodsBatchStockID=dgbs.id " @@ -5814,7 +5760,7 @@ String damageMaterial = " "; //当批次号为空时、且物品类型为空或器械材料或高值耗材时,才查询材料的发货、退货、丢失报损补充等数据 if(StringUtils.isBlank(batch)){ - if ((StringUtils.isBlank(typeSearch) || "器械材料".equals(typeSearch) || "高值耗材".equals(typeSearch))) { + if ((StringUtils.isBlank(typeSearch) || typeSearch.contains("器械材料") || typeSearch.contains("高值耗材"))) { // 材料发货 materialInvoiceSql = " union all (select "+ noMaterialAmountSql +"i.depart,i.settleAccountsDepart "+noQuerySupplierName + noQueryIntegralSql +",case when td.name is null then ii.materialName else ii.materialName "+ concatSymbolInDb +"'('"+ concatSymbolInDb +" td.name "+ concatSymbolInDb +"')' end,sum(ii.amount),sum(ii.settlementPrice)," +"sum(ii.settlementPrice) as settlementDiscountPrice,'材料' as type,'' as batchNumber,null as expDate,td.id as tousseDefinitionId " @@ -5830,7 +5776,7 @@ + materialTypeFilterSql + " group by i.depart,i.settleaccountsdepart,case when td.name is null then ii.materialName else ii.materialName "+ concatSymbolInDb +" '(' "+ concatSymbolInDb +" td.name "+ concatSymbolInDb +"')' end,td.id) "; } - if(StringUtils.isBlank(typeSearch) || "全部".equals(typeSearch) || "器械材料".equals(typeSearch)){ + if(StringUtils.isBlank(typeSearch) || "全部".equals(typeSearch) || typeSearch.contains("器械材料")){ // 材料退货 materialReturnSql = " union all (select "+ noMaterialAmountSql +"rr.depart,rr.settleAccountsDepart "+ noQuerySupplierName + noQueryIntegralSql +",ii.materialName,-sum(ii.amount),-sum(ii.settlementPrice)," +"-sum(ii.settlementPrice) as settlementDiscountPrice,'材料' as type,'' as batchNumber,null as expDate,0 as tousseDefinitionId " @@ -5881,7 +5827,7 @@ + " group by rr.depart,rr.settleAccountsDepart,ri.toussename,"+returnGoodsTousseType+",ri.batchNumber"+ groupByMaterialAmountAtThatTime +",dgbs.expDate,"+returnGoodsTousseDefinitionId+ dgbsOfSupplierNameSql +") "; String supplyRoomTousseTypeSql = ""; - if(TYPE_AUTO_DEDUCTION.equals(typeSearch)){ + if(typeSearch.contains(TYPE_AUTO_DEDUCTION)){ supplyRoomTousseTypeSql = String.format(" and rr.type='%s' ", InvoiceItem.TYPE_AUTO_DEDUCTION); } String supplyRoomDiposableGoodsSql = " union all (select "+ sumRriAmountSql +" rr.depart,rr.depart as settleaccountsdepart "+ dgbsOfSupplierNameSql + noQueryIntegralSql +",rri.goodsName,sum(rri.amount)," @@ -5927,7 +5873,7 @@ // sql += materialInvoiceSql; } - if ("器械包".equals(typeSearch) || "器械材料".equals(typeSearch) || "全部".equals(typeSearch) || StringUtils.isBlank(typeSearch) || "全部器械包".equals(typeSearch) || "高值耗材".equals(typeSearch)) { + if (typeSearch.contains("器械包") || typeSearch.contains("器械材料") || typeSearch.contains("全部") || StringUtils.isBlank(typeSearch) || typeSearch.contains("全部器械包") || typeSearch.contains("高值耗材")) { sql += lostMaterial; sql += damageMaterial; } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r32708 -r32759 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 32708) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 32759) @@ -1137,6 +1137,9 @@ String patternOfReport = StrutsParamUtils.getPraramValue("patternOfReport", null); String invoicePlanDepartCoding = StrutsParamUtils.getPraramValue("invoicePlanDepartCoding", ""); if("singleDepart".equals(patternOfReport)){//单个科室的明细核算月报 + if(StringUtils.isNotBlank(tousseType) && tousseType.contains(",")){ + throw new RuntimeException("单个科室的明细核算月报不支持物品类型多选查询"); + } return jasperReportManager.getDepartmentMonthDetailListOfSingleDepart(startTime, endTime, departSearch, departCoding, tousseType, goodsSearch, batch, searchType, disinfection, disposableGoodsType, goodsType, showCustonTousseAmount,invoicePlanDepartCoding); }else{ return jasperReportManager.getDepartmentMonthDetailList(startTime,endTime, departSearch, departCoding,tousseType, goodsSearch, batch,searchType,disinfection,disposableGoodsType,goodsType,showCustonTousseAmount, invoicePlanDepartCoding);