From fa29631a6bc3786aec8fcdeb4649af013822d76f Mon Sep 17 00:00:00 2001 From: Rizki Date: Fri, 10 Apr 2026 16:04:55 +0700 Subject: [PATCH] upd --- adapter/justificationadapter.js | 36 +++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/adapter/justificationadapter.js b/adapter/justificationadapter.js index ac4bac9..06bf13e 100644 --- a/adapter/justificationadapter.js +++ b/adapter/justificationadapter.js @@ -870,27 +870,35 @@ class JustificationAdapter extends Adapter{ async queryJustificationList(req,callback){ var apires = this.getApiResultDefined(); try { - + let limit = req.body.limit; let offset = req.body.offset; let keyword = req.body.keyword; let nik = req.body.nik; let status = req.body.status; + let division = req.body.division || ''; + let sort = req.body.sort || 'latest'; + + const orderBy = sort === 'past' ? 'udt ASC' : 'udt DESC'; let swherenik=""; if(nik){ swherenik="iby='"+nik+"' and "; } - // let qry = "select * from vw_justification "; - // qry = qry +"where (trim(acccode) like '%"+ keyword +"%' or trim(nomorjustifikasi) like '%"+ keyword +"%') "; - // qry = qry +"and iby='"+nik+"' and status in("+status+") order by id asc"; - let qry = "select * from vw_justification "; - qry = qry +"where (trim(acccode) like '%"+ keyword +"%' or trim(nomorjustifikasi) like '%"+ keyword +"%') "; - qry = qry +"and "+swherenik+" status in("+status+") order by id asc"; + + let swhereDivision=""; + if(division){ + swhereDivision="and division like '%"+division+"%' "; + } + + let baseWhere = "where (trim(acccode) like '%"+ keyword +"%' or trim(nomorjustifikasi) like '%"+ keyword +"%') " + + "and "+swherenik+" status in("+status+") "+swhereDivision; + + let qry = "select * from vw_justification " + baseWhere + "order by " + orderBy; // console.log(qry); db.query(qry,[],function(err,result,fields){ - if(err){ + if(err){ apires.meta['message'] = err.toString(); apires.meta['code'] = 500; callback('err',apires); @@ -902,19 +910,17 @@ class JustificationAdapter 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 * from vw_justification "; - qry = qry +"where (trim(acccode) like '%"+ keyword +"%' or trim(nomorjustifikasi) like '%"+ keyword +"%') "; - qry = qry +"and "+swherenik+" status in("+status+") order by id asc limit " + offset + ", " + limit; + qry = "select * from vw_justification " + baseWhere + + "order by " + orderBy + " limit " + offset + ", " + limit; // console.log(qry); db.query(qry,[],function(err,result,fields){ - if(err){ + if(err){ apires.meta['message'] = err.toString(); apires.meta['code'] = 500; callback('err',apires); @@ -930,12 +936,12 @@ class JustificationAdapter extends Adapter{ } else{ apires.meta.code = 200; - apires.meta.message = "Record Not Found"; + apires.meta.message = "Record Not Found"; callback(null, apires); } } }); - + } catch (err) { apires.meta.code = 500; apires.meta.message = err.toString();