Index: ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePrint.js =================================================================== diff -u -r13125 -r13898 --- ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePrint.js (.../invoicePrint.js) (revision 13125) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePrint.js (.../invoicePrint.js) (revision 13898) @@ -413,23 +413,53 @@ DWREngine.setAsync(true); invoicesInfo.unitName = unitName; invoicesInfo.printConfigObj_default = batchPrintInvoicesConfig_default; - // 器械包 - if(invoicesInfo.tousse.length > 0){ - invoicesInfo.goods = invoicesInfo.tousse; - printInvoiceInfo_local(invoicesInfo, printType); + var myObj = printConfig[invoicesInfo.formTypeOfPrinted]; + if(!isUndefinedOrNullOrEmpty(myObj)){ + /** + * 在默认打印之前调用的方法,可以对结果数据进行一些处理,如合并,排序 + */ + var beforeBatchPrintInvoicesFunction = typeof(myObj.beforeBatchPrintInvoices) + if(beforeBatchPrintInvoicesFunction != undefined && beforeBatchPrintInvoicesFunction != 'undefined'){ + myObj.beforeBatchPrintInvoices(invoicesInfo); + } } - // 一次性物品 - if(invoicesInfo.diposableGoods.length > 0){ - //invoicesInfo.applicationType = "一次性物品申请单"; - invoicesInfo.goods = invoicesInfo.diposableGoods; + if(true == sstsConfig.mergePrintInvoiceGoods){ + //合并打印 + var goods = []; + // 器械包 + if(invoicesInfo.tousse.length > 0){ + goods = goods.concat(invoicesInfo.tousse); + } + // 一次性物品 + if(invoicesInfo.diposableGoods.length > 0){ + goods = goods.concat(invoicesInfo.diposableGoods); + } + // 消毒物品 + if(invoicesInfo.disinfectGoods.length > 0){ + goods = goods.concat(invoicesInfo.disinfectGoods); + } + invoicesInfo.goods = goods; printInvoiceInfo_local(invoicesInfo, printType); - } - // 消毒物品 - if(invoicesInfo.disinfectGoods.length > 0){ - //invoicesInfo.applicationType = "消毒物品申请单"; - invoicesInfo.goods = invoicesInfo.disinfectGoods; - printInvoiceInfo_local(invoicesInfo, printType); - } + + }else{ + // 器械包 + if(invoicesInfo.tousse.length > 0){ + invoicesInfo.goods = invoicesInfo.tousse; + printInvoiceInfo_local(invoicesInfo, printType); + } + // 一次性物品 + if(invoicesInfo.diposableGoods.length > 0){ + //invoicesInfo.applicationType = "一次性物品申请单"; + invoicesInfo.goods = invoicesInfo.diposableGoods; + printInvoiceInfo_local(invoicesInfo, printType); + } + // 消毒物品 + if(invoicesInfo.disinfectGoods.length > 0){ + //invoicesInfo.applicationType = "消毒物品申请单"; + invoicesInfo.goods = invoicesInfo.disinfectGoods; + printInvoiceInfo_local(invoicesInfo, printType); + } + } } function printInvoiceInfo_local(invoicesInfo, type){ Index: ssts-web/src/main/webapp/disinfectsystem/config/gzspyqzyy/print/printConfig.js =================================================================== diff -u -r13853 -r13898 --- ssts-web/src/main/webapp/disinfectsystem/config/gzspyqzyy/print/printConfig.js (.../printConfig.js) (revision 13853) +++ ssts-web/src/main/webapp/disinfectsystem/config/gzspyqzyy/print/printConfig.js (.../printConfig.js) (revision 13898) @@ -44,7 +44,8 @@ } var batchPrintInvoicesConfig = { - + /*在打印之前调用,可用于排序,合并等操作*/ + beforeBatchPrintInvoices:beforeBatchPrintInvoices, headerFooter : [ // 页眉名称 {label : "番禺区中医院", dataIndex : '', fontSize : 10, position : ["5","1%","90%",5]}, Index: ssts-web/src/main/webapp/disinfectsystem/print/print.js =================================================================== diff -u -r13741 -r13898 --- ssts-web/src/main/webapp/disinfectsystem/print/print.js (.../print.js) (revision 13741) +++ ssts-web/src/main/webapp/disinfectsystem/print/print.js (.../print.js) (revision 13898) @@ -2706,3 +2706,34 @@ // 加载本地的配置js Ext.onReady(function(){loadLocalJavascript('C:\\forgon\\config\\printConfig.js');}); Ext.onReady(function(){loadLocalJavascript('C:\\forgon\\config\\printerConfig.js');}); + +/** + * 在批量打印发货单之前调用。此处的处理是对消毒物品按名称和规格进行合并 + * 要调用此方法,需要在printConfig中,对batchPrintInvoices的配置中,添加beforeBatchPrintInvoices属性,将此函数名称作为属性值 + * @param invoicesInfo + */ +function beforeBatchPrintInvoices(invoicesInfo){ + if(!invoicesInfo){ + return; + } + var oldGoods = invoicesInfo.disinfectGoods; + // 消毒物品 + if(oldGoods && oldGoods.length > 0){ + var newGoods = new Array(); + for(var i = 0; i < oldGoods.length;++i){ + for(var j = 0; j < newGoods.length;++j){ + if(newGoods[j].name == oldGoods[i].name + && newGoods[j].specification == oldGoods[i].specification + && newGoods[j].expireDate == oldGoods[i].expireDate){ + newGoods[j].amount = parseInt(newGoods[j].amount) + parseInt(oldGoods[i].amount); + break; + } + } + //如果没有找到,则插入原来的数据 + if(j == newGoods.length){ + newGoods.push(oldGoods[i]); + } + } + invoicesInfo.disinfectGoods = newGoods; + } +} Index: ssts-web/src/main/webapp/disinfectsystem/config/gzspyqzyy/config.js =================================================================== diff -u -r13627 -r13898 --- ssts-web/src/main/webapp/disinfectsystem/config/gzspyqzyy/config.js (.../config.js) (revision 13627) +++ ssts-web/src/main/webapp/disinfectsystem/config/gzspyqzyy/config.js (.../config.js) (revision 13898) @@ -53,6 +53,10 @@ invoicePageScanMode : 'single', //清洗界面添加清洗记录时扫描清洗篮筐条码是否收缩(未配置或配置值为false表示不收缩) enableCollapseWhenScanWashBasketBarcode : true, - disableDeviceInterface : false, // 使能设备接口 - showSterilizer : true // 装配界面显示灭菌炉和炉次 + //使能设备接口 + disableDeviceInterface : false, + //装配界面显示灭菌炉和炉次 + showSterilizer : true, + //发货单是否合并打印,如果为true,则把一次性物品、消毒物品、器械包打印到一张单,false或者不配置,都是分三张单打印 + mergePrintInvoiceGoods:true } \ No newline at end of file