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

423 lines
15 KiB
JavaScript
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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('<a id="add" class="ui-btn ui-btn-sp mrb">新增</a><a href="../scm/ori/toPdf?action=toPdf&transType=153402" target="_blank" id="print" class="ui-btn mrb">打印</a><a id="edit" class="ui-btn mrb">保存</a>') : this.$_toolBottom.html('<a id="add" class="ui-btn ui-btn-sp mrb">新增</a><a href="../scm/ori/toPdf?action=toPdf&transType=153402" target="_blank" id="print" class="ui-btn mrb">打印</a><a class="ui-btn-prev mrb" id="prev" title="上一张"><b></b></a><a class="ui-btn-next" id="next" title="下一张"><b></b></a>'), 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('<a id="savaAndAdd" class="ui-btn ui-btn-sp mrb">保存并新增</a><a id="save" class="ui-btn">保存</a>'), 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 : "&#160;"
}
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('<a id="add" class="ui-btn ui-btn-sp mrb">新增</a><a href="../scm/ori/toPdf?action=toPdf&transType=153402" target="_blank" id="print" class="ui-btn mrb">打印</a><a id="edit" class="ui-btn mrb">保存</a>'), 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))
});