1100 lines
47 KiB
JavaScript
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+'¤cy='+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);
|
|
}
|
|
}
|