diff --git a/lstV2/server/services/logistics/controller/dm/ordersIn/mappings/abbottTruckList.ts b/lstV2/server/services/logistics/controller/dm/ordersIn/mappings/abbottTruckList.ts index 1ac751e..46d77b1 100644 --- a/lstV2/server/services/logistics/controller/dm/ordersIn/mappings/abbottTruckList.ts +++ b/lstV2/server/services/logistics/controller/dm/ordersIn/mappings/abbottTruckList.ts @@ -1,4 +1,5 @@ import { addDays, addHours, isAfter, parse } from "date-fns"; +import { format } from "date-fns-tz"; import XLSX from "xlsx"; import { db } from "../../../../../../../database/dbclient.js"; import { settings } from "../../../../../../../database/schema/settings.js"; @@ -92,7 +93,7 @@ export const abbottOrders = async (data: any, user: any) => { orders: [], }; const oOrders: any = openOrders; - + //console.log(orderData); let correctedOrders: any = orderData .filter( (o: any) => @@ -147,6 +148,7 @@ export const abbottOrders = async (data: any, user: any) => { // Map Excel data to predefinedObject format const orders = filterOrders.map((o: any) => { + //console.log(o.po, " ", o.date, format(o.date, "M/d/yyyy HH:mm")); return { customerId: customerID, invoiceAddressId: invoiceID, @@ -157,7 +159,7 @@ export const abbottOrders = async (data: any, user: any) => { deliveryAddressId: 8, customerArticleNo: o.customerArticlenumber, quantity: o.qty, - deliveryDate: addHours(addDays(o.date, 1), 1), // adding this in so we can over come the constant 1 day behind thing as a work around + deliveryDate: addHours(format(o.date, "M/d/yyyy HH:mm"), 1), //addHours(addDays(o.date, 1), 1), // adding this in so we can over come the constant 1 day behind thing as a work around customerLineItemNo: 1, // this is how it is currently sent over from abbott customerReleaseNo: 1, // same as above }, @@ -165,6 +167,7 @@ export const abbottOrders = async (data: any, user: any) => { }; }); + //console.log(orders); // combine it all together. const updatedPredefinedObject = { ...predefinedObject, diff --git a/lstV2/server/services/logistics/utils/excelDateStuff.ts b/lstV2/server/services/logistics/utils/excelDateStuff.ts index dea7e9e..984cadb 100644 --- a/lstV2/server/services/logistics/utils/excelDateStuff.ts +++ b/lstV2/server/services/logistics/utils/excelDateStuff.ts @@ -1,34 +1,60 @@ import { getJsDateFromExcel } from "excel-date-to-js"; -export const excelDateStuff = (serial: number, time: any = 0) => { - // console.log(serial); - // add 5 hours or the offset to utc +// export const excelDateStuff = (serial: number, time?: any) => { +// // add 5 hours or the offset to utc - // get the local timezone - const localoffset = new Date().getTimezoneOffset() / 60; // then divide by 60 to get the true number; +// // get the local timezone +// const localoffset = new Date().getTimezoneOffset() / 60; // then divide by 60 to get the true number; - if (serial % 1 === 0) { - time = 800; - } +// if (!time) { +// time = 800; +// } - const addHours = serial + localoffset / 24; - //console.log(getJsDateFromExcel(addHours)); - if (typeof serial !== "number" || serial <= 0) { - return "invalid Date"; - } +// const addHours = serial + localoffset / 24; +// //console.log(getJsDateFromExcel(addHours)); +// if (typeof serial !== "number" || serial <= 0) { +// return "invalid Date"; +// } - const date = getJsDateFromExcel(addHours); // base date from Excel serial +// const date = getJsDateFromExcel(addHours); // base date from Excel serial - if (time != 0) { - // convert the time over to hour and min - const hours = Math.floor(time / 100); - const minutes = time % 100; - date.setHours(hours); - date.setMinutes(minutes); - } - //console.log(date.toLocaleString("en-US"), getJsDateFromExcel(addHours)); +// if (time != 0) { +// // convert the time over to hour and min +// const hours = Math.floor(time / 100); +// const minutes = time % 100; +// date.setHours(hours); +// date.setMinutes(minutes); +// } +// //console.log(date.toLocaleString("en-US"), getJsDateFromExcel(addHours)); - //console.log(serial); - //console.log(date.toISOString()); - return date.toISOString(); //.toLocaleString("en-US"); // or .toISOString() if preferred +// //console.log(serial); +// console.log(date.toISOString(), serial, time); +// return date.toISOString(); //.toLocaleString("en-US"); // or .toISOString() if preferred +// }; + +export const excelDateStuff = (serial: number, time?: any) => { + if (typeof serial !== "number" || serial <= 0) { + return "invalid Date"; + } + + // Default time to 8:00 AM if not provided + if (!time) { + time = 800; + } + + // Get base date from Excel serial (this gives you UTC midnight) + const date = getJsDateFromExcel(serial); + + const localOffset = new Date().getTimezoneOffset() / 60; + const hours = Math.floor(time / 100); + const minutes = time % 100; + + // Set the time in UTC + date.setUTCHours(hours + localOffset); + date.setUTCMinutes(minutes); + date.setUTCSeconds(0); + date.setUTCMilliseconds(0); + + //console.log(date.toISOString(), serial, time); + return date.toISOString(); };