add field vendor in procjustification

This commit is contained in:
Rizki
2026-03-06 10:20:13 +07:00
parent c6ed4a0400
commit f6670321fc
2 changed files with 1128 additions and 834 deletions

View File

@ -119,89 +119,74 @@ exports.createPOSAPold = (req, res) => {
// console.log(resdata.data.length);
// poadapter.sendResponse(statusCode,resdata, res);
if (resdata.data.length > 0) {
const idxpr = resdata.data[0]["idxpr"] ?? 0;
const data = resdata?.data?.[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 +
"&currency=" +
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": {
const {
idxpr = 0,
vendorid = "",
podate = "",
vper_start = "",
vper_end = "",
podescription = "",
totalqty = 0,
prnumber = "",
identifyprojectnumber = "",
} = data;
// ===== HEADER PARAM =====
const headerParams = {
comp_code: "1603",
doc_type: "POTL",
creat_date: req.body.createdate,
created_by: req.body.createdby,
vendor: vendorid,
purch_org: "1603",
pur_group: "TIL",
currency: "USD",
doc_date: podate,
vper_start,
vper_end,
zzctrnum: identifyprojectnumber?.toString().trim(),
};
// ===== ITEM PARAM =====
const preq_item = "00010";
const quantity = Number(totalqty).toString().replace(",", ".");
const po_unit = "PKT";
const net_price = req.body.totalpo;
const final_inv = "X";
const gr_basediv = "X";
const poitem = [
preq_item,
podescription,
quantity,
po_unit,
net_price,
final_inv,
gr_basediv,
prnumber,
preq_item,
].join("|");
const poschedule = [preq_item, vper_end].join("|");
// ===== BUILD QUERY =====
const params = new URLSearchParams({
...headerParams,
"poitem[]": poitem,
"poschedule[]": poschedule,
}).toString();
const url = `${baseurlsap}/createPo?${params}`;
const resuri = {
method: "POST",
url,
headers: {
"Content-Type": "application/json",
"x-api-key": apikeysap,
},
// form: formjson,
};
const logData = {
@ -790,64 +775,41 @@ exports.createHeaderPOSAP = (req, res) => {
// console.log(resdata.data.length);
// poadapter.sendResponse(statusCode,resdata, res);
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"];
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";
// Static / default values
const params = {
im_ctrnum: identifyprojectnumber,
im_bukrs: "1603",
im_werks: "1603",
im_ctrdsc: contractdescription,
im_ctrtor: vendorname,
im_contract: identifyprojectnumber,
im_contract2: identifyprojectnumber,
im_contdesc: contractdescription,
im_spmon0: contractperiodfrom,
im_spmon1: contractperiodto,
im_ctrmax: 2,
im_waers2: "USD",
im_ctrval: "0",
im_ctrval2: "0",
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": {
// Build URL safely
const url = `${baseurlsap}/zcpxmm003?${new URLSearchParams(params).toString()}`;
const resuri = {
method: "POST",
url,
headers: {
"Content-Type": "application/json",
"x-api-key": apikeysap,
},