From 43dd95e7fd88e116e575a3c51b4e443f13abe18e Mon Sep 17 00:00:00 2001 From: Alexandre Brandizzi Date: Fri, 25 Sep 2026 03:12:17 -0300 Subject: [PATCH] Show the requested NTE total on work-order uplift cards A request raised from the work order stores the increase, so the vendor card read a +90 request on a 600 NTE as "Requested $90.00 (was $600.00)". The card now shows the new total, $690.00, for those requests; vendor requests are unchanged. --- .../_components/uplift-request-card.tsx | 9 +++++-- src/test/app/v/uplift-request-card.test.tsx | 25 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/app/v/[token]/dispatch/_components/uplift-request-card.tsx b/src/app/v/[token]/dispatch/_components/uplift-request-card.tsx index 053ca8d1..2d316578 100644 --- a/src/app/v/[token]/dispatch/_components/uplift-request-card.tsx +++ b/src/app/v/[token]/dispatch/_components/uplift-request-card.tsx @@ -32,6 +32,12 @@ function availableActions(request: VendorPortalUpliftRequest, locked: boolean, c }; } +// A vendor request stores the requested new NTE total; a work-order request stores the increase. +function requestedTotal(request: VendorPortalUpliftRequest): number { + const requested = Number(request.requestedNTE); + return request.raisedByVendor === false ? Number(request.currentNTE ?? 0) + requested : requested; +} + export function UpliftRequestCard({ request, locked, @@ -51,8 +57,7 @@ export function UpliftRequestCard({
Requested - ${Number(request.requestedNTE).toFixed(2)} (was $ - {Number(request.currentNTE ?? 0).toFixed(2)}) + ${requestedTotal(request).toFixed(2)} (was ${Number(request.currentNTE ?? 0).toFixed(2)})
diff --git a/src/test/app/v/uplift-request-card.test.tsx b/src/test/app/v/uplift-request-card.test.tsx index e64693ef..c378a21c 100644 --- a/src/test/app/v/uplift-request-card.test.tsx +++ b/src/test/app/v/uplift-request-card.test.tsx @@ -46,6 +46,31 @@ describe("UpliftRequestCard actions", () => { expect(screen.getByRole("button", { name: /revise/i })).toBeInTheDocument(); }); + it("shows a work-order increase as the new NTE total", () => { + renderCard(request({ raisedByVendor: false, requestedNTE: 90, currentNTE: 600 })); + + expect(screen.getByText("Requested").nextElementSibling).toHaveTextContent( + "$690.00 (was $600.00)", + ); + }); + + it("shows a vendor request's requested total unchanged", () => { + renderCard(request({ raisedByVendor: true, requestedNTE: 900, currentNTE: 600 })); + + expect(screen.getByText("Requested").nextElementSibling).toHaveTextContent( + "$900.00 (was $600.00)", + ); + }); + + it("treats a request without the raised-by flag as vendor-raised", () => { + renderCard(request({ raisedByVendor: undefined, requestedNTE: 900, currentNTE: 600 })); + + expect(screen.getByText("Requested").nextElementSibling).toHaveTextContent( + "$900.00 (was $600.00)", + ); + expect(screen.getByRole("button", { name: /withdraw request/i })).toBeInTheDocument(); + }); + it.each(["Pending", "ChangesRequested"])( "shows a %s request raised from the work order read-only", (status) => {