From d07d1000c3c3f2f7151032daa4b6da519eab45f3 Mon Sep 17 00:00:00 2001 From: Blake Matthes Date: Tue, 27 May 2025 15:01:07 -0500 Subject: [PATCH] test(fifo index): running fifo index data on 2 servers as a trial to validate data --- .../migrations/0061_mature_the_stranger.sql | 11 + database/migrations/meta/0061_snapshot.json | 1925 +++++++++++++++++ database/migrations/meta/_journal.json | 7 + database/schema/fifoIndex.ts | 40 + .../controller/notifications/fifoIndex.ts | 112 + .../services/notifications/notifyService.ts | 10 +- .../notifications/routes/fifoIndex.ts | 41 + .../utils/masterNotifications.ts | 14 + .../notifications/fifoIndex/currentInv.ts | 10 + .../fifoIndex/shippedPallets.ts | 6 +- 10 files changed, 2172 insertions(+), 4 deletions(-) create mode 100644 database/migrations/0061_mature_the_stranger.sql create mode 100644 database/migrations/meta/0061_snapshot.json create mode 100644 database/schema/fifoIndex.ts create mode 100644 server/services/notifications/controller/notifications/fifoIndex.ts create mode 100644 server/services/notifications/routes/fifoIndex.ts create mode 100644 server/services/sqlServer/querys/notifications/fifoIndex/currentInv.ts rename server/services/sqlServer/querys/{dataMart => notifications}/fifoIndex/shippedPallets.ts (82%) diff --git a/database/migrations/0061_mature_the_stranger.sql b/database/migrations/0061_mature_the_stranger.sql new file mode 100644 index 0000000..6e0ecae --- /dev/null +++ b/database/migrations/0061_mature_the_stranger.sql @@ -0,0 +1,11 @@ +CREATE TABLE "fifoIndex" ( + "fifoIndex_id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, + "lot" text NOT NULL, + "av" numeric NOT NULL, + "runningNr" numeric NOT NULL, + "prodDate" timestamp NOT NULL, + "fifoFollowed" boolean NOT NULL, + "add_Date" timestamp DEFAULT now() +); +--> statement-breakpoint +CREATE UNIQUE INDEX "fifo_runningNr" ON "fifoIndex" USING btree ("runningNr"); \ No newline at end of file diff --git a/database/migrations/meta/0061_snapshot.json b/database/migrations/meta/0061_snapshot.json new file mode 100644 index 0000000..a0c1f71 --- /dev/null +++ b/database/migrations/meta/0061_snapshot.json @@ -0,0 +1,1925 @@ +{ + "id": "db858e01-182c-41e3-80fa-e0e024eae141", + "prevId": "bfc825ff-b7bc-42d2-a8b0-987655c7b0e9", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.apiHits": { + "name": "apiHits", + "schema": "", + "columns": { + "apiHit_id": { + "name": "apiHit_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "ip": { + "name": "ip", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "endpoint": { + "name": "endpoint", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "action": { + "name": "action", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "lastBody": { + "name": "lastBody", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "stats": { + "name": "stats", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 1 + }, + "add_date": { + "name": "add_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "upd_date": { + "name": "upd_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": { + "endpoint": { + "name": "endpoint", + "columns": [ + { + "expression": "endpoint", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "ip", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.fifoIndex": { + "name": "fifoIndex", + "schema": "", + "columns": { + "fifoIndex_id": { + "name": "fifoIndex_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "lot": { + "name": "lot", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "av": { + "name": "av", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "runningNr": { + "name": "runningNr", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "prodDate": { + "name": "prodDate", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "fifoFollowed": { + "name": "fifoFollowed", + "type": "boolean", + "primaryKey": false, + "notNull": true + }, + "add_Date": { + "name": "add_Date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": { + "fifo_runningNr": { + "name": "fifo_runningNr", + "columns": [ + { + "expression": "runningNr", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.logs": { + "name": "logs", + "schema": "", + "columns": { + "log_id": { + "name": "log_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "level": { + "name": "level", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'LST_Serivce'" + }, + "service": { + "name": "service", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'system'" + }, + "message": { + "name": "message", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "checked": { + "name": "checked", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "add_Date": { + "name": "add_Date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.modules": { + "name": "modules", + "schema": "", + "columns": { + "module_id": { + "name": "module_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "roles": { + "name": "roles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[\"view\",\"systemAdmin\"]'::jsonb" + }, + "add_User": { + "name": "add_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "add_Date": { + "name": "add_Date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "upd_User": { + "name": "upd_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "upd_date": { + "name": "upd_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": { + "module_name": { + "name": "module_name", + "columns": [ + { + "expression": "name", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.notifications": { + "name": "notifications", + "schema": "", + "columns": { + "notify_id": { + "name": "notify_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "checkInterval": { + "name": "checkInterval", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'1'" + }, + "timeType": { + "name": "timeType", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'hour'" + }, + "emails": { + "name": "emails", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "lastRan": { + "name": "lastRan", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "notifiySettings": { + "name": "notifiySettings", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{}'::jsonb" + } + }, + "indexes": { + "notify_name": { + "name": "notify_name", + "columns": [ + { + "expression": "name", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.ocmeData": { + "name": "ocmeData", + "schema": "", + "columns": { + "ocme_id": { + "name": "ocme_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "sscc": { + "name": "sscc", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "runningNr": { + "name": "runningNr", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "completed": { + "name": "completed", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "lineNum": { + "name": "lineNum", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "pickedUp": { + "name": "pickedUp", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "areaFrom": { + "name": "areaFrom", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "add_User": { + "name": "add_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "add_Date": { + "name": "add_Date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "upd_User": { + "name": "upd_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "upd_date": { + "name": "upd_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": { + "ocme_runningNr": { + "name": "ocme_runningNr", + "columns": [ + { + "expression": "runningNr", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.ocmeCycleCounts": { + "name": "ocmeCycleCounts", + "schema": "", + "columns": { + "ocme_id": { + "name": "ocme_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "laneId": { + "name": "laneId", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "warehouseName": { + "name": "warehouseName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "laneName": { + "name": "laneName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "good": { + "name": "good", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "cycleCount": { + "name": "cycleCount", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "add_User": { + "name": "add_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "add_Date": { + "name": "add_Date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.manualPrinting": { + "name": "manualPrinting", + "schema": "", + "columns": { + "print_id": { + "name": "print_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "line": { + "name": "line", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "printReason": { + "name": "printReason", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "initials": { + "name": "initials", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "additionalComments": { + "name": "additionalComments", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "add_date": { + "name": "add_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "add_user": { + "name": "add_user", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.printerData": { + "name": "printerData", + "schema": "", + "columns": { + "printer_id": { + "name": "printer_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "humanReadableId": { + "name": "humanReadableId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "ipAddress": { + "name": "ipAddress", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "port": { + "name": "port", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "statusText": { + "name": "statusText", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "lastTimePrinted": { + "name": "lastTimePrinted", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "assigned": { + "name": "assigned", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "remark": { + "name": "remark", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "printDelay": { + "name": "printDelay", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": "'90'" + }, + "monitorState": { + "name": "monitorState", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "add_Date": { + "name": "add_Date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "upd_date": { + "name": "upd_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": { + "humanReadableId": { + "name": "humanReadableId", + "columns": [ + { + "expression": "humanReadableId", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.prodlabels": { + "name": "prodlabels", + "schema": "", + "columns": { + "label_id": { + "name": "label_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "printerID": { + "name": "printerID", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "printerName": { + "name": "printerName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "line": { + "name": "line", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "runningNr": { + "name": "runningNr", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "add_user": { + "name": "add_user", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'lst'" + }, + "add_date": { + "name": "add_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "upd_date": { + "name": "upd_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": { + "runningNr": { + "name": "runningNr", + "columns": [ + { + "expression": "runningNr", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.qualityRequest": { + "name": "qualityRequest", + "schema": "", + "columns": { + "request_id": { + "name": "request_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "article": { + "name": "article", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "runningNr": { + "name": "runningNr", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "lotNr": { + "name": "lotNr", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "warehouseAtRequest": { + "name": "warehouseAtRequest", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "locationAtRequest": { + "name": "locationAtRequest", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "warehouseMovedTo": { + "name": "warehouseMovedTo", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "locationMovedTo": { + "name": "locationMovedTo", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "durationToMove": { + "name": "durationToMove", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "locationDropOff": { + "name": "locationDropOff", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "palletStatus": { + "name": "palletStatus", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "palletStatusText": { + "name": "palletStatusText", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "palletRequest": { + "name": "palletRequest", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "add_date": { + "name": "add_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "add_user": { + "name": "add_user", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'LST'" + }, + "upd_date": { + "name": "upd_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "upd_user": { + "name": "upd_user", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'LST'" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.rfidReaders": { + "name": "rfidReaders", + "schema": "", + "columns": { + "rfidReader_id": { + "name": "rfidReader_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "reader": { + "name": "reader", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "readerIP": { + "name": "readerIP", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "lastHeartBeat": { + "name": "lastHeartBeat", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "lastTrigger": { + "name": "lastTrigger", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "lastTiggerGood": { + "name": "lastTiggerGood", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "lastTagScanned": { + "name": "lastTagScanned", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "reader": { + "name": "reader", + "columns": [ + { + "expression": "reader", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.rfidTags": { + "name": "rfidTags", + "schema": "", + "columns": { + "rfidTag_id": { + "name": "rfidTag_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "tagHex": { + "name": "tagHex", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "tag": { + "name": "tag", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "timeStamp": { + "name": "timeStamp", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "counts": { + "name": "counts", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "lastareaIn": { + "name": "lastareaIn", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "runningNumber": { + "name": "runningNumber", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "antenna": { + "name": "antenna", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tagStrength": { + "name": "tagStrength", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": { + "tagHex": { + "name": "tagHex", + "columns": [ + { + "expression": "tagHex", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.roles": { + "name": "roles", + "schema": "", + "columns": { + "role_id": { + "name": "role_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "add_User": { + "name": "add_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "add_Date": { + "name": "add_Date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "upd_User": { + "name": "upd_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "upd_date": { + "name": "upd_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": { + "role_name": { + "name": "role_name", + "columns": [ + { + "expression": "name", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.serverData": { + "name": "serverData", + "schema": "", + "columns": { + "server_id": { + "name": "server_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "sName": { + "name": "sName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "serverDNS": { + "name": "serverDNS", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "plantToken": { + "name": "plantToken", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "idAddress": { + "name": "idAddress", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "greatPlainsPlantCode": { + "name": "greatPlainsPlantCode", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "streetAddress": { + "name": "streetAddress", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "cityState": { + "name": "cityState", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "zipcode": { + "name": "zipcode", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "contactEmail": { + "name": "contactEmail", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "contactPhone": { + "name": "contactPhone", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customerTiAcc": { + "name": "customerTiAcc", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "lstServerPort": { + "name": "lstServerPort", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "serverLoc": { + "name": "serverLoc", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "oldVersion": { + "name": "oldVersion", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "lastUpdated": { + "name": "lastUpdated", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "shippingHours": { + "name": "shippingHours", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'[{\"early\": \"06:30\", \"late\": \"23:00\"}]'" + }, + "tiPostTime": { + "name": "tiPostTime", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'[{\"from\": \"24\", \"to\": \"24\"}]'" + }, + "otherSettings": { + "name": "otherSettings", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[{\"specialInstructions\":\"something for ti\",\"active\":false}]'::jsonb" + }, + "isUpgrading": { + "name": "isUpgrading", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + } + }, + "indexes": { + "plantToken": { + "name": "plantToken", + "columns": [ + { + "expression": "plantToken", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.settings": { + "name": "settings", + "schema": "", + "columns": { + "role_id": { + "name": "role_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "moduleName": { + "name": "moduleName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "roles": { + "name": "roles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[\"systemAdmin\"]'::jsonb" + }, + "add_User": { + "name": "add_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "add_Date": { + "name": "add_Date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "upd_User": { + "name": "upd_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "upd_date": { + "name": "upd_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": { + "name": { + "name": "name", + "columns": [ + { + "expression": "name", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.siloAdjustments": { + "name": "siloAdjustments", + "schema": "", + "columns": { + "siloAdjust_id": { + "name": "siloAdjust_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "level": { + "name": "level", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "locationID": { + "name": "locationID", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "currentStockLevel": { + "name": "currentStockLevel", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "newLevel": { + "name": "newLevel", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "comment": { + "name": "comment", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "''" + }, + "dateAdjusted": { + "name": "dateAdjusted", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "lastDateAdjusted": { + "name": "lastDateAdjusted", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "commentAddedBy": { + "name": "commentAddedBy", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "commentDate": { + "name": "commentDate", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "commentKey": { + "name": "commentKey", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "add_user": { + "name": "add_user", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'LST_Serivce'" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.subModules": { + "name": "subModules", + "schema": "", + "columns": { + "submodule_id": { + "name": "submodule_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "moduleName": { + "name": "moduleName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "link": { + "name": "link", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "roles": { + "name": "roles", + "type": "jsonb", + "primaryKey": false, + "notNull": true, + "default": "'[\"systemAdmin\"]'::jsonb" + }, + "icon": { + "name": "icon", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "subSubModule": { + "name": "subSubModule", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'[]'::jsonb" + }, + "add_User": { + "name": "add_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "add_Date": { + "name": "add_Date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "upd_User": { + "name": "upd_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "upd_date": { + "name": "upd_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": { + "subModule_name": { + "name": "subModule_name", + "columns": [ + { + "expression": "name", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.userRoles": { + "name": "userRoles", + "schema": "", + "columns": { + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "role_id": { + "name": "role_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "module_id": { + "name": "module_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "role": { + "name": "role", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "add_User": { + "name": "add_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "add_Date": { + "name": "add_Date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "upd_User": { + "name": "upd_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "upd_date": { + "name": "upd_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": { + "user_module_unique": { + "name": "user_module_unique", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "module_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "userRoles_user_id_users_user_id_fk": { + "name": "userRoles_user_id_users_user_id_fk", + "tableFrom": "userRoles", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "user_id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "userRoles_role_id_roles_role_id_fk": { + "name": "userRoles_role_id_roles_role_id_fk", + "tableFrom": "userRoles", + "tableTo": "roles", + "columnsFrom": [ + "role_id" + ], + "columnsTo": [ + "role_id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "userRoles_module_id_modules_module_id_fk": { + "name": "userRoles_module_id_modules_module_id_fk", + "tableFrom": "userRoles", + "tableTo": "modules", + "columnsFrom": [ + "module_id" + ], + "columnsTo": [ + "module_id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users": { + "name": "users", + "schema": "", + "columns": { + "user_id": { + "name": "user_id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "passwordToken": { + "name": "passwordToken", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "passwordTokenExpires": { + "name": "passwordTokenExpires", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "active": { + "name": "active", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "pingcode": { + "name": "pingcode", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "role": { + "name": "role", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'user'" + }, + "lastLogin": { + "name": "lastLogin", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "add_User": { + "name": "add_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "add_Date": { + "name": "add_Date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + }, + "upd_User": { + "name": "upd_User", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'LST_System'" + }, + "upd_date": { + "name": "upd_date", + "type": "timestamp", + "primaryKey": false, + "notNull": false, + "default": "now()" + } + }, + "indexes": { + "username": { + "name": "username", + "columns": [ + { + "expression": "username", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": {}, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} \ No newline at end of file diff --git a/database/migrations/meta/_journal.json b/database/migrations/meta/_journal.json index de64a36..b0832a4 100644 --- a/database/migrations/meta/_journal.json +++ b/database/migrations/meta/_journal.json @@ -428,6 +428,13 @@ "when": 1747357513268, "tag": "0060_daffy_overlord", "breakpoints": true + }, + { + "idx": 61, + "version": "7", + "when": 1748370693078, + "tag": "0061_mature_the_stranger", + "breakpoints": true } ] } \ No newline at end of file diff --git a/database/schema/fifoIndex.ts b/database/schema/fifoIndex.ts new file mode 100644 index 0000000..90351ce --- /dev/null +++ b/database/schema/fifoIndex.ts @@ -0,0 +1,40 @@ +import { + text, + pgTable, + numeric, + index, + timestamp, + boolean, + uuid, + uniqueIndex, + jsonb, +} from "drizzle-orm/pg-core"; +import { createInsertSchema, createSelectSchema } from "drizzle-zod"; +import { z } from "zod"; + +export const fifoIndex = pgTable( + "fifoIndex", + { + fifoIndex_id: uuid("fifoIndex_id").defaultRandom().primaryKey(), + lot: text("lot").notNull(), + av: numeric("av").notNull(), + runningNr: numeric("runningNr").notNull(), + prodDate: timestamp("prodDate").notNull(), + + // currentInv: jsonb("currentInv").default([]), + fifoFollowed: boolean("fifoFollowed").notNull(), + add_Date: timestamp("add_Date").defaultNow(), + }, + (table) => [ + // uniqueIndex('emailUniqueIndex').on(sql`lower(${table.email})`), + // uniqueIndex("role_name").on(table.name), + uniqueIndex("fifo_runningNr").on(table.runningNr), + ] +); + +// Schema for inserting a user - can be used to validate API requests +// export const insertRolesSchema = createInsertSchema(roles, { +// name: z.string().min(3, {message: "Role name must be more than 3 letters"}), +// }); +// Schema for selecting a Expenses - can be used to validate API responses +export const selectRolesSchema = createSelectSchema(fifoIndex); diff --git a/server/services/notifications/controller/notifications/fifoIndex.ts b/server/services/notifications/controller/notifications/fifoIndex.ts new file mode 100644 index 0000000..a3f8c1a --- /dev/null +++ b/server/services/notifications/controller/notifications/fifoIndex.ts @@ -0,0 +1,112 @@ +import { isBefore } from "date-fns"; +import { tryCatch } from "../../../../globalUtils/tryCatch.js"; +import { query } from "../../../sqlServer/prodSqlServer.js"; +import { currentInv } from "../../../sqlServer/querys/notifications/fifoIndex/currentInv.js"; +import { shippedPallets } from "../../../sqlServer/querys/notifications/fifoIndex/shippedPallets.js"; +import { db } from "../../../../../database/dbclient.js"; +import { fifoIndex } from "../../../../../database/schema/fifoIndex.js"; + +export default async function fifoIndexCheck() { + /** + * getting the shipped pallets + */ + const { data: shipped, error: eShipped } = await tryCatch( + query(shippedPallets, "notify shipped pallets") + ); + + const { data: currentStuff, error: eCurrentInv } = await tryCatch( + query(currentInv, "notify shipped pallets") + ); + + // console.log(shipped?.data[2]); + // console.log(currentStuff?.data[2]); + + /** + * We want to check if the each shippened pallet is out of fifo + */ + const check = shipped?.data.map((n: any) => { + /** + * Returns all data so we know if we are in or out. + */ + //check if there are pallets older than the current one we are mapped on. + const fifoCheck = currentStuff?.data.filter( + (i: any) => isBefore(i.prodDate, n.prodDate) && i.av === n.av + ); + //console.log(fifoCheck.length); + if (fifoCheck.length > 0) { + // console.log("Out of fifo", { + // av: n.av, + // rn: n.runningNr, + // fRn: fifoCheck[0].runningNr, + // dates: [fifoCheck[0].prodDate, n.prodDate], + // }); + } + + return { + ...n, + // currentInv: fifoCheck[0], + fifoFollowed: fifoCheck.length === 0 ? true : false, + }; + }); + + /** + * lets see just the av that is our or in + */ + + const avCheck = (check: any) => { + /** + * This will only return the data based on out of fifo. + */ + // check how many times each av showed up + const avCounts = check.reduce((a: any, c: any) => { + if (c.fifoFollowed === false) { + const avValue = c.av; + a[avValue] = (a[avValue] || 0) + 1; + } + return a; + }, {}); + + // transform them back to an avCount Object + const result = Object.keys(avCounts).map((av) => ({ + av: parseInt(av, 10), + count: avCounts[av], + })); + + return result; + }; + + const outOfFifo: any = avCheck(check); + const totalOut = outOfFifo.reduce((sum: any, c: any) => { + return sum + c.count; + }, 0); + + /** + * add the data to the db + */ + for (let i = 0; i < check.length; i++) { + const { data: dbInsert, error: dbE } = await tryCatch( + db + .insert(fifoIndex) + .values({ + lot: check[i].lot, + av: check[i].av, + runningNr: check[i].runningNr, + prodDate: check[i].prodDate, + fifoFollowed: check[i].fifoFollowed, + add_Date: check[i].add_Date, + }) + .onConflictDoNothing() + ); + } + + return { + success: true, + message: "Fifo index data", + data: { + palletsOut: check, + totalShipped: shipped?.data.length, + inFifo: shipped?.data.length - totalOut, + outOfFifoData: outOfFifo, + }, + }; +} diff --git a/server/services/notifications/notifyService.ts b/server/services/notifications/notifyService.ts index d6ba981..846e8f7 100644 --- a/server/services/notifications/notifyService.ts +++ b/server/services/notifications/notifyService.ts @@ -12,10 +12,18 @@ import notifyStats from "./routes/getActiveNotifications.js"; import tiTrigger from "./routes/manualTiggerTi.js"; import blocking from "./routes/qualityBlocking.js"; import notify from "./routes/getNotifications.js"; +import fifoIndex from "./routes/fifoIndex.js"; const app = new OpenAPIHono(); -const routes = [sendemail, notifyStats, tiTrigger, blocking, notify] as const; +const routes = [ + sendemail, + notifyStats, + tiTrigger, + blocking, + notify, + fifoIndex, +] as const; const appRoutes = routes.forEach((route) => { app.route("/notify", route); diff --git a/server/services/notifications/routes/fifoIndex.ts b/server/services/notifications/routes/fifoIndex.ts new file mode 100644 index 0000000..42355bc --- /dev/null +++ b/server/services/notifications/routes/fifoIndex.ts @@ -0,0 +1,41 @@ +// an external way to creating logs +import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi"; +import { responses } from "../../../globalUtils/routeDefs/responses.js"; +import { apiHit } from "../../../globalUtils/apiHits.js"; +import fifoIndexCheck from "../controller/notifications/fifoIndex.js"; + +const app = new OpenAPIHono({ strict: false }); + +app.openapi( + createRoute({ + tags: ["notify"], + summary: "Manually trigger TI intergrations.", + method: "get", + path: "/fifoindex", + //middleware: authMiddleware, + responses: responses(), + }), + async (c) => { + /** + * get the blocking notification stuff + */ + apiHit(c, { endpoint: "/fifoindex" }); + + /** + * getting the shipped pallets + */ + const checkedData = await fifoIndexCheck(); + + return c.json({ + success: true, + message: "Fifo index results", + data: checkedData.data.palletsOut, + fifoCheck: { + totalShipped: checkedData.data.totalShipped, + inFifo: checkedData.data.inFifo, + outOfFifoData: checkedData.data.outOfFifoData, + }, + }); + } +); +export default app; diff --git a/server/services/notifications/utils/masterNotifications.ts b/server/services/notifications/utils/masterNotifications.ts index 66bc906..ab302d2 100644 --- a/server/services/notifications/utils/masterNotifications.ts +++ b/server/services/notifications/utils/masterNotifications.ts @@ -93,6 +93,20 @@ export const note: any = [ releases: [1, 2, 3], }, }, + { + name: "fifoIndex", + description: "Checks for pallets that were shipped out of fifo", + checkInterval: 1, + timeType: "hour", + emails: "blake.matthes@alpla.com", + active: false, + notifiySettings: { + prodID: 1, + start: 36, + end: 36, + releases: [1, 2, 3], + }, + }, ]; export const notificationCreate = async () => { diff --git a/server/services/sqlServer/querys/notifications/fifoIndex/currentInv.ts b/server/services/sqlServer/querys/notifications/fifoIndex/currentInv.ts new file mode 100644 index 0000000..d571bc5 --- /dev/null +++ b/server/services/sqlServer/querys/notifications/fifoIndex/currentInv.ts @@ -0,0 +1,10 @@ +export const currentInv = ` + SELECT Produktionslos as lot + ,Lfdnr as runningNr + ,IdArtikelVarianten as av + ,Barcode + ,ProduktionsDatumMin as prodDate + FROM [AlplaPROD_test1].[dbo].V_LagerPositionenBarcodes t + where GesperrtAktivSum = 0 and t.IdArtikelTyp in (1) + order by ProduktionsDatumMin +`; diff --git a/server/services/sqlServer/querys/dataMart/fifoIndex/shippedPallets.ts b/server/services/sqlServer/querys/notifications/fifoIndex/shippedPallets.ts similarity index 82% rename from server/services/sqlServer/querys/dataMart/fifoIndex/shippedPallets.ts rename to server/services/sqlServer/querys/notifications/fifoIndex/shippedPallets.ts index 5a01016..d6399e9 100644 --- a/server/services/sqlServer/querys/dataMart/fifoIndex/shippedPallets.ts +++ b/server/services/sqlServer/querys/notifications/fifoIndex/shippedPallets.ts @@ -7,7 +7,7 @@ SELECT ,[LfdNrJeArtikelKunde] as runningNr ,l.IdArtikelvarianten as av ,x.[Barcode] -,[ProduktionsDatum] +,[ProduktionsDatum] as prodDate --,x.[Add_User] --,x.[Add_Date] --,x.[Upd_User] @@ -27,6 +27,6 @@ SELECT [AlplaPROD_test1].[dbo].[T_EtikettenGedruckt] l on x.LfdNrJeArtikelKunde = l.LfdNr - where x.Add_Date between getDate()-2 and getDate() - + where x.Add_Date between dateadd(hour, -1, getDate()) and getDate() + order by [ProduktionsDatum] `;