const db=require('../config/dbproc.js'); const Adapter=require('./dbadapter.js'); const fs = require("fs"); class BastAdapter extends Adapter{ constructor(){ super(); } async queryBastActivityList(req,callback){ var apires = this.getApiResultDefined(); try { let limit = req.query.limit; let offset = req.query.offset; let keyword = req.query.keyword; let qry = "select * from vw_bastactivitylist "; qry = qry + "where activityname like '%" + keyword + "%' "; qry = qry + "order by idxbudget asc limit " + offset + ", " + limit; // let qry = "select * from vw_basthandoverlist "; // qry = qry + "where bastnumber 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_bastactivitylist "; qry = qry + "where activityname like '%" + keyword + "%' "; qry = qry + "order by idxbudget asc limit " + offset + ", " + limit; // qry = "select * from vw_basthandoverlist "; // qry = qry + "where bastnumber 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 queryBastHandoverList(req,callback){ var apires = this.getApiResultDefined(); try { let limit = req.query.limit; let offset = req.query.offset; let keyword = req.query.keyword; // let qry = "select * from vw_bastactivitylist "; // qry = qry + "where activityname like '%" + keyword + "%' "; // qry = qry + "order by idxbudget asc limit " + offset + ", " + limit; let qry = "select * from vw_basthandoverlist "; qry = qry + "where bastnumber like '%" + keyword + "%' "; qry = qry + "order by _idx 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){ 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_bastactivitylist "; // qry = qry + "where activityname like '%" + keyword + "%' "; // qry = qry + "order by idxbudget asc limit " + offset + ", " + limit; qry = "select * from vw_basthandoverlist "; qry = qry + "where bastnumber 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 queryBastActivityListDetail(req,callback){ var apires = this.getApiResultDefined(); try { let idxpr = req.query.idxpr; let qry = "select * from vw_bastactivitylistdetail "; qry = qry + "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 queryCreateBAST(filedoctemplate, req,callback){ var apires = this.getApiResultDefined(); try { let idxpoboq = req.body.idxpoboq; let idxpo = req.body.idxpo; let totalpo = req.body.totalpo; let bastnumber = req.body.bastnumber; let bastdates = req.body.bastdates; let description = req.body.description; let idxvendor = req.body.idxvendor; let vendorcode = req.body.vendorcode; let vendorname = req.body.vendorname; let povendornumber = req.body.povendornumber; let status = 0; let statusdescription = "Submitted"; let nik = req.body.nik; // let qry = "insert into tbl_bast set idxpo='"+idxpo+"',bastnumber='"+bastnumber+"',bastdates='"+bastdates+"',"; // qry = qry + "description='"+description+"',idxvendor='"+idxvendor+"',vendorcode='"+vendorcode+"',vendorname='"+vendorname+"',"; // qry = qry + "totalpo='"+totalpo+"',povendornumber='"+povendornumber+"',filedoctemplate='"+filedoctemplate+"',status='"+status+"',"; // qry = qry + "statusdescription='"+statusdescription+"',laststatusupdate=now(),iby='"+nik+"',idt=now()"; let qry = "insert into tbl_bast set idxpo='"+idxpo+"',bastnumber='"+bastnumber+"',bastdates='"+bastdates+"',"; qry = qry + "description='"+description+"',idxvendor='"+idxvendor+"',vendorcode='"+vendorcode+"',vendorname='"+vendorname+"',"; qry = qry + "totalpo='"+totalpo+"',povendornumber='"+povendornumber+"',filepdf='"+filedoctemplate+"',ismergedoc=1,status='"+status+"',"; qry = qry + "statusdescription='"+statusdescription+"',laststatusupdate=now(),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 ="insert into tbl_bastdetail(idxheader,idxpoboq,description,qty,units,poamount,iby,idt) "; // qry = qry + "select '"+idxheader+"', _idx , description, qty, units, poamount, '"+nik+"',now() "; // qry = qry + "from tbl_poboq where _idx in("+idxpoboq+")"; qry ="insert into tbl_bastdetail(idxheader,idxpoboq,description,qty,units,poamount,iby,idt) "; qry = qry + "select '"+idxheader+"', _idx , description, qty, units, poamount, '"+nik+"',now() "; qry = qry + "from tbl_poboq where _idx in("+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.data = JSON.parse(JSON.stringify(result)); apires.meta.code = 200; callback(null, apires); } }); } }); } catch(err) { apires.meta.code = 500; apires.meta.message = err.toString(); callback('error',apires); } } async queryUploadHandoverSign(filehandoversign, req,callback){ var apires = this.getApiResultDefined(); try { let idxbast = req.body.idxbast; let nik = req.body.nik; let bastdates=req.body.bastdates; let description=req.body.description; let qry = "update tbl_bast set status=1,statusdescription='Upload Handover',bastdateshandover='"+bastdates+"',descriptionhandover='"+description+"',"; qry +="filehandoversign='"+filehandoversign+"',uby='"+nik+"',udt=now() where _idx='"+idxbast+"'"; // let qry = "update tbl_bast set filehandoversign='"+filehandoversign+"',uby='"+nik+"',udt=now() where _idx='"+idxbast+"'"; // 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.meta.code = 200; callback(null, apires); } }); } catch(err) { apires.meta.code = 500; apires.meta.message = err.toString(); callback('error',apires); } } async queryBastList(req,callback){ var apires = this.getApiResultDefined(); try { let limit = req.query.limit; let offset = req.query.offset; let keyword = req.query.keyword; let qry = "select * from vw_bast "; qry = qry + "where description like '%" + keyword + "%' and status=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){ 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_bast "; qry = qry + "where description 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 queryBastDetailList(req,callback){ var apires = this.getApiResultDefined(); try { let idxbast = req.query.idxbast; let qry = "select * from vw_bast "; qry = qry + "where _idx='"+idxbast+"'"; // 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); } }); } catch(err) { apires.meta.code = 500; apires.meta.message = err.toString(); callback('error',apires); } } async queryUpdateHandover(req,filehandover, callback) { try { var apires = this.getApiResultDefined(); var idxbast = req.body.idxbast; var status = req.body.status; var statusdescription = req.body.statusdescription; var nik = req.body.nik; var qry = "update tbl_bast set filehandover='"+filehandover+"',status='" + status +"',statusdescription='" + statusdescription +"',uby='"+nik+"',udt=now() "; qry = qry +"where _idx='" + idxbast +"'"; db.query(qry,[],function(err,result,fields){ if(err){ apires.meta['message'] = err.toString(); apires.meta['code'] = 500; callback('err',apires); } else { apires.success = true; apires.data = JSON.parse(JSON.stringify(result)); callback(null, apires); } }); } catch (err) { apires.meta.code = 500; apires.meta.message = err.toString(); callback('error',apires); } } } module.exports = BastAdapter;