Files
erp-site/statics/js/dist/inventory.js
2026-04-19 01:39:41 +08:00

342 lines
11 KiB
JavaScript
Executable File

var curRow, curCol, loading = null,
import_dialog = null,
SYSTEM = parent.SYSTEM,
tempAssistPropGroupInfo = {},
queryConditions = {
goods: "",
showZero: 0,
isSerNum: 0
},
qtyPlaces = Number(parent.SYSTEM.qtyPlaces),
pricePlaces = Number(parent.SYSTEM.pricePlaces),
amountPlaces = Number(parent.SYSTEM.amountPlaces),
THISPAGE = {
init: function(a) {
this.initDom(a), this.addEvent(), this.loadGrid([]), $(".ui-jqgrid-bdiv").addClass("no-query")
},
initDom: function() {
this.$_storage = $("#storage"), this.$_category = $("#category"), this.$_goods = $("#goods"), this.$_note = $("#note"), this.chkField = $("#chkField").cssCheckbox(), this.storageCombo = $("#storage").combo({
data: function() {
return parent.SYSTEM.storageInfo
},
text: "name",
value: "id",
width: 120,
defaultSelected: 0,
addOptions: {
text: "所有仓库",
value: -1
},
cache: !1
}).getCombo(), this.categoryTree = Public.categoryTree(this.$_category, {
rootTxt: "所有类别",
width: 200
}), 1 != SYSTEM.ISSERNUM && $("#chkField").find("label:eq(1)").hide()
},
loadGrid: function(a) {
$("#grid").jqGrid("GridUnload");
var b = $(window).height() - $(".grid-wrap").offset().top - 124;
$("#grid").jqGrid({
data: a,
mtype: "GET",
autowidth: !0,
height: b,
rownumbers: !0,
altRows: !0,
gridview: !0,
colModel: [{
name: "locationId",
label: "仓库ID",
width: 0,
hidden: !0
}, {
name: "locationName",
label: "仓库",
width: 100
}, {
name: "assistName",
label: "商品类别",
width: 100
}, {
name: "invId",
label: "商品ID",
width: 0,
hidden: !0
}, {
name: "invNumber",
label: "商品编号",
width: 100
}, {
name: "invName",
label: "商品名称",
width: 200,
classes: "ui-ellipsis"
}, {
name: "skuId",
label: "属性ID",
hidden: !0
}, {
name: "skuName",
label: "属性",
width: 100,
classes: "ui-ellipsis",
hidden: !SYSTEM.enableAssistingProp,
formatter: function(a, b, c) {
if (!a && c.skuId) {
if (tempAssistPropGroupInfo[c.skuId]) return tempAssistPropGroupInfo[c.skuId].skuName;
for (var d = 0, e = parent.SYSTEM.assistPropGroupInfo.length; e > d; d++) {
var f = SYSTEM.assistPropGroupInfo[d];
if (tempAssistPropGroupInfo[f.skuId] = f, f.skuId == c.skuId) return f.skuName
}
}
return a || " "
}
}, {
name: "invSpec",
label: "规格型号",
width: 100
}, {
name: "unitId",
label: "单位ID",
width: 0,
hidden: !0
}, {
name: "unitName",
label: "单位",
width: 50
}, {
name: "qty",
label: "系统库存",
width: 100,
align: "right",
formatter: "number",
formatoptions: {
decimalPlaces: qtyPlaces
}
}, {
name: "checkInventory",
label: "盘点库存",
width: 100,
title: !1,
align: "right",
editable: !0,
formatter: "number",
formatoptions: {
decimalPlaces: qtyPlaces
}
}, {
name: "change",
label: "盘盈盘亏",
width: 100,
align: "right",
formatter: "number",
formatoptions: {
decimalPlaces: qtyPlaces
}
}],
cmTemplate: {
sortable: !1
},
sortname: "number",
sortorder: "desc",
pager: "#page",
rowNum: 20,
rowList: [100, 200, 500],
viewrecords: !0,
shrinkToFit: !1,
forceFit: !1,
cellEdit: !0,
triggerAdd: !1,
cellsubmit: "clientArray",
localReader: {
root: "data.rows",
records: "data.records",
repeatitems: !1,
total: "data.total",
page: "data.page",
id: "-1"
},
jsonReader: {
root: "data.rows",
records: "data.records",
repeatitems: !1,
total: "data.total",
page: "data.page",
id: "-1"
},
gridComplete: function() {
$("tr#1").find("td:eq(11)").trigger("click")
},
afterSaveCell: function(a, b, c, d, e) {
if ("checkInventory" == b) {
var f = $("#grid").jqGrid("getCell", a, e - 1);
if (!isNaN(parseFloat(f))) {
$("#" + a).find("td:eq(-1)").removeClass("red");
var g = parseFloat(c) - parseFloat(f);
0 > g ? $("#grid").jqGrid("setCell", a, "change", g, "red") : $("#grid").jqGrid("setCell", a, "change", g)
}
}
},
loadError: function() {}
})
},
reloadData: function(a) {
$("#grid").jqGrid("setGridParam", {
url: "../scm/invOi/queryToPD?action=queryToPD",
datatype: "json",
postData: a,
page: 1
}).trigger("reloadGrid")
},
_getEntriesData: function() {
null !== curRow && null !== curCol && ($("#grid").jqGrid("saveCell", curRow, curCol), curRow = null, curCol = null);
for (var a = [], b = $("#grid").jqGrid("getDataIDs"), c = 0, d = b.length; d > c; c++) {
var e, f = b[c],
g = $("#grid").jqGrid("getRowData", f);
e = {
invId: g.invId,
invNumber: g.invNumber,
invName: g.invName,
skuId: g.skuId || -1,
skuName: g.skuName || "",
invSpec: g.invSpec,
locationId: g.locationId,
locationName: g.locationName,
unitId: g.unitId,
mainUnit: g.unitName,
invCost: g.invCost,
qty: g.qty,
checkInventory: g.checkInventory,
change: g.change
}, a.push(e)
}
return a
},
manager: {
_makeOutBound: function(a) {
parent.tab.addTabItem({
tabid: "storage-otherOutbound",
text: "其他出库",
url: "../scm/invOi?action=initOi&type=out&cacheId=" + a
})
},
_makeWarehouse: function(a) {
parent.tab.addTabItem({
tabid: "storage-otherWarehouse",
text: "其他入库",
url: "../scm/invOi?action=initOi&type=in&cacheId=" + a
})
},
makeOrder: function(a) {
var b = this,
c = {},
d = function(a) {
var c = !0;
"out" === a && b.$input_out.length ? b.$input_out.removeClass("ui-label-warning").addClass("ui-label-success") : b.$input_in.length && b.$input_in.removeClass("ui-label-warning").addClass("ui-label-success"), b.$input_in.length && !b.$input_in.hasClass("ui-label-success") && (c = !1), b.$input_out.length && !b.$input_out.hasClass("ui-label-success") && (c = !1), c && (b.pop.close(), $("#search").trigger("click"))
};
if (a.items && a.items.length) for (var e = a.items.length - 1; e >= 0; e--)"OO" === a.items[e].billType ? c.outboundData = a.items[e] : c.warehouseData = a.items[e];
var f = (new Date).getTime() + "";
parent.Cache = parent.Cache || {}, parent.Cache[f] = {
data: c,
callback: d
};
var g = "",
h = "";
c.outboundData && (g = '<li><span class="ui-label ui-label-warning" id="out">盘亏单</span></li>'), c.warehouseData && (h = '<li><span class="ui-label ui-label-warning" id="in">盘盈单</span></li>');
var i = ['<div id="manager">', "<ul>", g, h, "</ul>", "</div>"];
b.pop = $.dialog({
title: "打开盘点单据确认后保存",
content: i.join(""),
width: 150,
height: 100,
lock: !0,
ok: !1,
init: function() {
b.$input_out = $("#out").click(function() {
b._makeOutBound(f)
}), b.$input_in = $("#in").click(function() {
b._makeWarehouse(f)
})
},
cancel: function() {
return $.dialog.confirm("未完善相关出入库单据会影响本次盘点数据,确定要取消吗?", function() {
parent.Cache[f] = null, $("#search").trigger("click"), b.pop.close()
}), !1
}
})
}
},
addEvent: function() {
var a = this;
$("#search").click(function() {
queryConditions = {
locationId: a.storageCombo.getValue(),
categoryId: a.categoryTree.getValue(),
goods: a.$_goods.val(),
showZero: 0,
isSerNum: 0
};
var b = a.chkField.chkVal();
if (b.length) for (var c = b.length - 1; c >= 0; c--) queryConditions[b[c]] = 1;
a.reloadData(queryConditions), a.loaded || ($(".ui-jqgrid-bdiv").removeClass("no-query"), a.loaded = !0, $("#handleDom").show(), $(".mod-search .fr").show())
}), $("#save").click(function() {
var b = a._getEntriesData();
if (!(b.length > 0)) return parent.Public.tips({
type: 2,
content: "商品信息不能为空!"
}), $("#grid").jqGrid("editCell", 1, 2, !0), !1;
var c = new Date,
d = {
entries: b,
description: $.trim(a.$_note.val()),
date: c.format("yyyy-MM-dd")
};
Public.ajaxPost("../scm/invOi/generatorPD?action=generatorPD", {
postData: JSON.stringify(d)
}, function(b) {
200 === b.status ? a.manager.makeOrder(b.data) : parent.Public.tips({
type: 1,
content: b.msg
})
})
}), $("#export").click(function(a) {
return Business.verifyRight("PD_EXPORT") ? void $(this).attr("href", "../scm/invOi/exportToPD?action=exportToPD&locationId=" + queryConditions.locationId + "&categoryId=" + queryConditions.categoryId + "&goods=" + queryConditions.goods + "&showZero=" + queryConditions.showZero + "&isSerNum=" + queryConditions.isSerNum) : void a.preventDefault()
}), $("#import").click(function() {
if (!Business.verifyRight("PD_IMPORT")) return void e.preventDefault();
var b, c = this;
c.import_dialog = $.dialog({
width: 520,
height: 150,
title: "批量导入",
content: "url:../storage/import",
data: {
curID: a.curID,
callback: function(b) {
var d = "上传失败!";
if (b && b.msg) {
if ("success" === b.msg) return c.loading.close(), c.import_dialog.close(), void a.manager.makeOrder(b.data);
d = b.msg
}
parent.Public.tips({
type: 1,
content: d
}), c.loading.close()
}
},
lock: !0,
ok: function() {
return b = this.content.$("#file-path"), "" === b.val() ? (parent.Public.tips({
type: 2,
content: "请先选择导入的文件!"
}), !1) : (c.loading = $.dialog.tips("正在导入数据,请稍候...", 1e3, "loading.gif", !0), this.content.callback(), !1)
},
cancel: !0
})
}), $(document).bind("click.cancel", function(a) {
!$(a.target).closest(".ui-jqgrid-btable").length > 0 && null !== curRow && null !== curCol && ($("#grid").jqGrid("saveCell", curRow, curCol), curRow = null, curCol = null)
}), $(window).resize(function() {
Public.resizeGrid(94)
})
}
};
THISPAGE.init();