| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521 | //@ sourceURL=yf_inventory.jsvar LODOP; //声明为全局变量var pharmacyGroupNo = window.localStorage["groupNo"];//药房编码var lastrow;//最后编辑单元格的行var lastcell;//最后编辑单元格的列$(function () {    init_daterangepicker();    //$("#pharmacyModal").modal("show");    if(pharmacyGroupNo == null){        return errorMesageSimaple('药房参数未设置,请在发药参数设置中设置');    }    initTbAdd();    $("#btn_query").click(function (t) {        loadTbAddRecord();    });    $(".selectpicker").selectpicker({        dropuAuto: false    });    $("#btn_create").on('click',function(e){        var ypOutDetlYfs= $("#tb_add").getRowData();        if(ypOutDetlYfs.length !=0){            if (!confirm("自动生成将覆盖现有未提交的盘点数据!是否继续?")) {                return;            }        }        loadTbTable();    });    $("#btn_audit").on('click',function(e){        audit();    });    $("#btn_save").on('click',function(e){        saveTbTable();    });    $("#btn_print").on('click',function(e){        print();    });    $("#btn_record").on('click',function(e){        $("#recrodModal").modal("show");        initTbAddRecord();        loadTbAddRecord();    });});/** * 获取按钮组选择的下标 * @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;}/** * 列表类型按钮切换事件 * @param object * @param realIndex 下标 */function inventoryButtonChange(object, realIndex) {    $("#send_refund_group").find("button").each(function (index, element) {        if ($(element).hasClass("btn-primary")) {            $(element).removeClass("btn-primary").addClass("btn-default");        }    });    if (realIndex == 0) {        $("#searchDiv").css("display", "none");        $("#addDiv").css("display", "");        $("#record_div").css("display", "none");        $("#add_div").css("display", "");        var inventoryDate = $("#inventoryDate").html();        var auditDate = $("#auditDate").html();        var inventoryNo = $("#inventoryNo").html();        var is = inventoryDate.substring(0,7);        if(!isEmpty(inventoryNo) && isEmpty(auditDate)){                loadTbTable();        }    } else {        $("#searchDiv").css("display", "");        $("#addDiv").css("display", "none");        $("#record_div").css("display", "");        $("#add_div").css("display", "none");        $.ajax({            type: "GET",            url: '/thmz/getLoginUser',            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) {                    var roles = res.data.roleIds.split(",");                    for (var i = 0; i < roles.length; i++) {                        if(roles[i] == 1 || roles[i] == 3){                            $("#btn_audit").attr("disabled",false);                            return;                        }                    }                } else {                    errorMesage(res);                }            }        });    }    $(object).removeClass("btn-default").addClass("btn-primary");}/** * 生成药品盘点数据 */function loadTbTable() {    $("#btn_create").attr("disabled",true);    $("#tb_add").jqGrid('setGridParam', {        datatype:'json',        postData: { groupNo: pharmacyGroupNo,infusionFlag:$('#infusionFlag').val(),visibleFlag:$('#visibleFlag').val() }    }).trigger('reloadGrid');}/** * 生成盘点记录数据 */function loadTbAddRecord() {    $("#tb_add_record").jqGrid('setGridParam', {        datatype:'json',        postData: {            groupNo: pharmacyGroupNo,            confirmFlag:$('#confirmFlag').val(),            beginDate: getRePortRangeArr()[0],            endDate: getRePortRangeArr()[1] }    }).trigger('reloadGrid');}/** * 生成药品盘点数据 */function saveTbTable() {    $("#tb_add").jqGrid("saveCell",lastrow,lastcell);//当前单元格退出编辑模式    var ypOutDetlYfs= $("#tb_add").getRowData();    if(ypOutDetlYfs.length ==0){        return errorMesageSimaple('盘点药品数据为空,请生成后再提交');    }    if (!confirm("为避免药品筛选导致药品不全,请检查表格筛选行是否已清空并重新刷新表格!是否已确认?")) {        return;    }    $("#btn_save").attr("disabled",true);    $.ajax({        type: "POST",        url: '/thmz/saveYpInventoryData',        contentType: "application/json;charset=UTF-8",        dataType: "json",        headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},        data: JSON.stringify(ypOutDetlYfs),        success: function (res) {            $("#btn_save").attr("disabled",false);            if (res == '401' || res == 401) {                window.location.href = '/thmz/login/view'                return;            }            if (res.code == 0) {                successMesage(res);            } else {                errorMesage(res);            }        }    });}/** * 初始化盘点表 */function initTbAdd() {    $.jgrid.gridUnload("tb_add");    $("#tb_add").jqGrid({        datatype: 'local',        mtype: 'get',        url: '/thmz/getYpInventoryData',        loadBeforeSend: function (jqXHR) {            jqXHR.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));            jqXHR.setRequestHeader("Accept", 'application/json');        },        ajaxCellOptions: {            beforeSend: function (XMLHttpRequest) {                XMLHttpRequest.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));            }        },        styleUI: 'Bootstrap',        viewrecords: true,        autowidth: true,        rowNum: -1,//取消分页        height:  screen.height*0.6,        caption: '盘点药品信息',        shrinkToFit:true,//宽度是否自适应        autoScroll: false,        cellEdit: true,        cellsubmit: "clientArray",        rownumbers: true,//是否显示序号        rownumWidth: 50,        loadonce:true,//如果为ture则数据只从服务器端抓取一次,之后所有操作都是在客户端执行,翻页功能会被禁用        colNames: ['货位号','编码','药品名称','规格','单价', '账存数量', '实盘数量', '盈亏数量', '盈亏金额','盘点单号','盘点时间', '生产厂商','序号','药房编码','拼音编码'],        colModel: [            {name: 'location', index: 'location',align:'center',width:100, searchoptions:{sopt:['cn','eq','ne','lt','le','gt','ge','nc']}},            {name: 'chargeCode', index: 'chargeCode',align:'center',width:100, searchoptions:{sopt:['cn','eq','nc']}},            {name: 'name', index: 'name',align:'left',width:180, searchoptions:{sopt:['cn','eq','nc']}},            {name: 'specification', index: 'specification',width:140, searchoptions:{sopt:['cn','eq','nc']}},            {name: 'packRetprice', index: 'packRetprice',align:'center',width:100, searchoptions:{sopt:['eq','ne','lt','le','gt','ge']}},            {name: 'stockAmount', index: 'stockAmount',align:'center',width:100, searchoptions:{sopt:['eq','ne','lt','le','gt','ge']},                formatter:function(cellvalue, options, rowObject){                    return keepTwoDecimal(cellvalue)                }},            {name: 'currStockAmount', index: 'currStockAmount',align:'center',width:100,editable : true,edittype:'text',searchoptions:{sopt:['eq','ne','lt','le','gt','ge']},                editrules: {edithidden:true,number:true,minValue:0},                formatter:function(cellvalue, options, rowObject){                    $("#tb_add").jqGrid('setCell',options.rowId,'profitLossprofitLoss',parseFloat(rowObject.currStockAmount-rowObject.stockAmount));                    $("#tb_add").jqGrid('setCell',options.rowId,'profitLossprofitMoney',parseFloat((rowObject.currStockAmount-rowObject.stockAmount)*rowObject.packRetprice));                    return cellvalue==null?keepTwoDecimal(rowObject.stockAmount):keepTwoDecimal(cellvalue)                }},            {name: 'profitLossprofitLoss', index: 'profitLossprofitLoss',align:'center',width:100,searchoptions:{sopt:['eq','ne','lt','le','gt','ge']},                formatter:function(cellvalue, options, rowObject){                    return cellvalue==null?0:keepTwoDecimal(cellvalue)                }},            {name: 'profitLossprofitMoney', index: 'profitLossprofitMoney',align:'center',width:100,searchoptions:{sopt:['eq','ne','lt','le','gt','ge']},                formatter:function(cellvalue, options, rowObject){                    return cellvalue==null?0:keepTwoDecimal(cellvalue)                }},            {name: 'drawNo', index: 'drawNo',align:'center',width:120,searchoptions:{sopt:['eq']}},            {name: 'outDate', index: 'outDate',align:'center',width:120,searchoptions:{sopt:['eq']},formatter:function(cellvalue, options, rowObject){                    return format(cellvalue,"yyyy-MM-dd")                }},            {name: 'manufactoryName', index: 'manufactoryName',width:180, searchoptions:{sopt:['cn','eq','nc']}},            {name: 'serial', index: 'serial',align:'center',width:100,hidden:true},            {name: 'groupNo', index: 'groupNo',align:'center',width:100,hidden:true},            {name: 'pyCode', index: 'pyCode',align:'center',width:100,hidden:true}        ],        jsonReader: {            root: "data", repeatitems: false        },        beforeEditCell:function(rowid, cellname, v, iRow, iCol){            lastrow = iRow;            lastcell = iCol;        },        beforeRequest:function(){            $("#tb_add").jqGrid("saveCell",lastrow,lastcell);//当前单元格退出编辑模式,防止列编辑功能失效        },        loadComplete: function (res) { //加载完成(初始加载),回调函数            $("#btn_create").attr("disabled",false);            if (res == '401' || res == 401) {                window.location.href = '/thmz/login/view';                return;            }            if (res.code == 0) {                if(res.data[0].drawNo!=null){                    $("#tipsModal").modal('show');                }            }else if (res.code == -1){                errorMesage(res);            }        }    });    $("#tb_add").jqGrid('filterToolbar',{searchOperators : true});}/** * 初始化盘点记录表 */function initTbAddRecord() {    $.jgrid.gridUnload("tb_add_record");    $("#tb_add_record").jqGrid({        datatype: 'local',        mtype: 'get',        url: '/thmz/queryYpInventoryRecord',        loadBeforeSend: function (jqXHR) {            jqXHR.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));            jqXHR.setRequestHeader("Accept", 'application/json');        },        ajaxCellOptions: {            beforeSend: function (XMLHttpRequest) {                XMLHttpRequest.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));            }        },        styleUI: 'Bootstrap',        viewrecords: true,        //autowidth: true,        rowNum: -1,//取消分页        //height:  screen.height*0.3,        caption: '盘点记录',        shrinkToFit:false,//宽度是否自适应        autoScroll: false,        colNames: ['盘点单号','盘点日期','状态'],        colModel: [            {name: 'drawNo', index: 'drawNo',width:190},            {name: 'outDate', index: 'outDate',width:190,formatter:function(cellvalue, options, rowObject){                    return format(cellvalue,"yyyy-MM-dd")                }},            {name: 'confirmFlag', index: 'confirmFlag',align:'center',width:190,                formatter:function(cellvalue, options, rowObject){                    return cellvalue==0?'未审核':'已审核'                }            }        ],        jsonReader: {            root: "data", repeatitems: false        },        ondblClickRow: function(rowid){            var record = $("#tb_add_record").getRowData(rowid);            $('.sjh').remove();            getTbAddRecordPrintData(record.drawNo);            $("#recrodModal").modal("hide");        },        loadComplete: function (res) { //加载完成(初始加载),回调函数            if (res == '401' || res == 401) {                window.location.href = '/thmz/login/view';                return;            }            if (res.code == -1) {                errorMesage(res);            }        }    });}/** * 生成打印数据 */function getTbAddRecordPrintData(drawNo) {    $('#YWaitDialog').css('top',$('.xtd').offset().top);    $('#YWaitDialog').show();    $.ajax({        type: "GET",        url: '/thmz/getYpInventoryPrintData',        contentType: "application/json;charset=UTF-8",        dataType: "json",        headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},        data: {            drawNo:drawNo        },        success: function (res) {            $('#YWaitDialog').hide();            if (res == '401' || res == 401) {                window.location.href = '/thmz/login/view'                return;            }            if (res.code == 0) {                $("#groupNo").html(pharmacyGroupNo==71?'门诊西药房':'住院药房');                $("#inventoryDate").html(format(res.data[0].outDate,'yyyy-MM-dd'));                $("#inventoryNo").html(drawNo);                $("#auditDate").html(format(res.data[0].confirmDate,'yyyy-MM-dd HH:mm:ss'));                $("#printDate").html(format(new Date(),'yyyy-MM-dd HH:mm:ss'));                var html = '';                var kindName = '';                var xj_lszje = 0;                var xj_grzje = 0;                var xj_ykzje = 0;                var lszje = 0;                var grzje = 0;                var ykzje = 0;                var confirmName = res.confirmName==null?'':res.confirmName;                for (var i = 0; i < res.data.length; i++) {                    var data = res.data[i];                    var lsje = data.currStockAmount*data.packRetprice;                    var grje = data.currStockAmount*data.buyPrice;                    var ykje = parseFloat((data.currStockAmount-data.stockAmount)*data.packRetprice);                    if(kindName == ''){                        kindName = data.kindName;                        xj_lszje += lsje;                        xj_grzje += grje;                        xj_ykzje += ykje;                    }else if(kindName == data.kindName){                        xj_lszje += lsje;                        xj_grzje += grje;                        xj_ykzje += ykje;                    }else{                        lszje += xj_lszje;                        grzje += xj_grzje;                        ykzje += xj_ykzje;                        html += '<tr class="sjh">';                        html += '<td colspan="2" style="text-align: center;font-weight: 700;">' + kindName + '</td>';                        html += '<td colspan="2" style="text-align: right;font-weight: 700;">小计:</td>';                        html += '<td colspan="2" style="text-align: right;font-weight: 700;">' + keepTwoDecimal(xj_lszje) + '</td>';                        html += '<td colspan="2" style="text-align: right;font-weight: 700;">' + keepTwoDecimal(xj_grzje) + '</td>';                        html += '<td colspan="4" style="text-align: right;font-weight: 700;">' + keepTwoDecimal(xj_ykzje) + '</td>';                        html += '<td></td>';                        html += '</tr>';                        xj_lszje = lsje;                        xj_grzje = grje;                        xj_ykzje = ykje;                        kindName = data.kindName;                    }                    html += '<tr class="sjh">';                    html += '<td class="xtd" style="text-align: center;">' + data.location + '</td>';                    html += '<td class="xtd" style="text-align: center;">' + data.chargeCode + '</td>';                    html += '<td style="text-align: left;">' + data.name + '</td>';                    html += '<td style="text-align: left;">' + data.specification + '</td>';                    html += '<td class="xtd" style="text-align: center;">' + data.packRetprice + '</td>';                    html += '<td class="xtd" style="text-align: center;">' + keepTwoDecimal(data.currStockAmount*data.packRetprice) + '</td>';                    html += '<td class="xtd" style="text-align: center;">' + data.buyPrice + '</td>';                    html += '<td class="xtd" style="text-align: center;">' + keepTwoDecimal(data.currStockAmount*data.buyPrice) + '</td>';                    html += '<td class="xtd" style="text-align: center;">' + data.stockAmount + '</td>';                    html += '<td class="xtd" style="text-align: center;">' + data.currStockAmount + '</td>';                    html += '<td class="xtd" style="text-align: center;">' + parseFloat(data.currStockAmount-data.stockAmount) + '</td>';                    html += '<td class="xtd" style="text-align: center;">' + keepTwoDecimal(parseFloat((data.currStockAmount-data.stockAmount)*data.packRetprice)) + '</td>';                    html += '<td style="text-align: left;">' + (isEmpty(data.manufactoryName)?'':data.manufactoryName) + '</td>';                    html += '</tr>';                }                lszje += xj_lszje;                grzje += xj_grzje;                ykzje += xj_ykzje;                html += '<tr class="sjh">';                html += '<td colspan="2" style="text-align: center;font-weight: 700;">' + kindName + '</td>';                html += '<td colspan="2" style="text-align: right;font-weight: 700;">小计:</td>';                html += '<td colspan="2" style="text-align: right;font-weight: 700;">' + keepTwoDecimal(xj_lszje) + '</td>';                html += '<td colspan="2" style="text-align: right;font-weight: 700;">' + keepTwoDecimal(xj_grzje) + '</td>';                html += '<td colspan="4" style="text-align: right;font-weight: 700;">' + keepTwoDecimal(xj_ykzje) + '</td>';                html += '<td style="text-align: right;font-weight: 700;"></td>';                html += '</tr>';                html += '<tr style="font-weight: 700;background-color: #EBEBE4" class="sjh">' +                    '    <td colspan="3" style="text-align: right;">盘点总金额:'+keepTwoDecimal(lszje)+'</td>' +                    '    <td colspan="3" style="text-align: right;">购入总金额:'+keepTwoDecimal(grzje)+'</td>' +                    '    <td colspan="7" style="text-align: right;">盈亏总金额:'+keepTwoDecimal(ykzje)+'</td>' +                    '    </tr>' +                    '    <tr style="font-weight: 700;background-color: #EBEBE4" class="sjh">' +                    '    <td colspan="3" style="text-align: right;">盘点人:'+res.inputName+'</td>' +                    '    <td colspan="10" style="text-align: right;">审核人:'+confirmName+'</td>' +                    '    </tr>';                $("#tj_table").append(html);                var date = new Date();                tableToExcel('tj_table', '长沙泰和医院药品盘点表('+date.getMonth()+'月)');            } else if (res.code == -1) {                new PNotify({                    title: '错误提示',                    text: res.message,                    type: 'error',                    hide: true,                    styling: 'bootstrap3'                });            }        }    });}/** * 获取时间选择器的时间数组 * @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 print() {    setDefaultPrint();    LODOP = getLodop();    LODOP.PRINT_INITA(6, 0, "210mm", "297mm", "药房精麻药品发放统计表");    LODOP.SET_PRINT_PAGESIZE(2, 0, 0,"A4");    //设置默认打印机    LODOP.SET_PRINTER_INDEX(defaultPrintIndex);    LODOP.SET_PRINT_STYLE("FontSize", 10); //字体大小    LODOP.SET_PRINT_STYLEA(0,"ItemType",2);    //设置默认打印机    LODOP.SET_PRINTER_INDEX(defaultPrintIndex);    LODOP.ADD_PRINT_TEXT('195mm','140mm','40mm','40mm','第#页/共&页');    LODOP.SET_PRINT_STYLEA(0,"ItemType",2);    var strStyle="<style>table{width: 1050px;} table,td,th {border-width: 1px;" +        "border-style: solid;border-collapse: collapse;table-layout:fixed;word-wrap:break-word;font-size: 14px}</style>";    LODOP.ADD_PRINT_HTM("0mm", "2mm", "RightMargin:0mm", "BottomMargin:15mm",strStyle+ document.getElementById("report_table_1").innerHTML);    //LODOP.PRINT();    LODOP.PREVIEW();}/** * 审核 */function audit(){    var drawNo = $("#inventoryNo").html();    if(isEmpty(drawNo)){        return errorMesageSimaple('盘点单号数据为空,请重新选择盘点记录');    }    if (!confirm("确认审核后将更新盘点药品的库存,是否确认审核?")) {        return;    }    $("#btn_audit").attr("disabled",true);    $.ajax({        type: "GET",        url: '/thmz/auditYpInventory',        contentType: "application/json;charset=UTF-8",        dataType: "json",        headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},        data: {            drawNo:drawNo        },        success: function (res) {            $("#btn_audit").attr("disabled",false);            if (res == '401' || res == 401) {                window.location.href = '/thmz/login/view'                return;            }            if (res.code == 0) {                successMesage(res);                $('.sjh').remove();                getTbAddRecordPrintData(res.data);            } else {                errorMesage(res);            }        }    });}
 |