|
- import type { PoWorkbenchAdvancedFilters } from "@/components/PoWorkbench/types";
- import { trimString } from "@/components/PoWorkbench/search/workbenchUtils";
-
- /** Rows per request; keeps the results list DOM small until the user scrolls. */
- export const PO_WORKBENCH_LIST_PAGE_SIZE = 50;
-
- /**
- * Builds GET /po/list query params for the PO Workbench.
- * Same contract as the legacy Po search screen (CriteriaArgsBuilder on the server).
- */
- export function buildWorkbenchPoListSearchParams(
- poNumber: string,
- advanced: PoWorkbenchAdvancedFilters,
- pageNum: number,
- pageSize: number,
- ): URLSearchParams {
- const params = new URLSearchParams();
- params.set("pageNum", String(pageNum));
- params.set("pageSize", String(pageSize));
-
- const code = trimString(poNumber);
- if (code) {
- params.set("code", code);
- }
-
- const supplier = trimString(advanced.supplierQuery);
- if (supplier) {
- params.set("supplier", supplier);
- }
-
- const orderDateFrom = trimString(advanced.orderDateFrom);
- if (orderDateFrom) {
- params.set("orderDate", orderDateFrom);
- }
- const orderDateTo = trimString(advanced.orderDateTo);
- if (orderDateTo) {
- params.set("orderDateTo", orderDateTo);
- }
- const etaDateFrom = trimString(advanced.etaDateFrom);
- if (etaDateFrom) {
- params.set("estimatedArrivalDate", etaDateFrom);
- }
- const etaDateTo = trimString(advanced.etaDateTo);
- if (etaDateTo) {
- params.set("estimatedArrivalDateTo", etaDateTo);
- }
-
- if (advanced.reportStatus === "ESCALATED") {
- params.set("escalated", "true");
- } else if (advanced.reportStatus === "NOT_ESCALATED") {
- params.set("escalated", "false");
- }
-
- if (advanced.receiveStatus !== "ALL") {
- params.set("status", advanced.receiveStatus);
- }
-
- return params;
- }
|