add field vendor in procjustification
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -119,89 +119,74 @@ exports.createPOSAPold = (req, res) => {
|
|||||||
// console.log(resdata.data.length);
|
// console.log(resdata.data.length);
|
||||||
// poadapter.sendResponse(statusCode,resdata, res);
|
// poadapter.sendResponse(statusCode,resdata, res);
|
||||||
if (resdata.data.length > 0) {
|
if (resdata.data.length > 0) {
|
||||||
const idxpr = resdata.data[0]["idxpr"] ?? 0;
|
const data = resdata?.data?.[0] ?? {};
|
||||||
|
|
||||||
let comp_code = "1603";
|
const {
|
||||||
let doc_type = "POTL";
|
idxpr = 0,
|
||||||
let creat_date = req.body.createdate;
|
vendorid = "",
|
||||||
let created_by = req.body.createdby;
|
podate = "",
|
||||||
let vendor = resdata.data[0]["vendorid"]; //"TL30000001";
|
vper_start = "",
|
||||||
let purch_org = "1603";
|
vper_end = "",
|
||||||
let pur_group = "TIL";
|
podescription = "",
|
||||||
let currency = "USD";
|
totalqty = 0,
|
||||||
let doc_date = resdata.data[0]["podate"];
|
prnumber = "",
|
||||||
let vper_start = resdata.data[0]["vper_start"];
|
identifyprojectnumber = "",
|
||||||
let vper_end = resdata.data[0]["vper_end"];
|
} = data;
|
||||||
// === PO ITEM
|
|
||||||
let po_number = "000";
|
// ===== HEADER PARAM =====
|
||||||
let description = resdata.data[0]["podescription"]; //req.body.podescription;
|
const headerParams = {
|
||||||
// let quantity="1";
|
comp_code: "1603",
|
||||||
let quantity = resdata.data[0]["totalqty"].toString().replace(",", "."); // TotalPo / TotalValue PR
|
doc_type: "POTL",
|
||||||
let po_unit = "PKT";
|
creat_date: req.body.createdate,
|
||||||
let net_price = req.body.totalpo;
|
created_by: req.body.createdby,
|
||||||
let final_inv = "X";
|
vendor: vendorid,
|
||||||
let gr_basediv = "X";
|
purch_org: "1603",
|
||||||
let preq_no = resdata.data[0]["prnumber"];
|
pur_group: "TIL",
|
||||||
let preq_item = "00010";
|
currency: "USD",
|
||||||
let poitem =
|
doc_date: podate,
|
||||||
preq_item +
|
vper_start,
|
||||||
"|" +
|
vper_end,
|
||||||
description +
|
zzctrnum: identifyprojectnumber?.toString().trim(),
|
||||||
"|" +
|
};
|
||||||
quantity +
|
|
||||||
"|" +
|
// ===== ITEM PARAM =====
|
||||||
po_unit +
|
const preq_item = "00010";
|
||||||
"|" +
|
const quantity = Number(totalqty).toString().replace(",", ".");
|
||||||
net_price +
|
const po_unit = "PKT";
|
||||||
"|" +
|
const net_price = req.body.totalpo;
|
||||||
final_inv +
|
const final_inv = "X";
|
||||||
"|" +
|
const gr_basediv = "X";
|
||||||
gr_basediv +
|
|
||||||
"|" +
|
const poitem = [
|
||||||
preq_no +
|
preq_item,
|
||||||
"|" +
|
podescription,
|
||||||
preq_item;
|
quantity,
|
||||||
let poschedule = "00010|" + resdata.data[0]["vper_end"];
|
po_unit,
|
||||||
let zzctrnum = resdata.data[0]["identifyprojectnumber"].toString().trim(); //req.body.podescription;
|
net_price,
|
||||||
const url =
|
final_inv,
|
||||||
baseurlsap +
|
gr_basediv,
|
||||||
"/createPo?comp_code=" +
|
prnumber,
|
||||||
comp_code +
|
preq_item,
|
||||||
"&doc_type=" +
|
].join("|");
|
||||||
doc_type +
|
|
||||||
"&creat_date=" +
|
const poschedule = [preq_item, vper_end].join("|");
|
||||||
creat_date +
|
|
||||||
"&created_by=" +
|
// ===== BUILD QUERY =====
|
||||||
created_by +
|
const params = new URLSearchParams({
|
||||||
"&vendor=" +
|
...headerParams,
|
||||||
vendor +
|
"poitem[]": poitem,
|
||||||
"&purch_org=" +
|
"poschedule[]": poschedule,
|
||||||
purch_org +
|
}).toString();
|
||||||
"&pur_group=" +
|
|
||||||
pur_group +
|
const url = `${baseurlsap}/createPo?${params}`;
|
||||||
"¤cy=" +
|
|
||||||
currency +
|
const resuri = {
|
||||||
"&doc_date=" +
|
method: "POST",
|
||||||
doc_date +
|
url,
|
||||||
"&vper_start=" +
|
headers: {
|
||||||
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",
|
"Content-Type": "application/json",
|
||||||
"x-api-key": apikeysap,
|
"x-api-key": apikeysap,
|
||||||
},
|
},
|
||||||
// form: formjson,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const logData = {
|
const logData = {
|
||||||
@ -790,64 +775,41 @@ exports.createHeaderPOSAP = (req, res) => {
|
|||||||
// console.log(resdata.data.length);
|
// console.log(resdata.data.length);
|
||||||
// poadapter.sendResponse(statusCode,resdata, res);
|
// poadapter.sendResponse(statusCode,resdata, res);
|
||||||
if (resdata.data.length > 0) {
|
if (resdata.data.length > 0) {
|
||||||
const idxpr = resdata.data[0]["idxpr"] ?? 0;
|
const data = resdata?.data?.[0] ?? {};
|
||||||
|
const {
|
||||||
|
idxpr = 0,
|
||||||
|
identifyprojectnumber = "",
|
||||||
|
contractdescription = "",
|
||||||
|
contractperiodfrom = "",
|
||||||
|
contractperiodto = "",
|
||||||
|
vendorname = "",
|
||||||
|
} = data;
|
||||||
|
|
||||||
let identifyprojectnumber = resdata.data[0]["identifyprojectnumber"];
|
// Static / default values
|
||||||
let contractdescription = resdata.data[0]["contractdescription"];
|
const params = {
|
||||||
let contractperiodfrom = resdata.data[0]["contractperiodfrom"];
|
im_ctrnum: identifyprojectnumber,
|
||||||
let contractperiodto = resdata.data[0]["contractperiodto"];
|
im_bukrs: "1603",
|
||||||
let im_ctrnum = identifyprojectnumber;
|
im_werks: "1603",
|
||||||
let im_bukrs = "1603";
|
im_ctrdsc: contractdescription,
|
||||||
let im_werks = "1603";
|
im_ctrtor: vendorname,
|
||||||
let im_ctrdsc = contractdescription;
|
im_contract: identifyprojectnumber,
|
||||||
let im_ctrtor = resdata.data[0]["vendorname"];
|
im_contract2: identifyprojectnumber,
|
||||||
let im_contract = identifyprojectnumber;
|
im_contdesc: contractdescription,
|
||||||
let im_contract2 = identifyprojectnumber;
|
im_spmon0: contractperiodfrom,
|
||||||
let im_contdesc = contractdescription;
|
im_spmon1: contractperiodto,
|
||||||
let im_spmon0 = contractperiodfrom;
|
im_ctrmax: 2,
|
||||||
let im_spmon1 = contractperiodto;
|
im_waers2: "USD",
|
||||||
let im_ctrmax = 2;
|
im_ctrval: "0",
|
||||||
let im_waers2 = "USD";
|
im_ctrval2: "0",
|
||||||
let im_ctrval = "0";
|
im_action: "I",
|
||||||
let im_ctrval2 = "0";
|
};
|
||||||
let im_action = "I";
|
|
||||||
|
|
||||||
const url =
|
// Build URL safely
|
||||||
baseurlsap +
|
const url = `${baseurlsap}/zcpxmm003?${new URLSearchParams(params).toString()}`;
|
||||||
"/zcpxmm003?im_ctrnum=" +
|
const resuri = {
|
||||||
im_ctrnum +
|
method: "POST",
|
||||||
"&im_bukrs=" +
|
url,
|
||||||
im_bukrs +
|
headers: {
|
||||||
"&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",
|
"Content-Type": "application/json",
|
||||||
"x-api-key": apikeysap,
|
"x-api-key": apikeysap,
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user