Files
backend-Eprocurement/adapter/invadapter.js
2025-12-05 06:21:42 +07:00

222 lines
8.9 KiB
JavaScript

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;