var curRow, curCol, curArrears, loading, urlParam = Public.urlParam(),
SYSTEM = parent.SYSTEM,
hiddenAmount = !1,
qtyPlaces = Number(parent.SYSTEM.qtyPlaces),
pricePlaces = Number(parent.SYSTEM.pricePlaces),
amountPlaces = Number(parent.SYSTEM.amountPlaces),
defaultPage = Public.getDefaultPage(),
THISPAGE = {
init: function(a) {
this.mod_PageConfig = Public.mod_PageConfig.init("adjustment"), SYSTEM.isAdmin !== !1 || SYSTEM.rights.AMOUNT_COSTAMOUNT || (hiddenAmount = !0), this.loadGrid(a), this.initDom(a), this.initCombo(), this.addEvent()
},
initDom: function(a) {
this.$_date = $("#date").val(SYSTEM.endDate), this.$_number = $("#number"), this.$_note = $("#note"), this.$_toolTop = $("#toolTop"), this.$_toolBottom = $("#toolBottom"), this.$_userName = $("#userName"), this.$_note.placeholder(), this.$_date.datepicker({
onSelect: function(a) {
if (!(originalData.id > 0)) {
var b = a.format("yyyy-MM-dd");
THISPAGE.$_number.text(""), Public.ajaxPost("../basedata/systemProfile/generateDocNo?action=generateDocNo", {
billType: "CADJ",
billDate: b
}, function(a) {
200 === a.status ? THISPAGE.$_number.text(a.data.billNo) : parent.Public.tips({
type: 1,
content: a.msg
})
})
}
}
}), a.id > 0 ? (this.$_number.text(a.billNo), this.$_date.val(a.date), a.description && this.$_note.val(a.description), $("#grid").jqGrid("footerData", "set", {
qty: a.totalQty,
amount: a.totalAmount
}), this.$_toolBottom.html("edit" === a.status ? '新增打印保存' : '新增打印'), this.salesListIds = parent.salesListIds || [], this.idPostion = $.inArray(String(a.id), this.salesListIds), this.idLength = this.salesListIds.length, 0 === this.idPostion && $("#prev").addClass("ui-btn-prev-dis"), this.idPostion === this.idLength - 1 && $("#next").addClass("ui-btn-next-dis"), this.$_userName.html(a.userName)) : (this.$_toolBottom.html('保存并新增保存'), this.$_userName.html(SYSTEM.realName || ""))
},
loadGrid: function(a) {
function b(a, b, c) {
return a ? (i(b.rowId), a) : c.invNumber ? c.invSpec ? c.invNumber + " " + c.invName + "_" + c.invSpec : c.invNumber + " " + c.invName : " "
}
function c() {
var a = $(".goodsAuto")[0];
return a
}
function d(a, b, c) {
if ("get" === b) {
if ("" !== $(".goodsAuto").getCombo().getValue()) return $(a).val();
var d = $(a).parents("tr");
return d.removeData("goodsInfo"), ""
}
"set" === b && $("input", a).val(c)
}
function e() {
$("#initCombo").append($(".goodsAuto").val("").unbind("focus.once"))
}
function f() {
var a = $(".storageAuto")[0];
return a
}
function g(a, b, c) {
if ("get" === b) {
if ("" !== $(".storageAuto").getCombo().getValue()) return $(a).val();
var d = $(a).parents("tr");
return d.removeData("storageInfo"), ""
}
"set" === b && $("input", a).val(c)
}
function h() {
$("#initCombo").append($(".storageAuto").val(""))
}
function i(a) {
var b = $("#" + a).data("goodsInfo"),
c = $("#grid").jqGrid("getRowData", a);
if (b) {
var c = {
skuId: b.skuId || -1,
skuName: b.skuName || "",
mainUnit: b.mainUnit || b.unitName,
unitId: b.unitId,
amount: c.amount || 0,
locationName: b.locationName
},
d = $("#grid").jqGrid("setRowData", a, c);
d && THISPAGE.calTotal()
}
}
var j = this;
if (a.id) {
var k = 8 - a.entries.length;
if (k > 0) for (var l = 0; k > l; l++) a.entries.push({})
}
j.newId = 9;
var m = "grid",
n = [{
name: "operating",
label: " ",
width: 40,
fixed: !0,
formatter: Public.billsOper,
align: "center"
}, {
name: "goods",
label: "商品",
width: 320,
title: !0,
classes: "goods",
formatter: b,
editable: !0,
edittype: "custom",
editoptions: {
custom_element: c,
custom_value: d,
handle: e,
trigger: "ui-icon-ellipsis disableSku"
}
}, {
name: "skuId",
label: "属性ID",
hidden: !0
}, {
name: "mainUnit",
label: "单位",
width: 60
}, {
name: "amount",
label: "调整金额",
hidden: hiddenAmount,
width: 100,
align: "right",
formatter: "currency",
formatoptions: {
showZero: !0,
decimalPlaces: amountPlaces
},
editable: !0
}, {
name: "locationName",
label: '仓库(批量)',
width: 100,
title: !0,
editable: !0,
edittype: "custom",
editoptions: {
custom_element: f,
custom_value: g,
handle: h,
trigger: "ui-icon-triangle-1-s"
}
}, {
name: "description",
label: "备注",
width: 150,
title: !0,
editable: !0
}];
j.mod_PageConfig.gridReg(m, n), n = j.mod_PageConfig.conf.grids[m].colModel, $("#grid").jqGrid({
data: a.entries,
datatype: "clientSide",
autowidth: !0,
height: "100%",
rownumbers: !0,
gridview: !0,
onselectrow: !1,
colModel: n,
cmTemplate: {
sortable: !1,
title: !1
},
shrinkToFit: !1,
forceFit: !0,
rowNum: 1e3,
cellEdit: !1,
cellsubmit: "clientArray",
localReader: {
root: "rows",
records: "records",
repeatitems: !1,
id: "id"
},
jsonReader: {
root: "data.entries",
records: "records",
repeatitems: !1,
id: "id"
},
loadComplete: function(a) {
if (urlParam.id > 0) {
var b = a.rows,
c = b.length;
j.newId = c + 1;
for (var d = 0; c > d; d++) {
var e = d + 1,
f = b[d];
if ($.isEmptyObject(b[d])) break;
var g = $.extend(!0, {
id: f.invId,
number: f.invNumber,
name: f.invName,
spec: f.invSpec,
unitId: f.unitId,
unitName: f.mainUnit
}, f);
g.id = f.invId, $("#" + e).data("goodsInfo", g).data("storageInfo", {
id: f.locationId,
name: f.locationName
})
}
}
},
gridComplete: function() {
setTimeout(function() {
Public.autoGrid($("#grid"))
}, 10)
},
afterEditCell: function(a, b, c, d) {
if ("goods" === b) {
var e = $("#" + a).data("goodsInfo");
if (e) {
var f = $("#grid").jqGrid("getRowData", a);
e = $.extend(!0, {}, e), e.mainUnit = f.mainUnit, e.unitId = f.unitId, e.qty = f.qty, e.price = f.price, e.discountRate = f.discountRate, e.deduction = f.deduction, e.amount = f.amount, e.taxRate = f.taxRate, e.tax = f.tax, e.taxAmount = f.taxAmount, e.locationName = f.locationName, $("#" + a).data("goodsInfo", e)
}
$("#" + d + "_goods", "#grid").val(c), THISPAGE.goodsCombo.selectByText(c), THISPAGE.curID = a
}
"locationName" === b && ($("#" + d + "_locationName", "#grid").val(c), THISPAGE.storageCombo.selectByText(c))
},
formatCell: function() {},
beforeSubmitCell: function() {},
beforeSaveCell: function(a, b, c) {
if ("goods" === b) {
var d = $("#" + a).data("goodsInfo");
if (d) return c;
j.skey = c;
var e, f = function(b) {
$("#" + a).data("goodsInfo", b).data("storageInfo", {
id: b.locationId,
name: b.locationName
}).data("unitInfo", {
unitId: b.unitId,
name: b.unitName
}), e = Business.formatGoodsName(b)
};
return THISPAGE.$_barCodeInsert && THISPAGE.$_barCodeInsert.hasClass("active") ? Business.cacheManage.getGoodsInfoByBarCode(c, f, !0) : Business.cacheManage.getGoodsInfoByNumber(c, f, !0), e ? e : ($.dialog({
width: 775,
height: 510,
title: "选择商品",
content: "url:../settings/goods_batch",
data: {
skuMult: SYSTEM.enableAssistingProp,
skey: j.skey,
callback: function(a, b, c) {
"" === b && ($("#grid").jqGrid("addRowData", a, {}, "last"), j.newId = a + 1), setTimeout(function() {
$("#grid").jqGrid("editCell", c, 2, !0)
}, 10), j.calTotal()
}
},
init: function() {
j.skey = ""
},
lock: !0,
button: [{
name: "选中",
defClass: "ui_state_highlight fl",
focus: !0,
callback: function() {
return this.content.callback && this.content.callback(), !1
}
}, {
name: "选中并关闭",
defClass: "ui_state_highlight",
callback: function() {
return this.content.callback(), this.close(), !1
}
}, {
name: "关闭",
callback: function() {
return !0
}
}]
}), setTimeout(function() {
$("#grid").jqGrid("editCell", curRow, 2, !0), $("#grid").jqGrid("setCell", curRow, 2, "")
}, 10), " ")
}
},
afterSaveCell: function(a, b, c, d, e) {
if ("qty" == b) {
var f = $("#grid").jqGrid("getCell", a, e + 1);
if (!isNaN(parseFloat(f))) {
var g = $("#grid").jqGrid("setRowData", a, {
amount: parseFloat(c) * parseFloat(f)
});
g && THISPAGE.calTotal()
}
}
if ("price" == b) {
var h = $("#grid").jqGrid("getCell", a, e - 1);
if (!isNaN(parseFloat(h))) {
var g = $("#grid").jqGrid("setRowData", a, {
amount: parseFloat(c) * parseFloat(h)
});
g && THISPAGE.calTotal()
}
}
if ("amount" == b) {
var h = $("#grid").jqGrid("getCell", a, e - 2);
if (!isNaN(parseFloat(h))) {
var f = parseFloat(c) / parseFloat(h);
$("#grid").jqGrid("setRowData", a, {
price: f
})
}
THISPAGE.calTotal()
}
},
loadonce: !0,
resizeStop: function(a, b) {
j.mod_PageConfig.updatePageConfig("grid", ["width", j.mod_PageConfig.conf.grids.grid.defColModel[b - 1].name, a])
},
footerrow: !0,
userData: {
goods: "合计:",
qty: a.totalQty,
amount: a.totalAmount
},
userDataOnFooter: !0,
loadError: function(a, b) {
Public.tips({
type: 1,
content: "Type: " + b + "; Response: " + a.status + " " + a.statusText
})
}
}), $("#grid").jqGrid("setGridParam", {
cellEdit: !0
})
},
reloadData: function(a) {
function b() {
c.customerCombo.selectByValue(a.buId, !1), c.$_date.val(a.date), c.$_number.text(a.billNo), a.note && c.$_note.val(a.note), c.$_userName.html(a.userName)
}
$("#grid").clearGridData();
var c = this,
d = 8 - a.entries.length;
if (d > 0) for (var e = 0; d > e; e++) a.entries.push({});
"edit" === a.status ? ($("#grid").jqGrid("setGridParam", {
data: a.entries,
userData: {
qty: a.totalQty,
amount: a.totalAmount
},
cellEdit: !0,
datatype: "clientSide"
}).trigger("reloadGrid"), b(), this.editable || (this.customerCombo.enable(), this.$_date.removeAttr("disabled"), this.editable = !0)) : ($("#grid").jqGrid("setGridParam", {
url: "",
datatype: "json",
cellEdit: !1
}).trigger("reloadGrid"), b(), this.editable && (this.customerCombo.disable(), this.$_data.attr(disabled, "disabled"), this.editable = !1))
},
initCombo: function() {
this.goodsCombo = Business.goodsCombo($(".goodsAuto"), {
data: function() {
if (defaultPage.SYSTEM.goodsInfo) {
for (var a = [], b = 0; b < defaultPage.SYSTEM.goodsInfo.length; b++) {
var c = defaultPage.SYSTEM.goodsInfo[b];
c["delete"] || a.push(c)
}
return a
}
return "../basedata/inventory?action=list"
}
}), this.storageCombo = Business.billStorageCombo($(".storageAuto"))
},
addEvent: function() {
var a = this;
this.$_date.bind("keydown", function(a) {
13 === a.which && $("#grid").jqGrid("editCell", 1, 2, !0)
}).bind("focus", function() {
a.dateValue = $(this).val()
}).bind("blur", function() {
var b = /((^((1[8-9]\d{2})|([2-9]\d{3}))(-)(10|12|0?[13578])(-)(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(11|0?[469])(-)(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(0?2)(-)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)(-)(0?2)(-)(29)$)|(^([3579][26]00)(-)(0?2)(-)(29)$)|(^([1][89][0][48])(-)(0?2)(-)(29)$)|(^([2-9][0-9][0][48])(-)(0?2)(-)(29)$)|(^([1][89][2468][048])(-)(0?2)(-)(29)$)|(^([2-9][0-9][2468][048])(-)(0?2)(-)(29)$)|(^([1][89][13579][26])(-)(0?2)(-)(29)$)|(^([2-9][0-9][13579][26])(-)(0?2)(-)(29)$))/;
b.test($(this).val()) || (parent.Public.tips({
type: 2,
content: "日期格式有误!如:2012-08-08。"
}), $(this).val(a.dateValue))
}), $(".grid-wrap").on("click", ".ui-icon-triangle-1-s", function() {
var b = $(this).siblings();
setTimeout(function() {
b.hasClass("unitAuto") ? b.trigger("click") : (a.storageCombo.active = !0, a.storageCombo.doQuery())
}, 10)
}), Business.billsEvent(a), $(".wrapper").on("click", "#save", function(b) {
b.preventDefault();
var c = THISPAGE.getPostData();
c && ("edit" === originalData.stata && (c.id = originalData.id, c.stata = "edit"), Public.ajaxPost("../scm/invOi/addCADJ?action=addCADJ&type=cbtz", {
postData: JSON.stringify(c)
}, function(b) {
200 === b.status ? (originalData.id = b.data.id, a.$_toolBottom.html('新增保存打印'), parent.Public.tips({
content: "保存成功!"
})) : parent.Public.tips({
type: 1,
content: b.msg
})
}))
}), $(".wrapper").on("click", "#edit", function(a) {
if (a.preventDefault(), Business.verifyRight("CADJ_UPDATE")) {
var b = THISPAGE.getPostData();
b && Public.ajaxPost("../scm/invOi/updateCADJ?action=updateCADJ&type=cbtz", {
postData: JSON.stringify(b)
}, function(a) {
200 === a.status ? (originalData.id = a.data.id, parent.Public.tips({
content: "修改成功!"
})) : parent.Public.tips({
type: 1,
content: a.msg
})
})
}
}), $(".wrapper").on("click", "#savaAndAdd", function(b) {
b.preventDefault();
var c = THISPAGE.getPostData();
c && Public.ajaxPost("../scm/invOi/addNewCADJ?action=addNewCADJ&type=cbtz", {
postData: JSON.stringify(c)
}, function(b) {
if (200 === b.status) {
a.$_number.text(b.data.billNo), $("#grid").clearGridData(), $("#grid").clearGridData(!0);
for (var c = 1; 8 >= c; c++) $("#grid").jqGrid("addRowData", c, {});
a.newId = 9, a.$_note.val(""), parent.Public.tips({
content: "保存成功!"
})
} else parent.Public.tips({
type: 1,
content: b.msg
})
})
}), $(".wrapper").on("click", "#add", function(a) {
a.preventDefault(), Business.verifyRight("CADJ_ADD") && parent.tab.overrideSelectedTabItem({
tabid: "storage-adjustment",
text: "成本调整单",
url: "/scm/invOi.do?action=initOi&type=cbtz"
})
}), $(".wrapper").on("click", "#print", function(a) {
return Business.verifyRight("CADJ_PRINT") ? void 0 : void a.preventDefault()
}), $("#prev").click(function(b) {
return b.preventDefault(), $(this).hasClass("ui-btn-prev-dis") ? (parent.Public.tips({
type: 2,
content: "已经没有上一张了!"
}), !1) : (a.idPostion = a.idPostion - 1, 0 === a.idPostion && $(this).addClass("ui-btn-prev-dis"), loading = $.dialog.tips("数据加载中...", 1e3, "loading.gif", !0), Public.ajaxGet("../scm/invOi/updateCbtz?action=updateCbtz&type=cbtz", {
id: a.salesListIds[a.idPostion]
}, function(a) {
THISPAGE.reloadData(a.data), $("#next").removeClass("ui-btn-next-dis"), loading && loading.close()
}), void 0)
}), $("#next").click(function(b) {
return b.preventDefault(), $(this).hasClass("ui-btn-next-dis") ? (parent.Public.tips({
type: 2,
content: "已经没有下一张了!"
}), !1) : (a.idPostion = a.idPostion + 1, a.idLength === a.idPostion + 1 && $(this).addClass("ui-btn-next-dis"), loading = $.dialog.tips("数据加载中...", 1e3, "loading.gif", !0), Public.ajaxGet("../scm/invOi/updateCbtz?action=updateCbtz&type=cbtz", {
id: a.salesListIds[a.idPostion]
}, function(a) {
THISPAGE.reloadData(a.data), $("#prev").removeClass("ui-btn-prev-dis"), loading && loading.close()
}), void 0)
}), $("#config").click(function() {
a.mod_PageConfig.config()
}), $(window).resize(function() {
Public.autoGrid($("#grid"))
})
},
resetData: function() {
var a = this;
$("#grid").clearGridData();
for (var b = 1; 8 >= b; b++) $("#grid").jqGrid("addRowData", b, {}), $("#grid").jqGrid("footerData", "set", {
qty: 0,
amount: 0
});
a.$_note.val(""), a.$_discountRate.val(originalData.disRate), a.$_deduction.val(originalData.disAmount), a.$_discount.val(originalData.amount), a.$_payment.val(originalData.rpAmount), a.$_arrears.val(originalData.arrears)
},
calTotal: function() {
for (var a = $("#grid").jqGrid("getDataIDs"), b = 0, c = 0, d = 0, e = a.length; e > d; d++) {
var f = a[d],
g = $("#grid").jqGrid("getRowData", f);
g.qty && (b += parseFloat(g.qty)), g.amount && (c += parseFloat(g.amount))
}
$("#grid").jqGrid("footerData", "set", {
qty: b,
amount: c
})
},
_getEntriesData: function() {
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);
if ("" !== g.goods) {
var h = $("#" + f).data("goodsInfo"),
i = $("#" + f).data("storageInfo");
e = {
invId: h.id,
invNumber: h.number,
invName: h.name,
invSpec: h.spec,
unitId: h.unitId,
mainUnit: h.unitName,
skuId: h.skuId || -1,
skuName: h.skuName || "",
qty: g.qty,
price: g.price,
amount: g.amount,
description: g.description,
locationId: i.id,
locationName: i.name
}, a.push(e)
}
}
return a
},
getPostData: function() {
var a = this;
null !== curRow && null !== curCol && ($("#grid").jqGrid("saveCell", curRow, curCol), curRow = null, curCol = null);
var b = this._getEntriesData();
if (b.length > 0) {
var c = $.trim(a.$_note.val());
a.calTotal();
var d = {
id: originalData.id,
date: $.trim(a.$_date.val()),
billNo: $.trim(a.$_number.text()),
entries: b,
totalAmount: $("#grid").jqGrid("footerData", "get").amount.replace(/,/g, ""),
description: c === a.$_note[0].defaultValue ? "" : c
};
return d
}
return parent.Public.tips({
type: 2,
content: "商品信息不能为空!"
}), $("#grid").jqGrid("editCell", 1, 2, !0), !1
}
},
hasLoaded = !1,
originalData;
$(function() {
urlParam.id ? hasLoaded || Public.ajaxGet("../scm/invOi/updateCbtz?action=updateCbtz&type=cbtz", {
id: urlParam.id
}, function(a) {
200 === a.status ? (originalData = a.data, THISPAGE.init(a.data), hasLoaded = !0) : parent.Public.tips({
type: 1,
content: msg
})
}) : (originalData = {
id: -1,
status: "add",
customer: 0,
transType: "150601",
entries: [{
id: "1"
}, {
id: "2"
}, {
id: "3"
}, {
id: "4"
}, {
id: "5"
}, {
id: "6"
}, {
id: "7"
}, {
id: "8"
}],
totalQty: 0,
totalAmount: 0,
disRate: 0,
disAmount: 0,
amount: "0.00",
rpAmount: "0.00",
arrears: "0.00"
}, THISPAGE.init(originalData))
});