fixing PO
This commit is contained in:
@ -12,6 +12,21 @@ var fs = require("fs");
|
||||
const SAPAdapter = require("../adapter/sapadapter.js");
|
||||
const sapadapter = new SAPAdapter();
|
||||
|
||||
function formatSapDate(value) {
|
||||
if (!value) return "";
|
||||
const str = String(value).trim();
|
||||
if (/^\d{8}$/.test(str)) return str;
|
||||
if (/^\d{4}-\d{2}-\d{2}/.test(str)) return str.slice(0, 10).replace(/-/g, "");
|
||||
const d = new Date(str);
|
||||
if (!isNaN(d.getTime())) {
|
||||
const y = d.getFullYear();
|
||||
const m = String(d.getMonth() + 1).padStart(2, "0");
|
||||
const day = String(d.getDate()).padStart(2, "0");
|
||||
return `${y}${m}${day}`;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
exports.getListVendor = (req, res) => {
|
||||
try {
|
||||
poadapter.queryVendorList(req, function (err, data) {
|
||||
@ -133,12 +148,15 @@ exports.createPOSAPold = (req, res) => {
|
||||
identifyprojectnumber = "",
|
||||
} = data;
|
||||
|
||||
const createdBy = req.nik || req.body.createdby;
|
||||
const creatDate = formatSapDate(req.body.createdate) || podate;
|
||||
|
||||
// ===== HEADER PARAM =====
|
||||
const headerParams = {
|
||||
comp_code: "1603",
|
||||
doc_type: "POTL",
|
||||
creat_date: req.body.createdate,
|
||||
created_by: req.body.createdby,
|
||||
creat_date: creatDate,
|
||||
created_by: createdBy,
|
||||
vendor: vendorid,
|
||||
purch_org: "1603",
|
||||
pur_group: "TIL",
|
||||
@ -156,6 +174,7 @@ exports.createPOSAPold = (req, res) => {
|
||||
const net_price = req.body.totalpo;
|
||||
const final_inv = "X";
|
||||
const gr_basediv = "X";
|
||||
const sloc = "TIL1";
|
||||
|
||||
const poitem = [
|
||||
preq_item,
|
||||
@ -167,9 +186,10 @@ exports.createPOSAPold = (req, res) => {
|
||||
gr_basediv,
|
||||
prnumber,
|
||||
preq_item,
|
||||
sloc,
|
||||
].join("|");
|
||||
|
||||
const poschedule = [preq_item, vper_end].join("|");
|
||||
const poschedule = [preq_item, podate].join("|");
|
||||
|
||||
// ===== BUILD QUERY =====
|
||||
const params = new URLSearchParams({
|
||||
@ -193,7 +213,7 @@ exports.createPOSAPold = (req, res) => {
|
||||
ref_code: prnumber,
|
||||
request: JSON.stringify(resuri),
|
||||
request_at: new Date(),
|
||||
request_by: req.body.createdby,
|
||||
request_by: createdBy,
|
||||
response: "",
|
||||
response_at: "",
|
||||
url,
|
||||
|
||||
@ -9,6 +9,25 @@ const request = require("request");
|
||||
|
||||
const SAPAdapter = require("../adapter/sapadapter.js");
|
||||
const sapadapter = new SAPAdapter();
|
||||
const db = require("../config/dbproc.js");
|
||||
|
||||
function getEmployeeFullname(nik, callback) {
|
||||
if (!nik) {
|
||||
callback(null, "");
|
||||
return;
|
||||
}
|
||||
const qry =
|
||||
"select fullname from dbssotcel.tbl_employee where nik='" +
|
||||
nik +
|
||||
"' and isdeleted=0 limit 1";
|
||||
db.query(qry, [], function (err, results) {
|
||||
if (err || !results || results.length === 0) {
|
||||
callback(null, nik);
|
||||
} else {
|
||||
callback(null, results[0].fullname);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function buildPipeString(length, mapping = {}) {
|
||||
const arr = Array(length).fill("");
|
||||
@ -30,11 +49,11 @@ function buildPrAccount({prNo, qtyAcc, prDate, budget, costCenter, profitCenter}
|
||||
});
|
||||
}
|
||||
|
||||
function buildPrItem({prNo, shortText, qty, unit, price, prDate}) {
|
||||
function buildPrItem({prNo, shortText, qty, unit, price, prDate, requesterName}) {
|
||||
return buildPipeString(80, {
|
||||
0: prNo,
|
||||
3: "TIL",
|
||||
4: "Putra",
|
||||
4: requesterName || "",
|
||||
5: shortText,
|
||||
13: "1603",
|
||||
14: "TIL1",
|
||||
@ -207,6 +226,8 @@ exports.setUpdateStatusProld = (req, res) => {
|
||||
pradapter.sendResponse(statusCode, data, res);
|
||||
} else {
|
||||
var rsdata = JSON.parse(JSON.stringify(data));
|
||||
const creatorNik = req.nik || rsdata.data[0]["iby"];
|
||||
getEmployeeFullname(creatorNik, function (err, requesterName) {
|
||||
// console.log(rsdata["data"]);
|
||||
let pr_type = "PRTL";
|
||||
let x_pr_type = "X";
|
||||
@ -237,7 +258,9 @@ exports.setUpdateStatusProld = (req, res) => {
|
||||
// let pr_item="00010|||120|Putra|testcreatePR|||||||||1603||TrackNo1|ZSRV||1|BH||20130727||20130727|||1000|1||J||||||||1603|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||D|";
|
||||
let pr_item =
|
||||
pr_no +
|
||||
"|||TIL|Putra|" +
|
||||
"|||TIL|" +
|
||||
requesterName +
|
||||
"|" +
|
||||
pr_shorttext +
|
||||
"|||||||||1603|TIL1|TrackNo1|ZSRV||" +
|
||||
pr_qtyitem +
|
||||
@ -272,7 +295,7 @@ exports.setUpdateStatusProld = (req, res) => {
|
||||
ref_code: rsdata.data[0]["justificationnumber"] ?? idxpr,
|
||||
request: JSON.stringify(resuri),
|
||||
request_at: new Date(),
|
||||
request_by: "999999",
|
||||
request_by: creatorNik,
|
||||
response: "",
|
||||
response_at: "",
|
||||
url:
|
||||
@ -325,6 +348,7 @@ exports.setUpdateStatusProld = (req, res) => {
|
||||
});
|
||||
|
||||
//pradapter.sendResponse(statusCode,data, res);
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
@ -595,6 +619,8 @@ exports.changePRSAPold = (req, res) => {
|
||||
pradapter.sendResponse(statusCode, data, res);
|
||||
} else {
|
||||
var rsdata = JSON.parse(JSON.stringify(data));
|
||||
const creatorNik = req.nik || rsdata.data[0]["iby"];
|
||||
getEmployeeFullname(creatorNik, function (err, requesterName) {
|
||||
// console.log(rsdata["data"]);
|
||||
let pr_no = "00010";
|
||||
let pr_qtyacc = "01";
|
||||
@ -624,7 +650,9 @@ exports.changePRSAPold = (req, res) => {
|
||||
// let pr_item="00010|||120|Putra|testcreatePR|||||||||1603||TrackNo1|ZSRV||1|BH||20130727||20130727|||1000|1||J||||||||1603|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||D|";
|
||||
let pr_item =
|
||||
pr_no +
|
||||
"|||120|Putra|" +
|
||||
"|||120|" +
|
||||
requesterName +
|
||||
"|" +
|
||||
pr_shorttext +
|
||||
"|||||||||1603||TrackNo1|ZSRV||" +
|
||||
pr_qtyitem +
|
||||
@ -659,7 +687,7 @@ exports.changePRSAPold = (req, res) => {
|
||||
ref_code: pr_number,
|
||||
request: JSON.stringify(resuri),
|
||||
request_at: new Date(),
|
||||
request_by: "999999",
|
||||
request_by: creatorNik,
|
||||
response: "",
|
||||
response_at: "",
|
||||
url:
|
||||
@ -715,6 +743,7 @@ exports.changePRSAPold = (req, res) => {
|
||||
});
|
||||
|
||||
//pradapter.sendResponse(statusCode,data, res);
|
||||
});
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
|
||||
Reference in New Issue
Block a user