const db=require('../config/dbproc.js'); const Adapter=require('./dbadapter.js'); class InventoryAdapter extends Adapter{ constructor(){ super(); } async queryNewInventory(req,callback){ var apires = this.getApiResultDefined(); try { let idxpoboq= req.body.idxpoboq; let description= req.body.description; let nik = req.body.nik; let qry = "insert into tbl_poboqdetail "; qry = qry +"set description='"+description+"',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 qry = "select * from vw_poboqdetail where idxpoboq='"+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 queryUpdInventory(req,callback){ var apires = this.getApiResultDefined(); try { let idxpoboq= req.body.idxpoboq; let idxpoboqdetail= req.body.idxpoboqdetail; let description= req.body.description; let nik = req.body.nik; let qry = "update tbl_poboqdetail "; qry = qry +"set description='"+description+"',uby='"+nik+"',udt=now() "; qry = qry +"where _idx='"+idxpoboqdetail+"'"; // 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 qry = "select * from vw_poboqdetail where idxpoboq='"+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 queryDelInventory(req,callback){ var apires = this.getApiResultDefined(); try { let idxpoboq= req.body.idxpoboq; let idxpoboqdetail= req.body.idxpoboqdetail; let remarkdeleted=req.body.remarkdeleted; let nik = req.body.nik; let qry = "update tbl_poboqdetail "; qry = qry +"set isdeleted=1,remarkdeleted='"+remarkdeleted+"',dby='"+nik+"',ddt=now() "; qry = qry +"where _idx='"+idxpoboqdetail+"'"; // 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 qry = "select * from vw_poboqdetail where idxpoboq='"+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 queryInventoryList(req,callback){ var apires = this.getApiResultDefined(); try { let idxpoboq = req.query.idxpoboq; 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_poboqdetail "; qry = qry +"where idxpoboq='"+ idxpoboq +"' "; 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_poboqdetail "; qry = qry +"where idxpoboq='"+ idxpoboq +"' "; 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); } } } module.exports = InventoryAdapter;