feat(datamart): total inv migrated over
This commit is contained in:
23
server/services/dataMart/controller/getinventory.ts
Normal file
23
server/services/dataMart/controller/getinventory.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { query } from "../../sqlServer/prodSqlServer.js";
|
||||
import {
|
||||
totalInvNoRn,
|
||||
totalInvRn,
|
||||
} from "../../sqlServer/querys/dataMart/totalINV.js";
|
||||
|
||||
export const getINV = async () => {
|
||||
let inventory: any = [];
|
||||
|
||||
let updatedQuery = totalInvNoRn;
|
||||
|
||||
try {
|
||||
inventory = await query(updatedQuery, "Gets Curruent inv");
|
||||
return { success: true, message: "Current inv", data: inventory };
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
return {
|
||||
success: false,
|
||||
message: "There was an error getting the inventory",
|
||||
data: error,
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -1,10 +1,11 @@
|
||||
import { OpenAPIHono } from "@hono/zod-openapi";
|
||||
|
||||
import activequerys from "./route/getCurrentQuerys.js";
|
||||
import getArticles from "./route/getActiveArticles.js";
|
||||
import currentInv from "./route/getInventory.js";
|
||||
|
||||
const app = new OpenAPIHono();
|
||||
|
||||
const routes = [getArticles] as const;
|
||||
const routes = [activequerys, getArticles, currentInv] as const;
|
||||
|
||||
const appRoutes = routes.forEach((route) => {
|
||||
app.route("/datamart", route);
|
||||
|
||||
102
server/services/dataMart/route/getCurrentQuerys.ts
Normal file
102
server/services/dataMart/route/getCurrentQuerys.ts
Normal file
@@ -0,0 +1,102 @@
|
||||
import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi";
|
||||
import { responses } from "../../../globalUtils/routeDefs/responses.js";
|
||||
|
||||
const app = new OpenAPIHono({ strict: false });
|
||||
const current: any = [
|
||||
{
|
||||
name: "getActiveAv",
|
||||
endpoint: "/api/datamart/getarticles",
|
||||
description: "Gets all current active AV, with specific critiera.",
|
||||
},
|
||||
// {
|
||||
// name: "getStockLaneDims",
|
||||
// endpoint: "/api/v1/masterData/getStockDims",
|
||||
// description: "Returns the lane dims along with a column to send actaul dims to be updated.",
|
||||
// },
|
||||
// {
|
||||
// name: "getAddressInfo",
|
||||
// endpoint: "/api/v1/masterData/getAddressInfo",
|
||||
// description: "Returns current active addresses with street and zip",
|
||||
// },
|
||||
// {
|
||||
// name: "getMissingPkgData",
|
||||
// endpoint: "/api/v1/masterData/getMissingPKGData",
|
||||
// description: "Returns all packaging data that is missing either printer, layout, or carton layout",
|
||||
// },
|
||||
// {
|
||||
// name: "getCustomerInventory",
|
||||
// endpoint: "/api/v1/masterData/getCustomerInventory",
|
||||
// description: "Returns specific customer inventory based on there address ID.",
|
||||
// criteria: "customer",
|
||||
// },
|
||||
// {
|
||||
// name: "getPalletLabels",
|
||||
// endpoint: "/api/v1/masterData/getPalletLabels",
|
||||
// description: "Returns specific amount of pallets RN, Needs label number and printer, Specfic to Dayton.",
|
||||
// criteria: "runningNumber,printerName,count",
|
||||
// },
|
||||
// {
|
||||
// name: "getOpenOrders",
|
||||
// endpoint: "/api/v1/masterData/getOpenOrders",
|
||||
// description:
|
||||
// "Returns open orders based on day count sent over, sDay 15 days in the past eDay 5 days in the future, can be left empty for this default days",
|
||||
// criteria: "sDay,eDay",
|
||||
// },
|
||||
// {
|
||||
// name: "getOpenIncoming",
|
||||
// endpoint: "/api/v1/masterData/getOpenIncoming",
|
||||
// description:
|
||||
// "Returns open orders based on day count sent over, sDay 15 days in the past eDay 5 days in the future, can be left empty for this default days",
|
||||
// criteria: "sDay,eDay",
|
||||
// },
|
||||
// {
|
||||
// name: "planningCheckPkg",
|
||||
// endpoint: "/api/v1/masterData/planningPkgCheck",
|
||||
// description: "Returns all lots starting later than today and has a pkg that is missing layouts.",
|
||||
// },
|
||||
{
|
||||
name: "getinventory",
|
||||
endpoint: "/api/datamart/getinventory",
|
||||
// description: "Returns all inventory, by default excludes running numebrs, also excludes inv locations.",
|
||||
description:
|
||||
"Returns all inventory, excludes inv locations. no running numbers",
|
||||
//criteria: "includeRunnningNumbers", // uncomment this out once the improt process can be faster
|
||||
},
|
||||
// {
|
||||
// name: "getOpenOrderUpdates",
|
||||
// endpoint: "/api/v1/masterData/getOpenOrderUpdates",
|
||||
// // description: "Returns all inventory, by default excludes running numebrs, also excludes inv locations.",
|
||||
// description: "Returns all orders based on customer id, leaving empty will pull everythinng in.",
|
||||
// criteria: "customer", // uncomment this out once the improt process can be faster
|
||||
// },
|
||||
// {
|
||||
// name: "getSiloAdjustment",
|
||||
// endpoint: "/api/v1/warehouse/getSiloAdjustment",
|
||||
// // description: "Returns all inventory, by default excludes running numebrs, also excludes inv locations.",
|
||||
// description: "Returns all siloadjustments in selected date range IE: 1/1/2025 to 1/31/2025",
|
||||
// criteria: "startDate,endDate", // uncomment this out once the improt process can be faster
|
||||
// },
|
||||
];
|
||||
|
||||
app.openapi(
|
||||
createRoute({
|
||||
tags: ["dataMart"],
|
||||
summary: "Returns all avalible querys.",
|
||||
method: "get",
|
||||
path: "/getavalibleaquerys",
|
||||
|
||||
responses: responses(),
|
||||
}),
|
||||
async (c) => {
|
||||
//const body = await c.req.json();
|
||||
// make sure we have a vaid user being accessed thats really logged in
|
||||
//apiHit(c, { endpoint: `api/logger/logs/id` });
|
||||
|
||||
return c.json({
|
||||
success: true,
|
||||
message: "All Current Active Querys.",
|
||||
data: current,
|
||||
});
|
||||
}
|
||||
);
|
||||
export default app;
|
||||
54
server/services/dataMart/route/getInventory.ts
Normal file
54
server/services/dataMart/route/getInventory.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi";
|
||||
import { responses } from "../../../globalUtils/routeDefs/responses.js";
|
||||
import { tryCatch } from "../../../globalUtils/tryCatch.js";
|
||||
import { getINV } from "../controller/getinventory.js";
|
||||
|
||||
const app = new OpenAPIHono({ strict: false });
|
||||
|
||||
app.openapi(
|
||||
createRoute({
|
||||
tags: ["dataMart"],
|
||||
summary: "Returns All current inventory.",
|
||||
method: "get",
|
||||
path: "/getinventory",
|
||||
// request: {
|
||||
// body: {
|
||||
// content: {
|
||||
// "application/json": { schema: Body },
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
responses: responses(),
|
||||
}),
|
||||
async (c) => {
|
||||
// const { data: body, error } = await c.req.json();
|
||||
|
||||
// if (error) {
|
||||
// return c.json({
|
||||
// success: false,
|
||||
// message: "Missing data please try again.",
|
||||
// });
|
||||
// }
|
||||
// make sure we have a vaid user being accessed thats really logged in
|
||||
//apiHit(c, { endpoint: `api/logger/logs/id` });
|
||||
const { data, error } = await tryCatch(getINV());
|
||||
|
||||
if (error) {
|
||||
return c.json(
|
||||
{
|
||||
success: false,
|
||||
message: "There was an error getting the inv.",
|
||||
data: error,
|
||||
},
|
||||
400
|
||||
);
|
||||
}
|
||||
|
||||
return c.json({
|
||||
success: data.success,
|
||||
message: data.message,
|
||||
data: data.data,
|
||||
});
|
||||
}
|
||||
);
|
||||
export default app;
|
||||
82
server/services/sqlServer/querys/dataMart/totalINV.ts
Normal file
82
server/services/sqlServer/querys/dataMart/totalINV.ts
Normal file
@@ -0,0 +1,82 @@
|
||||
// this query pulls all the inventory except the inv locations.
|
||||
|
||||
export const totalInvNoRn = `
|
||||
select x.idartikelVarianten as av,
|
||||
ArtikelVariantenAlias as Alias,
|
||||
--x.Lfdnr as RunningNumber,
|
||||
round(sum(EinlagerungsMengeVPKSum),0) as Total_Pallets,
|
||||
sum(EinlagerungsMengeSum) as Total_PalletQTY,
|
||||
round(sum(VerfuegbareMengeVPKSum),0) as Avalible_Pallets,
|
||||
sum(VerfuegbareMengeSum) as Avaliable_PalletQTY,
|
||||
sum(case when c.Description LIKE '%COA%' then GesperrteMengeVPKSum else 0 end) as COA_Pallets,
|
||||
sum(case when c.Description LIKE '%COA%' then GesperrteMengeSum else 0 end) as COA_QTY,
|
||||
sum(case when c.Description NOT LIKE '%COA%' or x.IdMainDefect = -1 then GesperrteMengeVPKSum else 0 end) as Held_Pallets,
|
||||
sum(case when c.Description NOT LIKE '%COA%' or x.IdMainDefect = -1 then GesperrteMengeSum else 0 end) as Held_QTY,
|
||||
IdProdPlanung as Lot,
|
||||
IdAdressen,
|
||||
x.AdressBez
|
||||
--,*
|
||||
from [AlplaPROD_test1].dbo.[V_LagerPositionenBarcodes] (nolock) x
|
||||
|
||||
left join
|
||||
[AlplaPROD_test1].dbo.T_EtikettenGedruckt as l(nolock) on
|
||||
x.Lfdnr = l.Lfdnr AND l.Lfdnr > 1
|
||||
|
||||
left join
|
||||
|
||||
(SELECT *
|
||||
FROM [AlplaPROD_test1].[dbo].[T_BlockingDefects] where Active = 1) as c
|
||||
on x.IdMainDefect = c.IdBlockingDefect
|
||||
/*
|
||||
The data below will be controlled by the user in excell by default everything will be passed over
|
||||
IdAdressen = 3
|
||||
*/
|
||||
where /*IdArtikelTyp = 1 and */x.IdWarenlager not in (6, 1)
|
||||
|
||||
group by x.idartikelVarianten, ArtikelVariantenAlias, IdProdPlanung, c.Description, IdAdressen,
|
||||
x.AdressBez --, x.Lfdnr
|
||||
order by x.IdArtikelVarianten
|
||||
|
||||
`;
|
||||
|
||||
export const totalInvRn = `
|
||||
select x.idartikelVarianten as av,
|
||||
ArtikelVariantenAlias as Alias,
|
||||
x.Lfdnr as RunningNumber,
|
||||
round(sum(EinlagerungsMengeVPKSum),0) as Total_Pallets,
|
||||
sum(EinlagerungsMengeSum) as Total_PalletQTY,
|
||||
round(sum(VerfuegbareMengeVPKSum),0) as Avalible_Pallets,
|
||||
sum(VerfuegbareMengeSum) as Avaliable_PalletQTY,
|
||||
sum(case when c.Description LIKE '%COA%' then GesperrteMengeVPKSum else 0 end) as COA_Pallets,
|
||||
sum(case when c.Description LIKE '%COA%' then GesperrteMengeSum else 0 end) as COA_QTY,
|
||||
sum(case when c.Description NOT LIKE '%COA%' or x.IdMainDefect = -1 then GesperrteMengeVPKSum else 0 end) as Held_Pallets,
|
||||
sum(case when c.Description NOT LIKE '%COA%' or x.IdMainDefect = -1 then GesperrteMengeSum else 0 end) as Held_QTY,
|
||||
IdProdPlanung as Lot,
|
||||
IdAdressen,
|
||||
x.AdressBez
|
||||
--,*
|
||||
from [AlplaPROD_test1].dbo.[V_LagerPositionenBarcodes] (nolock) x
|
||||
|
||||
left join
|
||||
[AlplaPROD_test1].dbo.T_EtikettenGedruckt as l(nolock) on
|
||||
x.Lfdnr = l.Lfdnr AND l.Lfdnr > 1
|
||||
|
||||
left join
|
||||
|
||||
(SELECT *
|
||||
FROM [AlplaPROD_test1].[dbo].[T_BlockingDefects] where Active = 1) as c
|
||||
on x.IdMainDefect = c.IdBlockingDefect
|
||||
/*
|
||||
The data below will be controlled by the user in excell by default everything will be passed over
|
||||
IdAdressen = 3
|
||||
*/
|
||||
where IdArtikelTyp = 1 and x.IdWarenlager not in (6, 1)
|
||||
|
||||
group by x.idartikelVarianten, ArtikelVariantenAlias, IdProdPlanung, c.Description, IdAdressen,
|
||||
x.AdressBez , x.Lfdnr
|
||||
order by x.IdArtikelVarianten
|
||||
`;
|
||||
|
||||
const totalInvValue = ``;
|
||||
|
||||
const totalInvValueRn = ``;
|
||||
Reference in New Issue
Block a user