Some checks failed
Build and Push LST Docker Image / docker (push) Failing after 40s
the test server wouldnt do the backup so waiting on this one
93 lines
2.1 KiB
TypeScript
93 lines
2.1 KiB
TypeScript
import XLSX from "xlsx";
|
|
import { excelDateStuff } from "../utils/excelToDate.utils.js";
|
|
import { postData } from "./logistics.dm.postData.js";
|
|
|
|
export const abbottForecast = async (sheet: any, user: any) => {
|
|
/*
|
|
This is the forecast but will only be triggered when the actual sheet is passed over from the orders in. this is being done this way due to the truck list being sent over as well.
|
|
*/
|
|
const customerId = 8;
|
|
const posting: any = [];
|
|
|
|
const customHeaders = [
|
|
"date",
|
|
"time",
|
|
"newton8oz",
|
|
"newton10oz",
|
|
"E",
|
|
"F",
|
|
"fDate",
|
|
"f8ozqty",
|
|
"I",
|
|
"J",
|
|
"K",
|
|
"L",
|
|
"M",
|
|
"f10ozqty",
|
|
];
|
|
const forecastData = XLSX.utils.sheet_to_json(sheet, {
|
|
range: 5, // Start at row 5 (index 4)
|
|
header: customHeaders,
|
|
defval: "", // Default value for empty cells
|
|
});
|
|
|
|
for (let i = 1; i < forecastData.length; i++) {
|
|
const row: any = forecastData[i];
|
|
//console.log(row);
|
|
//if (row.fDate == undefined) continue;
|
|
|
|
if (row.fDate !== "") {
|
|
const date = isNaN(row.fDate)
|
|
? new Date(row.fDate)
|
|
: excelDateStuff(row.fDate);
|
|
// for 8oz do
|
|
if (row.f8ozqty > 0) {
|
|
posting.push({
|
|
customerArticleNo: "45300DA",
|
|
quantity: row.f8ozqty,
|
|
requirementDate: date,
|
|
});
|
|
}
|
|
|
|
if (row.f10ozqty > 0) {
|
|
posting.push({
|
|
customerArticleNo: "43836DA",
|
|
quantity: row.f10ozqty,
|
|
requirementDate: date,
|
|
});
|
|
}
|
|
}
|
|
}
|
|
// the predefined data that will never change
|
|
const predefinedObject = {
|
|
receivingPlantId: process.env.PROD_PLANT_TOKEN ?? "test1",
|
|
documentName: `ForecastFromLST-${new Date(Date.now()).toLocaleString(
|
|
"en-US",
|
|
)}`,
|
|
sender: user.username || "lst-system",
|
|
customerId: customerId,
|
|
positions: [],
|
|
};
|
|
|
|
// add the new forecast to the predefined data
|
|
const updatedPredefinedObject = {
|
|
...predefinedObject,
|
|
positions: [...predefinedObject.positions, ...posting],
|
|
};
|
|
|
|
const forecast: any = await postData(
|
|
{
|
|
type: "forecast",
|
|
endpoint: "/public/v1.0/DemandManagement/DELFOR",
|
|
data: updatedPredefinedObject as any,
|
|
},
|
|
user,
|
|
);
|
|
|
|
return {
|
|
success: forecast.success,
|
|
message: forecast.message,
|
|
data: forecast.data,
|
|
};
|
|
};
|