first commit
This commit is contained in:
592
adapter/pradapter.js
Normal file
592
adapter/pradapter.js
Normal file
@ -0,0 +1,592 @@
|
||||
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();
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
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";
|
||||
|
||||
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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} 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;
|
||||
|
||||
var swherestatus="status='" + status +"',statusdescription='" + statusdescription +"',";
|
||||
if(sapmessage){
|
||||
swherestatus="";
|
||||
}
|
||||
|
||||
var setprnumber="prnumber='"+prsapnumber+"',";
|
||||
if(!prsapnumber){setprnumber="";}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
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+"'";
|
||||
|
||||
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;
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
async queryPrList(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 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="";
|
||||
if(nik){
|
||||
swherenik="iby='"+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;
|
||||
|
||||
// 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 queryPrManagementList(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
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(nik=='999999'){
|
||||
swherenik="";
|
||||
}
|
||||
|
||||
// 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
|
||||
{
|
||||
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 (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+"'";
|
||||
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
module.exports = PrAdapter;
|
||||
Reference in New Issue
Block a user