fix(psi): correcrtions to account for the tiem offset in the psi
This commit is contained in:
@@ -1,10 +1,11 @@
|
|||||||
|
import { addDays, format } from "date-fns";
|
||||||
|
import { formatInTimeZone } from "date-fns-tz";
|
||||||
import { eq } from "drizzle-orm";
|
import { eq } from "drizzle-orm";
|
||||||
import { db } from "../../../../database/dbclient.js";
|
import { db } from "../../../../database/dbclient.js";
|
||||||
import { settings } from "../../../../database/schema/settings.js";
|
import { settings } from "../../../../database/schema/settings.js";
|
||||||
import { tryCatch } from "../../../globalUtils/tryCatch.js";
|
import { tryCatch } from "../../../globalUtils/tryCatch.js";
|
||||||
import { query } from "../../sqlServer/prodSqlServer.js";
|
import { query } from "../../sqlServer/prodSqlServer.js";
|
||||||
import { deliveryByDateRange } from "../../sqlServer/querys/dataMart/deleveryByDateRange.js";
|
import { deliveryByDateRange } from "../../sqlServer/querys/dataMart/deleveryByDateRange.js";
|
||||||
import { addDays, format } from "date-fns";
|
|
||||||
|
|
||||||
export const getDeliveryByDateRange = async (data: any | null) => {
|
export const getDeliveryByDateRange = async (data: any | null) => {
|
||||||
// const { data: plantToken, error: plantError } = await tryCatch(
|
// const { data: plantToken, error: plantError } = await tryCatch(
|
||||||
@@ -32,18 +33,12 @@ export const getDeliveryByDateRange = async (data: any | null) => {
|
|||||||
if (data?.end) {
|
if (data?.end) {
|
||||||
updatedQuery = updatedQuery.replaceAll("[endDate]", data.end[0]);
|
updatedQuery = updatedQuery.replaceAll("[endDate]", data.end[0]);
|
||||||
} else {
|
} else {
|
||||||
const defaultEndDate = format(
|
const defaultEndDate = format(addDays(new Date(Date.now()), 5), "yyyy-M-d");
|
||||||
addDays(new Date(Date.now()), 5),
|
|
||||||
"yyyy-M-d"
|
|
||||||
);
|
|
||||||
updatedQuery = updatedQuery.replaceAll("[endDate]", defaultEndDate);
|
updatedQuery = updatedQuery.replaceAll("[endDate]", defaultEndDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res: any = await query(
|
const res: any = await query(updatedQuery, "Get Delivery by date range");
|
||||||
updatedQuery,
|
|
||||||
"Get Delivery by date range"
|
|
||||||
);
|
|
||||||
deliverys = res.data;
|
deliverys = res.data;
|
||||||
//console.log(res.data);
|
//console.log(res.data);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -55,9 +50,9 @@ export const getDeliveryByDateRange = async (data: any | null) => {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!data) {
|
// if (!data) {
|
||||||
deliverys = deliverys.splice(1000, 0);
|
// deliverys = deliverys.splice(1000, 0);
|
||||||
}
|
// }
|
||||||
// add plant token in
|
// add plant token in
|
||||||
// const pOrders = deliverys.map((item: any) => {
|
// const pOrders = deliverys.map((item: any) => {
|
||||||
// // const dateCon = new Date(item.loadingDate).toLocaleString("en-US", {
|
// // const dateCon = new Date(item.loadingDate).toLocaleString("en-US", {
|
||||||
@@ -80,5 +75,21 @@ export const getDeliveryByDateRange = async (data: any | null) => {
|
|||||||
// deliveryDate: delDate,
|
// deliveryDate: delDate,
|
||||||
// };
|
// };
|
||||||
// });
|
// });
|
||||||
return { success: true, message: "Current open orders", data: deliverys };
|
return {
|
||||||
|
success: true,
|
||||||
|
message: "Current open orders",
|
||||||
|
data: deliverys.map((i: any) => {
|
||||||
|
const orderDate = new Date(i.OrderDate);
|
||||||
|
const delDate = new Date(i.DeliveryDate);
|
||||||
|
const loadDate = new Date(i.LoadingDate);
|
||||||
|
|
||||||
|
return {
|
||||||
|
...i,
|
||||||
|
OrderDate: format(orderDate, "yyyy-MM-dd HH:mm"),
|
||||||
|
DeliveryDate: format(delDate, "yyyy-MM-dd HH:mm"),
|
||||||
|
LoadingDate: format(loadDate, "yyyy-MM-dd HH:mm"),
|
||||||
|
dbDate: i.DeliveryDate,
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
|
import { addDays, format } from "date-fns";
|
||||||
import { query } from "../../sqlServer/prodSqlServer.js";
|
import { query } from "../../sqlServer/prodSqlServer.js";
|
||||||
import { deliveryByDateRangeAndAv } from "../../sqlServer/querys/dataMart/deleveryByDateRange.js";
|
import { deliveryByDateRangeAndAv } from "../../sqlServer/querys/dataMart/deleveryByDateRange.js";
|
||||||
import { addDays, format } from "date-fns";
|
|
||||||
|
|
||||||
export const getDeliveryByDateRangeAndAv = async (
|
export const getDeliveryByDateRangeAndAv = async (
|
||||||
avs: string,
|
avs: string,
|
||||||
startDate: string,
|
startDate: string,
|
||||||
endDate: string
|
endDate: string,
|
||||||
) => {
|
) => {
|
||||||
// const { data: plantToken, error: plantError } = await tryCatch(
|
// const { data: plantToken, error: plantError } = await tryCatch(
|
||||||
// db.select().from(settings).where(eq(settings.name, "plantToken"))
|
// db.select().from(settings).where(eq(settings.name, "plantToken"))
|
||||||
@@ -32,17 +32,14 @@ export const getDeliveryByDateRangeAndAv = async (
|
|||||||
if (endDate) {
|
if (endDate) {
|
||||||
updatedQuery = updatedQuery.replaceAll("[endDate]", endDate);
|
updatedQuery = updatedQuery.replaceAll("[endDate]", endDate);
|
||||||
} else {
|
} else {
|
||||||
const defaultEndDate = format(
|
const defaultEndDate = format(addDays(new Date(Date.now()), 5), "yyyy-M-d");
|
||||||
addDays(new Date(Date.now()), 5),
|
|
||||||
"yyyy-M-d"
|
|
||||||
);
|
|
||||||
updatedQuery = updatedQuery.replaceAll("[endDate]", defaultEndDate);
|
updatedQuery = updatedQuery.replaceAll("[endDate]", defaultEndDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res: any = await query(
|
const res: any = await query(
|
||||||
updatedQuery.replace("[articles]", avs),
|
updatedQuery.replace("[articles]", avs),
|
||||||
"Get Delivery by date range"
|
"Get Delivery by date range",
|
||||||
);
|
);
|
||||||
deliverys = res.data;
|
deliverys = res.data;
|
||||||
//console.log(res.data);
|
//console.log(res.data);
|
||||||
@@ -80,5 +77,21 @@ export const getDeliveryByDateRangeAndAv = async (
|
|||||||
// deliveryDate: delDate,
|
// deliveryDate: delDate,
|
||||||
// };
|
// };
|
||||||
// });
|
// });
|
||||||
return { success: true, message: "Current open orders", data: deliverys };
|
return {
|
||||||
|
success: true,
|
||||||
|
message: "Current open orders",
|
||||||
|
data: deliverys.map((i: any) => {
|
||||||
|
const orderDate = new Date(i.OrderDate);
|
||||||
|
const delDate = new Date(i.DeliveryDate);
|
||||||
|
const loadDate = new Date(i.LoadingDate);
|
||||||
|
|
||||||
|
return {
|
||||||
|
...i,
|
||||||
|
OrderDate: format(orderDate, "yyyy-MM-dd HH:mm"),
|
||||||
|
DeliveryDate: format(delDate, "yyyy-MM-dd HH:mm"),
|
||||||
|
LoadingDate: format(loadDate, "yyyy-MM-dd HH:mm"),
|
||||||
|
dbDate: i.DeliveryDate,
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { format } from "date-fns-tz/format";
|
||||||
import { tryCatch } from "../../../globalUtils/tryCatch.js";
|
import { tryCatch } from "../../../globalUtils/tryCatch.js";
|
||||||
import { createLog } from "../../logger/logger.js";
|
import { createLog } from "../../logger/logger.js";
|
||||||
import { query } from "../../sqlServer/prodSqlServer.js";
|
import { query } from "../../sqlServer/prodSqlServer.js";
|
||||||
@@ -37,6 +38,15 @@ export const getGetPSIForecastData = async (customer: string) => {
|
|||||||
return {
|
return {
|
||||||
success: true,
|
success: true,
|
||||||
message: "PSI forecast Data",
|
message: "PSI forecast Data",
|
||||||
data: articles,
|
data: articles.map((i: any) => {
|
||||||
|
const requirementDate = new Date(i.requirementDate);
|
||||||
|
|
||||||
|
return {
|
||||||
|
...i,
|
||||||
|
requirementDate: format(requirementDate, "yyyy-MM-dd"),
|
||||||
|
|
||||||
|
dbDate: i.requirementDate,
|
||||||
|
};
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { addDays, addHours, isAfter, parse } from "date-fns";
|
import { addDays, addHours, isAfter, parse, subDays } from "date-fns";
|
||||||
import { format } from "date-fns-tz";
|
import { format } from "date-fns-tz";
|
||||||
import XLSX from "xlsx";
|
import XLSX from "xlsx";
|
||||||
import { db } from "../../../../../../../database/dbclient.js";
|
import { db } from "../../../../../../../database/dbclient.js";
|
||||||
@@ -94,6 +94,10 @@ export const abbottOrders = async (data: any, user: any) => {
|
|||||||
};
|
};
|
||||||
const oOrders: any = openOrders;
|
const oOrders: any = openOrders;
|
||||||
//console.log(orderData);
|
//console.log(orderData);
|
||||||
|
|
||||||
|
function trimAll(str: string) {
|
||||||
|
return str.replace(/\s+/g, "");
|
||||||
|
}
|
||||||
let correctedOrders: any = orderData
|
let correctedOrders: any = orderData
|
||||||
.filter(
|
.filter(
|
||||||
(o: any) =>
|
(o: any) =>
|
||||||
@@ -103,9 +107,9 @@ export const abbottOrders = async (data: any, user: any) => {
|
|||||||
.map((o: any) => ({
|
.map((o: any) => ({
|
||||||
date: excelDateStuff(o.date, o.time),
|
date: excelDateStuff(o.date, o.time),
|
||||||
po:
|
po:
|
||||||
o.newton8oz.replace(/\s+/g, "") !== ""
|
trimAll(o.newton8oz) !== ""
|
||||||
? o.newton8oz.replace(/\s+/g, "")
|
? trimAll(o.newton8oz)
|
||||||
: o.newton10oz.replace(/\s+/g, ""),
|
: o.newton10oz.replace(/[\s\u00A0]+/g, ""),
|
||||||
customerArticlenumber:
|
customerArticlenumber:
|
||||||
o.newton8oz != ""
|
o.newton8oz != ""
|
||||||
? a.filter((a: any) => a.av === 118)[0].CustomerArticleNumber
|
? a.filter((a: any) => a.av === 118)[0].CustomerArticleNumber
|
||||||
@@ -116,24 +120,29 @@ export const abbottOrders = async (data: any, user: any) => {
|
|||||||
: a.filter((a: any) => a.av === 120)[0].totalTruckLoad,
|
: a.filter((a: any) => a.av === 120)[0].totalTruckLoad,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
//console.log(correctedOrders);
|
||||||
// now we want to make sure we only correct orders that or after now
|
// now we want to make sure we only correct orders that or after now
|
||||||
correctedOrders = correctedOrders.filter((o: any) => {
|
correctedOrders = correctedOrders.filter((o: any) => {
|
||||||
const parsedDate = parse(o.date, "M/d/yyyy, h:mm:ss a", new Date());
|
const parsedDate = parse(o.date, "M/d/yyyy, h:mm:ss a", new Date());
|
||||||
return isAfter(o.date, new Date().toISOString());
|
return isAfter(new Date(o.date), new Date().toISOString());
|
||||||
});
|
});
|
||||||
|
//console.log(correctedOrders);
|
||||||
// last map to remove orders that have already been started
|
// last map to remove orders that have already been started
|
||||||
// correctedOrders = correctedOrders.filter((oo: any) =>
|
// correctedOrders = correctedOrders.filter((oo: any) =>
|
||||||
// oOrders.some((o: any) => o.CustomerOrderNumber === oo.po)
|
// oOrders.some((o: any) => o.CustomerOrderNumber === oo.po)
|
||||||
// );
|
// );
|
||||||
let postedOrders: any = [];
|
let postedOrders: any = [];
|
||||||
const filterOrders: any = correctedOrders;
|
const filterOrders: any = correctedOrders;
|
||||||
|
|
||||||
|
//console.log(filterOrders);
|
||||||
|
|
||||||
filterOrders.forEach((oo: any) => {
|
filterOrders.forEach((oo: any) => {
|
||||||
const isMatch = openOrders.some(
|
const isMatch = openOrders.some(
|
||||||
(o: any) => String(o.po).trim() === String(oo.po).trim(),
|
(o: any) => String(o.po).trim() === String(oo.po).trim(),
|
||||||
);
|
);
|
||||||
|
//console.log(isMatch, oo.po);
|
||||||
if (!isMatch) {
|
if (!isMatch) {
|
||||||
//console.log(`ok to update: ${oo.po}`);
|
console.log(`ok to update: ${oo.po}`);
|
||||||
|
|
||||||
// oo = {
|
// oo = {
|
||||||
// ...oo,
|
// ...oo,
|
||||||
@@ -141,7 +150,7 @@ export const abbottOrders = async (data: any, user: any) => {
|
|||||||
// };
|
// };
|
||||||
postedOrders.push(oo);
|
postedOrders.push(oo);
|
||||||
} else {
|
} else {
|
||||||
// console.log(`Not valid order to update: ${oo.po}`);
|
//console.log(`Not valid order to update: ${oo.po}`);
|
||||||
//console.log(oo)
|
//console.log(oo)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -159,7 +168,7 @@ export const abbottOrders = async (data: any, user: any) => {
|
|||||||
deliveryAddressId: 8,
|
deliveryAddressId: 8,
|
||||||
customerArticleNo: o.customerArticlenumber,
|
customerArticleNo: o.customerArticlenumber,
|
||||||
quantity: o.qty,
|
quantity: o.qty,
|
||||||
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
|
deliveryDate: format(o.date, "M/d/yyyy HH:mm"), // 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
|
customerLineItemNo: 1, // this is how it is currently sent over from abbott
|
||||||
customerReleaseNo: 1, // same as above
|
customerReleaseNo: 1, // same as above
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -89,9 +89,12 @@ r.[ArticleHumanReadableId]
|
|||||||
,ea.JournalNummer
|
,ea.JournalNummer
|
||||||
,[ReleaseConfirmationState]
|
,[ReleaseConfirmationState]
|
||||||
,[PlanningState]
|
,[PlanningState]
|
||||||
,format(r.[OrderDate], 'yyyy-MM-dd HH:mm') as OrderDate
|
--,format(r.[OrderDate], 'yyyy-MM-dd HH:mm') as OrderDate
|
||||||
,FORMAT(r.[DeliveryDate], 'yyyy-MM-dd HH:mm') as DeliveryDate
|
,r.[OrderDate]
|
||||||
,FORMAT(r.[LoadingDate], 'yyyy-MM-dd HH:mm') as LoadingDate
|
--,FORMAT(r.[DeliveryDate], 'yyyy-MM-dd HH:mm') as DeliveryDate
|
||||||
|
,r.[DeliveryDate]
|
||||||
|
--,FORMAT(r.[LoadingDate], 'yyyy-MM-dd HH:mm') as LoadingDate
|
||||||
|
,r.[LoadingDate]
|
||||||
,[Quantity]
|
,[Quantity]
|
||||||
,[DeliveredQuantity]
|
,[DeliveredQuantity]
|
||||||
,r.[AdditionalInformation1]
|
,r.[AdditionalInformation1]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
export const orderState = `
|
export const orderState = `
|
||||||
SELECT top(10000)
|
SELECT
|
||||||
CustomerOrderNumber
|
CustomerOrderNumber
|
||||||
,r.CustomerReleaseNumber
|
,r.CustomerReleaseNumber
|
||||||
, OrderState
|
, OrderState
|
||||||
@@ -21,6 +21,6 @@ CustomerOrderNumber
|
|||||||
|
|
||||||
where
|
where
|
||||||
--h.CreatedByEdi = 1
|
--h.CreatedByEdi = 1
|
||||||
r.ReleaseState > 0
|
r.ReleaseState >= 1
|
||||||
--and CustomerOrderNumber in ( '2358392')
|
--and CustomerOrderNumber in ( '2358392')
|
||||||
`;
|
`;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
export const forecastData = `
|
export const forecastData = `
|
||||||
SELECT format(cast(RequirementDate as date),'M/d/yyyy') as requirementDate
|
SELECT RequirementDate as requirementDate
|
||||||
,ArticleHumanReadableId
|
,ArticleHumanReadableId
|
||||||
,CustomerArticleNumber
|
,CustomerArticleNumber
|
||||||
,ArticleDescription
|
,ArticleDescription
|
||||||
|
|||||||
Reference in New Issue
Block a user