Files
backend-Eprocurement/controllers/po.js
2025-12-05 06:21:42 +07:00

1100 lines
47 KiB
JavaScript

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');
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){
let statusCode = resdata!=null ? resdata.meta.code : 200 ;
if(err){
statusCode = 500;
poadapter.sendResponse(statusCode,data, res);
}
else{
poadapter.queryUpdatePoNumber(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 = " [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;
let resuri={
'method': 'POST',
// 'url': baseurlsap+'/createPo',
'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+'&currency='+currency+'&doc_date='+doc_date+'&vper_start='+vper_start+'&vper_end='+vper_end+'&poitem[]='+poitem+'&poschedule[]='+poschedule+'&zzctrnum='+zzctrnum,
'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);
// console.log(errmsg);
if(errmsg.length>0){
poadapter.queryUpdatePoNumber(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.queryUpdatePoNumber(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";
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,function(err,data){
poadapter.sendResponse(500,data, res);
});
}
else{
poadapter.queryUpdatePoNumber(req,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);
}
}