fixing PO
This commit is contained in:
@ -12,6 +12,21 @@ var fs = require("fs");
|
|||||||
const SAPAdapter = require("../adapter/sapadapter.js");
|
const SAPAdapter = require("../adapter/sapadapter.js");
|
||||||
const sapadapter = new SAPAdapter();
|
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) => {
|
exports.getListVendor = (req, res) => {
|
||||||
try {
|
try {
|
||||||
poadapter.queryVendorList(req, function (err, data) {
|
poadapter.queryVendorList(req, function (err, data) {
|
||||||
@ -133,12 +148,15 @@ exports.createPOSAPold = (req, res) => {
|
|||||||
identifyprojectnumber = "",
|
identifyprojectnumber = "",
|
||||||
} = data;
|
} = data;
|
||||||
|
|
||||||
|
const createdBy = req.nik || req.body.createdby;
|
||||||
|
const creatDate = formatSapDate(req.body.createdate) || podate;
|
||||||
|
|
||||||
// ===== HEADER PARAM =====
|
// ===== HEADER PARAM =====
|
||||||
const headerParams = {
|
const headerParams = {
|
||||||
comp_code: "1603",
|
comp_code: "1603",
|
||||||
doc_type: "POTL",
|
doc_type: "POTL",
|
||||||
creat_date: req.body.createdate,
|
creat_date: creatDate,
|
||||||
created_by: req.body.createdby,
|
created_by: createdBy,
|
||||||
vendor: vendorid,
|
vendor: vendorid,
|
||||||
purch_org: "1603",
|
purch_org: "1603",
|
||||||
pur_group: "TIL",
|
pur_group: "TIL",
|
||||||
@ -156,6 +174,7 @@ exports.createPOSAPold = (req, res) => {
|
|||||||
const net_price = req.body.totalpo;
|
const net_price = req.body.totalpo;
|
||||||
const final_inv = "X";
|
const final_inv = "X";
|
||||||
const gr_basediv = "X";
|
const gr_basediv = "X";
|
||||||
|
const sloc = "TIL1";
|
||||||
|
|
||||||
const poitem = [
|
const poitem = [
|
||||||
preq_item,
|
preq_item,
|
||||||
@ -167,9 +186,10 @@ exports.createPOSAPold = (req, res) => {
|
|||||||
gr_basediv,
|
gr_basediv,
|
||||||
prnumber,
|
prnumber,
|
||||||
preq_item,
|
preq_item,
|
||||||
|
sloc,
|
||||||
].join("|");
|
].join("|");
|
||||||
|
|
||||||
const poschedule = [preq_item, vper_end].join("|");
|
const poschedule = [preq_item, podate].join("|");
|
||||||
|
|
||||||
// ===== BUILD QUERY =====
|
// ===== BUILD QUERY =====
|
||||||
const params = new URLSearchParams({
|
const params = new URLSearchParams({
|
||||||
@ -193,7 +213,7 @@ exports.createPOSAPold = (req, res) => {
|
|||||||
ref_code: prnumber,
|
ref_code: prnumber,
|
||||||
request: JSON.stringify(resuri),
|
request: JSON.stringify(resuri),
|
||||||
request_at: new Date(),
|
request_at: new Date(),
|
||||||
request_by: req.body.createdby,
|
request_by: createdBy,
|
||||||
response: "",
|
response: "",
|
||||||
response_at: "",
|
response_at: "",
|
||||||
url,
|
url,
|
||||||
|
|||||||
@ -9,6 +9,25 @@ const request = require("request");
|
|||||||
|
|
||||||
const SAPAdapter = require("../adapter/sapadapter.js");
|
const SAPAdapter = require("../adapter/sapadapter.js");
|
||||||
const sapadapter = new SAPAdapter();
|
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 = {}) {
|
function buildPipeString(length, mapping = {}) {
|
||||||
const arr = Array(length).fill("");
|
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, {
|
return buildPipeString(80, {
|
||||||
0: prNo,
|
0: prNo,
|
||||||
3: "TIL",
|
3: "TIL",
|
||||||
4: "Putra",
|
4: requesterName || "",
|
||||||
5: shortText,
|
5: shortText,
|
||||||
13: "1603",
|
13: "1603",
|
||||||
14: "TIL1",
|
14: "TIL1",
|
||||||
@ -207,6 +226,8 @@ exports.setUpdateStatusProld = (req, res) => {
|
|||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
} else {
|
} else {
|
||||||
var rsdata = JSON.parse(JSON.stringify(data));
|
var rsdata = JSON.parse(JSON.stringify(data));
|
||||||
|
const creatorNik = req.nik || rsdata.data[0]["iby"];
|
||||||
|
getEmployeeFullname(creatorNik, function (err, requesterName) {
|
||||||
// console.log(rsdata["data"]);
|
// console.log(rsdata["data"]);
|
||||||
let pr_type = "PRTL";
|
let pr_type = "PRTL";
|
||||||
let x_pr_type = "X";
|
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="00010|||120|Putra|testcreatePR|||||||||1603||TrackNo1|ZSRV||1|BH||20130727||20130727|||1000|1||J||||||||1603|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||D|";
|
||||||
let pr_item =
|
let pr_item =
|
||||||
pr_no +
|
pr_no +
|
||||||
"|||TIL|Putra|" +
|
"|||TIL|" +
|
||||||
|
requesterName +
|
||||||
|
"|" +
|
||||||
pr_shorttext +
|
pr_shorttext +
|
||||||
"|||||||||1603|TIL1|TrackNo1|ZSRV||" +
|
"|||||||||1603|TIL1|TrackNo1|ZSRV||" +
|
||||||
pr_qtyitem +
|
pr_qtyitem +
|
||||||
@ -272,7 +295,7 @@ exports.setUpdateStatusProld = (req, res) => {
|
|||||||
ref_code: rsdata.data[0]["justificationnumber"] ?? idxpr,
|
ref_code: rsdata.data[0]["justificationnumber"] ?? idxpr,
|
||||||
request: JSON.stringify(resuri),
|
request: JSON.stringify(resuri),
|
||||||
request_at: new Date(),
|
request_at: new Date(),
|
||||||
request_by: "999999",
|
request_by: creatorNik,
|
||||||
response: "",
|
response: "",
|
||||||
response_at: "",
|
response_at: "",
|
||||||
url:
|
url:
|
||||||
@ -325,6 +348,7 @@ exports.setUpdateStatusProld = (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
//pradapter.sendResponse(statusCode,data, res);
|
//pradapter.sendResponse(statusCode,data, res);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@ -595,6 +619,8 @@ exports.changePRSAPold = (req, res) => {
|
|||||||
pradapter.sendResponse(statusCode, data, res);
|
pradapter.sendResponse(statusCode, data, res);
|
||||||
} else {
|
} else {
|
||||||
var rsdata = JSON.parse(JSON.stringify(data));
|
var rsdata = JSON.parse(JSON.stringify(data));
|
||||||
|
const creatorNik = req.nik || rsdata.data[0]["iby"];
|
||||||
|
getEmployeeFullname(creatorNik, function (err, requesterName) {
|
||||||
// console.log(rsdata["data"]);
|
// console.log(rsdata["data"]);
|
||||||
let pr_no = "00010";
|
let pr_no = "00010";
|
||||||
let pr_qtyacc = "01";
|
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="00010|||120|Putra|testcreatePR|||||||||1603||TrackNo1|ZSRV||1|BH||20130727||20130727|||1000|1||J||||||||1603|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||D|";
|
||||||
let pr_item =
|
let pr_item =
|
||||||
pr_no +
|
pr_no +
|
||||||
"|||120|Putra|" +
|
"|||120|" +
|
||||||
|
requesterName +
|
||||||
|
"|" +
|
||||||
pr_shorttext +
|
pr_shorttext +
|
||||||
"|||||||||1603||TrackNo1|ZSRV||" +
|
"|||||||||1603||TrackNo1|ZSRV||" +
|
||||||
pr_qtyitem +
|
pr_qtyitem +
|
||||||
@ -659,7 +687,7 @@ exports.changePRSAPold = (req, res) => {
|
|||||||
ref_code: pr_number,
|
ref_code: pr_number,
|
||||||
request: JSON.stringify(resuri),
|
request: JSON.stringify(resuri),
|
||||||
request_at: new Date(),
|
request_at: new Date(),
|
||||||
request_by: "999999",
|
request_by: creatorNik,
|
||||||
response: "",
|
response: "",
|
||||||
response_at: "",
|
response_at: "",
|
||||||
url:
|
url:
|
||||||
@ -715,6 +743,7 @@ exports.changePRSAPold = (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
//pradapter.sendResponse(statusCode,data, res);
|
//pradapter.sendResponse(statusCode,data, res);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|||||||
Reference in New Issue
Block a user