Index: ssts-web/src/main/webapp/disinfectsystem/config/nfykdxnfyy/config.js =================================================================== diff -u -r32619 -r32705 --- ssts-web/src/main/webapp/disinfectsystem/config/nfykdxnfyy/config.js (.../config.js) (revision 32619) +++ ssts-web/src/main/webapp/disinfectsystem/config/nfykdxnfyy/config.js (.../config.js) (revision 32705) @@ -297,5 +297,7 @@ //代归还物品 allowInsteadReturn:true, //一次性物品模板表格的单位前面不需要显示最小申请数量 -notNeedMinApplyAmountBeforeUnit:true +notNeedMinApplyAmountBeforeUnit:true, +//外来器械包的收费模式 +foreignTousseChargingMode:true } \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseChargeMode/foreignTousseChargeModeView.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseChargeMode/foreignTousseChargeModeView.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseChargeMode/foreignTousseChargeModeView.js (revision 32705) @@ -0,0 +1,97 @@ +var listStore; +var foreignTousseChargeModeGrid; + +Ext4.onReady(function () { + Ext4.QuickTips.init(); + var columns = [ + { header: "id", dataIndex: 'id', hidden: true }, + { header: "名称", dataIndex: 'name', width: 150 }, + { header: "模式", dataIndex: 'mode', width: 150 }, + { header: "系数", dataIndex: 'rate', width: 150 }, + { header: "固定值", dataIndex: 'fixedPrice', width: 150 }, + { header: "是否启用", dataIndex: 'isEnable', width: 150, sortable: false } + ]; + var tbar = [{ + text: '添加', + iconCls: 'btn_ext_application_add', + handler: function () { + showAddOrEditWindow(); + } + }, '-', { + text: '修改', + iconCls: 'btn_ext_application_edit', + handler: function () { + var selectedRecords = foreignTousseChargeModeGrid.getSelectionModel().getSelection(); + var selectedCount = foreignTousseChargeModeGrid.getSelectionModel().getCount(); + if (selectedCount < 1) { + showResult("请选择要修改的数据"); + } else if (selectedCount > 1) { + showResult("只能修改一条数据"); + } else { + var id = selectedRecords[0].data['id']; + var name = selectedRecords[0].data['name']; + var mode = selectedRecords[0].data['mode']; + var rate = selectedRecords[0].data['rate']; + var fixedPrice = selectedRecords[0].data['fixedPrice']; + var isEnable = selectedRecords[0].data['isEnable']; + showAddOrEditWindow(id, name, mode, rate, fixedPrice, isEnable); + } + } + }, '-', { + text: '删除', + iconCls: 'btn_ext_application_del', + handler: function () { + deleteConfig(foreignTousseChargeModeGrid); + } + }]; + + listStore = new Ext4.data.JsonStore({ + proxy: { + type: 'ajax', + url: WWWROOT + '/disinfectSystem/foreigntoussecharge/foreignTousseChargeModeAction!loadForeignTousseChargeModeList.do', + reader: { + root: 'data' + }, + extraParams: {} + }, + fields: [ + { name: 'id' }, + { name: 'name' }, + { name: 'mode' }, + { name: 'rate' }, + { name: 'fixedPrice' }, + { name: 'isEnable' } + ] + }); + + listStore.loadPage(1); + + foreignTousseChargeModeGrid = new Ext4.grid.GridPanel({ + title: '外来器械包收费模式设置', + columns: columns, + frame: false, + autoScroll: false, + store: listStore, + tbar: tbar, + dockedItems: [{ + xtype: 'pagingtoolbar', + store: listStore, + dock: 'bottom', + displayInfo: true + }], + viewConfig: { + autoFill: true + }, + selModel: new Ext4.selection.CheckboxModel() + }); + + new Ext4.container.Viewport({ + layout: 'border', + items: [{ + region: 'center', + layout: 'fit', + items: [foreignTousseChargeModeGrid] + }] + }); + +}); \ No newline at end of file Index: ssts-web/src/main/webapp/ext-4.2.3/resources/ext-theme-green/custom-theme-sandbox.css =================================================================== diff -u -r32210 -r32705 --- ssts-web/src/main/webapp/ext-4.2.3/resources/ext-theme-green/custom-theme-sandbox.css (.../custom-theme-sandbox.css) (revision 32210) +++ ssts-web/src/main/webapp/ext-4.2.3/resources/ext-theme-green/custom-theme-sandbox.css (.../custom-theme-sandbox.css) (revision 32705) @@ -54,5 +54,9 @@ .icon_print{ background-image:url( ../../../images/printButton.png ) !important; } +/* NFYY-29:收费设置图标 */ +.btn_ext_chargeSetting{ + background-image:url( ../../../images/web/chargeSetting.png ) !important; +} .x4-boundlist-item-over{background:#aedeb4;border-color:#15861e} \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseChargeMode/foreignTousseChargeModeView.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseChargeMode/foreignTousseChargeModeView.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseChargeMode/foreignTousseChargeModeView.jsp (revision 32705) @@ -0,0 +1,18 @@ +<%@page import="java.util.Date"%> +<%@page import="java.text.SimpleDateFormat"%> +<%@ page contentType="text/html; charset=UTF-8"%> +<%@ include file="/common/taglibs.jsp"%> + + + +<%@ include file="/common/includeExtJsAndCss.jsp"%> +<%@ include file="/common/includeExtJs4_2.jsp"%> + +外来器械包收费模式设置 + + + + + + + \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseSpecification/foreignTousseSpecificationView.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseSpecification/foreignTousseSpecificationView.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseSpecification/foreignTousseSpecificationView.jsp (revision 32705) @@ -0,0 +1,18 @@ +<%@page import="java.util.Date"%> +<%@page import="java.text.SimpleDateFormat"%> +<%@ page contentType="text/html; charset=UTF-8"%> +<%@ include file="/common/taglibs.jsp"%> + + + +<%@ include file="/common/includeExtJsAndCss.jsp"%> +<%@ include file="/common/includeExtJs4_2.jsp"%> + +外来器械包规格设置 + + + + + + + \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/chargeSetForm.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/chargeSetForm.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/chargeSetForm.js (revision 32705) @@ -0,0 +1,394 @@ +var chargeModeList = []; +var specificationListArray = []; +var fixedModeListArray = []; + +//选择系数 +function changeMode(that, index) { + var value = that.value; + var name = value.split(',')[0]; + var rate = value.split(',')[1]; + var specificationList = specificationListArray[index]; + for (var k = 0; k < specificationList.length; k++) { + var price = $('.price_' + index + '_' + k).attr('data-price'); + var num = $('.num_' + index + '_' + k).val(); + var currentPrice = parseInt(price) * parseInt(rate); + $('.currentPrice_' + index + '_' + k).html(currentPrice); + $('.sumPrice_' + index + '_' + k).html(currentPrice * num); + } + updateSum(index); +} + +//更新数量 +function updateNum(index, k) { + var num = $('.num_' + index + '_' + k).val(); + var currentPrice = $('.currentPrice_' + index + '_' + k).text(); + $('.sumPrice_' + index + '_' + k).html(parseInt(currentPrice) * num); + updateSum(index); +} + +//更新固定值的数量 +function updateFixedNum(index, k) { + var num = $('.fixedNum_' + index + '_' + k).val(); + var currentPrice = $('.fixedPrice_' + index + '_' + k).text(); + $('.sumFixedPrice_' + index + '_' + k).find('span').html(parseInt(currentPrice) * num); + updateSum(index); +} + +//更改固定值 +function changeFixedMode(that, index, k) { + if (that.checked) { + $('.fixedPrice_' + index + '_' + k).find('span').show(); + $('.fixedNum_' + index + '_' + k).show(); + $('.sumFixedPrice_' + index + '_' + k).find('span').show(); + } else { + $('.fixedPrice_' + index + '_' + k).find('span').hide(); + $('.fixedNum_' + index + '_' + k).hide(); + $('.sumFixedPrice_' + index + '_' + k).find('span').hide(); + } + updateSum(index); +} + +//合计 +function updateSum(index) { + var sumNumber = 0; + var sumPrices = 0; + var specificationList = specificationListArray[index]; + var fixedModeList = fixedModeListArray[index]; + for (var i = 0; i < specificationList.length; i++) { + var num = $('.num_' + index + '_' + i).val(); + var sumPrice = $('.sumPrice_' + index + '_' + i).text(); + sumNumber += parseInt(num); + sumPrices += parseInt(sumPrice); + } + for (var i = 0; i < fixedModeList.length; i++) { + var checked = $('.checkbox_' + index + '_' + i).is(':checked'); + var fixedNum = $('.fixedNum_' + index + '_' + i).val(); + var sumFixedPrice = $('.sumFixedPrice_' + index + '_' + i).find('span').text(); + if (checked) { + sumNumber += parseInt(fixedNum); + sumPrices += parseInt(sumFixedPrice); + } + } + $('.sumNumber_' + index).text(sumNumber); + $('.sumPrices_' + index).text(sumPrices); +} + +function checkAll(that) { + var trLen = $('#chargeSetTable').find('tr').length; + if (that.checked) { + for (var i = 0; i < trLen - 1; i++) { + $('.isDefaultChecked_' + i).prop("checked", true); + } + } else { + for (var i = 0; i < trLen - 1; i++) { + $('.isDefaultChecked_' + i).removeAttr("checked"); + } + } +} + +//表头 +function trHtml() { + var html = ''; + html += ''; + html += '供应商'; + html += '包名称'; + html += '收费模式'; + html += '规格'; + html += '单价'; + html += '数量'; + html += '金额'; + html += ' 全选/全不选'; + html += ''; + return html; +} + +//收费模式 +function changeModeHtml(index, foreignTousseChargeModeRate) { + var specificationList = specificationListArray[index]; + var fixedModeList = fixedModeListArray[index]; + var html = ''; + html += '

系数:'; + html += '

'; + for (var k = 1; k < specificationList.length; k++) { + html += '

'; + } + for (var z = 0; z < fixedModeList.length; z++) { + var foreignTousseChargeModeName = fixedModeList[z].foreignTousseChargeModeName; + var foreignTousseChargeModeID = fixedModeList[z].foreignTousseChargeModeID; + var fixedPrice = fixedModeList[z].fixedPrice; + var fixedAmount = fixedModeList[z].fixedAmount; + html += ''; + html += ''; + if (fixedAmount > 0) { + html += '

' + foreignTousseChargeModeName + '(' + fixedPrice + ')

'; + } else { + html += '

' + foreignTousseChargeModeName + '(' + fixedPrice + ')

'; + } + } + html += '

合计:

'; + html += ''; + return html; +} + +//单价 +function priceHtml(index, foreignTousseChargeModeRate) { + var specificationList = specificationListArray[index]; + var fixedModeList = fixedModeListArray[index]; + var html = ''; + html += ''; + for (var k = 0; k < specificationList.length; k++) { + var price = specificationList[k].foreignTousseSpecPrice; + if (foreignTousseChargeModeRate !== '' && foreignTousseChargeModeRate > 0) { + html += '

' + price * foreignTousseChargeModeRate + '

'; + } else { + html += '

' + price + '

'; + } + } + for (var z = 0; z < fixedModeList.length; z++) { + if (fixedModeList[z].fixedAmount > 0) { + html += '

' + fixedModeList[z].fixedPrice + '

'; + } else { + html += '

' + fixedModeList[z].fixedPrice + '

'; + } + } + html += ''; + return html; +} + +//数量 +function numberHtml(index) { + var specificationList = specificationListArray[index]; + var fixedModeList = fixedModeListArray[index]; + var html = ''; + html += ''; + var numbers = 0; + for (var k = 0; k < specificationList.length; k++) { + numbers += specificationList[k].amount; + html += '

'; + } + for (var z = 0; z < fixedModeList.length; z++) { + if (fixedModeList[z].fixedAmount > 0) { + numbers += fixedModeList[z].fixedAmount; + html += '

'; + } else { + html += '

'; + } + } + html += '

' + numbers + '

' + html += ''; + return html; +} + +//总金额 +function sumPricesHtml(index, foreignTousseChargeModeRate) { + var specificationList = specificationListArray[index]; + var fixedModeList = fixedModeListArray[index]; + var html = ''; + html += ''; + var prices = 0; + for (var k = 0; k < specificationList.length; k++) { + var price = specificationList[k].foreignTousseSpecPrice; + var amount = specificationList[k].amount; + if (foreignTousseChargeModeRate !== '' && foreignTousseChargeModeRate > 0) { + prices += (price * amount * foreignTousseChargeModeRate); + html += '

' + price * amount * foreignTousseChargeModeRate + '

'; + } else { + prices += (price * amount); + html += '

' + price * amount + '

'; + } + } + for (var z = 0; z < fixedModeList.length; z++) { + var fixedPrice = fixedModeList[z].fixedPrice; + var fixedAmount = fixedModeList[z].fixedAmount; + if (fixedAmount > 0) { + prices += (fixedPrice * fixedAmount); + html += '

' + fixedPrice * fixedAmount + '

'; + } else { + html += '

' + fixedPrice * fixedAmount + '

'; + } + } + html += '

' + prices + '

'; + html += ''; + return html; +} + +//保存 +function save() { + var trLen = $('#chargeSetTable').find('tr').length; + var foreignTousseChargeInfos = []; + for (var i = 0; i < trLen - 1; i++) { + var supplierName = $('.supplierName_' + i).text(); + var totalPrice = $('.sumPrices_' + i).text(); + var tousseDefinitionName = $('.tousseDefinitionName_' + i).text(); + var invoicePlanID = $('.invoicePlanID_' + i).val(); + var isDefaultValue = $('.isDefaultChecked_' + i).is(':checked'); + isDefaultValue = isDefaultValue ? '是' : '否'; + var tousseDefinitionID = $('.tousseDefinitionID_' + i).val(); + var fixedModeList = fixedModeListArray[i]; + var specificationList = specificationListArray[i]; + var chargeSettingModeItems = []; + for (var j = 0; j < fixedModeList.length; j++) { + var checked = $('.checkbox_' + i + '_' + j).is(':checked'); + var foreignTousseChargeModeName = $('.foreignTousseChargeModeName_' + i + '_' + j).val(); + var foreignTousseChargeModeID = $('.foreignTousseChargeModeID_' + i + '_' + j).val(); + var fixedNum = $('.fixedNum_' + i + '_' + j).val(); + var fixedPrice = $('.fixedPrice_' + i + '_' + j).find('span').text(); + var fixedTotalPrice = $('.sumFixedPrice_' + i + '_' + j).find('span').text(); + if (checked) { + chargeSettingModeItems.push({ + mode: "固定值", + foreignTousseChargeModeRate: 0, + fixedTotalPrice: parseInt(fixedTotalPrice), + foreignTousseChargeModeName: foreignTousseChargeModeName, + chargeSettingSpecItems: [], + foreignTousseChargeModeID: parseInt(foreignTousseChargeModeID), + fixedAmount: parseInt(fixedNum), + fixedPrice: parseInt(fixedPrice) + }) + } + } + if (specificationList.length > 0) { + var chargeSettingSpecItems = []; + var value = $('.chargeRate_' + i).val(); + var chargeName = value.split(',')[0]; + var chargeRate = value.split(',')[1]; + for (var k = 0; k < specificationList.length; k++) { + var currentPrice = $('.currentPrice_' + i + '_' + k).text(); + var num = $('.num_' + i + '_' + k).val(); + var sumPrice = $('.sumPrice_' + i + '_' + k).text(); + var foreignTousseSpecID = $('.foreignTousseSpecID_' + i + '_' + k).val(); + var foreignTousseSpecName = $('.foreignTousseSpecName_' + i + '_' + k).val(); + chargeSettingSpecItems[k] = { + amount: parseInt(num), + foreignTousseSpecID: parseInt(foreignTousseSpecID), + totalPrice: parseInt(sumPrice), + price: parseInt(currentPrice), + foreignTousseSpecName: foreignTousseSpecName, + foreignTousseSpecPrice: parseInt(currentPrice) / parseInt(chargeRate) + } + } + var obj = { + mode: "系数", + foreignTousseChargeModeRate: parseInt(chargeRate), + fixedTotalPrice: 0, + foreignTousseChargeModeName: chargeName, + chargeSettingSpecItems: chargeSettingSpecItems + } + chargeSettingModeItems.push(obj); + } + var obj = { + supplierName: supplierName, + invoicePlanID: parseInt(invoicePlanID), + totalPrice: parseInt(totalPrice), + tousseDefinitionID: parseInt(tousseDefinitionID), + tousseDefinitionName: tousseDefinitionName, + isDefaultValue: isDefaultValue, + chargeSettingModeItems: chargeSettingModeItems + } + foreignTousseChargeInfos.push(obj); + } + $.ajax({ + type: 'post', + dataType: 'json', + url: WWWROOT + '/disinfectSystem/foreigntoussecharge/chargeSettingAction!batchSaveOrUpdateChargeSetting.do', + data: { + invoicePlanID: invoicePlanID, + foreignTousseChargeInfos: JSON.stringify(foreignTousseChargeInfos) + }, + success: function (result) { + if (result.success) { + window.parent.ReturnChargeSetResult(result); + } else { + window.parent.ReturnChargeSetResult(result); + } + } + }); +} + +$(document).ready(function () { + Ext4.Ajax.request({ + async: false, + url: WWWROOT + '/disinfectSystem/foreigntoussecharge/foreignTousseChargeModeAction!searchEnableAndInvoicePlanForeignTousseChargeModeList.do', + data: { + 'invoicePlanID': invoicePlanID + }, + success: function (response, options) { + var result = Ext4.decode(response.responseText); + if (result.success && result.data && result.data.length > 0) { + for (var i = 0; i < result.data.length; i++) { + if (result.data[i].mode == '系数') { + chargeModeList.push(result.data[i]); + } + } + } + } + }); + + $.ajax({ + type: 'post', + dataType: 'json', + url: WWWROOT + '/disinfectSystem/foreigntoussecharge/chargeSettingAction!loadForeignTousseChargeSetting.do', + data: { + 'invoicePlanID': invoicePlanID + }, + success: function (result) { + if (result.success) { + var html = ''; + html += trHtml(); + if (result.data && result.data.length > 0) { + for (var i = 0; i < result.data.length; i++) { + var isDefaultValue = result.data[i].isDefaultValue; + var chargeSettingModeItems = result.data[i].chargeSettingModeItems; + var specificationList = []; + var fixedModeList = []; + var foreignTousseChargeModeRate = ''; + for (var k = 0; k < chargeSettingModeItems.length; k++) { + if (chargeSettingModeItems[k].mode == '固定值') { + fixedModeList.push(chargeSettingModeItems[k]) + } else { + specificationList = chargeSettingModeItems[k].chargeSettingSpecItems; + foreignTousseChargeModeRate = chargeSettingModeItems[k].foreignTousseChargeModeRate; + } + } + specificationListArray[i] = specificationList; + fixedModeListArray[i] = fixedModeList; + html += ''; + html += '' + result.data[i].supplierName + ''; + html += '' + result.data[i].tousseDefinitionName + ''; + html += ''; + html += ''; + html += ''; + html += changeModeHtml(i, foreignTousseChargeModeRate); + html += ''; + for (var k = 0; k < specificationList.length; k++) { + html += ''; + html += ''; + html += '

' + specificationList[k].foreignTousseSpecName + '(' + specificationList[k].foreignTousseSpecPrice + ')

'; + } + html += ''; + html += priceHtml(i, foreignTousseChargeModeRate); + html += numberHtml(i); + html += sumPricesHtml(i, foreignTousseChargeModeRate); + if (isDefaultValue == '是') { + html += ' 将本次设置作为默认值'; + } else { + html += ' 将本次设置作为默认值'; + } + html += ''; + } + document.getElementById('chargeSetTable').innerHTML = html; + } + } else { + alert(result.message); + } + } + }); +}) \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.js =================================================================== diff -u -r32642 -r32705 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.js (.../foreignTousseApplicationView.js) (revision 32642) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.js (.../foreignTousseApplicationView.js) (revision 32705) @@ -1,7 +1,8 @@ var entityName = "外来器械申请单"; var grid; +var chargeSetWin; //判断是否ie和ie7 -var isIE6OrIE7 = top.Ext4.isIE6 || top.Ext4.isIE7; +var isIE6OrIE7 = Ext4.isIE6 || Ext4.isIE7; // 删除 function deleteForeignTousseApplication(grid) { var records = grid.getSelectionModel().getSelections(); @@ -131,6 +132,16 @@ return "

" + v + "

"; } +function renderChargeStatusColor(v, p, record){ + var chargeStatus = record.data['chargeStatus']; + if(chargeStatus == '待确认'){ + color = '#FFFF00';//黄色 + }else if(chargeStatus == '已确认'){ + color = '#fff';//白色 + } + return "

" + v + "

"; +} + function renderDeliverStatusColor(v, p, record){//发货状态 var deliverStatus = record.data['deliverStatus']; var packageStatus = record.data['packageStatus']; @@ -176,11 +187,11 @@ } var returneeOfSupplier = ''; var returnMan = ''; - if(top.Ext4.getCmp('returneeOfSupplier1')){ - returneeOfSupplier = top.Ext4.getCmp('returneeOfSupplier1').getValue() || ''; + if(Ext4.getCmp('returneeOfSupplier1')){ + returneeOfSupplier = Ext4.getCmp('returneeOfSupplier1').getValue() || ''; } - if(top.Ext4.getCmp('returnMan1')){ - returnMan = top.Ext4.getCmp('returnMan1').getValue() || ''; + if(Ext4.getCmp('returnMan1')){ + returnMan = Ext4.getCmp('returnMan1').getValue() || ''; } if(sstsConfig.enableReturneeOfForeignTousseSupplier){ Ext.Ajax.request({ @@ -232,6 +243,15 @@ } } +function ReturnChargeSetResult(res){ + if(res.success){ + showResult(res.message); + chargeSetWin.close(); + }else { + showResult(res.message); + } +} + Ext.onReady(function(){ Ext.QuickTips.init(); var isShowInterfacePush = false; @@ -252,6 +272,7 @@ {header : "病人姓名",width : 60,dataIndex : 'patient'}, {header : "医生",width : 60,dataIndex : 'doctor'}, {header : "外来器械包名称",width : 150,dataIndex : 'tousseName'}, + {header : "收费状态",width : 150,dataIndex : 'chargeStatus',renderer:renderChargeStatusColor,hidden:!SSTS_ShowForeignTousseApplication_ChargeSet}, {header : "外来器械包条码",width : 150,dataIndex : 'barcodes', hidden:!sstsConfig.showForeignTousseApplicationBarcode,sortable:false}, {header : "供应商",width : 150,dataIndex : 'supplierName'}, {header : "手术名称",width : 150,dataIndex : 'surgery'}, @@ -286,6 +307,7 @@ {name : 'recyclingStatus'}, {name : 'packageStatus'}, {name : 'hospitalNumber'}, + {name : 'chargeStatus'}, {name : 'patient'}, {name : 'doctor'}, {name : 'tousseName'}, @@ -315,6 +337,7 @@ {type: 'string', dataIndex: 'recyclingStatus'}, {type: 'string', dataIndex: 'hospitalNumber'}, {type: 'string', dataIndex: 'patient'}, + {type: 'string', dataIndex: 'chargeStatus'}, {type: 'string', dataIndex: 'tousseName'}, {type: 'string', dataIndex: 'supplierName'}, {type: 'string', dataIndex: 'doctor'}, @@ -464,6 +487,58 @@ } modifyPatientInfo(records[0].data.id); } + }, '-', { + text : '收费设置', + iconCls : 'btn_ext_chargeSetting', + id : 'chargeSetting', + hidden : !SSTS_ShowForeignTousseApplication_ChargeSet, + handler : function() { + var records = grid.getSelectionModel().getSelections(); + + if (records.length == 0) { + showResult("请选择要设置的"+entityName+"!"); + return false; + }else if(records.length != 1){ + showResult("一次只能设置一个"+entityName+"!"); + return false; + } + + var form = new Ext4.Panel({ + frame: false,//渲染面板 + autoScroll: true,//自动显示滚动条 + collapsible: false,//允许展开和收缩 + bodyPadding: 0, + buttonAlign: 'center', + html:'', + buttons: [{ + id: 'confirmBtn', + text: '保存', + handler: function () { + window.frames["thisTable"].save(); + } + }, { + text: '取消', + handler: function () { + chargeSetWin.close(); + } + }] + }); + + chargeSetWin = new Ext4.window.Window({ + id: 'chargeSetWin', + title: '外来器械包收费设置(' + records[0].data.depart + '-' + records[0].json.serialNumber + ')', + height: 500, + width: 880, + resizable: false, + modal: true, + border: false, + plain: true, + layout: 'fit', + items: [form] + }); + + chargeSetWin.show(); + } }]; grid = new Ext.ux.ForgonPageGrid({ Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseSpecification/foreignTousseSpecificationForm.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseSpecification/foreignTousseSpecificationForm.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseSpecification/foreignTousseSpecificationForm.js (revision 32705) @@ -0,0 +1,183 @@ +var configWin; +var formPanel; + +function cancel() { + configWin.close(); +} + +//删除外来器械包规格设置 +function deleteConfig(grid) { + var selectedRecords = grid.getSelectionModel().getSelection(); + var selectedCount = grid.getSelectionModel().getCount(); + var ids = []; + if (selectedCount < 1) { + showResult("请选择要删除的数据"); + } else { + for (var i = 0, len = selectedRecords.length; i < len; i++) { + ids[i] = selectedRecords[i].data['id']; + } + Ext4.MessageBox.confirm("请确认", "确定要删除选中的信息吗?", + function (button, text) { + if ("yes" == button) { + Ext4.Ajax.request({ + url: WWWROOT + '/disinfectSystem/foreigntoussecharge/foreignTousseSpecificationAction!deleteForeignTousseSpecification.do', + params: { ids: ids.join(';') }, + success: function (response, options) { + var result = Ext4.JSON.decode(response.responseText); + var success = result.success; + if (true != success) { + showResult(result.message); + return; + } else { + showResult('删除成功!'); + listStore.load(); + } + }, + failure: function (response, options) { + var result = Ext4.JSON.decode(response.responseText); + showResult(result.message); + } + }); + } + }); + } +} + +//保存外来器械包规格设置 +function saveConfig() { + formPanel.form.submit({ + url: WWWROOT + '/disinfectSystem/foreigntoussecharge/foreignTousseSpecificationAction!saveOrUpdateForeignTousseSpecification.do', + method: 'POST', + waitMsg: '正在保存数据,请稍候', + timeout: 600000, + waitTitle: '提交表单', + success: function (form, action) { + configWin.close(); + listStore.load(); + showResult('保存成功'); + }, + failure: function (form, action) { + if (action.result.msg) { + showResult(action.result.msg); + } else if (action.result.message) { + showResult(action.result.message); + } else { + showResult('保存失败'); + } + } + }); +} + +//显示外来器械包规格设置的窗口 +function showAddOrEditWindow(id, name, price, isEnable) { + var title = '新增'; + if (id) { + title = '编辑'; + } + formPanel = new top.Ext4.form.Panel({ + id: 'configForm', + frame: true, + labelSeparator: ':', + bodyStyle: 'padding:5px 5px 0px 5px;', + fieldDefaults: { + labelAlign: 'right', + labelWidth: 70 + }, + buttonAlign: 'center', + items: [{ + xtype: 'hidden', + id: 'id', + name: 'id', + value: id || '' + }, { + layout: 'column', + items: [{ + columnWidth: 0.98, + layout: 'form', + border: 0, + style: 'margin-bottom:10px', + items: [{ + xtype: 'textfield', + fieldLabel: '名称', + id: 'name', + name: 'name', + allowBlank: false, + value: name || '', + anchor: '95%' + }] + }, { + columnWidth: 0.98, + layout: 'form', + border: 0, + style: 'margin-bottom:10px', + items: [{ + xtype: 'numberfield', + fieldLabel: '单价', + minValue: 0, + maxValue: 9999, + id: 'price', + name: 'price', + allowBlank: false, + value: price || '', + anchor: '95%' + }] + }, { + columnWidth: 0.98, + layout: 'form', + border: 0, + style: 'margin-bottom:10px', + items: [{ + xtype: 'combo', + fieldLabel: "是否启用", + valueField: 'value', + displayField: 'value', + store: new Ext4.data.SimpleStore({ + fields: ['value'], + data: [['是'], ['否']] + }), + allowBlank: false, + editable: false, + value: isEnable || '是', + triggerAction: 'all', + mode: 'local', + name: "isEnable", + id: "isEnable", + anchor: '95%' + }] + }] + }], + buttons: [{ + id: 'saveBtn', + text: '保存', + handler: function () { + if (formPanel.getForm().isValid()) { + saveConfig(); + } else { + showResult('请填写表单!'); + return false; + } + } + }, { + text: '取消', + handler: cancel + }] + }); + configWin = new top.Ext4.window.Window({ + id: 'configWin', + layout: 'border', + title: title + '外来器械包规格', + width: 500, + height: 200, + border: false, + plain: true, + modal: true, + items: [{ + region: 'center', + width: 400, + layout: 'fit', + items: [formPanel] + }] + }); + configWin.show(); +} + Index: ssts-web/src/main/resources/systemset/operationDefine.xml =================================================================== diff -u -r32158 -r32705 --- ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 32158) +++ ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 32705) @@ -37,6 +37,7 @@ + @@ -517,6 +518,7 @@ + Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseChargeMode/foreignTousseChargeModeForm.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseChargeMode/foreignTousseChargeModeForm.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseChargeMode/foreignTousseChargeModeForm.js (revision 32705) @@ -0,0 +1,250 @@ +var configWin; +var formPanel; + +function cancel() { + configWin.close(); +} + +//删除外来器械包收费模式设置 +function deleteConfig(grid) { + var selectedRecords = grid.getSelectionModel().getSelection(); + var selectedCount = grid.getSelectionModel().getCount(); + var ids = []; + if (selectedCount < 1) { + showResult("请选择要删除的数据"); + } else { + for (var i = 0, len = selectedRecords.length; i < len; i++) { + ids[i] = selectedRecords[i].data['id']; + } + Ext4.MessageBox.confirm("请确认", "确定要删除选中的信息吗?", + function (button, text) { + if ("yes" == button) { + Ext4.Ajax.request({ + url: WWWROOT + '/disinfectSystem/foreigntoussecharge/foreignTousseChargeModeAction!deleteForeignTousseChargeMode.do', + params: { ids: ids.join(';') }, + success: function (response, options) { + var result = Ext4.JSON.decode(response.responseText); + var success = result.success; + if (true != success) { + showResult(result.message); + return; + } else { + showResult('删除成功!'); + listStore.load(); + } + }, + failure: function (response, options) { + var result = Ext4.JSON.decode(response.responseText); + showResult(result.message); + } + }); + } + }); + } +} + +//保存外来器械包收费模式设置 +function saveConfig() { + var id = top.Ext4.getCmp('id').getValue(); + var name = top.Ext4.getCmp('name').getValue(); + var mode = top.Ext4.getCmp('mode').getValue(); + var rate = top.Ext4.getCmp('rate').getValue(); + var fixedPrice = top.Ext4.getCmp('fixedPrice').getValue(); + var isEnable = top.Ext4.getCmp('isEnable').getValue(); + var params = { + id: id, + name: name, + mode: mode, + rate: (mode == '系数') ? rate : '', + fixedPrice: (mode == '固定值') ? fixedPrice : '', + isEnable: isEnable + } + Ext4.Ajax.request({ + url: WWWROOT + '/disinfectSystem/foreigntoussecharge/foreignTousseChargeModeAction!saveOrUpdateForeignTousseChargeMode.do', + params: params, + success: function (response, options) { + var result = Ext4.JSON.decode(response.responseText); + var success = result.success; + if (true != success) { + showResult(result.message); + return; + } else { + configWin.close(); + listStore.load(); + showResult('保存成功'); + } + }, + failure: function (response, options) { + var result = Ext4.JSON.decode(response.responseText); + showResult(result.message); + } + }); +} + +//显示外来器械包收费模式设置的窗口 +function showAddOrEditWindow(id, name, mode, rate, fixedPrice, isEnable) { + var title = '新增'; + if (id) { + title = '编辑'; + } + formPanel = new top.Ext4.form.Panel({ + id: 'configForm', + frame: true, + labelSeparator: ':', + bodyStyle: 'padding:5px 5px 0px 5px;', + fieldDefaults: { + labelAlign: 'right', + labelWidth: 70 + }, + buttonAlign: 'center', + items: [{ + xtype: 'hidden', + id: 'id', + name: 'id', + value: id || '' + }, { + layout: 'column', + items: [{ + columnWidth: 0.48, + layout: 'form', + border: 0, + style: 'margin-bottom:10px', + items: [{ + xtype: 'textfield', + fieldLabel: '名称', + id: 'name', + name: 'name', + allowBlank: false, + value: name || '', + anchor: '95%' + }] + }, { + columnWidth: 0.48, + layout: 'form', + border: 0, + style: 'margin-bottom:10px', + items: [{ + xtype: 'combo', + fieldLabel: "模式", + valueField: 'value', + displayField: 'value', + store: new Ext4.data.SimpleStore({ + fields: ['value'], + data: [['系数'], ['固定值']] + }), + allowBlank: false, + editable: false, + value: mode || '系数', + triggerAction: 'all', + mode: 'local', + name: "mode", + id: "mode", + anchor: '95%', + listeners: { + select: function (thiz, record, index) { + if (record[0].data.value == '系数') { + top.Ext4.getCmp('rate').enable(); + top.Ext4.getCmp('fixedPrice').disable(); + top.Ext4.getCmp('fixedPrice').setValue(''); + } else { + top.Ext4.getCmp('rate').disable(); + top.Ext4.getCmp('fixedPrice').enable(); + top.Ext4.getCmp('rate').setValue(''); + } + } + } + }] + }, { + columnWidth: 0.48, + layout: 'form', + border: 0, + style: 'margin-bottom:10px', + items: [{ + xtype: 'numberfield', + fieldLabel: '系数', + minValue: 0, + maxValue: 9999, + disabled: (mode == '系数' || !mode) ? false : true, + id: 'rate', + name: 'rate', + allowBlank: false, + value: rate || '', + anchor: '95%' + }] + }, { + columnWidth: 0.48, + layout: 'form', + border: 0, + style: 'margin-bottom:10px', + items: [{ + xtype: 'numberfield', + fieldLabel: '固定值', + minValue: 0, + maxValue: 9999, + disabled: (mode == '固定值') ? false : true, + id: 'fixedPrice', + name: 'fixedPrice', + allowBlank: false, + value: fixedPrice || '', + anchor: '95%' + }] + }, { + columnWidth: 0.48, + layout: 'form', + border: 0, + style: 'margin-bottom:10px', + items: [{ + xtype: 'combo', + fieldLabel: "是否启用", + valueField: 'value', + displayField: 'value', + store: new Ext4.data.SimpleStore({ + fields: ['value'], + data: [['是'], ['否']] + }), + allowBlank: false, + editable: false, + value: isEnable || '是', + triggerAction: 'all', + mode: 'local', + name: "isEnable", + id: "isEnable", + anchor: '95%' + }] + }] + }], + buttons: [{ + id: 'saveBtn', + text: '保存', + handler: function () { + if (formPanel.getForm().isValid()) { + saveConfig(); + } else { + showResult('请填写表单!'); + return false; + } + } + }, { + text: '取消', + handler: cancel + }] + }); + configWin = new top.Ext4.window.Window({ + id: 'configWin', + layout: 'border', + title: title + '外来器械包收费模式', + width: 500, + height: 200, + border: false, + plain: true, + modal: true, + items: [{ + region: 'center', + width: 400, + layout: 'fit', + items: [formPanel] + }] + }); + configWin.show(); +} + Index: ssts-web/src/main/webapp/ext/fontSize12/styles/common.css =================================================================== diff -u -r32301 -r32705 --- ssts-web/src/main/webapp/ext/fontSize12/styles/common.css (.../common.css) (revision 32301) +++ ssts-web/src/main/webapp/ext/fontSize12/styles/common.css (.../common.css) (revision 32705) @@ -483,3 +483,10 @@ background: #87CEFA !important; } +#configForm { + border: none; +} + +#configForm-body .x4-panel-body-default { + background: none !important; +} \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseSpecification/foreignTousseSpecificationView.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseSpecification/foreignTousseSpecificationView.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreignTousseSpecification/foreignTousseSpecificationView.js (revision 32705) @@ -0,0 +1,91 @@ +var listStore; +var foreignTousseSpecificationGrid; + +Ext4.onReady(function () { + Ext4.QuickTips.init(); + var columns = [ + { header: "id", dataIndex: 'id', hidden: true }, + { header: "名称", dataIndex: 'name', width: 150, sortable: false }, + { header: "单价", dataIndex: 'price', width: 150 }, + { header: "是否启用", dataIndex: 'isEnable', width: 150 } + ]; + var tbar = [{ + text: '添加', + iconCls: 'btn_ext_application_add', + handler: function () { + showAddOrEditWindow(); + } + }, '-', { + text: '修改', + iconCls: 'btn_ext_application_edit', + handler: function () { + var selectedRecords = foreignTousseSpecificationGrid.getSelectionModel().getSelection(); + var selectedCount = foreignTousseSpecificationGrid.getSelectionModel().getCount(); + if (selectedCount < 1) { + showResult("请选择要修改的数据"); + } else if (selectedCount > 1) { + showResult("只能修改一条数据"); + } else { + var id = selectedRecords[0].data['id']; + var name = selectedRecords[0].data['name']; + var price = selectedRecords[0].data['price']; + var isEnable = selectedRecords[0].data['isEnable']; + showAddOrEditWindow(id, name, price, isEnable); + } + } + }, '-', { + text: '删除', + iconCls: 'btn_ext_application_del', + handler: function () { + deleteConfig(foreignTousseSpecificationGrid); + } + }]; + + listStore = new Ext4.data.JsonStore({ + proxy: { + type: 'ajax', + url: WWWROOT + '/disinfectSystem/foreigntoussecharge/foreignTousseSpecificationAction!loadForeignTousseSpecificationList.do', + reader: { + root: 'data' + }, + extraParams: {} + }, + fields: [ + { name: 'id' }, + { name: 'name' }, + { name: 'price' }, + { name: 'isEnable' } + ] + }); + + listStore.loadPage(1); + + foreignTousseSpecificationGrid = new Ext4.grid.GridPanel({ + title: '外来器械包规格设置', + columns: columns, + frame: false, + autoScroll: false, + store: listStore, + tbar: tbar, + dockedItems: [{ + xtype: 'pagingtoolbar', + store: listStore, + dock: 'bottom', + displayInfo: true + }], + viewConfig: { + autoFill: true + }, + selModel: new Ext4.selection.CheckboxModel() + }); + + new Ext4.container.Viewport({ + layout: 'border', + items: [{ + region: 'center', + layout: 'fit', + items: [foreignTousseSpecificationGrid] + }] + }); + +}); \ No newline at end of file Index: ssts-web/src/main/webapp/homepage/menu.jsp =================================================================== diff -u -r32159 -r32705 --- ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 32159) +++ ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 32705) @@ -542,6 +542,14 @@ /** + * 《外来器械包供应商收费报表》权限 + */ + var SSTS_ForeignTousseSupplierChargeReport = true; + + SSTS_ForeignTousseSupplierChargeReport = false; + + +/** * 《各类型输液器报表》权限 */ var SSTS_ApparatusInfusionisType = true; Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r32189 -r32705 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 32189) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 32705) @@ -697,6 +697,7 @@ {hidden :SSTS_GoodsDistributeReportChart,text:"物品发放分布饼图",href:WWWROOT+'/disinfectsystem/reportforms/goodsDistributeReportChartView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_TousseDeliverReport,text:"器械包发货统计报表",href:WWWROOT+'/disinfectsystem/reportforms/tousseDeliverStatisticsView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_ForeignTousseReport,text:"外来器械申请单统计报表",href:WWWROOT+'/disinfectsystem/reportforms/foreignTousseApplicationReport.jsp',hrefTarget:linkTarget,leaf:true}, + {hidden :SSTS_ForeignTousseSupplierChargeReport,text:"外来器械包供应商收费报表",href:WWWROOT+'/disinfectsystem/reportforms/foreignTousseSupplierChargeReport.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :!hasForeignTousseSizeSetting,text:"外来器械包大小统计报表",href:WWWROOT+'/disinfectsystem/reportforms/foreignTousseSizeReport.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_ApparatusInfusionisType,text:"各类型输液器报表",href:WWWROOT+'/disinfectsystem/reportforms/apparatusInfusionisTypeView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_TousseMaterialMonthCheckReport,text:"消毒供应中心器械月盘点统计报表",href:WWWROOT+'/disinfectsystem/reportforms/supplyRoomApplianceMonthStatisticsView.jsp',hrefTarget:linkTarget,leaf:true}, @@ -976,6 +977,8 @@ {hidden :SSTS_GoodsBindingConfig,text:"物品绑定",href:WWWROOT+ '/disinfectsystem/goodsBindingConfig/goodsBindingConfigView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_ForeignTousseApplication_Combo,text:"外来器械包组合",href:WWWROOT+'/disinfectsystem/CombinationKits/CombinationKitsView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_GoodsFilterConfig,text:"物品黑白名单过滤设置",href:WWWROOT+'/disinfectsystem/goodFilterConfig/goodFilterTemplate.jsp',hrefTarget:linkTarget,leaf:true}, + {hidden :!sstsConfig.foreignTousseChargingMode,text:"外来器械包规格设置",href:WWWROOT+'/disinfectsystem/basedatamanager/foreignTousseSpecification/foreignTousseSpecificationView.jsp',hrefTarget:linkTarget,leaf:true}, + {hidden :!sstsConfig.foreignTousseChargingMode,text:"外来器械包收费模式设置",href:WWWROOT+'/disinfectsystem/basedatamanager/foreignTousseChargeMode/foreignTousseChargeModeView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_UrgentLevel_manager,text:"加急级别管理",href:WWWROOT+'/disinfectsystem/basedatamanager/urgentLevel/urgentLevelView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_OperationRoom_manager,text:"手术间管理",href:WWWROOT+'/disinfectsystem/basedatamanager/operationRoom/operationRoom.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_ExpensiveGoods_Hidden_Menu || SSTS_ExpensiveGoodsWorkFlow_Hidden_Manager,text:"流程定义管理",href:WWWROOT+'/systemmanage/workFlow/workFlow.jsp',hrefTarget:linkTarget,leaf:true}, Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/chargeSetTable.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/chargeSetTable.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/chargeSetTable.jsp (revision 32705) @@ -0,0 +1,74 @@ +<%@page import="java.util.Date"%> +<%@page import="java.text.SimpleDateFormat"%> +<%@ page contentType="text/html; charset=UTF-8"%> +<%@ include file="/common/taglibs.jsp"%> + + + +<%@ include file="/common/includeExtJsAndCss.jsp"%> +<%@ include file="/common/includeExtJs4_2.jsp"%> + + + + + +
+ + +
+ +
+ + + + + + \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.jsp =================================================================== diff -u -r31889 -r32705 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.jsp (.../foreignTousseApplicationView.jsp) (revision 31889) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.jsp (.../foreignTousseApplicationView.jsp) (revision 32705) @@ -90,6 +90,12 @@ SSTS_ForeignTousseApplication_Return = false; + + //外来器械申请单收费设置 + var SSTS_ShowForeignTousseApplication_ChargeSet = false; + + SSTS_ShowForeignTousseApplication_ChargeSet = true; + var SSTS_ForeignTousseApplication_Terminate = true;