var curRow, curCol, curArrears, loading, urlParam = Public.urlParam(), SYSTEM = parent.SYSTEM, hiddenAmount = !1, requiredMoney = SYSTEM.requiredMoney, qtyPlaces = Number(parent.SYSTEM.qtyPlaces), pricePlaces = Number(parent.SYSTEM.pricePlaces), amountPlaces = Number(parent.SYSTEM.amountPlaces), hasLoaded = !1, originalData, THISPAGE = { init: function(a) { this.mod_PageConfig = Public.mod_PageConfig.init("other-expense"), SYSTEM.isAdmin !== !1 || SYSTEM.rights.AMOUNT_COSTAMOUNT || (hiddenAmount = !0), this.loadGrid(a), this.initDom(a), this.initCombo(), this.addEvent(), THISPAGE.calTotal() }, initDom: function(a) { this.$_customer = $("#customer"), this.$_date = $("#date").val(SYSTEM.endDate), this.$_number = $("#number"), this.$_note = $("#note"), this.$_toolTop = $("#toolTop"), this.$_toolBottom = $("#toolBottom"), this.$_amount = $("#amount").val(a.amount || 0), this.$_accountInfo = $("#accountInfo"), this.$_userName = $("#userName"), this.customerCombo = Business.billSupplierCombo($("#customer"), { defaultSelected: 0, emptyOptions: !0 }), 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: "QTZC", 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.$_customer.data("contactInfo", { id: a.buId, name: a.contactName }), this.customerCombo.input.val(a.contactName), this.$_number.text(a.billNo), this.$_date.val(a.date), this.$_note.val(a.description), $("#grid").jqGrid("footerData", "set", { qty: a.totalQty, amount: a.totalAmount }), "edit" === a.status ? this.$_toolBottom.html('新增打印保存') : this.$_toolBottom.html('新增打印'), 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 || "")), requiredMoney && ($("#accountWrap").show(), SYSTEM.isAdmin !== !1 || SYSTEM.rights.SettAcct_QUERY ? this.accountCombo = Business.accountCombo($("#account"), { width: 200, height: 300, defaultSelected: a.accId ? ["id", a.accId] : 0, callback: { onChange: function(a) { if (-1 === this.getValue()); else { var b = []; b.push({ accId: this.getValue(), account: "", amount: THISPAGE.$_amount.val(), wayId: 0, way: "", settlement: "" }), THISPAGE.$_accountInfo.data("accountInfo", b).hide() } } } }) : this.accountCombo = Business.accountCombo($("#account"), { width: 200, height: 300, data: [], editable: !1, disabled: !0, addOptions: { text: "(没有账户管理权限)", value: 0 } })) }, loadGrid: function(a) { function b(a, b, c) { return a ? a : c.invNumber ? c.invSpec ? c.invNumber + " " + c.invName + "_" + c.invSpec : c.invNumber + " " + c.invName : " " } function c(a, b) { var c = $(".categoryAuto")[0]; return c } function d(a, b, c) { if ("get" === b) { if ("" !== $(".categoryAuto").getCombo().getValue()) return $(a).val(); var d = $(a).parents("tr"); return d.removeData("categoryInfo"), "" } "set" === b && $("input", a).val(c) } function e() { $("#initCombo").append($(".categoryAuto").val("").unbind("focus.once")) } var f = this; if (a.id) { var g = 8 - a.entries.length; if (g > 0) for (var h = 0; g > h; h++) a.entries.push({}) } f.newId = 9; var i = [{ name: "operating", label: " ", width: 40, fixed: !0, formatter: Public.billsOper, align: "center" }, { name: "categoryName", label: "支出类别", width: 200, title: !0, classes: "ui-ellipsis", formatter: b, editable: !0, edittype: "custom", editoptions: { custom_element: c, custom_value: d, handle: e, trigger: "ui-icon-triangle-1-s" } }, { name: "categoryId", label: "支出类别ID", hidden: !0 }, { name: "amount", label: "金额", width: 120, align: "right", formatter: "number", formatoptions: { decimalPlaces: amountPlaces }, editable: !0 }, { name: "description", label: "备注", width: 500, title: !0, editable: !0 }]; f.mod_PageConfig.gridReg("grid", i), i = f.mod_PageConfig.conf.grids.grid.colModel, $("#grid").jqGrid({ data: a.entries, datatype: "clientSide", autowidth: !0, height: "100%", rownumbers: !0, gridview: !0, onselectrow: !1, colModel: i, 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; f.newId = c + 1; for (var d = 0; c > d; d++) { var e = d + 1, g = b[d]; if ($.isEmptyObject(b[d])) break; $("#" + e).data("categoryInfo", { id: g.categoryId, name: g.categoryName }) } } }, gridComplete: function() {}, afterEditCell: function(a, b, c, d, e) { "categoryName" === b && ($("#" + d + "_categoryName", "#grid").val(c), THISPAGE.categoryCombo.selectByText(c), THISPAGE.curID = a) }, formatCell: function(a, b, c, d, e) {}, beforeSubmitCell: function(a, b, c, d, e) {}, afterSaveCell: function(a, b, c, d, e) { "amount" == b && THISPAGE.calTotal() }, resizeStop: function(a, b) { f.mod_PageConfig.setGridWidthByIndex(a, b, "grid") }, loadonce: !0, footerrow: !0, userData: { categoryName: "合计:", amount: a.totalAmount }, userDataOnFooter: !0, loadError: function(a, b, c) { Public.tips({ type: 1, content: "Type: " + b + "; Response: " + a.status + " " + a.statusText }) } }), $("#grid").jqGrid("setGridParam", { cellEdit: !0 }) }, reloadData: function(a) { $("#grid").clearGridData(); var b = 8 - a.entries.length; if (b > 0) for (var c = 0; b > c; c++) a.entries.push({}) }, initCombo: function() { var a = "paccttype"; this.categoryCombo = Business.categoryCombo($(".categoryAuto"), a) }, addEvent: function() { var a = this; this.customerCombo.input.enterKey(), this.$_date.bind("keydown", function(a) { 13 === a.which && $("#grid").jqGrid("editCell", 1, 2, !0) }).bind("focus", function(b) { a.dateValue = $(this).val() }).bind("blur", function(b) { var c = /((^((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)$))/; c.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(b) { b.stopPropagation(), a.categoryCombo.doQuery() }), Business.billsEvent(a, "other-expense"), $(".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/ori/addExp?action=addExp", { postData: JSON.stringify(c) }, function(b) { 200 === b.status ? (originalData.id = b.data.id, urlParam.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("QTZC_UPDATE")) { var b = THISPAGE.getPostData(); b && Public.ajaxPost("../scm/ori/updateExp?action=updateExp", { postData: JSON.stringify(b) }, function(a) { 200 === a.status ? (originalData.id = a.data.id, urlParam.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/ori/addNewExp?action=addNewExp", { 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("QTZC_ADD") && parent.tab.overrideSelectedTabItem({ tabid: "money-otherExpense", text: "其他支出单", url: "../scm/ori/initExp?action=initExp" }) }), $(".wrapper").on("click", "#print", function(a) { return Business.verifyRight("QTZC_PRINT") ? void(this.href += "&id=" + originalData.id) : 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/ori/updateExp?action=updateExp", { 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/ori/updateExp?action=updateExp", { 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(b) { a.mod_PageConfig.config() }), $(window).resize(function(a) { 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.$_amount.val(0) }, calTotal: function() { for (var a = $("#grid").jqGrid("getDataIDs"), b = 0, c = 0, d = a.length; d > c; c++) { var e = a[c], f = $("#grid").jqGrid("getRowData", e); f.amount && (b += parseFloat(f.amount)) } $("#grid").jqGrid("footerData", "set", { amount: b }), THISPAGE.$_amount.val(b) }, _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.categoryName && "" !== g.amount) { var h = $("#" + f).data("categoryInfo"); e = { categoryId: h.id, amount: g.amount, description: g.description }, a.push(e) } } return a }, getPostData: function() { var a = this, b = this; null !== curRow && null !== curCol && ($("#grid").jqGrid("saveCell", curRow, curCol), curRow = null, curCol = null); var c = b.$_customer.find("input"); if ("" === c.val() || "(空)" === c.val()) { var d = {}; d.id = 0, d.name = "(空)", b.$_customer.removeData("contactInfo") } else { var d = b.$_customer.data("contactInfo"); if (null === d) return setTimeout(function() { c.focus().select() }, 15), parent.Public.tips({ type: 2, content: "当前客户不存在!" }), !1 } var e = this._getEntriesData(); if (e.length > 0) { a.calTotal(); var f = { id: originalData.id, buId: d.id, contactName: d.name, date: $.trim(a.$_date.val()), billNo: $.trim(a.$_number.text()), entries: e, totalAmount: $("#grid").jqGrid("footerData", "get").amount.replace(/,/g, "") }; return requiredMoney && (f.accId = a.accountCombo.getValue(), f.accId <= 0) ? (parent.Public.tips({ type: 2, content: "请检查账户信息是否正确!" }), !1) : f } return parent.Public.tips({ type: 2, content: "至少保存一条有效分录数据!" }), $("#grid").jqGrid("editCell", 1, 2, !0), !1 } }; $(function() { urlParam.id ? hasLoaded || Public.ajaxGet("../scm/ori/getExpDetail?action=getExpDetail", { 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, 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)) });