const PoAdapter = require("../adapter/poadapter.js"); const poadapter = new PoAdapter(); const Controllers = require("./controller.js"); const controllers = new Controllers(); var apireshandler = controllers.getApiResultDefined(); // const baseurlsap="http://172.20.25.27/sapapi/index.php/api"; const baseurlsap = "http://" + process.env.HOSTSAP + "/sapapi/index.php/api"; const apikeysap = "befea63a-7c47-4323-afea-968a3168fe0a"; const request = require("request"); var fs = require("fs"); const SAPAdapter = require("../adapter/sapadapter.js"); const sapadapter = new SAPAdapter(); exports.getListVendor = (req, res) => { try { poadapter.queryVendorList(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [20] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.getPoBoqList = (req, res) => { try { poadapter.queryPoBoqlist(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [20] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.getidxpoheader = (req, res) => { try { poadapter.queryGetidxpoheader(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [20] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.savePoboq = (req, res) => { try { poadapter.querySaveboqdetail(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [20] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.getLastSignedPo = (req, res) => { try { poadapter.queryGetLastSignDate(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [20] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.createPOSAP = (req, res) => { try { let status = req.body.status; poadapter.queryUpdatePoHeader(req, function (err, resdata) { console.log("err createpo =>", err); let statusCode = resdata != null ? resdata.meta.code : 200; if (err) { statusCode = 500; poadapter.sendResponse(statusCode, data, res); } else { poadapter.queryUpdatePoNumber(req, function (err, data) { console.log("err queryUpdatePoNumber =>", err); let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [123] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.createPOSAPold = (req, res) => { try { let status = req.body.status; if (status == 1) { // if(0==1){ poadapter.queryUpdatePoHeader(req, function (err, resdata) { let statusCode = resdata != null ? resdata.meta.code : 200; if (err) statusCode = 500; // console.log(resdata.data.length); // poadapter.sendResponse(statusCode,resdata, res); if (resdata.data.length > 0) { let comp_code = "1603"; let doc_type = "POTL"; let creat_date = req.body.createdate; let created_by = req.body.createdby; let vendor = resdata.data[0]["vendorid"]; //"TL30000001"; let purch_org = "1603"; let pur_group = "TIL"; let currency = "USD"; let doc_date = resdata.data[0]["podate"]; let vper_start = resdata.data[0]["vper_start"]; let vper_end = resdata.data[0]["vper_end"]; // === PO ITEM let po_number = "000"; let description = resdata.data[0]["podescription"]; //req.body.podescription; // let quantity="1"; let quantity = resdata.data[0]["totalqty"].toString().replace(",", "."); // TotalPo / TotalValue PR let po_unit = "PKT"; let net_price = req.body.totalpo; let final_inv = "X"; let gr_basediv = "X"; let preq_no = resdata.data[0]["prnumber"]; let preq_item = "00010"; let poitem = preq_item + "|" + description + "|" + quantity + "|" + po_unit + "|" + net_price + "|" + final_inv + "|" + gr_basediv + "|" + preq_no + "|" + preq_item; let poschedule = "00010|" + resdata.data[0]["vper_end"]; let zzctrnum = resdata.data[0]["identifyprojectnumber"].toString().trim(); //req.body.podescription; const url = baseurlsap + "/createPo?comp_code=" + comp_code + "&doc_type=" + doc_type + "&creat_date=" + creat_date + "&created_by=" + created_by + "&vendor=" + vendor + "&purch_org=" + purch_org + "&pur_group=" + pur_group + "¤cy=" + currency + "&doc_date=" + doc_date + "&vper_start=" + vper_start + "&vper_end=" + vper_end + "&poitem[]=" + poitem + "&poschedule[]=" + poschedule + "&zzctrnum=" + zzctrnum; let resuri = { "method": "POST", // 'url': baseurlsap+'/createPo', "url": url, "headers": { "Content-Type": "application/json", "x-api-key": apikeysap, }, // form: formjson, }; const logData = { ref_code: preq_no, request: JSON.stringify(resuri), request_at: new Date(), request_by: req.body.createdby, response: "", response_at: "", url, }; request(resuri, function (error, response) { logData.response_at = new Date(); logData.response = error ? JSON.stringify(error) : response.body; sapadapter.queryInsertSapLog(logData, "CREATE_PO"); if (error) { // console.log(error); apireshandler.message = error.toString(); poadapter.sendResponse(400, apireshandler, res); } else { // console.log(response.body); var resdata = JSON.parse(response.body); var errcode = ""; var errmsg = ""; resdata["RETURN"].forEach((e) => { if (e.TYPE == "E") { errcode += e.NUMBER + ", "; errmsg += e.MESSAGE + " & "; } }); errcode = errcode.substring(0, errcode.length - 2); errmsg = errmsg.substring(0, errmsg.length - 3); if (errmsg.length > 0) { poadapter.queryUpdatePoNumberold( req, resdata["NUMBER"] || resdata["EXPPURCHASEORDER"], errmsg, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; data.success = false; data.meta.message = errmsg; poadapter.sendResponse(500, data, res); }, ); } else { poadapter.queryUpdatePoNumberold( req, resdata["NUMBER"] || resdata["EXPPURCHASEORDER"], errmsg, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }, ); } // if(errcode.length>0){ // apireshandler.meta.code = errcode; // apireshandler.meta.message = errmsg; // poadapter.sendResponse(200, apireshandler, res); // } // else{ // // apireshandler.success = true; // } } }); } else { poadapter.sendResponse(statusCode, resdata, res); } }); } else { poadapter.queryUpdatePoHeader(req, function (err, resdata) { let statusCode = resdata != null ? resdata.meta.code : 200; if (err) { statusCode = 500; poadapter.sendResponse(statusCode, data, res); } else { poadapter.queryUpdatePoNumber(req, "000", "", function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } }); } } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [123] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.createMIGOPOSAP = (req, res) => { try { poadapter.queryUpdateMigoNumber(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; // data.success = false; // data.meta.message = errmsg; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [123] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.createMIGOPOSAPold = (req, res) => { try { poadapter.queryPoManagementListDetail(req, function (err, resdata) { let statusCode = resdata != null ? resdata.meta.code : 200; if (err) statusCode = 500; // console.log(resdata.data.length); // poadapter.sendResponse(statusCode,resdata, res); if (resdata.data.length > 0) { let gm_code = "01"; let pstng_date = resdata.data[0]["podate"].toString().trim(); let doc_date = pstng_date; let header_txt = resdata.data[0]["podescription"].toString().trim(); // let quantity="1"; let quantity = resdata.data[0]["totalqty"].toString().trim(); // let po_unit="PKT"; let po_unit = resdata.data[0]["units"].toString().trim(); let po_number = resdata.data[0]["ponumber"].toString().trim(); let po_item = "00010"; let item_text = resdata.data[0]["podescription"].toString().trim(); let gr_rcpt = "GRreceipt"; let unload_pt = "unloadpoint"; let movement_ind = "B"; let reason = "0001"; let location = "160301"; let goodsmvt_item = "1603|101|" + quantity + "|" + po_unit + "|" + po_number + "|" + po_item + "|" + item_text + "|"; // let goodsmvt_item="1603|101|"+quantity+"|"+po_number+"|"+po_item+"|"+item_text+"|"; goodsmvt_item += gr_rcpt + "|" + unload_pt + "|" + movement_ind + "|" + reason + "|" + location + "|"; // let zzctrnum = (resdata.data[0]['identifyprojectnumber']).toString().trim();//req.body.podescription; let resuri = { "method": "POST", // 'url': baseurlsap+'/createPo', "url": baseurlsap + "/migo?gm_code=" + gm_code + "&pstng_date=" + pstng_date + "&doc_date=" + doc_date + "&header_txt=" + header_txt + "&goodsmvt_item[]=" + goodsmvt_item, "headers": { "Content-Type": "application/json", "x-api-key": apikeysap, }, // form: formjson, }; // http://172.20.25.27/sapapi/index.php/api/migo?gm_code=01&pstng_date=20140404&doc_date=20210404&hea // der_txt=test header&goodsmvt_item[]=1603|101|1|BH|4110000019|00010|line itemtext|GRreceipt|unloadp // oint|B|0001|160301| console.log(resuri); request(resuri, function (error, response) { if (error) { // console.log(error); apireshandler.message = error.toString(); poadapter.sendResponse(400, apireshandler, res); } else { console.log(response.body); var resdata = JSON.parse(response.body); var errcode = ""; var errmsg = ""; resdata["RETURN"].forEach((e) => { if (e.TYPE == "E") { errcode += e.NUMBER + ", "; errmsg += e.MESSAGE + " & "; } }); errcode = errcode.substring(0, errcode.length - 2); errmsg = errmsg.substring(0, errmsg.length - 3); // console.log(errmsg); if (errmsg.length > 0) { poadapter.queryUpdateMigoNumber( req, resdata["GOODSMVT_HEADRET"]["MAT_DOC"] || "", errmsg, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; data.success = false; data.meta.message = errmsg; poadapter.sendResponse(500, data, res); }, ); } else { poadapter.queryUpdateMigoNumber( req, resdata["GOODSMVT_HEADRET"]["MAT_DOC"], errmsg, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }, ); } // if(errcode.length>0){ // apireshandler.meta.code = errcode; // apireshandler.meta.message = errmsg; // poadapter.sendResponse(200, apireshandler, res); // } // else{ // // apireshandler.success = true; // } } }); } else { poadapter.sendResponse(statusCode, resdata, res); } }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [123] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.deletePoBoq = (req, res) => { try { poadapter.queryDeletePoBoq(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [185] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.getPOManagementList = (req, res) => { try { poadapter.queryPoManagementList(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [200] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.getPOManagementListDetail = (req, res) => { try { poadapter.queryPoManagementListDetail(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [215] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.changePOSAP = (req, res) => { try { req.query.idxpo = req.body.idxpo; poadapter.queryPoManagementListDetail(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) { statusCode = 500; poadapter.sendResponse(statusCode, data, res); } else { var rsdata = JSON.parse(JSON.stringify(data)); let ponumber = rsdata.data[0]["ponumber"]; //Ymd let podescription = req.body.podescription; //rsdata.data[0]['podescription']; let totalpo = req.body.totalpo; //rsdata.data[0]['podescription']; let qty = 1; //req.query.qty; //rsdata.data[0]['podescription']; let units = rsdata.data[0]["units"]; //http://172.20.25.27/sapapi/index.php/api/changePo?purchaseorder=4110000020&poitem[]=00010|test createPO|0||0||||00000 let poitem = "00010|" + podescription + "|" + qty + "|" + units + "|" + totalpo + "|x|x|" + ponumber + "|00010"; let resuri = { "method": "POST", // 'url': baseurl+'signon', "url": baseurlsap + "/changePo?purchaseorder=" + ponumber + "&poitem[]=" + poitem, "headers": { "Content-Type": "application/json", "x-api-key": apikeysap, }, // form: formjson, }; // console.log(resuri); request(resuri, function (error, response) { if (error) { // console.log(error); apireshandler.message = error.toString(); poadapter.sendResponse(400, apireshandler, res); } else { // console.log(response.body); var resdata = JSON.parse(response.body); var errcode = ""; var errmsg = ""; resdata["RETURN"].forEach((e) => { if (e.TYPE == "E") { errcode += e.NUMBER + ", "; errmsg += e.MESSAGE + " & "; } }); errcode = errcode.substring(0, errcode.length - 2); errmsg = errmsg.substring(0, errmsg.length - 3); if (errcode.length > 0) { apireshandler.meta.code = errcode; apireshandler.meta.message = errmsg; // poadapter.sendResponse(200, apireshandler, res); } else { apireshandler.success = true; } poadapter.queryUpdatePOSAP(req, "", errmsg, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err || errcode.length > 0) statusCode = 500; //data.data = resdata; apireshandler.meta.code = statusCode; apireshandler.data = data.data; poadapter.sendResponse(statusCode, apireshandler, res); }); } }); } }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = "[291] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.releasePOSAP = (req, res) => { try { req.query.idxpo = req.body.idxpo; poadapter.queryPoManagementListDetail(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) { statusCode = 500; poadapter.sendResponse(statusCode, data, res); } else { var rsdata = JSON.parse(JSON.stringify(data)); let ponumber = rsdata.data[0]["ponumber"]; //Ymd //http://172.20.25.27/sapapi/index.php/api/releasePo?im_purchaseorder=4110000020 let resuri = { "method": "POST", // 'url': baseurl+'signon', "url": baseurlsap + "/releasePo?im_purchaseorder=" + ponumber, "headers": { "Content-Type": "application/json", "x-api-key": apikeysap, }, // form: formjson, }; // console.log(resuri); request(resuri, function (error, response) { if (error) { // console.log(error); apireshandler.message = error.toString(); poadapter.sendResponse(400, apireshandler, res); } else { // console.log(response.body); var resdata = JSON.parse(response.body); var errcode = ""; var errmsg = ""; resdata["RETURN"].forEach((e) => { if (e.TYPE == "E") { errcode += e.NUMBER + ", "; errmsg += e.MESSAGE + " & "; } }); errcode = errcode.substring(0, errcode.length - 2); errmsg = errmsg.substring(0, errmsg.length - 3); if (errcode.length > 0) { apireshandler.meta.code = errcode; apireshandler.meta.message = errmsg; // poadapter.sendResponse(200, apireshandler, res); } else { apireshandler.success = true; } poadapter.queryUpdatePOSAP(req, "", errmsg, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err || errcode.length > 0) statusCode = 500; //data.data = resdata; apireshandler.meta.code = statusCode; apireshandler.data = data.data; poadapter.sendResponse(statusCode, apireshandler, res); }); } }); } }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = "[291] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.unreleasePOSAP = (req, res) => { try { req.query.idxpo = req.body.idxpo; poadapter.queryPoManagementListDetail(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) { statusCode = 500; poadapter.sendResponse(statusCode, data, res); } else { var rsdata = JSON.parse(JSON.stringify(data)); let ponumber = rsdata.data[0]["ponumber"]; //Ymd //http://172.20.25.27/sapapi/index.php/api/releasePo?im_purchaseorder=4110000020 let resuri = { "method": "POST", // 'url': baseurl+'signon', "url": baseurlsap + "/unreleasePo?number=" + ponumber, "headers": { "Content-Type": "application/json", "x-api-key": apikeysap, }, // form: formjson, }; // console.log(resuri); request(resuri, function (error, response) { if (error) { // console.log(error); apireshandler.message = error.toString(); poadapter.sendResponse(400, apireshandler, res); } else { // console.log(response.body); var resdata = JSON.parse(response.body); var errcode = ""; var errmsg = ""; resdata["RETURN"].forEach((e) => { if (e.TYPE == "E") { errcode += e.NUMBER + ", "; errmsg += e.MESSAGE + " & "; } }); errcode = errcode.substring(0, errcode.length - 2); errmsg = errmsg.substring(0, errmsg.length - 3); if (errcode.length > 0) { apireshandler.meta.code = errcode; apireshandler.meta.message = errmsg; // poadapter.sendResponse(200, apireshandler, res); } else { apireshandler.success = true; } poadapter.queryUpdatePOSAP(req, "", errmsg, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err || errcode.length > 0) statusCode = 500; //data.data = resdata; apireshandler.meta.code = statusCode; apireshandler.data = data.data; poadapter.sendResponse(statusCode, apireshandler, res); }); } }); } }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = "[291] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.createHeaderPOSAP = (req, res) => { try { req.query.idxpo = req.body.idxpo; poadapter.queryUpdateIdentifyProject(req, function (err, resdata) { let statusCode = resdata != null ? resdata.meta.code : 200; if (err) statusCode = 500; // console.log(resdata.data.length); // poadapter.sendResponse(statusCode,resdata, res); if (resdata.data.length > 0) { let identifyprojectnumber = resdata.data[0]["identifyprojectnumber"]; let contractdescription = resdata.data[0]["contractdescription"]; let contractperiodfrom = resdata.data[0]["contractperiodfrom"]; let contractperiodto = resdata.data[0]["contractperiodto"]; let im_ctrnum = identifyprojectnumber; let im_bukrs = "1603"; let im_werks = "1603"; let im_ctrdsc = contractdescription; let im_ctrtor = resdata.data[0]["vendorname"]; let im_contract = identifyprojectnumber; let im_contract2 = identifyprojectnumber; let im_contdesc = contractdescription; let im_spmon0 = contractperiodfrom; let im_spmon1 = contractperiodto; let im_ctrmax = 2; let im_waers2 = "USD"; let im_ctrval = "0"; let im_ctrval2 = "0"; let im_action = "I"; const url = baseurlsap + "/zcpxmm003?im_ctrnum=" + im_ctrnum + "&im_bukrs=" + im_bukrs + "&im_werks=" + im_werks + "&im_ctrdsc=" + im_ctrdsc + "&im_ctrtor=" + im_ctrtor + "&im_contract=" + im_contract + "&im_contract2=" + im_contract2 + "&im_contdesc=" + im_contdesc + "&im_spmon0=" + im_spmon0 + "&im_spmon1=" + im_spmon1 + "&im_ctrmax=" + im_ctrmax + "&im_waers2=" + im_waers2 + "&im_ctrval=" + im_ctrval + "&im_ctrval2=" + im_ctrval2 + "&im_action=" + im_action; let resuri = { "method": "POST", "url": url, "headers": { "Content-Type": "application/json", "x-api-key": apikeysap, }, }; const logData = { ref_code: identifyprojectnumber, request: JSON.stringify(resuri), request_at: new Date(), request_by: "999999", response: "", response_at: "", url, }; // console.log(resuri); request(resuri, function (error, response) { logData.response_at = new Date(); logData.response = error ? JSON.stringify(error) : response.body; sapadapter.queryInsertSapLog(logData, "CREATE_HEADER_SAP"); if (error) { apireshandler.message = error.toString(); apireshandler.meta.message = "Header Created Successfuly"; poadapter.queryUpdatePoNumber(req, error.toString(), function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); // poadapter.sendResponse(400, apireshandler, res); } else { var resdata = JSON.parse(response.body); var errcode = ""; var errmsg = ""; if (Array.isArray(resdata)) { resdata["RETURN"].forEach((e) => { if (e.TYPE == "E") { errcode += e.NUMBER + ", "; errmsg += e.MESSAGE + " & "; } }); } errcode = errcode.substring(0, errcode.length - 2); errmsg = errmsg.substring(0, errmsg.length - 3); console.log("error : " + errmsg); if (errmsg.length > 0) { poadapter.queryUpdatePoNumber(req, errmsg, function (err, data) { poadapter.sendResponse(500, data, res); }); } else { poadapter.queryUpdatePoNumber(req, errmsg, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } } }); } else { poadapter.sendResponse(statusCode, resdata, res); } }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = "[550] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.createHeaderPOSAPold = (req, res) => { try { req.query.idxpo = req.body.idxpo; poadapter.queryUpdateIdentifyProject(req, function (err, resdata) { let statusCode = resdata != null ? resdata.meta.code : 200; if (err) statusCode = 500; // console.log(resdata.data.length); // poadapter.sendResponse(statusCode,resdata, res); if (resdata.data.length > 0) { let identifyprojectnumber = resdata.data[0]["identifyprojectnumber"]; let contractdescription = resdata.data[0]["contractdescription"]; let contractperiodfrom = resdata.data[0]["contractperiodfrom"]; let contractperiodto = resdata.data[0]["contractperiodto"]; let im_ctrnum = identifyprojectnumber; let im_bukrs = "1603"; let im_werks = "1603"; let im_ctrdsc = contractdescription; let im_ctrtor = resdata.data[0]["vendorname"]; let im_contract = identifyprojectnumber; let im_contract2 = identifyprojectnumber; let im_contdesc = contractdescription; let im_spmon0 = contractperiodfrom; let im_spmon1 = contractperiodto; let im_ctrmax = 2; let im_waers2 = "USD"; let im_ctrval = "0"; let im_ctrval2 = "0"; let im_action = "I"; let resuri = { "method": "POST", "url": baseurlsap + "/zcpxmm003?im_ctrnum=" + im_ctrnum + "&im_bukrs=" + im_bukrs + "&im_werks=" + im_werks + "&im_ctrdsc=" + im_ctrdsc + "&im_ctrtor=" + im_ctrtor + "&im_contract=" + im_contract + "&im_contract2=" + im_contract2 + "&im_contdesc=" + im_contdesc + "&im_spmon0=" + im_spmon0 + "&im_spmon1=" + im_spmon1 + "&im_ctrmax=" + im_ctrmax + "&im_waers2=" + im_waers2 + "&im_ctrval=" + im_ctrval + "&im_ctrval2=" + im_ctrval2 + "&im_action=" + im_action, "headers": { "Content-Type": "application/json", "x-api-key": apikeysap, }, }; // console.log(resuri); request(resuri, function (error, response) { if (error) { // console.log(error); apireshandler.message = error.toString(); poadapter.sendResponse(400, apireshandler, res); } else { // console.log("response : " +response.body); var resdata = JSON.parse(response.body); var errcode = ""; var errmsg = ""; if (Array.isArray(resdata)) { resdata["RETURN"].forEach((e) => { if (e.TYPE == "E") { errcode += e.NUMBER + ", "; errmsg += e.MESSAGE + " & "; } }); } errcode = errcode.substring(0, errcode.length - 2); errmsg = errmsg.substring(0, errmsg.length - 3); console.log("error : " + errmsg); if (errmsg.length > 0) { poadapter.queryUpdatePoNumber(req, "000", errmsg, function (err, data) { poadapter.sendResponse(500, data, res); }); } else { poadapter.queryUpdatePoNumber(req, "000", "", function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } } }); } else { poadapter.sendResponse(statusCode, resdata, res); } }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = "[550] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.getPOInventorylist = (req, res) => { try { poadapter.queryPoInventoryList(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [200] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.getPOttdList = (req, res) => { try { poadapter.queryPottdList(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [200] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.getPOttdDetailList = (req, res) => { try { poadapter.queryPottdListDetail(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [200] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.getPOMigoList = (req, res) => { try { poadapter.queryPoMigoList(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [200] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.getPOMigoDetailList = (req, res) => { try { poadapter.queryPoMigoListDetail(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [200] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.getPOInventoryDetaillist = (req, res) => { try { poadapter.queryPoInventoryDetailList(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [200] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.setSignedPO = (req, res) => { try { poadapter.querySignedPo(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = "[636] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.newpoadjustment = (req, res) => { try { // console.log(req.nik); // console.log(req.body.filename);return false; let ext = req.body.filename.split(".")[1]; let filename = "ADJPO_" + req.nik + "_" + Date.now() + "." + ext; fs.rename( process.env.BASEPATH + "/assets/po/" + req.body.filename, process.env.BASEPATH + "/assets/po/" + filename, function (err) { if (err) { poadapter.sendResponse(500, err, res); } else { poadapter.queryNewPoAdjustment(req, filename, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } }, ); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [958] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.updpoadjustment = (req, res) => { try { var ext = ""; var filename = ""; if (req.body.filename) { ext = req.body.filename.split(".")[1]; filename = "ADJPO_" + req.nik + "_" + Date.now() + "." + ext; fs.rename( process.env.BASEPATH + "/assets/po/" + req.body.filename, process.env.BASEPATH + "/assets/po/" + filename, function (err) { if (err) { poadapter.sendResponse(500, err, res); } else { poadapter.queryUpdPoAdjustment(req, filename, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } }, ); } else { poadapter.queryUpdPoAdjustment(req, filename, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [958] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.updpoboq = (req, res) => { try { var filename = req.body.filename; if (req.body.filename) { poadapter.queryUpdPoBoq(req, filename, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } else { apireshandler.meta.code = 502; apireshandler.meta.message = " [1014] : PO controller, Upload File CSV Failed"; poadapter.sendResponse(502, apireshandler, res); } } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = " [958] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.getpoadjlist = (req, res) => { try { poadapter.queryPoAdjList(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = "[636] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.getpoadjlistdetail = (req, res) => { try { poadapter.queryPoAdjListDetail(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = "[636] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.getpoapprovedlist = (req, res) => { try { poadapter.queryPoApproveList(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = "[636] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.deletepoadj = (req, res) => { try { poadapter.queryDeleteAdjPO(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = "[636] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } }; exports.submitpoadj = (req, res) => { try { poadapter.querySubmitAdjPO(req, function (err, data) { let statusCode = data != null ? data.meta.code : 200; if (err) statusCode = 500; poadapter.sendResponse(statusCode, data, res); }); } catch (err) { apireshandler.meta.code = 502; apireshandler.meta.message = "[636] : PO controller, " + err.toString(); poadapter.sendResponse(502, apireshandler, res); } };