test create PR

This commit is contained in:
Rizki
2026-01-09 14:26:24 +07:00
parent 367bb5d29c
commit c777373817
2 changed files with 670 additions and 625 deletions

View File

@ -1,12 +1,52 @@
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");
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 +55,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 +69,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 +83,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 +97,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 +111,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 +125,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 +139,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;
@ -159,50 +187,69 @@ exports.setUpdateStatusProld = ( req, res ) => {
statusCode = 500; statusCode = 500;
pradapter.sendResponse(statusCode, data, res); pradapter.sendResponse(statusCode, data, res);
} else { } else {
var rsdata = JSON.parse(JSON.stringify(data)); // Normalize response data
// console.log(rsdata["data"]); const rsdata = JSON.parse(JSON.stringify(data));
let pr_type="PRTL"; const row = rsdata.data[0];
let x_pr_type="X";
let pr_no = "00010"; /* ================= PR CONSTANT ================= */
let pr_qtyacc ="01"; const PR_TYPE = "PRTL";
let pr_date = rsdata.data[0]['prdateYmd']; //Ymd const X_PR_TYPE = "X";
let pr_budget = "00"+rsdata.data[0]['glaccount']; const PR_NO = "00010";
let pr_costcenter = rsdata.data[0]['costcenter']; const PR_QTY_ACC = "01";
let pr_profitcenter = "TIL1A01";//rsdata.data[0]['profitcenter'];
let pr_shorttext =rsdata.data[0]['description']; /* ================= BUILD PR ACCOUNT ================= */
let pr_qtyitem =rsdata.data[0]['qty']; const prAccount = buildPrAccount({
let pr_unititem =rsdata.data[0]['unit']; prNo: PR_NO,
let pr_priceitem =rsdata.data[0]['netprice']; qtyAcc: PR_QTY_ACC,
// let pr_account="00010|01||20130727||||0051331006|TIL1|TIL1A01|||||||||||TIL1A01||||||||||||||||||||||"; prDate: row.prdateYmd, // YYYYMMDD
let pr_account= pr_no+"|"+pr_qtyacc+"||"+pr_date+"||||"+pr_budget+"|TIL1|"+pr_costcenter+"|||||||||||"+pr_profitcenter+"||||||||||||||||||||||"; budget: `00${row.glaccount}`,
// let pr_item="00010|||120|Putra|testcreatePR|||||||||1603||TrackNo1|ZSRV||1|BH||20130727||20130727|||1000|1||J||||||||1603|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||D|"; costCenter: row.costcenter,
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|"; profitCenter: "TIL1A01",
let resuri={ });
'method': 'POST',
// 'url': baseurl+'signon', /* ================= BUILD PR ITEM ================= */
'url': baseurlsap+'/createPr?pr_type='+pr_type+'&x_pr_type=X&praccount[]='+pr_account+'&pritem[]='+pr_item, const prItem = buildPrItem({
'headers': { prNo: PR_NO,
'Content-Type': 'application/json', shortText: row.description,
'x-api-key' : apikeysap qty: row.qty,
unit: row.unit,
price: row.netprice,
prDate: row.prdateYmd,
});
/* ================= BUILD SAP API URL ================= */
const sapPrUrl =
`${process.env.SAP_API_BASE_URL}/createPr` +
`?pr_type=${PR_TYPE}` +
`&x_pr_type=${X_PR_TYPE}` +
`&praccount[]=${prAccount}` +
`&pritem[]=${prItem}`;
/* ================= REQUEST OPTIONS ================= */
const options = {
method: "POST",
url: sapPrUrl,
timeout: 10000,
headers: {
"Content-Type": "application/json",
"x-api-key": process.env.SAP_API_KEY,
}, },
// form: formjson,
}; };
console.log(resuri); console.log(options);
request(resuri, function (error, response) { request(options, function (error, response) {
// console.log('response.body', response.body)
if (error) { if (error) {
console.log(error); console.log("Create PR Error =>", 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 + " & ";
} }
@ -213,40 +260,33 @@ exports.setUpdateStatusProld = ( 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{ 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, "00000", "", 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 +295,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 +309,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 +323,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 +337,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,14 +355,14 @@ 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,
}; };
@ -337,15 +373,13 @@ exports.releasePRSAP = ( 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 + " & ";
} }
@ -356,11 +390,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 +405,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,14 +423,14 @@ 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,
}; };
@ -410,15 +441,13 @@ exports.unreleasePRSAP = ( 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 + " & ";
} }
@ -429,8 +458,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 +468,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 +480,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,26 +517,59 @@ 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,
}; };
@ -522,16 +580,14 @@ exports.changePRSAPold = ( 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("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 +598,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 +609,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 +633,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 +651,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 +668,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 +678,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 +690,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);
} }
} };

View File

@ -14,7 +14,7 @@ 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);