Compare commits
2 Commits
247010d48f
...
ca866bf8c6
| Author | SHA1 | Date | |
|---|---|---|---|
| ca866bf8c6 | |||
| 9d793d2205 |
@@ -76,36 +76,65 @@ const missingHistoricalData = async (date: string) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function parseFlexibleDate(date: string): Date {
|
||||||
|
const parts = date.replace(/[-.]/g, "/").split("/");
|
||||||
|
if (parts.length !== 3) throw new Error("Invalid date format");
|
||||||
|
|
||||||
|
let year: number, month: number, day: number;
|
||||||
|
|
||||||
|
// find which index looks like a year
|
||||||
|
if (parts[0].length === 4) {
|
||||||
|
// yyyy/mm/dd
|
||||||
|
year = +parts[0];
|
||||||
|
month = +parts[1];
|
||||||
|
day = +parts[2];
|
||||||
|
} else if (parts[2].length === 4) {
|
||||||
|
// mm/dd/yyyy
|
||||||
|
year = +parts[2];
|
||||||
|
month = +parts[0];
|
||||||
|
day = +parts[1];
|
||||||
|
} else {
|
||||||
|
throw new Error("Cannot determine year position");
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Date(year, month - 1, day);
|
||||||
|
}
|
||||||
|
|
||||||
export const historicalInvByDate = async (
|
export const historicalInvByDate = async (
|
||||||
date: string,
|
date: string,
|
||||||
includePlantToken: boolean = false,
|
includePlantToken: boolean = false,
|
||||||
) => {
|
) => {
|
||||||
console.log(date);
|
console.log(date);
|
||||||
// date format should always be yyyy-MM-dd or yyyy-MM-dd
|
// date format should always be yyyy-MM-dd or yyyy-MM-dd
|
||||||
let splitDate: string[];
|
// let splitDate: string[];
|
||||||
if (date.includes("/")) {
|
// if (date.includes("/")) {
|
||||||
splitDate = date.split("/");
|
// splitDate = date.split("/");
|
||||||
} else if (date.includes("-")) {
|
// } else if (date.includes("-")) {
|
||||||
splitDate = date.split("-");
|
// splitDate = date.split("-");
|
||||||
} else {
|
// } else {
|
||||||
return {
|
// return {
|
||||||
success: false,
|
// success: false,
|
||||||
message: "An invalid date was passed over",
|
// message: "An invalid date was passed over",
|
||||||
data: [],
|
// data: [],
|
||||||
};
|
// };
|
||||||
}
|
// }
|
||||||
|
|
||||||
const year = parseInt(splitDate[0], 10);
|
// const year = parseInt(splitDate[0], 10);
|
||||||
const month = parseInt(splitDate[1], 10) - 1; // zero-based months
|
// const month = parseInt(splitDate[1], 10) - 1; // zero-based months
|
||||||
const day = parseInt(splitDate[2], 10);
|
// const day = parseInt(splitDate[2], 10);
|
||||||
const histDate = new Date(year, month, day);
|
//const histDate = new Date(year, month, day);
|
||||||
console.log(histDate);
|
console.log(parseFlexibleDate(date));
|
||||||
console.log(format(histDate, "yyyy-MM-dd"));
|
console.log(format(parseFlexibleDate(date), "yyyy-MM-dd"));
|
||||||
const { data, error } = (await tryCatch(
|
const { data, error } = (await tryCatch(
|
||||||
db
|
db
|
||||||
.select()
|
.select()
|
||||||
.from(invHistoricalData)
|
.from(invHistoricalData)
|
||||||
.where(eq(invHistoricalData.histDate, format(histDate, "yyyy-MM-dd"))),
|
.where(
|
||||||
|
eq(
|
||||||
|
invHistoricalData.histDate,
|
||||||
|
format(parseFlexibleDate(date), "yyyy-MM-dd"),
|
||||||
|
),
|
||||||
|
),
|
||||||
)) as any;
|
)) as any;
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
|
|||||||
@@ -124,6 +124,7 @@ V_Artikel.ProdArtikelBez as ProductFamily
|
|||||||
LTRIM(REPLACE(pur.UOM,'UOM:','')),
|
LTRIM(REPLACE(pur.UOM,'UOM:','')),
|
||||||
CHARINDEX(' ', LTRIM(REPLACE(REPLACE(pur.UOM,'UOM:',''), CHAR(13)+CHAR(10), ' ')) + ' ') - 1
|
CHARINDEX(' ', LTRIM(REPLACE(REPLACE(pur.UOM,'UOM:',''), CHAR(13)+CHAR(10), ' ')) + ' ') - 1
|
||||||
) end AS UOM
|
) end AS UOM
|
||||||
|
|
||||||
--,*
|
--,*
|
||||||
FROM dbo.V_Artikel (nolock)
|
FROM dbo.V_Artikel (nolock)
|
||||||
|
|
||||||
@@ -166,20 +167,33 @@ left join
|
|||||||
,GueltigabDatum as validDate
|
,GueltigabDatum as validDate
|
||||||
,EKPreis as price
|
,EKPreis as price
|
||||||
,LiefArtNr as supplierNr
|
,LiefArtNr as supplierNr
|
||||||
,CASE
|
--,CASE
|
||||||
WHEN Bemerkung IS NOT NULL AND Bemerkung LIKE '%UOM:%'
|
-- WHEN Bemerkung IS NOT NULL AND Bemerkung LIKE '%UOM:%'
|
||||||
THEN
|
-- THEN
|
||||||
-- incase there is something funny going on in the remark well jsut check for new lines and what not
|
-- -- incase there is something funny going on in the remark well jsut check for new lines and what not
|
||||||
LEFT(
|
-- LEFT(
|
||||||
REPLACE(REPLACE(Bemerkung, CHAR(13)+CHAR(10), ' '), CHAR(10), ' '),
|
-- REPLACE(REPLACE(Bemerkung, CHAR(13)+CHAR(10), ' '), CHAR(10), ' '),
|
||||||
CASE
|
-- CASE
|
||||||
WHEN CHARINDEX(' ', REPLACE(REPLACE(Bemerkung, CHAR(13)+CHAR(10), ' '), CHAR(10), ' ')) > 0
|
-- WHEN CHARINDEX(' ', REPLACE(REPLACE(Bemerkung, CHAR(13)+CHAR(10), ' '), CHAR(10), ' ')) > 0
|
||||||
THEN CHARINDEX(' ', REPLACE(REPLACE(Bemerkung, CHAR(13)+CHAR(10), ' '), CHAR(10), ' ')) - 1
|
-- THEN CHARINDEX(' ', REPLACE(REPLACE(Bemerkung, CHAR(13)+CHAR(10), ' '), CHAR(10), ' ')) - 1
|
||||||
ELSE LEN(Bemerkung)
|
-- ELSE LEN(Bemerkung)
|
||||||
END
|
-- END
|
||||||
|
-- )
|
||||||
|
-- ELSE 'UOM:1'
|
||||||
|
-- END AS UOM
|
||||||
|
,CASE
|
||||||
|
WHEN Bemerkung IS NOT NULL AND Bemerkung LIKE '%UOM:%'
|
||||||
|
THEN
|
||||||
|
LTRIM(
|
||||||
|
SUBSTRING(
|
||||||
|
Bemerkung,
|
||||||
|
CHARINDEX('UOM:', UPPER(Bemerkung)) + LEN('UOM:'),
|
||||||
|
LEN(Bemerkung)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
ELSE 'UOM:1'
|
ELSE
|
||||||
END AS UOM
|
'UOM:1'
|
||||||
|
END AS UOM
|
||||||
,Bemerkung
|
,Bemerkung
|
||||||
--,*
|
--,*
|
||||||
from dbo.T_HistoryEK (nolock)
|
from dbo.T_HistoryEK (nolock)
|
||||||
|
|||||||
Reference in New Issue
Block a user