const db=require('../config/dbproc.js'); const Adapter=require('./dbadapter.js'); class VendorAdapter extends Adapter{ constructor(){ super(); } async queryVendorList(req,callback){ try { let apires = this.getApiResultDefined(); let limit = req.body.limit; let offset = req.body.offset; let keyword = req.body.keyword; let status = req.body.status; let swhereactivate=""; if(status==0||status==1){ swhereactivate=" and isactivated='"+status+"'"; } let qry = "select * from vw_vendorinfo "; qry = qry +"where (trim(vendorid) like '%"+ keyword +"%' or trim(vendorname) like '%"+ keyword +"%') "+swhereactivate+" 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){ 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 }); qry = "select * from vw_vendorinfo "; qry = qry +"where (trim(vendorid) like '%"+ keyword +"%' or trim(vendorname) like '%"+ keyword +"%') 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 queryVendorDetail(req,callback){ try { let apires = this.getApiResultDefined(); let id = req.query.id; // console.log(req); let qry = "select * from vw_vendorinfo "; qry = qry +"where id='"+id+"' order by id asc 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){ 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 queryDeleteVendor(req, callback){ try { let apires = this.getApiResultDefined(); let id = req.body.id; let remarkdeleted = req.body.remarkdeleted; let nik = req.body.nik; let qry = "update tbl_vendorinfo "; 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 queryNewVendor(req,callback){ try { let apires = this.getApiResultDefined(); let vendorid = req.body.vendorid; let vendorname = req.body.vendorname; let picname = req.body.picname; let address = req.body.address; let telp = req.body.telp; let location = req.body.location; let bussinessgroup = req.body.bussinessgroup; let isactivated = req.body.isactivated; let nik = req.body.nik; let qry = "insert into tbl_vendorinfo "; qry = qry +"set vendorid='"+vendorid+"',vendorname='"+vendorname+"',picname='"+picname+"',telp='"+telp+"',"; qry = qry +"address='"+address+"',location='"+location+"',bussinessgroup='"+bussinessgroup+"',isactivated='"+isactivated+"',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 { 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 queryUpdateVendor(req,callback){ try { let apires = this.getApiResultDefined(); let vendorid = req.body.vendorid; let vendorname = req.body.vendorname; let picname = req.body.picname; let address = req.body.address; let telp = req.body.telp; let location = req.body.location; let bussinessgroup = req.body.bussinessgroup; let isactivated = req.body.isactivated; let nik = req.body.nik; let id = req.body.id; let qry = "update tbl_vendorinfo "; qry = qry +"set vendorid='"+vendorid+"',vendorname='"+vendorname+"',picname='"+picname+"',telp='"+telp+"',"; qry = qry +"address='"+address+"',location='"+location+"',bussinessgroup='"+bussinessgroup+"',isactivated='"+isactivated+"',uby='"+nik+"',udt=now() "; qry = qry +"where _idx='"+id+"'"; // 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.message = "Updated Success"; callback(null, apires); } }); } catch (err) { apires.meta.code = 500; apires.meta.message = err.toString(); callback('error',apires); } } } module.exports = VendorAdapter;