From 707eb037cc41bf3c0a5ff7f17325ca11a6ed9919 Mon Sep 17 00:00:00 2001 From: Iki Date: Fri, 15 May 2026 15:20:09 +0700 Subject: [PATCH] add filtering pr --- adapter/pradapter.js | 69 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 53 insertions(+), 16 deletions(-) diff --git a/adapter/pradapter.js b/adapter/pradapter.js index 0c50d9b..b91dfa6 100644 --- a/adapter/pradapter.js +++ b/adapter/pradapter.js @@ -414,7 +414,9 @@ class PrAdapter extends Adapter { let offset = req.body.offset; let keyword = req.body.keyword; let nik = req.body.nik; - let status = req.body.status; + let status = req.body.status ?? "-1"; + let division = req.body.division ?? ""; + let sort = req.body.sort ?? "latest"; let swherenik = ""; @@ -424,6 +426,13 @@ class PrAdapter extends Adapter { } } + let sdivision = ""; + if (division && division.trim() !== "") { + sdivision = " and v.division = '" + division + "'"; + } + + let sorder = sort === "past" ? "id asc" : "id desc"; + let qryBase = "select v.*, p.currency_id, p.rate_snapshot, c.currency AS currency_code, c.symbol AS currency_symbol "; qryBase += "from vw_pr v "; qryBase += "left join tbl_pr p on p._idx = v.id "; @@ -434,8 +443,13 @@ class PrAdapter extends Adapter { keyword + "%' or trim(v.prnumber) like '%" + keyword + + "%' or trim(v.justificationnumber) like '%" + + keyword + "%') "; - qry += "and " + swherenik + "v.status in(" + status + ") "; + if (status !== "-1") { + qry += "and v.status in(" + status + ") "; + } + qry += "and " + swherenik + sdivision.substring(5); // qry += "order by id asc limit " + offset + ", " + limit; // console.log("qry paging => ", qry); @@ -463,22 +477,21 @@ class PrAdapter extends Adapter { keyword + "%' or trim(v.prnumber) like '%" + keyword + + "%' or trim(v.justificationnumber) like '%" + + keyword + "%') "; + if (status !== "-1") { + qry += "and v.status in(" + status + ") "; + } + if (division && division.trim() !== "") { + qry += "and v.division = '" + division + "' "; + } if (nik) { if (!proc_users.includes(nik)) { qry += 'and (v.iby="' + nik + '" or v.nikapproval="' + nik + '")'; } } - qry = - qry + - "and " + - swherenik + - " v.status in(" + - status + - ") order by id asc limit " + - offset + - ", " + - limit; + qry = qry + " order by " + sorder + " limit " + offset + ", " + limit; // console.log("qry => ", qry); @@ -668,12 +681,22 @@ class PrAdapter extends Adapter { let offset = req.query.offset; let keyword = req.query.keyword; let nik = req.query.nik; + let status = req.query.status ?? "0,2"; + let division = req.query.division ?? ""; + let sort = req.query.sort ?? "latest"; let swherenik = "and iby='" + nik + "'"; if (!proc_users.includes(nik)) { swherenik = ""; } + let sdivision = ""; + if (division && division.trim() !== "") { + sdivision = " and division = '" + division + "'"; + } + + let sorder = sort === "past" ? "id asc" : "id desc"; + // let qry = "select * from vw_prmanagement "; // qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') "; // qry = qry +swherenik+" order by id asc limit " + offset + ", " + limit; @@ -684,7 +707,13 @@ class PrAdapter extends Adapter { keyword + "%' or trim(prnumber) like '%" + keyword + - "%') "; + "%' or trim(justificationnumber) like '%" + + keyword + + "%') and status in(" + + status + + ")" + + sdivision + + " "; // qry = qry +swherenik+" order by id asc limit " + offset + ", " + limit; // console.log(qry); @@ -708,12 +737,20 @@ class PrAdapter extends Adapter { qry = "select * from vw_prmanagement "; qry = qry + - "where status >= 2 and (trim(trxidpr) like '%" + + "where (trim(trxidpr) like '%" + keyword + "%' or trim(prnumber) like '%" + keyword + - "%') "; - qry = qry + swherenik + " order by id asc limit " + offset + ", " + limit; + "%' or trim(justificationnumber) like '%" + + keyword + + "%') and status in(" + + status + + ")" + + sdivision; + if (swherenik.trim() !== "") { + qry += " " + swherenik; + } + qry = qry + " order by " + sorder + " limit " + offset + ", " + limit; console.log('qry', qry) db.query(qry, [], function (err, result, fields) {