update PO

This commit is contained in:
Iki
2026-06-16 14:34:58 +09:00
parent d7c95e4cb5
commit dac2ac881e
3 changed files with 201 additions and 89 deletions

View File

@ -1422,30 +1422,24 @@ class PoAdapter extends Adapter {
var nik = req.body.nik;
var status = req.body.status;
var statusdescription = req.body.statusdescription;
const poNumber = String(posapnumber || "").trim();
let setvalues = "";
if (!posapnumber || posapnumber == "") {
posapnumber = "000";
}
// var setvalues="p.ponumber='"+posapnumber+"',p.status='"+status+"',p.statusdescription='"+statusdescription+"',po.status='"+status+"',po.statusdescription='"+statusdescription+"',";
var setvalues =
"p.ponumber='" +
posapnumber +
"',p.status='" +
status +
"',p.statusdescription='" +
statusdescription +
"',";
setvalues +=
"po.ponumber='" +
posapnumber +
"',po.status='" +
status +
"',po.statusdescription='" +
statusdescription +
"',";
// var setvalues="ponumber='"+posapnumber+"',status='"+status+"',statusdescription='"+statusdescription+"',";
if (!posapnumber || posapnumber == "" || posapnumber == "000") {
setvalues = "";
if (poNumber && poNumber !== "000") {
setvalues =
"p.ponumber='" +
poNumber +
"',p.status='" +
status +
"',p.statusdescription='" +
statusdescription +
"',po.ponumber='" +
poNumber +
"',po.status='" +
status +
"',po.statusdescription='" +
statusdescription +
"',";
}
var qry =
"update tbl_po p, tbl_poboq po set " +
@ -1482,6 +1476,20 @@ class PoAdapter extends Adapter {
} else {
apires.success = true;
apires.data = JSON.parse(JSON.stringify(result1));
if (poNumber && poNumber !== "000") {
if (apires.data.length === 0) {
apires.data = String(idxpoboq)
.split(",")
.map((id) => ({
idxpoboq: Number(id) || id,
ponumber: poNumber,
}));
} else {
apires.data.forEach((row) => {
if (!row.ponumber) row.ponumber = poNumber;
});
}
}
callback(null, apires);
}
});
@ -1690,16 +1698,33 @@ class PoAdapter extends Adapter {
let offset = req.query.offset;
let keyword = req.query.keyword;
let nik = req.body.nik;
let division = req.query.division ?? "";
let sort = req.query.sort ?? "latest";
let sorder = sort === "past" ? "v._idx asc" : "v._idx desc";
let qryBase = "select v.*, po.currency_id, po.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol ";
qryBase += "from vw_po v left join tbl_po po on po._idx = v._idx ";
qryBase += "left join tbl_currency c on c._idx = po.currency_id ";
qryBase += "left join tbl_justification j on j._idx = v.idxjustification ";
let keywordFilter =
"(trim(v.ponumber) like '%" +
keyword +
"%' or trim(v.prnumber) like '%" +
keyword +
"%' or trim(v.justificationnumber) like '%" +
keyword +
"%') ";
let divisionFilter = "";
if (division && division.trim() !== "") {
divisionFilter = "and j.division = '" + division + "' ";
}
let qry = qryBase;
qry =
qry +
"where trim(v.ponumber) like '%" +
keyword +
"%' and v.ponumber<>'000' and v.status in (2,3,4,5,6)";
"where " +
keywordFilter +
"and v.ponumber<>'000' and v.status in (2,3,4,5,6) " +
divisionFilter;
if (nik) {
if (!proc_users.includes(nik)) {
@ -1727,13 +1752,18 @@ class PoAdapter extends Adapter {
"totalrows": result.length,
});
qry = qryBase;
qry = qry + "where trim(v.ponumber) like '%" + keyword + "%' and v.ponumber<>'000' and v.status in (2,3,4,5,6)";
qry =
qry +
"where " +
keywordFilter +
"and v.ponumber<>'000' and v.status in (2,3,4,5,6) " +
divisionFilter;
if (nik) {
if (!proc_users.includes(nik)) {
qry += ' and (iby="' + nik + ' or nikapproval="' + nik + '") ';
}
}
qry = qry + "order by v._idx asc limit " + offset + ", " + limit;
qry = qry + "order by " + sorder + " limit " + offset + ", " + limit;
db.query(qry, [], function (err, result, fields) {
if (err) {
apires.meta["message"] = err.toString();
@ -1770,17 +1800,35 @@ class PoAdapter extends Adapter {
let offset = req.query.offset;
let keyword = req.query.keyword;
let nik = req.query.nik;
// let nik = req.body.nik;
let division = req.query.division ?? "";
let sort = req.query.sort ?? "latest";
let sorder = sort === "past" ? "v._idx asc" : "v._idx desc";
let qryBase = "select v.*, po.currency_id, po.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol ";
qryBase += "from vw_po v left join tbl_po po on po._idx = v._idx ";
qryBase += "left join tbl_currency c on c._idx = po.currency_id ";
qryBase += "left join tbl_justification j on j._idx = v.idxjustification ";
let keywordFilter =
"(trim(v.ponumber) like '%" +
keyword +
"%' or trim(v.prnumber) like '%" +
keyword +
"%' or trim(v.identifyprojectnumber) like '%" +
keyword +
"%' or trim(v.podescription) like '%" +
keyword +
"%') ";
let divisionFilter = "";
if (division && division.trim() !== "") {
divisionFilter = "and j.division = '" + division + "' ";
}
let qry = qryBase;
qry =
qry +
"where trim(v.ponumber) like '%" +
keyword +
"%' and v.status in(1,2,3,4,5,6) and v.ponumber<>'000' and v.ponumber<>'' ";
"where " +
keywordFilter +
"and v.status in(1,2,3,4,5,6) and v.ponumber<>'000' and v.ponumber<>'' " +
divisionFilter;
if (nik) {
if (!proc_users.includes(nik)) {
@ -1808,16 +1856,17 @@ class PoAdapter extends Adapter {
qry = qryBase;
qry =
qry +
"where trim(v.ponumber) like '%" +
keyword +
"%' and v.status in(1,2,3,4,5,6) and v.ponumber<>'000' and v.ponumber<>'' ";
"where " +
keywordFilter +
"and v.status in(1,2,3,4,5,6) and v.ponumber<>'000' and v.ponumber<>'' " +
divisionFilter;
if (nik) {
if (!proc_users.includes(nik)) {
qry += 'and (iby="' + nik + ' or nikapproval="' + nik + '") ';
}
}
qry = qry + "order by v._idx asc limit " + offset + ", " + limit;
qry = qry + "order by " + sorder + " limit " + offset + ", " + limit;
db.query(qry, [], function (err, result, fields) {
if (err) {
apires.meta["message"] = err.toString();
@ -2315,10 +2364,24 @@ class PoAdapter extends Adapter {
let limit = req.query.limit;
let offset = req.query.offset;
let keyword = req.query.keyword;
// let nik = req.body.nik;
let division = req.query.division ?? "";
let sort = req.query.sort ?? "latest";
let sorder = sort === "past" ? "a._idx asc" : "a._idx desc";
let qry = "select * from vw_poadjlist ";
qry = qry + "where trim(ponumber) like '%" + keyword + "%' ";
let qryBase = "select a.* from vw_poadjlist a left join tbl_justification j on j._idx = a.idxjustification ";
let keywordFilter =
"(trim(a.ponumber) like '%" +
keyword +
"%' or trim(a.identifyprojectnumber) like '%" +
keyword +
"%' or trim(a.prnumber) like '%" +
keyword +
"%') ";
let divisionFilter = "";
if (division && division.trim() !== "") {
divisionFilter = "and j.division = '" + division + "' ";
}
let qry = qryBase + "where " + keywordFilter + divisionFilter;
// qry = qry +"order by _idx asc limit " + offset + ", " + limit;
// console.log(qry);
@ -2339,9 +2402,8 @@ class PoAdapter extends Adapter {
"totalpage": pagination,
"totalrows": result.length,
});
qry = "select * from vw_poadjlist ";
qry = qry + "where trim(ponumber) like '%" + keyword + "%' ";
qry = qry + "order by _idx asc limit " + offset + ", " + limit;
qry = qryBase + "where " + keywordFilter + divisionFilter;
qry = qry + "order by " + sorder + " limit " + offset + ", " + limit;
db.query(qry, [], function (err, result, fields) {
if (err) {
apires.meta["message"] = err.toString();