diff --git a/server/services/dataMart/controller/validateCityState.ts b/server/services/dataMart/controller/validateCityState.ts new file mode 100644 index 0000000..a936dc3 --- /dev/null +++ b/server/services/dataMart/controller/validateCityState.ts @@ -0,0 +1,21 @@ +import { createLog } from "../../logger/logger.js"; +import { query } from "../../sqlServer/prodSqlServer.js"; +import { validateCityState } from "../../sqlServer/querys/dataMart/validatecityState.js"; + +export const validateCS = async () => { + let cs: any = []; + + let updatedQuery = validateCityState; + + try { + cs = await query(updatedQuery, "Get address data"); + return { success: true, message: "City State Data", data: cs.data }; + } catch (error) { + console.log(error); + return { + success: false, + message: "There was an error getting city state data.", + data: error, + }; + } +}; diff --git a/server/services/dataMart/dataMartService.ts b/server/services/dataMart/dataMartService.ts index 684d411..612b50e 100644 --- a/server/services/dataMart/dataMartService.ts +++ b/server/services/dataMart/dataMartService.ts @@ -6,6 +6,7 @@ import getCustomerInv from "./route/getCustomerInv.js"; import getOpenOrders from "./route/getOpenOrders.js"; import getDeliveryByDate from "./route/getDeliveryDateByRange.js"; import fakeEDI from "./route/fakeEDI.js"; +import addressCorrections from "./route/getCityStateData.js"; const app = new OpenAPIHono(); @@ -17,6 +18,7 @@ const routes = [ getOpenOrders, getDeliveryByDate, fakeEDI, + addressCorrections, ] as const; const appRoutes = routes.forEach((route) => { diff --git a/server/services/dataMart/route/getCityStateData.ts b/server/services/dataMart/route/getCityStateData.ts new file mode 100644 index 0000000..c134370 --- /dev/null +++ b/server/services/dataMart/route/getCityStateData.ts @@ -0,0 +1,50 @@ +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"; +import { apiHit } from "../../../globalUtils/apiHits.js"; +import { validateCS } from "../controller/validateCityState.js"; + +const app = new OpenAPIHono({ strict: false }); +const Body = z.object({ + includeRunnningNumbers: z.string().openapi({ example: "x" }), +}); +app.openapi( + createRoute({ + tags: ["dataMart"], + summary: "Returns Address with incorrect city state.", + method: "get", + path: "/getaddressdata", + request: { + body: { + content: { + "application/json": { schema: Body }, + }, + }, + }, + responses: responses(), + }), + async (c) => { + // make sure we have a vaid user being accessed thats really logged in + apiHit(c, { endpoint: "/getaddressdata" }); + const { data, error } = await tryCatch(validateCS()); + + if (error) { + return c.json( + { + success: false, + message: "There was an error getting address data.", + data: error, + }, + 400 + ); + } + + return c.json({ + success: data.success, + message: data.message, + data: data.data, + }); + } +); +export default app; diff --git a/server/services/dataMart/route/getCurrentQuerys.ts b/server/services/dataMart/route/getCurrentQuerys.ts index cb3028a..73f4e0a 100644 --- a/server/services/dataMart/route/getCurrentQuerys.ts +++ b/server/services/dataMart/route/getCurrentQuerys.ts @@ -95,6 +95,14 @@ const current: any = [ "Returns all open orders to correct and resubmit, leaving blank will get everything putting an address only returns the specified address", criteria: "address", // uncomment this out once the improt process can be faster }, + { + name: "Address Corrections", + endpoint: "/api/datamart/getaddressdata", + // description: "Returns all inventory, by default excludes running numebrs, also excludes inv locations.", + description: + "Returns all addresses that will not process correctly in tms due to incorrect city state setup.", + //criteria: "address", // uncomment this out once the improt process can be faster + }, ]; app.openapi( diff --git a/server/services/sqlServer/querys/dataMart/validatecityState.ts b/server/services/sqlServer/querys/dataMart/validatecityState.ts new file mode 100644 index 0000000..28c94c7 --- /dev/null +++ b/server/services/sqlServer/querys/dataMart/validatecityState.ts @@ -0,0 +1,14 @@ +export const validateCityState = ` +select IdAdressen addressID, +x.Bezeichnung as name, +c.Bezeichnung as deliveryCondition, +c.Kurzbezeichnung as Abbreviation, +ort as cityState +--,* +from AlplaPROD_test1.dbo.t_Adressen (nolock) x +left join +AlplaPROD_test1.[dbo].[T_Lieferkonditionen] (nolock) c +on x.IdLieferkondition = c.IdLieferkondition + +WHERE c.Kurzbezeichnung not in ('exw') and ort not like '%,%' +`;