This commit is contained in:
Iki
2026-06-16 14:50:00 +09:00
parent dac2ac881e
commit 270a157627

View File

@ -1419,81 +1419,108 @@ class PoAdapter extends Adapter {
var apires = this.getApiResultDefined(); var apires = this.getApiResultDefined();
var idxpo = req.body.idxpo; var idxpo = req.body.idxpo;
var idxpoboq = req.body.idxpoboq; var idxpoboq = req.body.idxpoboq;
var nik = req.body.nik; var nik = req.nik || req.body.nik || "";
var status = req.body.status;
var statusdescription = req.body.statusdescription;
const poNumber = String(posapnumber || "").trim(); const poNumber = String(posapnumber || "").trim();
let setvalues = ""; const finalStatus = 0;
const finalStatusDescription = "Submitted";
const safeSapMessage = String(sapmessage || "").replace(/'/g, "''");
const safePoNumber = poNumber.replace(/'/g, "''");
if (poNumber && poNumber !== "000") { if (!idxpo || !poNumber || poNumber === "000") {
setvalues = apires.meta.code = 500;
"p.ponumber='" + apires.meta.message = "Invalid PO header or SAP PO number";
poNumber + callback("err", apires);
"',p.status='" + return;
status +
"',p.statusdescription='" +
statusdescription +
"',po.ponumber='" +
poNumber +
"',po.status='" +
status +
"',po.statusdescription='" +
statusdescription +
"',";
} }
var qry =
"update tbl_po p, tbl_poboq po set " + const boqIds = String(idxpoboq || "")
setvalues + .split(",")
"p.sapmessages='" + .map((id) => id.trim())
sapmessage + .filter((id) => id && id !== "0");
"',p.uby='" +
const qryPo =
"update tbl_po set ponumber='" +
safePoNumber +
"',status='" +
finalStatus +
"',statusdescription='" +
finalStatusDescription +
"',sapmessages='" +
safeSapMessage +
"',uby='" +
nik + nik +
"',p.udt=now() "; "',udt=now() where _idx='" +
qry =
qry +
"where (p._idx=po.idxheader and p._idx='" +
idxpo + idxpo +
"' and po._idx in (" + "' and isdeleted=0";
idxpoboq +
")) and p.isdeleted=0 and po.isdeleted=0";
// var qry = "update tbl_po set "+setvalues+"sapmessages='"+sapmessage+"',uby='"+nik+"',udt=now() "; db.query(qryPo, [], function (err, result) {
// qry = qry +"where (_idx=idxheader and _idx='"+idxpo+"' and p_idx in ("+idxpoboq+")) and p.isdeleted=0 and po.isdeleted=0"; if (err) {
apires.meta.message = err.toString();
apires.meta.code = 500;
callback("err", apires);
return;
}
// console.log(qry); if (!result || result.affectedRows === 0) {
db.query(qry, [], function (err, result, fields) { apires.meta.code = 500;
if (err) { apires.meta.message = "PO header not found for update";
apires.meta["message"] = err.toString();
apires.meta["code"] = 500;
callback("err", apires); callback("err", apires);
} else { return;
qry = "select idxpoboq,ponumber from vw_poboq where idxpoboq in(" + idxpoboq + ")"; }
db.query(qry, [], function (err, result1, fields) {
if (err) { let qryBoq =
apires.meta["message"] = err.toString(); "update tbl_poboq set ponumber='" +
apires.meta["code"] = 500; safePoNumber +
"',status='" +
finalStatus +
"',statusdescription='" +
finalStatusDescription +
"',uby='" +
nik +
"',udt=now() where idxheader='" +
idxpo +
"' and isdeleted=0";
if (boqIds.length > 0) {
qryBoq += " and _idx in (" + boqIds.join(",") + ")";
}
db.query(qryBoq, [], function (errBoq) {
if (errBoq) {
apires.meta.message = errBoq.toString();
apires.meta.code = 500;
callback("err", apires); callback("err", apires);
} else { return;
}
let qrySelect =
boqIds.length > 0
? "select idxpoboq,ponumber from vw_poboq where idxpoboq in(" +
boqIds.join(",") +
")"
: "select _idx as idxpoboq, ponumber from tbl_poboq where idxheader='" +
idxpo +
"' and isdeleted=0";
db.query(qrySelect, [], function (errSelect, result1) {
if (errSelect) {
apires.meta.message = errSelect.toString();
apires.meta.code = 500;
callback("err", apires);
return;
}
apires.success = true; apires.success = true;
apires.data = JSON.parse(JSON.stringify(result1)); apires.data = JSON.parse(JSON.stringify(result1));
if (poNumber && poNumber !== "000") {
if (apires.data.length === 0) { if (apires.data.length === 0) {
apires.data = String(idxpoboq) apires.data = [{ idxpoboq: boqIds[0] || idxpo, ponumber: poNumber }];
.split(",")
.map((id) => ({
idxpoboq: Number(id) || id,
ponumber: poNumber,
}));
} else { } else {
apires.data.forEach((row) => { apires.data.forEach((row) => {
if (!row.ponumber) row.ponumber = poNumber; row.ponumber = poNumber;
}); });
} }
}
callback(null, apires); callback(null, apires);
}
}); });
} });
}); });
} catch (err) { } catch (err) {
apires.meta.code = 500; apires.meta.code = 500;