From 4a75f278f7fe3b1485bb78580319b057c02e4a8b Mon Sep 17 00:00:00 2001 From: Rizki Date: Thu, 12 Mar 2026 10:11:48 +0700 Subject: [PATCH] upd --- adapter/pradapter.js | 1297 +++++++++++++++++++++++------------------- 1 file changed, 707 insertions(+), 590 deletions(-) diff --git a/adapter/pradapter.js b/adapter/pradapter.js index 7132fca..acb83ff 100644 --- a/adapter/pradapter.js +++ b/adapter/pradapter.js @@ -1,630 +1,747 @@ -const db=require('../config/dbproc.js'); -const Adapter=require('./dbadapter.js'); -const QRCode = require('qrcode'); +const db = require("../config/dbproc.js"); +const Adapter = require("./dbadapter.js"); +const QRCode = require("qrcode"); const fs = require("fs"); +class PrAdapter extends Adapter { + constructor() { + super(); + } -class PrAdapter extends Adapter{ - constructor(){ - super(); - } + async queryPrJustificationList(req, callback) { + var apires = this.getApiResultDefined(); + try { + // console.log(req); + let nik = req.query.nik; + let qry = + "select * from vw_justification where iscreatepr=0 and status=2 and iby='" + + nik + + "' order by id asc"; - async queryPrJustificationList(req,callback){ - var apires = this.getApiResultDefined(); - try { - - - // console.log(req); - let nik = req.query.nik; - let qry = "select * from vw_justification where iscreatepr=0 and status=2 and iby='"+nik+"' order by id asc"; - - // console.log(qry); - db.query(qry,[],function(err,result,fields){ - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - if(result.length>0){ - apires.success = true; - apires.data = JSON.parse(JSON.stringify(result)); - } - else{ - apires.meta.code = 200; - apires.meta.message = "Record Not Found"; - } - callback(null, apires); - } - }); - } - catch(err) { - apires.meta.code = 500; - apires.meta.message = err.toString(); - callback('error',apires); - } - } + // console.log(qry); + db.query(qry, [], function (err, result, fields) { + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + if (result.length > 0) { + apires.success = true; + apires.data = JSON.parse(JSON.stringify(result)); + } else { + apires.meta.code = 200; + apires.meta.message = "Record Not Found"; + } + callback(null, apires); + } + }); + } catch (err) { + apires.meta.code = 500; + apires.meta.message = err.toString(); + callback("error", apires); + } + } - async queryGetTrxIdPr(req, callback){ - var apires = this.getApiResultDefined(); - try { - let nik = req.query.nik; - let qry = "select count(_idx) totalrows,date_format(now(),'%Y%m%d') dates from tbl_pr where iby='"+nik+"' and year(idt)=year(now())"; - // console.log(qry); - db.query(qry,[],function(err,result,fields){ - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - var resp = JSON.parse(JSON.stringify(result)); - // console.log(resp[0]['dates']); - var ymd = resp[0]['dates']; - ymd = ymd.toString().trim().replace("-",""); - var counter = resp[0]['totalrows']+1; - var counterstr = ("0000000000"+counter); - counterstr = counterstr.substring(counterstr.length-4, counterstr.length); - var trxid = "TCEL-PR/"+ymd+"/"+nik+"/"+counterstr; - apires.success = true; - apires.data = trxid - callback(null, apires); - - } - }); - } catch (error) { - apires.meta.code = 500; - apires.meta.message = err.toString(); - callback('error',apires); - } - } + async queryGetTrxIdPr(req, callback) { + var apires = this.getApiResultDefined(); + try { + let nik = req.query.nik; + let qry = + "select count(_idx) totalrows,date_format(now(),'%Y%m%d') dates from tbl_pr where iby='" + + nik + + "' and year(idt)=year(now())"; + // console.log(qry); + db.query(qry, [], function (err, result, fields) { + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + var resp = JSON.parse(JSON.stringify(result)); + // console.log(resp[0]['dates']); + var ymd = resp[0]["dates"]; + ymd = ymd.toString().trim().replace("-", ""); + var counter = resp[0]["totalrows"] + 1; + var counterstr = "0000000000" + counter; + counterstr = counterstr.substring(counterstr.length - 4, counterstr.length); + var trxid = "TCEL-PR/" + ymd + "/" + nik + "/" + counterstr; + apires.success = true; + apires.data = trxid; + callback(null, apires); + } + }); + } catch (error) { + apires.meta.code = 500; + apires.meta.message = err.toString(); + callback("error", apires); + } + } - async queryNewPr(req, callback){ - var apires = this.getApiResultDefined(); - try { - // console.log(req.body); - let idxjustification= req.body.idxjustification; - let justificationnumber= req.body.justificationnumber; - let trxidpr = req.body.trxidpr; - let prnumber = req.body.prnumber ?? ""; - let costcenter = req.body.costcenter; - let profitcenter = req.body.profitcenter; - let description = req.body.description; - let qty = req.body.qty; - let unit = req.body.unit; - let netprice = req.body.netprice; - let totalvalue = req.body.totalvalue; - let curr = req.body.curr; - let prdate = req.body.prdate; - let idxapproval = req.body.idxapproval; - let nikapproval = req.body.nikapproval; - let nik = req.body.nik; - let status = -1; - let statusdescription = "draft"; + async queryNewPr(req, callback) { + var apires = this.getApiResultDefined(); + try { + // console.log(req.body); + let idxjustification = req.body.idxjustification; + let justificationnumber = req.body.justificationnumber; + let trxidpr = req.body.trxidpr; + let prnumber = req.body.prnumber ?? ""; + let costcenter = req.body.costcenter; + let profitcenter = req.body.profitcenter; + let description = req.body.description; + let qty = req.body.qty; + let unit = req.body.unit; + let netprice = req.body.netprice; + let totalvalue = req.body.totalvalue; + let curr = req.body.curr; + let prdate = req.body.prdate; + let idxapproval = req.body.idxapproval; + let nikapproval = req.body.nikapproval; + let nik = req.body.nik; + let status = -1; + let statusdescription = "draft"; - let qry = "insert into tbl_pr "; - qry = qry +"set trxidpr='"+trxidpr+"',prnumber='"+prnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',costcenter='"+costcenter+"',"; - qry = qry +"profitcenter='"+profitcenter+"',description='"+description+"',qty='"+qty+"',unit='"+unit+"',netprice='"+netprice+"',totalvalue='"+totalvalue+"',"; - qry = qry +"curr='"+curr+"',prdate='"+prdate+"',status='"+status+"',statusdescription='"+statusdescription+"',"; - qry = qry +"idxapproval='"+idxapproval+"',nikapproval='"+nikapproval+"',iby='"+nik+"',idt=now()"; - console.log(qry); - db.query(qry,[],function(err,result,fields){ - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - var res = JSON.parse(JSON.stringify(result)); - apires.success = true; - apires.meta.message = "Saved Success"; - apires.data = res; - callback(null, apires); + let qry = "insert into tbl_pr "; + qry = + qry + + "set trxidpr='" + + trxidpr + + "',prnumber='" + + prnumber + + "',idxjustification='" + + idxjustification + + "',justificationnumber='" + + justificationnumber + + "',costcenter='" + + costcenter + + "',"; + qry = + qry + + "profitcenter='" + + profitcenter + + "',description='" + + description + + "',qty='" + + qty + + "',unit='" + + unit + + "',netprice='" + + netprice + + "',totalvalue='" + + totalvalue + + "',"; + qry = + qry + + "curr='" + + curr + + "',prdate='" + + prdate + + "',status='" + + status + + "',statusdescription='" + + statusdescription + + "',"; + qry = + qry + + "idxapproval='" + + idxapproval + + "',nikapproval='" + + nikapproval + + "',iby='" + + nik + + "',idt=now()"; + console.log(qry); + db.query(qry, [], function (err, result, fields) { + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + var res = JSON.parse(JSON.stringify(result)); + apires.success = true; + apires.meta.message = "Saved Success"; + apires.data = res; + callback(null, apires); + } + }); + } catch (err) { + apires.meta.code = 500; + apires.meta.message = err.toString(); + callback("error", apires); + } + } - } - }); - - } catch (err) { - apires.meta.code = 500; - apires.meta.message = err.toString(); - callback('error',apires); - - } - } - - async queryUpdatePr(req, callback){ - var apires = this.getApiResultDefined(); - try { - // console.log(req.body); - let idxpr= req.body.idxpr; - let idxjustification= req.body.idxjustification; - let justificationnumber= req.body.justificationnumber; - let trxidpr = req.body.trxidpr; - let prnumber = req.body.prnumber ?? ""; - let costcenter = req.body.costcenter; - let profitcenter = req.body.profitcenter; - let description = req.body.description; - let qty = req.body.qty; - let unit = req.body.unit; - let netprice = req.body.netprice; - let totalvalue = req.body.totalvalue; - let curr = req.body.curr; - let prdate = req.body.prdate; - let idxapproval = req.body.idxapproval; - let nikapproval = req.body.nikapproval; - let nik = req.body.nik; - let status = -1; - let statusdescription = "draft"; + async queryUpdatePr(req, callback) { + var apires = this.getApiResultDefined(); + try { + // console.log(req.body); + let idxpr = req.body.idxpr; + let idxjustification = req.body.idxjustification; + let justificationnumber = req.body.justificationnumber; + let trxidpr = req.body.trxidpr; + let prnumber = req.body.prnumber ?? ""; + let costcenter = req.body.costcenter; + let profitcenter = req.body.profitcenter; + let description = req.body.description; + let qty = req.body.qty; + let unit = req.body.unit; + let netprice = req.body.netprice; + let totalvalue = req.body.totalvalue; + let curr = req.body.curr; + let prdate = req.body.prdate; + let idxapproval = req.body.idxapproval; + let nikapproval = req.body.nikapproval; + let nik = req.body.nik; + let status = -1; + let statusdescription = "draft"; - let qry = "update tbl_pr "; - qry = qry +"set trxidpr='"+trxidpr+"',prnumber='"+prnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',costcenter='"+costcenter+"',"; - qry = qry +"profitcenter='"+profitcenter+"',description='"+description+"',qty='"+qty+"',unit='"+unit+"',netprice='"+netprice+"',totalvalue='"+totalvalue+"',"; - qry = qry +"idxapproval='"+idxapproval+"',nikapproval='"+nikapproval+"',curr='"+curr+"',prdate='"+prdate+"',status='"+status+"',statusdescription='"+statusdescription+"',uby='"+nik+"',udt=now() "; - qry = qry +"where _idx='"+idxpr+"'"; - // console.log(qry); - db.query(qry,[],function(err,result,fields){ - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - var res = JSON.parse(JSON.stringify(result)); - apires.success = true; - apires.meta.message = "Updated Success"; - apires.data = res; - callback(null, apires); + let qry = "update tbl_pr "; + qry = + qry + + "set trxidpr='" + + trxidpr + + "',prnumber='" + + prnumber + + "',idxjustification='" + + idxjustification + + "',justificationnumber='" + + justificationnumber + + "',costcenter='" + + costcenter + + "',"; + qry = + qry + + "profitcenter='" + + profitcenter + + "',description='" + + description + + "',qty='" + + qty + + "',unit='" + + unit + + "',netprice='" + + netprice + + "',totalvalue='" + + totalvalue + + "',"; + qry = + qry + + "idxapproval='" + + idxapproval + + "',nikapproval='" + + nikapproval + + "',curr='" + + curr + + "',prdate='" + + prdate + + "',status='" + + status + + "',statusdescription='" + + statusdescription + + "',uby='" + + nik + + "',udt=now() "; + qry = qry + "where _idx='" + idxpr + "'"; + // console.log(qry); + db.query(qry, [], function (err, result, fields) { + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + var res = JSON.parse(JSON.stringify(result)); + apires.success = true; + apires.meta.message = "Updated Success"; + apires.data = res; + callback(null, apires); + } + }); + } catch (err) { + apires.meta.code = 500; + apires.meta.message = err.toString(); + callback("error", apires); + } + } - } - }); - - } catch (err) { - apires.meta.code = 500; - apires.meta.message = err.toString(); - callback('error',apires); - - } - } + async queryUpdateStatusPr(req, prsapnumber, sapmessage, callback) { + try { + var apires = this.getApiResultDefined(); + var idxpr = req.body.idxpr; + var status = req.body.status; + var statusdescription = req.body.statusdescription; + var description = req.body.description; + var curr = req.body.curr; + var nik = req.body.nik; - async queryUpdateStatusPr(req,prsapnumber, sapmessage, callback) { - try { - var apires = this.getApiResultDefined(); - var idxpr = req.body.idxpr; - var status = req.body.status; - var statusdescription = req.body.statusdescription; - var description = req.body.description; - var curr = req.body.curr; - var nik = req.body.nik; + var swherestatus = "status='" + status + "',statusdescription='" + statusdescription + "',"; + if (sapmessage) { + swherestatus = ""; + } - var swherestatus="status='" + status +"',statusdescription='" + statusdescription +"',"; - if(sapmessage){ - swherestatus=""; - } + var setprnumber = "prnumber='" + prsapnumber + "',"; + if (!prsapnumber) { + setprnumber = ""; + } - var setprnumber="prnumber='"+prsapnumber+"',"; - if(!prsapnumber){setprnumber="";} + var setdescription = ""; + if (description) { + setdescription = "description='" + description + "',"; + } + if (curr) { + setdescription += "curr='" + curr + "',"; + } - var setdescription=""; - if(description){ - setdescription="description='"+description+"',"; - } - if(curr){ - setdescription+="curr='"+curr+"',"; - } + // console.log(setdescription); + var qry = + "update tbl_pr set " + + setprnumber + + setdescription + + "sapmessage='" + + sapmessage + + "'," + + swherestatus + + "uby='" + + nik + + "',udt=now() "; + qry = qry + "where _idx='" + idxpr + "'"; + console.log(qry); + db.query(qry, [], function (err, result, fields) { + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + apires.success = true; + apires.data = JSON.parse(JSON.stringify(result)); + callback(null, apires); + } + }); + } catch (err) { + apires.meta.code = 500; + apires.meta.message = err.toString(); + callback("error", apires); + } + } - // console.log(setdescription); - var qry = "update tbl_pr set "+setprnumber+setdescription+"sapmessage='"+sapmessage+"',"+swherestatus+"uby='"+nik+"',udt=now() "; - qry = qry +"where _idx='" + idxpr +"'"; - console.log(qry); - db.query(qry,[],function(err,result,fields){ - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - apires.success = true; - apires.data = JSON.parse(JSON.stringify(result)); - callback(null, apires); - } - }); - } catch (err) { - apires.meta.code = 500; - apires.meta.message = err.toString(); - callback('error',apires); - } - } + async queryDeletePr(req, callback) { + var apires = this.getApiResultDefined(); + try { + let id = req.body.id; + let remarkdeleted = req.body.remarkdeleted; + let nik = req.body.nik; - async queryDeletePr(req, callback){ - var apires = this.getApiResultDefined(); - try { - let id = req.body.id; - let remarkdeleted = req.body.remarkdeleted; - let nik = req.body.nik; + let qry = "update tbl_pr "; + qry = + qry + "set isdeleted=1,remarkdeleted='" + remarkdeleted + "',dby='" + nik + "',ddt=now()"; + qry = qry + " where _idx='" + id + "'"; - let qry = "update tbl_pr "; - qry = qry +"set isdeleted=1,remarkdeleted='"+remarkdeleted+"',dby='"+nik+"',ddt=now()"; - qry = qry +" where _idx='"+id+"'"; + db.query(qry, [], function (err, result, fields) { + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + apires.success = true; + apires.meta.message = "Deleted Success"; + callback(null, apires); + } + }); + } catch (err) { + apires.meta.code = 500; + apires.meta.message = err.toString(); + callback("error", apires); + } + } - db.query(qry,[],function(err,result,fields){ - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - apires.success = true; - apires.meta.message = "Deleted Success"; - callback(null, apires); - } - }); - } catch (err) { - apires.meta.code = 500; - apires.meta.message = err.toString(); - callback('error',apires); - } - } - - async queryPrDetail(req,callback){ - var apires = this.getApiResultDefined(); - try { - - let _idx= req.query.id; + async queryPrDetail(req, callback) { + var apires = this.getApiResultDefined(); + try { + let _idx = req.query.id; - let qry = "select * from vw_pr where id='"+_idx+"'"; + let qry = "select * from vw_pr where id='" + _idx + "'"; - // console.log(qry); - db.query(qry,[],function(err,result,fields){ - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - let dataRows = result.length; - if(dataRows<=0){ - apires.meta.message = "Record not found"; - callback('',apires); - } - else{ - let resultJson = JSON.stringify(result); - resultJson = JSON.parse(resultJson); - apires.success = true; - apires.data = resultJson; - callback(null,apires); - } - } - }); - - } catch (err) { - apires.meta.code = 500; - apires.meta.message = err.toString(); - callback('error',apires); - } - } + // console.log(qry); + db.query(qry, [], function (err, result, fields) { + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + let dataRows = result.length; + if (dataRows <= 0) { + apires.meta.message = "Record not found"; + callback("", apires); + } else { + let resultJson = JSON.stringify(result); + resultJson = JSON.parse(resultJson); + apires.success = true; + apires.data = resultJson; + callback(null, apires); + } + } + }); + } catch (err) { + apires.meta.code = 500; + apires.meta.message = err.toString(); + callback("error", apires); + } + } - async queryPrList(req,callback){ - var apires = this.getApiResultDefined(); - try { - const proc_nik = process.env.PROC_USER_NIK ?? "" - const proc_users = proc_nik.split(",") + async queryPrList(req, callback) { + var apires = this.getApiResultDefined(); + try { + const proc_nik = process.env.PROC_USER_NIK ?? ""; + const proc_users = proc_nik.split(","); - 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 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 qry = "select * from vw_pr "; - // qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') "; - // qry = qry +"and iby='"+nik+"' and status in("+status+") order by id asc limit " + offset + ", " + limit; + let swherenik = ""; - let swherenik=""; - if(nik){ - if (!proc_users.includes(nik)) { - swherenik = '(iby="'+nik+' or nikapproval="'+nik+'") and '; - } - } - + if (nik) { + if (!proc_users.includes(nik)) { + swherenik = '(iby="' + nik + '" or nikapproval="' + nik + '") and '; + } + } - let qry = "select * from vw_pr "; - qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') "; - qry = qry +"and "+swherenik+" status in("+status+") order by id asc limit " + offset + ", " + limit; + let qry = "select * from vw_pr "; + qry += + "where (trim(trxidpr) like '%" + + keyword + + "%' or trim(prnumber) like '%" + + keyword + + "%') "; + qry += "and " + swherenik + "status in(" + status + ") "; + qry += "order by id asc limit " + offset + ", " + limit; - // console.log(qry); - db.query(qry,[],function(err,result,fields){ - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - if(result.length>0){ - let pagination = result.length / limit; - 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_pr "; - qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') "; - qry = qry +"and "+swherenik+" status in("+status+") order by id asc limit " + offset + ", " + limit; - // console.log(qry); - db.query(qry,[],function(err,result,fields){ - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - apires.data.push({ - "results": JSON.parse(JSON.stringify(result)) - }); - callback(null, apires); - } - }); - } - else{ - apires.meta.code = 200; - apires.meta.message = "Record Not Found"; - callback(null, apires); - } - - - } - }); - - } catch (err) { - apires.meta.code = 500; - apires.meta.message = err.toString(); - callback('error',apires); - } - } + // console.log(qry); + db.query(qry, [], function (err, result, fields) { + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + if (result.length > 0) { + let pagination = result.length / limit; + 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_pr "; + qry = + qry + + "where (trim(trxidpr) like '%" + + keyword + + "%' or trim(prnumber) like '%" + + keyword + + "%') "; + qry = + qry + + "and " + + swherenik + + " status in(" + + status + + ") order by id asc limit " + + offset + + ", " + + limit; + // console.log(qry); + db.query(qry, [], function (err, result, fields) { + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + apires.data.push({ + "results": JSON.parse(JSON.stringify(result)), + }); + callback(null, apires); + } + }); + } else { + apires.meta.code = 200; + apires.meta.message = "Record Not Found"; + callback(null, apires); + } + } + }); + } catch (err) { + apires.meta.code = 500; + apires.meta.message = err.toString(); + callback("error", apires); + } + } - async queryApprovedPR(req, callback) { - try { - var apires = this.getApiResultDefined(); - let idxpr= req.body.idxpr; - let idxjustification= req.body.idxjustification; - let justificationnumber= req.body.justificationnumber; - let trxidpr = req.body.trxidpr; - let prnumber = req.body.prnumber; - let costcenter = req.body.costcenter; - let profitcenter = req.body.profitcenter; - let description = req.body.description; - let qty = req.body.qty; - let unit = req.body.unit; - let netprice = req.body.netprice; - let totalvalue = req.body.totalvalue; - let curr = req.body.curr; - let prdate = req.body.prdate; - let idxapproval = req.body.idxapproval; - let nikapproval = req.body.nikapproval; - let nik = req.body.nik; - let status = 2; - let statusdescription = "Approval"; - let approveddate = req.body.approveddate; - var token =this.getToken(); - var filepng = token+"pr.png"; - // token =getToken(); - token = token +","+nikapproval; - - let qry = "update tbl_pr "; - qry = qry +"set trxidpr='"+trxidpr+"',prnumber='"+prnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',costcenter='"+costcenter+"',"; - qry = qry +"profitcenter='"+profitcenter+"',description='"+description+"',qty='"+qty+"',unit='"+unit+"',netprice='"+netprice+"',totalvalue='"+totalvalue+"',"; - qry = qry +"idxapproval='"+idxapproval+"',nikapproval='"+nikapproval+"',approveddate='"+approveddate+"',curr='"+curr+"',prdate='"+prdate+"',status='"+status+"',statusdescription='"+statusdescription+"',"; - qry = qry +"token=md5('"+token+"'),filepng='"+filepng+"',uby='"+nik+"',udt=now() "; - qry = qry +"where _idx='"+idxpr+"'"; - - // console.log(qry); - db.query(qry,[],function(err,result,fields){ - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - QRCode.toDataURL(token, function (err, code) { - // console.log(code); - if(err) { - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - var imageBuffer = Adapter.decodeBase64Image(code); - fs.writeFile('./assets/png/'+filepng, imageBuffer.data, function(err) { - // console.log(err); - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback(err.toString(), apires); - } - else{ - apires.success = true; - apires.data = { - "isapproved":1, - "token":token, - "urltoken": process.env.BASEURL+"/main/getimageinfo?route=png&name="+filepng - }; - callback(null, apires); - } - - - }); - } - }); - } - }); - - } catch (err) { - apires.meta.code = 500; - apires.meta.message = err.toString(); - callback('error',apires); - } - } + async queryApprovedPR(req, callback) { + try { + var apires = this.getApiResultDefined(); + let idxpr = req.body.idxpr; + let idxjustification = req.body.idxjustification; + let justificationnumber = req.body.justificationnumber; + let trxidpr = req.body.trxidpr; + let prnumber = req.body.prnumber; + let costcenter = req.body.costcenter; + let profitcenter = req.body.profitcenter; + let description = req.body.description; + let qty = req.body.qty; + let unit = req.body.unit; + let netprice = req.body.netprice; + let totalvalue = req.body.totalvalue; + let curr = req.body.curr; + let prdate = req.body.prdate; + let idxapproval = req.body.idxapproval; + let nikapproval = req.body.nikapproval; + let nik = req.body.nik; + let status = 2; + let statusdescription = "Approval"; + let approveddate = req.body.approveddate; + var token = this.getToken(); + var filepng = token + "pr.png"; + // token =getToken(); + token = token + "," + nikapproval; - async queryPrManagementList(req,callback){ - var apires = this.getApiResultDefined(); - try { - const proc_nik = process.env.PROC_USER_NIK ?? "" - const proc_users = proc_nik.split(",") - - let limit = req.query.limit; - let offset = req.query.offset; - let keyword = req.query.keyword; - let nik = req.query.nik; - - let swherenik="and iby='"+nik+"'"; - if (!proc_users.includes(nik)) { - swherenik=""; - } + let qry = "update tbl_pr "; + qry = + qry + + "set trxidpr='" + + trxidpr + + "',prnumber='" + + prnumber + + "',idxjustification='" + + idxjustification + + "',justificationnumber='" + + justificationnumber + + "',costcenter='" + + costcenter + + "',"; + qry = + qry + + "profitcenter='" + + profitcenter + + "',description='" + + description + + "',qty='" + + qty + + "',unit='" + + unit + + "',netprice='" + + netprice + + "',totalvalue='" + + totalvalue + + "',"; + qry = + qry + + "idxapproval='" + + idxapproval + + "',nikapproval='" + + nikapproval + + "',approveddate='" + + approveddate + + "',curr='" + + curr + + "',prdate='" + + prdate + + "',status='" + + status + + "',statusdescription='" + + statusdescription + + "',"; + qry = + qry + "token=md5('" + token + "'),filepng='" + filepng + "',uby='" + nik + "',udt=now() "; + qry = qry + "where _idx='" + idxpr + "'"; - // 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; - 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; + // console.log(qry); + db.query(qry, [], function (err, result, fields) { + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + QRCode.toDataURL(token, function (err, code) { + // console.log(code); + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + var imageBuffer = Adapter.decodeBase64Image(code); + fs.writeFile("./assets/png/" + filepng, imageBuffer.data, function (err) { + // console.log(err); + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback(err.toString(), apires); + } else { + apires.success = true; + apires.data = { + "isapproved": 1, + "token": token, + "urltoken": + process.env.BASEURL + "/main/getimageinfo?route=png&name=" + filepng, + }; + callback(null, apires); + } + }); + } + }); + } + }); + } catch (err) { + apires.meta.code = 500; + apires.meta.message = err.toString(); + callback("error", apires); + } + } - // console.log(qry); - db.query(qry,[],function(err,result,fields){ - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - if(result.length>0){ - let pagination = result.length / limit; - 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_prmanagement "; - qry = qry +"where status >= 2 and (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') "; - qry = qry + swherenik +" order by id asc limit " + offset + ", " + limit; - db.query(qry,[],function(err,result,fields){ - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - apires.data.push({ - "results": JSON.parse(JSON.stringify(result)) - }); - callback(null, apires); - } - }); - } - else{ - apires.meta.code = 200; - apires.meta.message = "Record Not Found"; - callback(null, apires); - } - } - }); - - } catch (err) { - apires.meta.code = 500; - apires.meta.message = err.toString(); - callback('error',apires); - } - } - - async queryPrManagementListDetail(req,callback){ - var apires = this.getApiResultDefined(); - try { - - let idxpr = req.query.idxpr; - let qry = "select * from vw_prmanagement "; - qry = qry +"where id='"+idxpr+"'"; + async queryPrManagementList(req, callback) { + var apires = this.getApiResultDefined(); + try { + const proc_nik = process.env.PROC_USER_NIK ?? ""; + const proc_users = proc_nik.split(","); - // console.log(qry); - db.query(qry,[],function(err,result,fields){ - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - apires.meta.code = 200; - if(result.length>0){ - apires.success = true; - apires.data=JSON.parse(JSON.stringify(result)); - } - else{ - apires.meta.message = "Record Not Found"; - } - callback(null, apires); + let limit = req.query.limit; + let offset = req.query.offset; + let keyword = req.query.keyword; + let nik = req.query.nik; - } - }); - - } catch (err) { - apires.meta.code = 500; - apires.meta.message = err.toString(); - callback('error',apires); - } - } + let swherenik = "and iby='" + nik + "'"; + if (!proc_users.includes(nik)) { + swherenik = ""; + } - async queryUpdateSapMessage(req, sapmessage, callback) { - try { - var apires = this.getApiResultDefined(); - var idxpr = req.body.idxpr; - var nik = req.body.nik; + // 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; + 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; - // console.log(setdescription); - var qry = "update tbl_pr set sapmessage='"+sapmessage+"', uby='"+nik+"',udt=now() "; - qry = qry +"where _idx='" + idxpr +"'"; + // console.log(qry); + db.query(qry, [], function (err, result, fields) { + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + if (result.length > 0) { + let pagination = result.length / limit; + 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_prmanagement "; + qry = + qry + + "where status >= 2 and (trim(trxidpr) like '%" + + keyword + + "%' or trim(prnumber) like '%" + + keyword + + "%') "; + qry = qry + swherenik + " order by id asc limit " + offset + ", " + limit; + db.query(qry, [], function (err, result, fields) { + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + apires.data.push({ + "results": JSON.parse(JSON.stringify(result)), + }); + callback(null, apires); + } + }); + } else { + apires.meta.code = 200; + apires.meta.message = "Record Not Found"; + callback(null, apires); + } + } + }); + } catch (err) { + apires.meta.code = 500; + apires.meta.message = err.toString(); + callback("error", apires); + } + } - console.log('qry', qry) + async queryPrManagementListDetail(req, callback) { + var apires = this.getApiResultDefined(); + try { + let idxpr = req.query.idxpr; + let qry = "select * from vw_prmanagement "; + qry = qry + "where id='" + idxpr + "'"; - db.query(qry,[],function(err,result,fields){ - if(err){ - apires.meta['message'] = err.toString(); - apires.meta['code'] = 500; - callback('err',apires); - } - else - { - apires.success = true; - apires.data = JSON.parse(JSON.stringify(result)); - callback(null, apires); - } - }); - } catch (err) { - apires.meta.code = 500; - apires.meta.message = err.toString(); - callback('error',apires); - } - } + // console.log(qry); + db.query(qry, [], function (err, result, fields) { + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + apires.meta.code = 200; + if (result.length > 0) { + apires.success = true; + apires.data = JSON.parse(JSON.stringify(result)); + } else { + apires.meta.message = "Record Not Found"; + } + callback(null, apires); + } + }); + } catch (err) { + apires.meta.code = 500; + apires.meta.message = err.toString(); + callback("error", apires); + } + } + async queryUpdateSapMessage(req, sapmessage, callback) { + try { + var apires = this.getApiResultDefined(); + var idxpr = req.body.idxpr; + var nik = req.body.nik; + // console.log(setdescription); + var qry = "update tbl_pr set sapmessage='" + sapmessage + "', uby='" + nik + "',udt=now() "; + qry = qry + "where _idx='" + idxpr + "'"; + + console.log("qry", qry); + + db.query(qry, [], function (err, result, fields) { + if (err) { + apires.meta["message"] = err.toString(); + apires.meta["code"] = 500; + callback("err", apires); + } else { + apires.success = true; + apires.data = JSON.parse(JSON.stringify(result)); + callback(null, apires); + } + }); + } catch (err) { + apires.meta.code = 500; + apires.meta.message = err.toString(); + callback("error", apires); + } + } } -module.exports = PrAdapter; \ No newline at end of file +module.exports = PrAdapter;