feat(eom): added in hostorical data and deletion for data over 45 days
This commit is contained in:
101
server/services/eom/utils/historicalInv.ts
Normal file
101
server/services/eom/utils/historicalInv.ts
Normal file
@@ -0,0 +1,101 @@
|
||||
import { sql } from "drizzle-orm";
|
||||
import { db } from "../../../../database/dbclient.js";
|
||||
import { invHistoricalData } from "../../../../database/schema/historicalINV.js";
|
||||
import { tryCatch } from "../../../globalUtils/tryCatch.js";
|
||||
import { createLog } from "../../logger/logger.js";
|
||||
import { query } from "../../sqlServer/prodSqlServer.js";
|
||||
import { totalInvNoRn } from "../../sqlServer/querys/dataMart/totalINV.js";
|
||||
import { format } from "date-fns-tz";
|
||||
import { serverSettings } from "../../server/controller/settings/getSettings.js";
|
||||
import { deleteHistory } from "./removeHistorical.js";
|
||||
|
||||
export const historicalInvIMmport = async () => {
|
||||
const plantToken = serverSettings.filter((n) => n.name === "plantToken");
|
||||
const { data, error } = (await tryCatch(
|
||||
db.select().from(invHistoricalData)
|
||||
)) as any;
|
||||
|
||||
if (error) {
|
||||
createLog(
|
||||
"error",
|
||||
"eom",
|
||||
"eom",
|
||||
`There was an error getting the historical data`
|
||||
);
|
||||
}
|
||||
// check if we have data already for today this way we dont duplicate anything.
|
||||
const today = new Date();
|
||||
today.setDate(today.getDate() - 1);
|
||||
|
||||
const dateCheck = data?.filter(
|
||||
(i: any) => i.histDate === format(today, "yyyy-MM-dd")
|
||||
);
|
||||
|
||||
if (dateCheck.length === 0) {
|
||||
// get the historical data from the sql
|
||||
const { data: inv, error: invError } = (await tryCatch(
|
||||
query(totalInvNoRn, "eom historical data")
|
||||
)) as any;
|
||||
|
||||
if (invError) {
|
||||
createLog(
|
||||
"error",
|
||||
"eom",
|
||||
"eom",
|
||||
`There was an error getting the sql data`
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
if (inv.data.length === 0) {
|
||||
createLog("error", "eom", "eom", inv.message);
|
||||
return;
|
||||
}
|
||||
|
||||
const importInv = inv.data ? inv.data : [];
|
||||
const eomImportData = importInv.map((i: any) => {
|
||||
return {
|
||||
histDate: sql`(NOW() - INTERVAL '1 day')::date`,
|
||||
plantToken: plantToken[0].value,
|
||||
article: i.av,
|
||||
articleDescription: i.Alias,
|
||||
materialType: "",
|
||||
total_QTY: i.Total_PalletQTY,
|
||||
avaliable_QTY: i.Avaliable_PalletQTY,
|
||||
coa_QTY: i.COA_QTY,
|
||||
held_QTY: i.Held_QTY,
|
||||
consignment: i.Consigment,
|
||||
lot_Number: i.lot,
|
||||
};
|
||||
});
|
||||
|
||||
const { data: dataImport, error: errorImport } = await tryCatch(
|
||||
db.insert(invHistoricalData).values(eomImportData)
|
||||
);
|
||||
|
||||
if (errorImport) {
|
||||
createLog(
|
||||
"error",
|
||||
"eom",
|
||||
"eom",
|
||||
`There was an error importing all the inventory data.`
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
if (dataImport) {
|
||||
createLog(
|
||||
"info",
|
||||
"eom",
|
||||
"eom",
|
||||
`All data was imported succefully.`
|
||||
);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
createLog("info", "eom", "eom", `Yesterdays Data already in..`);
|
||||
}
|
||||
|
||||
// do the check to delete old data
|
||||
deleteHistory();
|
||||
};
|
||||
Reference in New Issue
Block a user