Compare commits
60 Commits
prod_v1.0
...
2e52f41daf
| Author | SHA1 | Date | |
|---|---|---|---|
| 2e52f41daf | |||
| d03ee0aca0 | |||
| 09875a61fa | |||
| c5b08ee099 | |||
| 92be63ab02 | |||
| 1f898d3977 | |||
| ee0cfda601 | |||
| 8f8bf4bad5 | |||
| 17abbe9b73 | |||
| 4d94263a93 | |||
| 541b423c03 | |||
| f6670321fc | |||
| c6ed4a0400 | |||
| 7575fc2e13 | |||
| 79709dd680 | |||
| 9d48cb4089 | |||
| d6e1035a3b | |||
| 82ac594b72 | |||
| 0cac4ae30b | |||
| 232830070a | |||
| 71d960f9ea | |||
| 20c1864ac5 | |||
| 44f10398ba | |||
| 4808c533a6 | |||
| 9d4e4a98b2 | |||
| 034d99ff19 | |||
| 4c332b3ce9 | |||
| dda6e73cbb | |||
| 2dd3a8aa08 | |||
| ec10b69585 | |||
| 3b48e720d9 | |||
| f4c589e214 | |||
| b5fcf71f4a | |||
| 051dcf2052 | |||
| 5c4b79bac7 | |||
| c39d79feec | |||
| 638ff55bff | |||
| 7e3f6dd426 | |||
| a01efd2812 | |||
| c777373817 | |||
| 367bb5d29c | |||
| 9c199e2413 | |||
| 2dc85891e2 | |||
| 23f1026b3e | |||
| e139924302 | |||
| 128d47e786 | |||
| 76ac4d4341 | |||
| 2a5363c835 | |||
| 758fc65db3 | |||
| c00dc40f43 | |||
| 0221a6fb04 | |||
| cc1102c444 | |||
| 73ac2987a0 | |||
| 0476c18c43 | |||
| 63db38c0fc | |||
| ee58229803 | |||
| 71b30d0a33 | |||
| 221e81aff3 | |||
| b0c95b12e1 | |||
| 9b1d94348e |
@ -1,7 +1,7 @@
|
|||||||
const db=require('../config/dbproc.js');
|
const db = require("../config/dbproc.js");
|
||||||
const Adapter=require('./dbadapter.js');
|
const Adapter = require("./dbadapter.js");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
|
const baseUrl = process.env.URLPDFFILE;
|
||||||
|
|
||||||
class BastAdapter extends Adapter {
|
class BastAdapter extends Adapter {
|
||||||
constructor() {
|
constructor() {
|
||||||
@ -25,22 +25,20 @@ class BastAdapter extends Adapter{
|
|||||||
// console.log(qry);
|
// console.log(qry);
|
||||||
db.query(qry, [], function (err, result, fields) {
|
db.query(qry, [], function (err, result, fields) {
|
||||||
if (err) {
|
if (err) {
|
||||||
apires.meta['message'] = err.toString();
|
apires.meta["message"] = err.toString();
|
||||||
apires.meta['code'] = 500;
|
apires.meta["code"] = 500;
|
||||||
callback('err',apires);
|
callback("err", apires);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
if (result.length > 0) {
|
if (result.length > 0) {
|
||||||
let pagination = result.length / limit;
|
let pagination = result.length / limit;
|
||||||
if (!Number.isInteger(pagination)) {
|
if (!Number.isInteger(pagination)) {
|
||||||
pagination=(Math.floor(result.length / limit))+1;
|
pagination = Math.floor(result.length / limit) + 1;
|
||||||
}
|
}
|
||||||
// let pagination = Adapter.getPagination(result.length, limit);
|
// let pagination = Adapter.getPagination(result.length, limit);
|
||||||
apires.success = true;
|
apires.success = true;
|
||||||
apires.data.push({
|
apires.data.push({
|
||||||
"totalpage": pagination,
|
"totalpage": pagination,
|
||||||
"totalrows": result.length
|
"totalrows": result.length,
|
||||||
});
|
});
|
||||||
qry = "select * from vw_bastactivitylist ";
|
qry = "select * from vw_bastactivitylist ";
|
||||||
qry = qry + "where activityname like '%" + keyword + "%' ";
|
qry = qry + "where activityname like '%" + keyword + "%' ";
|
||||||
@ -50,31 +48,27 @@ class BastAdapter extends Adapter{
|
|||||||
// qry = qry + "order by _idx asc limit " + offset + ", " + limit;
|
// qry = qry + "order by _idx asc limit " + offset + ", " + limit;
|
||||||
db.query(qry, [], function (err, result, fields) {
|
db.query(qry, [], function (err, result, fields) {
|
||||||
if (err) {
|
if (err) {
|
||||||
apires.meta['message'] = err.toString();
|
apires.meta["message"] = err.toString();
|
||||||
apires.meta['code'] = 500;
|
apires.meta["code"] = 500;
|
||||||
callback('err',apires);
|
callback("err", apires);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
apires.data.push({
|
apires.data.push({
|
||||||
"results": JSON.parse(JSON.stringify(result))
|
"results": JSON.parse(JSON.stringify(result)),
|
||||||
});
|
});
|
||||||
callback(null, apires);
|
callback(null, apires);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
apires.meta.code = 200;
|
apires.meta.code = 200;
|
||||||
apires.meta.message = "Record Not Found";
|
apires.meta.message = "Record Not Found";
|
||||||
callback(null, apires);
|
callback(null, apires);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err) {
|
|
||||||
apires.meta.code = 500;
|
apires.meta.code = 500;
|
||||||
apires.meta.message = err.toString();
|
apires.meta.message = err.toString();
|
||||||
callback('error',apires);
|
callback("error", apires);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,22 +89,20 @@ class BastAdapter extends Adapter{
|
|||||||
// console.log(qry);
|
// console.log(qry);
|
||||||
db.query(qry, [], function (err, result, fields) {
|
db.query(qry, [], function (err, result, fields) {
|
||||||
if (err) {
|
if (err) {
|
||||||
apires.meta['message'] = err.toString();
|
apires.meta["message"] = err.toString();
|
||||||
apires.meta['code'] = 500;
|
apires.meta["code"] = 500;
|
||||||
callback('err',apires);
|
callback("err", apires);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
if (result.length > 0) {
|
if (result.length > 0) {
|
||||||
let pagination = result.length / limit;
|
let pagination = result.length / limit;
|
||||||
if (!Number.isInteger(pagination)) {
|
if (!Number.isInteger(pagination)) {
|
||||||
pagination=(Math.floor(result.length / limit))+1;
|
pagination = Math.floor(result.length / limit) + 1;
|
||||||
}
|
}
|
||||||
// let pagination = Adapter.getPagination(result.length, limit);
|
// let pagination = Adapter.getPagination(result.length, limit);
|
||||||
apires.success = true;
|
apires.success = true;
|
||||||
apires.data.push({
|
apires.data.push({
|
||||||
"totalpage": pagination,
|
"totalpage": pagination,
|
||||||
"totalrows": result.length
|
"totalrows": result.length,
|
||||||
});
|
});
|
||||||
|
|
||||||
// qry = "select * from vw_bastactivitylist ";
|
// qry = "select * from vw_bastactivitylist ";
|
||||||
@ -121,31 +113,27 @@ class BastAdapter extends Adapter{
|
|||||||
qry = qry + "order by _idx asc limit " + offset + ", " + limit;
|
qry = qry + "order by _idx asc limit " + offset + ", " + limit;
|
||||||
db.query(qry, [], function (err, result, fields) {
|
db.query(qry, [], function (err, result, fields) {
|
||||||
if (err) {
|
if (err) {
|
||||||
apires.meta['message'] = err.toString();
|
apires.meta["message"] = err.toString();
|
||||||
apires.meta['code'] = 500;
|
apires.meta["code"] = 500;
|
||||||
callback('err',apires);
|
callback("err", apires);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
apires.data.push({
|
apires.data.push({
|
||||||
"results": JSON.parse(JSON.stringify(result))
|
"results": JSON.parse(JSON.stringify(result)),
|
||||||
});
|
});
|
||||||
callback(null, apires);
|
callback(null, apires);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
apires.meta.code = 200;
|
apires.meta.code = 200;
|
||||||
apires.meta.message = "Record Not Found";
|
apires.meta.message = "Record Not Found";
|
||||||
callback(null, apires);
|
callback(null, apires);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err) {
|
|
||||||
apires.meta.code = 500;
|
apires.meta.code = 500;
|
||||||
apires.meta.message = err.toString();
|
apires.meta.message = err.toString();
|
||||||
callback('error',apires);
|
callback("error", apires);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,28 +148,24 @@ class BastAdapter extends Adapter{
|
|||||||
// console.log(qry);
|
// console.log(qry);
|
||||||
db.query(qry, [], function (err, result, fields) {
|
db.query(qry, [], function (err, result, fields) {
|
||||||
if (err) {
|
if (err) {
|
||||||
apires.meta['message'] = err.toString();
|
apires.meta["message"] = err.toString();
|
||||||
apires.meta['code'] = 500;
|
apires.meta["code"] = 500;
|
||||||
callback('err',apires);
|
callback("err", apires);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
if (result.length > 0) {
|
if (result.length > 0) {
|
||||||
apires.success = true;
|
apires.success = true;
|
||||||
apires.data = JSON.parse(JSON.stringify(result));
|
apires.data = JSON.parse(JSON.stringify(result));
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
apires.meta.code = 200;
|
apires.meta.code = 200;
|
||||||
apires.meta.message = "Record Not Found";
|
apires.meta.message = "Record Not Found";
|
||||||
}
|
}
|
||||||
callback(null, apires);
|
callback(null, apires);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err) {
|
|
||||||
apires.meta.code = 500;
|
apires.meta.code = 500;
|
||||||
apires.meta.message = err.toString();
|
apires.meta.message = err.toString();
|
||||||
callback('error',apires);
|
callback("error", apires);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,50 +190,84 @@ class BastAdapter extends Adapter{
|
|||||||
// qry = qry + "description='"+description+"',idxvendor='"+idxvendor+"',vendorcode='"+vendorcode+"',vendorname='"+vendorname+"',";
|
// qry = qry + "description='"+description+"',idxvendor='"+idxvendor+"',vendorcode='"+vendorcode+"',vendorname='"+vendorname+"',";
|
||||||
// qry = qry + "totalpo='"+totalpo+"',povendornumber='"+povendornumber+"',filedoctemplate='"+filedoctemplate+"',status='"+status+"',";
|
// qry = qry + "totalpo='"+totalpo+"',povendornumber='"+povendornumber+"',filedoctemplate='"+filedoctemplate+"',status='"+status+"',";
|
||||||
// qry = qry + "statusdescription='"+statusdescription+"',laststatusupdate=now(),iby='"+nik+"',idt=now()";
|
// qry = qry + "statusdescription='"+statusdescription+"',laststatusupdate=now(),iby='"+nik+"',idt=now()";
|
||||||
let qry = "insert into tbl_bast set idxpo='"+idxpo+"',bastnumber='"+bastnumber+"',bastdates='"+bastdates+"',";
|
let qry =
|
||||||
qry = qry + "description='"+description+"',idxvendor='"+idxvendor+"',vendorcode='"+vendorcode+"',vendorname='"+vendorname+"',";
|
"insert into tbl_bast set idxpo='" +
|
||||||
qry = qry + "totalpo='"+totalpo+"',povendornumber='"+povendornumber+"',filepdf='"+filedoctemplate+"',ismergedoc=1,status='"+status+"',";
|
idxpo +
|
||||||
qry = qry + "statusdescription='"+statusdescription+"',laststatusupdate=now(),iby='"+nik+"',idt=now()";
|
"',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);
|
// console.log(qry);
|
||||||
db.query(qry, [], function (err, result, fields) {
|
db.query(qry, [], function (err, result, fields) {
|
||||||
if (err) {
|
if (err) {
|
||||||
apires.meta['message'] = err.toString();
|
apires.meta["message"] = err.toString();
|
||||||
apires.meta['code'] = 500;
|
apires.meta["code"] = 500;
|
||||||
callback('err',apires);
|
callback("err", apires);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
var idxheader = result.insertId;
|
var idxheader = result.insertId;
|
||||||
// qry ="insert into tbl_bastdetail(idxheader,idxpoboq,description,qty,units,poamount,iby,idt) ";
|
// 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 + "select '"+idxheader+"', _idx , description, qty, units, poamount, '"+nik+"',now() ";
|
||||||
// qry = qry + "from tbl_poboq where _idx in("+idxpoboq+")";
|
// qry = qry + "from tbl_poboq where _idx in("+idxpoboq+")";
|
||||||
qry ="insert into tbl_bastdetail(idxheader,idxpoboq,description,qty,units,poamount,iby,idt) ";
|
qry =
|
||||||
qry = qry + "select '"+idxheader+"', _idx , description, qty, units, poamount, '"+nik+"',now() ";
|
"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 = qry + "from tbl_poboq where _idx in(" + idxpoboq + ")";
|
||||||
|
|
||||||
db.query(qry, [], function (err, result, fields) {
|
db.query(qry, [], function (err, result, fields) {
|
||||||
if (err) {
|
if (err) {
|
||||||
apires.meta['message'] = err.toString();
|
apires.meta["message"] = err.toString();
|
||||||
apires.meta['code'] = 500;
|
apires.meta["code"] = 500;
|
||||||
callback('err',apires);
|
callback("err", apires);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
apires.success = true;
|
apires.success = true;
|
||||||
apires.data = JSON.parse(JSON.stringify(result));
|
apires.data = JSON.parse(JSON.stringify(result));
|
||||||
apires.meta.code = 200;
|
apires.meta.code = 200;
|
||||||
callback(null, apires);
|
callback(null, apires);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err) {
|
|
||||||
apires.meta.code = 500;
|
apires.meta.code = 500;
|
||||||
apires.meta.message = err.toString();
|
apires.meta.message = err.toString();
|
||||||
callback('error',apires);
|
callback("error", apires);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -261,30 +279,59 @@ class BastAdapter extends Adapter{
|
|||||||
let bastdates = req.body.bastdates;
|
let bastdates = req.body.bastdates;
|
||||||
let description = req.body.description;
|
let description = req.body.description;
|
||||||
|
|
||||||
|
let qry =
|
||||||
let qry = "update tbl_bast set status=1,statusdescription='Upload Handover',bastdateshandover='"+bastdates+"',descriptionhandover='"+description+"',";
|
"update tbl_bast set status=1,statusdescription='Upload Handover',bastdateshandover='" +
|
||||||
qry +="filehandoversign='"+filehandoversign+"',uby='"+nik+"',udt=now() where _idx='"+idxbast+"'";
|
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+"'";
|
// let qry = "update tbl_bast set filehandoversign='"+filehandoversign+"',uby='"+nik+"',udt=now() where _idx='"+idxbast+"'";
|
||||||
|
|
||||||
// console.log(qry);
|
// console.log(qry);
|
||||||
db.query(qry, [], function (err, result, fields) {
|
db.query(qry, [], function (err, result, fields) {
|
||||||
if (err) {
|
if (err) {
|
||||||
apires.meta['message'] = err.toString();
|
apires.meta["message"] = err.toString();
|
||||||
apires.meta['code'] = 500;
|
apires.meta["code"] = 500;
|
||||||
callback('err',apires);
|
callback("err", apires);
|
||||||
}
|
} else {
|
||||||
else
|
let qryHistory =
|
||||||
{
|
"insert into tbl_bastfilehistory set statusdescription='Upload Handover', bastdateshandover='" +
|
||||||
|
bastdates +
|
||||||
|
"',descriptionhandover='" +
|
||||||
|
description +
|
||||||
|
"', filehandoversign='" +
|
||||||
|
filehandoversign +
|
||||||
|
"',iby='" +
|
||||||
|
nik +
|
||||||
|
"',idt=now(), idxbast='" +
|
||||||
|
idxbast +
|
||||||
|
"'";
|
||||||
|
|
||||||
|
db.query(qryHistory, [], function (err, result, fields) {
|
||||||
|
if (err) {
|
||||||
|
apires.meta["message"] = err.toString();
|
||||||
|
apires.meta["code"] = 500;
|
||||||
|
callback("err", apires);
|
||||||
|
} else {
|
||||||
apires.success = true;
|
apires.success = true;
|
||||||
apires.meta.code = 200;
|
apires.meta.code = 200;
|
||||||
callback(null, apires);
|
callback(null, apires);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
catch(err) {
|
});
|
||||||
|
} catch (err) {
|
||||||
apires.meta.code = 500;
|
apires.meta.code = 500;
|
||||||
apires.meta.message = err.toString();
|
apires.meta.message = err.toString();
|
||||||
callback('error',apires);
|
callback("error", apires);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -302,53 +349,47 @@ class BastAdapter extends Adapter{
|
|||||||
// console.log(qry);
|
// console.log(qry);
|
||||||
db.query(qry, [], function (err, result, fields) {
|
db.query(qry, [], function (err, result, fields) {
|
||||||
if (err) {
|
if (err) {
|
||||||
apires.meta['message'] = err.toString();
|
apires.meta["message"] = err.toString();
|
||||||
apires.meta['code'] = 500;
|
apires.meta["code"] = 500;
|
||||||
callback('err',apires);
|
callback("err", apires);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
if (result.length > 0) {
|
if (result.length > 0) {
|
||||||
let pagination = result.length / limit;
|
let pagination = result.length / limit;
|
||||||
if (!Number.isInteger(pagination)) {
|
if (!Number.isInteger(pagination)) {
|
||||||
pagination=(Math.floor(result.length / limit))+1;
|
pagination = Math.floor(result.length / limit) + 1;
|
||||||
}
|
}
|
||||||
// let pagination = Adapter.getPagination(result.length, limit);
|
// let pagination = Adapter.getPagination(result.length, limit);
|
||||||
apires.success = true;
|
apires.success = true;
|
||||||
apires.data.push({
|
apires.data.push({
|
||||||
"totalpage": pagination,
|
"totalpage": pagination,
|
||||||
"totalrows": result.length
|
"totalrows": result.length,
|
||||||
});
|
});
|
||||||
qry = "select * from vw_bast ";
|
qry = "select * from vw_bast ";
|
||||||
qry = qry + "where description like '%" + keyword + "%' ";
|
qry = qry + "where description like '%" + keyword + "%' ";
|
||||||
qry = qry + "order by _idx asc limit " + offset + ", " + limit;
|
qry = qry + "order by _idx asc limit " + offset + ", " + limit;
|
||||||
db.query(qry, [], function (err, result, fields) {
|
db.query(qry, [], function (err, result, fields) {
|
||||||
if (err) {
|
if (err) {
|
||||||
apires.meta['message'] = err.toString();
|
apires.meta["message"] = err.toString();
|
||||||
apires.meta['code'] = 500;
|
apires.meta["code"] = 500;
|
||||||
callback('err',apires);
|
callback("err", apires);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
apires.data.push({
|
apires.data.push({
|
||||||
"results": JSON.parse(JSON.stringify(result))
|
"results": JSON.parse(JSON.stringify(result)),
|
||||||
});
|
});
|
||||||
callback(null, apires);
|
callback(null, apires);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
apires.meta.code = 200;
|
apires.meta.code = 200;
|
||||||
apires.meta.message = "Record Not Found";
|
apires.meta.message = "Record Not Found";
|
||||||
callback(null, apires);
|
callback(null, apires);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err) {
|
|
||||||
apires.meta.code = 500;
|
apires.meta.code = 500;
|
||||||
apires.meta.message = err.toString();
|
apires.meta.message = err.toString();
|
||||||
callback('error',apires);
|
callback("error", apires);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -363,23 +404,32 @@ class BastAdapter extends Adapter{
|
|||||||
// console.log(qry);
|
// console.log(qry);
|
||||||
db.query(qry, [], function (err, result, fields) {
|
db.query(qry, [], function (err, result, fields) {
|
||||||
if (err) {
|
if (err) {
|
||||||
apires.meta['message'] = err.toString();
|
apires.meta["message"] = err.toString();
|
||||||
apires.meta['code'] = 500;
|
apires.meta["code"] = 500;
|
||||||
callback('err',apires);
|
callback("err", apires);
|
||||||
}
|
} else {
|
||||||
else
|
let qryHistory = `select statusdescription, bastdateshandover, descriptionhandover, CONCAT('${baseUrl}?route=bast&name=', filehandoversign) AS filehandoversign, iby, idt from tbl_bastfilehistory where idxbast = ${result[0]._idx} order by _idx desc`;
|
||||||
{
|
db.query(qryHistory, [], function (err, resultHistory, fields) {
|
||||||
|
console.log(err);
|
||||||
|
console.log(resultHistory);
|
||||||
|
if (err) {
|
||||||
|
apires.meta["message"] = err.toString();
|
||||||
|
apires.meta["code"] = 500;
|
||||||
|
callback("err", apires);
|
||||||
|
} else {
|
||||||
|
result[0].history_handover = resultHistory;
|
||||||
apires.data.push({
|
apires.data.push({
|
||||||
"results": JSON.parse(JSON.stringify(result))
|
"results": JSON.parse(JSON.stringify(result)),
|
||||||
});
|
});
|
||||||
callback(null, apires);
|
callback(null, apires);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
catch(err) {
|
});
|
||||||
|
} catch (err) {
|
||||||
apires.meta.code = 500;
|
apires.meta.code = 500;
|
||||||
apires.meta.message = err.toString();
|
apires.meta.message = err.toString();
|
||||||
callback('error',apires);
|
callback("error", apires);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -391,16 +441,23 @@ class BastAdapter extends Adapter{
|
|||||||
var statusdescription = req.body.statusdescription;
|
var statusdescription = req.body.statusdescription;
|
||||||
var nik = req.body.nik;
|
var nik = req.body.nik;
|
||||||
|
|
||||||
var qry = "update tbl_bast set filehandover='"+filehandover+"',status='" + status +"',statusdescription='" + statusdescription +"',uby='"+nik+"',udt=now() ";
|
var qry =
|
||||||
|
"update tbl_bast set filehandover='" +
|
||||||
|
filehandover +
|
||||||
|
"',status='" +
|
||||||
|
status +
|
||||||
|
"',statusdescription='" +
|
||||||
|
statusdescription +
|
||||||
|
"',uby='" +
|
||||||
|
nik +
|
||||||
|
"',udt=now() ";
|
||||||
qry = qry + "where _idx='" + idxbast + "'";
|
qry = qry + "where _idx='" + idxbast + "'";
|
||||||
db.query(qry, [], function (err, result, fields) {
|
db.query(qry, [], function (err, result, fields) {
|
||||||
if (err) {
|
if (err) {
|
||||||
apires.meta['message'] = err.toString();
|
apires.meta["message"] = err.toString();
|
||||||
apires.meta['code'] = 500;
|
apires.meta["code"] = 500;
|
||||||
callback('err',apires);
|
callback("err", apires);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
apires.success = true;
|
apires.success = true;
|
||||||
apires.data = JSON.parse(JSON.stringify(result));
|
apires.data = JSON.parse(JSON.stringify(result));
|
||||||
callback(null, apires);
|
callback(null, apires);
|
||||||
@ -409,11 +466,9 @@ class BastAdapter extends Adapter{
|
|||||||
} catch (err) {
|
} catch (err) {
|
||||||
apires.meta.code = 500;
|
apires.meta.code = 500;
|
||||||
apires.meta.message = err.toString();
|
apires.meta.message = err.toString();
|
||||||
callback('error',apires);
|
callback("error", apires);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = BastAdapter;
|
module.exports = BastAdapter;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
2023
adapter/poadapter.js
2023
adapter/poadapter.js
File diff suppressed because it is too large
Load Diff
@ -88,7 +88,7 @@ class PrAdapter extends Adapter{
|
|||||||
let idxjustification= req.body.idxjustification;
|
let idxjustification= req.body.idxjustification;
|
||||||
let justificationnumber= req.body.justificationnumber;
|
let justificationnumber= req.body.justificationnumber;
|
||||||
let trxidpr = req.body.trxidpr;
|
let trxidpr = req.body.trxidpr;
|
||||||
let prnumber = req.body.prnumber;
|
let prnumber = req.body.prnumber ?? "";
|
||||||
let costcenter = req.body.costcenter;
|
let costcenter = req.body.costcenter;
|
||||||
let profitcenter = req.body.profitcenter;
|
let profitcenter = req.body.profitcenter;
|
||||||
let description = req.body.description;
|
let description = req.body.description;
|
||||||
@ -143,7 +143,7 @@ class PrAdapter extends Adapter{
|
|||||||
let idxjustification= req.body.idxjustification;
|
let idxjustification= req.body.idxjustification;
|
||||||
let justificationnumber= req.body.justificationnumber;
|
let justificationnumber= req.body.justificationnumber;
|
||||||
let trxidpr = req.body.trxidpr;
|
let trxidpr = req.body.trxidpr;
|
||||||
let prnumber = req.body.prnumber;
|
let prnumber = req.body.prnumber ?? "";
|
||||||
let costcenter = req.body.costcenter;
|
let costcenter = req.body.costcenter;
|
||||||
let profitcenter = req.body.profitcenter;
|
let profitcenter = req.body.profitcenter;
|
||||||
let description = req.body.description;
|
let description = req.body.description;
|
||||||
@ -313,6 +313,8 @@ class PrAdapter extends Adapter{
|
|||||||
async queryPrList(req,callback){
|
async queryPrList(req,callback){
|
||||||
var apires = this.getApiResultDefined();
|
var apires = this.getApiResultDefined();
|
||||||
try {
|
try {
|
||||||
|
const proc_nik = process.env.PROC_USER_NIK ?? ""
|
||||||
|
const proc_users = proc_nik.split(",")
|
||||||
|
|
||||||
let limit = req.body.limit;
|
let limit = req.body.limit;
|
||||||
let offset = req.body.offset;
|
let offset = req.body.offset;
|
||||||
@ -326,7 +328,9 @@ class PrAdapter extends Adapter{
|
|||||||
|
|
||||||
let swherenik="";
|
let swherenik="";
|
||||||
if(nik){
|
if(nik){
|
||||||
swherenik="iby='"+nik+"' and ";
|
if (!proc_users.includes(nik)) {
|
||||||
|
swherenik = '(iby="'+nik+' or nikapproval="'+nik+'") and ';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -478,6 +482,8 @@ class PrAdapter extends Adapter{
|
|||||||
async queryPrManagementList(req,callback){
|
async queryPrManagementList(req,callback){
|
||||||
var apires = this.getApiResultDefined();
|
var apires = this.getApiResultDefined();
|
||||||
try {
|
try {
|
||||||
|
const proc_nik = process.env.PROC_USER_NIK ?? ""
|
||||||
|
const proc_users = proc_nik.split(",")
|
||||||
|
|
||||||
let limit = req.query.limit;
|
let limit = req.query.limit;
|
||||||
let offset = req.query.offset;
|
let offset = req.query.offset;
|
||||||
@ -485,7 +491,7 @@ class PrAdapter extends Adapter{
|
|||||||
let nik = req.query.nik;
|
let nik = req.query.nik;
|
||||||
|
|
||||||
let swherenik="and iby='"+nik+"'";
|
let swherenik="and iby='"+nik+"'";
|
||||||
if(nik=='999999'){
|
if (!proc_users.includes(nik)) {
|
||||||
swherenik="";
|
swherenik="";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -517,7 +523,7 @@ class PrAdapter extends Adapter{
|
|||||||
"totalrows": result.length
|
"totalrows": result.length
|
||||||
});
|
});
|
||||||
qry = "select * from vw_prmanagement ";
|
qry = "select * from vw_prmanagement ";
|
||||||
qry = qry +"where (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') ";
|
qry = qry +"where status >= 2 and (trim(trxidpr) like '%"+ keyword +"%' or trim(prnumber) like '%"+ keyword +"%') ";
|
||||||
qry = qry + swherenik +" order by id asc limit " + offset + ", " + limit;
|
qry = qry + swherenik +" order by id asc limit " + offset + ", " + limit;
|
||||||
db.query(qry,[],function(err,result,fields){
|
db.query(qry,[],function(err,result,fields){
|
||||||
if(err){
|
if(err){
|
||||||
@ -586,6 +592,38 @@ class PrAdapter extends Adapter{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async queryUpdateSapMessage(req, sapmessage, callback) {
|
||||||
|
try {
|
||||||
|
var apires = this.getApiResultDefined();
|
||||||
|
var idxpr = req.body.idxpr;
|
||||||
|
var nik = req.body.nik;
|
||||||
|
|
||||||
|
// console.log(setdescription);
|
||||||
|
var qry = "update tbl_pr set sapmessage='"+sapmessage+"', uby='"+nik+"',udt=now() ";
|
||||||
|
qry = qry +"where _idx='" + idxpr +"'";
|
||||||
|
|
||||||
|
console.log('qry', 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
412
adapter/sapaccountadapter.js
Normal file
412
adapter/sapaccountadapter.js
Normal file
@ -0,0 +1,412 @@
|
|||||||
|
const db = require("../config/dbproc.js");
|
||||||
|
const Adapter = require("./dbadapter.js");
|
||||||
|
const request = require("request");
|
||||||
|
|
||||||
|
class SAPAccountAdapter extends Adapter {
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ================= LIST + PAGINATION ================= */
|
||||||
|
async queryList(req, callback) {
|
||||||
|
var apires = this.getApiResultDefined();
|
||||||
|
try {
|
||||||
|
let limit = parseInt(req.query.limit) || 10;
|
||||||
|
let offset = parseInt(req.query.offset) || 0;
|
||||||
|
let keyword = req.query.keyword || "";
|
||||||
|
|
||||||
|
/* ===== QUERY TOTAL ROW ===== */
|
||||||
|
let qry = `
|
||||||
|
SELECT *
|
||||||
|
FROM tbl_sap_connections
|
||||||
|
WHERE deleted_at IS NULL
|
||||||
|
AND (
|
||||||
|
host LIKE '%${keyword}%'
|
||||||
|
OR sap_user LIKE '%${keyword}%'
|
||||||
|
OR ket_sap LIKE '%${keyword}%'
|
||||||
|
)
|
||||||
|
`;
|
||||||
|
|
||||||
|
db.query(qry, [], function (err, result) {
|
||||||
|
if (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("err", apires);
|
||||||
|
} else {
|
||||||
|
if (result.length > 0) {
|
||||||
|
let pagination = result.length / limit;
|
||||||
|
if (!Number.isInteger(pagination)) {
|
||||||
|
pagination = Math.floor(result.length / limit) + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
apires.success = true;
|
||||||
|
apires.data.push({
|
||||||
|
totalpage: pagination,
|
||||||
|
totalrows: result.length,
|
||||||
|
});
|
||||||
|
|
||||||
|
/* ===== QUERY DATA WITH LIMIT ===== */
|
||||||
|
let qryData = `
|
||||||
|
SELECT *
|
||||||
|
FROM tbl_sap_connections
|
||||||
|
WHERE deleted_at IS NULL
|
||||||
|
AND (
|
||||||
|
host LIKE '%${keyword}%'
|
||||||
|
OR sap_user LIKE '%${keyword}%'
|
||||||
|
OR ket_sap LIKE '%${keyword}%'
|
||||||
|
)
|
||||||
|
ORDER BY id ASC
|
||||||
|
LIMIT ${offset}, ${limit}
|
||||||
|
`;
|
||||||
|
|
||||||
|
db.query(qryData, [], function (err, resultData) {
|
||||||
|
if (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("err", apires);
|
||||||
|
} else {
|
||||||
|
apires.data.push({
|
||||||
|
results: JSON.parse(JSON.stringify(resultData)),
|
||||||
|
});
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ================= CREATE ================= */
|
||||||
|
async queryCreate(req, callback) {
|
||||||
|
var apires = this.getApiResultDefined();
|
||||||
|
try {
|
||||||
|
const {sap_id, host, sysnr, client, codepage, ket_sap, sap_user, sap_password, aktivasi} =
|
||||||
|
req.body;
|
||||||
|
|
||||||
|
let qry = `
|
||||||
|
INSERT INTO tbl_sap_connections
|
||||||
|
(sap_id, host, sysnr, client, codepage, ket_sap, sap_user, sap_password, aktivasi, created_at, created_by, status)
|
||||||
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), ?, 'Not_Active')
|
||||||
|
`;
|
||||||
|
|
||||||
|
const password = Buffer.from(sap_password, "utf8").toString("base64");
|
||||||
|
|
||||||
|
db.query(
|
||||||
|
qry,
|
||||||
|
[
|
||||||
|
sap_id,
|
||||||
|
host,
|
||||||
|
sysnr,
|
||||||
|
client,
|
||||||
|
codepage,
|
||||||
|
ket_sap,
|
||||||
|
sap_user,
|
||||||
|
password,
|
||||||
|
aktivasi,
|
||||||
|
req.body.nik || "system",
|
||||||
|
],
|
||||||
|
function (err, result) {
|
||||||
|
if (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("err", apires);
|
||||||
|
} else {
|
||||||
|
apires.success = true;
|
||||||
|
apires.data = {insertId: result.insertId};
|
||||||
|
callback(null, apires);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
|
} catch (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("error", apires);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async callSapActivateById(id, nik, callback) {
|
||||||
|
var apires = this.getApiResultDefined();
|
||||||
|
|
||||||
|
let qry = `
|
||||||
|
SELECT *
|
||||||
|
FROM tbl_sap_connections
|
||||||
|
WHERE id = ?
|
||||||
|
AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`;
|
||||||
|
|
||||||
|
db.query(qry, [id], (err, result) => {
|
||||||
|
if (err || result.length === 0) {
|
||||||
|
apires.meta.code = 404;
|
||||||
|
apires.meta.message = "SAP Connection not found";
|
||||||
|
return callback("err", apires);
|
||||||
|
}
|
||||||
|
|
||||||
|
const sap = result[0];
|
||||||
|
|
||||||
|
// decode password sebelum kirim ke SAP
|
||||||
|
const decodedPassword = Buffer.from(sap.sap_password, "base64").toString("utf8");
|
||||||
|
|
||||||
|
const sapUrl =
|
||||||
|
process.env.SAP_API_BASE_URL +
|
||||||
|
"/sapConnection" +
|
||||||
|
`?user=${sap.sap_user}` +
|
||||||
|
`&password=${decodedPassword}` +
|
||||||
|
`&sysnr=${sap.sysnr}` +
|
||||||
|
`&client=${sap.client}` +
|
||||||
|
`&codepage=${sap.codepage}` +
|
||||||
|
`&ket_sap=${sap.ket_sap}` +
|
||||||
|
`&host=${encodeURIComponent(sap.host)}`;
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
method: "POST",
|
||||||
|
url: sapUrl,
|
||||||
|
timeout: 10000,
|
||||||
|
headers: {
|
||||||
|
"x-api-key": process.env.SAP_API_KEY,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
request(options, (error, response, body) => {
|
||||||
|
if (error || response.statusCode !== 200) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = "SAP API activate failed";
|
||||||
|
apires.data = body;
|
||||||
|
return callback("err", apires);
|
||||||
|
}
|
||||||
|
|
||||||
|
// set semua Not_Active
|
||||||
|
db.query(`UPDATE tbl_sap_connections SET status='Not_Active'`, [], () => {
|
||||||
|
// set Active untuk ID ini
|
||||||
|
db.query(
|
||||||
|
`UPDATE tbl_sap_connections
|
||||||
|
SET status='Active',
|
||||||
|
updated_at=NOW(),
|
||||||
|
updated_by=?
|
||||||
|
WHERE id=?`,
|
||||||
|
[nik || "system", id],
|
||||||
|
(err2) => {
|
||||||
|
if (err2) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err2.toString();
|
||||||
|
return callback("err", apires);
|
||||||
|
}
|
||||||
|
|
||||||
|
apires.success = true;
|
||||||
|
apires.data = {sap_id: sap.sap_id};
|
||||||
|
callback(null, apires);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ================= UPDATE ================= */
|
||||||
|
async queryUpdate(req, callback) {
|
||||||
|
var apires = this.getApiResultDefined();
|
||||||
|
|
||||||
|
try {
|
||||||
|
const id = req.params.id;
|
||||||
|
const {sap_id, host, sysnr, client, codepage, ket_sap, sap_user, sap_password, aktivasi} =
|
||||||
|
req.body;
|
||||||
|
|
||||||
|
/* 1️⃣ Ambil data existing (untuk cek status) */
|
||||||
|
const detailQry = `
|
||||||
|
SELECT status, sap_password
|
||||||
|
FROM tbl_sap_connections
|
||||||
|
WHERE id = ?
|
||||||
|
AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`;
|
||||||
|
|
||||||
|
db.query(detailQry, [id], (err, rows) => {
|
||||||
|
if (err || rows.length === 0) {
|
||||||
|
apires.meta.code = 404;
|
||||||
|
apires.meta.message = "SAP Connection not found";
|
||||||
|
return callback("err", apires);
|
||||||
|
}
|
||||||
|
|
||||||
|
const currentStatus = rows[0].status;
|
||||||
|
|
||||||
|
/* 2️⃣ Handle password (jangan overwrite kalau kosong) */
|
||||||
|
const encodedPassword = sap_password
|
||||||
|
? Buffer.from(sap_password, "utf8").toString("base64")
|
||||||
|
: rows[0].sap_password;
|
||||||
|
|
||||||
|
/* 3️⃣ Update data */
|
||||||
|
const updateQry = `
|
||||||
|
UPDATE tbl_sap_connections
|
||||||
|
SET sap_id = ?, host = ?, sysnr = ?, client = ?, codepage = ?, ket_sap = ?,
|
||||||
|
sap_user = ?, sap_password = ?, aktivasi = ?,
|
||||||
|
updated_at = NOW(), updated_by = ?
|
||||||
|
WHERE id = ? AND deleted_at IS NULL
|
||||||
|
`;
|
||||||
|
|
||||||
|
db.query(
|
||||||
|
updateQry,
|
||||||
|
[
|
||||||
|
sap_id,
|
||||||
|
host,
|
||||||
|
sysnr,
|
||||||
|
client,
|
||||||
|
codepage,
|
||||||
|
ket_sap,
|
||||||
|
sap_user,
|
||||||
|
encodedPassword,
|
||||||
|
aktivasi,
|
||||||
|
req.body.nik || "system",
|
||||||
|
id,
|
||||||
|
],
|
||||||
|
(err2, result) => {
|
||||||
|
if (err2) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err2.toString();
|
||||||
|
return callback("err", apires);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 4️⃣ Jika sebelumnya Active → activate ulang SAP */
|
||||||
|
if (currentStatus === "Active") {
|
||||||
|
return this.callSapActivateById(id, req.body.nik, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 5️⃣ Kalau Not_Active → selesai */
|
||||||
|
apires.success = true;
|
||||||
|
apires.data = {affectedRows: result.affectedRows};
|
||||||
|
callback(null, apires);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("error", apires);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ================= DELETE (SOFT) ================= */
|
||||||
|
async queryDelete(req, callback) {
|
||||||
|
var apires = this.getApiResultDefined();
|
||||||
|
try {
|
||||||
|
const id = req.params.id;
|
||||||
|
|
||||||
|
let qry = `
|
||||||
|
UPDATE tbl_sap_connections
|
||||||
|
SET deleted_at = NOW(), deleted_by = ?
|
||||||
|
WHERE id = ? AND deleted_at IS NULL
|
||||||
|
`;
|
||||||
|
|
||||||
|
db.query(qry, [req.body.nik || "system", id], function (err, result) {
|
||||||
|
if (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("err", apires);
|
||||||
|
} else {
|
||||||
|
apires.success = true;
|
||||||
|
apires.data = {affectedRows: result.affectedRows};
|
||||||
|
callback(null, apires);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("error", apires);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ================= DETAIL ================= */
|
||||||
|
async queryDetail(req, callback) {
|
||||||
|
var apires = this.getApiResultDefined();
|
||||||
|
try {
|
||||||
|
const id = req.params.id;
|
||||||
|
|
||||||
|
let qry = `
|
||||||
|
SELECT *
|
||||||
|
FROM tbl_sap_connections
|
||||||
|
WHERE id = ?
|
||||||
|
AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`;
|
||||||
|
|
||||||
|
db.query(qry, [id], function (err, result) {
|
||||||
|
if (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("err", apires);
|
||||||
|
} else {
|
||||||
|
if (result.length > 0) {
|
||||||
|
const password = Buffer.from(result[0].sap_password, "base64").toString("utf8");
|
||||||
|
apires.success = true;
|
||||||
|
apires.data = {...result[0], sap_password: password};
|
||||||
|
} else {
|
||||||
|
apires.meta.code = 200;
|
||||||
|
apires.meta.message = "Record Not Found";
|
||||||
|
apires.data = null;
|
||||||
|
}
|
||||||
|
callback(null, apires);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("error", apires);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ================= ACTIVATE ================= */
|
||||||
|
async queryActivate(req, callback) {
|
||||||
|
try {
|
||||||
|
const id = req.params.id;
|
||||||
|
const nik = req.body.nik || "system";
|
||||||
|
|
||||||
|
// reuse logic yang sama
|
||||||
|
return this.callSapActivateById(id, nik, callback);
|
||||||
|
} catch (err) {
|
||||||
|
const apires = this.getApiResultDefined();
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("error", apires);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ================= CURRENT ================= */
|
||||||
|
async queryCurrent(req, callback) {
|
||||||
|
var apires = this.getApiResultDefined();
|
||||||
|
try {
|
||||||
|
let qry = `
|
||||||
|
SELECT *
|
||||||
|
FROM tbl_sap_connections
|
||||||
|
WHERE status='Active'
|
||||||
|
AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`;
|
||||||
|
|
||||||
|
db.query(qry, [], function (err, result) {
|
||||||
|
if (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("err", apires);
|
||||||
|
} else {
|
||||||
|
apires.success = true;
|
||||||
|
apires.data = result.length > 0 ? result[0] : null;
|
||||||
|
callback(null, apires);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("error", apires);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = SAPAccountAdapter;
|
||||||
43
adapter/sapadapter.js
Normal file
43
adapter/sapadapter.js
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
const db = require("../config/dbproc.js");
|
||||||
|
const Adapter = require("./dbadapter.js");
|
||||||
|
|
||||||
|
class SapAdapter extends Adapter {
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
async queryInsertSapLog(idxpr, req, req_type) {
|
||||||
|
var apires = this.getApiResultDefined();
|
||||||
|
try {
|
||||||
|
const {ref_code, request, request_at, request_by, response, response_at, url} = req;
|
||||||
|
|
||||||
|
let qry = `
|
||||||
|
INSERT INTO tbl_sap_log
|
||||||
|
(idxpr, created_at, ref_code, request_type, request, request_at, request_by, response, response_at, url)
|
||||||
|
VALUES (?, NOW(), ?, ?, ?, ?, ?, ?, ?, ?)
|
||||||
|
`;
|
||||||
|
|
||||||
|
db.query(
|
||||||
|
qry,
|
||||||
|
[idxpr, ref_code, req_type, request, request_at, request_by, response, response_at, url],
|
||||||
|
function (err, result) {
|
||||||
|
if (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
|
||||||
|
console.log('error saving log =>', err.toString())
|
||||||
|
} else {
|
||||||
|
apires.success = true;
|
||||||
|
apires.data = {insertId: result.insertId};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
|
} catch (err) {
|
||||||
|
apires.meta.code = 500;
|
||||||
|
apires.meta.message = err.toString();
|
||||||
|
callback("error", apires);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = SapAdapter;
|
||||||
File diff suppressed because it is too large
Load Diff
@ -1,12 +1,55 @@
|
|||||||
|
const PrAdapter = require("../adapter/pradapter.js");
|
||||||
const PrAdapter=require('../adapter/pradapter.js');
|
|
||||||
const pradapter = new PrAdapter();
|
const pradapter = new PrAdapter();
|
||||||
const Controllers = require('./controller.js');
|
const Controllers = require("./controller.js");
|
||||||
const controllers = new Controllers();
|
const controllers = new Controllers();
|
||||||
var apireshandler = controllers.getApiResultDefined();
|
var apireshandler = controllers.getApiResultDefined();
|
||||||
const baseurlsap = "http://" + process.env.HOSTSAP + "/sapapi/index.php/api";
|
const baseurlsap = "http://" + process.env.HOSTSAP + "/sapapi/index.php/api";
|
||||||
const apikeysap = "befea63a-7c47-4323-afea-968a3168fe0a";
|
const apikeysap = "befea63a-7c47-4323-afea-968a3168fe0a";
|
||||||
const request = require('request');
|
const request = require("request");
|
||||||
|
|
||||||
|
const SAPAdapter = require("../adapter/sapadapter.js");
|
||||||
|
const sapadapter = new SAPAdapter();
|
||||||
|
|
||||||
|
function buildPipeString(length, mapping = {}) {
|
||||||
|
const arr = Array(length).fill("");
|
||||||
|
Object.keys(mapping).forEach((index) => {
|
||||||
|
arr[index] = mapping[index];
|
||||||
|
});
|
||||||
|
return arr.join("|");
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildPrAccount({prNo, qtyAcc, prDate, budget, costCenter, profitCenter}) {
|
||||||
|
return buildPipeString(40, {
|
||||||
|
0: prNo,
|
||||||
|
1: qtyAcc,
|
||||||
|
3: prDate,
|
||||||
|
7: budget,
|
||||||
|
8: "TIL1",
|
||||||
|
9: costCenter,
|
||||||
|
17: profitCenter,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildPrItem({prNo, shortText, qty, unit, price, prDate}) {
|
||||||
|
return buildPipeString(80, {
|
||||||
|
0: prNo,
|
||||||
|
3: "120",
|
||||||
|
4: "Putra",
|
||||||
|
5: shortText,
|
||||||
|
13: "1603",
|
||||||
|
15: "TrackNo1",
|
||||||
|
16: "ZSRV",
|
||||||
|
18: qty,
|
||||||
|
19: unit,
|
||||||
|
21: prDate,
|
||||||
|
23: prDate,
|
||||||
|
25: price,
|
||||||
|
26: "1",
|
||||||
|
28: "J",
|
||||||
|
36: "1603",
|
||||||
|
79: "D",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
exports.getListJustification = (req, res) => {
|
exports.getListJustification = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -15,13 +58,12 @@ exports.getListJustification = ( req, res ) => {
|
|||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [18] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [18] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.getListPR = (req, res) => {
|
exports.getListPR = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -30,13 +72,12 @@ exports.getListPR = ( req, res ) => {
|
|||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [18] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [18] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.gettrxid = (req, res) => {
|
exports.gettrxid = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -45,13 +86,12 @@ exports.gettrxid = ( req, res ) => {
|
|||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [18] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [18] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.getListPr = (req, res) => {
|
exports.getListPr = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -60,13 +100,12 @@ exports.getListPr = ( req, res ) => {
|
|||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [167] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [167] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.setNewPr = (req, res) => {
|
exports.setNewPr = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -75,13 +114,12 @@ exports.setNewPr = ( req, res ) => {
|
|||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [167] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [167] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.getDetailPr = (req, res) => {
|
exports.getDetailPr = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -90,13 +128,12 @@ exports.getDetailPr = ( req, res ) => {
|
|||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [93] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [93] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.setUpdatePr = (req, res) => {
|
exports.setUpdatePr = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -105,51 +142,45 @@ exports.setUpdatePr = ( req, res ) => {
|
|||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [167] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [167] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.setUpdateStatusPr = (req, res) => {
|
exports.setUpdateStatusPr = (req, res) => {
|
||||||
try {
|
try {
|
||||||
let status = req.body.status;
|
let status = req.body.status;
|
||||||
let idxpr = req.body.idxpr;
|
let idxpr = req.body.idxpr;
|
||||||
|
|
||||||
|
|
||||||
if (status == 0) {
|
if (status == 0) {
|
||||||
// if(0==1){
|
// if(0==1){
|
||||||
req.query.id = idxpr;
|
req.query.id = idxpr;
|
||||||
pradapter.queryUpdateStatusPr(req, req.body.prnumber, '', function(err,data){
|
pradapter.queryUpdateStatusPr(req, req.body.prnumber, "", function (err, data) {
|
||||||
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
|
if (err) statusCode = 500;
|
||||||
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
pradapter.queryUpdateStatusPr(req, "00000", "", function (err, data) {
|
||||||
let statusCode = data != null ? data.meta.code : 200;
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else{
|
} catch (err) {
|
||||||
pradapter.queryUpdateStatusPr(req,'00000','',function(err,data){
|
|
||||||
let statusCode = data!=null ? data.meta.code : 200 ;
|
|
||||||
if(err) statusCode = 500;
|
|
||||||
pradapter.sendResponse(statusCode,data, res);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [123] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [123] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.setUpdateStatusProld = (req, res) => {
|
exports.setUpdateStatusProld = (req, res) => {
|
||||||
try {
|
try {
|
||||||
let status = req.body.status;
|
let status = req.body.status;
|
||||||
let idxpr = req.body.idxpr;
|
let idxpr = req.body.idxpr;
|
||||||
|
|
||||||
|
|
||||||
if (status == 0) {
|
if (status == 0) {
|
||||||
// if(0==1){
|
// if(0==1){
|
||||||
req.query.id = idxpr;
|
req.query.id = idxpr;
|
||||||
@ -165,88 +196,134 @@ exports.setUpdateStatusProld = ( req, res ) => {
|
|||||||
let x_pr_type = "X";
|
let x_pr_type = "X";
|
||||||
let pr_no = "00010";
|
let pr_no = "00010";
|
||||||
let pr_qtyacc = "01";
|
let pr_qtyacc = "01";
|
||||||
let pr_date = rsdata.data[0]['prdateYmd']; //Ymd
|
let pr_date = rsdata.data[0]["prdateYmd"]; //Ymd
|
||||||
let pr_budget = "00"+rsdata.data[0]['glaccount'];
|
let pr_budget = "00" + rsdata.data[0]["glaccount"];
|
||||||
let pr_costcenter = rsdata.data[0]['costcenter'];
|
let pr_costcenter = rsdata.data[0]["costcenter"];
|
||||||
let pr_profitcenter = "TIL1A01"; //rsdata.data[0]['profitcenter'];
|
let pr_profitcenter = "TIL1A01"; //rsdata.data[0]['profitcenter'];
|
||||||
let pr_shorttext =rsdata.data[0]['description'];
|
let pr_shorttext = rsdata.data[0]["description"];
|
||||||
let pr_qtyitem =rsdata.data[0]['qty'];
|
let pr_qtyitem = rsdata.data[0]["qty"];
|
||||||
let pr_unititem =rsdata.data[0]['unit'];
|
let pr_unititem = rsdata.data[0]["unit"];
|
||||||
let pr_priceitem =rsdata.data[0]['netprice'];
|
let pr_priceitem = rsdata.data[0]["netprice"];
|
||||||
// let pr_account="00010|01||20130727||||0051331006|TIL1|TIL1A01|||||||||||TIL1A01||||||||||||||||||||||";
|
// let pr_account="00010|01||20130727||||0051331006|TIL1|TIL1A01|||||||||||TIL1A01||||||||||||||||||||||";
|
||||||
let pr_account= pr_no+"|"+pr_qtyacc+"||"+pr_date+"||||"+pr_budget+"|TIL1|"+pr_costcenter+"|||||||||||"+pr_profitcenter+"||||||||||||||||||||||";
|
let pr_account =
|
||||||
|
pr_no +
|
||||||
|
"|" +
|
||||||
|
pr_qtyacc +
|
||||||
|
"||" +
|
||||||
|
pr_date +
|
||||||
|
"||||" +
|
||||||
|
pr_budget +
|
||||||
|
"|TIL1|" +
|
||||||
|
pr_costcenter +
|
||||||
|
"|||||||||||" +
|
||||||
|
pr_profitcenter +
|
||||||
|
"||||||||||||||||||||||";
|
||||||
// let pr_item="00010|||120|Putra|testcreatePR|||||||||1603||TrackNo1|ZSRV||1|BH||20130727||20130727|||1000|1||J||||||||1603|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||D|";
|
// let pr_item="00010|||120|Putra|testcreatePR|||||||||1603||TrackNo1|ZSRV||1|BH||20130727||20130727|||1000|1||J||||||||1603|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||D|";
|
||||||
let pr_item=pr_no+"|||120|Putra|"+pr_shorttext+"|||||||||1603||TrackNo1|ZSRV||"+pr_qtyitem+"|"+pr_unititem+"||"+pr_date+"||"+pr_date+"|||"+pr_priceitem+"|1||J||||||||1603|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||D|";
|
let pr_item =
|
||||||
|
pr_no +
|
||||||
|
"|||120|Putra|" +
|
||||||
|
pr_shorttext +
|
||||||
|
"|||||||||1603||TrackNo1|ZSRV||" +
|
||||||
|
pr_qtyitem +
|
||||||
|
"|" +
|
||||||
|
pr_unititem +
|
||||||
|
"||" +
|
||||||
|
pr_date +
|
||||||
|
"||" +
|
||||||
|
pr_date +
|
||||||
|
"|||" +
|
||||||
|
pr_priceitem +
|
||||||
|
"|1||J||||||||1603|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||D|";
|
||||||
let resuri = {
|
let resuri = {
|
||||||
'method': 'POST',
|
"method": "POST",
|
||||||
// 'url': baseurl+'signon',
|
// 'url': baseurl+'signon',
|
||||||
'url': baseurlsap+'/createPr?pr_type='+pr_type+'&x_pr_type=X&praccount[]='+pr_account+'&pritem[]='+pr_item,
|
"url":
|
||||||
'headers': {
|
process.env.SAP_API_BASE_URL +
|
||||||
'Content-Type': 'application/json',
|
"/createPr?pr_type=" +
|
||||||
'x-api-key' : apikeysap
|
pr_type +
|
||||||
|
"&x_pr_type=X&praccount[]=" +
|
||||||
|
pr_account +
|
||||||
|
"&pritem[]=" +
|
||||||
|
pr_item,
|
||||||
|
"headers": {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
"x-api-key": process.env.SAP_API_KEY,
|
||||||
},
|
},
|
||||||
// form: formjson,
|
// form: formjson,
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log(resuri);
|
const logData = {
|
||||||
|
ref_code: rsdata.data[0]["justificationnumber"] ?? idxpr,
|
||||||
|
request: JSON.stringify(resuri),
|
||||||
|
request_at: new Date(),
|
||||||
|
request_by: "999999",
|
||||||
|
response: "",
|
||||||
|
response_at: "",
|
||||||
|
url:
|
||||||
|
process.env.SAP_API_BASE_URL +
|
||||||
|
"/createPr?pr_type=" +
|
||||||
|
pr_type +
|
||||||
|
"&x_pr_type=X&praccount[]=" +
|
||||||
|
pr_account +
|
||||||
|
"&pritem[]=" +
|
||||||
|
pr_item,
|
||||||
|
};
|
||||||
|
|
||||||
request(resuri, function (error, response) {
|
request(resuri, function (error, response) {
|
||||||
|
// console.log('response.body', response.body)
|
||||||
|
logData.response_at = new Date();
|
||||||
|
logData.response = error ? JSON.stringify(error) : response.body;
|
||||||
|
sapadapter.queryInsertSapLog(idxpr, logData, "CREATE_PR");
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
console.log(error);
|
|
||||||
apireshandler.message = error.toString();
|
apireshandler.message = error.toString();
|
||||||
pradapter.sendResponse(400, apireshandler, res);
|
pradapter.sendResponse(400, apireshandler, res);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
// console.log(response.body);
|
|
||||||
var resdata = JSON.parse(response.body);
|
var resdata = JSON.parse(response.body);
|
||||||
var errcode = "";
|
var errcode = "";
|
||||||
var errmsg = "";
|
var errmsg = "";
|
||||||
resdata['RETURN'].forEach(e => {
|
resdata["RETURN"].forEach((e) => {
|
||||||
if(e.TYPE=='E'){
|
if (e.TYPE == "E") {
|
||||||
errcode += e.NUMBER + ", ";
|
errcode += e.NUMBER + ", ";
|
||||||
errmsg += e.MESSAGE + " & ";
|
errmsg += e.MESSAGE + " & ";
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
errcode = errcode.substring(0, errcode.length - 2);
|
errcode = errcode.substring(0, errcode.length - 2);
|
||||||
errmsg = errmsg.substring(0, errmsg.length - 3);
|
errmsg = errmsg.substring(0, errmsg.length - 3);
|
||||||
|
|
||||||
if (errcode.length > 0) {
|
if (errcode.length > 0) {
|
||||||
|
pradapter.queryUpdateSapMessage(req, errmsg, function (err, data) {
|
||||||
apireshandler.meta.code = errcode;
|
apireshandler.meta.code = errcode;
|
||||||
apireshandler.meta.message = errmsg;
|
apireshandler.meta.message = "Failed to Create PR SAP";
|
||||||
pradapter.sendResponse(200, apireshandler, res);
|
pradapter.sendResponse(200, apireshandler, res);
|
||||||
}
|
});
|
||||||
else{
|
} else {
|
||||||
pradapter.queryUpdateStatusPr(req,resdata['NUMBER'], errmsg, function(err,data){
|
pradapter.queryUpdateStatusPr(req, resdata["NUMBER"], errmsg, function (err, data) {
|
||||||
let statusCode = data != null ? data.meta.code : 200;
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
// apireshandler.success = true;
|
// apireshandler.success = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
//pradapter.sendResponse(statusCode,data, res);
|
//pradapter.sendResponse(statusCode,data, res);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
} else {
|
||||||
else{
|
pradapter.queryUpdateStatusPr(req, null, "", function (err, data) {
|
||||||
pradapter.queryUpdateStatusPr(req,'00000','',function(err,data){
|
|
||||||
let statusCode = data != null ? data.meta.code : 200;
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
} catch (err) {
|
||||||
}
|
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [123] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [123] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.deletePR = (req, res) => {
|
exports.deletePR = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -255,13 +332,12 @@ exports.deletePR = ( req, res ) => {
|
|||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [138] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [138] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.approvedPR = (req, res) => {
|
exports.approvedPR = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -270,13 +346,12 @@ exports.approvedPR = ( req, res ) => {
|
|||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [153] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [153] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.getprmanagementlist = (req, res) => {
|
exports.getprmanagementlist = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -285,13 +360,12 @@ exports.getprmanagementlist = ( req, res ) => {
|
|||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [260] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [260] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.getprmanagementlistdetail = (req, res) => {
|
exports.getprmanagementlistdetail = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -300,13 +374,12 @@ exports.getprmanagementlistdetail = ( req, res ) => {
|
|||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [275] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [275] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.releasePRSAP = (req, res) => {
|
exports.releasePRSAP = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -319,33 +392,45 @@ exports.releasePRSAP = ( req, res ) => {
|
|||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
} else {
|
} else {
|
||||||
var rsdata = JSON.parse(JSON.stringify(data));
|
var rsdata = JSON.parse(JSON.stringify(data));
|
||||||
let prnumber = rsdata.data[0]['prnumber']; //Ymd
|
let prnumber = rsdata.data[0]["prnumber"]; //Ymd
|
||||||
let resuri = {
|
let resuri = {
|
||||||
'method': 'POST',
|
"method": "POST",
|
||||||
// 'url': baseurl+'signon',
|
// 'url': baseurl+'signon',
|
||||||
'url': baseurlsap+'/releasePr?number='+prnumber+'&rel_code=A1',
|
"url": baseurlsap + "/releasePr?number=" + prnumber + "&rel_code=A1",
|
||||||
'headers': {
|
"headers": {
|
||||||
'Content-Type': 'application/json',
|
"Content-Type": "application/json",
|
||||||
'x-api-key' : apikeysap
|
"x-api-key": apikeysap,
|
||||||
},
|
},
|
||||||
// form: formjson,
|
// form: formjson,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const logData = {
|
||||||
|
ref_code: prnumber,
|
||||||
|
request: JSON.stringify(resuri),
|
||||||
|
request_at: new Date(),
|
||||||
|
request_by: "999999",
|
||||||
|
response: "",
|
||||||
|
response_at: "",
|
||||||
|
url: baseurlsap + "/releasePr?number=" + prnumber + "&rel_code=A1",
|
||||||
|
};
|
||||||
|
|
||||||
// console.log(resuri);
|
// console.log(resuri);
|
||||||
request(resuri, function (error, response) {
|
request(resuri, function (error, response) {
|
||||||
|
logData.response_at = new Date();
|
||||||
|
logData.response = error ? JSON.stringify(error) : response.body;
|
||||||
|
sapadapter.queryInsertSapLog(idxpr, logData, "RELEASE_PR");
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
// console.log(error);
|
// console.log(error);
|
||||||
apireshandler.message = error.toString();
|
apireshandler.message = error.toString();
|
||||||
pradapter.sendResponse(400, apireshandler, res);
|
pradapter.sendResponse(400, apireshandler, res);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
console.log(response.body);
|
console.log(response.body);
|
||||||
var resdata = JSON.parse(response.body);
|
var resdata = JSON.parse(response.body);
|
||||||
var errcode = "";
|
var errcode = "";
|
||||||
var errmsg = "";
|
var errmsg = "";
|
||||||
resdata['RETURN'].forEach(e => {
|
resdata["RETURN"].forEach((e) => {
|
||||||
if(e.TYPE=='E'){
|
if (e.TYPE == "E") {
|
||||||
errcode += e.NUMBER + ", ";
|
errcode += e.NUMBER + ", ";
|
||||||
errmsg += e.MESSAGE + " & ";
|
errmsg += e.MESSAGE + " & ";
|
||||||
}
|
}
|
||||||
@ -356,11 +441,10 @@ exports.releasePRSAP = ( req, res ) => {
|
|||||||
apireshandler.meta.code = errcode;
|
apireshandler.meta.code = errcode;
|
||||||
apireshandler.meta.message = errmsg;
|
apireshandler.meta.message = errmsg;
|
||||||
// pradapter.sendResponse(200, apireshandler, res);
|
// pradapter.sendResponse(200, apireshandler, res);
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
apireshandler.success = true;
|
apireshandler.success = true;
|
||||||
}
|
}
|
||||||
pradapter.queryUpdateStatusPr(req,'',errmsg, function(err,data){
|
pradapter.queryUpdateStatusPr(req, "", errmsg, function (err, data) {
|
||||||
let statusCode = data != null ? data.meta.code : 200;
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
//data.data = resdata;
|
//data.data = resdata;
|
||||||
@ -372,14 +456,12 @@ exports.releasePRSAP = ( req, res ) => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} catch (err) {
|
||||||
}
|
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [348] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [348] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.unreleasePRSAP = (req, res) => {
|
exports.unreleasePRSAP = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -392,33 +474,45 @@ exports.unreleasePRSAP = ( req, res ) => {
|
|||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
} else {
|
} else {
|
||||||
var rsdata = JSON.parse(JSON.stringify(data));
|
var rsdata = JSON.parse(JSON.stringify(data));
|
||||||
let prnumber = rsdata.data[0]['prnumber']; //Ymd
|
let prnumber = rsdata.data[0]["prnumber"]; //Ymd
|
||||||
let resuri = {
|
let resuri = {
|
||||||
'method': 'POST',
|
"method": "POST",
|
||||||
// 'url': baseurl+'signon',
|
// 'url': baseurl+'signon',
|
||||||
'url': baseurlsap+'/unreleasePr?number='+prnumber+'&rel_code=A1',
|
"url": baseurlsap + "/unreleasePr?number=" + prnumber + "&rel_code=A1",
|
||||||
'headers': {
|
"headers": {
|
||||||
'Content-Type': 'application/json',
|
"Content-Type": "application/json",
|
||||||
'x-api-key' : apikeysap
|
"x-api-key": apikeysap,
|
||||||
},
|
},
|
||||||
// form: formjson,
|
// form: formjson,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const logData = {
|
||||||
|
ref_code: prnumber,
|
||||||
|
request: JSON.stringify(resuri),
|
||||||
|
request_at: new Date(),
|
||||||
|
request_by: "999999",
|
||||||
|
response: "",
|
||||||
|
response_at: "",
|
||||||
|
url: baseurlsap + "/unreleasePr?number=" + prnumber + "&rel_code=A1",
|
||||||
|
};
|
||||||
|
|
||||||
// console.log(resuri);
|
// console.log(resuri);
|
||||||
request(resuri, function (error, response) {
|
request(resuri, function (error, response) {
|
||||||
|
logData.response_at = new Date();
|
||||||
|
logData.response = error ? JSON.stringify(error) : response.body;
|
||||||
|
sapadapter.queryInsertSapLog(idxpr, logData, "UNRELEASE_PR");
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
// console.log(error);
|
// console.log(error);
|
||||||
apireshandler.message = error.toString();
|
apireshandler.message = error.toString();
|
||||||
pradapter.sendResponse(400, apireshandler, res);
|
pradapter.sendResponse(400, apireshandler, res);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
console.log(response.body);
|
console.log(response.body);
|
||||||
var resdata = JSON.parse(response.body);
|
var resdata = JSON.parse(response.body);
|
||||||
var errcode = "";
|
var errcode = "";
|
||||||
var errmsg = "";
|
var errmsg = "";
|
||||||
resdata['RETURN'].forEach(e => {
|
resdata["RETURN"].forEach((e) => {
|
||||||
if(e.TYPE=='E'){
|
if (e.TYPE == "E") {
|
||||||
errcode += e.NUMBER + ", ";
|
errcode += e.NUMBER + ", ";
|
||||||
errmsg += e.MESSAGE + " & ";
|
errmsg += e.MESSAGE + " & ";
|
||||||
}
|
}
|
||||||
@ -429,8 +523,7 @@ exports.unreleasePRSAP = ( req, res ) => {
|
|||||||
apireshandler.meta.code = errcode;
|
apireshandler.meta.code = errcode;
|
||||||
apireshandler.meta.message = errmsg;
|
apireshandler.meta.message = errmsg;
|
||||||
// pradapter.sendResponse(200, apireshandler, res);
|
// pradapter.sendResponse(200, apireshandler, res);
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
apireshandler.success = true;
|
apireshandler.success = true;
|
||||||
}
|
}
|
||||||
// else{
|
// else{
|
||||||
@ -440,7 +533,7 @@ exports.unreleasePRSAP = ( req, res ) => {
|
|||||||
// pradapter.sendResponse(statusCode,data, res);
|
// pradapter.sendResponse(statusCode,data, res);
|
||||||
// });
|
// });
|
||||||
// }
|
// }
|
||||||
pradapter.queryUpdateStatusPr(req,'',errmsg, function(err,data){
|
pradapter.queryUpdateStatusPr(req, "", errmsg, function (err, data) {
|
||||||
let statusCode = data != null ? data.meta.code : 200;
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
//data.data = resdata;
|
//data.data = resdata;
|
||||||
@ -452,30 +545,27 @@ exports.unreleasePRSAP = ( req, res ) => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} catch (err) {
|
||||||
}
|
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [413] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [413] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.changePRSAP = (req, res) => {
|
exports.changePRSAP = (req, res) => {
|
||||||
try {
|
try {
|
||||||
pradapter.queryUpdateStatusPr(req,'','', function(err,data){
|
pradapter.queryUpdateStatusPr(req, "", "", function (err, data) {
|
||||||
console.log(data);
|
console.log(data);
|
||||||
let statusCode = data != null ? data.meta.code : 200;
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
});
|
});
|
||||||
}
|
} catch (err) {
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [522] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [522] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.changePRSAPold = (req, res) => {
|
exports.changePRSAPold = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -492,46 +582,98 @@ exports.changePRSAPold = ( req, res ) => {
|
|||||||
// console.log(rsdata["data"]);
|
// console.log(rsdata["data"]);
|
||||||
let pr_no = "00010";
|
let pr_no = "00010";
|
||||||
let pr_qtyacc = "01";
|
let pr_qtyacc = "01";
|
||||||
let pr_number = rsdata.data[0]['prnumber']; //Ymd
|
let pr_number = rsdata.data[0]["prnumber"]; //Ymd
|
||||||
let pr_date = rsdata.data[0]['prdateYmd']; //Ymd
|
let pr_date = rsdata.data[0]["prdateYmd"]; //Ymd
|
||||||
let pr_budget = "00"+rsdata.data[0]['glaccount'];
|
let pr_budget = "00" + rsdata.data[0]["glaccount"];
|
||||||
let pr_costcenter = rsdata.data[0]['costcenter'];
|
let pr_costcenter = rsdata.data[0]["costcenter"];
|
||||||
let pr_profitcenter = "TIL1A01"; //rsdata.data[0]['profitcenter'];
|
let pr_profitcenter = "TIL1A01"; //rsdata.data[0]['profitcenter'];
|
||||||
let pr_shorttext =rsdata.data[0]['description'];
|
let pr_shorttext = rsdata.data[0]["description"];
|
||||||
let pr_qtyitem =rsdata.data[0]['qty'];
|
let pr_qtyitem = rsdata.data[0]["qty"];
|
||||||
let pr_unititem =rsdata.data[0]['unit'];
|
let pr_unititem = rsdata.data[0]["unit"];
|
||||||
let pr_priceitem =rsdata.data[0]['netprice'];
|
let pr_priceitem = rsdata.data[0]["netprice"];
|
||||||
// let pr_account="00010|01||20130727||||0051331006|TIL1|TIL1A01|||||||||||TIL1A01||||||||||||||||||||||";
|
// let pr_account="00010|01||20130727||||0051331006|TIL1|TIL1A01|||||||||||TIL1A01||||||||||||||||||||||";
|
||||||
let pr_account= pr_no+"|"+pr_qtyacc+"||"+pr_date+"||||"+pr_budget+"|TIL1|"+pr_costcenter+"|||||||||||"+pr_profitcenter+"||||||||||||||||||||||";
|
let pr_account =
|
||||||
|
pr_no +
|
||||||
|
"|" +
|
||||||
|
pr_qtyacc +
|
||||||
|
"||" +
|
||||||
|
pr_date +
|
||||||
|
"||||" +
|
||||||
|
pr_budget +
|
||||||
|
"|TIL1|" +
|
||||||
|
pr_costcenter +
|
||||||
|
"|||||||||||" +
|
||||||
|
pr_profitcenter +
|
||||||
|
"||||||||||||||||||||||";
|
||||||
// let pr_item="00010|||120|Putra|testcreatePR|||||||||1603||TrackNo1|ZSRV||1|BH||20130727||20130727|||1000|1||J||||||||1603|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||D|";
|
// let pr_item="00010|||120|Putra|testcreatePR|||||||||1603||TrackNo1|ZSRV||1|BH||20130727||20130727|||1000|1||J||||||||1603|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||D|";
|
||||||
let pr_item=pr_no+"|||120|Putra|"+pr_shorttext+"|||||||||1603||TrackNo1|ZSRV||"+pr_qtyitem+"|"+pr_unititem+"||"+pr_date+"||"+pr_date+"|||"+pr_priceitem+"|1||J||||||||1603||||||||||||||||||||||||||||||||||||||||USD|||||||||||||||||||D|";
|
let pr_item =
|
||||||
|
pr_no +
|
||||||
|
"|||120|Putra|" +
|
||||||
|
pr_shorttext +
|
||||||
|
"|||||||||1603||TrackNo1|ZSRV||" +
|
||||||
|
pr_qtyitem +
|
||||||
|
"|" +
|
||||||
|
pr_unititem +
|
||||||
|
"||" +
|
||||||
|
pr_date +
|
||||||
|
"||" +
|
||||||
|
pr_date +
|
||||||
|
"|||" +
|
||||||
|
pr_priceitem +
|
||||||
|
"|1||J||||||||1603||||||||||||||||||||||||||||||||||||||||USD|||||||||||||||||||D|";
|
||||||
let resuri = {
|
let resuri = {
|
||||||
'method': 'POST',
|
"method": "POST",
|
||||||
// 'url': baseurl+'signon',
|
// 'url': baseurl+'signon',
|
||||||
'url': baseurlsap+'/changePR?number='+pr_number+'&praccount[]='+pr_account+'&pritem[]='+pr_item,
|
"url":
|
||||||
'headers': {
|
baseurlsap +
|
||||||
'Content-Type': 'application/json',
|
"/changePR?number=" +
|
||||||
'x-api-key' : apikeysap
|
pr_number +
|
||||||
|
"&praccount[]=" +
|
||||||
|
pr_account +
|
||||||
|
"&pritem[]=" +
|
||||||
|
pr_item,
|
||||||
|
"headers": {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
"x-api-key": apikeysap,
|
||||||
},
|
},
|
||||||
// form: formjson,
|
// form: formjson,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const logData = {
|
||||||
|
ref_code: pr_number,
|
||||||
|
request: JSON.stringify(resuri),
|
||||||
|
request_at: new Date(),
|
||||||
|
request_by: "999999",
|
||||||
|
response: "",
|
||||||
|
response_at: "",
|
||||||
|
url:
|
||||||
|
baseurlsap +
|
||||||
|
"/changePR?number=" +
|
||||||
|
pr_number +
|
||||||
|
"&praccount[]=" +
|
||||||
|
pr_account +
|
||||||
|
"&pritem[]=" +
|
||||||
|
pr_item,
|
||||||
|
};
|
||||||
|
|
||||||
// console.log(resuri);
|
// console.log(resuri);
|
||||||
request(resuri, function (error, response) {
|
request(resuri, function (error, response) {
|
||||||
|
logData.response_at = new Date();
|
||||||
|
logData.response = error ? JSON.stringify(error) : response.body;
|
||||||
|
sapadapter.queryInsertSapLog(idxpr, logData, "CHANGE_PR");
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
apireshandler.message = error.toString();
|
apireshandler.message = error.toString();
|
||||||
pradapter.sendResponse(400, apireshandler, res);
|
pradapter.sendResponse(400, apireshandler, res);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
// console.log("Change pR : "+response.body);
|
// console.log("Change pR : "+response.body);
|
||||||
var resdata = JSON.parse(response.body);
|
var resdata = JSON.parse(response.body);
|
||||||
var errcode = "";
|
var errcode = "";
|
||||||
var errmsg = "";
|
var errmsg = "";
|
||||||
resdata['RETURN'].forEach(e => {
|
resdata["RETURN"].forEach((e) => {
|
||||||
// console.log(e);
|
// console.log(e);
|
||||||
if(e.TYPE=='E'){
|
if (e.TYPE == "E") {
|
||||||
errcode += e.NUMBER + ", ";
|
errcode += e.NUMBER + ", ";
|
||||||
errmsg += e.MESSAGE + " & ";
|
errmsg += e.MESSAGE + " & ";
|
||||||
}
|
}
|
||||||
@ -542,11 +684,10 @@ exports.changePRSAPold = ( req, res ) => {
|
|||||||
apireshandler.meta.code = errcode;
|
apireshandler.meta.code = errcode;
|
||||||
apireshandler.meta.message = errmsg;
|
apireshandler.meta.message = errmsg;
|
||||||
// pradapter.sendResponse(200, apireshandler, res);
|
// pradapter.sendResponse(200, apireshandler, res);
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
apireshandler.success = true;
|
apireshandler.success = true;
|
||||||
}
|
}
|
||||||
pradapter.queryUpdateStatusPr(req,'',errmsg, function(err,data){
|
pradapter.queryUpdateStatusPr(req, "", errmsg, function (err, data) {
|
||||||
let statusCode = data != null ? data.meta.code : 200;
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
//data.data = resdata;
|
//data.data = resdata;
|
||||||
@ -554,23 +695,18 @@ exports.changePRSAPold = ( req, res ) => {
|
|||||||
apireshandler.data = data.data;
|
apireshandler.data = data.data;
|
||||||
pradapter.sendResponse(statusCode, apireshandler, res);
|
pradapter.sendResponse(statusCode, apireshandler, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
//pradapter.sendResponse(statusCode,data, res);
|
//pradapter.sendResponse(statusCode,data, res);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} catch (err) {
|
||||||
}
|
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [522] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [522] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
exports.deletePRSAP = (req, res) => {
|
exports.deletePRSAP = (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -583,14 +719,14 @@ exports.deletePRSAP = ( req, res ) => {
|
|||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
} else {
|
} else {
|
||||||
var rsdata = JSON.parse(JSON.stringify(data));
|
var rsdata = JSON.parse(JSON.stringify(data));
|
||||||
let prnumber = rsdata.data[0]['prnumber']; //Ymd
|
let prnumber = rsdata.data[0]["prnumber"]; //Ymd
|
||||||
let resuri = {
|
let resuri = {
|
||||||
'method': 'POST',
|
"method": "POST",
|
||||||
// 'url': baseurl+'signon',
|
// 'url': baseurl+'signon',
|
||||||
'url': baseurlsap+'/deletePr?number='+prnumber,
|
"url": baseurlsap + "/deletePr?number=" + prnumber,
|
||||||
'headers': {
|
"headers": {
|
||||||
'Content-Type': 'application/json',
|
"Content-Type": "application/json",
|
||||||
'x-api-key' : apikeysap
|
"x-api-key": apikeysap,
|
||||||
},
|
},
|
||||||
// form: formjson,
|
// form: formjson,
|
||||||
};
|
};
|
||||||
@ -601,15 +737,13 @@ exports.deletePRSAP = ( req, res ) => {
|
|||||||
// console.log(error);
|
// console.log(error);
|
||||||
apireshandler.message = error.toString();
|
apireshandler.message = error.toString();
|
||||||
pradapter.sendResponse(400, apireshandler, res);
|
pradapter.sendResponse(400, apireshandler, res);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
// console.log(response.body);
|
// console.log(response.body);
|
||||||
var resdata = JSON.parse(response.body);
|
var resdata = JSON.parse(response.body);
|
||||||
var errcode = "";
|
var errcode = "";
|
||||||
var errmsg = "";
|
var errmsg = "";
|
||||||
resdata['RETURN'].forEach(e => {
|
resdata["RETURN"].forEach((e) => {
|
||||||
if(e.TYPE=='E'){
|
if (e.TYPE == "E") {
|
||||||
errcode += e.NUMBER + ", ";
|
errcode += e.NUMBER + ", ";
|
||||||
errmsg += e.MESSAGE + " & ";
|
errmsg += e.MESSAGE + " & ";
|
||||||
}
|
}
|
||||||
@ -620,8 +754,7 @@ exports.deletePRSAP = ( req, res ) => {
|
|||||||
apireshandler.meta.code = errcode;
|
apireshandler.meta.code = errcode;
|
||||||
apireshandler.meta.message = errmsg;
|
apireshandler.meta.message = errmsg;
|
||||||
// pradapter.sendResponse(200, apireshandler, res);
|
// pradapter.sendResponse(200, apireshandler, res);
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
apireshandler.success = true;
|
apireshandler.success = true;
|
||||||
}
|
}
|
||||||
// else{
|
// else{
|
||||||
@ -631,7 +764,7 @@ exports.deletePRSAP = ( req, res ) => {
|
|||||||
// pradapter.sendResponse(statusCode,data, res);
|
// pradapter.sendResponse(statusCode,data, res);
|
||||||
// });
|
// });
|
||||||
// }
|
// }
|
||||||
pradapter.queryUpdateStatusPr(req,'',errmsg, function(err,data){
|
pradapter.queryUpdateStatusPr(req, "", errmsg, function (err, data) {
|
||||||
let statusCode = data != null ? data.meta.code : 200;
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
if (err) statusCode = 500;
|
if (err) statusCode = 500;
|
||||||
//data.data = resdata;
|
//data.data = resdata;
|
||||||
@ -643,11 +776,9 @@ exports.deletePRSAP = ( req, res ) => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} catch (err) {
|
||||||
}
|
|
||||||
catch(err){
|
|
||||||
apireshandler.meta.code = 502;
|
apireshandler.meta.code = 502;
|
||||||
apireshandler.meta.message = " [413] : PR controller, " + err.toString();
|
apireshandler.meta.message = " [413] : PR controller, " + err.toString();
|
||||||
pradapter.sendResponse(502, apireshandler, res);
|
pradapter.sendResponse(502, apireshandler, res);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|||||||
110
controllers/sap_account.js
Normal file
110
controllers/sap_account.js
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
const SAPAccountAdapter = require("../adapter/sapaccountadapter.js");
|
||||||
|
const sapaccountadapter = new SAPAccountAdapter();
|
||||||
|
const Controllers = require("./controller.js");
|
||||||
|
const controllers = new Controllers();
|
||||||
|
var apireshandler = controllers.getApiResultDefined();
|
||||||
|
|
||||||
|
/* ================= LIST ================= */
|
||||||
|
exports.list = (req, res) => {
|
||||||
|
try {
|
||||||
|
sapaccountadapter.queryList(req, function (err, data) {
|
||||||
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
|
if (err) statusCode = 500;
|
||||||
|
sapaccountadapter.sendResponse(statusCode, data, res);
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
apireshandler.meta.code = 502;
|
||||||
|
apireshandler.meta.message = " [20] : SAP Account controller, " + err.toString();
|
||||||
|
sapaccountadapter.sendResponse(502, apireshandler, res);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* ================= CREATE ================= */
|
||||||
|
exports.create = (req, res) => {
|
||||||
|
try {
|
||||||
|
sapaccountadapter.queryCreate(req, function (err, data) {
|
||||||
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
|
if (err) statusCode = 500;
|
||||||
|
sapaccountadapter.sendResponse(statusCode, data, res);
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
apireshandler.meta.code = 502;
|
||||||
|
apireshandler.meta.message = " [21] : SAP Account create, " + err.toString();
|
||||||
|
sapaccountadapter.sendResponse(502, apireshandler, res);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* ================= UPDATE ================= */
|
||||||
|
exports.update = (req, res) => {
|
||||||
|
try {
|
||||||
|
sapaccountadapter.queryUpdate(req, function (err, data) {
|
||||||
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
|
if (err) statusCode = 500;
|
||||||
|
sapaccountadapter.sendResponse(statusCode, data, res);
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
apireshandler.meta.code = 502;
|
||||||
|
apireshandler.meta.message = " [22] : SAP Account update, " + err.toString();
|
||||||
|
sapaccountadapter.sendResponse(502, apireshandler, res);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* ================= DELETE (SOFT DELETE) ================= */
|
||||||
|
exports.delete = (req, res) => {
|
||||||
|
try {
|
||||||
|
sapaccountadapter.queryDelete(req, function (err, data) {
|
||||||
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
|
if (err) statusCode = 500;
|
||||||
|
sapaccountadapter.sendResponse(statusCode, data, res);
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
apireshandler.meta.code = 502;
|
||||||
|
apireshandler.meta.message = " [23] : SAP Account delete, " + err.toString();
|
||||||
|
sapaccountadapter.sendResponse(502, apireshandler, res);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* ================= DETAIL ================= */
|
||||||
|
exports.detail = (req, res) => {
|
||||||
|
try {
|
||||||
|
sapaccountadapter.queryDetail(req, function (err, data) {
|
||||||
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
|
if (err) statusCode = 500;
|
||||||
|
sapaccountadapter.sendResponse(statusCode, data, res);
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
apireshandler.meta.code = 502;
|
||||||
|
apireshandler.meta.message = " [24] : SAP Account detail, " + err.toString();
|
||||||
|
sapaccountadapter.sendResponse(502, apireshandler, res);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* ================= ACTIVATE SAP ================= */
|
||||||
|
exports.activate = (req, res) => {
|
||||||
|
try {
|
||||||
|
sapaccountadapter.queryActivate(req, function (err, data) {
|
||||||
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
|
if (err) statusCode = 500;
|
||||||
|
sapaccountadapter.sendResponse(statusCode, data, res);
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
apireshandler.meta.code = 502;
|
||||||
|
apireshandler.meta.message = " [25] : SAP Account activate, " + err.toString();
|
||||||
|
sapaccountadapter.sendResponse(502, apireshandler, res);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* ================= CURRENT SAP ================= */
|
||||||
|
exports.current = (req, res) => {
|
||||||
|
try {
|
||||||
|
sapaccountadapter.queryCurrent(req, function (err, data) {
|
||||||
|
let statusCode = data != null ? data.meta.code : 200;
|
||||||
|
if (err) statusCode = 500;
|
||||||
|
sapaccountadapter.sendResponse(statusCode, data, res);
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
apireshandler.meta.code = 502;
|
||||||
|
apireshandler.meta.message = " [26] : SAP Account current, " + err.toString();
|
||||||
|
sapaccountadapter.sendResponse(502, apireshandler, res);
|
||||||
|
}
|
||||||
|
};
|
||||||
74
middlewares/multer/singlepo.js
Normal file
74
middlewares/multer/singlepo.js
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
const multer = require('multer');
|
||||||
|
|
||||||
|
const path = require('path');
|
||||||
|
var imageStorage = multer.diskStorage({
|
||||||
|
// Destination to store image
|
||||||
|
// destination: 'assets/images/'+pathDir,
|
||||||
|
destination: (req, file, cb) => {
|
||||||
|
// console.log(req.get("path"));
|
||||||
|
// let pathdir = req.get("path");
|
||||||
|
cb(null, "assets/sap-po/")
|
||||||
|
// cb(null, "assets/words/" + pathdir + "/")
|
||||||
|
},
|
||||||
|
filename : (req, file, cb) => {
|
||||||
|
// let filename=file.originalname.split(".")[0];
|
||||||
|
let nik = req.nik;
|
||||||
|
let filedoc = 'sap_po_'+nik+'_' + Date.now() + path.extname(file.originalname);
|
||||||
|
// req.body.filedoc = filedoc;
|
||||||
|
// cb(null, filedoc);
|
||||||
|
req.body.filename = filedoc;
|
||||||
|
cb(null, filedoc);
|
||||||
|
// file.fieldname is name of the field (image)
|
||||||
|
// path.extname get the uploaded file extension
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var imageUpload = multer({
|
||||||
|
storage: imageStorage,
|
||||||
|
limits: {
|
||||||
|
fileSize: '25mb' // 1000000 Bytes = 5 MB
|
||||||
|
},
|
||||||
|
fileFilter(req, file, cb) {
|
||||||
|
if (!file.originalname.match(/\.(docx|pdf|PDF)$/)) {
|
||||||
|
// if (!file.originalname.match(/\.(docx)$/)) {
|
||||||
|
// upload only png and jpg format
|
||||||
|
req.fileValidationError = "Please upload a word document in ( docx ) / pdf file max 25 mb";
|
||||||
|
cb(new Error('Please upload a word document in ( docx ) / pdf file max 25 mb'), false);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
cb(null, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).single("file");
|
||||||
|
module.exports = (req, res, next) => {
|
||||||
|
try {
|
||||||
|
imageUpload(req,res, function(err){
|
||||||
|
try {
|
||||||
|
|
||||||
|
// if (err || err instanceof multer.MulterError){
|
||||||
|
if (err){
|
||||||
|
|
||||||
|
res.status(500).send({
|
||||||
|
"meta":{
|
||||||
|
"auth": false,
|
||||||
|
"code" : 500,
|
||||||
|
"message" : req.fileValidationError || err.toString(),
|
||||||
|
},
|
||||||
|
"data" :[]
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
next();
|
||||||
|
// console.log('The filename is ' + res.req.file.filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.log("error "+error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.log("error " + error);
|
||||||
|
error.message = error.message;
|
||||||
|
error.statusCode = 500;
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -4,6 +4,9 @@ const pocontroller = require('../controllers/po');
|
|||||||
const jwtauth = require('../middlewares/auth.js');
|
const jwtauth = require('../middlewares/auth.js');
|
||||||
const uploadfile = require('../middlewares/multer/po-doc.js');
|
const uploadfile = require('../middlewares/multer/po-doc.js');
|
||||||
const uploadfileBoq = require('../middlewares/multer/poboq-csv.js');
|
const uploadfileBoq = require('../middlewares/multer/poboq-csv.js');
|
||||||
|
|
||||||
|
const uploadfilePO = require('../middlewares/multer/singlepo.js');
|
||||||
|
|
||||||
const router=express.Router();
|
const router=express.Router();
|
||||||
|
|
||||||
router.get('/getlistvendor',[jwtauth], pocontroller.getListVendor);
|
router.get('/getlistvendor',[jwtauth], pocontroller.getListVendor);
|
||||||
@ -24,13 +27,15 @@ router.get('/getpomigolist',[jwtauth], pocontroller.getPOMigoList);
|
|||||||
router.get('/getpomigodetaillist',[jwtauth], pocontroller.getPOMigoDetailList);
|
router.get('/getpomigodetaillist',[jwtauth], pocontroller.getPOMigoDetailList);
|
||||||
|
|
||||||
// === SAP Enpoint
|
// === SAP Enpoint
|
||||||
router.post('/createposap',[jwtauth], pocontroller.createPOSAP);
|
router.post('/createposap',[jwtauth], pocontroller.createPOSAPold);
|
||||||
router.post('/createmigosap',[jwtauth], pocontroller.createMIGOPOSAP);
|
router.post('/createmigosap',[jwtauth], pocontroller.createMIGOPOSAPold);
|
||||||
router.post('/changeposap',[jwtauth], pocontroller.changePOSAP);
|
router.post('/changeposap',[jwtauth], pocontroller.changePOSAP);
|
||||||
router.post('/releaseposap',[jwtauth], pocontroller.releasePOSAP);
|
router.post('/releaseposap',[jwtauth], pocontroller.releasePOSAP);
|
||||||
router.post('/unreleaseposap',[jwtauth], pocontroller.unreleasePOSAP);
|
router.post('/unreleaseposap',[jwtauth], pocontroller.unreleasePOSAP);
|
||||||
router.post('/createheaderposap',[jwtauth], pocontroller.createHeaderPOSAP);
|
router.post('/createheaderposap',[jwtauth], pocontroller.createHeaderPOSAP);
|
||||||
|
|
||||||
|
// === Upload PO SAP
|
||||||
|
router.post('/uploadpo',[jwtauth, uploadfilePO], pocontroller.uploadPOSAP);
|
||||||
|
|
||||||
// === PO Adjustment
|
// === PO Adjustment
|
||||||
router.post('/newpoadj',[jwtauth, uploadfile], pocontroller.newpoadjustment);
|
router.post('/newpoadj',[jwtauth, uploadfile], pocontroller.newpoadjustment);
|
||||||
|
|||||||
@ -14,12 +14,12 @@ router.post('/prlist',[jwtauth], prcontroller.getListPr);
|
|||||||
router.post('/setnewpr',[jwtauth], prcontroller.setNewPr);
|
router.post('/setnewpr',[jwtauth], prcontroller.setNewPr);
|
||||||
router.post('/updatepr',[jwtauth], prcontroller.setUpdatePr);
|
router.post('/updatepr',[jwtauth], prcontroller.setUpdatePr);
|
||||||
router.post('/approvedpr',[jwtauth], prcontroller.approvedPR);
|
router.post('/approvedpr',[jwtauth], prcontroller.approvedPR);
|
||||||
router.post('/updatestatuspr',[jwtauth], prcontroller.setUpdateStatusPr);
|
router.post('/updatestatuspr',[jwtauth], prcontroller.setUpdateStatusProld);
|
||||||
router.post('/deletepr',[jwtauth], prcontroller.deletePR);
|
router.post('/deletepr',[jwtauth], prcontroller.deletePR);
|
||||||
// ==== SAP Part
|
// ==== SAP Part
|
||||||
router.post('/releaseprsap',[jwtauth], prcontroller.releasePRSAP);
|
router.post('/releaseprsap',[jwtauth], prcontroller.releasePRSAP);
|
||||||
router.post('/unreleaseprsap',[jwtauth], prcontroller.unreleasePRSAP);
|
router.post('/unreleaseprsap',[jwtauth], prcontroller.unreleasePRSAP);
|
||||||
router.post('/changeprsap',[jwtauth], prcontroller.changePRSAP);
|
router.post('/changeprsap',[jwtauth], prcontroller.changePRSAPold);
|
||||||
router.post('/deleteprsap',[jwtauth], prcontroller.deletePRSAP);
|
router.post('/deleteprsap',[jwtauth], prcontroller.deletePRSAP);
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
14
routes/sap.js
Normal file
14
routes/sap.js
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
const express = require("express");
|
||||||
|
const sapcontroller = require("../controllers/sap_account.js");
|
||||||
|
const jwtauth = require("../middlewares/auth.js");
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
router.get("/list", [jwtauth], sapcontroller.list);
|
||||||
|
router.post("/create", [jwtauth], sapcontroller.create);
|
||||||
|
router.post("/update/:id", [jwtauth], sapcontroller.update);
|
||||||
|
router.delete("/delete/:id", [jwtauth], sapcontroller.delete);
|
||||||
|
router.get("/detail/:id", [jwtauth], sapcontroller.detail);
|
||||||
|
router.post("/activate/:id", [jwtauth], sapcontroller.activate);
|
||||||
|
router.get("/current", [jwtauth], sapcontroller.current);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
Reference in New Issue
Block a user