first commit
This commit is contained in:
419
adapter/bastadapter.js
Normal file
419
adapter/bastadapter.js
Normal file
@ -0,0 +1,419 @@
|
||||
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;
|
||||
|
||||
|
||||
570
adapter/budgetadapter.js
Normal file
570
adapter/budgetadapter.js
Normal file
@ -0,0 +1,570 @@
|
||||
const db=require('../config/dbproc.js');
|
||||
const Adapter=require('./dbadapter.js');
|
||||
|
||||
|
||||
class BudgetAdapter extends Adapter{
|
||||
constructor(){
|
||||
super();
|
||||
}
|
||||
|
||||
|
||||
async queryBudgetList(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_budgetcapexinfo ";
|
||||
qry = qry +"where (trim(budgetid) like '%"+ keyword +"%' or trim(activityname) 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,
|
||||
"totalrows": result.length
|
||||
});
|
||||
qry = "select * from vw_budgetcapexinfo ";
|
||||
qry = qry +"where (trim(budgetid) like '%"+ keyword +"%' or trim(activityname) 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 queryBudgetDetail(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let id = req.query.id;
|
||||
// console.log(req);
|
||||
let qry = "select * from vw_budgetcapexinfo ";
|
||||
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 queryDeleteBudget(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_budgetcapexinfo ";
|
||||
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 queryBudgetType(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let qry = "select _idx id,budgettype from tbl_budgettype ";
|
||||
qry = qry +"where isdeleted=0 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){
|
||||
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 queryNewBudget(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let idxbudgettype= req.body.idbudgettype;
|
||||
let budgetid = req.body.budgetid;
|
||||
let activityname = req.body.activityname;
|
||||
let amount = req.body.amount;
|
||||
let targetrfs = req.body.targetrfs;
|
||||
let months = req.body.months;
|
||||
let years = req.body.years;
|
||||
let nik = req.body.nik;
|
||||
|
||||
let qry = "insert into tbl_budgetcapexinfo ";
|
||||
qry = qry +"set idxbudgettype='"+idxbudgettype+"', budgetid='"+budgetid+"',activityname='"+activityname+"',amount='"+amount+"',months='"+months+"',";
|
||||
qry = qry +"targetrfs='"+targetrfs+"',years='"+years+"', 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 queryUpdateBudget(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let idxbudgettype= req.body.idbudgettype;
|
||||
let budgetid = req.body.budgetid;
|
||||
let activityname = req.body.activityname;
|
||||
let amount = req.body.amount;
|
||||
let targetrfs = req.body.targetrfs;
|
||||
let months = req.body.months;
|
||||
let years = req.body.years;
|
||||
let nik = req.body.nik;
|
||||
let id = req.body.id;
|
||||
|
||||
let qry = "update tbl_budgetcapexinfo ";
|
||||
qry = qry +"set idxbudgettype='"+idxbudgettype+"', budgetid='"+budgetid+"',activityname='"+activityname+"',amount='"+amount+"',months='"+months+"',";
|
||||
qry = qry +"targetrfs='"+targetrfs+"',years='"+years+"', 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);
|
||||
}
|
||||
}
|
||||
|
||||
// === Request budget
|
||||
|
||||
async queryReqBudget(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let trxid= req.body.trxid;
|
||||
let justificationnumber= req.body.justificationnumber;
|
||||
let yearstgt= req.body.years;
|
||||
let transactiondate = req.body.transactiondate;
|
||||
let idxbudgettype= req.body.idbudgettype;
|
||||
let budgettype = req.body.budgettype;
|
||||
let idxbudgetid = req.body.idxbudgetid;
|
||||
let budgetid = req.body.budgetid;
|
||||
let activityname = req.body.activityname;
|
||||
let idcoa = req.body.idcoa;
|
||||
let glacc = req.body.coacode;
|
||||
let amount = req.body.amount;
|
||||
let targetrfs = req.body.targetrfs;
|
||||
let crdb = "K";
|
||||
let nik = req.body.nik;
|
||||
|
||||
let qry = "insert into tbl_requestbudget ";
|
||||
qry = qry +"set trxid='"+trxid+"',justificationnumber='"+justificationnumber+"',yearstgt='"+yearstgt+"',transactiondate='"+transactiondate+"',idxbudgettype='"+idxbudgettype+"',budgettype='"+budgettype+"',";
|
||||
qry = qry +"idxbudgetid='"+idxbudgetid+"',budgetid='"+budgetid+"',activityname='"+activityname+"',idcoa='"+idcoa+"',glacc='"+glacc+"',targetrfs='"+targetrfs+"',";
|
||||
qry = qry +"amount='"+amount+"',crdb='"+crdb+"',months=month(now()),years=year(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
|
||||
{
|
||||
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 queryGetTrxIdReqBudget(req, callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
let nik = req.query.nik;
|
||||
let qry = "select count(_idx) totalrows,date_format(now(),'%Y%m%d') dates from tbl_requestbudget where iby='"+nik+"' and year(idt)=year(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 resp = JSON.parse(JSON.stringify(result));
|
||||
// console.log(resp[0]['dates']);
|
||||
var ymd = resp[0]['dates'];
|
||||
ymd = ymd.toString().trim().replace("-","");
|
||||
var counter = resp[0]['totalrows']+1;
|
||||
var counterstr = ("0000000000"+counter);
|
||||
counterstr = counterstr.substring(counterstr.length-4, counterstr.length);
|
||||
var trxid = "TRX/"+ymd+"/"+nik+"/"+counterstr;
|
||||
apires.success = true;
|
||||
apires.data = trxid
|
||||
callback(null, apires);
|
||||
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryUpdateReqBudget(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let trxid= req.body.trxid;
|
||||
let yearstgt= req.body.years;
|
||||
let transactiondate = req.body.transactiondate;
|
||||
let idxbudgettype= req.body.idbudgettype;
|
||||
let budgettype = req.body.budgettype;
|
||||
let idxbudgetid = req.body.idxbudgetid;
|
||||
let budgetid = req.body.budgetid;
|
||||
let activityname = req.body.activityname;
|
||||
let idcoa = req.body.idcoa;
|
||||
let glacc = req.body.coacode;
|
||||
let amount = req.body.amount;
|
||||
let targetrfs = req.body.targetrfs;
|
||||
let crdb = "K";
|
||||
let nik = req.body.nik;
|
||||
let idreqbudget = req.body.idreqbudget;
|
||||
|
||||
let qry = "update tbl_requestbudget ";
|
||||
qry = qry +"set trxid='"+trxid+"',yearstgt='"+yearstgt+"',transactiondate='"+transactiondate+"',idxbudgettype='"+idxbudgettype+"',budgettype='"+budgettype+"',";
|
||||
qry = qry +"idxbudgetid='"+idxbudgetid+"',budgetid='"+budgetid+"',activityname='"+activityname+"',idcoa='"+idcoa+"',glacc='"+glacc+"',targetrfs='"+targetrfs+"',";
|
||||
qry = qry +"amount='"+amount+"',crdb='"+crdb+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='"+idreqbudget+"'";
|
||||
|
||||
// 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 = "Data has been updated";
|
||||
callback(null, apires);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryDeleteReqBudget(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_requestbudget ";
|
||||
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 queryReqBudgetList(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let limit = req.body.limit;
|
||||
let offset = req.body.offset;
|
||||
let keyword = req.body.keyword;
|
||||
let nik = req.body.nik;
|
||||
|
||||
let qry = "select * from vw_requestbudget ";
|
||||
qry = qry +"where (trim(budgetid) like '%"+ keyword +"%' or trim(activityname) like '%"+ keyword +"%') ";
|
||||
qry = qry +"and iby='"+nik+"' 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,
|
||||
"totalrows": result.length
|
||||
});
|
||||
qry = "select * from vw_requestbudget ";
|
||||
qry = qry +"where (trim(budgetid) like '%"+ keyword +"%' or trim(activityname) like '%"+ keyword +"%') ";
|
||||
qry = qry +"and iby='"+nik+"' 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 queryReqBudgetDetail(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let id = req.query.id;
|
||||
// console.log(req);
|
||||
let qry = "select * from vw_requestbudget ";
|
||||
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 queryBudgetListbyRequest(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let qry = "select * from vw_budgetlistbyrequest 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){
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = BudgetAdapter;
|
||||
345
adapter/coaadapter.js
Normal file
345
adapter/coaadapter.js
Normal file
@ -0,0 +1,345 @@
|
||||
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;
|
||||
68
adapter/dbadapter.js
Normal file
68
adapter/dbadapter.js
Normal file
@ -0,0 +1,68 @@
|
||||
const e = require('express');
|
||||
const db=require('../config/dbproc.js');
|
||||
const Controller = require('../controllers/controller.js');
|
||||
|
||||
class DbAdapter extends Controller {
|
||||
constructor(){
|
||||
super();
|
||||
}
|
||||
|
||||
|
||||
async queryDynamictable(columninfo,tablename,callback) {
|
||||
db.query('SELECT '+columninfo+' from ?? where isdeleted=0 order by id asc', [tablename], function (error, results, fields) {
|
||||
var apiResult = {};
|
||||
if (error) {
|
||||
apiResult.meta = {
|
||||
table: tablename,
|
||||
type: "collection",
|
||||
total: 0
|
||||
}
|
||||
apiResult.data = [];
|
||||
callback(error,apiResult);
|
||||
}
|
||||
|
||||
//make results
|
||||
var resultJson = JSON.stringify(results);
|
||||
resultJson = JSON.parse(resultJson);
|
||||
|
||||
apiResult.meta = {
|
||||
table: tablename,
|
||||
type: "collection",
|
||||
total: resultJson.length,
|
||||
total_entries: 0
|
||||
}
|
||||
|
||||
//add our JSON results to the data table
|
||||
apiResult.data = resultJson;
|
||||
callback(null, apiResult);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
static async queryExistsTransactionHeader(fakturnumber,callback){
|
||||
var qry="select h.id idheader,d.id iddetail from tbl_salesheader h inner join tbl_salesdetail d on h.id=d.idheader";
|
||||
qry= qry +" where h.fakturnumber='"+fakturnumber+"' and h.isdeleted=0 and d.isdeleted=0";
|
||||
db.query(qry, [], function (error, results) {
|
||||
var res={"res":false,"id":0};
|
||||
if(error){throw error;}
|
||||
if(results.length>0)
|
||||
{
|
||||
var iddetail=[];
|
||||
results.forEach(function(e){
|
||||
iddetail.push(e.iddetail);
|
||||
});
|
||||
res={
|
||||
"res":true,
|
||||
"id" :results[0].idheader,
|
||||
"iddetail" : iddetail
|
||||
}
|
||||
|
||||
}
|
||||
callback(res);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
module.exports = DbAdapter;
|
||||
414
adapter/employeeadapter.js
Normal file
414
adapter/employeeadapter.js
Normal file
@ -0,0 +1,414 @@
|
||||
const db=require('../config/dbproc.js');
|
||||
const Adapter=require('./dbadapter.js');
|
||||
const MainAdapter = require('./mainadapter.js');
|
||||
const mainadapter = new MainAdapter();
|
||||
const jwt = require('jsonwebtoken');
|
||||
const request = require('request');
|
||||
const baseldap="https://mw.telkomcel.tl/tcel/v1/portal/";
|
||||
const basetokenldap="https://mw.telkomcel.tl/tcel/v1/portal/tokenLDAP/";
|
||||
// const Controller = require('../../WebServicesWakepo/controllers/controller.js');
|
||||
|
||||
class EmployeeAdapter extends Adapter{
|
||||
constructor(){
|
||||
super();
|
||||
}
|
||||
|
||||
|
||||
async queryEmployeeAuth(req,callback){
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
let resuri={
|
||||
'method': 'post',
|
||||
'url': baseldap+'loginLDAP',
|
||||
'headers': {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'Authorization': 'Bearer isadjoijoij87y123jkj912839u1201932'
|
||||
},
|
||||
form: {
|
||||
"nik":req.body.nik,
|
||||
"pass":req.body.pass,
|
||||
"app":"e-Procurement"
|
||||
},
|
||||
};
|
||||
|
||||
//console.log(resuri);
|
||||
request(resuri, function (error, response) {
|
||||
if (error) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = error.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
var res = JSON.parse(response.body);
|
||||
var token = res['data']['data']['token'];
|
||||
// console.log(token);
|
||||
// console.log(res['data']['status']);
|
||||
if(res['data']['status']=='success'){
|
||||
// if(200==200){
|
||||
resuri={
|
||||
'method': 'post',
|
||||
'url': basetokenldap,
|
||||
'headers': {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'Authorization': 'Bearer isadjoijoij87y123jkj912839u1201932'
|
||||
},
|
||||
form: {
|
||||
"nik":req.body.nik,
|
||||
"token":token,
|
||||
"otp":1
|
||||
}
|
||||
}
|
||||
// console.log(resuri);
|
||||
request(resuri, function (error, resp1) {
|
||||
if (error) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = error.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
var res=JSON.parse(resp1.body);
|
||||
console.log(res);
|
||||
if(res['data']['status']=='error'){
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = res['data']['message'].toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
else{
|
||||
mainadapter.queryGetToken(req,function(err,data){
|
||||
let statusCode = data!=null ? data.meta.code : 200 ;
|
||||
let message = data.meta.message;
|
||||
let success = true;
|
||||
// console.log(data);
|
||||
if(err) {
|
||||
statusCode = 500;
|
||||
success = false;
|
||||
}
|
||||
apires.meta.code = statusCode;
|
||||
apires.meta.message = message;
|
||||
apires.success = success;
|
||||
apires.data = data.data;
|
||||
// console.log(apires);
|
||||
callback(null,apires);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
else{
|
||||
apires.meta.code = 201;
|
||||
apires.meta.message = "Get token failed or LDAP authentication not authorize";
|
||||
callback(null, apires);
|
||||
}
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryEmployeeWithoutAuth(req,callback){
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
let resuri={
|
||||
'method': 'post',
|
||||
'url': baseldap+'loginLDAP',
|
||||
'headers': {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'Authorization': 'Bearer isadjoijoij87y123jkj912839u1201932'
|
||||
},
|
||||
form: {
|
||||
"nik":req.body.nik,
|
||||
"pass":req.body.pass,
|
||||
"app":"e-Procurement"
|
||||
},
|
||||
};
|
||||
|
||||
// console.log(resuri);
|
||||
// request(resuri, function (error, response) {
|
||||
// if (error) {
|
||||
// apires.meta.code = 500;
|
||||
// apires.meta.message = error.toString();
|
||||
// callback('error',apires);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// console.log(response.body);
|
||||
// var res = JSON.parse(response.body);
|
||||
// console.log(res);
|
||||
// console.log(res['data']['res']);
|
||||
// if(res['data']['res']==200){
|
||||
if(200==200){
|
||||
mainadapter.queryGetToken(req,function(err,data){
|
||||
let statusCode = data!=null ? data.meta.code : 200 ;
|
||||
let message = data.meta.message;
|
||||
let success = true;
|
||||
// console.log(data);
|
||||
if(err) {
|
||||
statusCode = 500;
|
||||
success = false;
|
||||
}
|
||||
apires.meta.code = statusCode;
|
||||
apires.meta.message = message;
|
||||
apires.success = success;
|
||||
apires.data = data.data;
|
||||
// console.log(apires);
|
||||
callback(null,apires);
|
||||
});
|
||||
|
||||
}
|
||||
else{
|
||||
apires.meta.code = 201;
|
||||
apires.meta.message = "Get token failed or LDAP authentication not authorize";
|
||||
callback(null, apires);
|
||||
}
|
||||
// }
|
||||
// });
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryEmployeeAccessibility(req, callback){
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
var nik = req.body.nik;
|
||||
// let qry = "select * from vw_menusaccessibility where nik='"+nik+"'";
|
||||
let qry = "select ifnull(t._idx,n._idx) _idx,ifnull(t.menutext,n.menutext) menutext,";
|
||||
qry = qry +"ifnull(t.sort, n.sort) sort,ifnull(t.idemployee,0) idemployee,ifnull(t.nik,'') nik,ifnull(t.isactivated,0) isactivated from ";
|
||||
qry = qry +"tbl_menus n left join (select * from vw_menusaccessibility where nik='"+nik+"') t on n._idx=t._idx or t._idx is null";
|
||||
|
||||
// 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
|
||||
{
|
||||
let resultJson = JSON.stringify(result);
|
||||
resultJson = JSON.parse(resultJson);
|
||||
apires.success = true;
|
||||
apires.data = resultJson;
|
||||
callback(null,apires);
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryEmployeeSetMenuAccessibility(req, callback){
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
var idemployee = req.body.idemployee;
|
||||
var nik = req.body.nik;
|
||||
var datamenu = JSON.parse(req.body.datamenu);
|
||||
var userby = req.body.userby;
|
||||
|
||||
// console.log(datamenu);return false;
|
||||
var dataRows = datamenu.length;
|
||||
Object.keys(datamenu).forEach(function(key){
|
||||
var idxmenu =datamenu[key]['idxmenu'];
|
||||
var isactivated = datamenu[key]['isactivated'];
|
||||
let qrym="insert into tbl_employee_accessibility ";
|
||||
qrym=qrym+"set idemployee='"+idemployee+"',nik='"+nik+"',idxmenu='"+idxmenu+"',isactivated='"+isactivated+"',";
|
||||
qrym=qrym+"iby='"+userby+"',idt=now()";
|
||||
|
||||
let qry="select _idx from tbl_employee_accessibility where nik='"+nik+"' and idxmenu='"+idxmenu+"' and isdeleted=0 order by _idx asc limit 1";
|
||||
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){
|
||||
qrym="update tbl_employee_accessibility ";
|
||||
qrym=qrym+"set isactivated='"+isactivated+"',uby='"+userby+"',udt=now()";
|
||||
qrym=qrym+"where _idx='"+result[0]['_idx']+"'";
|
||||
}
|
||||
|
||||
// console.log(qrym);
|
||||
db.query(qrym,[],function(err,result,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(0 === --dataRows){
|
||||
apires.success = true;
|
||||
apires.data = "Data Has been Saved";
|
||||
callback(null,apires);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
// console.log(qry);
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryListEmployee(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let qry = "select * from vw_employee 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){
|
||||
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 queryEmployeeMenus(req,callback){
|
||||
try {
|
||||
let apires = this.getApiResultDefined();
|
||||
let nik = req.body.nik;
|
||||
let qry = "select * from vw_emp_accessibility where nik='" + nik + "' and menutype<>'D' order by sort,name 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
|
||||
{
|
||||
let menusRows = result.length;
|
||||
if(menusRows>0){
|
||||
Object.keys(result).forEach(function(key){
|
||||
qry = "select * from vw_emp_accessibility where menuheader='"+result[key]['_idx']+"' and nik='" + nik + "' and menutype='D' order by _idx asc";
|
||||
db.query(qry,[],function(err,resultsubmenus,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback(apires,null);
|
||||
}
|
||||
else{
|
||||
// result[key]['submenus'] = [];
|
||||
if(resultsubmenus.length>0){
|
||||
// result[key]['countSubmenus'] = resultsubmenus.length;
|
||||
Object.keys(resultsubmenus).forEach(function(key){
|
||||
delete resultsubmenus[key]['_idx'];
|
||||
delete resultsubmenus[key]['menuid'];
|
||||
delete resultsubmenus[key]['menuheader'];
|
||||
delete resultsubmenus[key]['isactivated'];
|
||||
delete resultsubmenus[key]['nik'];
|
||||
delete resultsubmenus[key]['menutype'];
|
||||
delete resultsubmenus[key]['class'];
|
||||
delete resultsubmenus[key]['icon'];
|
||||
})
|
||||
result[key]['submenu'] = JSON.parse(JSON.stringify(resultsubmenus));
|
||||
}
|
||||
if(result[key]['menutype']=='H'){
|
||||
delete result[key]['_idx'];
|
||||
delete result[key]['menuid'];
|
||||
delete result[key]['menuheader'];
|
||||
delete result[key]['isactivated'];
|
||||
delete result[key]['nik'];
|
||||
delete result[key]['menutype'];
|
||||
}
|
||||
if(result[key]['menutype']=='H1'){
|
||||
result[key]['navheader']=result[key]['name'];
|
||||
delete result[key]['_idx'];
|
||||
delete result[key]['menuid'];
|
||||
delete result[key]['menuheader'];
|
||||
delete result[key]['isactivated'];
|
||||
delete result[key]['nik'];
|
||||
delete result[key]['menutype'];
|
||||
delete result[key]['i18n'];
|
||||
delete result[key]['class'];
|
||||
delete result[key]['url'];
|
||||
delete result[key]['slug'];
|
||||
delete result[key]['name'];
|
||||
}
|
||||
|
||||
if(result[key]['menutype']=='S'){
|
||||
delete result[key]['_idx'];
|
||||
delete result[key]['menuid'];
|
||||
delete result[key]['menuheader'];
|
||||
delete result[key]['isactivated'];
|
||||
delete result[key]['nik'];
|
||||
delete result[key]['menutype'];
|
||||
}
|
||||
if(0 === --menusRows){
|
||||
|
||||
let resultJson = JSON.stringify(result);
|
||||
resultJson = JSON.parse(resultJson);
|
||||
apires.success = true;
|
||||
apires.data = resultJson;
|
||||
callback(null,apires);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
else{
|
||||
apires.meta['message'] = "Menu not found for nik "+nik;
|
||||
apires.meta['code'] = 201;
|
||||
callback('err',apires);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error', apires);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
module.exports = EmployeeAdapter;
|
||||
533
adapter/financeadapter.js
Normal file
533
adapter/financeadapter.js
Normal file
@ -0,0 +1,533 @@
|
||||
const db=require('../config/dbproc.js');
|
||||
const Adapter=require('./dbadapter.js');
|
||||
const fs = require("fs");
|
||||
|
||||
|
||||
class FinanceAdapter extends Adapter{
|
||||
constructor(){
|
||||
super();
|
||||
}
|
||||
|
||||
async queryPoPayList(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_popaylist ";
|
||||
qry = qry + "where podescription like '%" + keyword + "%' ";
|
||||
// qry = qry + "order by idxpo 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_popaylist ";
|
||||
qry = qry + "where podescription like '%" + keyword + "%' ";
|
||||
qry = qry + "order by idxpo 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 queryPoPayListDetail(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
let idxpo = req.query.idxpo;
|
||||
|
||||
let qry = "select * from vw_popaylist ";
|
||||
qry = qry + "where idxpo='" + idxpo + "' ";
|
||||
qry = qry + "order by idxpo 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){
|
||||
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 queryPayChecklist(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 _idx, checklistname from tbl_financechecklist where isdeleted=0";
|
||||
|
||||
// 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){
|
||||
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 queryCurrencyList(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 _idx, currency from tbl_currency where isdeleted=0";
|
||||
|
||||
// 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){
|
||||
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 querySubmitPayPo(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
let idxpo = req.body.idxpo;
|
||||
let ponumber = req.body.ponumber;
|
||||
let idxvendor = req.body.idxvendor;
|
||||
let vendorname = req.body.vendorname;
|
||||
let totalpo = req.body.totalpo;
|
||||
let contractnumber = req.body.contractnumber;
|
||||
let percentpay = req.body.percentpay;
|
||||
let totalinvoice = req.body.totalinvoice;
|
||||
let payto = req.body.payto;
|
||||
let paymentdate = req.body.paymentdate;
|
||||
let payperiod = req.body.payperiod;
|
||||
let whtvalue = req.body.whtvalue;
|
||||
let costcenter = req.body.costcenter;
|
||||
let description = req.body.description;
|
||||
let status = req.body.status;
|
||||
let statusdescription = req.body.statusdescription;
|
||||
let nikpreparedby = req.body.nikpreparedby;
|
||||
let prepareddate = req.body.prepareddate;
|
||||
let nikreviewby = req.body.nikreviewby;
|
||||
let reviewdate = req.body.reviewdate;
|
||||
let nikreviewdirby = req.body.nikreviewdirby;
|
||||
let reviewdirdate = req.body.reviewdirdate;
|
||||
let reviewdescription = req.body.reviewdescription;
|
||||
let nik = req.body.nik;
|
||||
let checklistdata = req.body.checklistdata;
|
||||
|
||||
// console.log(checklistdata)
|
||||
|
||||
let qry = "insert into tbl_finance set idxpo='"+idxpo+"',ponumber='"+ponumber+"',idxvendor='"+idxvendor+"',";
|
||||
qry = qry + "vendorname='"+vendorname+"',totalpo='"+totalpo+"',contractnumber='"+contractnumber+"',";
|
||||
qry = qry + "percentpay='"+percentpay+"',totalinvoice='"+totalinvoice+"',payto='"+payto+"',paymentdate='"+paymentdate+"',";
|
||||
qry = qry + "payperiod='"+payperiod+"',whtvalue='"+whtvalue+"',costcenter='"+costcenter+"',";
|
||||
qry = qry + "description='"+description+"',status='"+status+"',statusdescription='"+statusdescription+"',";
|
||||
qry = qry + "laststatusupdate=now(),nikpreparedby='"+nikpreparedby+"',prepareddate='"+prepareddate+"',";
|
||||
qry = qry + "nikreviewby='"+nikreviewby+"',reviewdate='"+reviewdate+"',nikreviewdirby='"+nikreviewdirby+"',";
|
||||
qry = qry + "reviewdirdate='"+reviewdirdate+"',reviewdescription='"+reviewdescription+"',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;
|
||||
Object.keys(checklistdata).forEach(function(key){
|
||||
var idxchecklist = checklistdata[key]['idxchecklist'];
|
||||
var checklistname = checklistdata[key]['checklistname'];
|
||||
var iscomplete = checklistdata[key]['iscomplete'];
|
||||
var isvalid = checklistdata[key]['isvalid'];
|
||||
qry = "insert into tbl_financedetailchecklist set idxheader='"+idxheader+"',";
|
||||
qry = qry + "idxchecklist='"+idxchecklist+"',checklistname='"+checklistname+"',";
|
||||
qry = qry + "iscomplete='"+iscomplete+"',isvalid='"+isvalid+"',iby='"+nik+"',idt=now()";
|
||||
db.query(qry,[],function(err2,result2,fields2){return result2;});
|
||||
});
|
||||
|
||||
apires.success = true;
|
||||
apires.data={
|
||||
"idxfinance":idxheader,
|
||||
"status" : "Data Has Been Submitted"
|
||||
};
|
||||
callback(null, apires);
|
||||
// if(result.length>0){
|
||||
// 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 queryFinanceList(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_financelist ";
|
||||
// qry = qry + "where podescription like '%" + keyword + "%' ";
|
||||
// qry = qry + "order by idxpo asc limit " + offset + ", " + limit;
|
||||
|
||||
let qry = "select * from vw_financelist ";
|
||||
qry = qry + "where podescription like '%" + keyword + "%' ";
|
||||
qry = qry + "order by idxpo 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_financelist ";
|
||||
qry = qry + "where podescription like '%" + keyword + "%' ";
|
||||
qry = qry + "order by idxpo 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 queryFinanceListDetail(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
let limit = req.query.limit;
|
||||
let offset = req.query.offset;
|
||||
let idxpo = req.query.idxpo;
|
||||
|
||||
let qry = "select * from vw_financelistdetail ";
|
||||
qry = qry + "where idxpo='"+idxpo+"'";
|
||||
|
||||
// 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_financelistdetail ";
|
||||
qry = qry + "where idxpo='"+idxpo+"' ";
|
||||
qry = qry + "order by idxfinance 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 queryFinanceDetailUpload(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
let idxfinance = req.query.idxfinance;
|
||||
|
||||
let qry = "select * from vw_financelistdetail ";
|
||||
qry = qry + "where idxfinance='"+idxfinance+"'";
|
||||
|
||||
// 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.data = JSON.parse(JSON.stringify(result));
|
||||
qry = "select _idx,idxchecklist,checklistname,iscomplete,isvalid ";
|
||||
qry = qry +"from tbl_financedetailchecklist where idxheader='"+idxfinance+"' and isdeleted=0 ";
|
||||
qry = qry +"order by _idx asc";
|
||||
db.query(qry,[],function(err1,result1,fields1){
|
||||
if(err1){
|
||||
apires.meta['message'] = err1.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
apires.success = true;
|
||||
apires.data[0]['checklistinfo'] = JSON.parse(JSON.stringify(result1));
|
||||
callback(null,apires);
|
||||
}
|
||||
});
|
||||
// apires.success = true;
|
||||
// apires.data = 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 queryUploadDocFin(req,filedoc, callback) {
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
var idxfinance = req.body.idxfinance;
|
||||
var paymentdate = req.body.paymentdate;
|
||||
var nik = req.body.nik;
|
||||
|
||||
var qry = "update tbl_finance set status=2,statusdescription='Verify By Fin',filedoc='"+filedoc+"',paymentdate='"+paymentdate+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='" + idxfinance +"'";
|
||||
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 = FinanceAdapter;
|
||||
|
||||
|
||||
221
adapter/invadapter.js
Normal file
221
adapter/invadapter.js
Normal file
@ -0,0 +1,221 @@
|
||||
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;
|
||||
358
adapter/inventoryadapter.js
Normal file
358
adapter/inventoryadapter.js
Normal file
@ -0,0 +1,358 @@
|
||||
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 qty = req.body.qty;
|
||||
let isbulk = req.body.isbulk;
|
||||
|
||||
let qry = "insert into tbl_poboqdetail ";
|
||||
qry = qry +"set idxpoboq='"+idxpoboq+"',description='"+description+"',qty='"+qty+"',isbulk='"+isbulk+"',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);
|
||||
}
|
||||
}
|
||||
|
||||
async queryInventoryHeaderList(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
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_poinventoryheader ";
|
||||
qry = qry +"where identifyprojectnumber 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_poinventoryheader ";
|
||||
qry = qry +"where identifyprojectnumber 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 queryInventoryDetailList(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
let idxpo = req.query.idxpo;
|
||||
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_poinventorydetail ";
|
||||
qry = qry +"where idxheader='"+idxpo+"' and items 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_poinventorydetail ";
|
||||
qry = qry +"where idxheader='"+idxpo+"' and items 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
module.exports = InventoryAdapter;
|
||||
864
adapter/justificationadapter.js
Normal file
864
adapter/justificationadapter.js
Normal file
@ -0,0 +1,864 @@
|
||||
const db=require('../config/dbproc.js');
|
||||
// const slashes = require('slashes');
|
||||
const QRCode = require('qrcode');
|
||||
const Adapter=require('./dbadapter.js');
|
||||
const fs = require("fs");
|
||||
const { callbackPromise } = require('nodemailer/lib/shared/index.js');
|
||||
|
||||
const path = require('path');
|
||||
// const { fs } = require('fs').promises;
|
||||
|
||||
const libre = require('libreoffice-convert');
|
||||
libre.convertAsync = require('util').promisify(libre.convert);
|
||||
|
||||
|
||||
function getToken(){
|
||||
try {
|
||||
var n1=Math.floor(Math.random() * 9) + 0;
|
||||
var n2=Math.floor(Math.random() * 9) + 0;
|
||||
var n3=Math.floor(Math.random() * 9) + 0;
|
||||
var n4=Math.floor(Math.random() * 9) + 0;
|
||||
var n5=Math.floor(Math.random() * 9) + 0;
|
||||
var n6=Math.floor(Math.random() * 9) + 0;
|
||||
var otp=n1.toString()+n2.toString()+n3.toString()+n4.toString()+n5.toString()+n6.toString();
|
||||
// console.log(otp);
|
||||
return otp;
|
||||
} catch (error) {
|
||||
return error;
|
||||
}
|
||||
}
|
||||
|
||||
async function ConvertToPdf(inputPath, outputPath) {
|
||||
// const ext = '.pdf'
|
||||
// const inputPath = path.join(__dirname, '/resources/example.docx');
|
||||
// const outputPath = path.join(__dirname, `/resources/example${ext}`);
|
||||
|
||||
// Read file
|
||||
const docxBuf = await fs.readFile(inputPath);
|
||||
|
||||
// Convert it to pdf format with undefined filter (see Libreoffice docs about filter)
|
||||
let pdfBuf = await libre.convertAsync(docxBuf, '.pdf', undefined);
|
||||
|
||||
// Here in done you have pdf file which you can save or transfer in another stream
|
||||
await fs.writeFile(outputPath, pdfBuf);
|
||||
}
|
||||
|
||||
class JustificationAdapter extends Adapter{
|
||||
constructor(){
|
||||
super();
|
||||
}
|
||||
|
||||
|
||||
|
||||
async queryJustificationBudgetRequestList(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let id = req.query.id;
|
||||
// console.log(req);
|
||||
let qry = "select * from vw_requestbudget 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){
|
||||
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 queryNewJustification(filename, req, callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
// console.log(req.body);
|
||||
let idxrequestbudget= req.body.idxrequestbudget;
|
||||
let trxid = req.body.trxid;
|
||||
let justificationnumber = req.body.nomorjustifikasi;
|
||||
let title = req.body.judul;
|
||||
let division = req.body.divisi;
|
||||
let glacc = req.body.acccode;
|
||||
let description = req.body.deskripsi;
|
||||
let budgettype = req.body.jenisbudget;
|
||||
let amount = req.body.nilai;
|
||||
let useddate = req.body.tanggalpelaksanaan;
|
||||
let textpurpose = "";//req.body.maksudtujuan;
|
||||
let textintroduce = "";//req.body.latarbelakang;
|
||||
let textstrategic = "";//req.body.strategis;
|
||||
let textbussiness = "";//req.body.bisnis;
|
||||
let textrisk = "";//req.body.risiko;
|
||||
let textfund = "";//req.body.pembiayaan;
|
||||
let textrecomendation = "";//req.body.rekomendasi;
|
||||
let textschedule = "";//req.body.penjadwalan;
|
||||
let filedoc = filename;
|
||||
let nik = req.body.nik;
|
||||
let boq = JSON.parse(req.body.boq);
|
||||
let ttd = JSON.parse(req.body.ttd);
|
||||
let status = -1;
|
||||
let statusdescription = "draft";
|
||||
|
||||
let qry = "insert into tbl_justification ";
|
||||
qry = qry +"set idxrequestbudget='"+idxrequestbudget+"', trxid='"+trxid+"',justificationnumber='"+justificationnumber+"',title='"+title+"',division='"+division+"',";
|
||||
qry = qry +"glacc='"+glacc+"',description='"+description+"',budgettype='"+budgettype+"',amount='"+amount+"',useddate='"+useddate+"',textpurpose='"+textpurpose+"',textintroduce='"+textintroduce+"',";
|
||||
qry = qry +"textstrategic='"+textstrategic+"',textbussiness='"+textbussiness+"',textrisk='"+textrisk+"',textfund='"+textfund+"',textrecomendation='"+textrecomendation+"',";
|
||||
qry = qry +"textschedule='"+textschedule+"',status='"+status+"',statusdescription='"+statusdescription+"',filedoc='"+filedoc+"',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 res = JSON.parse(JSON.stringify(result));
|
||||
var idjustification = res.insertId;
|
||||
// ==== Add boq
|
||||
// console.log(boq);
|
||||
qry="";
|
||||
Object.keys(boq).forEach(function(key){
|
||||
var items = boq[key]['items'];
|
||||
var qty = boq[key]['qty'];
|
||||
var unitprice = boq[key]['unitprice'];
|
||||
var units = boq[key]['units']||"";
|
||||
var total = boq[key]['total'];
|
||||
qry = "insert into tbl_justificationboq set idxjustification='"+idjustification+"',";
|
||||
qry = qry + "items='"+items+"',qty='"+qty+"',units='"+units+"',unitprice='"+unitprice+"',total='"+total+"',iby='"+nik+"',idt=now()";
|
||||
db.query(qry,[],function(err2,result2,fields2){return result2;});
|
||||
// console.log(r);
|
||||
});
|
||||
|
||||
// ==== add ttd
|
||||
var created = ttd.dibuatoleh;
|
||||
var approval = ttd.disetujuioleh;
|
||||
|
||||
Object.keys(created).forEach(function(key){
|
||||
var token =getToken();
|
||||
var idemployee = created[key]['idemployee'];
|
||||
var nikapproval = created[key]['nik'];
|
||||
|
||||
qry = "insert into tbl_justificationttd set idxjustification='"+idjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nikapproval+"',category='CRE',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
||||
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
// QRCode.toDataURL(token, function (err, code) {
|
||||
// if(err) return console.log("error occurred")
|
||||
// qry = "insert into tbl_justificationttd set idxjustification='"+idjustification+"',idemployee='"+idemployee+"',";
|
||||
// qry = qry + "nik='"+nik+"',category='CRE',token='"+token+"',imgqr='"+code+"',iby='"+nik+"',idt=now()";
|
||||
// db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
// // Printing the code
|
||||
// // console.log(code)
|
||||
// })
|
||||
|
||||
|
||||
// console.log(r);
|
||||
});
|
||||
|
||||
Object.keys(approval).forEach(function(key){
|
||||
var token =getToken();
|
||||
var idemployee = approval[key]['idemployee'];
|
||||
var nik = approval[key]['nik'];
|
||||
|
||||
// if(err) return console.log("error occurred")
|
||||
qry = "insert into tbl_justificationttd set idxjustification='"+idjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='APR',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
||||
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
// QRCode.toDataURL(token, function (err, code) {
|
||||
// if(err) return console.log("error occurred")
|
||||
// qry = "insert into tbl_justificationttd set idxjustification='"+idjustification+"',idemployee='"+idemployee+"',";
|
||||
// qry = qry + "nik='"+nik+"',category='APR',token='"+token+"',imgqr='"+code+"',iby='"+nik+"',idt=now()";
|
||||
// db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
|
||||
// // Printing the code
|
||||
// // console.log(code)
|
||||
// })
|
||||
|
||||
// console.log(r);
|
||||
});
|
||||
|
||||
apires.success = true;
|
||||
apires.meta.message = "Saved Success";
|
||||
apires.data = res;
|
||||
callback(null, apires);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
async queryUpdateJustification(filename, req, callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
// console.log(req.body);
|
||||
let idxjustification= req.body.idxjustification;
|
||||
let idxrequestbudget= req.body.idxrequestbudget;
|
||||
let trxid = req.body.trxid;
|
||||
let justificationnumber = req.body.nomorjustifikasi;
|
||||
let title = req.body.judul;
|
||||
let division = req.body.divisi;
|
||||
let glacc = req.body.acccode;
|
||||
let description = req.body.deskripsi;
|
||||
let budgettype = req.body.jenisbudget;
|
||||
let amount = req.body.nilai;
|
||||
let useddate = req.body.tanggalpelaksanaan;
|
||||
let textpurpose = "";//req.body.maksudtujuan;
|
||||
let textintroduce = "";//req.body.latarbelakang;
|
||||
let textstrategic = "";//req.body.strategis;
|
||||
let textbussiness = "";//req.body.bisnis;
|
||||
let textrisk = "";//req.body.risiko;
|
||||
let textfund = "";//req.body.pembiayaan;
|
||||
let textrecomendation = "";//req.body.rekomendasi;
|
||||
let textschedule = "";//req.body.penjadwalan;
|
||||
let filedoc = filename;
|
||||
let nik = req.body.nik;
|
||||
let boq = JSON.parse(req.body.boq);
|
||||
let ttd = JSON.parse(req.body.ttd);
|
||||
|
||||
let filedocqry = "filedoc='"+filedoc+"',";
|
||||
if(filename==""){filedocqry="";}
|
||||
|
||||
// console.log(filedocqry);
|
||||
let qry = "update tbl_justification ";
|
||||
qry = qry +"set idxrequestbudget='"+idxrequestbudget+"', trxid='"+trxid+"',justificationnumber='"+justificationnumber+"',title='"+title+"',division='"+division+"',";
|
||||
qry = qry +"glacc='"+glacc+"',description='"+description+"',budgettype='"+budgettype+"',amount='"+amount+"',useddate='"+useddate+"',textpurpose='"+textpurpose+"',textintroduce='"+textintroduce+"',";
|
||||
qry = qry +"textstrategic='"+textstrategic+"',textbussiness='"+textbussiness+"',textrisk='"+textrisk+"',textfund='"+textfund+"',textrecomendation='"+textrecomendation+"',";
|
||||
qry = qry +"textschedule='"+textschedule+"',"+filedocqry+"uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='"+idxjustification+"'";
|
||||
|
||||
// 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
|
||||
{
|
||||
Object.keys(boq).forEach(function(key){
|
||||
var idboq = boq[key]['id'];
|
||||
var items = boq[key]['items'];
|
||||
var qty = boq[key]['qty'];
|
||||
var unitprice = boq[key]['unitprice'];
|
||||
var units = boq[key]['units'];
|
||||
var total = boq[key]['total'];
|
||||
var action = boq[key]['action'];
|
||||
qry = "insert into tbl_justificationboq set idxjustification='"+idxjustification+"',";
|
||||
qry = qry + "items='"+items+"',qty='"+qty+"',units='"+units+"',unitprice='"+unitprice+"',total='"+total+"',iby='"+nik+"',idt=now()";
|
||||
if(action=='update'){
|
||||
qry = "update tbl_justificationboq set idxjustification='"+idxjustification+"',";
|
||||
qry = qry + "items='"+items+"',qty='"+qty+"',units='"+units+"',unitprice='"+unitprice+"',total='"+total+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry + "where _idx='"+idboq+"'";
|
||||
}
|
||||
if(action=='delete'){
|
||||
qry = "update tbl_justificationboq set isdeleted=1,dby='"+nik+"',ddt=now() ";
|
||||
qry = qry + "where _idx='"+idboq+"'";
|
||||
}
|
||||
db.query(qry,[],function(err2,result2,fields2){return result2;});
|
||||
// console.log(r);
|
||||
});
|
||||
|
||||
var created = ttd.dibuatoleh;
|
||||
var approval = ttd.disetujuioleh;
|
||||
|
||||
Object.keys(created).forEach(function(key){
|
||||
var token =getToken();
|
||||
var id = created[key]['id'];
|
||||
var idemployee = created[key]['idemployee'];
|
||||
var nik = created[key]['nik'];
|
||||
var action = created[key]['action'];
|
||||
|
||||
qry = "insert into tbl_justificationttd set idxjustification='"+idxjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='CRE',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
||||
if(action=='update'){
|
||||
qry = "update tbl_justificationttd set idxjustification='"+idxjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='CRE',token='"+token+"',imgqr='',uby='"+nik+"',udt=now() ";
|
||||
qry = qry + "where _idx='"+id+"' and issigned=0";
|
||||
}
|
||||
if(action=='delete'){
|
||||
qry = "update tbl_justificationttd set isdeleted=1,dby='"+nik+"',ddt=now() ";
|
||||
qry = qry+ "where _idx='"+id+"'";
|
||||
}
|
||||
|
||||
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
});
|
||||
|
||||
Object.keys(approval).forEach(function(key){
|
||||
var token =getToken();
|
||||
var id = approval[key]['id'];
|
||||
var idemployee = approval[key]['idemployee'];
|
||||
var nik = approval[key]['nik'];
|
||||
var action = approval[key]['action'];
|
||||
|
||||
qry = "insert into tbl_justificationttd set idxjustification='"+idxjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='APR',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
||||
if(action=='update'){
|
||||
qry = "update tbl_justificationttd set idxjustification='"+idxjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='APR',token='"+token+"',imgqr='',uby='"+nik+"',udt=now() ";
|
||||
qry = qry + "where _idx='"+id+"' and issigned=0";
|
||||
}
|
||||
if(action=='delete'){
|
||||
qry = "update tbl_justificationttd set isdeleted=1,dby='"+nik+"',ddt=now() ";
|
||||
qry = qry+ "where _idx='"+id+"'";
|
||||
}
|
||||
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
});
|
||||
apires.success = true;
|
||||
apires.meta.message = "Updated Success";
|
||||
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 queryUpdateStatusJustification(req, callback) {
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
var idxjustification = req.body.idxjustification;
|
||||
var status = req.body.status;
|
||||
var statusdescription = req.body.statusdescription;
|
||||
var nik = req.body.nik;
|
||||
|
||||
var qry = "update tbl_justification set status='" + status +"',statusdescription='" + statusdescription +"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='" + idxjustification +"'";
|
||||
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 queryConvertdocxtoPdf(req, callback) {
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
var idxjustification = req.body.idxjustification;
|
||||
|
||||
var qry = "select * from vw_justification where id='" + idxjustification +"'";
|
||||
// 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){
|
||||
const inputPath = "/home/nodejs/wsproc/assets/words/justifikasitemplate.docx";
|
||||
const outputPath = "/home/nodejs/wsproc/assets/pdf/justifikasitemplate.pdf";
|
||||
// console.log(__dirname);
|
||||
ConvertToPdf(inputPath, outputPath).catch(function (err) {
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else{
|
||||
apires.success = true;
|
||||
callback(null,apires);
|
||||
}
|
||||
// console.log(`Error converting file: ${err}`);
|
||||
});
|
||||
|
||||
}
|
||||
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 querySignedJustification(filename, req, callback) {
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
let idxjustification= req.body.idxjustification;
|
||||
let idxrequestbudget= req.body.idxrequestbudget;
|
||||
let trxid = req.body.trxid;
|
||||
let justificationnumber = req.body.nomorjustifikasi;
|
||||
let title = req.body.judul;
|
||||
let division = req.body.divisi;
|
||||
let glacc = req.body.acccode;
|
||||
let description = req.body.deskripsi;
|
||||
let budgettype = req.body.jenisbudget;
|
||||
let amount = req.body.nilai;
|
||||
let useddate = req.body.tanggalpelaksanaan;
|
||||
let filedoc = filename;
|
||||
var idxapproval = req.body.idxapproval;
|
||||
var nikapproval = req.body.nikapproval;
|
||||
var datesigned = req.body.datesigned;
|
||||
// console.log(datesigned);
|
||||
var nik = req.body.nik;
|
||||
var token = this.getToken();
|
||||
var filepng = token+".png";
|
||||
// token =getToken();
|
||||
token = token +","+nikapproval;
|
||||
|
||||
let filedocqry = "filedoc='"+filedoc+"',";
|
||||
if(filename=="")
|
||||
{
|
||||
filedocqry="";
|
||||
// apires.meta['message'] = "File tidak ditemukan";
|
||||
// apires.meta['code'] = 500;
|
||||
// callback(null, apires);
|
||||
}
|
||||
|
||||
let qry = "update tbl_justification ";
|
||||
qry = qry +"set idxrequestbudget='"+idxrequestbudget+"', trxid='"+trxid+"',justificationnumber='"+justificationnumber+"',title='"+title+"',division='"+division+"',";
|
||||
qry = qry +"glacc='"+glacc+"',description='"+description+"',budgettype='"+budgettype+"',amount='"+amount+"',useddate='"+useddate+"',";
|
||||
qry = qry +filedocqry+"uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='"+idxjustification+"'";
|
||||
|
||||
db.query(qry,[],function(err,result,fields){
|
||||
if(err){
|
||||
console.log('d');
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
QRCode.toDataURL(token, function (err, code) {
|
||||
// console.log(code);`
|
||||
if(err) {
|
||||
console.log('ddf');
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
var imageBuffer = Adapter.decodeBase64Image(code);
|
||||
fs.writeFile('./assets/png/'+filepng, imageBuffer.data, function(err) {
|
||||
// console.log(err);
|
||||
if(err){
|
||||
console.log('eee');
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback(err.toString(), apires);
|
||||
}
|
||||
else{
|
||||
var qry = "update tbl_justificationttd set token=md5('"+token+"'),imgqr='"+filepng+"',issigned='1',signeddate='"+datesigned+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='" + idxapproval +"'";
|
||||
// console.log(qry);
|
||||
db.query(qry,[],function(err,result,fields){
|
||||
if(err){
|
||||
console.log('ttetete');
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
apires.success = true;
|
||||
// ===
|
||||
qry = "select status from tbl_justification where _idx='"+idxjustification+"'";
|
||||
db.query(qry,[],function(err,result2,fields){
|
||||
if(err){
|
||||
console.log('bbbb');
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('error',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
var status = result2[0]['status'];
|
||||
var isapproved=0;
|
||||
if(status==2){isapproved = 1;}
|
||||
apires.data = {
|
||||
"isapproved":isapproved,
|
||||
"token":token,
|
||||
"urltoken": process.env.BASEURL+"/main/getimageinfo?route=png&name="+filepng
|
||||
};
|
||||
callback(null, apires);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
// else{
|
||||
|
||||
// }
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async queryDeleteJustification(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_justification ";
|
||||
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 queryListCreatedBy(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let qry = "select * from vw_createdby 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){
|
||||
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 queryListCheckedBy(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let qry = "select * from vw_checkedby 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){
|
||||
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 queryListApprovedBy(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let qry = "select * from vw_approvedby 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){
|
||||
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 queryJustificationDetail(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let _idx= req.query.id;
|
||||
|
||||
let qry = "select * from vw_justificationdetail where id='"+_idx+"'";
|
||||
|
||||
// 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
|
||||
{
|
||||
let dataRows = result.length;
|
||||
if(result.length<=0){
|
||||
apires.meta.message = "Record not found";
|
||||
callback('',apires);
|
||||
}
|
||||
else{
|
||||
Object.keys(result).forEach(function(key){
|
||||
qry = "select * from vw_justificationboq where idxjustification='"+_idx+"' order by id asc";
|
||||
// console.log(qry);
|
||||
db.query(qry,[],function(err,result2,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('error',apires);
|
||||
}
|
||||
else{
|
||||
result[key]['boq'] = [];
|
||||
result[key]['ttd']= [];
|
||||
if(result2.length>0){
|
||||
result[key]['boq'] = JSON.parse(JSON.stringify(result2));
|
||||
}
|
||||
// === Get Ttd
|
||||
qry = "select * from vw_justificationttd where idxjustification='"+_idx+"' order by id asc";
|
||||
// console.log(qry);
|
||||
db.query(qry,[],function(err,result3,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('error',apires);
|
||||
}
|
||||
else{
|
||||
if(result3.length>0){
|
||||
var dibuatoleh = [];
|
||||
var disetujuioleh = [];
|
||||
Object.keys(result3).forEach(function(key2){
|
||||
if(result3[key2]['category']=='CRE'){
|
||||
dibuatoleh.push(JSON.parse(JSON.stringify(result3[key2])));
|
||||
}else{
|
||||
disetujuioleh.push(JSON.parse(JSON.stringify(result3[key2])));
|
||||
}
|
||||
|
||||
});
|
||||
result[key]['ttd'] = {
|
||||
"dibuatoleh" : dibuatoleh,
|
||||
"disetujuioleh" : disetujuioleh
|
||||
}
|
||||
// result[key]['ttd'] = JSON.parse(JSON.stringify(result3));
|
||||
}
|
||||
if(0 === --dataRows){
|
||||
let resultJson = JSON.stringify(result);
|
||||
console.log(resultJson);
|
||||
resultJson = JSON.parse(resultJson);
|
||||
apires.success = true;
|
||||
apires.data = resultJson;
|
||||
callback(null,apires);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
async queryJustificationList(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let limit = req.body.limit;
|
||||
let offset = req.body.offset;
|
||||
let keyword = req.body.keyword;
|
||||
let nik = req.body.nik;
|
||||
let status = req.body.status;
|
||||
|
||||
let swherenik="";
|
||||
if(nik){
|
||||
swherenik="iby='"+nik+"' and ";
|
||||
}
|
||||
// let qry = "select * from vw_justification ";
|
||||
// qry = qry +"where (trim(acccode) like '%"+ keyword +"%' or trim(nomorjustifikasi) like '%"+ keyword +"%') ";
|
||||
// qry = qry +"and iby='"+nik+"' and status in("+status+") order by id asc";
|
||||
let qry = "select * from vw_justification ";
|
||||
qry = qry +"where (trim(acccode) like '%"+ keyword +"%' or trim(nomorjustifikasi) like '%"+ keyword +"%') ";
|
||||
qry = qry +"and "+swherenik+" status in("+status+") 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,
|
||||
"totalrows": result.length
|
||||
});
|
||||
qry = "select * from vw_justification ";
|
||||
qry = qry +"where (trim(acccode) like '%"+ keyword +"%' or trim(nomorjustifikasi) like '%"+ keyword +"%') ";
|
||||
qry = qry +"and "+swherenik+" status in("+status+") order by id 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
|
||||
{
|
||||
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 = JustificationAdapter;
|
||||
864
adapter/justificationadapter_20251204.js
Normal file
864
adapter/justificationadapter_20251204.js
Normal file
@ -0,0 +1,864 @@
|
||||
const db=require('../config/dbproc.js');
|
||||
// const slashes = require('slashes');
|
||||
const QRCode = require('qrcode');
|
||||
const Adapter=require('./dbadapter.js');
|
||||
const fs = require("fs");
|
||||
const { callbackPromise } = require('nodemailer/lib/shared/index.js');
|
||||
|
||||
const path = require('path');
|
||||
// const { fs } = require('fs').promises;
|
||||
|
||||
const libre = require('libreoffice-convert');
|
||||
libre.convertAsync = require('util').promisify(libre.convert);
|
||||
|
||||
|
||||
function getToken(){
|
||||
try {
|
||||
var n1=Math.floor(Math.random() * 9) + 0;
|
||||
var n2=Math.floor(Math.random() * 9) + 0;
|
||||
var n3=Math.floor(Math.random() * 9) + 0;
|
||||
var n4=Math.floor(Math.random() * 9) + 0;
|
||||
var n5=Math.floor(Math.random() * 9) + 0;
|
||||
var n6=Math.floor(Math.random() * 9) + 0;
|
||||
var otp=n1.toString()+n2.toString()+n3.toString()+n4.toString()+n5.toString()+n6.toString();
|
||||
// console.log(otp);
|
||||
return otp;
|
||||
} catch (error) {
|
||||
return error;
|
||||
}
|
||||
}
|
||||
|
||||
async function ConvertToPdf(inputPath, outputPath) {
|
||||
// const ext = '.pdf'
|
||||
// const inputPath = path.join(__dirname, '/resources/example.docx');
|
||||
// const outputPath = path.join(__dirname, `/resources/example${ext}`);
|
||||
|
||||
// Read file
|
||||
const docxBuf = await fs.readFile(inputPath);
|
||||
|
||||
// Convert it to pdf format with undefined filter (see Libreoffice docs about filter)
|
||||
let pdfBuf = await libre.convertAsync(docxBuf, '.pdf', undefined);
|
||||
|
||||
// Here in done you have pdf file which you can save or transfer in another stream
|
||||
await fs.writeFile(outputPath, pdfBuf);
|
||||
}
|
||||
|
||||
class JustificationAdapter extends Adapter{
|
||||
constructor(){
|
||||
super();
|
||||
}
|
||||
|
||||
|
||||
|
||||
async queryJustificationBudgetRequestList(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let id = req.query.id;
|
||||
// console.log(req);
|
||||
let qry = "select * from vw_requestbudget 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){
|
||||
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 queryNewJustification(filename, req, callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
// console.log(req.body);
|
||||
let idxrequestbudget= req.body.idxrequestbudget;
|
||||
let trxid = req.body.trxid;
|
||||
let justificationnumber = req.body.nomorjustifikasi;
|
||||
let title = req.body.judul;
|
||||
let division = req.body.divisi;
|
||||
let glacc = req.body.acccode;
|
||||
let description = req.body.deskripsi;
|
||||
let budgettype = req.body.jenisbudget;
|
||||
let amount = req.body.nilai;
|
||||
let useddate = req.body.tanggalpelaksanaan;
|
||||
let textpurpose = "";//req.body.maksudtujuan;
|
||||
let textintroduce = "";//req.body.latarbelakang;
|
||||
let textstrategic = "";//req.body.strategis;
|
||||
let textbussiness = "";//req.body.bisnis;
|
||||
let textrisk = "";//req.body.risiko;
|
||||
let textfund = "";//req.body.pembiayaan;
|
||||
let textrecomendation = "";//req.body.rekomendasi;
|
||||
let textschedule = "";//req.body.penjadwalan;
|
||||
let filedoc = filename;
|
||||
let nik = req.body.nik;
|
||||
let boq = JSON.parse(req.body.boq);
|
||||
let ttd = JSON.parse(req.body.ttd);
|
||||
let status = -1;
|
||||
let statusdescription = "draft";
|
||||
|
||||
let qry = "insert into tbl_justification ";
|
||||
qry = qry +"set idxrequestbudget='"+idxrequestbudget+"', trxid='"+trxid+"',justificationnumber='"+justificationnumber+"',title='"+title+"',division='"+division+"',";
|
||||
qry = qry +"glacc='"+glacc+"',description='"+description+"',budgettype='"+budgettype+"',amount='"+amount+"',useddate='"+useddate+"',textpurpose='"+textpurpose+"',textintroduce='"+textintroduce+"',";
|
||||
qry = qry +"textstrategic='"+textstrategic+"',textbussiness='"+textbussiness+"',textrisk='"+textrisk+"',textfund='"+textfund+"',textrecomendation='"+textrecomendation+"',";
|
||||
qry = qry +"textschedule='"+textschedule+"',status='"+status+"',statusdescription='"+statusdescription+"',filedoc='"+filedoc+"',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 res = JSON.parse(JSON.stringify(result));
|
||||
var idjustification = res.insertId;
|
||||
// ==== Add boq
|
||||
// console.log(boq);
|
||||
qry="";
|
||||
Object.keys(boq).forEach(function(key){
|
||||
var items = boq[key]['items'];
|
||||
var qty = boq[key]['qty'];
|
||||
var unitprice = boq[key]['unitprice'];
|
||||
var units = boq[key]['units']||"";
|
||||
var total = boq[key]['total'];
|
||||
qry = "insert into tbl_justificationboq set idxjustification='"+idjustification+"',";
|
||||
qry = qry + "items='"+items+"',qty='"+qty+"',units='"+units+"',unitprice='"+unitprice+"',total='"+total+"',iby='"+nik+"',idt=now()";
|
||||
db.query(qry,[],function(err2,result2,fields2){return result2;});
|
||||
// console.log(r);
|
||||
});
|
||||
|
||||
// ==== add ttd
|
||||
var created = ttd.dibuatoleh;
|
||||
var approval = ttd.disetujuioleh;
|
||||
|
||||
Object.keys(created).forEach(function(key){
|
||||
var token =getToken();
|
||||
var idemployee = created[key]['idemployee'];
|
||||
var nikapproval = created[key]['nik'];
|
||||
|
||||
qry = "insert into tbl_justificationttd set idxjustification='"+idjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nikapproval+"',category='CRE',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
||||
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
// QRCode.toDataURL(token, function (err, code) {
|
||||
// if(err) return console.log("error occurred")
|
||||
// qry = "insert into tbl_justificationttd set idxjustification='"+idjustification+"',idemployee='"+idemployee+"',";
|
||||
// qry = qry + "nik='"+nik+"',category='CRE',token='"+token+"',imgqr='"+code+"',iby='"+nik+"',idt=now()";
|
||||
// db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
// // Printing the code
|
||||
// // console.log(code)
|
||||
// })
|
||||
|
||||
|
||||
// console.log(r);
|
||||
});
|
||||
|
||||
Object.keys(approval).forEach(function(key){
|
||||
var token =getToken();
|
||||
var idemployee = approval[key]['idemployee'];
|
||||
var nik = approval[key]['nik'];
|
||||
|
||||
// if(err) return console.log("error occurred")
|
||||
qry = "insert into tbl_justificationttd set idxjustification='"+idjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='APR',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
||||
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
// QRCode.toDataURL(token, function (err, code) {
|
||||
// if(err) return console.log("error occurred")
|
||||
// qry = "insert into tbl_justificationttd set idxjustification='"+idjustification+"',idemployee='"+idemployee+"',";
|
||||
// qry = qry + "nik='"+nik+"',category='APR',token='"+token+"',imgqr='"+code+"',iby='"+nik+"',idt=now()";
|
||||
// db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
|
||||
// // Printing the code
|
||||
// // console.log(code)
|
||||
// })
|
||||
|
||||
// console.log(r);
|
||||
});
|
||||
|
||||
apires.success = true;
|
||||
apires.meta.message = "Saved Success";
|
||||
apires.data = res;
|
||||
callback(null, apires);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
async queryUpdateJustification(filename, req, callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
// console.log(req.body);
|
||||
let idxjustification= req.body.idxjustification;
|
||||
let idxrequestbudget= req.body.idxrequestbudget;
|
||||
let trxid = req.body.trxid;
|
||||
let justificationnumber = req.body.nomorjustifikasi;
|
||||
let title = req.body.judul;
|
||||
let division = req.body.divisi;
|
||||
let glacc = req.body.acccode;
|
||||
let description = req.body.deskripsi;
|
||||
let budgettype = req.body.jenisbudget;
|
||||
let amount = req.body.nilai;
|
||||
let useddate = req.body.tanggalpelaksanaan;
|
||||
let textpurpose = "";//req.body.maksudtujuan;
|
||||
let textintroduce = "";//req.body.latarbelakang;
|
||||
let textstrategic = "";//req.body.strategis;
|
||||
let textbussiness = "";//req.body.bisnis;
|
||||
let textrisk = "";//req.body.risiko;
|
||||
let textfund = "";//req.body.pembiayaan;
|
||||
let textrecomendation = "";//req.body.rekomendasi;
|
||||
let textschedule = "";//req.body.penjadwalan;
|
||||
let filedoc = filename;
|
||||
let nik = req.body.nik;
|
||||
let boq = JSON.parse(req.body.boq);
|
||||
let ttd = JSON.parse(req.body.ttd);
|
||||
|
||||
let filedocqry = "filedoc='"+filedoc+"',";
|
||||
if(filename==""){filedocqry="";}
|
||||
|
||||
// console.log(filedocqry);
|
||||
let qry = "update tbl_justification ";
|
||||
qry = qry +"set idxrequestbudget='"+idxrequestbudget+"', trxid='"+trxid+"',justificationnumber='"+justificationnumber+"',title='"+title+"',division='"+division+"',";
|
||||
qry = qry +"glacc='"+glacc+"',description='"+description+"',budgettype='"+budgettype+"',amount='"+amount+"',useddate='"+useddate+"',textpurpose='"+textpurpose+"',textintroduce='"+textintroduce+"',";
|
||||
qry = qry +"textstrategic='"+textstrategic+"',textbussiness='"+textbussiness+"',textrisk='"+textrisk+"',textfund='"+textfund+"',textrecomendation='"+textrecomendation+"',";
|
||||
qry = qry +"textschedule='"+textschedule+"',"+filedocqry+"uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='"+idxjustification+"'";
|
||||
|
||||
// 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
|
||||
{
|
||||
Object.keys(boq).forEach(function(key){
|
||||
var idboq = boq[key]['id'];
|
||||
var items = boq[key]['items'];
|
||||
var qty = boq[key]['qty'];
|
||||
var unitprice = boq[key]['unitprice'];
|
||||
var units = boq[key]['units'];
|
||||
var total = boq[key]['total'];
|
||||
var action = boq[key]['action'];
|
||||
qry = "insert into tbl_justificationboq set idxjustification='"+idxjustification+"',";
|
||||
qry = qry + "items='"+items+"',qty='"+qty+"',units='"+units+"',unitprice='"+unitprice+"',total='"+total+"',iby='"+nik+"',idt=now()";
|
||||
if(action=='update'){
|
||||
qry = "update tbl_justificationboq set idxjustification='"+idxjustification+"',";
|
||||
qry = qry + "items='"+items+"',qty='"+qty+"',units='"+units+"',unitprice='"+unitprice+"',total='"+total+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry + "where _idx='"+idboq+"'";
|
||||
}
|
||||
if(action=='delete'){
|
||||
qry = "update tbl_justificationboq set isdeleted=1,dby='"+nik+"',ddt=now() ";
|
||||
qry = qry + "where _idx='"+idboq+"'";
|
||||
}
|
||||
db.query(qry,[],function(err2,result2,fields2){return result2;});
|
||||
// console.log(r);
|
||||
});
|
||||
|
||||
var created = ttd.dibuatoleh;
|
||||
var approval = ttd.disetujuioleh;
|
||||
|
||||
Object.keys(created).forEach(function(key){
|
||||
var token =getToken();
|
||||
var id = created[key]['id'];
|
||||
var idemployee = created[key]['idemployee'];
|
||||
var nik = created[key]['nik'];
|
||||
var action = created[key]['action'];
|
||||
|
||||
qry = "insert into tbl_justificationttd set idxjustification='"+idxjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='CRE',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
||||
if(action=='update'){
|
||||
qry = "update tbl_justificationttd set idxjustification='"+idxjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='CRE',token='"+token+"',imgqr='',uby='"+nik+"',udt=now() ";
|
||||
qry = qry + "where _idx='"+id+"' and issigned=0";
|
||||
}
|
||||
if(action=='delete'){
|
||||
qry = "update tbl_justificationttd set isdeleted=1,dby='"+nik+"',ddt=now() ";
|
||||
qry = qry+ "where _idx='"+id+"'";
|
||||
}
|
||||
|
||||
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
});
|
||||
|
||||
Object.keys(approval).forEach(function(key){
|
||||
var token =getToken();
|
||||
var id = approval[key]['id'];
|
||||
var idemployee = approval[key]['idemployee'];
|
||||
var nik = approval[key]['nik'];
|
||||
var action = approval[key]['action'];
|
||||
|
||||
qry = "insert into tbl_justificationttd set idxjustification='"+idxjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='APR',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
||||
if(action=='update'){
|
||||
qry = "update tbl_justificationttd set idxjustification='"+idxjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='APR',token='"+token+"',imgqr='',uby='"+nik+"',udt=now() ";
|
||||
qry = qry + "where _idx='"+id+"' and issigned=0";
|
||||
}
|
||||
if(action=='delete'){
|
||||
qry = "update tbl_justificationttd set isdeleted=1,dby='"+nik+"',ddt=now() ";
|
||||
qry = qry+ "where _idx='"+id+"'";
|
||||
}
|
||||
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
});
|
||||
apires.success = true;
|
||||
apires.meta.message = "Updated Success";
|
||||
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 queryUpdateStatusJustification(req, callback) {
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
var idxjustification = req.body.idxjustification;
|
||||
var status = req.body.status;
|
||||
var statusdescription = req.body.statusdescription;
|
||||
var nik = req.body.nik;
|
||||
|
||||
var qry = "update tbl_justification set status='" + status +"',statusdescription='" + statusdescription +"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='" + idxjustification +"'";
|
||||
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 queryConvertdocxtoPdf(req, callback) {
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
var idxjustification = req.body.idxjustification;
|
||||
|
||||
var qry = "select * from vw_justification where id='" + idxjustification +"'";
|
||||
// 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){
|
||||
const inputPath = "/home/nodejs/wsproc/assets/words/justifikasitemplate.docx";
|
||||
const outputPath = "/home/nodejs/wsproc/assets/pdf/justifikasitemplate.pdf";
|
||||
// console.log(__dirname);
|
||||
ConvertToPdf(inputPath, outputPath).catch(function (err) {
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else{
|
||||
apires.success = true;
|
||||
callback(null,apires);
|
||||
}
|
||||
// console.log(`Error converting file: ${err}`);
|
||||
});
|
||||
|
||||
}
|
||||
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 querySignedJustification(filename, req, callback) {
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
let idxjustification= req.body.idxjustification;
|
||||
let idxrequestbudget= req.body.idxrequestbudget;
|
||||
let trxid = req.body.trxid;
|
||||
let justificationnumber = req.body.nomorjustifikasi;
|
||||
let title = req.body.judul;
|
||||
let division = req.body.divisi;
|
||||
let glacc = req.body.acccode;
|
||||
let description = req.body.deskripsi;
|
||||
let budgettype = req.body.jenisbudget;
|
||||
let amount = req.body.nilai;
|
||||
let useddate = req.body.tanggalpelaksanaan;
|
||||
let filedoc = filename;
|
||||
var idxapproval = req.body.idxapproval;
|
||||
var nikapproval = req.body.nikapproval;
|
||||
var datesigned = req.body.datesigned;
|
||||
// console.log(datesigned);
|
||||
var nik = req.body.nik;
|
||||
var token = this.getToken();
|
||||
var filepng = token+".png";
|
||||
// token =getToken();
|
||||
token = token +","+nikapproval;
|
||||
|
||||
let filedocqry = "filedoc='"+filedoc+"',";
|
||||
if(filename=="")
|
||||
{
|
||||
filedocqry="";
|
||||
// apires.meta['message'] = "File tidak ditemukan";
|
||||
// apires.meta['code'] = 500;
|
||||
// callback(null, apires);
|
||||
}
|
||||
|
||||
let qry = "update tbl_justification ";
|
||||
qry = qry +"set idxrequestbudget='"+idxrequestbudget+"', trxid='"+trxid+"',justificationnumber='"+justificationnumber+"',title='"+title+"',division='"+division+"',";
|
||||
qry = qry +"glacc='"+glacc+"',description='"+description+"',budgettype='"+budgettype+"',amount='"+amount+"',useddate='"+useddate+"',";
|
||||
qry = qry +filedocqry+"uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='"+idxjustification+"'";
|
||||
|
||||
db.query(qry,[],function(err,result,fields){
|
||||
if(err){
|
||||
console.log('d');
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
QRCode.toDataURL(token, function (err, code) {
|
||||
// console.log(code);`
|
||||
if(err) {
|
||||
console.log('ddf');
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
var imageBuffer = Adapter.decodeBase64Image(code);
|
||||
fs.writeFile('./assets/png/'+filepng, imageBuffer.data, function(err) {
|
||||
// console.log(err);
|
||||
if(err){
|
||||
console.log('eee');
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback(err.toString(), apires);
|
||||
}
|
||||
else{
|
||||
var qry = "update tbl_justificationttd set token=md5('"+token+"'),imgqr='"+filepng+"',issigned='1',signeddate='"+datesigned+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='" + idxapproval +"'";
|
||||
// console.log(qry);
|
||||
db.query(qry,[],function(err,result,fields){
|
||||
if(err){
|
||||
console.log('ttetete');
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
apires.success = true;
|
||||
// ===
|
||||
qry = "select status from tbl_justification where _idx='"+idxjustification+"'";
|
||||
db.query(qry,[],function(err,result2,fields){
|
||||
if(err){
|
||||
console.log('bbbb');
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('error',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
var status = result2[0]['status'];
|
||||
var isapproved=0;
|
||||
if(status==2){isapproved = 1;}
|
||||
apires.data = {
|
||||
"isapproved":isapproved,
|
||||
"token":token,
|
||||
"urltoken": process.env.BASEURL+"/main/getimageinfo?route=png&name="+filepng
|
||||
};
|
||||
callback(null, apires);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
// else{
|
||||
|
||||
// }
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async queryDeleteJustification(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_justification ";
|
||||
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 queryListCreatedBy(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let qry = "select * from vw_createdby 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){
|
||||
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 queryListCheckedBy(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let qry = "select * from vw_checkedby 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){
|
||||
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 queryListApprovedBy(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let qry = "select * from vw_approvedby 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){
|
||||
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 queryJustificationDetail(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let _idx= req.query.id;
|
||||
|
||||
let qry = "select * from vw_justificationdetail where id='"+_idx+"'";
|
||||
|
||||
// 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
|
||||
{
|
||||
let dataRows = result.length;
|
||||
if(result.length<=0){
|
||||
apires.meta.message = "Record not found";
|
||||
callback('',apires);
|
||||
}
|
||||
else{
|
||||
Object.keys(result).forEach(function(key){
|
||||
qry = "select * from vw_justificationboq where idxjustification='"+_idx+"' order by id asc";
|
||||
// console.log(qry);
|
||||
db.query(qry,[],function(err,result2,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('error',apires);
|
||||
}
|
||||
else{
|
||||
result[key]['boq'] = [];
|
||||
result[key]['ttd']= [];
|
||||
if(result2.length>0){
|
||||
result[key]['boq'] = JSON.parse(JSON.stringify(result2));
|
||||
}
|
||||
// === Get Ttd
|
||||
qry = "select * from vw_justificationttd where idxjustification='"+_idx+"' order by id asc";
|
||||
// console.log(qry);
|
||||
db.query(qry,[],function(err,result3,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('error',apires);
|
||||
}
|
||||
else{
|
||||
if(result3.length>0){
|
||||
var dibuatoleh = [];
|
||||
var disetujuioleh = [];
|
||||
Object.keys(result3).forEach(function(key2){
|
||||
if(result3[key2]['category']=='CRE'){
|
||||
dibuatoleh.push(JSON.parse(JSON.stringify(result3[key2])));
|
||||
}else{
|
||||
disetujuioleh.push(JSON.parse(JSON.stringify(result3[key2])));
|
||||
}
|
||||
|
||||
});
|
||||
result[key]['ttd'] = {
|
||||
"dibuatoleh" : dibuatoleh,
|
||||
"disetujuioleh" : disetujuioleh
|
||||
}
|
||||
// result[key]['ttd'] = JSON.parse(JSON.stringify(result3));
|
||||
}
|
||||
if(0 === --dataRows){
|
||||
let resultJson = JSON.stringify(result);
|
||||
console.log(resultJson);
|
||||
resultJson = JSON.parse(resultJson);
|
||||
apires.success = true;
|
||||
apires.data = resultJson;
|
||||
callback(null,apires);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
async queryJustificationList(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let limit = req.body.limit;
|
||||
let offset = req.body.offset;
|
||||
let keyword = req.body.keyword;
|
||||
let nik = req.body.nik;
|
||||
let status = req.body.status;
|
||||
|
||||
let swherenik="";
|
||||
if(nik){
|
||||
swherenik="iby='"+nik+"' and ";
|
||||
}
|
||||
// let qry = "select * from vw_justification ";
|
||||
// qry = qry +"where (trim(acccode) like '%"+ keyword +"%' or trim(nomorjustifikasi) like '%"+ keyword +"%') ";
|
||||
// qry = qry +"and iby='"+nik+"' and status in("+status+") order by id asc";
|
||||
let qry = "select * from vw_justification ";
|
||||
qry = qry +"where (trim(acccode) like '%"+ keyword +"%' or trim(nomorjustifikasi) like '%"+ keyword +"%') ";
|
||||
qry = qry +"and "+swherenik+" status in("+status+") 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,
|
||||
"totalrows": result.length
|
||||
});
|
||||
qry = "select * from vw_justification ";
|
||||
qry = qry +"where (trim(acccode) like '%"+ keyword +"%' or trim(nomorjustifikasi) like '%"+ keyword +"%') ";
|
||||
qry = qry +"and "+swherenik+" status in("+status+") order by id 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
|
||||
{
|
||||
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 = JustificationAdapter;
|
||||
89
adapter/mainadapter.js
Normal file
89
adapter/mainadapter.js
Normal file
@ -0,0 +1,89 @@
|
||||
const db=require('../config/dbproc.js');
|
||||
const Adapter=require('./dbadapter.js');
|
||||
const jwt = require('jsonwebtoken');
|
||||
|
||||
class MainAdapter extends Adapter{
|
||||
constructor(){
|
||||
super();
|
||||
}
|
||||
|
||||
async queryGetToken(req,callback){
|
||||
|
||||
let nik = req.body.nik;
|
||||
let password = req.body.pass;
|
||||
let secretkey = req.body.secretkey;
|
||||
console.log(req.body);
|
||||
// console.log("secret key :"+process.env.SECRET_KEY);
|
||||
const token = jwt.sign({
|
||||
nik : nik,
|
||||
password : password
|
||||
}, "Pr0C#2022oct", {expiresIn: process.env.EXPIRED} );
|
||||
var apires = this.getApiResultDefined();
|
||||
// if(secretkey!=process.env.SECRET_KEY){
|
||||
if(secretkey!="Pr0C#2022oct"){
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = "You don't have authorize or wrong password!";
|
||||
}
|
||||
else
|
||||
{
|
||||
apires.success=true;
|
||||
apires.data = token;
|
||||
}
|
||||
// console.log(apires);
|
||||
callback(null,apires);
|
||||
}
|
||||
|
||||
async querySendOTPClient(req,callback){
|
||||
let nik = req.body.nik;
|
||||
|
||||
let qry="SELECT id,token,email,hpnumber from tbl_employee where nik='"+nik+"' and isdeleted=0 order by id asc limit 1";
|
||||
let apires = this.getApiResultDefined("obj_employee","table");
|
||||
db.query(qry, [], function (error, results, fields) {
|
||||
try {
|
||||
if (error) {
|
||||
apires.message=error;
|
||||
callback(error,apires);
|
||||
return;
|
||||
}
|
||||
|
||||
//make results
|
||||
var resultJson = JSON.stringify(results);
|
||||
resultJson = JSON.parse(resultJson);
|
||||
// console.log(resultJson);
|
||||
if(resultJson.length>0){
|
||||
var token = resultJson[0]['token'];
|
||||
var emailmsg = "Your Security Code : "+token+", \nuser code : "+nik;
|
||||
apires.meta['total']= resultJson.length,
|
||||
apires.success=true;
|
||||
apires.data = resultJson;
|
||||
apires.message = emailmsg;
|
||||
// Adapter.sentMail(resultJson[0]['email'],"Kode Verifikasi",emailmsg,function(err,result){
|
||||
// if(err) {console.log(err); return callback(err,null);}
|
||||
// })
|
||||
callback(null, apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
apires.message="NIK Not not found";
|
||||
callback(null, apires);
|
||||
}
|
||||
|
||||
|
||||
} catch (error) {
|
||||
//console.log(error);
|
||||
apires.message = error.message;
|
||||
callback(error,apires);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async queryGetMenus(req, callback){
|
||||
try {
|
||||
|
||||
} catch (err) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = MainAdapter;
|
||||
2135
adapter/poadapter.js
Normal file
2135
adapter/poadapter.js
Normal file
File diff suppressed because it is too large
Load Diff
592
adapter/pradapter.js
Normal file
592
adapter/pradapter.js
Normal file
@ -0,0 +1,592 @@
|
||||
const db=require('../config/dbproc.js');
|
||||
const Adapter=require('./dbadapter.js');
|
||||
const QRCode = require('qrcode');
|
||||
const fs = require("fs");
|
||||
|
||||
|
||||
class PrAdapter extends Adapter{
|
||||
constructor(){
|
||||
super();
|
||||
}
|
||||
|
||||
async queryPrJustificationList(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
|
||||
// console.log(req);
|
||||
let nik = req.query.nik;
|
||||
let qry = "select * from vw_justification where iscreatepr=0 and status=2 and iby='"+nik+"' 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){
|
||||
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 queryGetTrxIdPr(req, callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
let nik = req.query.nik;
|
||||
let qry = "select count(_idx) totalrows,date_format(now(),'%Y%m%d') dates from tbl_pr where iby='"+nik+"' and year(idt)=year(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 resp = JSON.parse(JSON.stringify(result));
|
||||
// console.log(resp[0]['dates']);
|
||||
var ymd = resp[0]['dates'];
|
||||
ymd = ymd.toString().trim().replace("-","");
|
||||
var counter = resp[0]['totalrows']+1;
|
||||
var counterstr = ("0000000000"+counter);
|
||||
counterstr = counterstr.substring(counterstr.length-4, counterstr.length);
|
||||
var trxid = "TCEL-PR/"+ymd+"/"+nik+"/"+counterstr;
|
||||
apires.success = true;
|
||||
apires.data = trxid
|
||||
callback(null, apires);
|
||||
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryNewPr(req, callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
// console.log(req.body);
|
||||
let idxjustification= req.body.idxjustification;
|
||||
let justificationnumber= req.body.justificationnumber;
|
||||
let trxidpr = req.body.trxidpr;
|
||||
let prnumber = req.body.prnumber;
|
||||
let costcenter = req.body.costcenter;
|
||||
let profitcenter = req.body.profitcenter;
|
||||
let description = req.body.description;
|
||||
let qty = req.body.qty;
|
||||
let unit = req.body.unit;
|
||||
let netprice = req.body.netprice;
|
||||
let totalvalue = req.body.totalvalue;
|
||||
let curr = req.body.curr;
|
||||
let prdate = req.body.prdate;
|
||||
let idxapproval = req.body.idxapproval;
|
||||
let nikapproval = req.body.nikapproval;
|
||||
let nik = req.body.nik;
|
||||
let status = -1;
|
||||
let statusdescription = "draft";
|
||||
|
||||
let qry = "insert into tbl_pr ";
|
||||
qry = qry +"set trxidpr='"+trxidpr+"',prnumber='"+prnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',costcenter='"+costcenter+"',";
|
||||
qry = qry +"profitcenter='"+profitcenter+"',description='"+description+"',qty='"+qty+"',unit='"+unit+"',netprice='"+netprice+"',totalvalue='"+totalvalue+"',";
|
||||
qry = qry +"curr='"+curr+"',prdate='"+prdate+"',status='"+status+"',statusdescription='"+statusdescription+"',";
|
||||
qry = qry +"idxapproval='"+idxapproval+"',nikapproval='"+nikapproval+"',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 res = JSON.parse(JSON.stringify(result));
|
||||
apires.success = true;
|
||||
apires.meta.message = "Saved Success";
|
||||
apires.data = res;
|
||||
callback(null, apires);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
async queryUpdatePr(req, callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
// console.log(req.body);
|
||||
let idxpr= req.body.idxpr;
|
||||
let idxjustification= req.body.idxjustification;
|
||||
let justificationnumber= req.body.justificationnumber;
|
||||
let trxidpr = req.body.trxidpr;
|
||||
let prnumber = req.body.prnumber;
|
||||
let costcenter = req.body.costcenter;
|
||||
let profitcenter = req.body.profitcenter;
|
||||
let description = req.body.description;
|
||||
let qty = req.body.qty;
|
||||
let unit = req.body.unit;
|
||||
let netprice = req.body.netprice;
|
||||
let totalvalue = req.body.totalvalue;
|
||||
let curr = req.body.curr;
|
||||
let prdate = req.body.prdate;
|
||||
let idxapproval = req.body.idxapproval;
|
||||
let nikapproval = req.body.nikapproval;
|
||||
let nik = req.body.nik;
|
||||
let status = -1;
|
||||
let statusdescription = "draft";
|
||||
|
||||
let qry = "update tbl_pr ";
|
||||
qry = qry +"set trxidpr='"+trxidpr+"',prnumber='"+prnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',costcenter='"+costcenter+"',";
|
||||
qry = qry +"profitcenter='"+profitcenter+"',description='"+description+"',qty='"+qty+"',unit='"+unit+"',netprice='"+netprice+"',totalvalue='"+totalvalue+"',";
|
||||
qry = qry +"idxapproval='"+idxapproval+"',nikapproval='"+nikapproval+"',curr='"+curr+"',prdate='"+prdate+"',status='"+status+"',statusdescription='"+statusdescription+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='"+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
|
||||
{
|
||||
var res = JSON.parse(JSON.stringify(result));
|
||||
apires.success = true;
|
||||
apires.meta.message = "Updated Success";
|
||||
apires.data = res;
|
||||
callback(null, apires);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
async queryUpdateStatusPr(req,prsapnumber, sapmessage, callback) {
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
var idxpr = req.body.idxpr;
|
||||
var status = req.body.status;
|
||||
var statusdescription = req.body.statusdescription;
|
||||
var description = req.body.description;
|
||||
var curr = req.body.curr;
|
||||
var nik = req.body.nik;
|
||||
|
||||
var swherestatus="status='" + status +"',statusdescription='" + statusdescription +"',";
|
||||
if(sapmessage){
|
||||
swherestatus="";
|
||||
}
|
||||
|
||||
var setprnumber="prnumber='"+prsapnumber+"',";
|
||||
if(!prsapnumber){setprnumber="";}
|
||||
|
||||
var setdescription="";
|
||||
if(description){
|
||||
setdescription="description='"+description+"',";
|
||||
}
|
||||
if(curr){
|
||||
setdescription+="curr='"+curr+"',";
|
||||
}
|
||||
|
||||
// console.log(setdescription);
|
||||
var qry = "update tbl_pr set "+setprnumber+setdescription+"sapmessage='"+sapmessage+"',"+swherestatus+"uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='" + 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
|
||||
{
|
||||
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 queryDeletePr(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_pr ";
|
||||
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 queryPrDetail(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let _idx= req.query.id;
|
||||
|
||||
let qry = "select * from vw_pr where id='"+_idx+"'";
|
||||
|
||||
// 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
|
||||
{
|
||||
let dataRows = result.length;
|
||||
if(dataRows<=0){
|
||||
apires.meta.message = "Record not found";
|
||||
callback('',apires);
|
||||
}
|
||||
else{
|
||||
let resultJson = JSON.stringify(result);
|
||||
resultJson = JSON.parse(resultJson);
|
||||
apires.success = true;
|
||||
apires.data = resultJson;
|
||||
callback(null,apires);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryPrList(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let limit = req.body.limit;
|
||||
let offset = req.body.offset;
|
||||
let keyword = req.body.keyword;
|
||||
let nik = req.body.nik;
|
||||
let status = req.body.status;
|
||||
|
||||
// let qry = "select * from vw_pr ";
|
||||
// qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') ";
|
||||
// qry = qry +"and iby='"+nik+"' and status in("+status+") order by id asc limit " + offset + ", " + limit;
|
||||
|
||||
let swherenik="";
|
||||
if(nik){
|
||||
swherenik="iby='"+nik+"' and ";
|
||||
}
|
||||
|
||||
|
||||
let qry = "select * from vw_pr ";
|
||||
qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') ";
|
||||
qry = qry +"and "+swherenik+" status in("+status+") order by id 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_pr ";
|
||||
qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') ";
|
||||
qry = qry +"and "+swherenik+" status in("+status+") order by id 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
|
||||
{
|
||||
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 queryApprovedPR(req, callback) {
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
let idxpr= req.body.idxpr;
|
||||
let idxjustification= req.body.idxjustification;
|
||||
let justificationnumber= req.body.justificationnumber;
|
||||
let trxidpr = req.body.trxidpr;
|
||||
let prnumber = req.body.prnumber;
|
||||
let costcenter = req.body.costcenter;
|
||||
let profitcenter = req.body.profitcenter;
|
||||
let description = req.body.description;
|
||||
let qty = req.body.qty;
|
||||
let unit = req.body.unit;
|
||||
let netprice = req.body.netprice;
|
||||
let totalvalue = req.body.totalvalue;
|
||||
let curr = req.body.curr;
|
||||
let prdate = req.body.prdate;
|
||||
let idxapproval = req.body.idxapproval;
|
||||
let nikapproval = req.body.nikapproval;
|
||||
let nik = req.body.nik;
|
||||
let status = 2;
|
||||
let statusdescription = "Approval";
|
||||
let approveddate = req.body.approveddate;
|
||||
var token =this.getToken();
|
||||
var filepng = token+"pr.png";
|
||||
// token =getToken();
|
||||
token = token +","+nikapproval;
|
||||
|
||||
let qry = "update tbl_pr ";
|
||||
qry = qry +"set trxidpr='"+trxidpr+"',prnumber='"+prnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',costcenter='"+costcenter+"',";
|
||||
qry = qry +"profitcenter='"+profitcenter+"',description='"+description+"',qty='"+qty+"',unit='"+unit+"',netprice='"+netprice+"',totalvalue='"+totalvalue+"',";
|
||||
qry = qry +"idxapproval='"+idxapproval+"',nikapproval='"+nikapproval+"',approveddate='"+approveddate+"',curr='"+curr+"',prdate='"+prdate+"',status='"+status+"',statusdescription='"+statusdescription+"',";
|
||||
qry = qry +"token=md5('"+token+"'),filepng='"+filepng+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='"+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
|
||||
{
|
||||
QRCode.toDataURL(token, function (err, code) {
|
||||
// console.log(code);
|
||||
if(err) {
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
var imageBuffer = Adapter.decodeBase64Image(code);
|
||||
fs.writeFile('./assets/png/'+filepng, imageBuffer.data, function(err) {
|
||||
// console.log(err);
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback(err.toString(), apires);
|
||||
}
|
||||
else{
|
||||
apires.success = true;
|
||||
apires.data = {
|
||||
"isapproved":1,
|
||||
"token":token,
|
||||
"urltoken": process.env.BASEURL+"/main/getimageinfo?route=png&name="+filepng
|
||||
};
|
||||
callback(null, apires);
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryPrManagementList(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let limit = req.query.limit;
|
||||
let offset = req.query.offset;
|
||||
let keyword = req.query.keyword;
|
||||
let nik = req.query.nik;
|
||||
|
||||
let swherenik="and iby='"+nik+"'";
|
||||
if(nik=='999999'){
|
||||
swherenik="";
|
||||
}
|
||||
|
||||
// let qry = "select * from vw_prmanagement ";
|
||||
// qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') ";
|
||||
// qry = qry +swherenik+" order by id asc limit " + offset + ", " + limit;
|
||||
let qry = "select * from vw_prmanagement ";
|
||||
qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') ";
|
||||
// qry = qry +swherenik+" order by id 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_prmanagement ";
|
||||
qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') ";
|
||||
qry = qry + swherenik +" 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 queryPrManagementListDetail(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let idxpr = req.query.idxpr;
|
||||
let qry = "select * from vw_prmanagement ";
|
||||
qry = qry +"where id='"+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
|
||||
{
|
||||
apires.meta.code = 200;
|
||||
if(result.length>0){
|
||||
apires.success = true;
|
||||
apires.data=JSON.parse(JSON.stringify(result));
|
||||
}
|
||||
else{
|
||||
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 = PrAdapter;
|
||||
731
adapter/procjustificationadapter.js
Normal file
731
adapter/procjustificationadapter.js
Normal file
@ -0,0 +1,731 @@
|
||||
const db=require('../config/dbproc.js');
|
||||
const Adapter=require('./dbadapter.js');
|
||||
const QRCode = require('qrcode');
|
||||
const fs = require("fs");
|
||||
|
||||
function getToken(){
|
||||
try {
|
||||
var n1=Math.floor(Math.random() * 9) + 0;
|
||||
var n2=Math.floor(Math.random() * 9) + 0;
|
||||
var n3=Math.floor(Math.random() * 9) + 0;
|
||||
var n4=Math.floor(Math.random() * 9) + 0;
|
||||
var n5=Math.floor(Math.random() * 9) + 0;
|
||||
var n6=Math.floor(Math.random() * 9) + 0;
|
||||
var otp=n1.toString()+n2.toString()+n3.toString()+n4.toString()+n5.toString()+n6.toString();
|
||||
// console.log(otp);
|
||||
return otp;
|
||||
} catch (error) {
|
||||
return error;
|
||||
}
|
||||
}
|
||||
|
||||
class ProcJustificationAdapter extends Adapter{
|
||||
constructor(){
|
||||
super();
|
||||
}
|
||||
|
||||
async queryPrList(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
let nik = req.query.nik;
|
||||
let isused = req.query.isused;
|
||||
let swherenik="";
|
||||
if(nik){
|
||||
swherenik="iby='"+nik+"' and ";
|
||||
}
|
||||
|
||||
// let qry = "select * from vw_pr where status in(2,6) and isused="+isused+" and iby='"+nik+"' order by id asc";
|
||||
let qry = "select * from vw_pr where status in(2,6) and "+swherenik+" isused="+isused+" 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){
|
||||
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 queryNewProcJustification(req, callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
let idxpr= req.body.idxpr;
|
||||
let prnumber= req.body.prnumber;
|
||||
let procjustificationnumber = req.body.procjustificationnumber;
|
||||
let idxjustification = req.body.idxjustification;
|
||||
let justificationnumber = req.body.justificationnumber;
|
||||
// let idxcreated = req.body.idxcreated;
|
||||
// let nikcreated = req.body.nikcreated;
|
||||
// let idxverified = req.body.idxverified;
|
||||
// let nikverified = req.body.nikverified;
|
||||
// let idxapproval = req.body.idxapproval;
|
||||
// let nikapproval = req.body.nikapproval;
|
||||
let nik = req.body.nik;
|
||||
let ttd = JSON.parse(req.body.ttd);
|
||||
let status = -1;
|
||||
let statusdescription = "draft";
|
||||
|
||||
// let qry = "insert into tbl_procjustification ";
|
||||
// qry = qry +"set idxpr='"+idxpr+"',prnumber='"+prnumber+"',procjustificationnumber='"+procjustificationnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',";
|
||||
// qry = qry +"status='"+status+"',statusdescription='"+statusdescription+"',idxcreated='"+idxcreated+"',nikcreated='"+nikcreated+"',idxverified='"+idxverified+"',nikverified='"+nikverified+"',";
|
||||
// qry = qry +"idxapproval='"+idxapproval+"',nikapproval='"+nikapproval+"',iby='"+nik+"',idt=now()";
|
||||
let qry = "insert into tbl_procjustification ";
|
||||
qry = qry +"set idxpr='"+idxpr+"',prnumber='"+prnumber+"',procjustificationnumber='"+procjustificationnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',";
|
||||
qry = qry +"status='"+status+"',statusdescription='"+statusdescription+"',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 res = JSON.parse(JSON.stringify(result));
|
||||
var idxprocjustification = res.insertId;
|
||||
|
||||
var created = ttd.dibuatoleh;
|
||||
var verify = ttd.diverifikasioleh;
|
||||
var approval = ttd.disetujuioleh;
|
||||
|
||||
Object.keys(created).forEach(function(key){
|
||||
var token =getToken();
|
||||
var idemployee = created[key]['idemployee'];
|
||||
var nikcreated = created[key]['nik'];
|
||||
|
||||
qry = "insert into tbl_procjustificationttd set idxjustification='"+idxprocjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nikcreated+"',category='CRE',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
||||
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
});
|
||||
|
||||
Object.keys(verify).forEach(function(key){
|
||||
var token =getToken();
|
||||
var idemployee = verify[key]['idemployee'];
|
||||
var nikverify = verify[key]['nik'];
|
||||
|
||||
// if(err) return console.log("error occurred")
|
||||
qry = "insert into tbl_procjustificationttd set idxjustification='"+idxprocjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nikverify+"',category='VRF',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
||||
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
});
|
||||
|
||||
Object.keys(approval).forEach(function(key){
|
||||
var token =getToken();
|
||||
var idemployee = approval[key]['idemployee'];
|
||||
var nikapproval = approval[key]['nik'];
|
||||
|
||||
// if(err) return console.log("error occurred")
|
||||
qry = "insert into tbl_procjustificationttd set idxjustification='"+idxprocjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nikapproval+"',category='APR',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
||||
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
});
|
||||
|
||||
apires.success = true;
|
||||
apires.meta.message = "Saved Success";
|
||||
apires.data = res;
|
||||
callback(null, apires);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
async queryUpdateProcJustification(req, filename, callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
//console.log(filename);
|
||||
let idxprocjustification = req.body.idxprocjustification;
|
||||
let idxpr= req.body.idxpr;
|
||||
let prnumber= req.body.prnumber;
|
||||
let procjustificationnumber = req.body.procjustificationnumber;
|
||||
let idxjustification = req.body.idxjustification;
|
||||
let justificationnumber = req.body.justificationnumber;
|
||||
let filecategory = req.body.filecategory;
|
||||
let descriptionfile = req.body.descriptionfile;
|
||||
let numberoffile = req.body.numberoffile;
|
||||
let ttd = JSON.parse(req.body.ttd);
|
||||
let nik = req.body.nik;
|
||||
let status = req.body.status;
|
||||
let statusdescription = req.body.statusdescription;
|
||||
|
||||
// let qry = "update tbl_procjustification ";
|
||||
// qry = qry +"set idxpr='"+idxpr+"',prnumber='"+prnumber+"',procjustificationnumber='"+procjustificationnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',";
|
||||
// qry = qry +"status='"+status+"',statusdescription='"+statusdescription+"',idxcreated='"+idxcreated+"',nikcreated='"+nikcreated+"',idxverified='"+idxverified+"',nikverified='"+nikverified+"',";
|
||||
// qry = qry +"idxapproval='"+idxapproval+"',nikapproval='"+nikapproval+"',uby='"+nik+"',udt=now() ";
|
||||
// qry = qry +"where _idx='"+idxprocjustification+"'";
|
||||
let qry = "update tbl_procjustification ";
|
||||
qry = qry +"set idxpr='"+idxpr+"',prnumber='"+prnumber+"',procjustificationnumber='"+procjustificationnumber+"',idxjustification='"+idxjustification+"',justificationnumber='"+justificationnumber+"',";
|
||||
qry = qry +"status='"+status+"',statusdescription='"+statusdescription+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='"+idxprocjustification+"'";
|
||||
|
||||
// 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
|
||||
{
|
||||
qry ="select _idx from tbl_procjustificationdoc ";
|
||||
qry = qry +"where idxheader='"+idxprocjustification+"' and numberoffile='"+numberoffile+"' and filecategory='"+filecategory+"' and isdeleted=0 order by _idx desc limit 1";
|
||||
// console.log(qry);
|
||||
db.query(qry,[], function(err2, results2){
|
||||
if(err2){
|
||||
apires.meta['message'] = err2.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}else{
|
||||
|
||||
qry ="insert into tbl_procjustificationdoc ";
|
||||
qry = qry + "set idxheader='"+idxprocjustification+"',numberoffile='"+numberoffile+"',filecategory='"+filecategory+"',";
|
||||
qry = qry + "filename='"+filename+"',descriptionfile='"+descriptionfile+"',iby='"+nik+"',idt=now()";
|
||||
if(results2.length>=1){
|
||||
qry ="update tbl_procjustificationdoc ";
|
||||
qry = qry + "set idxheader='"+idxprocjustification+"',numberoffile='"+numberoffile+"',filecategory='"+filecategory+"',";
|
||||
qry = qry + "filename='"+filename+"',descriptionfile='"+descriptionfile+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where idxheader='"+idxprocjustification+"' and numberoffile='"+numberoffile+"' and filecategory='"+filecategory+"' and isdeleted=0";
|
||||
}
|
||||
db.query(qry,[],function(err3,results3){
|
||||
if(err3){
|
||||
apires.meta['message'] = err3.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else{
|
||||
// === Update ttd
|
||||
var created = ttd.dibuatoleh;
|
||||
var verify = ttd.diverifikasioleh;
|
||||
var approval = ttd.disetujuioleh;
|
||||
|
||||
Object.keys(created).forEach(function(key){
|
||||
var token =getToken();
|
||||
var id = created[key]['id'];
|
||||
var idemployee = created[key]['idemployee'];
|
||||
var nik = created[key]['nik'];
|
||||
var action = created[key]['action'];
|
||||
|
||||
qry = "insert into tbl_procjustificationttd set idxjustification='"+idxprocjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='CRE',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
||||
if(action=='update'){
|
||||
qry = "update tbl_procjustificationttd set idxjustification='"+idxprocjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='CRE',token='"+token+"',imgqr='',uby='"+nik+"',udt=now() ";
|
||||
qry = qry + "where _idx='"+id+"'";
|
||||
}
|
||||
if(action=='delete'){
|
||||
qry = "update tbl_procjustificationttd set isdeleted=1,dby='"+nik+"',ddt=now() ";
|
||||
qry = qry+ "where _idx='"+id+"'";
|
||||
}
|
||||
|
||||
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
});
|
||||
|
||||
Object.keys(verify).forEach(function(key){
|
||||
var token =getToken();
|
||||
var id = verify[key]['id'];
|
||||
var idemployee = verify[key]['idemployee'];
|
||||
var nik = verify[key]['nik'];
|
||||
var action = verify[key]['action'];
|
||||
|
||||
qry = "insert into tbl_procjustificationttd set idxjustification='"+idxprocjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='VRF',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
||||
if(action=='update'){
|
||||
qry = "update tbl_procjustificationttd set idxjustification='"+idxprocjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='VRF',token='"+token+"',imgqr='',uby='"+nik+"',udt=now() ";
|
||||
qry = qry + "where _idx='"+id+"'";
|
||||
}
|
||||
if(action=='delete'){
|
||||
qry = "update tbl_procjustificationttd set isdeleted=1,dby='"+nik+"',ddt=now() ";
|
||||
qry = qry+ "where _idx='"+id+"'";
|
||||
}
|
||||
|
||||
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
});
|
||||
|
||||
Object.keys(approval).forEach(function(key){
|
||||
var token =getToken();
|
||||
var id = approval[key]['id'];
|
||||
var idemployee = approval[key]['idemployee'];
|
||||
var nik = approval[key]['nik'];
|
||||
var action = approval[key]['action'];
|
||||
|
||||
qry = "insert into tbl_procjustificationttd set idxjustification='"+idxprocjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='APR',token='"+token+"',imgqr='',iby='"+nik+"',idt=now()";
|
||||
if(action=='update'){
|
||||
qry = "update tbl_procjustificationttd set idxjustification='"+idxprocjustification+"',idemployee='"+idemployee+"',";
|
||||
qry = qry + "nik='"+nik+"',category='APR',token='"+token+"',imgqr='',uby='"+nik+"',udt=now() ";
|
||||
qry = qry + "where _idx='"+id+"'";
|
||||
}
|
||||
if(action=='delete'){
|
||||
qry = "update tbl_procjustificationttd set isdeleted=1,dby='"+nik+"',ddt=now() ";
|
||||
qry = qry+ "where _idx='"+id+"'";
|
||||
}
|
||||
|
||||
db.query(qry,[],function(err3,result3,fields3){return result3;});
|
||||
});
|
||||
|
||||
var res = JSON.parse(JSON.stringify(results3));
|
||||
apires.success = true;
|
||||
apires.meta.message = "Updated Success";
|
||||
apires.data = res;
|
||||
callback(null, apires);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
async queryInquiryProcJustification(req, filename, callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
let idxprocjustification = req.body.idxprocjustification;
|
||||
let filecategory = req.body.filecategory;
|
||||
let numberoffile = req.body.numberoffile;
|
||||
let descriptionfile = req.body.descriptionfile;
|
||||
let nik = req.body.nik;
|
||||
|
||||
let qry ="select _idx from tbl_procjustificationdoc ";
|
||||
qry = qry +"where idxheader='"+idxprocjustification+"' and numberoffile='"+numberoffile+"' and filecategory='"+filecategory+"' and isdeleted=0 order by _idx desc limit 1";
|
||||
// console.log(qry);
|
||||
db.query(qry,[], function(err2, results2){
|
||||
if(err2){
|
||||
apires.meta['message'] = err2.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}else{
|
||||
|
||||
qry ="insert into tbl_procjustificationdoc ";
|
||||
qry = qry + "set idxheader='"+idxprocjustification+"',numberoffile='"+numberoffile+"',filecategory='"+filecategory+"',";
|
||||
qry = qry + "descriptionfile='"+descriptionfile+"',filename='"+filename+"',iby='"+nik+"',idt=now()";
|
||||
if(results2.length>=1){
|
||||
qry ="update tbl_procjustificationdoc ";
|
||||
qry = qry + "set idxheader='"+idxprocjustification+"',numberoffile='"+numberoffile+"',filecategory='"+filecategory+"',";
|
||||
qry = qry + "descriptionfile='"+descriptionfile+"',filename='"+filename+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where idxheader='"+idxprocjustification+"' and numberoffile='"+numberoffile+"' and filecategory='"+filecategory+"' and isdeleted=0";
|
||||
}
|
||||
console.log(qry);
|
||||
db.query(qry,[],function(err3,results3){
|
||||
if(err3){
|
||||
apires.meta['message'] = err3.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else{
|
||||
var res = JSON.parse(JSON.stringify(results3));
|
||||
apires.success = true;
|
||||
apires.meta.message = "Updated Success";
|
||||
apires.data = res;
|
||||
callback(null, apires);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
async querySignedProcJustification(req, callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
let idxprocjustification = req.body.idxprocjustification;
|
||||
let nik = req.body.nik;
|
||||
let idxsigned = req.body.idxsigned;
|
||||
let idemployeesigned = req.body.idemployeesigned;
|
||||
let niksigned = req.body.niksigned;
|
||||
let datesigned = req.body.datesigned;
|
||||
let idxsignedvrf = req.body.idxsignedvrf ?? 0;
|
||||
let idemployeevrf = req.body.idemployeevrf ?? 0;
|
||||
let niksignedvrf = req.body.niksignedvrf ?? 0;
|
||||
let idxsignedapr = req.body.idxsignedapr ?? 0;
|
||||
let idemployeeapr = req.body.idemployeeapr ?? 0;
|
||||
let niksignedapr = req.body.niksignedapr ?? 0;
|
||||
let status = req.body.status;
|
||||
let statusdescription = req.body.statusdescription;//"Verified";
|
||||
var token = this.getToken();
|
||||
var filepng = token+".png";
|
||||
// token =getToken();
|
||||
token = token +","+niksigned;
|
||||
|
||||
// console.log(req.body);
|
||||
let qry = "update tbl_procjustification ";
|
||||
qry = qry +"set status='"+status+"',statusdescription='"+statusdescription+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='"+idxprocjustification+"'";
|
||||
|
||||
// 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(status==0){
|
||||
var qry = "update tbl_procjustificationttd set idemployee='"+idemployeevrf+"',nik='"+niksignedvrf+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='" + idxsignedvrf +"'";
|
||||
db.query(qry,[],function(err,result,fields){});
|
||||
|
||||
var qry = "update tbl_procjustificationttd set idemployee='"+idemployeeapr+"',nik='"+niksignedapr+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='" + idxsignedapr +"'";
|
||||
db.query(qry,[],function(err,result,fields){});
|
||||
}
|
||||
QRCode.toDataURL(token, function (err, code) {
|
||||
if(err) {
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
var imageBuffer = Adapter.decodeBase64Image(code);
|
||||
fs.writeFile('./assets/pngproc/'+filepng, imageBuffer.data, function(err) {
|
||||
// console.log(err);
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback(err.toString(), apires);
|
||||
}
|
||||
else{
|
||||
// var qry = "update tbl_procjustificationttd set token=md5('"+token+"'),imgqr='"+filepng+"',issigned='1',signeddate='"+datesigned+"',uby='"+nik+"',udt=now() ";
|
||||
var qry = "update tbl_procjustificationttd set idemployee='"+idemployeesigned+"',nik='"+niksigned+"',token='"+token+"',imgqr='"+filepng+"',issigned='1',signeddate='"+datesigned+"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='" + idxsigned +"'";
|
||||
// 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;
|
||||
// ===
|
||||
qry = "select status from tbl_procjustification where _idx='"+idxprocjustification+"'";
|
||||
|
||||
db.query(qry,[],function(err,result2,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('err',apires);
|
||||
}
|
||||
else
|
||||
{
|
||||
var status = result2[0]['status'];
|
||||
var isverified=0;
|
||||
if(status==1){isverified = 1;}
|
||||
apires.data = {
|
||||
"isverified":isverified,
|
||||
"token":token,
|
||||
"urltoken": process.env.BASEURL+"/main/getimageinfo?route=pngproc&name="+filepng
|
||||
};
|
||||
callback(null, apires);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
async queryDeleteProcJustification(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_procjustification ";
|
||||
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 queryProcJustificationDetail(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let _idx= req.query.id;
|
||||
|
||||
let qry = "select * from vw_procjustification where id='"+_idx+"'";
|
||||
|
||||
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
|
||||
{
|
||||
let dataRows = result.length;
|
||||
if(result.length<=0){
|
||||
apires.meta.message = "Record not found";
|
||||
callback('',apires);
|
||||
}
|
||||
else{
|
||||
Object.keys(result).forEach(function(key){
|
||||
qry = "select * from vw_procjustificationdoc where idxheader='"+_idx+"' order by id asc";
|
||||
// console.log(qry);
|
||||
db.query(qry,[],function(err,result2,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('error',apires);
|
||||
}
|
||||
else{
|
||||
result[key]['filedoc'] = JSON.parse(JSON.stringify(result2));
|
||||
qry = "select * from vw_procjustificationttd where idxheader='"+_idx+"' order by id asc";
|
||||
// console.log(qry);
|
||||
db.query(qry,[],function(err,result3,fields){
|
||||
if(err){
|
||||
apires.meta['message'] = err.toString();
|
||||
apires.meta['code'] = 500;
|
||||
callback('error',apires);
|
||||
}
|
||||
else{
|
||||
if(result3.length>0){
|
||||
var dibuatoleh = [];
|
||||
var diverifikasioleh = [];
|
||||
var disetujuioleh = [];
|
||||
Object.keys(result3).forEach(function(key2){
|
||||
if(result3[key2]['category']=='CRE'){
|
||||
dibuatoleh.push(JSON.parse(JSON.stringify(result3[key2])));
|
||||
}
|
||||
else if(result3[key2]['category']=='VRF'){
|
||||
diverifikasioleh.push(JSON.parse(JSON.stringify(result3[key2])));
|
||||
}else{
|
||||
disetujuioleh.push(JSON.parse(JSON.stringify(result3[key2])));
|
||||
}
|
||||
|
||||
});
|
||||
result[key]['ttd'] = {
|
||||
"dibuatoleh" : dibuatoleh,
|
||||
"diverifikasioleh" : diverifikasioleh,
|
||||
"disetujuioleh" : disetujuioleh
|
||||
}
|
||||
// result[key]['ttd'] = JSON.parse(JSON.stringify(result3));
|
||||
}
|
||||
if(0 === --dataRows){
|
||||
let resultJson = JSON.stringify(result);
|
||||
resultJson = JSON.parse(resultJson);
|
||||
apires.success = true;
|
||||
apires.data = resultJson;
|
||||
callback(null,apires);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
// if(0 === --dataRows){
|
||||
// let resultJson = JSON.stringify(result);
|
||||
// resultJson = JSON.parse(resultJson);
|
||||
// apires.success = true;
|
||||
// apires.data = resultJson;
|
||||
// callback(null,apires);
|
||||
// }
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} catch (err) {
|
||||
apires.meta.code = 500;
|
||||
apires.meta.message = err.toString();
|
||||
callback('error',apires);
|
||||
}
|
||||
}
|
||||
|
||||
async queryProcJustificationList(req,callback){
|
||||
var apires = this.getApiResultDefined();
|
||||
try {
|
||||
|
||||
let limit = req.body.limit;
|
||||
let offset = req.body.offset;
|
||||
let keyword = req.body.keyword;
|
||||
let nik = req.body.nik;
|
||||
let status = req.body.status;
|
||||
|
||||
|
||||
let swherenik="";
|
||||
if(nik){
|
||||
swherenik="iby='"+nik+"' and ";
|
||||
}
|
||||
|
||||
// let qry = "select * from vw_procjustification ";
|
||||
// qry = qry +"where (trim(prnumber) like '%"+ keyword +"%' or trim(justificationnumber) like '%"+ keyword +"%') ";
|
||||
// qry = qry +"and iby='"+nik+"' and status in("+status+") order by id asc";
|
||||
let qry = "select * from vw_procjustification ";
|
||||
qry = qry +"where (trim(prnumber) like '%"+ keyword +"%' or trim(justificationnumber) like '%"+ keyword +"%') ";
|
||||
qry = qry +"and "+swherenik+" status in("+status+") 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,
|
||||
"totalrows": result.length
|
||||
});
|
||||
qry = "select * from vw_procjustification ";
|
||||
qry = qry +"where (trim(prnumber) like '%"+ keyword +"%' or trim(justificationnumber) like '%"+ keyword +"%') ";
|
||||
qry = qry +"and "+swherenik+" status in("+status+") 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 queryUpdateStatusProcJustification(req, callback) {
|
||||
try {
|
||||
var apires = this.getApiResultDefined();
|
||||
var idxjustification = req.body.idxjustification;
|
||||
var status = req.body.status;
|
||||
var statusdescription = req.body.statusdescription;
|
||||
var nik = req.body.nik;
|
||||
|
||||
var qry = "update tbl_procjustification set status='" + status +"',statusdescription='" + statusdescription +"',uby='"+nik+"',udt=now() ";
|
||||
qry = qry +"where _idx='" + idxjustification +"'";
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
module.exports = ProcJustificationAdapter;
|
||||
239
adapter/vendoradapter.js
Normal file
239
adapter/vendoradapter.js
Normal file
@ -0,0 +1,239 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user