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 { OpenAPIHono } from "@hono/zod-openapi";
|
||||||
|
import activequerys from "./route/getCurrentQuerys.js";
|
||||||
import getArticles from "./route/getActiveArticles.js";
|
import getArticles from "./route/getActiveArticles.js";
|
||||||
|
import currentInv from "./route/getInventory.js";
|
||||||
|
|
||||||
const app = new OpenAPIHono();
|
const app = new OpenAPIHono();
|
||||||
|
|
||||||
const routes = [getArticles] as const;
|
const routes = [activequerys, getArticles, currentInv] as const;
|
||||||
|
|
||||||
const appRoutes = routes.forEach((route) => {
|
const appRoutes = routes.forEach((route) => {
|
||||||
app.route("/datamart", 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