This commit is contained in:
Rizki
2026-03-12 10:11:48 +07:00
parent b59a9b830a
commit 4a75f278f7

View File

@ -1,92 +1,88 @@
const db=require('../config/dbproc.js'); const db = require("../config/dbproc.js");
const Adapter=require('./dbadapter.js'); const Adapter = require("./dbadapter.js");
const QRCode = require('qrcode'); const QRCode = require("qrcode");
const fs = require("fs"); const fs = require("fs");
class PrAdapter extends Adapter {
class PrAdapter extends Adapter{ constructor() {
constructor(){
super(); super();
} }
async queryPrJustificationList(req,callback){ async queryPrJustificationList(req, callback) {
var apires = this.getApiResultDefined(); var apires = this.getApiResultDefined();
try { try {
// console.log(req); // console.log(req);
let nik = req.query.nik; let nik = req.query.nik;
let qry = "select * from vw_justification where iscreatepr=0 and status=2 and iby='"+nik+"' order by id asc"; let qry =
"select * from vw_justification where iscreatepr=0 and status=2 and iby='" +
nik +
"' order by id asc";
// console.log(qry); // console.log(qry);
db.query(qry,[],function(err,result,fields){ db.query(qry, [], function (err, result, fields) {
if(err){ if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback('err',apires); callback("err", apires);
} } else {
else if (result.length > 0) {
{
if(result.length>0){
apires.success = true; apires.success = true;
apires.data = JSON.parse(JSON.stringify(result)); apires.data = JSON.parse(JSON.stringify(result));
} } else {
else{
apires.meta.code = 200; apires.meta.code = 200;
apires.meta.message = "Record Not Found"; apires.meta.message = "Record Not Found";
} }
callback(null, apires); callback(null, apires);
} }
}); });
} } catch (err) {
catch(err) {
apires.meta.code = 500; apires.meta.code = 500;
apires.meta.message = err.toString(); apires.meta.message = err.toString();
callback('error',apires); callback("error", apires);
} }
} }
async queryGetTrxIdPr(req, callback){ async queryGetTrxIdPr(req, callback) {
var apires = this.getApiResultDefined(); var apires = this.getApiResultDefined();
try { try {
let nik = req.query.nik; 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())"; 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); // console.log(qry);
db.query(qry,[],function(err,result,fields){ db.query(qry, [], function (err, result, fields) {
if(err){ if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback('err',apires); callback("err", apires);
} } else {
else
{
var resp = JSON.parse(JSON.stringify(result)); var resp = JSON.parse(JSON.stringify(result));
// console.log(resp[0]['dates']); // console.log(resp[0]['dates']);
var ymd = resp[0]['dates']; var ymd = resp[0]["dates"];
ymd = ymd.toString().trim().replace("-",""); ymd = ymd.toString().trim().replace("-", "");
var counter = resp[0]['totalrows']+1; var counter = resp[0]["totalrows"] + 1;
var counterstr = ("0000000000"+counter); var counterstr = "0000000000" + counter;
counterstr = counterstr.substring(counterstr.length-4, counterstr.length); counterstr = counterstr.substring(counterstr.length - 4, counterstr.length);
var trxid = "TCEL-PR/"+ymd+"/"+nik+"/"+counterstr; var trxid = "TCEL-PR/" + ymd + "/" + nik + "/" + counterstr;
apires.success = true; apires.success = true;
apires.data = trxid apires.data = trxid;
callback(null, apires); callback(null, apires);
} }
}); });
} catch (error) { } catch (error) {
apires.meta.code = 500; apires.meta.code = 500;
apires.meta.message = err.toString(); apires.meta.message = err.toString();
callback('error',apires); callback("error", apires);
} }
} }
async queryNewPr(req, callback){ async queryNewPr(req, callback) {
var apires = this.getApiResultDefined(); var apires = this.getApiResultDefined();
try { try {
// console.log(req.body); // console.log(req.body);
let idxjustification= req.body.idxjustification; let idxjustification = req.body.idxjustification;
let justificationnumber= req.body.justificationnumber; let justificationnumber = req.body.justificationnumber;
let trxidpr = req.body.trxidpr; let trxidpr = req.body.trxidpr;
let prnumber = req.body.prnumber ?? ""; let prnumber = req.body.prnumber ?? "";
let costcenter = req.body.costcenter; let costcenter = req.body.costcenter;
@ -105,43 +101,82 @@ class PrAdapter extends Adapter{
let statusdescription = "draft"; let statusdescription = "draft";
let qry = "insert into tbl_pr "; let qry = "insert into tbl_pr ";
qry = qry +"set trxidpr='"+trxidpr+"',prnumber='"+prnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',costcenter='"+costcenter+"',"; qry =
qry = qry +"profitcenter='"+profitcenter+"',description='"+description+"',qty='"+qty+"',unit='"+unit+"',netprice='"+netprice+"',totalvalue='"+totalvalue+"',"; qry +
qry = qry +"curr='"+curr+"',prdate='"+prdate+"',status='"+status+"',statusdescription='"+statusdescription+"',"; "set trxidpr='" +
qry = qry +"idxapproval='"+idxapproval+"',nikapproval='"+nikapproval+"',iby='"+nik+"',idt=now()"; 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); console.log(qry);
db.query(qry,[],function(err,result,fields){ db.query(qry, [], function (err, result, fields) {
if(err){ if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback('err',apires); callback("err", apires);
} } else {
else
{
var res = JSON.parse(JSON.stringify(result)); var res = JSON.parse(JSON.stringify(result));
apires.success = true; apires.success = true;
apires.meta.message = "Saved Success"; apires.meta.message = "Saved Success";
apires.data = res; apires.data = res;
callback(null, apires); callback(null, apires);
} }
}); });
} catch (err) { } catch (err) {
apires.meta.code = 500; apires.meta.code = 500;
apires.meta.message = err.toString(); apires.meta.message = err.toString();
callback('error',apires); callback("error", apires);
} }
} }
async queryUpdatePr(req, callback){ async queryUpdatePr(req, callback) {
var apires = this.getApiResultDefined(); var apires = this.getApiResultDefined();
try { try {
// console.log(req.body); // console.log(req.body);
let idxpr= req.body.idxpr; let idxpr = req.body.idxpr;
let idxjustification= req.body.idxjustification; let idxjustification = req.body.idxjustification;
let justificationnumber= req.body.justificationnumber; let justificationnumber = req.body.justificationnumber;
let trxidpr = req.body.trxidpr; let trxidpr = req.body.trxidpr;
let prnumber = req.body.prnumber ?? ""; let prnumber = req.body.prnumber ?? "";
let costcenter = req.body.costcenter; let costcenter = req.body.costcenter;
@ -160,37 +195,74 @@ class PrAdapter extends Adapter{
let statusdescription = "draft"; let statusdescription = "draft";
let qry = "update tbl_pr "; let qry = "update tbl_pr ";
qry = qry +"set trxidpr='"+trxidpr+"',prnumber='"+prnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',costcenter='"+costcenter+"',"; qry =
qry = qry +"profitcenter='"+profitcenter+"',description='"+description+"',qty='"+qty+"',unit='"+unit+"',netprice='"+netprice+"',totalvalue='"+totalvalue+"',"; qry +
qry = qry +"idxapproval='"+idxapproval+"',nikapproval='"+nikapproval+"',curr='"+curr+"',prdate='"+prdate+"',status='"+status+"',statusdescription='"+statusdescription+"',uby='"+nik+"',udt=now() "; "set trxidpr='" +
qry = qry +"where _idx='"+idxpr+"'"; 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); // console.log(qry);
db.query(qry,[],function(err,result,fields){ db.query(qry, [], function (err, result, fields) {
if(err){ if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback('err',apires); callback("err", apires);
} } else {
else
{
var res = JSON.parse(JSON.stringify(result)); var res = JSON.parse(JSON.stringify(result));
apires.success = true; apires.success = true;
apires.meta.message = "Updated Success"; apires.meta.message = "Updated Success";
apires.data = res; apires.data = res;
callback(null, apires); callback(null, apires);
} }
}); });
} catch (err) { } catch (err) {
apires.meta.code = 500; apires.meta.code = 500;
apires.meta.message = err.toString(); apires.meta.message = err.toString();
callback('error',apires); callback("error", apires);
} }
} }
async queryUpdateStatusPr(req,prsapnumber, sapmessage, callback) { async queryUpdateStatusPr(req, prsapnumber, sapmessage, callback) {
try { try {
var apires = this.getApiResultDefined(); var apires = this.getApiResultDefined();
var idxpr = req.body.idxpr; var idxpr = req.body.idxpr;
@ -200,34 +272,44 @@ class PrAdapter extends Adapter{
var curr = req.body.curr; var curr = req.body.curr;
var nik = req.body.nik; var nik = req.body.nik;
var swherestatus="status='" + status +"',statusdescription='" + statusdescription +"',"; var swherestatus = "status='" + status + "',statusdescription='" + statusdescription + "',";
if(sapmessage){ if (sapmessage) {
swherestatus=""; swherestatus = "";
} }
var setprnumber="prnumber='"+prsapnumber+"',"; var setprnumber = "prnumber='" + prsapnumber + "',";
if(!prsapnumber){setprnumber="";} 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); // console.log(setdescription);
var qry = "update tbl_pr set "+setprnumber+setdescription+"sapmessage='"+sapmessage+"',"+swherestatus+"uby='"+nik+"',udt=now() "; var qry =
qry = qry +"where _idx='" + idxpr +"'"; "update tbl_pr set " +
setprnumber +
setdescription +
"sapmessage='" +
sapmessage +
"'," +
swherestatus +
"uby='" +
nik +
"',udt=now() ";
qry = qry + "where _idx='" + idxpr + "'";
console.log(qry); console.log(qry);
db.query(qry,[],function(err,result,fields){ db.query(qry, [], function (err, result, fields) {
if(err){ if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback('err',apires); callback("err", apires);
} } else {
else
{
apires.success = true; apires.success = true;
apires.data = JSON.parse(JSON.stringify(result)); apires.data = JSON.parse(JSON.stringify(result));
callback(null, apires); callback(null, apires);
@ -236,11 +318,11 @@ class PrAdapter extends Adapter{
} catch (err) { } catch (err) {
apires.meta.code = 500; apires.meta.code = 500;
apires.meta.message = err.toString(); apires.meta.message = err.toString();
callback('error',apires); callback("error", apires);
} }
} }
async queryDeletePr(req, callback){ async queryDeletePr(req, callback) {
var apires = this.getApiResultDefined(); var apires = this.getApiResultDefined();
try { try {
let id = req.body.id; let id = req.body.id;
@ -248,17 +330,16 @@ class PrAdapter extends Adapter{
let nik = req.body.nik; let nik = req.body.nik;
let qry = "update tbl_pr "; let qry = "update tbl_pr ";
qry = qry +"set isdeleted=1,remarkdeleted='"+remarkdeleted+"',dby='"+nik+"',ddt=now()"; qry =
qry = qry +" where _idx='"+id+"'"; qry + "set isdeleted=1,remarkdeleted='" + remarkdeleted + "',dby='" + nik + "',ddt=now()";
qry = qry + " where _idx='" + id + "'";
db.query(qry,[],function(err,result,fields){ db.query(qry, [], function (err, result, fields) {
if(err){ if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback('err',apires); callback("err", apires);
} } else {
else
{
apires.success = true; apires.success = true;
apires.meta.message = "Deleted Success"; apires.meta.message = "Deleted Success";
callback(null, apires); callback(null, apires);
@ -267,54 +348,49 @@ class PrAdapter extends Adapter{
} catch (err) { } catch (err) {
apires.meta.code = 500; apires.meta.code = 500;
apires.meta.message = err.toString(); apires.meta.message = err.toString();
callback('error',apires); callback("error", apires);
} }
} }
async queryPrDetail(req,callback){ async queryPrDetail(req, callback) {
var apires = this.getApiResultDefined(); var apires = this.getApiResultDefined();
try { try {
let _idx = req.query.id;
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); // console.log(qry);
db.query(qry,[],function(err,result,fields){ db.query(qry, [], function (err, result, fields) {
if(err){ if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback('err',apires); callback("err", apires);
} } else {
else
{
let dataRows = result.length; let dataRows = result.length;
if(dataRows<=0){ if (dataRows <= 0) {
apires.meta.message = "Record not found"; apires.meta.message = "Record not found";
callback('',apires); callback("", apires);
} } else {
else{
let resultJson = JSON.stringify(result); let resultJson = JSON.stringify(result);
resultJson = JSON.parse(resultJson); resultJson = JSON.parse(resultJson);
apires.success = true; apires.success = true;
apires.data = resultJson; apires.data = resultJson;
callback(null,apires); callback(null, apires);
} }
} }
}); });
} catch (err) { } catch (err) {
apires.meta.code = 500; apires.meta.code = 500;
apires.meta.message = err.toString(); apires.meta.message = err.toString();
callback('error',apires); callback("error", apires);
} }
} }
async queryPrList(req,callback){ async queryPrList(req, callback) {
var apires = this.getApiResultDefined(); var apires = this.getApiResultDefined();
try { try {
const proc_nik = process.env.PROC_USER_NIK ?? "" const proc_nik = process.env.PROC_USER_NIK ?? "";
const proc_users = proc_nik.split(",") const proc_users = proc_nik.split(",");
let limit = req.body.limit; let limit = req.body.limit;
let offset = req.body.offset; let offset = req.body.offset;
@ -322,84 +398,93 @@ class PrAdapter extends Adapter{
let nik = req.body.nik; let nik = req.body.nik;
let status = req.body.status; let status = req.body.status;
// let qry = "select * from vw_pr "; let swherenik = "";
// 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=""; if (nik) {
if(nik){
if (!proc_users.includes(nik)) { if (!proc_users.includes(nik)) {
swherenik = '(iby="'+nik+' or nikapproval="'+nik+'") and '; swherenik = '(iby="' + nik + '" or nikapproval="' + nik + '") and ';
} }
} }
let qry = "select * from vw_pr "; let qry = "select * from vw_pr ";
qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') "; qry +=
qry = qry +"and "+swherenik+" status in("+status+") order by id asc limit " + offset + ", " + limit; "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); // console.log(qry);
db.query(qry,[],function(err,result,fields){ db.query(qry, [], function (err, result, fields) {
if(err){ if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback('err',apires); callback("err", apires);
} } else {
else if (result.length > 0) {
{
if(result.length>0){
let pagination = result.length / limit; let pagination = result.length / limit;
if(!Number.isInteger(pagination)){ if (!Number.isInteger(pagination)) {
pagination=(Math.floor(result.length / limit))+1; pagination = Math.floor(result.length / limit) + 1;
} }
// let pagination = Adapter.getPagination(result.length, limit); // let pagination = Adapter.getPagination(result.length, limit);
apires.success = true; apires.success = true;
apires.data.push({ apires.data.push({
"totalpage": pagination, "totalpage": pagination,
"totalrows": result.length "totalrows": result.length,
}); });
qry = "select * from vw_pr "; qry = "select * from vw_pr ";
qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') "; qry =
qry = qry +"and "+swherenik+" status in("+status+") order by id asc limit " + offset + ", " + limit; 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); // console.log(qry);
db.query(qry,[],function(err,result,fields){ db.query(qry, [], function (err, result, fields) {
if(err){ if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback('err',apires); callback("err", apires);
} } else {
else
{
apires.data.push({ apires.data.push({
"results": JSON.parse(JSON.stringify(result)) "results": JSON.parse(JSON.stringify(result)),
}); });
callback(null, apires); callback(null, apires);
} }
}); });
} } else {
else{
apires.meta.code = 200; apires.meta.code = 200;
apires.meta.message = "Record Not Found"; apires.meta.message = "Record Not Found";
callback(null, apires); callback(null, apires);
} }
} }
}); });
} catch (err) { } catch (err) {
apires.meta.code = 500; apires.meta.code = 500;
apires.meta.message = err.toString(); apires.meta.message = err.toString();
callback('error',apires); callback("error", apires);
} }
} }
async queryApprovedPR(req, callback) { async queryApprovedPR(req, callback) {
try { try {
var apires = this.getApiResultDefined(); var apires = this.getApiResultDefined();
let idxpr= req.body.idxpr; let idxpr = req.body.idxpr;
let idxjustification= req.body.idxjustification; let idxjustification = req.body.idxjustification;
let justificationnumber= req.body.justificationnumber; let justificationnumber = req.body.justificationnumber;
let trxidpr = req.body.trxidpr; let trxidpr = req.body.trxidpr;
let prnumber = req.body.prnumber; let prnumber = req.body.prnumber;
let costcenter = req.body.costcenter; let costcenter = req.body.costcenter;
@ -417,178 +502,214 @@ class PrAdapter extends Adapter{
let status = 2; let status = 2;
let statusdescription = "Approval"; let statusdescription = "Approval";
let approveddate = req.body.approveddate; let approveddate = req.body.approveddate;
var token =this.getToken(); var token = this.getToken();
var filepng = token+"pr.png"; var filepng = token + "pr.png";
// token =getToken(); // token =getToken();
token = token +","+nikapproval; token = token + "," + nikapproval;
let qry = "update tbl_pr "; let qry = "update tbl_pr ";
qry = qry +"set trxidpr='"+trxidpr+"',prnumber='"+prnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',costcenter='"+costcenter+"',"; qry =
qry = qry +"profitcenter='"+profitcenter+"',description='"+description+"',qty='"+qty+"',unit='"+unit+"',netprice='"+netprice+"',totalvalue='"+totalvalue+"',"; qry +
qry = qry +"idxapproval='"+idxapproval+"',nikapproval='"+nikapproval+"',approveddate='"+approveddate+"',curr='"+curr+"',prdate='"+prdate+"',status='"+status+"',statusdescription='"+statusdescription+"',"; "set trxidpr='" +
qry = qry +"token=md5('"+token+"'),filepng='"+filepng+"',uby='"+nik+"',udt=now() "; trxidpr +
qry = qry +"where _idx='"+idxpr+"'"; "',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); // console.log(qry);
db.query(qry,[],function(err,result,fields){ db.query(qry, [], function (err, result, fields) {
if(err){ if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback('err',apires); callback("err", apires);
} } else {
else
{
QRCode.toDataURL(token, function (err, code) { QRCode.toDataURL(token, function (err, code) {
// console.log(code); // console.log(code);
if(err) { if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback('err',apires); callback("err", apires);
} } else {
else
{
var imageBuffer = Adapter.decodeBase64Image(code); var imageBuffer = Adapter.decodeBase64Image(code);
fs.writeFile('./assets/png/'+filepng, imageBuffer.data, function(err) { fs.writeFile("./assets/png/" + filepng, imageBuffer.data, function (err) {
// console.log(err); // console.log(err);
if(err){ if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback(err.toString(), apires); callback(err.toString(), apires);
} } else {
else{
apires.success = true; apires.success = true;
apires.data = { apires.data = {
"isapproved":1, "isapproved": 1,
"token":token, "token": token,
"urltoken": process.env.BASEURL+"/main/getimageinfo?route=png&name="+filepng "urltoken":
process.env.BASEURL + "/main/getimageinfo?route=png&name=" + filepng,
}; };
callback(null, apires); callback(null, apires);
} }
}); });
} }
}); });
} }
}); });
} catch (err) { } catch (err) {
apires.meta.code = 500; apires.meta.code = 500;
apires.meta.message = err.toString(); apires.meta.message = err.toString();
callback('error',apires); callback("error", apires);
} }
} }
async queryPrManagementList(req,callback){ async queryPrManagementList(req, callback) {
var apires = this.getApiResultDefined(); var apires = this.getApiResultDefined();
try { try {
const proc_nik = process.env.PROC_USER_NIK ?? "" const proc_nik = process.env.PROC_USER_NIK ?? "";
const proc_users = proc_nik.split(",") const proc_users = proc_nik.split(",");
let limit = req.query.limit; let limit = req.query.limit;
let offset = req.query.offset; let offset = req.query.offset;
let keyword = req.query.keyword; let keyword = req.query.keyword;
let nik = req.query.nik; let nik = req.query.nik;
let swherenik="and iby='"+nik+"'"; let swherenik = "and iby='" + nik + "'";
if (!proc_users.includes(nik)) { if (!proc_users.includes(nik)) {
swherenik=""; swherenik = "";
} }
// let qry = "select * from vw_prmanagement "; // let qry = "select * from vw_prmanagement ";
// qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') "; // qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') ";
// qry = qry +swherenik+" order by id asc limit " + offset + ", " + limit; // qry = qry +swherenik+" order by id asc limit " + offset + ", " + limit;
let qry = "select * from vw_prmanagement "; let qry = "select * from vw_prmanagement ";
qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') "; qry =
qry +
"where (trim(trxidpr) like '%" +
keyword +
"%' or trim(prnumber) like '%" +
keyword +
"%') ";
// qry = qry +swherenik+" order by id asc limit " + offset + ", " + limit; // qry = qry +swherenik+" order by id asc limit " + offset + ", " + limit;
// console.log(qry); // console.log(qry);
db.query(qry,[],function(err,result,fields){ db.query(qry, [], function (err, result, fields) {
if(err){ if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback('err',apires); callback("err", apires);
} } else {
else if (result.length > 0) {
{
if(result.length>0){
let pagination = result.length / limit; let pagination = result.length / limit;
if(!Number.isInteger(pagination)){ if (!Number.isInteger(pagination)) {
pagination=(Math.floor(result.length / limit))+1; pagination = Math.floor(result.length / limit) + 1;
} }
// let pagination = Adapter.getPagination(result.length, limit); // let pagination = Adapter.getPagination(result.length, limit);
apires.success = true; apires.success = true;
apires.data.push({ apires.data.push({
"totalpage": pagination, "totalpage": pagination,
"totalrows": result.length "totalrows": result.length,
}); });
qry = "select * from vw_prmanagement "; qry = "select * from vw_prmanagement ";
qry = qry +"where status >= 2 and (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') "; qry =
qry = qry + swherenik +" order by id asc limit " + offset + ", " + limit; qry +
db.query(qry,[],function(err,result,fields){ "where status >= 2 and (trim(trxidpr) like '%" +
if(err){ keyword +
apires.meta['message'] = err.toString(); "%' or trim(prnumber) like '%" +
apires.meta['code'] = 500; keyword +
callback('err',apires); "%') ";
} qry = qry + swherenik + " order by id asc limit " + offset + ", " + limit;
else 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({ apires.data.push({
"results": JSON.parse(JSON.stringify(result)) "results": JSON.parse(JSON.stringify(result)),
}); });
callback(null, apires); callback(null, apires);
} }
}); });
} } else {
else{
apires.meta.code = 200; apires.meta.code = 200;
apires.meta.message = "Record Not Found"; apires.meta.message = "Record Not Found";
callback(null, apires); callback(null, apires);
} }
} }
}); });
} catch (err) { } catch (err) {
apires.meta.code = 500; apires.meta.code = 500;
apires.meta.message = err.toString(); apires.meta.message = err.toString();
callback('error',apires); callback("error", apires);
} }
} }
async queryPrManagementListDetail(req,callback){ async queryPrManagementListDetail(req, callback) {
var apires = this.getApiResultDefined(); var apires = this.getApiResultDefined();
try { try {
let idxpr = req.query.idxpr; let idxpr = req.query.idxpr;
let qry = "select * from vw_prmanagement "; let qry = "select * from vw_prmanagement ";
qry = qry +"where id='"+idxpr+"'"; qry = qry + "where id='" + idxpr + "'";
// console.log(qry); // console.log(qry);
db.query(qry,[],function(err,result,fields){ db.query(qry, [], function (err, result, fields) {
if(err){ if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback('err',apires); callback("err", apires);
} } else {
else
{
apires.meta.code = 200; apires.meta.code = 200;
if(result.length>0){ if (result.length > 0) {
apires.success = true; apires.success = true;
apires.data=JSON.parse(JSON.stringify(result)); apires.data = JSON.parse(JSON.stringify(result));
} } else {
else{
apires.meta.message = "Record Not Found"; apires.meta.message = "Record Not Found";
} }
callback(null, apires); callback(null, apires);
} }
}); });
} catch (err) { } catch (err) {
apires.meta.code = 500; apires.meta.code = 500;
apires.meta.message = err.toString(); apires.meta.message = err.toString();
callback('error',apires); callback("error", apires);
} }
} }
@ -599,19 +720,17 @@ class PrAdapter extends Adapter{
var nik = req.body.nik; var nik = req.body.nik;
// console.log(setdescription); // console.log(setdescription);
var qry = "update tbl_pr set sapmessage='"+sapmessage+"', uby='"+nik+"',udt=now() "; var qry = "update tbl_pr set sapmessage='" + sapmessage + "', uby='" + nik + "',udt=now() ";
qry = qry +"where _idx='" + idxpr +"'"; qry = qry + "where _idx='" + idxpr + "'";
console.log('qry', qry) console.log("qry", qry);
db.query(qry,[],function(err,result,fields){ db.query(qry, [], function (err, result, fields) {
if(err){ if (err) {
apires.meta['message'] = err.toString(); apires.meta["message"] = err.toString();
apires.meta['code'] = 500; apires.meta["code"] = 500;
callback('err',apires); callback("err", apires);
} } else {
else
{
apires.success = true; apires.success = true;
apires.data = JSON.parse(JSON.stringify(result)); apires.data = JSON.parse(JSON.stringify(result));
callback(null, apires); callback(null, apires);
@ -620,11 +739,9 @@ class PrAdapter extends Adapter{
} catch (err) { } catch (err) {
apires.meta.code = 500; apires.meta.code = 500;
apires.meta.message = err.toString(); apires.meta.message = err.toString();
callback('error',apires); callback("error", apires);
} }
} }
} }
module.exports = PrAdapter; module.exports = PrAdapter;