feat(lstv2 move): moved lstv2 into this app to keep them combined and easier to maintain
This commit is contained in:
139
lstV2/server/services/eom/controller/addHistorical.ts
Normal file
139
lstV2/server/services/eom/controller/addHistorical.ts
Normal file
@@ -0,0 +1,139 @@
|
||||
// import cron from "node-cron";
|
||||
// import {runQuery, prisma, totalInvNoRn, activeArticle, getShiftTime, historicalInv} from "database";
|
||||
// import {createLog} from "logging";
|
||||
// import {deleteHistory} from "./deleteHistory.js";
|
||||
|
||||
// export const historyInv = async (date) => {
|
||||
// //console.log(date);
|
||||
// if (!date) {
|
||||
// return `Missing Data`;
|
||||
// }
|
||||
// // date should be sent over as a string IE: 2024-01-01
|
||||
// let inv = [];
|
||||
// try {
|
||||
// inv = await prisma.historyInventory.findMany({where: {histDate: date}});
|
||||
// console.log(inv.length);
|
||||
// // if the date returns nothing we need to pull the historical data
|
||||
// if (inv.length === 0) {
|
||||
// const result = await prisma.settings.findFirst({where: {name: "plantToken"}});
|
||||
// try {
|
||||
// const plantUpdate = historicalInv.replaceAll("test1", result.value);
|
||||
// const queryDate = plantUpdate.replaceAll("[date]", date);
|
||||
// inv = await runQuery(queryDate, "Get histical inv");
|
||||
|
||||
// return inv;
|
||||
// } catch (error) {
|
||||
// createLog("general/eom", "error", "There was an error getting the historical inv.");
|
||||
// return error;
|
||||
// }
|
||||
// } else {
|
||||
// return inv;
|
||||
// }
|
||||
// //return inv;
|
||||
// } catch (error) {
|
||||
// console.log(error);
|
||||
// return error;
|
||||
// }
|
||||
// };
|
||||
|
||||
// // start the cron job for getting the hostrical inv based on the plants shift time
|
||||
// export const startCronHist = () => {
|
||||
// let shiftTime = ["06", "00", "00"];
|
||||
// const startProcess = async () => {
|
||||
// let inv = [];
|
||||
// let articles = [];
|
||||
// let plantToken = "test1";
|
||||
// const date = new Date();
|
||||
// const dateString = date.toISOString().split("T")[0];
|
||||
// date.setDate(date.getDate() - 30);
|
||||
// const oldDate = date.toISOString().split("T")[0];
|
||||
|
||||
// // checking if even need to run this
|
||||
// // before adding more make sure we dont already have data
|
||||
// const checkInv = await prisma.historyInventory.findFirst({where: {histDate: dateString}});
|
||||
// if (checkInv) {
|
||||
// createLog(
|
||||
// "general/eom",
|
||||
// "warn",
|
||||
// `There seems to already be inventory added for ${dateString}, no new data will be added`
|
||||
// );
|
||||
// return;
|
||||
// }
|
||||
// // get plant token
|
||||
// try {
|
||||
// const result = await prisma.settings.findFirst({where: {name: "plantToken"}});
|
||||
// plantToken = result.value;
|
||||
// } catch (error) {
|
||||
// createLog("general/eom", "error", "failed to get planttoken");
|
||||
// }
|
||||
// //get shift time
|
||||
// try {
|
||||
// const result = await runQuery(getShiftTime.replaceAll("test1", plantToken), "GettingShift time");
|
||||
// shiftTime = result[0].shiftStartTime.split(":");
|
||||
// } catch (error) {
|
||||
// createLog("general/eom", "error", `Error running getShift Query: ${error}`);
|
||||
// }
|
||||
|
||||
// // get inventory
|
||||
// try {
|
||||
// const result = await runQuery(totalInvNoRn.replaceAll("test1", plantToken), "getting inventory");
|
||||
// inv = result;
|
||||
// } catch (error) {
|
||||
// createLog("general/eom", "error", `Error running get inventory Query: ${error}`);
|
||||
// }
|
||||
|
||||
// // get active articles
|
||||
// try {
|
||||
// const result = await runQuery(activeArticle.replaceAll("test1", plantToken), "Get active articles");
|
||||
// articles = result;
|
||||
// } catch (error) {
|
||||
// createLog("general/eom", "error", `Error running get article: ${error}`);
|
||||
// }
|
||||
|
||||
// //add the inventory to the historical table
|
||||
// try {
|
||||
// let hist = Object.entries(inv).map(([key, value]) => {
|
||||
// // remove the values we dont want in the historical view
|
||||
// const {total_Pallets, avalible_Pallets, coa_Pallets, held_Pallets, ...histData} = value;
|
||||
|
||||
// // get av tyep
|
||||
// const avType = articles.filter((a) => (a.IdArtikelvarianten = inv[key].av))[0].TypeOfMaterial;
|
||||
// // add in the new fields
|
||||
// const hist = {
|
||||
// ...histData,
|
||||
// histDate: dateString, //new Date(Date.now()).toISOString().split("T")[0],
|
||||
// avType,
|
||||
// };
|
||||
// return hist;
|
||||
// });
|
||||
|
||||
// try {
|
||||
// const addHistData = await prisma.historyInventory.createMany({data: hist});
|
||||
// createLog(
|
||||
// "general/eom",
|
||||
// "info",
|
||||
// `${addHistData.count} were just added to the historical inventory for date ${dateString}`
|
||||
// );
|
||||
// } catch (error) {
|
||||
// createLog("general/eom", "error", `Adding new historical inventory error: ${error}`);
|
||||
// }
|
||||
|
||||
// // delete the older inventory
|
||||
// deleteHistory(oldDate);
|
||||
// } catch (error) {
|
||||
// createLog("general/eom", "error", `Adding new historical inventory error: ${error}`);
|
||||
// }
|
||||
// };
|
||||
|
||||
// // actaully run the process once after restaart just to make sure we have inventory
|
||||
// startProcess();
|
||||
|
||||
// // setup the cron stuff
|
||||
// const startHour = shiftTime[0];
|
||||
// const startMin = shiftTime[1];
|
||||
// createLog("general/eom", "info", `Historical Data will run at ${shiftTime[0]}:${shiftTime[1]} daily`);
|
||||
// cron.schedule(`${startMin} ${startHour} * * *`, () => {
|
||||
// createLog("general/eom", "info", "Running historical invnetory.");
|
||||
// startProcess();
|
||||
// });
|
||||
// };
|
||||
@@ -0,0 +1,32 @@
|
||||
import { eq } from "drizzle-orm";
|
||||
import { db } from "../../../../database/dbclient.js";
|
||||
import { invHistoricalData } from "../../../../database/schema/historicalINV.js";
|
||||
import { tryCatch } from "../../../globalUtils/tryCatch.js";
|
||||
import { format } from "date-fns";
|
||||
|
||||
export const historicalInvByDate = async (date: string) => {
|
||||
const histDate = new Date(date);
|
||||
|
||||
const { data, error } = (await tryCatch(
|
||||
db
|
||||
.select()
|
||||
.from(invHistoricalData)
|
||||
.where(
|
||||
eq(invHistoricalData.histDate, format(histDate, "yyyy-MM-dd"))
|
||||
)
|
||||
)) as any;
|
||||
|
||||
if (error) {
|
||||
return {
|
||||
success: false,
|
||||
message: "There was an error with getting the inventory",
|
||||
data: error,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: `Historical inventory for ${date}`,
|
||||
data: data,
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,24 @@
|
||||
import { tryCatch } from "../../../globalUtils/tryCatch.js";
|
||||
import { format } from "date-fns";
|
||||
import { query } from "../../sqlServer/prodSqlServer.js";
|
||||
import { lastPurchasePrice } from "../../sqlServer/querys/eom/lstPurchasePrice.js";
|
||||
|
||||
export const lastPurchase = async () => {
|
||||
const { data, error } = (await tryCatch(
|
||||
query(lastPurchasePrice, "Last purchase price")
|
||||
)) as any;
|
||||
|
||||
if (error) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Error getting the last purchase price",
|
||||
data: error,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: `Last purchase price for all av in the last 5 years`,
|
||||
data: data.data,
|
||||
};
|
||||
};
|
||||
23
lstV2/server/services/eom/controller/getLastestSalesPrice.ts
Normal file
23
lstV2/server/services/eom/controller/getLastestSalesPrice.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { tryCatch } from "../../../globalUtils/tryCatch.js";
|
||||
import { query } from "../../sqlServer/prodSqlServer.js";
|
||||
import { lastSalesPriceCheck } from "../../sqlServer/querys/eom/lastSalesprice.js";
|
||||
|
||||
export const lastSales = async (date: string) => {
|
||||
const { data, error } = (await tryCatch(
|
||||
query(lastSalesPriceCheck.replace("[date]", date), "Last sales price")
|
||||
)) as any;
|
||||
|
||||
if (error) {
|
||||
return {
|
||||
success: false,
|
||||
message: "Error getting the last sales price",
|
||||
data: error,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: `Last sales price for all av in the last 5 years`,
|
||||
data: data.data,
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user