const db=require('../config/dbproc.js'); const Adapter=require('./dbadapter.js'); class CoaAdapter extends Adapter{ constructor(){ super(); } async queryCoaList(req,callback){ var apires = this.getApiResultDefined(); try { let limit = req.body.limit; let offset = req.body.offset; let keyword = req.body.keyword; let qry = "select * from vw_coa "; qry = qry +"where (trim(coacode) like '%"+ keyword +"%' or trim(coaname) 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){ 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_coa "; qry = qry +"where (trim(coacode) like '%"+ keyword +"%' or trim(coaname) 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 queryGetCostCenter(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_costcenter "; qry = qry +"where (trim(costcentercode) like '%"+ keyword +"%' or trim(costcentername) 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){ 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_costcenter "; qry = qry +"where (trim(costcentercode) like '%"+ keyword +"%' or trim(costcentername) 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 queryGetProfitCenter(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_profitcenter "; qry = qry +"where (trim(profitcode) like '%"+ keyword +"%' or trim(profitname) 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){ 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_profitcenter "; qry = qry +"where (trim(profitcode) like '%"+ keyword +"%' or trim(profitname) 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 queryCoaDetail(req,callback){ var apires = this.getApiResultDefined(); try { let id = req.query.id; // console.log(req); let qry = "select * from vw_coa "; 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 queryDeleteCoa(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_coa "; 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 queryNewCoa(req,callback){ var apires = this.getApiResultDefined(); try { let glacc = req.body.coacode; let glaccname = req.body.coaname; let nik = req.body.nik; let qry = "insert into tbl_coa "; qry = qry +"set glacc='"+glacc+"',glaccname='"+glaccname+"',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 queryUpdateCoa(req,callback){ var apires = this.getApiResultDefined(); try { let glacc = req.body.coacode; let glaccname = req.body.coaname; let nik = req.body.nik; let id = req.body.id; let qry = "update tbl_coa "; qry = qry +"set glacc='"+glacc+"',glaccname='"+glaccname+"',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 = CoaAdapter;