diff --git a/frontend/src/routes/(logistics)/openOrders/index.tsx b/frontend/src/routes/(logistics)/openOrders/index.tsx new file mode 100644 index 0000000..c0d2930 --- /dev/null +++ b/frontend/src/routes/(logistics)/openOrders/index.tsx @@ -0,0 +1,14 @@ +import OpenOrders from "@/components/logistics/warehouse/openOrders"; +import { createFileRoute } from "@tanstack/react-router"; + +export const Route = createFileRoute("/(logistics)/openOrders/")({ + component: RouteComponent, +}); + +function RouteComponent() { + return ( +
+ +
+ ); +} diff --git a/frontend/src/utils/fixTime.ts b/frontend/src/utils/fixTime.ts index 277f18a..c5ecd85 100644 --- a/frontend/src/utils/fixTime.ts +++ b/frontend/src/utils/fixTime.ts @@ -1,6 +1,17 @@ -import { format } from "date-fns"; +import { addHours, format } from "date-fns"; export const fixTime = (date: any) => { - const strippedDate = date.replace("Z", ""); // Remove Z - return format(strippedDate, "MM/dd/yyyy hh:mm a"); + if (!date) return; + // const strippedDate = date?.replace("Z", ""); // Remove Z + //return format(strippedDate, "MM/dd/yyyy hh:mm a"); + + const rawDate = new Date(date).toISOString(); + const offsetMinutes = new Date().getTimezoneOffset(); // in minutes + const offsetHours = + -offsetMinutes / 60 >= 0 ? offsetMinutes / 60 : -offsetMinutes / 60; + + return format( + addHours(rawDate, offsetHours).toISOString(), + "MM/dd/yyyy hh:mm a" + ); }; diff --git a/server/services/rfid/controller/readTags.ts b/server/services/rfid/controller/readTags.ts index b0003dc..9f594a5 100644 --- a/server/services/rfid/controller/readTags.ts +++ b/server/services/rfid/controller/readTags.ts @@ -7,7 +7,6 @@ import { eq } from "drizzle-orm"; const authData = btoa("admin:Zebra123!"); let token: string; let ip: string; - export const readTags = async (reader: string) => { /** * Start the read for x seconds then auto stop it @@ -30,7 +29,7 @@ export const readTags = async (reader: string) => { ip = readers.find((r) => r.reader === reader)?.readerIP as string; // start the read - startRead(); + startRead(reader, ip); // start the read }; @@ -50,7 +49,7 @@ const getReaderToken = async () => { } }; -const startRead = async () => { +const startRead = async (reader: string, ip: string) => { await getReaderToken(); try { const res = await axios.put( @@ -65,17 +64,17 @@ const startRead = async () => { if (res.status === 200) { setTimeout(() => { - stopRead(); - }, 2 * 1000); + stopRead(reader, ip); + }, 5 * 1000); } // stop after 5 seconds } catch (error: any) { if (error.response?.data.code === 3) { - stopRead(); + stopRead(reader, ip); setTimeout(() => { - startRead(); - }, 1000); + startRead(reader, ip); + }, 2 * 1000); } createLog( "error", @@ -86,7 +85,7 @@ const startRead = async () => { } }; -export const stopRead = async () => { +export const stopRead = async (reader: string, ip: string) => { await getReaderToken(); try { const res = await axios.put( @@ -101,7 +100,7 @@ export const stopRead = async () => { "error", "rfid", "rfid", - `There was an error Stopping the read: ${JSON.stringify(error)}` + `There was an error Stopping the read on ${reader}` ); } }; diff --git a/server/services/rfid/controller/stations/station3.ts b/server/services/rfid/controller/stations/station3.ts index d86bab0..8f795a4 100644 --- a/server/services/rfid/controller/stations/station3.ts +++ b/server/services/rfid/controller/stations/station3.ts @@ -3,11 +3,32 @@ * Phase 2 we will generate a label to be reprinted at staion 4 */ +import { eq } from "drizzle-orm"; +import { db } from "../../../../../database/dbclient.js"; +import { rfidReaders } from "../../../../../database/schema/rfidReaders.js"; +import { tryCatch } from "../../../../globalUtils/tryCatch.js"; import { createLog } from "../../../logger/logger.js"; import type { TagData } from "../tagData.js"; import { tagStuff } from "../tags/crudTag.js"; export const station3Tags = async (tagData: TagData[]) => { + /** + * Add the new tag to the reader so we know waht was really here + */ + const { error } = await tryCatch( + db + .update(rfidReaders) + .set({ lastTagScanned: tagData[0].tag }) + .where(eq(rfidReaders.reader, tagData[0].reader)) + ); + if (error) { + createLog( + "error", + "rfid", + "rfid", + `${tagData[0].reader} encountered and error addeding ${tagData[0].tag}.` + ); + } createLog( "info", "rfid", diff --git a/server/services/rfid/controller/stations/wrappers.ts b/server/services/rfid/controller/stations/wrappers.ts index 4062f0a..5aa3227 100644 --- a/server/services/rfid/controller/stations/wrappers.ts +++ b/server/services/rfid/controller/stations/wrappers.ts @@ -67,18 +67,19 @@ export const wrapperStuff = async (tagData: any) => { "rfid", `${tagData[0].tag}, Did not come from a line please check the pallet and manually print the label.` ); + tagStuff(tagData); monitorChecks(); return { success: false, message: `${tagData[0].tag}, Did not come from a line please check the pallet and manually print the label.`, }; } - if (lines[0].runningNumber) { + if (lines[0]?.runningNumber) { createLog( "info", "rfid", "rfid", - `Reprint label ${lines[0].runningNumber}` + `Reprint label ${lines[0]?.runningNumber}` ); } else { createLog( @@ -88,7 +89,7 @@ export const wrapperStuff = async (tagData: any) => { `A new label will be created and linked to this ${tagData[0].tag} tag` ); const lineNum = parseInt( - checkTag[0]?.lastareaIn.repalceAll("line3", "") + checkTag[0]?.lastareaIn.replace("line3.", "") ); createLog( "info",