2136 lines
99 KiB
JavaScript
2136 lines
99 KiB
JavaScript
const db=require('../config/dbproc.js');
|
|
const Adapter=require('./dbadapter.js');
|
|
const QRCode = require('qrcode');
|
|
const fs = require("fs");
|
|
const { start } = require('repl');
|
|
|
|
|
|
function getToken(){
|
|
try {
|
|
var n1=Math.floor(Math.random() * 9) + 0;
|
|
var n2=Math.floor(Math.random() * 9) + 0;
|
|
var n3=Math.floor(Math.random() * 9) + 0;
|
|
var n4=Math.floor(Math.random() * 9) + 0;
|
|
var n5=Math.floor(Math.random() * 9) + 0;
|
|
var n6=Math.floor(Math.random() * 9) + 0;
|
|
var otp=n1.toString()+n2.toString()+n3.toString()+n4.toString()+n5.toString()+n6.toString();
|
|
// console.log(otp);
|
|
return otp;
|
|
} catch (error) {
|
|
return error;
|
|
}
|
|
}
|
|
|
|
class PoAdapter extends Adapter{
|
|
constructor(){
|
|
super();
|
|
}
|
|
|
|
|
|
async queryVendorList(req,callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
let keyword= req.query.keyword;
|
|
let qry = "select * from vw_vendorinfo where vendorname like '%"+keyword+"%' or vendorid like '%"+keyword+"%' 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 queryPoBoqlist(req,callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
let idxpr= req.query.idxpr;
|
|
let qry = "select * from vw_poboq where idxpr='"+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){
|
|
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 queryGetidxpoheader(req, callback){
|
|
try {
|
|
// console.log(req);
|
|
var apires = this.getApiResultDefined();
|
|
var idxpr = req.query.idxpr;
|
|
var idxpo = req.query.idxpo;
|
|
var idxvendor = req.query.idxvendor;
|
|
|
|
var qry = "select _idx from tbl_po where idxpr='"+idxpr+"' and idxvendor='"+idxvendor+"' and isdeleted=0 order by _idx desc limit 1";
|
|
if(idxpo>0){
|
|
qry = "select _idx from tbl_po where _idx='"+idxpo+"' and isdeleted=0 order by _idx desc limit 1";
|
|
}
|
|
// 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 idxpo = 0;
|
|
if(result.length>0){
|
|
idxpo = result[0]['_idx'];
|
|
}
|
|
apires.success = true;
|
|
apires.data = {"idxpo":idxpo};
|
|
// console.log(apires);
|
|
callback(null, apires);
|
|
}
|
|
});
|
|
} catch (err) {
|
|
apires.meta.code = 500;
|
|
apires.meta.message = err.toString();
|
|
callback('error',apires);
|
|
}
|
|
}
|
|
|
|
async querySaveboqdetail(req,callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
let idxpo= req.body.idxpo;
|
|
let idxpr= req.body.idxpr;
|
|
let prnumber= req.body.prnumber;
|
|
let idxjustification = req.body.idxjustification;
|
|
let idxjustificationboq = req.body.idxjustificationboq;
|
|
let justificationnumber = req.body.justificationnumber;
|
|
// let podate = req.body.podate;
|
|
let status = 0;
|
|
let statusdescription = "Submitted";
|
|
let nik = req.body.nik;
|
|
|
|
// === PO boq;
|
|
let idxpoboq = req.body.idxpoboq;
|
|
let startdate = req.body.startdate;
|
|
let enddate = req.body.enddate;
|
|
let items = req.body.items;
|
|
let qty = req.body.qty;
|
|
let unitprice = req.body.unitprice;
|
|
let units = req.body.units;
|
|
let total = req.body.total;
|
|
let spidxvendor = req.body.idxvendor.split(',');
|
|
let idxvendor = spidxvendor[0];
|
|
let vendorid = (spidxvendor[1]).toString().trim();
|
|
let vendorname = req.body.vendorname.toString().trim();
|
|
let description = req.body.description;
|
|
let curr = req.body.curr;
|
|
let hs = req.body.hs;
|
|
let poamount = req.body.poamount;
|
|
let ratepo = req.body.ratepo;
|
|
let migo = req.body.migo;
|
|
let idxpoold = req.body.idxpoold;
|
|
|
|
let qry="";
|
|
if(idxpoold!=idxpo&&idxpoold!=0){
|
|
qry="update tbl_po set isdeleted=1,remarkdeleted='Change Vendor',dby='"+nik+"',ddt=now() where _idx='"+idxpoold+"'";
|
|
db.query(qry);
|
|
}
|
|
|
|
qry = "select _idx from tbl_po where idxpr='"+idxpr+"' and idxvendor='"+idxvendor+"' and isdeleted=0 order by _idx desc limit 1";
|
|
console.log(idxpo);
|
|
if(idxpo>0){
|
|
qry = "select _idx from tbl_po where _idx='"+idxpo+"' and isdeleted=0 order by _idx desc limit 1";
|
|
}
|
|
|
|
console.log(qry);
|
|
|
|
// let qry = "select _idx from tbl_po where idxpr='"+idxpr+"' and idxpoboq in('"+idxpoboq+"') and isdeleted=0 order by _idx desc limit 1";
|
|
// 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 jsresult = JSON.parse(JSON.stringify(result));
|
|
// console.log(jsresult);
|
|
let idxheader = jsresult.length > 0 ? jsresult[0]['_idx'] : 0;
|
|
// console.log(idxheader);
|
|
qry = "insert into tbl_po set idxpr='"+idxpr+"',prnumber='"+prnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',";
|
|
qry = qry + "idxvendor='"+idxvendor+"',vendorid='"+vendorid+"',vendorname='"+vendorname+"',podate=now(),status='"+status+"',statusdescription='"+statusdescription+"',iby='"+nik+"',idt=now()";
|
|
if(result.length>0){
|
|
// qry = "update tbl_po set idxpr='"+idxpr+"',prnumber='"+prnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',";
|
|
// qry = qry + "podate=now(),status='"+status+"',statusdescription='"+statusdescription+"',uby='"+nik+"',udt=now() ";
|
|
// qry = qry + "where idxpr='"+idxpr+"'";
|
|
qry = "update tbl_po set idxvendor='"+idxvendor+"',vendorid='"+vendorid+"',vendorname='"+vendorname+"',uby='"+nik+"',udt=now() ";
|
|
qry = qry + "where idxpr='"+idxpr+"' and idxvendor='"+idxvendor+"' and isdeleted=0";
|
|
if(idxpo>0){
|
|
qry = "update tbl_po set idxvendor='"+idxvendor+"',vendorid='"+vendorid+"',vendorname='"+vendorname+"',uby='"+nik+"',udt=now() ";
|
|
qry = qry + "where _idx='"+idxpo+"' and isdeleted=0";
|
|
|
|
}
|
|
}
|
|
|
|
// console.log(qry);
|
|
db.query(qry,[],function(err1,result1,fields1){
|
|
if(err1){
|
|
apires.meta['message'] = err1.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('err',apires);
|
|
}
|
|
else{
|
|
if(idxheader<=0){
|
|
idxheader = result1.insertId;
|
|
}
|
|
|
|
// ==== Insert / Update boq PO
|
|
qry = "select _idx from tbl_poboq where _idx='"+idxpoboq+"'";
|
|
// console.log(qry);
|
|
db.query(qry,[],function(err2,result2,fields2){
|
|
if(err2){
|
|
apires.meta['message'] = err2.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('err',apires);
|
|
}
|
|
else{
|
|
// ==== Insert / update boq
|
|
qry = "insert into tbl_poboq set idxheader='"+idxheader+"',idxjustification='"+idxjustification+"',idxjustificationboq='"+idxjustificationboq+"',items='"+items+"',";
|
|
qry = qry + "qty='"+qty+"',unitprice='"+unitprice+"',units='"+units+"',total='"+total+"',idxvendor='"+idxvendor+"',vendorid='"+vendorid+"',vendorname='"+vendorname+"',";
|
|
qry = qry + "startdate='"+startdate+"',enddate='"+enddate+"',description='"+description+"',curr='"+curr+"',hs='"+hs+"',poamount='"+poamount+"',ratepo='"+ratepo+"',migo='"+migo+"',";
|
|
qry = qry + "status='"+status+"',statusdescription='"+statusdescription+"',iby='"+nik+"',idt=now()";
|
|
if(result2.length>0){
|
|
qry = "update tbl_poboq set idxheader='"+idxheader+"',idxjustification='"+idxjustification+"',idxjustificationboq='"+idxjustificationboq+"',items='"+items+"',";
|
|
qry = qry + "qty='"+qty+"',unitprice='"+unitprice+"',units='"+units+"',total='"+total+"',idxvendor='"+idxvendor+"',vendorid='"+vendorid+"',vendorname='"+vendorname+"',";
|
|
qry = qry + "startdate='"+startdate+"',enddate='"+enddate+"',description='"+description+"',curr='"+curr+"',hs='"+hs+"',poamount='"+poamount+"',ratepo='"+ratepo+"',migo='"+migo+"',";
|
|
qry = qry + "status='"+status+"',statusdescription='"+statusdescription+"',uby='"+nik+"',udt=now() ";
|
|
qry = qry + "where _idx='"+idxpoboq+"'";
|
|
}
|
|
|
|
//console.log(qry);
|
|
|
|
db.query(qry,[],function(err3,result3,fields3){
|
|
if(err3){
|
|
apires.meta['message'] = err3.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('err',apires);
|
|
}
|
|
else{
|
|
apires.success = true;
|
|
apires.data = {
|
|
"idxpoboq" : idxpoboq>0 ? parseInt(idxpoboq) : result3.insertId,
|
|
"idxpo" : idxheader>0 ? parseInt(idxheader) : 0
|
|
|
|
};
|
|
callback('',apires);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
})
|
|
//callback(null, apires);
|
|
}
|
|
});
|
|
}
|
|
catch(err) {
|
|
apires.meta.code = 500;
|
|
apires.meta.message = err.toString();
|
|
callback('error',apires);
|
|
}
|
|
}
|
|
|
|
|
|
async queryDeletePoBoq(req, callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
let idxpoboq = req.body.idxpoboq;
|
|
let remarkdeleted = req.body.remarkdeleted;
|
|
let nik = req.body.nik;
|
|
|
|
let qry = "update tbl_poboq ";
|
|
qry = qry +"set isdeleted=1,remarkdeleted='"+remarkdeleted+"',dby='"+nik+"',ddt=now()";
|
|
qry = qry +" where _idx='"+idxpoboq+"'";
|
|
|
|
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 querypoBoqDetail(req,callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
let idxpoboq = req.body.idxpoboq;
|
|
let qry = "select * from vw_poboq where idxpoboq in("+idxpoboq+")";
|
|
|
|
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 queryUpdatePoHeader(req, callback){
|
|
try {
|
|
var apires = this.getApiResultDefined();
|
|
var idxpo = req.body.idxpo;
|
|
var idxpoboq = req.body.idxpoboq;
|
|
var vper_start = req.body.vper_start;
|
|
var podatettd = req.body.vper_start;
|
|
var vper_end = req.body.vper_end;
|
|
var idxvendor = req.body.idxvendor;
|
|
var vendorid = req.body.vendorid;
|
|
var vendorname = req.body.vendorname;
|
|
var totalpo = req.body.totalpo;
|
|
var totalqty = req.body.totalqty;
|
|
var podate = req.body.podate;
|
|
var units = "PKT";
|
|
// var podescription = req.body.podescription;
|
|
var idxapproval= req.body.idxapproval;
|
|
var nikapproval = req.body.nikapproval;
|
|
var nik = req.body.nik;
|
|
// var ttd = JSON.parse(req.body.ttd);
|
|
|
|
// console.log(ttd);
|
|
var qry = "update tbl_po set idxvendor='"+idxvendor+"',vendorid='"+vendorid+"',vendorname='"+vendorname+"',";
|
|
qry = qry + "podescription=contractdescription,idxpoboq='"+idxpoboq+"',units='"+units+"',totalqty='"+totalqty+"',totalpo='"+totalpo+"',";
|
|
qry = qry + "vper_start='"+vper_start+"',vper_end='"+vper_end+"',podate='"+podate+"',podatettd='"+podatettd+"',idxapproval='"+idxapproval+"',";
|
|
qry = qry + "nikapproval='"+nikapproval+"',approveddate='"+podatettd+"',uby='"+nik+"',udt=now() ";
|
|
qry = qry + "where _idx='"+idxpo+"'";
|
|
|
|
|
|
// 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
|
|
{
|
|
qry = "select * from vw_po where _idx='"+idxpo+"'";
|
|
db.query(qry,[],function(err,result1,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(result1));
|
|
callback(null, apires);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
} catch (err) {
|
|
apires.meta.code = 500;
|
|
apires.meta.message = err.toString();
|
|
callback('error',apires);
|
|
}
|
|
}
|
|
|
|
async queryUpdatePoHeaderold(req, callback){
|
|
try {
|
|
var apires = this.getApiResultDefined();
|
|
var idxpo = req.body.idxpo;
|
|
var idxpoboq = req.body.idxpoboq;
|
|
var vper_start = req.body.vper_start;
|
|
var podatettd = req.body.vper_start;
|
|
var vper_end = req.body.vper_end;
|
|
var idxvendor = req.body.idxvendor;
|
|
var vendorid = req.body.vendorid;
|
|
var vendorname = req.body.vendorname;
|
|
var totalpo = req.body.totalpo;
|
|
var totalqty = req.body.totalqty;
|
|
var units = "PKT";
|
|
// var podescription = req.body.podescription;
|
|
var nik = req.body.nik;
|
|
var ttd = JSON.parse(req.body.ttd);
|
|
|
|
console.log(ttd);
|
|
var qry = "update tbl_po set idxvendor='"+idxvendor+"',vendorid='"+vendorid+"',vendorname='"+vendorname+"',";
|
|
qry = qry + "podescription=contractdescription,idxpoboq='"+idxpoboq+"',units='"+units+"',totalqty='"+totalqty+"',totalpo='"+totalpo+"',";
|
|
qry = qry + "vper_start='"+vper_start+"',vper_end='"+vper_end+"',podate=now(),podatettd='"+podatettd+"',uby='"+nik+"',udt=now() ";
|
|
qry = qry + "where _idx='"+idxpo+"'";
|
|
|
|
|
|
// 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
|
|
{
|
|
// === set ttd
|
|
// var approval = approval.disetujuioleh;
|
|
|
|
Object.keys(ttd).forEach(function(key){
|
|
var token = getToken();
|
|
var id = ttd[key]['id'] || 0;
|
|
var idemployee = ttd[key]['idemployee'];
|
|
var nik = ttd[key]['nik'];
|
|
var action = ttd[key]['action'];
|
|
|
|
qry = "insert into tbl_pottd set idxpo='"+idxpo+"',idemployee='"+idemployee+"',";
|
|
qry = qry + "nik='"+nik+"',category='APR',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
|
if(action=='update'){
|
|
qry = "update tbl_justificationttd set idxpo='"+idxpo+"',idemployee='"+idemployee+"',";
|
|
qry = qry + "nik='"+nik+"',category='APR',token='"+token+"',imgqr='',uby='"+nik+"',udt=now() ";
|
|
qry = qry + "where _idx='"+id+"'";
|
|
}
|
|
if(action=='delete'){
|
|
qry = "update tbl_pottd set isdeleted=1,dby='"+nik+"',ddt=now() ";
|
|
qry = qry+ "where _idx='"+id+"'";
|
|
}
|
|
console.log(qry);
|
|
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
|
});
|
|
qry = "select * from vw_po where _idx='"+idxpo+"'";
|
|
db.query(qry,[],function(err,result1,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(result1));
|
|
callback(null, apires);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
} catch (err) {
|
|
apires.meta.code = 500;
|
|
apires.meta.message = err.toString();
|
|
callback('error',apires);
|
|
}
|
|
}
|
|
|
|
async queryGetLastSignDate(req, callback) {
|
|
try {
|
|
var apires = this.getApiResultDefined();
|
|
let idxjustification= req.body.idxjustification;
|
|
let qry="select idxjustification,nik,date_format(signeddate,'%Y-%m-%d') signeddate ";
|
|
qry+="from tbl_justificationttd where category='APR' and idxjustification='"+idxjustification+"' and not(signeddate is null) order by signeddate desc limit 1";
|
|
|
|
// 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 querySignedPo(req, callback) {
|
|
try {
|
|
var apires = this.getApiResultDefined();
|
|
let idxpo= req.body.idxpo;
|
|
var idxapproval = req.body.idxapproval;
|
|
var nikapproval = req.body.nikapproval;
|
|
var datesigned = req.body.datesigned;
|
|
// console.log(datesigned);
|
|
var nik = req.body.nik;
|
|
var token = this.getToken();
|
|
var filepng = token+".png";
|
|
// token =getToken();
|
|
token = token +","+nikapproval;
|
|
|
|
QRCode.toDataURL(token, function (err, code) {
|
|
// console.log(code);`
|
|
if(err) {
|
|
console.log('ddf');
|
|
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){
|
|
console.log('eee');
|
|
apires.meta['message'] = err.toString();
|
|
apires.meta['code'] = 500;
|
|
callback(err.toString(), apires);
|
|
}
|
|
else{
|
|
var qry = "update tbl_po set token=md5('"+token+"'),filepng='"+filepng+"',status='6',statusdescription='Approved',approveddate='"+datesigned+"',uby='"+nik+"',udt=now() ";
|
|
qry = qry +"where _idx='" + idxpo +"'";
|
|
// console.log(qry);
|
|
db.query(qry,[],function(err,result,fields){
|
|
if(err){
|
|
// console.log('ttetete');
|
|
apires.meta['message'] = err.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('err',apires);
|
|
}
|
|
else
|
|
{
|
|
apires.success = true;
|
|
// ===
|
|
qry = "select status from tbl_po where _idx='"+idxpo+"'";
|
|
db.query(qry,[],function(err,result2,fields){
|
|
if(err){
|
|
console.log('bbbb');
|
|
apires.meta['message'] = err.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('error',apires);
|
|
}
|
|
else
|
|
{
|
|
var status = result2[0]['status'];
|
|
var isapproved=0;
|
|
if(status==6){isapproved = 1;}
|
|
apires.data = {
|
|
"isapproved":isapproved,
|
|
"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 querySignedPoold(req, callback) {
|
|
try {
|
|
var apires = this.getApiResultDefined();
|
|
let idxpo= req.body.idxpo;
|
|
var idxapproval = req.body.idxapproval;
|
|
var nikapproval = req.body.nikapproval;
|
|
var datesigned = req.body.datesigned;
|
|
// console.log(datesigned);
|
|
var nik = req.body.nik;
|
|
var token = this.getToken();
|
|
var filepng = token+".png";
|
|
// token =getToken();
|
|
token = token +","+nikapproval;
|
|
|
|
QRCode.toDataURL(token, function (err, code) {
|
|
// console.log(code);`
|
|
if(err) {
|
|
console.log('ddf');
|
|
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){
|
|
console.log('eee');
|
|
apires.meta['message'] = err.toString();
|
|
apires.meta['code'] = 500;
|
|
callback(err.toString(), apires);
|
|
}
|
|
else{
|
|
var qry = "update tbl_pottd set token=md5('"+token+"'),imgqr='"+filepng+"',issigned='1',signeddate='"+datesigned+"',uby='"+nik+"',udt=now() ";
|
|
qry = qry +"where _idx='" + idxapproval +"'";
|
|
// console.log(qry);
|
|
db.query(qry,[],function(err,result,fields){
|
|
if(err){
|
|
// console.log('ttetete');
|
|
apires.meta['message'] = err.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('err',apires);
|
|
}
|
|
else
|
|
{
|
|
apires.success = true;
|
|
// ===
|
|
qry = "select status from tbl_po where _idx='"+idxpo+"'";
|
|
db.query(qry,[],function(err,result2,fields){
|
|
if(err){
|
|
console.log('bbbb');
|
|
apires.meta['message'] = err.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('error',apires);
|
|
}
|
|
else
|
|
{
|
|
var status = result2[0]['status'];
|
|
var isapproved=0;
|
|
if(status==2){isapproved = 1;}
|
|
apires.data = {
|
|
"isapproved":isapproved,
|
|
"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 querycheckidentifyprocject(req,identifyprojectnumber,callback){
|
|
try {
|
|
var apires = this.getApiResultDefined();
|
|
var qry = "select _idx from tbl_po where identifyprojectnumber='"+identifyprojectnumber+"' and isdeleted=0 order by _idx desc limit 1";
|
|
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;
|
|
}
|
|
else{
|
|
apires.meta.message = "Nomor SP3 "+identifyprojectnumber+" Sudah digunakan, mohon masukkan nomor SP3 yang lain. TERIMA KASIH";
|
|
}
|
|
callback('',apires);
|
|
}
|
|
});
|
|
} catch (err) {
|
|
apires.meta['message'] = err.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('err',apires);
|
|
}
|
|
}
|
|
|
|
async queryUpdateIdentifyProject(req, callback){
|
|
try {
|
|
var apires = this.getApiResultDefined();
|
|
var idxpr = req.body.idxpr;
|
|
var prnumber = req.body.prnumber;
|
|
var idxpoboq = req.body.idxpoboq;
|
|
var idxpo = req.body.idxpo;
|
|
var totalpoboq = req.body.totalpoboq;
|
|
var totalqty = req.body.totalqty;
|
|
var idxvendor = req.body.idxvendor;
|
|
var vendorname = req.body.vendorname;
|
|
var vendorid = req.body.vendorid;
|
|
var idxjustification = req.body.idxjustification;
|
|
var justificationnumber = req.body.justificationnumber;
|
|
var podate=req.body.vper_start;
|
|
var status = req.body.status;
|
|
var statusdescription = req.body.statusdescription;
|
|
var identifyprojectnumber = req.body.identifyprojectnumber;
|
|
var contractdescription = req.body.contractdescription;
|
|
var contractperiodfrom = req.body.contractperiodfrom;
|
|
var contractperiodto = req.body.contractperiodto;
|
|
var nik = req.body.nik;
|
|
|
|
// var qry ="select _idx from tbl_po where status=0 and isdeleted=0 order by _idx desc limit 1";
|
|
var qry ="select _idx from tbl_po where _idx='"+idxpo+"' and (identifyprojectnumber is null or identifyprojectnumber='') and isdeleted=0 order by _idx desc limit 1";
|
|
// 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){
|
|
qry="insert into tbl_po set ponumber='000',idxpr='"+idxpr+"',prnumber='"+prnumber+"',idxjustification='"+idxjustification+"',";
|
|
qry+="justificationnumber='"+justificationnumber+"',idxvendor='"+idxvendor+"',vendorname='"+vendorname+"',vendorid='"+vendorid+"',podate='"+podate+"',";
|
|
qry+="podescription='"+contractdescription+"',identifyprojectnumber='"+identifyprojectnumber+"',contractdescription='"+contractdescription+"',";
|
|
qry+="contractperiodfrom='"+contractperiodfrom+"',contractperiodto='"+contractperiodto+"',units='PKT',totalqty='"+totalqty+"',";
|
|
qry+="totalpo='"+totalpoboq+"',status='"+status+"',statusdescription='"+statusdescription+"',idxpoboq='"+idxpoboq+"',";
|
|
qry+="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 idxheader = result.insertId;
|
|
qry="update tbl_poboq set idxheader='"+idxheader+"',identifyprojectnumber='"+identifyprojectnumber+"',status='"+status+"',statusdescription='"+statusdescription+"' ";
|
|
qry+="where _idx in("+idxpoboq+")";
|
|
console.log(qry);
|
|
db.query(qry,[],function(err,result1,fields){
|
|
if(err){
|
|
apires.meta['message'] = err.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('err',apires);
|
|
}
|
|
else
|
|
{
|
|
qry = "select * from vw_po where _idx='"+idxpo+"'";
|
|
db.query(qry,[],function(err,result1,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(result1));
|
|
callback(null, apires);
|
|
}
|
|
});
|
|
}
|
|
|
|
});
|
|
}
|
|
});
|
|
}
|
|
else{
|
|
// qry="update tbl_po set idxpoboq='"+idxpoboq+"',identifyprojectnumber='"+identifyprojectnumber+"',status='"+status+"',";
|
|
// qry+="podescription='"+contractdescription+"',contractdescription='"+contractdescription+"',contractperiodfrom='"+contractperiodfrom+"',";
|
|
// qry+="contractperiodto='"+contractperiodto+"',statusdescription='"+statusdescription+"' ";
|
|
// qry+="where _idx='"+idxpo+"'";
|
|
qry="update tbl_po p,tbl_poboq po set p.idxpoboq='"+idxpoboq+"',p.identifyprojectnumber='"+identifyprojectnumber+"',p.status='"+status+"',";
|
|
qry+="p.podescription='"+contractdescription+"',p.contractdescription='"+contractdescription+"',p.contractperiodfrom='"+contractperiodfrom+"',";
|
|
qry+="p.contractperiodto='"+contractperiodto+"',p.statusdescription='"+statusdescription+"',po.identifyprojectnumber='"+identifyprojectnumber+"',";
|
|
qry+="po.status='"+status+"',po.statusdescription='"+statusdescription+"' ";
|
|
qry+="where p._idx='"+idxpo+"' and po._idx in ("+idxpoboq+") and p.isdeleted=0 and po.isdeleted=0";
|
|
console.log(qry);
|
|
db.query(qry,[],function(err,result1,fields){
|
|
if(err){
|
|
apires.meta['message'] = err.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('err',apires);
|
|
}
|
|
else
|
|
{
|
|
qry = "select * from vw_po where _idx='"+idxpo+"'";
|
|
db.query(qry,[],function(err,result1,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(result1));
|
|
callback(null, apires);
|
|
}
|
|
});
|
|
}
|
|
|
|
});
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
} catch (err) {
|
|
apires.meta.code = 500;
|
|
apires.meta.message = err.toString();
|
|
callback('error',apires);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
async queryUpdateIdentifyProjectold(req, callback){
|
|
try {
|
|
var apires = this.getApiResultDefined();
|
|
var idxpo = req.body.idxpo;
|
|
// var idxpoboq = req.body.idxpoboq;
|
|
var status = req.body.status;
|
|
var statusdescription = req.body.statusdescription;
|
|
var identifyprojectnumber = req.body.identifyprojectnumber;
|
|
var contractdescription = req.body.contractdescription;
|
|
var contractperiodfrom = req.body.contractperiodfrom;
|
|
var contractperiodto = req.body.contractperiodto;
|
|
var nik = req.body.nik;
|
|
|
|
var qry = "update tbl_po set podescription='"+contractdescription+"',contractdescription='"+contractdescription+"',status='"+status+"',statusdescription='"+statusdescription+"',";
|
|
qry = qry +"identifyprojectnumber='"+identifyprojectnumber+"',contractperiodfrom='"+contractperiodfrom+"',";
|
|
qry = qry +"contractperiodto='"+contractperiodto+"',uby='"+nik+"',udt=now() ";
|
|
qry = qry + "where _idx='"+idxpo+"'";
|
|
// var qry = "update tbl_po p, tbl_poboq pb set p.podescription='"+contractdescription+"',p.contractdescription='"+contractdescription+"',p.status='"+status+"',p.statusdescription='"+statusdescription+"',";
|
|
// qry = qry +"p.identifyprojectnumber='"+identifyprojectnumber+"',pb.identifyprojectnumber='"+identifyprojectnumber+"',p.contractperiodfrom='"+contractperiodfrom+"',";
|
|
// qry = qry +"p.contractperiodto='"+contractperiodto+"',p.uby='"+nik+"',p.udt=now() ";
|
|
// qry = qry + "where p._idx='"+idxpo+"' and pb._idx in('"+idxpoboq+"')";
|
|
|
|
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
|
|
{
|
|
qry = "select * from vw_po where _idx='"+idxpo+"'";
|
|
db.query(qry,[],function(err,result1,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(result1));
|
|
callback(null, apires);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
} catch (err) {
|
|
apires.meta.code = 500;
|
|
apires.meta.message = err.toString();
|
|
callback('error',apires);
|
|
}
|
|
}
|
|
|
|
async queryUpdatePoNumber(req, callback) {
|
|
try {
|
|
var apires = this.getApiResultDefined();
|
|
var idxpo = req.body.idxpo;
|
|
var idxpoboq= req.body.idxpoboq;
|
|
var nik = req.body.nik;
|
|
var status = req.body.status;
|
|
var posapnumber = req.body.ponumber || '';
|
|
var podate = req.body.podate || '';
|
|
var statusdescription = req.body.statusdescription;
|
|
var sapmessage ="PO Manual";
|
|
|
|
if(!posapnumber||posapnumber==''){
|
|
posapnumber="000";
|
|
}
|
|
// var setvalues="p.ponumber='"+posapnumber+"',p.status='"+status+"',p.statusdescription='"+statusdescription+"',po.status='"+status+"',po.statusdescription='"+statusdescription+"',";
|
|
var setvalues="p.ponumber='"+posapnumber+"',p.podate='"+podate+"',p.status='"+status+"',p.statusdescription='"+statusdescription+"',";
|
|
setvalues+="po.ponumber='"+posapnumber+"',po.status='"+status+"',po.statusdescription='"+statusdescription+"',";
|
|
// var setvalues="ponumber='"+posapnumber+"',status='"+status+"',statusdescription='"+statusdescription+"',";
|
|
if(!posapnumber||posapnumber==''||posapnumber=='000'){
|
|
setvalues="";
|
|
}
|
|
var qry = "update tbl_po p, tbl_poboq po set "+setvalues+"p.sapmessages='"+sapmessage+"',p.uby='"+nik+"',p.udt=now() ";
|
|
qry = qry +"where (p._idx=po.idxheader and p._idx='"+idxpo+"' and po._idx in ("+idxpoboq+")) and p.isdeleted=0 and po.isdeleted=0";
|
|
|
|
// var qry = "update tbl_po set "+setvalues+"sapmessages='"+sapmessage+"',uby='"+nik+"',udt=now() ";
|
|
// qry = qry +"where (_idx=idxheader and _idx='"+idxpo+"' and p_idx in ("+idxpoboq+")) and p.isdeleted=0 and po.isdeleted=0";
|
|
|
|
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
|
|
{
|
|
qry = "select idxpoboq,ponumber from vw_poboq where idxpoboq in("+idxpoboq+")";
|
|
db.query(qry,[],function(err,result1,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(result1));
|
|
callback(null, apires);
|
|
}
|
|
});
|
|
|
|
}
|
|
});
|
|
} catch (err) {
|
|
apires.meta.code = 500;
|
|
apires.meta.message = err.toString();
|
|
callback('error',apires);
|
|
}
|
|
}
|
|
|
|
async queryUpdatePoNumberold(req,posapnumber,sapmessage, callback) {
|
|
try {
|
|
var apires = this.getApiResultDefined();
|
|
var idxpo = req.body.idxpo;
|
|
var idxpoboq= req.body.idxpoboq;
|
|
var nik = req.body.nik;
|
|
var status = req.body.status;
|
|
var statusdescription = req.body.statusdescription;
|
|
|
|
if(!posapnumber||posapnumber==''){
|
|
posapnumber="000";
|
|
}
|
|
// var setvalues="p.ponumber='"+posapnumber+"',p.status='"+status+"',p.statusdescription='"+statusdescription+"',po.status='"+status+"',po.statusdescription='"+statusdescription+"',";
|
|
var setvalues="p.ponumber='"+posapnumber+"',p.status='"+status+"',p.statusdescription='"+statusdescription+"',";
|
|
setvalues+="po.ponumber='"+posapnumber+"',po.status='"+status+"',po.statusdescription='"+statusdescription+"',";
|
|
// var setvalues="ponumber='"+posapnumber+"',status='"+status+"',statusdescription='"+statusdescription+"',";
|
|
if(!posapnumber||posapnumber==''||posapnumber=='000'){
|
|
setvalues="";
|
|
}
|
|
var qry = "update tbl_po p, tbl_poboq po set "+setvalues+"p.sapmessages='"+sapmessage+"',p.uby='"+nik+"',p.udt=now() ";
|
|
qry = qry +"where (p._idx=po.idxheader and p._idx='"+idxpo+"' and po._idx in ("+idxpoboq+")) and p.isdeleted=0 and po.isdeleted=0";
|
|
|
|
// var qry = "update tbl_po set "+setvalues+"sapmessages='"+sapmessage+"',uby='"+nik+"',udt=now() ";
|
|
// qry = qry +"where (_idx=idxheader and _idx='"+idxpo+"' and p_idx in ("+idxpoboq+")) and p.isdeleted=0 and po.isdeleted=0";
|
|
|
|
// 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
|
|
{
|
|
qry = "select idxpoboq,ponumber from vw_poboq where idxpoboq in("+idxpoboq+")";
|
|
db.query(qry,[],function(err,result1,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(result1));
|
|
callback(null, apires);
|
|
}
|
|
});
|
|
|
|
}
|
|
});
|
|
} catch (err) {
|
|
apires.meta.code = 500;
|
|
apires.meta.message = err.toString();
|
|
callback('error',apires);
|
|
}
|
|
}
|
|
|
|
async queryUpdateMigoNumber(req, callback) {
|
|
try {
|
|
var apires = this.getApiResultDefined();
|
|
var idxpo = req.query.idxpo || req.body.idxpo;
|
|
// var idxpoboq = req.body.idxpoboq;
|
|
// var migonumber="";
|
|
var nik = req.body.nik;
|
|
var migo = req.body.migo;
|
|
var migosapmessage = req.body.migosapmessage;
|
|
// var status = req.body.status;
|
|
// var statusdescription = req.body.statusdescription;
|
|
|
|
// if(!migo||migo==''){
|
|
// migonumber="000";
|
|
// }
|
|
// var setvalues="p.ponumber='"+posapnumber+"',p.status='"+status+"',p.statusdescription='"+statusdescription+"',po.status='"+status+"',po.statusdescription='"+statusdescription+"',";
|
|
var setvalues="p.migo='"+migo+"',p.migosapmessages='"+migosapmessage+"',po.migo='"+migo+"',";
|
|
// var setvalues="ponumber='"+posapnumber+"',status='"+status+"',statusdescription='"+statusdescription+"',";
|
|
if(!migo||migo==''){
|
|
setvalues="";
|
|
}
|
|
var qry = "update tbl_po p, tbl_poboq po set "+setvalues+"p.migosapmessages='"+migosapmessage+"',p.uby='"+nik+"',p.udt=now() ";
|
|
qry = qry +"where (p._idx=po.idxheader and p._idx='"+idxpo+"') and p.isdeleted=0 and po.isdeleted=0";
|
|
|
|
// var qry = "update tbl_po set "+setvalues+"sapmessages='"+sapmessage+"',uby='"+nik+"',udt=now() ";
|
|
// qry = qry +"where (_idx=idxheader and _idx='"+idxpo+"' and p_idx in ("+idxpoboq+")) and p.isdeleted=0 and po.isdeleted=0";
|
|
|
|
// 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
|
|
{
|
|
qry = "select idxpoboq,ponumber,migo from vw_poboq where idxpo='"+idxpo+"'";
|
|
db.query(qry,[],function(err,result1,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(result1));
|
|
callback(null, apires);
|
|
}
|
|
});
|
|
|
|
}
|
|
});
|
|
} catch (err) {
|
|
apires.meta.code = 500;
|
|
apires.meta.message = err.toString();
|
|
callback('error',apires);
|
|
}
|
|
}
|
|
|
|
async queryUpdatePOSAP(req,posapnumber,sapmsg, callback) {
|
|
try {
|
|
var apires = this.getApiResultDefined();
|
|
var idxpo = req.body.idxpo;
|
|
var status = req.body.status;
|
|
var totalpo = req.body.totalpo;
|
|
var podescription = req.body.podescription;
|
|
var statusdescription = req.body.statusdescription;
|
|
var nik = req.body.nik;
|
|
|
|
|
|
var setvalues="p.ponumber='"+posapnumber+"',po.ponumber='"+posapnumber+"',";
|
|
if(!posapnumber){
|
|
setvalues="";
|
|
}
|
|
|
|
if(typeof totalpo !== undefined){
|
|
setvalues=setvalues+"p.totalpo='"+totalpo+"',";
|
|
}
|
|
|
|
if(typeof podescription !== undefined){
|
|
setvalues=setvalues+"p.podescription='"+podescription+"',";
|
|
}
|
|
|
|
|
|
var qry = "update tbl_po p, tbl_poboq po set "+setvalues+"p.sapmessages='"+sapmsg+"',p.status='"+status+"',p.statusdescription='"+statusdescription+"',p.uby='"+nik+"',p.udt=now() ";
|
|
qry = qry +"where p._idx=po.idxheader and p._idx='"+idxpo+"' and p.isdeleted=0 and po.isdeleted=0";
|
|
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 queryUpdatePoNumberold(req,posapnumber, callback) {
|
|
try {
|
|
var apires = this.getApiResultDefined();
|
|
var idxpo = req.body.idxpo;
|
|
var idxpoboq = req.body.idxpoboq;
|
|
var vper_start = req.body.vper_start;
|
|
var vper_end = req.body.vper_end;
|
|
var idxvendor = req.body.idxvendor;
|
|
var vendorid = req.body.vendorid;
|
|
var vendorname = req.body.vendorname;
|
|
var totalpo = req.body.totalpo;
|
|
var totalqty = req.body.totalqty;
|
|
var units = "PKT";
|
|
var status = req.body.status;
|
|
var statusdescription = req.body.statusdescription;
|
|
var status = req.body.status;
|
|
var statusdescription = req.body.statusdescription;
|
|
let podescription = req.body.podescription;
|
|
|
|
var nik = req.body.nik;
|
|
|
|
var qry = "update tbl_po p, tbl_poboq po set vper_start='"+vper_start+"',vper_end='"+vper_end+"',p.podate=now(),";
|
|
qry = qry +"p.ponumber='"+posapnumber+"',p.idxvendor='"+idxvendor+"',p.vendorid='"+vendorid+"',p.vendorname='"+vendorname+"',";
|
|
qry = qry +"p.podescription='"+podescription+"',p.units='"+units+"',p.totalqty='"+totalqty+"',p.totalpo='"+totalpo+"',po.ponumber='"+posapnumber+"',";
|
|
qry = qry +"p.status='" + status +"',p.statusdescription='" + statusdescription +"',p.uby='"+nik+"',p.udt=now() ";
|
|
qry = qry +"where p._idx=po.idxheader and po._idx in(" + idxpoboq +") and p.isdeleted=0 and po.isdeleted=0";
|
|
|
|
var qry = "update tbl_po p, tbl_poboq po set p.ponumber='"+posapnumber+"',po.ponumber='"+posapnumber+"',p.uby='"+nik+"',p.udt=now() ";
|
|
qry = qry +"where p._idx=po.idxheader and po._idx in(" + idxpoboq +") and p.isdeleted=0 and po.isdeleted=0";
|
|
db.query(qry,[],function(err,result,fields){
|
|
if(err){
|
|
apires.meta['message'] = err.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('err',apires);
|
|
}
|
|
else
|
|
{
|
|
qry = "select idxpoboq,ponumber from vw_poboq where idxpoboq in("+idxpoboq+")";
|
|
db.query(qry,[],function(err,result1,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(result1));
|
|
callback(null, apires);
|
|
}
|
|
});
|
|
|
|
}
|
|
});
|
|
} catch (err) {
|
|
apires.meta.code = 500;
|
|
apires.meta.message = err.toString();
|
|
callback('error',apires);
|
|
}
|
|
}
|
|
|
|
async queryPoManagementList(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.body.nik;
|
|
|
|
let qry = "select * from vw_po ";
|
|
qry = qry +"where trim(ponumber) like '%"+ keyword +"%' and ponumber<>'000'";
|
|
// qry = qry +"order by _idx 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_po ";
|
|
qry = qry +"where trim(ponumber) like '%"+ keyword +"%' and ponumber<>'000'";
|
|
qry = qry +"order by _idx 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 queryPottdList(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.body.nik;
|
|
|
|
let qry = "select * from vw_po ";
|
|
qry = qry +"where trim(ponumber) like '%"+ keyword +"%' and status in(1,6) and ponumber<>'000' and ponumber<>'' ";
|
|
// qry = qry +"order by _idx 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_po ";
|
|
qry = qry +"where trim(ponumber) like '%"+ keyword +"%' and status in(1,6) and ponumber<>'000' and ponumber<>'' ";
|
|
qry = qry +"order by _idx 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 queryPottdListDetail(req,callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
|
|
let _idx= req.query.idxpo;
|
|
|
|
let qry = "select * from vw_po where _idx='"+_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
|
|
{
|
|
if(result.length<=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 queryPoMigoList(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.body.nik;
|
|
|
|
let qry = "select * from vw_po ";
|
|
qry = qry +"where trim(ponumber) like '%"+ keyword +"%' and status in(2,4) and ponumber<>'000' and ponumber<>'' ";
|
|
// qry = qry +"order by _idx 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_po ";
|
|
qry = qry +"where trim(ponumber) like '%"+ keyword +"%' and status in(2,4) and ponumber<>'000' and ponumber<>'' ";
|
|
qry = qry +"order by _idx 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 queryPoMigoListDetail(req,callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
|
|
let _idx= req.query.idxpo;
|
|
|
|
let qry = "select * from vw_poboq where idxpo='"+_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
|
|
{
|
|
if(result.length<=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 queryPottdListDetailold(req,callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
|
|
let _idx= req.query.idxpo;
|
|
|
|
let qry = "select * from vw_po where _idx='"+_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(result.length<=0){
|
|
apires.meta.message = "Record not found";
|
|
callback('',apires);
|
|
}
|
|
else{
|
|
let dataRows = result.length;
|
|
|
|
Object.keys(result).forEach(function(key){
|
|
result[key]['ttd']= [];
|
|
// === Get Ttd
|
|
qry = "select * from vw_pottd where idxpo='"+_idx+"' order by _idx asc";
|
|
// console.log(qry);
|
|
db.query(qry,[],function(err,result3,fields){
|
|
if(err){
|
|
apires.meta['message'] = err.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('error',apires);
|
|
}
|
|
else{
|
|
if(result3.length>0){
|
|
var disetujuioleh = [];
|
|
Object.keys(result3).forEach(function(key2){
|
|
disetujuioleh.push(JSON.parse(JSON.stringify(result3[key2])));
|
|
|
|
});
|
|
result[key]['ttd'] = {
|
|
"disetujuioleh" : disetujuioleh
|
|
}
|
|
// result[key]['ttd'] = JSON.parse(JSON.stringify(result3));
|
|
}
|
|
if(0 === --dataRows){
|
|
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 queryPoManagementListDetail(req,callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
|
|
let idxpo = req.query.idxpo || req.body.idxpo;
|
|
|
|
let qry = "select * from vw_po where _idx='"+idxpo+"'";
|
|
|
|
// 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 queryPoInventoryList(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.body.nik;
|
|
|
|
let qry = "select * from vw_poinventoryheader ";
|
|
qry = qry +"where trim(ponumber) like '%"+ keyword +"%' ";
|
|
// qry = qry +"order by _idx 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_poinventoryheader ";
|
|
qry = qry +"where trim(ponumber) like '%"+ keyword +"%' ";
|
|
qry = qry +"order by _idx 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 queryPoInventoryDetailList(req,callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
|
|
let limit = req.query.limit;
|
|
let offset = req.query.offset;
|
|
let keyword = req.query.keyword;
|
|
let idxheader = req.query.idxpo;
|
|
// let nik = req.body.nik;
|
|
|
|
let qry = "select * from vw_poinventorydetail ";
|
|
qry = qry +"where trim(ponumber) like '%"+ keyword +"%' and idxheader='"+idxheader+"' ";
|
|
qry = qry +"order by _idx 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_poinventorydetail ";
|
|
qry = qry +"where trim(ponumber) like '%"+ keyword +"%' and idxheader='"+idxheader+"' ";
|
|
qry = qry +"order by _idx 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 queryNewPoAdjustment(req, filename, callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
let idxpo = req.body.idxpo;
|
|
let ponumber = req.body.ponumber;
|
|
let dates = req.body.dates;
|
|
let reason = req.body.reason;
|
|
let filedoc = filename;
|
|
let totalpo = req.body.totalpo;
|
|
let adjval = req.body.adjval;
|
|
let grandtotal = req.body.grandtotal;
|
|
let nik = req.body.nik;
|
|
let qry ="select _idx from tbl_poadj where idxpo='"+idxpo+"' and isdeleted=0 order by _idx desc limit 1";
|
|
// console.log(qry);
|
|
db.query(qry,[], function(err2, results2){
|
|
if(err2){
|
|
apires.meta['message'] = err2.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('err',apires);
|
|
}else{
|
|
|
|
qry ="insert into tbl_poadj ";
|
|
qry = qry + "set idxpo='"+idxpo+"',ponumber='"+ponumber+"',dates='"+dates+"',";
|
|
qry = qry + "reason='"+reason+"',filedoc='"+filedoc+"',totalpo='"+totalpo+"',";
|
|
qry = qry + "adjval='"+adjval+"',grandtotal='"+grandtotal+"',status=-1,statusdescription='Draft',";
|
|
qry = qry + "laststatusupdated=now(),iby='"+nik+"',idt=now()";
|
|
if(results2.length>=1){
|
|
qry ="update tbl_poadj ";
|
|
qry = qry + "set idxpo='"+idxpo+"',ponumber='"+ponumber+"',dates='"+dates+"',";
|
|
qry = qry + "reason='"+reason+"',filedoc='"+filedoc+"',totalpo='"+totalpo+"',";
|
|
qry = qry + "adjval='"+adjval+"',grandtotal='"+grandtotal+"',uby='"+nik+"',udt=now() ";
|
|
qry = qry +"where idxpo='"+idxpo+"' and isdeleted=0";
|
|
}
|
|
// console.log(qry);
|
|
db.query(qry,[],function(err3,results3){
|
|
if(err3){
|
|
apires.meta['message'] = err3.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('err',apires);
|
|
}
|
|
else{
|
|
var res = JSON.parse(JSON.stringify(results3));
|
|
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 queryPoAdjList(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.body.nik;
|
|
|
|
let qry = "select * from vw_poadjlist ";
|
|
qry = qry +"where trim(ponumber) like '%"+ keyword +"%' ";
|
|
// qry = qry +"order by _idx 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_poadjlist ";
|
|
qry = qry +"where trim(ponumber) like '%"+ keyword +"%' ";
|
|
qry = qry +"order by _idx 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 queryPoAdjListDetail(req,callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
|
|
let idx = req.query.idx;
|
|
// let nik = req.body.nik;
|
|
|
|
let qry = "select * from vw_poadjlist where _idx='"+idx+"'";
|
|
// qry = qry +"order by _idx 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){
|
|
apires.success= true;
|
|
apires.data=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 queryPoApproveList(req,callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
|
|
let keyword = req.query.keyword;
|
|
let nik = req.query.nik;
|
|
|
|
let qry = "select * from vw_po ";
|
|
qry = qry +"where (trim(ponumber) like '%"+ keyword +"%') and (iby='"+nik+"' and status in(4,6) and isadjustment=0) ";
|
|
// qry = qry +"order by _idx 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){
|
|
apires.success= true;
|
|
apires.data=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 queryUpdPoAdjustment(req, filename, callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
let idx = req.body.idxadjustment;
|
|
let idxpo = req.body.idxpo;
|
|
let ponumber = req.body.ponumber;
|
|
let dates = req.body.dates;
|
|
let reason = req.body.reason;
|
|
let filedoc = filename;
|
|
let totalpo = req.body.totalpo;
|
|
let adjval = req.body.adjval;
|
|
let grandtotal = req.body.grandtotal;
|
|
let nik = req.body.nik;
|
|
|
|
let qry ="select _idx from tbl_poadj where _idx='"+idx+"' and isdeleted=0 order by _idx desc limit 1";
|
|
// console.log(qry);
|
|
db.query(qry,[], function(err2, results2){
|
|
if(err2){
|
|
apires.meta['message'] = err2.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('err',apires);
|
|
}else{
|
|
|
|
var fileupd="filedoc='"+filedoc+"',";
|
|
if(!filedoc){fileupd="";}
|
|
qry ="insert into tbl_poadj ";
|
|
qry = qry + "set idxpo='"+idxpo+"',ponumber='"+ponumber+"',dates='"+dates+"',";
|
|
qry = qry + "reason='"+reason+"',"+fileupd+"totalpo='"+totalpo+"',";
|
|
qry = qry + "adjval='"+adjval+"',grandtotal='"+grandtotal+"',iby='"+nik+"',idt=now()";
|
|
if(results2.length>=1){
|
|
qry ="update tbl_poadj ";
|
|
qry = qry + "set idxpo='"+idxpo+"',ponumber='"+ponumber+"',dates='"+dates+"',";
|
|
qry = qry + "reason='"+reason+"',"+fileupd+"totalpo='"+totalpo+"',";
|
|
qry = qry + "adjval='"+adjval+"',grandtotal='"+grandtotal+"',uby='"+nik+"',udt=now() ";
|
|
qry = qry +"where _idx='"+idx+"' and isdeleted=0";
|
|
}
|
|
console.log(qry);
|
|
db.query(qry,[],function(err3,results3){
|
|
if(err3){
|
|
apires.meta['message'] = err3.toString();
|
|
apires.meta['code'] = 500;
|
|
callback('err',apires);
|
|
}
|
|
else{
|
|
var res = JSON.parse(JSON.stringify(results3));
|
|
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 queryUpdPoBoq(req, filename, callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
console.log("read files " +filename);
|
|
// apires.success = true;
|
|
// apires.meta.message = "Upload Success";
|
|
// apires.data = [];
|
|
// callback(null, apires);
|
|
const fs = require("fs");
|
|
const { parse } = require("csv-parse");
|
|
// fs.createReadStream(process.env.BASEPATH+'/assets/po/boq/'+filename)
|
|
var totalrows=0;var totalerr=0;var totalsuccess=0;
|
|
fs.createReadStream('./assets/po/boq/'+filename)
|
|
.pipe(parse({ delimiter: ",", from_line: 2 }))
|
|
.on("data", function (row) {
|
|
totalrows+=1;
|
|
// console.log(row);
|
|
//idxpo,sp3_number,items,idxpoboq,vendorid_sap,description,po_number,start_date,end_date,curr,unit_price,qty,po_amount,rate_po,po_amount_usd,migo
|
|
var spdata=row[0].split(",");
|
|
// console.log(spdata.length);
|
|
if(spdata.length<=1){
|
|
spdata=row[0].split(";");
|
|
}
|
|
var idxpo=spdata[0];
|
|
var identifyprojectnumber=spdata[1];
|
|
var idxpoboq=spdata[3];
|
|
var description=spdata[5];
|
|
var startdate=spdata[7];
|
|
var enddate=spdata[8];
|
|
var curr=spdata[9];
|
|
var hs=spdata[10];
|
|
var qty=spdata[11];
|
|
var poamount=spdata[12];
|
|
var ratepo=spdata[13];
|
|
var migo=spdata[14];
|
|
|
|
var qry="update tbl_poboq set identifyprojectnumber='"+identifyprojectnumber+"',description='"+description+"',";
|
|
qry+="startdate='"+startdate+"',enddate='"+enddate+"',curr='"+curr+"',hs='"+hs+"',qty='"+qty+"',poamount='"+poamount+"',";
|
|
qry+="ratepo='"+ratepo+"',migo='"+migo+"',udt=now() where _idx='"+idxpoboq+"'";
|
|
// console.log(qry);
|
|
db.query(qry,[],function(err,result){
|
|
if(err){
|
|
totalerr+=1;
|
|
}
|
|
else{
|
|
totalsuccess+=1;
|
|
}
|
|
});
|
|
// console.log(spdata[0]+' '+spdata[1]);
|
|
})
|
|
.on("end", function () {
|
|
console.log("finished");
|
|
apires.success = true;
|
|
apires.meta.message = "Upload Success";
|
|
apires.data = {
|
|
"totalrows" : totalrows,
|
|
"Success" : totalsuccess,
|
|
"Error" : totalerr
|
|
};
|
|
callback(null, apires);
|
|
})
|
|
.on("error", function (error) {
|
|
console.log(error.message);
|
|
apires.meta.code = 500;
|
|
apires.meta.message = error.toString();
|
|
callback('error',apires);
|
|
});
|
|
|
|
} catch (err) {
|
|
apires.meta.code = 500;
|
|
apires.meta.message = err.toString();
|
|
callback('error',apires);
|
|
|
|
}
|
|
}
|
|
|
|
async queryDeleteAdjPO(req, callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
let idxadjustment = req.body.idxadjustment;
|
|
let remarkdeleted = req.body.remarkdeleted;
|
|
let nik = req.body.nik;
|
|
|
|
let qry = "update tbl_poadj ";
|
|
qry = qry +"set isdeleted=1,remarkdeleted='"+remarkdeleted+"',dby='"+nik+"',ddt=now() ";
|
|
qry = qry +" where _idx='"+idxadjustment+"'";
|
|
|
|
|
|
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 querySubmitAdjPO(req, callback){
|
|
var apires = this.getApiResultDefined();
|
|
try {
|
|
let idxadjustment = req.body.idxadjusment;
|
|
let nik = req.body.nik;
|
|
|
|
let qry = "update tbl_poadj ";
|
|
qry = qry +"set status=0,statusdescription='Submitted',laststatusupdated=now(),uby='"+nik+"',udt=now()";
|
|
qry = qry +" where _idx='"+idxadjustment+"'";
|
|
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = PoAdapter;
|
|
|
|
|