This commit is contained in:
Iki
2026-06-18 17:28:07 +09:00
parent 70b64c0a45
commit fe5f50702b
4 changed files with 311 additions and 253 deletions

View File

@ -13,16 +13,29 @@ class BastAdapter extends Adapter {
try {
let limit = req.query.limit;
let offset = req.query.offset;
let keyword = req.query.keyword;
let keyword = req.query.keyword ?? "";
let division = req.query.division ?? "";
let sort = req.query.sort ?? "latest";
let sorder = sort === "past" ? "v.idxbudget asc" : "v.idxbudget desc";
let qry = "select v.*, COALESCE(c.currency, 'USD') AS currency_code, COALESCE(c.symbol, '$') AS currency_symbol, pr.rate_snapshot AS pr_rate_snapshot " +
"from vw_bastactivitylist v " +
"left join tbl_pr pr on pr._idx = v.idxpr " +
"left join tbl_currency c on c._idx = pr.currency_id ";
qry = qry + "where v.activityname like '%" + keyword + "%' ";
qry = qry + "order by v.idxbudget asc limit " + offset + ", " + limit;
let qryBase =
"select v.*, COALESCE(c.currency, 'USD') AS currency_code, COALESCE(c.symbol, '$') AS currency_symbol, pr.rate_snapshot AS pr_rate_snapshot ";
qryBase += "from vw_bastactivitylist v ";
qryBase += "left join tbl_pr pr on pr._idx = v.idxpr ";
qryBase += "left join tbl_currency c on c._idx = pr.currency_id ";
qryBase += "left join tbl_justification j on j._idx = pr.idxjustification ";
let keywordFilter =
"(trim(v.activityname) like '%" +
keyword +
"%' or trim(v.prnumber) like '%" +
keyword +
"%') ";
let divisionFilter = "";
if (division && division.trim() !== "") {
divisionFilter = "and j.division = '" + division + "' ";
}
let qry = qryBase + "where " + keywordFilter + divisionFilter;
// console.log(qry);
db.query(qry, [], function (err, result, fields) {
if (err) {
apires.meta["message"] = err.toString();
@ -34,21 +47,13 @@ class BastAdapter extends Adapter {
if (!Number.isInteger(pagination)) {
pagination = Math.floor(result.length / limit) + 1;
}
// let pagination = Adapter.getPagination(result.length, limit);
apires.success = true;
apires.data.push({
"totalpage": pagination,
"totalrows": result.length,
});
qry = "select v.*, COALESCE(c.currency, 'USD') AS currency_code, COALESCE(c.symbol, '$') AS currency_symbol, pr.rate_snapshot AS pr_rate_snapshot " +
"from vw_bastactivitylist v " +
"left join tbl_pr pr on pr._idx = v.idxpr " +
"left join tbl_currency c on c._idx = pr.currency_id ";
qry = qry + "where v.activityname like '%" + keyword + "%' ";
qry = qry + "order by v.idxbudget asc limit " + offset + ", " + limit;
// qry = "select * from vw_basthandoverlist ";
// qry = qry + "where bastnumber 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();
@ -80,19 +85,33 @@ class BastAdapter extends Adapter {
try {
let limit = req.query.limit;
let offset = req.query.offset;
let keyword = req.query.keyword;
let keyword = req.query.keyword ?? "";
let division = req.query.division ?? "";
let sort = req.query.sort ?? "latest";
let sorder = sort === "past" ? "v._idx asc" : "v._idx desc";
// let qry = "select * from vw_bastactivitylist ";
// qry = qry + "where activityname like '%" + keyword + "%' ";
// qry = qry + "order by idxbudget asc limit " + offset + ", " + limit;
let qry = "select v.*, COALESCE(c.currency, 'USD') AS currency_code, COALESCE(c.symbol, '$') AS currency_symbol, po.rate_snapshot " +
"from vw_basthandoverlist v " +
"left join tbl_po po on po._idx = v.idxpo " +
"left join tbl_currency c on c._idx = po.currency_id ";
qry = qry + "where v.bastnumber like '%" + keyword + "%' ";
qry = qry + "order by v._idx asc";
let qryBase =
"select v.*, COALESCE(c.currency, 'USD') AS currency_code, COALESCE(c.symbol, '$') AS currency_symbol, po.rate_snapshot ";
qryBase += "from vw_basthandoverlist v ";
qryBase += "left join tbl_po po on po._idx = v.idxpo ";
qryBase += "left join tbl_currency c on c._idx = po.currency_id ";
qryBase += "left join tbl_justification j on j._idx = po.idxjustification ";
let keywordFilter =
"(trim(v.bastnumber) like '%" +
keyword +
"%' or trim(v.ponumber) like '%" +
keyword +
"%' or trim(v.vendorname) like '%" +
keyword +
"%' or trim(v.description) like '%" +
keyword +
"%') ";
let divisionFilter = "";
if (division && division.trim() !== "") {
divisionFilter = "and j.division = '" + division + "' ";
}
let qry = qryBase + "where " + keywordFilter + divisionFilter;
// console.log(qry);
db.query(qry, [], function (err, result, fields) {
if (err) {
apires.meta["message"] = err.toString();
@ -104,19 +123,14 @@ class BastAdapter extends Adapter {
if (!Number.isInteger(pagination)) {
pagination = Math.floor(result.length / limit) + 1;
}
// let pagination = Adapter.getPagination(result.length, limit);
apires.success = true;
apires.data.push({
"totalpage": pagination,
"totalrows": result.length,
});
qry = "select v.*, COALESCE(c.currency, 'USD') AS currency_code, COALESCE(c.symbol, '$') AS currency_symbol, po.rate_snapshot " +
"from vw_basthandoverlist v " +
"left join tbl_po po on po._idx = v.idxpo " +
"left join tbl_currency c on c._idx = po.currency_id ";
qry = qry + "where v.bastnumber like '%" + keyword + "%' ";
qry = qry + "order by v._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();

View File

@ -13,16 +13,24 @@ class FinanceAdapter extends Adapter{
try {
let limit = req.query.limit;
let offset = req.query.offset;
let keyword = req.query.keyword;
let qry = "select v.*, COALESCE(c.currency, 'USD') AS currency_code, COALESCE(c.symbol, '$') AS currency_symbol, po.rate_snapshot AS po_rate_snapshot ";
qry += "from vw_popaylist v ";
qry += "left join tbl_po po on po._idx = v.idxpo ";
qry += "left join tbl_currency c on c._idx = po.currency_id ";
qry += "where v.podescription like '%" + keyword + "%' ";
// qry += "order by v.idxpo asc limit " + offset + ", " + limit;
// console.log(qry);
let keyword = req.query.keyword ?? "";
let division = req.query.division ?? "";
let sort = req.query.sort ?? "latest";
let sorder = sort === "past" ? "v.idxpo asc" : "v.idxpo desc";
let qryBase = "select v.*, COALESCE(c.currency, 'USD') AS currency_code, COALESCE(c.symbol, '$') AS currency_symbol, po.rate_snapshot AS po_rate_snapshot ";
qryBase += "from vw_popaylist v ";
qryBase += "left join tbl_po po on po._idx = v.idxpo ";
qryBase += "left join tbl_currency c on c._idx = po.currency_id ";
qryBase += "left join tbl_justification j on j._idx = po.idxjustification ";
let keywordFilter =
"(trim(v.podescription) like '%" + keyword + "%' or trim(v.ponumber) like '%" + keyword + "%' or trim(v.prnumber) like '%" + keyword + "%' or trim(v.vendorname) like '%" + keyword + "%' or trim(v.sp3number) like '%" + keyword + "%') ";
let divisionFilter = "";
if (division && division.trim() !== "") {
divisionFilter = "and j.division = '" + division + "' ";
}
let qry = qryBase + "where " + keywordFilter + divisionFilter;
db.query(qry,[],function(err,result,fields){
if(err){
apires.meta['message'] = err.toString();
@ -36,18 +44,13 @@ class FinanceAdapter extends Adapter{
if(!Number.isInteger(pagination)){
pagination=(Math.floor(result.length / limit))+1;
}
// let pagination = Adapter.getPagination(result.length, limit);
apires.success = true;
apires.data.push({
"totalpage": pagination,
"totalrows": result.length
});
qry = "select v.*, COALESCE(c.currency, 'USD') AS currency_code, COALESCE(c.symbol, '$') AS currency_symbol, po.rate_snapshot AS po_rate_snapshot ";
qry += "from vw_popaylist v ";
qry += "left join tbl_po po on po._idx = v.idxpo ";
qry += "left join tbl_currency c on c._idx = po.currency_id ";
qry += "where v.podescription like '%" + keyword + "%' ";
qry += "order by v.idxpo asc limit " + offset + ", " + limit;
qry = qryBase + "where " + keywordFilter + divisionFilter;
qry += "order by " + sorder + " limit " + offset + ", " + limit;
db.query(qry,[],function(err,result,fields){
if(err){
apires.meta['message'] = err.toString();
@ -329,20 +332,24 @@ class FinanceAdapter extends Adapter{
try {
let limit = req.query.limit;
let offset = req.query.offset;
let keyword = req.query.keyword;
let keyword = req.query.keyword ?? "";
let division = req.query.division ?? "";
let sort = req.query.sort ?? "latest";
let sorder = sort === "past" ? "v.idxpo asc" : "v.idxpo desc";
// let qry = "select * from vw_financelist ";
// qry = qry + "where podescription like '%" + keyword + "%' ";
// qry = qry + "order by idxpo asc limit " + offset + ", " + limit;
let qryBase = "select v.*, COALESCE(c.currency, 'USD') AS currency_code, COALESCE(c.symbol, '$') AS currency_symbol, po.rate_snapshot AS po_rate_snapshot ";
qryBase += "from vw_financelist v ";
qryBase += "left join tbl_po po on po._idx = v.idxpo ";
qryBase += "left join tbl_currency c on c._idx = po.currency_id ";
qryBase += "left join tbl_justification j on j._idx = po.idxjustification ";
let keywordFilter =
"(trim(v.podescription) like '%" + keyword + "%' or trim(v.ponumber) like '%" + keyword + "%' or trim(v.prnumber) like '%" + keyword + "%' or trim(v.vendorname) like '%" + keyword + "%') ";
let divisionFilter = "";
if (division && division.trim() !== "") {
divisionFilter = "and j.division = '" + division + "' ";
}
let qry = qryBase + "where " + keywordFilter + divisionFilter;
let qry = "select v.*, COALESCE(c.currency, 'USD') AS currency_code, COALESCE(c.symbol, '$') AS currency_symbol, po.rate_snapshot AS po_rate_snapshot ";
qry += "from vw_financelist v ";
qry += "left join tbl_po po on po._idx = v.idxpo ";
qry += "left join tbl_currency c on c._idx = po.currency_id ";
qry += "where v.podescription like '%" + keyword + "%' ";
qry += "order by v.idxpo asc";
// console.log(qry);
db.query(qry,[],function(err,result,fields){
if(err){
apires.meta['message'] = err.toString();
@ -356,18 +363,13 @@ class FinanceAdapter extends Adapter{
if(!Number.isInteger(pagination)){
pagination=(Math.floor(result.length / limit))+1;
}
// let pagination = Adapter.getPagination(result.length, limit);
apires.success = true;
apires.data.push({
"totalpage": pagination,
"totalrows": result.length
});
qry = "select v.*, COALESCE(c.currency, 'USD') AS currency_code, COALESCE(c.symbol, '$') AS currency_symbol, po.rate_snapshot AS po_rate_snapshot ";
qry += "from vw_financelist v ";
qry += "left join tbl_po po on po._idx = v.idxpo ";
qry += "left join tbl_currency c on c._idx = po.currency_id ";
qry += "where v.podescription like '%" + keyword + "%' ";
qry += "order by v.idxpo asc limit " + offset + ", " + limit;
qry = qryBase + "where " + keywordFilter + divisionFilter;
qry += "order by " + sorder + " limit " + offset + ", " + limit;
db.query(qry,[],function(err,result,fields){
if(err){
apires.meta['message'] = err.toString();

View File

@ -2106,21 +2106,39 @@ class PoAdapter extends Adapter {
try {
let limit = req.query.limit;
let offset = req.query.offset;
let keyword = req.query.keyword;
// let nik = req.body.nik;
let keyword = req.query.keyword ?? "";
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 ";
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 ";
let qry = qryBase;
qry =
qry +
"where trim(v.ponumber) like '%" +
qryBase += "left join tbl_justification j on j._idx = v.idxjustification ";
let keywordFilter =
"(trim(v.ponumber) like '%" +
keyword +
"%' and v.status in(2,4) and v.ponumber<>'000' and v.ponumber<>'' ";
// qry = qry +"order by _idx asc limit " + offset + ", " + limit;
"%' or trim(v.prnumber) like '%" +
keyword +
"%' or trim(v.identifyprojectnumber) like '%" +
keyword +
"%' or trim(v.vendorname) like '%" +
keyword +
"%' or trim(v.contractdescription) like '%" +
keyword +
"%') ";
let divisionFilter = "";
if (division && division.trim() !== "") {
divisionFilter = "and j.division = '" + division + "' ";
}
let qry =
qryBase +
"where " +
keywordFilter +
"and v.status in(2,4) and v.ponumber<>'000' and v.ponumber<>'' " +
divisionFilter;
// console.log(qry);
db.query(qry, [], function (err, result, fields) {
if (err) {
apires.meta["message"] = err.toString();
@ -2132,19 +2150,18 @@ class PoAdapter extends Adapter {
if (!Number.isInteger(pagination)) {
pagination = Math.floor(result.length / limit) + 1;
}
// let pagination = Adapter.getPagination(result.length, limit);
apires.success = true;
apires.data.push({
"totalpage": pagination,
"totalrows": result.length,
});
qry = qryBase;
qry =
qry +
"where trim(v.ponumber) like '%" +
keyword +
"%' and v.status in(2,4) and v.ponumber<>'000' and v.ponumber<>'' ";
qry = qry + "order by v._idx asc limit " + offset + ", " + limit;
qryBase +
"where " +
keywordFilter +
"and v.status in(2,4) and v.ponumber<>'000' and v.ponumber<>'' " +
divisionFilter;
qry = qry + "order by " + sorder + " limit " + offset + ", " + limit;
db.query(qry, [], function (err, result, fields) {
if (err) {
apires.meta["message"] = err.toString();
@ -2305,15 +2322,34 @@ class PoAdapter extends Adapter {
try {
let limit = req.query.limit;
let offset = req.query.offset;
let keyword = req.query.keyword;
// let nik = req.body.nik;
let keyword = req.query.keyword ?? "";
let division = req.query.division ?? "";
let sort = req.query.sort ?? "latest";
let sorder = sort === "past" ? "v._idx asc" : "v._idx desc";
let qry = "select v.* from vw_poinventoryheader v ";
qry = qry + "where EXISTS (SELECT 1 FROM tbl_bast b WHERE b.idxpo = v._idx AND b.isdeleted = 0) ";
qry = qry + "and trim(v.ponumber) like '%" + keyword + "%' ";
// qry = qry +"order by v._idx asc limit " + offset + ", " + limit;
let qryBase = "select v.* from vw_poinventoryheader v ";
qryBase +=
"left join tbl_po po on po._idx = v._idx left join tbl_justification j on j._idx = po.idxjustification ";
let keywordFilter =
"(trim(v.ponumber) like '%" +
keyword +
"%' or trim(v.identifyprojectnumber) like '%" +
keyword +
"%' or trim(v.vendorname) like '%" +
keyword +
"%' or trim(v.podescription) like '%" +
keyword +
"%') ";
let divisionFilter = "";
if (division && division.trim() !== "") {
divisionFilter = "and j.division = '" + division + "' ";
}
let qry =
qryBase +
"where EXISTS (SELECT 1 FROM tbl_bast b WHERE b.idxpo = v._idx AND b.isdeleted = 0) and " +
keywordFilter +
divisionFilter;
// console.log(qry);
db.query(qry, [], function (err, result, fields) {
if (err) {
apires.meta["message"] = err.toString();
@ -2325,16 +2361,17 @@ class PoAdapter extends Adapter {
if (!Number.isInteger(pagination)) {
pagination = Math.floor(result.length / limit) + 1;
}
// let pagination = Adapter.getPagination(result.length, limit);
apires.success = true;
apires.data.push({
"totalpage": pagination,
"totalrows": result.length,
});
qry = "select v.* from vw_poinventoryheader v ";
qry = qry + "where EXISTS (SELECT 1 FROM tbl_bast b WHERE b.idxpo = v._idx AND b.isdeleted = 0) ";
qry = qry + "and trim(v.ponumber) like '%" + keyword + "%' ";
qry = qry + "order by v._idx asc limit " + offset + ", " + limit;
qry =
qryBase +
"where EXISTS (SELECT 1 FROM tbl_bast b WHERE b.idxpo = v._idx AND b.isdeleted = 0) and " +
keywordFilter +
divisionFilter;
qry = qry + "order by " + sorder + " limit " + offset + ", " + limit;
db.query(qry, [], function (err, result, fields) {
if (err) {
apires.meta["message"] = err.toString();