feat(eom): added in historical inv data split accordingly

This commit is contained in:
2025-05-28 17:01:22 -05:00
parent 25cfee58d0
commit 96deca15f0
16 changed files with 6385 additions and 36 deletions

View File

@@ -1,12 +1,43 @@
import {date, pgTable, text} from "drizzle-orm/pg-core";
import {createSelectSchema} from "drizzle-zod";
import {
date,
integer,
pgTable,
text,
timestamp,
uuid,
} from "drizzle-orm/pg-core";
import { createSelectSchema } from "drizzle-zod";
export const eom = pgTable(
"eom",
{
eomMonth: date().notNull(),
article: text().notNull(),
articleDescription: text().notNull(),
eom_id: uuid("eom_id").defaultRandom().primaryKey(),
eomMonth: date("eomMonth").notNull(), // what month are we running in should just be the first of current month
plantToken: text("plantToken"),
article: text("article").notNull(),
articleDescription: text("articleDescription").notNull(),
materialType: text("materialType"),
invStart: integer("invStart"), // this will come from the previous month
invEnd: integer("invEnd"),
intransit: integer("intransit"),
// pass over a calculation for ending inv
purchase: integer("purchase"),
gpRecived: integer("gpRecived"),
// pass calcuation for difference
materialIn: integer("materialIn"), // from other alpla plants
materialOut: integer("materialOut"), // out to other alpla plants
quarantine: integer("quarantine"),
// calcualtion for actaul consumption
prodConsumption: integer("prodConsumption"),
// difference will be a calculated number
// waste will be calculated.
priceKg: text("priceKg"), // will be converted to a float and then calcuated into the data
// loss/gain calcualtion
comments: text("comments"),
weight: text("weight"), // for calculations should be converted to a float
pfc: text("pfc"), // profit center this will belong too.
upd_user: text("upd_user"),
upd_date: timestamp("upd_date"),
}
// (table) => [
// // uniqueIndex('emailUniqueIndex').on(sql`lower(${table.email})`),

View File

@@ -0,0 +1,40 @@
import {
date,
integer,
pgTable,
text,
timestamp,
uuid,
} from "drizzle-orm/pg-core";
import { createSelectSchema } from "drizzle-zod";
export const invHistoricalData = pgTable(
"invHistoricalData",
{
inv_id: uuid("inv_id").defaultRandom().primaryKey(),
histDate: date("histDate").notNull(), // what month are we running in should just be the first of current month
plantToken: text("plantToken"),
article: text("article").notNull(),
articleDescription: text("articleDescription").notNull(),
materialType: text("materialType"),
total_QTY: text("total_QTY"),
avaliable_QTY: text("avaliable_QTY"),
coa_QTY: text("coa_QTY"),
held_QTY: text("held_QTY"),
consignment: text("consignment"),
location: text("location"),
upd_user: text("upd_user"),
upd_date: timestamp("upd_date"),
}
// (table) => [
// // uniqueIndex('emailUniqueIndex').on(sql`lower(${table.email})`),
// uniqueIndex("role_name").on(table.name),
// ]
);
// 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(invHistoricalData);