upd
This commit is contained in:
@ -12,17 +12,45 @@ var fs = require("fs");
|
||||
const SAPAdapter = require("../adapter/sapadapter.js");
|
||||
const sapadapter = new SAPAdapter();
|
||||
|
||||
function padSapDateParts(year, month, day) {
|
||||
const y = String(year);
|
||||
const m = String(month).padStart(2, "0");
|
||||
const d = String(day).padStart(2, "0");
|
||||
if (!/^\d{4}$/.test(y) || Number(m) < 1 || Number(m) > 12 || Number(d) < 1 || Number(d) > 31) {
|
||||
return "";
|
||||
}
|
||||
return `${y}${m}${d}`;
|
||||
}
|
||||
|
||||
function parseCompactSapDate(str) {
|
||||
const year = str.slice(0, 4);
|
||||
const rest = str.slice(4);
|
||||
if (rest.length === 4) {
|
||||
return padSapDateParts(year, rest.slice(0, 2), rest.slice(2));
|
||||
}
|
||||
if (rest.length === 3) {
|
||||
const twoDigitMonth = padSapDateParts(year, rest.slice(0, 2), rest.slice(2));
|
||||
if (twoDigitMonth) return twoDigitMonth;
|
||||
return padSapDateParts(year, rest.slice(0, 1), rest.slice(1));
|
||||
}
|
||||
if (rest.length === 2) {
|
||||
return padSapDateParts(year, rest.slice(0, 1), rest.slice(1));
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
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, "");
|
||||
if (/^\d{6,7}$/.test(str)) {
|
||||
const compact = parseCompactSapDate(str);
|
||||
if (compact) return compact;
|
||||
}
|
||||
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 padSapDateParts(d.getFullYear(), d.getMonth() + 1, d.getDate());
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user