From dc2d3718fac74bb929a6d8ea0639134534cd64c5 Mon Sep 17 00:00:00 2001 From: Blake Matthes Date: Thu, 11 Dec 2025 14:41:22 -0600 Subject: [PATCH] fix(dm): energizer orders missing remark --- .../dm/ordersIn/mappings/energizerOrdersIn.ts | 278 +++++++++--------- 1 file changed, 139 insertions(+), 139 deletions(-) diff --git a/lstV2/server/services/logistics/controller/dm/ordersIn/mappings/energizerOrdersIn.ts b/lstV2/server/services/logistics/controller/dm/ordersIn/mappings/energizerOrdersIn.ts index c6a89b4..d03f437 100644 --- a/lstV2/server/services/logistics/controller/dm/ordersIn/mappings/energizerOrdersIn.ts +++ b/lstV2/server/services/logistics/controller/dm/ordersIn/mappings/energizerOrdersIn.ts @@ -1,172 +1,172 @@ import XLSX from "xlsx"; -import { tryCatch } from "../../../../../../globalUtils/tryCatch.js"; import { db } from "../../../../../../../database/dbclient.js"; import { settings } from "../../../../../../../database/schema/settings.js"; +import { tryCatch } from "../../../../../../globalUtils/tryCatch.js"; import { query } from "../../../../../sqlServer/prodSqlServer.js"; +import { invoiceAddress } from "../../../../../sqlServer/querys/dm/invoiceAddress.js"; import { orderState } from "../../../../../sqlServer/querys/dm/orderState.js"; import { excelDateStuff } from "../../../../utils/excelDateStuff.js"; -import { invoiceAddress } from "../../../../../sqlServer/querys/dm/invoiceAddress.js"; import { postOrders } from "../postOrders.js"; export const energizerOrders = async (data: any, user: any) => { - /** - * Standard orders meaning that we get the standard file exported and fill it out and uplaod to lst. - */ + /** + * Standard orders meaning that we get the standard file exported and fill it out and uplaod to lst. + */ - const { data: s, error: e } = await tryCatch(db.select().from(settings)); + const { data: s, error: e } = await tryCatch(db.select().from(settings)); - if (e) { - return { - sucess: false, - message: `Error getting settings`, - data: e, - }; - } + if (e) { + return { + sucess: false, + message: `Error getting settings`, + data: e, + }; + } - // order state - const { data: o, error: oe } = await tryCatch( - query(orderState, "Gets the next 500 orders that have not been started") - ); + // order state + const { data: o, error: oe } = await tryCatch( + query(orderState, "Gets the next 500 orders that have not been started"), + ); - const openOrders: any = o?.data; + const openOrders: any = o?.data; - if (oe) { - return { - sucess: false, - message: `Error getting article data`, - data: oe, - }; - } + if (oe) { + return { + sucess: false, + message: `Error getting article data`, + data: oe, + }; + } - // order state - const { data: invoice, error: ie } = await tryCatch( - query(invoiceAddress, "Gets invoices addresses") - ); - const i: any = invoice?.data; + // order state + const { data: invoice, error: ie } = await tryCatch( + query(invoiceAddress, "Gets invoices addresses"), + ); + const i: any = invoice?.data; - if (ie) { - return { - sucess: false, - message: `Error getting invoice address data`, - data: ie, - }; - } - const plantToken = s.filter((s) => s.name === "plantToken"); + if (ie) { + return { + sucess: false, + message: `Error getting invoice address data`, + data: ie, + }; + } + const plantToken = s.filter((s) => s.name === "plantToken"); - const arrayBuffer = await data.arrayBuffer(); - const buffer = Buffer.from(arrayBuffer); + const arrayBuffer = await data.arrayBuffer(); + const buffer = Buffer.from(arrayBuffer); - const workbook = XLSX.read(buffer, { type: "buffer" }); + const workbook = XLSX.read(buffer, { type: "buffer" }); - const sheetName = workbook.SheetNames[0]; - const sheet = workbook.Sheets[sheetName]; + const sheetName = workbook.SheetNames[0]; + const sheet = workbook.Sheets[sheetName]; - // define custom headers - const headers = [ - "ITEM", - "PO", - "ReleaseNo", - "QTY", - "DELDATE", - "COMMENTS", - "What changed", - "CUSTOMERID", - "Remark", - ]; - const orderData = XLSX.utils.sheet_to_json(sheet, { - defval: "", - header: headers, - range: 1, - }); + // define custom headers + const headers = [ + "ITEM", + "PO", + "ReleaseNo", + "QTY", + "DELDATE", + "COMMENTS", + "What changed", + "CUSTOMERID", + "Remark", + ]; + const orderData = XLSX.utils.sheet_to_json(sheet, { + defval: "", + header: headers, + range: 1, + }); - // the base of the import - const predefinedObject = { - receivingPlantId: plantToken[0].value, - documentName: `OrdersFromLST-${new Date(Date.now()).toLocaleString( - "en-US" - )}`, - sender: user.username || "lst-system", - externalRefNo: `OrdersFromLST-${new Date(Date.now()).toLocaleString( - "en-US" - )}`, - orders: [], - }; + // the base of the import + const predefinedObject = { + receivingPlantId: plantToken[0].value, + documentName: `OrdersFromLST-${new Date(Date.now()).toLocaleString( + "en-US", + )}`, + sender: user.username || "lst-system", + externalRefNo: `OrdersFromLST-${new Date(Date.now()).toLocaleString( + "en-US", + )}`, + orders: [], + }; - let newOrders: any = orderData; + let newOrders: any = orderData; - // filter out the orders that have already been started just to reduce the risk of errors. - newOrders.filter((oo: any) => - openOrders.some( - (o: any) => o.CustomerOrderNumber === oo.CustomerOrderNumber - ) - ); + // filter out the orders that have already been started just to reduce the risk of errors. + newOrders.filter((oo: any) => + openOrders.some( + (o: any) => o.CustomerOrderNumber === oo.CustomerOrderNumber, + ), + ); - // filter out the blanks - newOrders = newOrders.filter((z: any) => z.ITEM !== ""); + // filter out the blanks + newOrders = newOrders.filter((z: any) => z.ITEM !== ""); - // let postedOrders: any = []; - // for (const [customerID, orders] of Object.entries(orderData)) { - // // console.log(`Running for Customer ID: ${customerID}`); - // const newOrders: any = orderData; + // let postedOrders: any = []; + // for (const [customerID, orders] of Object.entries(orderData)) { + // // console.log(`Running for Customer ID: ${customerID}`); + // const newOrders: any = orderData; - // // filter out the orders that have already been started just to reduce the risk of errors. - // newOrders.filter((oo: any) => - // openOrders.some( - // (o: any) => o.CustomerOrderNumber === oo.CustomerOrderNumber - // ) - // ); + // // filter out the orders that have already been started just to reduce the risk of errors. + // newOrders.filter((oo: any) => + // openOrders.some( + // (o: any) => o.CustomerOrderNumber === oo.CustomerOrderNumber + // ) + // ); - // // map everything out for each order - const nOrder = newOrders.map((o: any) => { - const invoice = i.filter( - (i: any) => i.deliveryAddress === parseInt(o.CUSTOMERID) - ); - if (!invoice) { - return; - } - return { - customerId: parseInt(o.CUSTOMERID), - invoiceAddressId: invoice[0].invoiceAddress, // matched to the default invoice address - customerOrderNo: o.PO, - orderDate: new Date(Date.now()).toLocaleString("en-US"), - positions: [ - { - deliveryAddressId: parseInt(o.CUSTOMERID), - customerArticleNo: o.ITEM, - quantity: parseInt(o.QTY), - deliveryDate: o.DELDATE, //excelDateStuff(o.DELDATE), - customerLineItemNo: o.ReleaseNo, // this is how it is currently sent over from abbott - customerReleaseNo: o.ReleaseNo, // same as above - remark: o.remark === "" ? null : o.remark, - }, - ], - }; - }); + // // map everything out for each order + const nOrder = newOrders.map((o: any) => { + const invoice = i.filter( + (i: any) => i.deliveryAddress === parseInt(o.CUSTOMERID), + ); + if (!invoice) { + return; + } + return { + customerId: parseInt(o.CUSTOMERID), + invoiceAddressId: invoice[0].invoiceAddress, // matched to the default invoice address + customerOrderNo: o.PO, + orderDate: new Date(Date.now()).toLocaleString("en-US"), + positions: [ + { + deliveryAddressId: parseInt(o.CUSTOMERID), + customerArticleNo: o.ITEM, + quantity: parseInt(o.QTY), + deliveryDate: o.DELDATE, //excelDateStuff(o.DELDATE), + customerLineItemNo: o.ReleaseNo, // this is how it is currently sent over from abbott + customerReleaseNo: o.ReleaseNo, // same as above + remark: o.COMMENTS === "" ? null : o.COMMENTS, + }, + ], + }; + }); - // // do that fun combining thing - const updatedPredefinedObject = { - ...predefinedObject, - orders: [...predefinedObject.orders, ...nOrder], - }; + // // do that fun combining thing + const updatedPredefinedObject = { + ...predefinedObject, + orders: [...predefinedObject.orders, ...nOrder], + }; - // //console.log(updatedPredefinedObject); + // //console.log(updatedPredefinedObject); - // // post the orders to the server - const posting: any = await postOrders(updatedPredefinedObject, user); + // // post the orders to the server + const posting: any = await postOrders(updatedPredefinedObject, user); - return { - customer: nOrder[0].CUSTOMERID, - //totalOrders: orders?.length(), - success: posting.success, - message: posting.message, - data: posting.data, - }; - // } + return { + customer: nOrder[0].CUSTOMERID, + //totalOrders: orders?.length(), + success: posting.success, + message: posting.message, + data: posting.data, + }; + // } - // return { - // success: true, - // message: - // "Standard Template was just processed successfully, please check AlplaProd 2.0 to confirm no errors. ", - // data: nOrder, - // }; + // return { + // success: true, + // message: + // "Standard Template was just processed successfully, please check AlplaProd 2.0 to confirm no errors. ", + // data: nOrder, + // }; };