//@ sourceURL=toll_administration.js var LODOP; //声明为全局变量 //默认打印机下标 var printIndex = -1; //选中的要退的费用收费编码 var chargeItemCodes = null; $(function () { //默认光标在卡号输入框 $("#cardNo").focus(); init_daterangepicker(); initSelect(); initFeeTable(); //卡号输入改变事件 cardNoChange(); //重置查询参数 $('#btn_clean').click(function () { cleanParams(); }); //初始化页面上面的按钮事件 //查询 $('#btn_query').click(function () { initFeeTable(); }); /** * 增加收款方式按钮事件 */ $("#addPayType").on("click", function (t) { // var arr = $("#payForm").find("div.pay-item"); // if (arr.length > 0) { // for (var i = 0; i < arr.length; i++) { // var temp = parseFloat($(arr[i]).find("input").val()); // if (temp == 0) { // new PNotify({ // title: '错误提示', // text: "存在未使用的收款方式,请不要重复添加!", // type: 'error', // hide: true, // styling: 'bootstrap3' // }); // return; // } // } // } var payTypeIndex = $("#payTypeIndex").val(); var payTypeId = "payType_" + payTypeIndex; var html = '
'; $("#changeAmountParent").before(html); initChequeType(payTypeId) payTypeIndex = payTypeIndex + 1; $("#payTypeIndex").val(payTypeIndex); $("#addPayType").parent().removeClass("in").addClass("hide"); }); //初始门诊收银方式下拉选 initChequeType("payType"); setTimeout(function () { getLodop(); }, 800); // $("#editPrint").on("click", function (t) { // CreatePrinterList(); // $("#editPrintModal").modal(); // }); // /** // * 设置窗口号 // */ // $("#editWindows").on("click", function (t) { // $.ajax({ // type: "GET", // url: '/thmz/getLastWindowsByCurrentUser', // contentType: "application/json;charset=UTF-8", // dataType: "json", // headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, // success: function (res) { // if (res == '401' || res == 401) { // window.location.href = '/thmz/login/view' // return; // } // if (res.code == 0) { // $("#windowsNum").val(res.data.windowsNo) // } else { // new PNotify({ // title: '错误提示', // text: res.message, // type: 'error', // hide: true, // styling: 'bootstrap3' // }); // } // } // }); // $("#editWindowsModal").modal(); // }); }); /** * 列表类型按钮切换事件 * @param object */ function payMarkButtonChange(object) { $("#pay_mark_group").find("button").each(function (index, element) { if ($(element).hasClass("btn-primary")) { $(element).removeClass("btn-primary").addClass("btn-default"); } }); $(object).removeClass("btn-default").addClass("btn-primary"); initFeeTable(); } /** * 收费明细类型按钮切换事件 * @param object */ function billItemButtonChange(object) { $("#bill_item_group").find("button").each(function (index, element) { if ($(element).hasClass("btn-primary")) { $(element).removeClass("btn-primary").addClass("btn-default"); } }); $(object).removeClass("btn-default").addClass("btn-primary"); initChargeDetailTable(); //默认光标在卡号输入框 $("#cardNo").focus(); } /** * 收费明细类型按钮切换事件 * @param object */ function refundBillItemButtonChange(object) { $("#refund_bill_item_group").find("button").each(function (index, element) { if ($(element).hasClass("btn-primary")) { $(element).removeClass("btn-primary").addClass("btn-default"); } }); $(object).removeClass("btn-default").addClass("btn-primary"); initMzChargeDetailByBillItem(false); } /** * 初始化下拉选 */ function initSelect() { $(".selectpicker").selectpicker({ dropuAuto: false }); initDeptSelect(); initDoctorSelect(); } /** * 挂号列表中的科室列表 */ function initDeptSelect() { //科室列表 $.ajax({ type: "GET", url: '/thmz/allMzUnitCode', dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (data) { if (data == '401' || data == 401) { window.location.href = '/thmz/login/view' return; } var html = ''; $.each(data.data, function (commentIndex, comment) { html += ''; }); $('#deptNoParam').empty(); $('#deptNoParam').html(html); $('#deptNoParam').selectpicker('refresh'); } }); } /** * 挂号列表中的医生列表初始化 */ function initDoctorSelect() { //医生列表 $.ajax({ type: "GET", url: '/thmz/listEmployeeByDepts?depts=' + $('#deptNoParam').val(), dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var html = ''; $.each(res.data, function (commentIndex, comment) { html += ''; }); $('#doctorParam').empty(); $('#doctorParam').html(html); $('#doctorParam').selectpicker('destroy').selectpicker('refresh'); } }); } var $table_1; /** * 初始化收费表格 */ function initFeeTable() { var payMarkGroup = getIndex("pay_mark_group"); var timeColumusName = "处方时间"; var timeColumus = "priceTime"; $("#refundFeeTip").removeClass("in").addClass("hide"); $("#chargeFeeTip").removeClass("hide").addClass("in"); if (payMarkGroup == 1) { timeColumusName = "缴费时间"; timeColumus = "chargeDate"; $("#refundFeeTip").removeClass("hide").addClass("in"); $("#chargeFeeTip").removeClass("in").addClass("hide"); } else if (payMarkGroup == 2) { timeColumusName = "退费时间"; timeColumus = "inputDate"; } var patientId = $("#patientId").val(); if (payMarkGroup == 0 && patientId != null && patientId != '') { $("#patientIdHaveTally").val(patientId); $.ajax({ type: "GET", url: '/thmz/getTallyTotalCharge?patientId=' + patientId, contentType: "application/json;charset=UTF-8", dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { if (res.data != null && res.data > 0) { $("#haveTallyModal").modal(); $("#totalTallyAmount").text(res.data.toFixed(2)); } else { $("#haveTallyModal").modal('hide'); } } else { new PNotify({ title: '错误提示', text: res.message, type: 'error', hide: true, styling: 'bootstrap3' }); } } }); } $('#tb_table').bootstrapTable("destroy"); $table_1 = $('#tb_table').bootstrapTable({ url: '/thmz/listMzChargeDetail', //请求后台的URL(*) method: 'post', //请求方式(*) toolbar: '#toolbar', //工具按钮用哪个容器 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: true, //是否显示分页(*) sortable: true, //是否启用排序 sortOrder: "asc", //排序方式 queryParams: queryParams, //传递参数(*) sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*) pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 5, //每页的记录行数(*) pageList: [5, 10, 25, 50, 100], //可供选择的每页的行数(*) search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大 strictSearch: true, showColumns: false, //是否显示所有的列 showRefresh: false, //是否显示刷新按钮 minimumCountColumns: 2, //最少允许的列数 clickToSelect: true, //是否启用点击选中行 uniqueId: "ID", //每一行的唯一标识,一般为主键列 showToggle: false, //是否显示详细视图和列表视图的切换按钮 cardView: false, //是否显示详细视图 detailView: false, //rowStyle:rowStyle,//通过自定义函数设置行样式 ajaxOptions: { headers: { 'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token") } }, columns: [ // { // checkbox: true // }, { field: 'realNo', title: '缴费流水号', align: "center", valign: 'middle', formatter: function (value, row, index) { return Math.abs(value); } }, { field: 'patientId', title: '患者编号', align: "center", valign: 'middle', }, { field: 'name', title: '患者姓名', align: "center", valign: 'middle', }, { field: 'times', title: '就诊次数', align: "center", valign: 'middle', }, { field: 'receiptNo', title: '结算次数', align: "center", valign: 'middle', formatter: function (value, row, index) { return Math.abs(value); } }, { field: 'amount', title: '金额(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { return Math.abs(value); } }, { field: 'warnDept', title: '科室', align: "center", valign: 'middle', }, { field: 'doctorCode', title: '医生', align: "center", valign: 'middle', }, { field: timeColumus, title: timeColumusName, align: "center", valign: 'middle', formatter: function (value, row, index) { if (value == null || value == "") { return ""; } return format(value, "yyyy-MM-dd HH:mm:ss"); } }, { title: '操作', align: "center", valign: 'middle', // sortable: true, formatter: function (value, row, index) { var str = ''; str += ''; var payMarkGroup = getIndex("pay_mark_group"); if (payMarkGroup == 0) { str += ''; } if (payMarkGroup == 1) { str += ''; if (row.printFlag == 0) { str += ''; } else if (row.printFlag == 1) { str += ''; str += ''; } } return str; } } ], responseHandler: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var ress = eval(res); if (ress.code == -1) { if (ress.message != null && ress.message != '') { new PNotify({ title: '错误提示', text: ress.message, type: 'error', hide: true, styling: 'bootstrap3' }); } return { "total": 0,//总页数 "rows": {} //数据 }; } // if(ress.pageViewVo.total==0){ // $("#cardNo").val(null); // $("#name").val(null); // } return { "total": ress.pageViewVo.total,//总页数 "rows": ress.pageViewVo.data //数据 }; }, /** * @param {点击列的 field 名称} field * @param {点击列的 value 值} value * @param {点击列的整行数据} row * @param {td 元素} $element */ onClickCell: function (field, value, row, $element) { var cardNo = $("#cardNo").val(); if (cardNo == '120' && field == 'name' && (payMarkGroup == 0 || payMarkGroup == 1)) { $element.attr('contenteditable', true); $element.html(null); $element.focus(); $element.blur(function () { var index = $element.parent().data('index'); var tdValue = $element.html(); saveData(index, field, tdValue, row, $table_1); }) } }, }); } /** * 更新病人缴费记录病人姓名 * @param index * @param field * @param value * @param row */ function saveData(index, field, value, row, table) { $.ajax({ type: "POST", url: '/thmz/changePatientIdName', contentType: "application/json;charset=UTF-8", dataType: "json", data: JSON.stringify({"patientId": row.patientId, "times": row.times, "name": value}), headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, async: false, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { table.bootstrapTable('updateCell', { index: index, //行索引 field: field, //列名 value: value //cell值 }) } else { table.bootstrapTable('updateCell', { index: index, //行索引 field: field, //列名 value: row.name //cell值 }) errorMesage(res); } } }); } /** * 构建列表查询参数 * @param params * @returns {{mzChargeDetail: {patientId: string | number | string[] | undefined | jQuery, warnDept: string | number | string[] | undefined | jQuery, doctorCode: string | number | string[] | undefined | jQuery, name: string | number | string[] | undefined | jQuery, payMark: number}, beginTime: Date, endTime: Date, pageSize: *, pageIndex: number}} */ function queryParams(params) { var rePortRangeArr = getRePortRangeArr(); var payMarkGroup = getIndex("pay_mark_group"); var temp = { mzChargeDetail: { patientId: $("#patientId").val(), warnDept: $("#deptNoParam").val(), doctorCode: $("#doctorParam").val(), name: $("#name").val(), payMark: 5 }, beginTime: new Date(rePortRangeArr[0]), endTime: new Date(rePortRangeArr[1]), pageSize: params.limit, //页面大小 pageIndex: params.offset / params.limit, //页码 serialNo: $("#serialNo").val(), ownData: $('#ownData').is(':checked') ? 0 : 1, }; if (payMarkGroup == 1) { temp.mzChargeDetail.payMark = 0; } else if (payMarkGroup == 2) { temp.mzChargeDetail.payMark = 1; } return temp; }; function initChargeDetailTable() { initChargeDetailTablePublic('/thmz/getMzChargeDetailByBillItem', $('#charge_detail_table'), queryParamsForDetail); } function initMzChargeDetailByBillItem(flag) { if (flag) { $("#refund_bill_item_group").removeClass("hide").addClass("in"); if ($("#plusOrMinus").hasClass("fa-plus")) { $("#plusOrMinus").removeClass("fa-plus").addClass("fa-minus"); initChargeDetailTablePublic('/thmz/getNewListForRefundFeeByBillItem', $('#refund_fee_bill_table'), queryParamsForRefundByBillItem); } else if ($("#plusOrMinus").hasClass("fa-minus")) { $("#plusOrMinus").removeClass("fa-minus").addClass("fa-plus"); $("#refund_bill_item_group").removeClass("in").addClass("hide"); $('#refund_fee_bill_table').bootstrapTable("destroy"); } } else { initChargeDetailTablePublic('/thmz/getNewListForRefundFeeByBillItem', $('#refund_fee_bill_table'), queryParamsForRefundByBillItem); } } /** * 初始化收费明细表格 */ function initChargeDetailTablePublic(url, obj, params) { $(obj).bootstrapTable("destroy"); $(obj).bootstrapTable({ url: url, //请求后台的URL(*) method: 'post', //请求方式(*) toolbar: '#toolbar', //工具按钮用哪个容器 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: false, //是否显示分页(*) sortable: true, //是否启用排序 sortOrder: "asc", //排序方式 // sortName: 'orderNo', //排序字段 queryParams: params, //传递参数(*) sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*) pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 10, //每页的记录行数(*) pageList: [10, 25, 50, 100], //可供选择的每页的行数(*) search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大 strictSearch: true, showColumns: false, //是否显示所有的列 showRefresh: false, //是否显示刷新按钮 minimumCountColumns: 2, //最少允许的列数 clickToSelect: true, //是否启用点击选中行 uniqueId: "ID", //每一行的唯一标识,一般为主键列 showToggle: false, //是否显示详细视图和列表视图的切换按钮 cardView: false, //是否显示详细视图 detailView: false, //rowStyle:rowStyle,//通过自定义函数设置行样式 ajaxOptions: { headers: { 'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token") } }, columns: [ // { // checkbox: true // }, { field: 'orderNo', title: '处方号', align: "center", valign: 'middle', formatter: function (value, row, index) { return Math.abs(value); } }, { field: 'chargeItemCode', title: '编码', align: "center", valign: 'middle', }, { field: 'tcName', title: '项目', align: "center", valign: 'middle', }, // { // field: 'times', // title: '规格', // align: "center", // valign: 'middle', // }, { field: 'quantity', title: '数量', align: "center", valign: 'middle' }, { field: 'drugWin', title: '副数', align: "center", valign: 'middle', }, { field: 'unitPrice', title: '单价(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { return value.toFixed(2); } }, { field: 'amount', title: '总金额(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { return value.toFixed(2); } } ], responseHandler: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var ress = eval(res); if (ress.code == -1) { new PNotify({ title: '错误提示', text: ress.message, type: 'error', hide: true, styling: 'bootstrap3' }); return { "total": 0,//总页数 "rows": {} //数据 }; } return { //"total": ress.pageViewVo.total,//总页数 "rows": ress.data //数据 }; }, }); } /** * 构建列表查询参数 * @param params * @returns {{patientId: string | number | string[] | undefined | jQuery, times: string | number | string[] | undefined | jQuery, billItemCode: number}} */ function queryParamsForDetail(params) { var billItemGroup = getIndex("bill_item_group"); var payMarkGroup = getIndex("pay_mark_group"); var temp = { patientId: $("#patientIdChargeItem").val(), times: $("#timesChargeItem").val(), receiptNo: $("#receiptNoChargeItem").val(), billItemCode: billItemGroup, payMark: 5 }; if (payMarkGroup == 1) { temp.payMark = 0; } else if (payMarkGroup == 2) { temp.payMark = 1; } return temp; }; /** * 构建列表查询参数 * @param params * @returns {{patientId: string | number | string[] | undefined | jQuery, times: string | number | string[] | undefined | jQuery, billItemCode: number}} */ function queryParamsForRefundByBillItem(params) { var billItemGroup = getIndex("refund_bill_item_group"); return { patientId: $("#patientIdRefund").val(), times: $("#timesRefund").val(), receiptNo: $("#receiptNoRefund").val(), chargeItemCodes: chargeItemCodes, billItemCode: billItemGroup }; }; /** * 卡号输入改变事件 */ function cardNoChange() { if (window.ActiveXObject || "ActiveXObject" in window) { $("#cardNo").on('input propertychange', function () { queryUserInfoByCardNo(); }); } else { $("#cardNo").on('input οninput', function () { queryUserInfoByCardNo(); }); } } /** * 卡号有变化后查询病人信息 */ function queryUserInfoByCardNo() { var cardNo = $("#cardNo").val(); var index = cardNo.indexOf("-"); if (index > 0 && index == cardNo.length - 2) { $("#patientId").val(cardNo); initFeeTable(); } else if (cardNo == '120' || cardNo.length == 8) { $("#cardNo").attr("title", cardNo); $.ajax({ type: "GET", url: '/thmz/getByIcCardNo?icCardNo=' + cardNo, contentType: "application/json;charset=UTF-8", dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { if (res.data != null) { $("#patientId").val(res.data.patientId); initFeeTable(); } } else { new PNotify({ title: '错误提示', text: res.message, type: 'error', hide: true, styling: 'bootstrap3' }); } } }); } else if (cardNo == null || cardNo == "") { cleanParams(); } } /** * 获取按钮组选择的下标 * @param id * @returns {number} */ function getIndex(id) { var index = 0; var item = $("#" + id).find("button"); for (var i = 0; i <= item.length; i++) { if ($(item[i]).hasClass("btn-primary")) { index = i; break; } } return index; } /** * 获取时间选择器的时间数组 * @returns {string[]} */ function getRePortRangeArr() { var rePortRange = $('#reportrange span').html(); var rePortRangeArr = rePortRange.split(" - "); rePortRangeArr[0] = rePortRangeArr[0] + " 00:00:00" rePortRangeArr[1] = rePortRangeArr[1] + " 23:59:59" return rePortRangeArr; } /** * 打开收费窗口 */ function confirmFeeModal(times, totalCharge, receiptNo) { $('#payType').selectpicker('val', 1); $('#payType').selectpicker('refresh'); var data = parseFloat($("#dataIdHaveTally").val()); if (totalCharge != null && totalCharge > 0) { data = totalCharge; $("#timesHaveTally").val(times); $("#receiptNoHaveTally").val(receiptNo); } var prevAll = $("#changeAmountParent").prevAll(); while (prevAll.length > 2) { $("#changeAmountParent").prev().remove(); prevAll = $("#changeAmountParent").prevAll(); } $("#realMoney").val($("#amountMoneyConfirm").text()); $("#cash").val($("#amountMoneyConfirm").text()); $("#tallyDetailModal").modal('hide'); $("#haveTallyModal").modal('hide'); $("#confirmFeeModal").modal(); $("#amountMoneyConfirm").text(data); $("#realMoney").val(data); $("#cash").val(data); // $("#cash").val(null); setTimeout(function () { //默认光标在卡号输入框 $("#cash").focus(); }, 800); $("#payType").selectpicker('val', 1); $("#payType").selectpicker('refresh'); $("#changeAmount").val(0.0); $("#surplusAmount").val(0.0); } /** * 打开收费明细窗口 * @param data */ function chargeDetailModal(patientId, times, receiptNo) { $("#patientIdChargeItem").val(patientId); $("#timesChargeItem").val(times); $("#receiptNoChargeItem").val(receiptNo); $("#chargeDetailModal").modal(); initChargeDetailTable(); } /** * 病人当前就诊次数的诊断查询 * @param data */ function diagnoseQuery(patientId, times) { $.ajax({ type: "POST", url: '/thmz/getVisitTableByPatientIdAndTimes', contentType: "application/json;charset=UTF-8", dataType: "json", data: JSON.stringify({"patientId": patientId, "times": times}), headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, async: false, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { if (res.data.icdText != null || res.data.icdText != '') { $("#diagnoseModal").modal(); $("#diagnose").html(res.data.icdText); } else { new PNotify({ title: '操作提示', text: '当前病人诊断未知', type: 'warn', styling: 'bootstrap3' }); } } else { errorMesage(res); } } }); } // /** // * 打开退费重收明细窗口 // * @param data // */ // function chargeRefundDetailModal(patientId, times) { // // $("#patientIdChargeItem").val(patientId); // // $("#timesChargeItem").val(times); // initMzChargeDetailByBillItem(); // } /** * 初始门诊收银方式下拉选 */ function initChequeType(payType) { $.ajax({ type: "GET", url: '/thmz/getAllZdChequeTypeForMz', dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var html = ''; $.each(res.data, function (commentIndex, comment) { html += ''; }); $('#' + payType).empty(); $('#' + payType).html(html); $('#' + payType).selectpicker('refresh'); $('#' + payType).selectpicker('val', 1); $('#' + payType).selectpicker('refresh'); } }); } /** * 关闭当前这个付款方式 */ function closeThisParent(obj) { $(obj).parent().parent().parent().remove(); checkFee(false); } /** * 校验收款金额 * @param flag 是否时提交时候的校验,是的话,如果缴费金额不够,需要返回 false */ function checkFee(flag) { var realMoney = parseFloat($("#realMoney").val()); realMoney = realMoney.toFixed(2); $("#realMoney").val(realMoney) var arr = $("#payForm").find("div.pay-item"); if (arr.length > 0) { //非现金收款总金额 var notCashAmount = 0; //现金收款总额 var cashAmount = 0; for (var i = 0; i < arr.length; i++) { var temp = parseFloat($(arr[i]).find("input").val()); if (isNaN(temp)) { temp = 0; } if ($(arr[i]).find("select").val() != 1) { notCashAmount += temp; } else { cashAmount += temp; } for (var j = 0; j < arr.length; j++) { if ($(arr[i]).find("select").val() == $(arr[j]).find("select").val() && i != j) { new PNotify({ title: '错误提示', text: "已经存在相同的收款方式,请不要重复添加!", type: 'error', hide: true, styling: 'bootstrap3' }); return; } } } if (notCashAmount > realMoney) { new PNotify({ title: '错误提示', text: "非现金收款金额不能大于实收金额!", type: 'error', hide: true, styling: 'bootstrap3' }); $("#addPayType").parent().removeClass("in").addClass("hide"); return; } var totalAmount = cashAmount + notCashAmount; $("#surplusAmount").val(0.0); if (totalAmount < realMoney) { if (flag) { new PNotify({ title: '错误提示', text: "收款金额不能少于实收金额,请调整收款金额或者增加收款方式!", type: 'error', hide: true, styling: 'bootstrap3' }); return false; } if (totalAmount == 0) { $("#addPayType").parent().removeClass("in").addClass("hide"); } else { $("#addPayType").parent().removeClass("hide").addClass("in"); } $("#changeAmount").val(0.00); var surplusAmount = realMoney - totalAmount; $("#surplusAmount").val(surplusAmount.toFixed(2)); return; } var changeAmount = 0.00; if (totalAmount >= realMoney) { changeAmount = totalAmount - realMoney; changeAmount = changeAmount.toFixed(2); $("#changeAmount").val(changeAmount); $("#addPayType").parent().removeClass("in").addClass("hide"); } //设置收费首页找零与应收和实收金额 $("#payableAmount").text(realMoney); $("#paidAmount").text(totalAmount); $("#changedAmount").text(changeAmount); } //计算和设置折扣比例 var amountMoneyConfirm = parseFloat($("#amountMoneyConfirm").text()); var discount = 100; if (realMoney < amountMoneyConfirm) { discount = realMoney / amountMoneyConfirm * 100; } $("#discount").text(discount.toFixed(2)) return true; } /** * 提示有记账记录 */ function tipHaveTally(data, patientId, times, name, receiptNo) { if (patientId == null || patientId == "") { return; } $("#patientIdHaveTally").val(patientId); $("#nameHaveTally").val(name); $("#dataIdHaveTally").val(data); $("#timesHaveTally").val(times); $("#receiptNoHaveTally").val(receiptNo); // $.ajax({ // type: "GET", // url: '/thmz/getTallyTotalCharge?patientId=' + patientId, // contentType: "application/json;charset=UTF-8", // dataType: "json", // headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, // success: function (res) { // if (res == '401' || res == 401) { // window.location.href = '/thmz/login/view' // return; // } // if (res.code == 0) { // if (res.data != null && res.data > 0) { // $("#haveTallyModal").modal(); // $("#totalTallyAmount").text(res.data.toFixed(2)); // } else { // $("#haveTallyModal").modal('hide'); // confirmFeeModal(null,null,null); // } // } else { // new PNotify({ // title: '错误提示', // text: res.message, // type: 'error', // hide: true, // styling: 'bootstrap3' // }); // } // } // }); confirmFeeModal(null, null, null); } var $tally_detail_table; /** * 初始化本院记账明细表格 */ function initTallyDetailTable() { $("#haveTallyModal").modal('hide'); var patientId = $("#patientIdHaveTally").val(); // var name = $("#nameHaveTally").val(); if (patientId == null || patientId == '') { return; } $("#tallyDetailModal").modal(); $('#tally_detail_table').bootstrapTable("destroy"); $tally_detail_table = $('#tally_detail_table').bootstrapTable({ url: '/thmz/getTallyReceiptSerial?patientId=' + patientId, //请求后台的URL(*) method: 'get', //请求方式(*) toolbar: '#toolbar', //工具按钮用哪个容器 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: false, //是否显示分页(*) sortable: true, //是否启用排序 sortOrder: "asc", //排序方式 sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*) pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 10, //每页的记录行数(*) pageList: [10, 25, 50, 100], //可供选择的每页的行数(*) search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大 strictSearch: true, showColumns: false, //是否显示所有的列 showRefresh: false, //是否显示刷新按钮 minimumCountColumns: 2, //最少允许的列数 clickToSelect: true, //是否启用点击选中行 uniqueId: "ID", //每一行的唯一标识,一般为主键列 showToggle: false, //是否显示详细视图和列表视图的切换按钮 cardView: false, //是否显示详细视图 detailView: false, //rowStyle:rowStyle,//通过自定义函数设置行样式 ajaxOptions: { headers: { 'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token") } }, columns: [ // { // checkbox: true, // }, { field: 'patientId', title: '病人编号', align: "center", valign: 'middle' }, { field: 'name', title: '病人姓名', align: "center", valign: 'middle', // formatter: function (value, row, index) { // return name; // } }, { field: 'times', title: '就诊次数', align: "center", valign: 'middle', }, { field: 'totalCharge', title: '总费用(元)', align: "center", valign: 'middle', formatter: function (value, row, index) { return value.toFixed(2); } } ], /** * @param {点击列的 field 名称} field * @param {点击列的 value 值} value * @param {点击列的整行数据} row * @param {td 元素} $element */ onClickCell: function (field, value, row, $element) { var cardNo = $("#cardNo").val(); if (cardNo == '120' && field == 'name') { $element.attr('contenteditable', true); $element.html(null); $element.focus(); $element.blur(function () { var index = $element.parent().data('index'); var tdValue = $element.html(); saveData(index, field, tdValue, row, $tally_detail_table); }) } }, onDblClickRow: function (row) { confirmFeeModal(row.times, row.totalCharge, row.receiptNo); }, responseHandler: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var ress = eval(res); if (ress.code == -1) { new PNotify({ title: '错误提示', text: ress.message, type: 'error', hide: true, styling: 'bootstrap3' }); return { "total": 0,//总页数 "rows": {} //数据 }; } if (ress.data == null || ress.data.length == 0) { $("#tallyDetailModal").modal("hide"); } return { "rows": ress.data //数据 }; }, }); } /** * 提交缴费申请 */ function saveConfirmFee() { if (!checkFee(true)) { return; } var jsonData = JSON.parse('{"patientId":"","times":"","receiptNo":"","mzDepositFiles":[]}'); var patientId = $("#patientIdHaveTally").val(); var times = $("#timesHaveTally").val(); var receiptNo = $("#receiptNoHaveTally").val(); jsonData.patientId = patientId; jsonData.times = times; jsonData.receiptNo = receiptNo; var arr = $("#payForm").find("div.pay-item"); if (arr.length > 0) { for (var i = 0; i < arr.length; i++) { var temp = parseFloat($(arr[i]).find("input").val()); var tempJson = JSON.parse('{"chequeType":"","amount":""}'); tempJson.chequeType = $(arr[i]).find("select").val(); if (tempJson.chequeType == "1") { temp = temp - $("#changeAmount").val(); temp = temp.toFixed(2); } tempJson.amount = temp; jsonData.mzDepositFiles[i] = tempJson; } } $.ajax({ type: "POST", url: '/thmz/chargeFee', contentType: "application/json;charset=UTF-8", dataType: "json", data: JSON.stringify(jsonData), headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { prn1Print(patientId, times, true, res.receiptNo); new PNotify({ title: '操作提示', text: res.message, type: 'success', hide: true, styling: 'bootstrap3' }); $("#confirmFeeModal").modal("hide"); $("#patientId").val(null); $("#cardNo").val(null); $("#name").val(null); initFeeTable(); //默认光标在卡号输入框 $("#cardNo").focus(); } else { new PNotify({ title: '错误提示', text: res.message, type: 'error', hide: true, styling: 'bootstrap3' }); } } }); } /** * 直接打印发票 * @param patientId * @param times * @param chargeFeeFlag 收费 退费标记 true 收费和重打发票来源 false 退费来源 */ function prn1Print(patientId, times, chargeFeeFlag, receiptNo) { var url = '/thmz/getAllSerialForThisTime?patientId=' + patientId + "×=" + times + "&receiptNo=" + receiptNo; printCommon(url, patientId, times, chargeFeeFlag); } /** * 重打发票 * @param patientId * @param times */ function repPrint(patientId, times, receiptNo) { $.ajax({ type: "GET", url: '/thmz/getReceiptForThisTime?patientId=' + patientId + "×=" + times + "&receiptNo=" + receiptNo, contentType: "application/json;charset=UTF-8", dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { if (res.data.length == 1) { var message = "确定要重新打印发票号码为【" + res.data[0].receiptBill + "】的发票吗?请确认发票打印机即将要打印的发票编号"; var url = '/thmz/repPrintForThisTime?patientId=' + patientId + "×=" + times + "&obsolete=0" + "&receiptBill=" + res.data[0].receiptBill; confirmMessage(patientId, times, message, url); } else { $("#tip_message").text("请选择需要重新打印的发票号"); $("#repPrintModal").modal(); $("#repPrintTable").html(null); for (var i = 0; i < res.data.length; i++) { $("