feat(datamart): active article moved over to the new version
This commit is contained in:
89
app/src/internal/datamart/routes/getActiveAv.ts
Normal file
89
app/src/internal/datamart/routes/getActiveAv.ts
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
import { Router, type Request, type Response } from "express";
|
||||||
|
import { prodQuery } from "../../../pkg/prodSql/prodQuery.js";
|
||||||
|
import { tryCatch } from "../../../pkg/utils/tryCatch.js";
|
||||||
|
import { db } from "../../../pkg/db/db.js";
|
||||||
|
import { settings } from "../../../pkg/db/schema/settings.js";
|
||||||
|
import { eq } from "drizzle-orm";
|
||||||
|
import { activeArticle } from "../../../pkg/prodSql/querys/datamart/article.js";
|
||||||
|
|
||||||
|
type Articles = {
|
||||||
|
article: string
|
||||||
|
description: string
|
||||||
|
articleType: string
|
||||||
|
pricePoint:string
|
||||||
|
salesPrice:string
|
||||||
|
typeOfMaterial:string
|
||||||
|
articleIdType:string
|
||||||
|
articleWeight:string
|
||||||
|
idAddress:string
|
||||||
|
addressDescription:string
|
||||||
|
addressType:string
|
||||||
|
profitCenter:String
|
||||||
|
fg: string
|
||||||
|
num_of_cycles:string
|
||||||
|
costsCenterId:string
|
||||||
|
costCenterDescription:string
|
||||||
|
customerArticleNumber:string
|
||||||
|
customerArticleDescription:String
|
||||||
|
cycleTime:string
|
||||||
|
salesAgreement:string
|
||||||
|
productFamily:string
|
||||||
|
uom:string
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const router = Router();
|
||||||
|
|
||||||
|
// GET /health
|
||||||
|
router.get("/", async (req: Request, res: Response) => {
|
||||||
|
|
||||||
|
const includePlantToken = req.params.includePlantToken
|
||||||
|
|
||||||
|
let articles:Articles[] = [];
|
||||||
|
try {
|
||||||
|
const res = await prodQuery(activeArticle, "Get active articles");
|
||||||
|
articles = res?.data;
|
||||||
|
}
|
||||||
|
catch (error) {
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
message:"Error getting articles",
|
||||||
|
error: error
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (includePlantToken) {
|
||||||
|
const { data, error } = await tryCatch(db.select().from(settings).where(eq(settings.name, "plantToken")))
|
||||||
|
if (error) {
|
||||||
|
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
message:"Error getting settings",
|
||||||
|
error: error
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// return articles.map((n) => {
|
||||||
|
// return {
|
||||||
|
// success: true,
|
||||||
|
// message: "Active articles including plant token",
|
||||||
|
// data:{ plantToken: data[0].value, ...n }};
|
||||||
|
// });
|
||||||
|
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
message: "Active articles including plant token",
|
||||||
|
data: articles.map((n) => {
|
||||||
|
return { plantToken: data[0].value, ...n }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
message: "Active articles including plant token",
|
||||||
|
data:articles};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
||||||
10
app/src/internal/datamart/routes/routes.ts
Normal file
10
app/src/internal/datamart/routes/routes.ts
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import type { Express, Request, Response } from "express";
|
||||||
|
|
||||||
|
//datamart Routes
|
||||||
|
import getActiveAv from './getActiveAv.js'
|
||||||
|
export const setupDataMartRoutes = (app: Express, basePath: string) => {
|
||||||
|
const route = basePath + "/api/datamart"
|
||||||
|
app.use(route + '/activeArticle', getActiveAv);
|
||||||
|
//app.use(basePath + "/api/user/me", requireAuth(), me);
|
||||||
|
|
||||||
|
};
|
||||||
@@ -5,6 +5,7 @@ import { setupForkliftRoutes } from "../forklifts/routes/routes.js";
|
|||||||
import { setupLogisticsRoutes } from "../logistics/routes.js";
|
import { setupLogisticsRoutes } from "../logistics/routes.js";
|
||||||
import { setupSystemRoutes } from "../system/routes.js";
|
import { setupSystemRoutes } from "../system/routes.js";
|
||||||
import { setupMobileRoutes } from "../mobile/route.js";
|
import { setupMobileRoutes } from "../mobile/route.js";
|
||||||
|
import { setupDataMartRoutes } from "../datamart/routes/routes.js";
|
||||||
|
|
||||||
export const setupRoutes = (app: Express, basePath: string) => {
|
export const setupRoutes = (app: Express, basePath: string) => {
|
||||||
// all routes
|
// all routes
|
||||||
@@ -14,6 +15,7 @@ export const setupRoutes = (app: Express, basePath: string) => {
|
|||||||
setupLogisticsRoutes(app, basePath);
|
setupLogisticsRoutes(app, basePath);
|
||||||
setupForkliftRoutes(app, basePath);
|
setupForkliftRoutes(app, basePath);
|
||||||
setupMobileRoutes(app, basePath);
|
setupMobileRoutes(app, basePath);
|
||||||
|
setupDataMartRoutes(app, basePath)
|
||||||
|
|
||||||
// always try to go to the app weather we are in dev or in production.
|
// always try to go to the app weather we are in dev or in production.
|
||||||
app.get(basePath + "/", (req: Request, res: Response) => {
|
app.get(basePath + "/", (req: Request, res: Response) => {
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
export const activeArticle = `
|
export const activeArticle = `
|
||||||
use AlplaPROD_test1
|
use AlplaPROD_test1
|
||||||
|
|
||||||
SELECT V_Artikel.IdArtikelvarianten,
|
SELECT V_Artikel.IdArtikelvarianten as article,
|
||||||
V_Artikel.Bezeichnung,
|
V_Artikel.Bezeichnung as description,
|
||||||
V_Artikel.ArtikelvariantenTypBez,
|
V_Artikel.ArtikelvariantenTypBez as articleType,
|
||||||
V_Artikel.PreisEinheitBez,
|
V_Artikel.PreisEinheitBez as pricePoint,
|
||||||
case when sales.price is null then 0 else sales.price end as salesPrice,
|
case when sales.price is null then 0 else sales.price end as salesPrice,
|
||||||
TypeOfMaterial=CASE
|
CASE
|
||||||
WHEN
|
WHEN
|
||||||
V_Artikel.ArtikelvariantenTypBez LIKE'%Additive'
|
V_Artikel.ArtikelvariantenTypBez LIKE'%Additive'
|
||||||
Then 'AD'
|
Then 'AD'
|
||||||
@@ -90,14 +90,15 @@ THEN 'Caps'
|
|||||||
When
|
When
|
||||||
V_Artikel.ArtikelvariantenTypBez = 'Dummy'
|
V_Artikel.ArtikelvariantenTypBez = 'Dummy'
|
||||||
THEN 'Not used'
|
THEN 'Not used'
|
||||||
ELSE 'Item not defined' END
|
ELSE 'Item not defined' END as typeOfMaterial
|
||||||
,V_Artikel.IdArtikelvariantenTyp,
|
|
||||||
Round(V_Artikel.ArtikelGewicht, 3) as Article_Weight,
|
,V_Artikel.IdArtikelvariantenTyp as articleIdType,
|
||||||
IdAdresse,
|
Round(V_Artikel.ArtikelGewicht, 3) as articleWeight,
|
||||||
AdressBez,
|
IdAdresse as idAddress,
|
||||||
AdressTypBez,
|
AdressBez as addressDescription,
|
||||||
ProdBereichBez,
|
AdressTypBez as addressType,
|
||||||
FG=case when
|
ProdBereichBez as profitCenter,
|
||||||
|
case when
|
||||||
V_Artikel.ProdBereichBez = 'SBM' or
|
V_Artikel.ProdBereichBez = 'SBM' or
|
||||||
V_Artikel.ProdBereichBez = 'IM-Caps' or
|
V_Artikel.ProdBereichBez = 'IM-Caps' or
|
||||||
V_Artikel.ProdBereichBez = 'IM-PET' or
|
V_Artikel.ProdBereichBez = 'IM-PET' or
|
||||||
@@ -107,15 +108,16 @@ V_Artikel.ProdBereichBez = 'ISBM' or
|
|||||||
V_Artikel.ProdBereichBez = 'IM-Finishing'
|
V_Artikel.ProdBereichBez = 'IM-Finishing'
|
||||||
Then 'FG'
|
Then 'FG'
|
||||||
Else 'not Defined Profit Center'
|
Else 'not Defined Profit Center'
|
||||||
end,
|
end as fg,
|
||||||
|
|
||||||
V_Artikel.Umlaeufe as num_of_cycles,
|
V_Artikel.Umlaeufe as num_of_cycles,
|
||||||
V_FibuKonten_BASIS.FibuKontoNr as CostsCenterId,
|
V_FibuKonten_BASIS.FibuKontoNr as costsCenterId,
|
||||||
V_FibuKonten_BASIS.Bezeichnung as CostCenterDescription,
|
V_FibuKonten_BASIS.Bezeichnung as costCenterDescription,
|
||||||
sales.[KdArtNr] as CustomerArticleNumber,
|
sales.[KdArtNr] as customerArticleNumber,
|
||||||
sales.[KdArtBez] as CustomerArticleDescription,
|
sales.[KdArtBez] as customerArticleDescription,
|
||||||
round(V_Artikel.Zyklus, 2) as CycleTime,
|
round(V_Artikel.Zyklus, 2) as cycleTime,
|
||||||
Sypronummer as salesAgreement,
|
Sypronummer as salesAgreement,
|
||||||
V_Artikel.ProdArtikelBez as ProductFamily
|
V_Artikel.ProdArtikelBez as productFamily
|
||||||
--,REPLACE(pur.UOM,'UOM:','')
|
--,REPLACE(pur.UOM,'UOM:','')
|
||||||
,Case when LEFT(
|
,Case when LEFT(
|
||||||
LTRIM(REPLACE(pur.UOM,'UOM:','')),
|
LTRIM(REPLACE(pur.UOM,'UOM:','')),
|
||||||
@@ -123,7 +125,7 @@ V_Artikel.ProdArtikelBez as ProductFamily
|
|||||||
) is null then '1' else LEFT(
|
) is null then '1' else LEFT(
|
||||||
LTRIM(REPLACE(pur.UOM,'UOM:','')),
|
LTRIM(REPLACE(pur.UOM,'UOM:','')),
|
||||||
CHARINDEX(' ', LTRIM(REPLACE(REPLACE(pur.UOM,'UOM:',''), CHAR(13)+CHAR(10), ' ')) + ' ') - 1
|
CHARINDEX(' ', LTRIM(REPLACE(REPLACE(pur.UOM,'UOM:',''), CHAR(13)+CHAR(10), ' ')) + ' ') - 1
|
||||||
) end AS UOM
|
) end AS uom
|
||||||
--,*
|
--,*
|
||||||
FROM dbo.V_Artikel (nolock)
|
FROM dbo.V_Artikel (nolock)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user