534 lines
23 KiB
JavaScript
534 lines
23 KiB
JavaScript
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;
|
|
|
|
|