//@ sourceURL=drug_storage.js
let groupNo = window.localStorage["groupYk"];//药库编码
var hospitalName ='长沙泰和医院'
$(function () {
getAjaxRequst("/thmz/queryHospitalName",{},true,function (res) {
hospitalName = res.data
$('.hospitalName').text(hospitalName)
})
init_daterangepicker();
$('.datetime').datetimepicker({
language: 'zh-CN',
format: 'yyyy-mm-dd',
autoclose: true,
minView: 2,
startView: 2,
});
initSearchList('
',
'drugName', 600, 250);
initSearchList('',
'drugName1', 600, 250);
initSearchList('',
'barCode1', 600, 250);
initSearchList('',
'purchaserNameLabel', 300, 250);
initSearchList('',
['supplyNameLabel', 'supplyNameSearch'], 300, 250);
$('#drugName').on('input', debounce(e=>{
inputDrugName()
},500));
$('#drugName1').on('input', debounce(e=>{
inputDrugName1()
},500));
//商品码检索药品
$('#barCode1').on('input', debounce(e=>{
inputBarCode()
},500));
function inputDrugName() {
showDrugPopover({
method: 'POST',
data: JSON.stringify({
searchText: $("#drugName").val() == "" ? null : $("#drugName").val(),
groupNo: groupNo,
delFlag: 0
}),
url: '/thmz/getYpZdDictBase',
columns: [
{
field: 'stockAmount',
title: '库存',
align: "center",
valign: 'middle',
formatter: function (value, row, index) {
return value.toFixed(0);
}
}],
onClickRow: function (row, $element) {
$('#drugName').webuiPopover('hide');
$('#chargeCode').val(row['code']);
$('#serial').val(row['serial']);
$('#drugName').val(row['name']);
$('#specification').val(row['specification']);
$('#packRetprice').val(row['packRetprice']);
$('#buyPrice').val(row['buyPrice']);
$('#manufactoryName').val(row['manufactoryName']);
$('#manuCode').val(row['manuCode']);
$('#licenseNo').val(row['pzwh']);
$('#nationalCode').val(row['nationalCode']);
}
});
};
function inputDrugName1() {
showDrugPopoverNew({
method: 'POST',
data: JSON.stringify({
searchText: $("#drugName1").val() == "" ? null : $("#drugName1").val(),
groupNo: groupNo,
delFlag: 0
}),
url: '/thmz/getYpZdDictBase',
columns: [
{
field: 'barCode',
title: '商品码',
align: "center",
valign: 'middle'
},{
field: 'stockAmount',
title: '库存',
align: "center",
valign: 'middle',
formatter: function (value, row, index) {
return value.toFixed(0);
}
}],
onClickRow: function (row, $element) {
$('#drugName1').webuiPopover('hide');
$('#chargeCode1').val(row['code']);
$('#serial1').val(row['serial']);
$('#drugName1').val(row['name']);
$('#barCode1').val(row['barCode']);
$('#specification1').val(row['specification']);
$('#packRetprice1').val(row['packRetprice']);
$('#buyPrice1').val(row['buyPrice']);
$('#manufactoryName1').val(row['manufactoryName']);
$('#manuCode1').val(row['manuCode']);
$('#licenseNo1').val(row['pzwh']);
$('#nationalCode1').val(row['nationalCode']);
$('#buyAmt1').val(null);
$('#buyValue1').val(null);
$('#manuNo1').val('');
$('#producingDate1').val(null);
$('#effDate1').val(null);
}
}, 'tb_table_drug1');
};
//商品码检索药品明细
function inputBarCode() {
showDrugPopoverNew({
method: 'POST',
data: JSON.stringify({
searchText: $("#barCode1").val() == "" ? null : $("#barCode1").val(),
groupNo: groupNo,
delFlag: 0
}),
url: '/thmz/getYpZdDictBaseByBarCode',
columns: [
{
field: 'barCode',
title: '商品码',
align: "center",
valign: 'middle'
},{
field: 'stockAmount',
title: '库存',
align: "center",
valign: 'middle',
formatter: function (value, row, index) {
if(!isEmpty(value)){
return value.toFixed(0);
} else {
return value;
}
}
}],
onClickRow: function (row, $element) {
$('#barCode1').webuiPopover('hide');
$('#chargeCode1').val(row['code']);
$('#serial1').val(row['serial']);
$('#drugName1').val(row['name']);
$('#barCode1').val(row['barCode']);
$('#specification1').val(row['specification']);
$('#packRetprice1').val(row['packRetprice']);
$('#buyPrice1').val(row['buyPrice']);
$('#manufactoryName1').val(row['manufactoryName']);
$('#manuCode1').val(row['manuCode']);
$('#licenseNo1').val(row['pzwh']);
$('#nationalCode1').val(row['nationalCode']);
$('#buyAmt1').val(null);
$('#buyValue1').val(null);
$('#manuNo1').val('');
$('#producingDate1').val(null);
$('#effDate1').val(null);
}
}, 'tb_table_bar1');
};
$('#purchaserNameLabel').on('input focus', function (e) {
showEmployeePopover({
data: {
searchText: $("#purchaserNameLabel").val() == "" ? null : $("#purchaserNameLabel").val(),
},
onClickRow: function (row, $element) {
$('#purchaserNameLabel').webuiPopover('hide');
$('#purchaser').val(row['employeeCode']);
$('#purchaserNameLabel').val(row['employeeName']);
}
});
});
$('#supplyNameLabel').on('input focus', function (e) {
showSupplyPopover({
data: {
searchText: $("#supplyNameLabel").val() == "" ? null : $("#supplyNameLabel").val(),
},
onClickRow: function (row, $element) {
$('#supplyNameLabel').webuiPopover('hide');
$('#supplyCode').val(row['code']);
$('#supplyNameLabel').val(row['name']);
}
});
});
$('#supplyNameSearch').on('input focus', function (e) {
showSupplyPopover({
data: {
searchText: $("#supplyNameSearch").val() == "" ? null : $("#supplyNameSearch").val(),
},
onClickRow: function (row, $element) {
$('#supplyNameSearch').webuiPopover('hide');
$('#supplyCodeSearch').val(row['code']);
$('#supplyNameSearch').val(row['name']);
}
});
});
$('#buyAmt').on('input focus', function (e) {
$("#buyValue").val((e.target.value * $("#buyPrice").val()).toFixed(2));
});
$('#buyPrice').on('input focus', function (e) {
$("#buyValue").val((e.target.value * $("#buyAmt").val()).toFixed(2));
});
$('#buyAmt1').on('input focus', function (e) {
$("#buyValue1").val((e.target.value * $("#buyPrice1").val()).toFixed(2));
});
$('#buyPrice1').on('input focus', function (e) {
$("#buyValue1").val((e.target.value * $("#buyAmt1").val()).toFixed(2));
});
$('#reportrange span').html(moment().subtract(29, 'days').format('YYYY-MM-DD') + ' - ' + moment().format('YYYY-MM-DD'));
$(".selectpicker").selectpicker();
if (groupNo == null) {
return errorMesageSimaple('药库参数未设置,请在药品管理参数设置中设置');
}
$("#btn_query").click(function (t) {
initRecordTable();
});
$("#btn_record").click(function () {
$("#recordModal").modal("show");
initRecordTable();
});
initDetailed();
initBar();
$("#addDetailed").click(function () {
$("#detailedFormModal").modal("hide");
if ($("#checkerName").val() == '') {//新增
let ids = $("#tb_table_detailed").jqGrid("getDataIDs");//得到jqgrid当前行数
let rowid = Math.max.apply(Math, ids);//获得当前最大行号
let formData = {};
let t = $("#detailedForm").serializeArray();
$.each(t, function () {
formData[this.name] = this.value
});
$("#tb_table_detailed").addRowData(rowid + 1, formData, 'first');
$("#tb_table_detailed").jqGrid('editRow', rowid + 1);
} else {//修改
var ids = $("#tb_bar_code").jqGrid("getDataIDs");//得到jqgrid当前行数
var rowid = Math.max.apply(Math,ids);//获得当前最大行号
if(rowid == "-Infinity"){
rowid = 0;
}
$("#tb_bar_code").saveRow(rowid);//取消最后一行的编辑状态
let form = $("#detailedForm").serializeObject();
form.inDocuNo = $("#inDocuNoLabel").val();
form.purchaser = $("#purchaser").val();
form.supplyCode = $("#supplyCode").val();
form.groupNo = groupNo;
form.ypManuBarCodes = $("#tb_bar_code").getRowData();
request({
url: '/modifYpInDetl',
method: 'POST',
data: JSON.stringify(form)
}).then((res) => {
successMesage(res);
loadDetailed(form.inDocuNo);
});
}
});
$("#btn_save").on('click', function () {
let ypInDetlVoList = $("#tb_table_detailed").jqGrid("getRowData");
if (ypInDetlVoList == null || ypInDetlVoList.length === 0) {
return errorMesageSimaple('没有可保存数据!');
}
if ($("#purchaser").val() === "" || $("#supplyCode").val() === "") {
return errorMesageSimaple('采购人和供应商不能为空!');
}
ypInDetlVoList[0].purchaser = $("#purchaser").val();
ypInDetlVoList[0].supplyCode = $("#supplyCode").val();
ypInDetlVoList[0].inDocuNo = $("#inDocuNoLabel").val();
ypInDetlVoList[0].groupNo = groupNo;
ypInDetlVoList[0].ypManuBarCodes = $("#tb_bar_code").getRowData();
request({
url: '/saveYpInDetlList',
method: 'POST',
data: JSON.stringify(ypInDetlVoList)
}).then((res) => {
initValue();
successMesage(res);
});
});
$("#btn_clean").on('click', function () {
initValue();
});
$("#btn_audit").on('click', function () {
let ypInDetlVoList = $("#tb_table_detailed").jqGrid("getRowData");
if (isEmpty($("#inDocuNoLabel").val()) || ypInDetlVoList == null || ypInDetlVoList.length === 0) {
return errorMesageSimaple('没有可审核的数据!');
}
if (ypInDetlVoList[0]['confirmFlag'] === '1') {
return errorMesageSimaple('当前入库单已审核通过,请勿重复审核!');
}
$("#btn_audit").attr("disabled",true);
request({
url: '/auditYpInDetl',
method: 'GET',
data: {
inDocuNo: $("#inDocuNoLabel").val()
}
}).then((res) => {
if(res.code == 0){
successMesage(res);
initValue();
}
}).catch((res) => {
$("#btn_audit").attr("disabled",false);
});
});
$("#btn_daily").click(function (t) {
setPrintHtml();
});
// 确认药品追溯码集合
$("#saveBarList").click(function () {
if(barC === 1){
return errorMesageSimaple('当前扫码未进行追溯码检查,请检查!');
}
// 有重复错误追溯码信息
if(barFor){
return errorMesageSimaple('当前扫码有重复或者错误追溯码信息,请检查!');
}
let barList = $("#drugTracCodgStr").val();
let rowid = $('#rowid2').val();
let buyAmt2 = $("#buyAmt2").val();
if(!isEmpty(barList)){
let str = removeLastComma(barList.replaceAll('\n', ','), ',');
let clFlag = $('#clFlag').val()
if(clFlag === '1'){
if(Number.parseInt(buyAmt2) !== str.split(',').length){
return errorMesageSimaple('当前入库单数量与扫码数量不一致,请检查!');
}
} else if(clFlag === '0'){
if(1 !== str.split(',').length){
return errorMesageSimaple('当前入库单数量与扫码数量不一致,请检查!');
}
}
// 更新追溯码内容
$("#tb_bar_code").setCell(rowid, 'drugTracCodg', str);
// 更新追溯码扫码数量
$("#tb_bar_code").setCell(rowid, 'quantity', str.split(',').length);
$("#tb_bar_code").setCell(rowid, 'clFlag', clFlag);
$("#tb_bar_code").setCell(rowid, 'clFlagName', clFlag);
$("#tb_bar_code").saveRow(rowid);
}
$("#barListModal").modal('hide');
})
// 添加药品追溯码入库信息
$("#addDetailedForBar").click(function () {
if ($("#checkerName1").val() === '') {//新增
let formData = $("#tb_bar_code").jqGrid("getRowData");
formData.forEach(function (item, index, arr) {
$("#tb_table_detailed").jqGrid('addRowData', index + 1, item);
$("#tb_table_detailed").jqGrid('editRow', index + 1);
})
} else {//修改
let ids = $("#tb_bar_code1").jqGrid("getDataIDs");//得到jqgrid当前行数
let rowid = Math.max.apply(Math,ids);//获得当前最大行号
if(rowid == "-Infinity"){
rowid = 0;
}
$("#tb_bar_code1").saveRow(rowid);//取消最后一行的编辑状态
let form = $("#barForm").serializeObject();
form.inDocuNo = $("#inDocuNoLabel").val();
form.purchaser = $("#purchaser").val();
form.supplyCode = $("#supplyCode").val();
form.groupNo = groupNo;
form.ypManuBarCodes = $("#tb_bar_code").getRowData();
request({
url: '/modifYpInDetl',
method: 'POST',
data: JSON.stringify(form)
}).then((res) => {
successMesage(res);
loadDetailed(form.inDocuNo);
});
}
$("#barFormModal").modal("hide");
});
// 追溯码检查
$("#checkBarList").click(function () {
drugBarStat();
});
// 追溯码去重
$("#checkBarRe").click(function () {
drugBarRepeat()
drugBarStat();
});
});
/**
* 初始化表单和grid
*/
function initValue() {
$("#purchaser").val("");
$("#checkerName").val("");
$("#purchaserNameLabel").val("");
$("#supplyCode").val("");
$("#supplyNameLabel").val("");
$("#inDateLabel").val("");
$("#inDocuNoLabel").val("");
$("#tb_table_detailed").jqGrid("clearGridData");
$("#confirmFlag").val("");
$("#addDetailed").attr("disabled",false);
$("#btn_save").attr("disabled",false);
$("#btn_audit").attr("disabled",false);
}
/**
* 查询列表
*/
function initRecordTable() {
$('#tb_record').bootstrapTable('destroy');
$('#tb_record').bootstrapTable({
url: '/thmz/getYpInDetlPage', //请求后台的URL(*)
method: 'POST', //请求方式(*)
toolbar: '#toolbar', //工具按钮用哪个容器
striped: true, //是否显示行间隔色
cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
pagination: true, //是否显示分页(*)
sortable: true, //是否启用排序
sortOrder: "asc", //排序方式
queryParams: recordTableQueryParams, //传递参数(*)
sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
pageNumber: 1, //初始化加载第一页,默认第一页
pageSize: 10, //每页的记录行数(*)
pageList: [10, 20, 40, 100], //可供选择的每页的行数(*)
search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
strictSearch: true,
showColumns: false, //是否显示所有的列
showRefresh: false, //是否显示刷新按钮
minimumCountColumns: 2, //最少允许的列数
clickToSelect: true, //是否启用点击选中行
uniqueId: "ID", //每一行的唯一标识,一般为主键列
showToggle: false, //是否显示详细视图和列表视图的切换按钮
cardView: false, //是否显示详细视图
detailView: false,
ajaxOptions: {
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer ' + localStorage.getItem("token")
}
},
columns: [
{
title: '操作',
field: 'op',
align: "center",
valign: 'middle',
formatter: function (value, row, index) {
var str = '';
if($("#confirmFlagSearch").val() === "0"){
str = '';
}
str += '';
return str;
}
}, {
field: 'inDate',
title: '入库日期',
align: "center",
valign: 'middle',
formatter: function (value, row, index) {
return value == null ? "-" : format(value, "yyyy-MM-dd HH:mm:ss");
}
}, {
field: 'reptNo',
title: '发票号',
align: "center",
valign: 'middle'
}, {
field: 'inDocuNo',
title: '入库单号',
align: "center",
valign: 'middle'
},
{
field: 'purchaserName',
title: '采购员',
align: "center",
valign: 'middle'
},
{
field: 'supplyName',
title: '供应商',
align: "center",
valign: 'middle'
},
{
field: 'buyValue',
title: '购入金额',
align: "center",
valign: 'middle',
formatter: function (value, row, index) {
return value.toFixed(2);
}
},
{
field: 'packValue',
title: '零售金额',
align: "center",
valign: 'middle',
formatter: function (value, row, index) {
return value.toFixed(2);
}
}
],
onDblClickRow: function (row) {
getYpInDetlDetail(row.inDocuNo)
},
responseHandler: function (res) {
if (res == '401' || res == 401) {
window.location.href = '/thmz/login/view'
return;
}
var ress = eval(res);
if (ress.code == -1) {
errorMesage(res);
return {
"total": 0,//总页数
"rows": {} //数据
};
}
return {
"total": ress.total,//总页数
"rows": ress.data //数据
};
}
});
}
function removeYpInDetl(inDocuNo) {
if (!confirm("确定删除该张单据吗?")) {
return;
}
request({
url: '/removeYpInDetlByInDocuNo',
method: 'GET',
data: {inDocuNo: inDocuNo}
}).then((res) => {
successMesage(res);
initRecordTable();
});
}
function getYpInDetlDetail(inDocuNo) {
$("#recordModal").modal("hide");
loadDetailed(inDocuNo);
}
function recordTableQueryParams(params) {
let rePortRangeArr = getRePortRangeArr();
let temp = {
inType:'0,2,3',
beginTime: rePortRangeArr[0],
endTime: rePortRangeArr[1],
groupNo: groupNo,
reptNo: $("#reptNoSearch").val() == '' ? null : $("#reptNoSearch").val(),
supplyCode: $("#supplyCodeSearch").val() == '' ? null : $("#supplyCodeSearch").val(),
confirmFlag: $("#confirmFlagSearch").val(),
inDocuNo: $("#inDocuNoSearch").val() == '' ? null : $("#inDocuNoSearch").val(),
pageSize: params.limit, //页面大小
pageIndex: params.offset / params.limit //页码
};
return JSON.stringify(temp);
}
/**
* 加载详细表格数据
* @param inDocuNo
*/
function loadDetailed(inDocuNo) {
$("#tb_table_detailed").jqGrid('setGridParam', {
datatype: 'JSON',
postData: {inDocuNo: inDocuNo}
}).trigger('reloadGrid');
}
/**
* 初始化详细表格
*/
function initDetailed() {
let selectRowId;//选中的行号
$.jgrid.gridUnload("tb_table_detailed");
$("#tb_table_detailed").jqGrid({
datatype: 'local',
mtype: 'get',
url: '/thmz/getYpInDetlDetailed',
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"));
}
},
height: screen.height * 0.3,
toolbar: [true, "top"],
styleUI: 'Bootstrap',
viewrecords: true,
autowidth: false,
autoScroll: true,
shrinkToFit: true,
rowNum: -1,//取消分页
caption: '入库单明细',
cellEdit: false,
sortable: false,
loadonce: false, //一次加载全部数据到客户端,由客户端进行排序。
sortname: 'chargeCode', //设置默认的排序列
sortorder: 'desc',
cellsubmit: "remote",
colNames: ['药品编码', '药品名称', '生产厂家', '规格', '零售价', '零售金额', '购入价', '购入量', '购入金额', '有效期', '生产日期', '药品追溯码', '批号', '传票号', '传票日期', '文号', '入库人',
'入库类别名称','入库类别', '结账标记', '发票日期', '药品国家医保编码', '规格编码', '生成厂家编码', '序号', '审核状态'],
colModel: [
{name: 'chargeCode', index: 'chargeCode', align: 'center', width: 100, sortable: false},
{name: 'drugName', index: 'drugName', align: 'left', width: 160},
{name: 'manufactoryName', index: 'manufactoryName', align: 'left', width: 160},
{name: 'specification', index: 'specification', align: 'center', width: 120},
{name: 'packRetprice', index: 'packRetprice', align: 'center', width: 100},
{
name: 'packValue', index: 'packValue', align: 'center', width: 100,
formatter: function (cellvalue, options, rowObject) {
return (rowObject.packRetprice * rowObject.buyAmt).toFixed(2)
}
},
{name: 'buyPrice', index: 'buyPrice', align: 'center', width: 100},
{name: 'buyAmt', index: 'buyAmt', align: 'center', width: 100},
{
name: 'buyValue', index: 'buyValue', align: 'center', width: 100,
formatter: function (cellvalue, options, rowObject) {
return (rowObject.buyPrice * rowObject.buyAmt).toFixed(2)
}
},
{
name: 'effDate', index: 'effDate', align: 'center', width: 100,
formatter: function (cellvalue, options, rowObject) {
return cellvalue == null ? "" : format(cellvalue, "yyyy-MM-dd");
}
}, {
name: 'producingDate', index: 'producingDate', align: 'center', width: 100,
formatter: function (cellvalue, options, rowObject) {
return cellvalue == null ? "" : format(cellvalue, "yyyy-MM-dd");
}
},
{name: 'drugTracCodg', index: 'drugTracCodg', align: 'center', width: 140},
{name: 'manuNo', index: 'manuNo', align: 'center', width: 100},
{name: 'reptNo', index: 'reptNo', align: 'center', width: 100},
{
name: 'reptDate', index: 'reptDate', align: 'center', width: 120,
formatter: function (cellvalue, options, rowObject) {
return cellvalue == null ? "" : format(cellvalue, "yyyy-MM-dd");
}
},
{name: 'licenseNo', index: 'licenseNo', align: 'center', width: 120},
{name: 'checkerName', index: 'checkerName', align: 'center', width: 100},
{
name: 'inTypeName', index: 'inTypeName', align: 'center', width: 100,
formatter: function (cellvalue, options, rowObject) {
let str = '';
switch (rowObject.inType) {
case '0':
str = '入库';
break;
case '1':
str = '退库';
break;
case '2':
str = '赠药';
break;
case '3':
str = '紧急入库';
}
return str
}
},
{
name: 'inType', index: 'inType', align: 'center', width: 100, hidden: true
},
{
name: 'acctType', index: 'acctType', align: 'center', width: 100,
formatter: function (cellvalue, options, rowObject) {
return cellvalue === 1 ? '已结账' : '未结账'
}
},
{
name: 'fpDate', index: 'fpDate', align: 'center', width: 100,
formatter: function (cellvalue, options, rowObject) {
return cellvalue == null ? "" : format(cellvalue, "yyyy-MM-dd");
}
},
{name: 'nationalCode', index: 'nationalCode', align: 'center', width: 120},
{
name: 'serial', index: 'serial', hidden: true
}, {
name: 'manuCode', index: 'manuCode', hidden: true
}, {
name: 'inSeri', index: 'inSeri', hidden: true
}, {
name: 'confirmFlag', index: 'confirmFlag', hidden: true
}
],
jsonReader: {
root: "data", repeatitems: false
},
onCellSelect: function (rowid, iCol, cellcontent, e) {
selectRowId = rowid;
},
ondblClickRow: function (row) {
let rowData = $('#tb_table_detailed').jqGrid('getRowData', row);
let inType = 0;
switch (rowData) {
case "入库":
inType = 0;
break;
case "退库":
inType = 1;
break;
case "赠药":
inType = 2;
break;
case "紧急入库":
inType = 3;
}
rowData.inType = inType;
$("#detailedForm")[0].reset();
$("#confirmFlag").val()==1?$("#addDetailed").attr("disabled",true):$("#addDetailed").attr("disabled",false);
$("#detailedFormModal").modal("show");
$.each(rowData, function (key, value) {
$("#" + key).val(value);
});
isEmpty(rowData.checkerName)?$("#div_bar_code").hide():$("#div_bar_code").show();
loadBar(rowData.inDocuNo, rowData.chargeCode, rowData.manuNo);
$("#barCode").val("");
},
loadComplete: function (res) { //加载完成(初始加载),回调函数
if (res == '401' || res == 401) {
window.location.href = '/thmz/login/view';
return;
}
if (res.code == -1) {
return errorMesage(res);
}
if (res.data != null && res.data.length > 0) {
$("#xxform")[0].reset();
let data = res.data[0];
$("#inDocuNoLabel").val(data['inDocuNo']);
$("#inDateLabel").val(format(data['inDate'], "yyyy-MM-dd HH:mm:ss"));
$("#purchaserNameLabel").val(data['purchaserName']);
$("#purchaser").val(data['purchaser']);
$("#supplyNameLabel").val(data['supplyName']);
$("#supplyCode").val(data['supplyCode']);
$("#confirmFlag").val(data['confirmFlag']);
}
if($("#confirmFlag").val()==1){
$("#btn_save").attr("disabled",true);
$("#btn_audit").attr("disabled",true);
}else{
$("#btn_save").attr("disabled",false);
$("#btn_audit").attr("disabled",false);
}
}
});
$("#t_tb_table_detailed").append("");
$("#t_tb_table_detailed").append("");
$("#t_tb_table_detailed").append("");
$("#showDetailed").on('click', function () {
$("#detailedForm")[0].reset();
$("#detailedFormModal").modal("show");
$("#div_bar_code").hide();
$("#manuNo").attr("disabled",false);
$("#confirmFlag").val()==1?$("#addDetailed").attr("disabled",true):$("#addDetailed").attr("disabled",false);
let rowData = $("#tb_table_detailed").jqGrid("getRowData")[0];
if(rowData){
$("#reptNo").val(rowData['reptNo']);
$("#reptDate").val(rowData['reptDate']);
}else{
$("#reptNo").val(null);
$("#reptDate").val(null);
}
});
// 增加入库信息扫入
$("#showDrugBarDetailed").on('click', function () {
$("#barForm")[0].reset();
$("#barFormModal").modal("show");
$("#div_bar_code").show();
$("#chargeCode1").val('');
$("#manuNo1").attr("disabled",false);
$("#confirmFlag").val()===1 ? $("#addDetailed").attr("disabled",true) : $("#addDetailed").attr("disabled",false);
let rowData = $("#tb_table_detailed").jqGrid("getRowData")[0];
if(rowData){
$("#reptNo1").val(rowData['reptNo']);
$("#reptDate1").val(rowData['reptDate']);
}else{
$("#reptNo1").val(null);
$("#reptDate1").val(null);
}
$("#tb_bar_code").jqGrid('clearGridData');
});
$("#removeDetailed").on('click', function () {
if($("#confirmFlag").val() == 1){
return errorMesageSimaple('已审核,禁止操作!');
}
if (selectRowId == null) {
return errorMesageSimaple('请选择一行进行删除!');
}
$("#tb_table_detailed").jqGrid("delRowData", selectRowId);
});
}
/**
* 加载入库药品条码表格数据
* @param inDocuNo 入库单号
* @param chargeCode 药品编码
* @param manuNo 批号
*/
function loadBar(inDocuNo, chargeCode, manuNo) {
$("#tb_bar_code").jqGrid('setGridParam', {
datatype: 'JSON',
postData: JSON.stringify({chargeCode: chargeCode,manuNo: manuNo,inDocuNo:inDocuNo})
}).trigger('reloadGrid');
}
/**
* 初始化入库药品条码表格数据
*/
function initBar() {
$.jgrid.gridUnload("tb_bar_code");
$("#tb_bar_code").jqGrid({
datatype: 'local',
mtype: 'POST',
url: '/thmz/getYpManuBarCode',
loadBeforeSend: function (jqXHR) {
jqXHR.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));
jqXHR.setRequestHeader("Accept", 'application/json;charset=UTF-8');
jqXHR.setRequestHeader("Content-Type", 'application/json;charset=UTF-8');
},
ajaxCellOptions: {
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));
}
},
height: screen.height * 0.2,
toolbar: [true, "top"],
styleUI: 'Bootstrap',
viewrecords: true,
autowidth: false,
autoScroll: true,
shrinkToFit: true,
rowNum: -1,//取消分页
cellEdit: true,
classes: {
// 为选中行添加的CSS类
"ui-state-highlight": "your-custom-class"
},
sortable: false,
loadonce: true, //一次加载全部数据到客户端,由客户端进行排序。
cellsubmit: "clientArray",
caption: '入库药品关联条码',
rownumbers: true,//是否显示序号
// multiselect: true,
// multiboxonly: true,
// multiselectWidth: 60,
colNames: ['药品编码','药品名称','商品码','追溯码','追溯码数量','批号','入库单号','1','是否拆零','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18'],
colModel: [
{name: 'chargeCode', index: 'chargeCode', align: 'center', width: 120,sortable: false},
{name: 'drugName', index: 'drugName', align: 'left', width: 160,sortable: false},
{name: 'barCode', index: 'barCode', align: 'center', width: 120,sortable: false},
{name: 'drugTracCodg', index: 'drugTracCodg', align: 'left', width: 200,sortable: false},
{name: 'quantity', index: 'quantity', align: 'center', width: 120,sortable: false},
{name: 'manuNo', index: 'manuNo', align: 'center', width: 150,sortable: false},
{name: 'inDocuNo', index: 'inDocuNo', align: 'center', width: 150,sortable: false},
{name: 'clFlag', index: 'clFlag',align: 'center', width: 100,hidden: true},
{name: 'clFlagName', index: 'clFlagName',align: 'center', width: 100,sortable: false,
formatter: function (cellvalue, options, rowObject) {
if(isEmpty(cellvalue)){
return '';
} else {
return cellvalue === '0' ? '否' : '是';
}
}
},
{name: 'manufactoryName', index: 'manufactoryName',hidden: true},
{name: 'specification', index: 'specification',hidden: true},
{name: 'packRetprice', index: 'packRetprice',hidden: true},
{name: 'buyAmt', index: 'buyAmt',hidden: true},
{name: 'buyPrice', index: 'buyPrice',hidden: true},
{name: 'effDate', index: 'effDate',hidden: true},
{name: 'producingDate', index: 'producingDate',hidden: true},
{name: 'manuNo', index: 'manuNo',hidden: true},
{name: 'reptNo', index: 'reptNo',hidden: true},
{name: 'reptDate', index: 'reptDate',hidden: true},
{name: 'licenseNo', index: 'licenseNo',hidden: true},
{name: 'nationalCode', index: 'nationalCode',hidden: true},
{name: 'serial', index: 'serial',hidden: true},
{name: 'manuCode', index: 'manuCode',hidden: true},
{name: 'inSeri', index: 'inSeri',hidden: true},
{name: 'inType', index: 'inType',hidden: true},
{name: 'fpDate', index: 'fpDate',hidden: true},
],
jsonReader: {
root: "data", repeatitems: false
},
afterSubmitCell: function(rowid, cellname, value, iRow, iCol) {
$("#tb_bar_code").setCell(rowid, iCol, value);
return true; // 必须返回 ture or false,否则 下面的 afterSaveCell 方法执行不了的
},
afterSaveCell: function (rowid, celname, value, iRow, iCol) {
$("#tb_bar_code").setCell(rowid, iCol, value);
return true;
},
onCellSelect: function (rowid, iCol, cellcontent, e) {
$("#tb_bar_code #jqg_tb_bar_code_" + rowid).prop("checked", true);//打钩
if(iCol === 4){
let rowData = $("#tb_bar_code").jqGrid("getRowData", rowid);
$("#barListForm")[0].reset();
$("#clFlag option:selected").val('1')
$("#barListModal").modal("show");
$('#chargeCode2').val(rowData['chargeCode']);
$('#buyAmt2').val(rowData['buyAmt']);
$('#quantity2').val(rowData['quantity']);
$('#drugName2').val(rowData['drugName']);
$('#barCode2').val(rowData['barCode']);
if(!isEmpty(rowData['drugTracCodg'])){
let str = (rowData['drugTracCodg'] + ',').replaceAll(',', '\n');
$('#drugTracCodgStr').val(str);
}
$('#rowid2').val(rowid);
}
},
beforeSelectRow: function(rowid, e) {
// 阻止行选择
return true;
},
beforeEditCell: function(rowid,iCol,cellcontent,e){
},
loadComplete: function (res) { //加载完成(初始加载),回调函数
/*$("#barCode").focus();*/
if (res == '401' || res == 401) {
window.location.href = '/thmz/login/view';
return;
}
if (res.code == -1) {
errorMesage(res);
}else{
// if(!isEmpty(res.data) && res.data.length>0){
// $("#manuNo").attr("disabled",true)
// }else{
// $("#manuNo").attr("disabled",false)
// }
}
}
});
$("#t_tb_bar_code").append("");
$("#t_tb_bar_code").append("");
// $("#t_tb_bar_code").append("");
$("#addBarCode").on('click', function () {
if(isEmpty($("#chargeCode1").val())){
return errorMesageSimaple('药品编码为空,请重新设置药品!');
}
let barDataList = $("#tb_bar_code").jqGrid("getGridParam").data;//得到jqgrid当前行数
let rowid = barDataList.length
if(barDataList.length !== 0 ){
// 因为新增的数据都是放在首行,所以id最大的是第一行数据
rowid = Number.parseInt(barDataList[0].id) + 1
}
$("#tb_bar_code").saveRow(rowid);
let formData = {}
let t = $("#barForm").serializeArray();
$.each(t, function () {
formData[this.name.replace('1', '')] = this.value
});
formData['inDocuNo'] = $("#inDocuNoLabel").val();
formData['drugTracCodg'] = '';
$("#tb_bar_code").addRowData(rowid, formData,'first');
// $("#tb_bar_code").jqGrid('editRow', rowid+1);
});
$("#removeBarCode").on('click', function () {
if (!confirm("确定删除该条药品追溯码吗?")) {
return;
}
let selectRowId = $("#tb_bar_code").jqGrid("getGridParam", "selrow");
if(isEmpty(selectRowId)){
return errorMesageSimaple('请选择一行数据!');
}
$("#tb_bar_code").jqGrid("delRowData", selectRowId);
});
/**
* 条码赋值
* @param value
*/
function autoBar(value){
let selectRowId = $("#tb_bar_code").jqGrid("getGridParam", "selrow");
if(isEmpty(selectRowId)){
return errorMesageSimaple('请选择一个药品!');
}
// 获取当前追溯码信息
let ypTracCodg = $("#tb_bar_code").getCell(selectRowId, 'drugTracCodg')
if(!isEmpty(ypTracCodg)){
// 更新追溯码内容
$("#tb_bar_code").setCell(selectRowId, 'drugTracCodg', ypTracCodg + ',' + value);
// 更新追溯码扫码数量(这里不需要加1,因为最后会多一个",")
$("#tb_bar_code").setCell(selectRowId, 'quantity', ypTracCodg.split(',').length);
} else {
$("#tb_bar_code").setCell(selectRowId, 'drugTracCodg', value);
$("#tb_bar_code").setCell(selectRowId, 'quantity', 1);
}
$("#barCode").val("");
}
/**
* 扫码条码
*/
$("#barCode").on('input', debounce(e=>{
autoBar(e.delegateTarget.value)
},500));
}
/**
* 生产报表数据
*/
function setPrintHtml() {
let date = {inDocuNo: $("#inDocuNoLabel").val()};
request({
url: '/getYpInDetlDetailed',
method: 'GET',
data: date
}).then((res) => {
console.log(res);
let html = '';
let packRetpriceSum = 0;
let buyPriceSum = 0;
$('.sjh').remove();
for (let i = 0; i < res['data'].length; i++) {
let data = res['data'][i];
let packRetprice = keepTwoDecimal(parseFloat(data['buyAmt']) * parseFloat(data['packRetprice']));
let buyPrice = keepTwoDecimal(parseFloat(data['buyAmt']) * parseFloat(data['buyPrice']));
packRetpriceSum += packRetprice;
buyPriceSum += buyPrice;
if (i === 0) {
$(".printDate").html(format(new Date(), "yyyy-MM-dd HH:mm"));
$(".supplyName").html(data['supplyName']);
$(".inDocuNo").html(data['inDocuNo']);
$(".confirmDate").html(format(data['confirmDate'], "yyyy-MM-dd HH:mm"));
$(".lister").html($(".current_user")[0].innerText);
$(".listerAudit").html(data['confirmName']);
}
html += '';
html += '| ' + data['chargeCode'] + ' | ';
html += '' + data['drugName'] + ' | ';
html += '' + data['specification'] + ' | ';
html += '' + data['buyAmt'] + ' | ';
html += '' + data['buyPrice'] + ' | ';
html += '' + data['packRetprice'] + ' | ';
html += '' + buyPrice + ' | ';
html += '' + packRetprice + ' | ';
html += '' + data['manuNo'] + ' | ';
html += '' + (isEmpty(data['manufactoryName'])?'':data['manufactoryName']) + ' | ';
html += '' + format(data['effDate'], "yyyy-MM-dd") + ' | ';
html += '
';
}
$("#base_tr").after(html);
$(".packRetpriceSum").html(keepTwoDecimal(packRetpriceSum));
$(".buyPriceSum").html(keepTwoDecimal(buyPriceSum));
$(".balance").html(keepTwoDecimal(Math.abs(packRetpriceSum-buyPriceSum)));
print();
});
}
/**
* 打印报表
*/
function print() {
setDefaultPrint();
LODOP = getLodop();
LODOP.PRINT_INITA(6, 0, "215mm", "280mm", "入库单打印");
LODOP.SET_PRINT_PAGESIZE(1, "215mm", "280mm", "");
//设置默认打印机
LODOP.SET_PRINTER_INDEX(defaultPrintIndex);
LODOP.SET_PRINT_STYLE("FontSize", 11); //字体大小
LODOP.SET_PRINT_STYLEA(0, "ItemType", 2);
var strStyle = "";
LODOP.ADD_PRINT_HTM("0mm", "0mm", "RightMargin:0mm", "BottomMargin:0mm", strStyle + document.getElementById("report_table_1").innerHTML);
//LODOP.PRINT();
LODOP.PREVIEW();
}
// 追溯码扫码计数统计
let barFor = false
let barC = 1
function drugBarStat(){
barFor = false
barC = 0
$('#quantity2').val(null)
$('#drugTracCodgAt').val(null);
let sum = 0;
let str = $("#drugTracCodgStr").val();
let infoErr = '错误:\n';
let infoRep = '重复:\n';
if(!isEmpty(str)){
let barInfo = str.replaceAll('\n', ',').split(',')
if(barInfo.length > 0) {
for(let i in barInfo){
if(barInfo[i].length === 20){
sum++;
} else {
if(barInfo[i] > 0 && barInfo[i].length !== 20){
sum++;
barFor = true
infoErr += barInfo[i] + '\n';
}
}
}
let barInfoCp = [...barInfo]
let repStr = ''
for(let i in barInfo){
let rep = 1;
// 不能用index的序号去比,因为它已经比过了
let index = 0;
if(!(isEmpty(repStr) || repStr.indexOf(barInfo[i]) === -1)){
continue
}
for(let j in barInfoCp){
if(j > i && barInfo[i] === barInfoCp[j]){
rep++;
barFor = true
if(isEmpty(repStr)){
repStr = barInfo[i]
} else if(repStr.indexOf(barInfo[i]) === -1){
repStr += ',' + barInfo[i]
}
index = j
}
}
if(rep > 1){
infoRep = infoRep + barInfo[i] + '重复出现:' + rep + '次。 \n'
rep = 1
}
}
}
}
let info = infoErr + '\n' + infoRep
$('#quantity2').val(sum)
$('#drugTracCodgAt').val(info);
}
/**
* 去掉最后一个字符
* @param str 字符串
* @param char 去掉的字符
* @returns {string}
*/
function removeLastComma(str, char) {
if (str.endsWith(char)) {
str = str.substring(0, str.length - 1);
}
return str;
}
function drugBarRepeat(){
let barStr = $("#drugTracCodgStr").val()
if(!isEmpty(barStr)) {
let barInfo = barStr.replaceAll('\n', ',').split(',')
if (barInfo.length > 0) {
let barData = new Set(barInfo)
let barList = [...barData]
let data = ''
for(let i in barList){
if(!isEmpty(barList[i])) {
data += (barList[i] + '\n')
}
}
$("#drugTracCodgStr").val(data)
}
}
}