shoc-frontend-new/src/domain/work-orders/utils/find-duplicate-wo-number-row.ts

17 lines
455 B
TypeScript
Raw Normal View History

feat(work-orders): duplicate WO number dialog on table and wizard (SH-189) (#90) * docs(work-orders): add pending BE contract checklist for design parity gaps * feat(work-orders): confirm dialog when duplicate wo number detected * fix(work-orders): show duplicate wo number dialog on wizard create * docs(work-orders): align pr description with jira and qa residuals * style(work-orders): prettier wizard duplicate dialog files * refactor(workorders): extract wizard state hook and list overlays * fix(work-orders): check duplicate numbers globally * fix(work-orders): exhaust fuzzy pages for exact WO number lookup Prevent accepting duplicates that fall outside the first fuzzy search page. * style(work-orders): format editable WO number cell for Prettier gate * fix(work-orders): 0-based WO search page and stale duplicate guard * fix(work-orders): sync draft WO# ref in effect for duplicate guard [SH-189] * fix(work-orders): extract WO number editor under max-lines gate Co-authored-by: Cursor <cursoragent@cursor.com> * fix(work-orders): harden duplicate WO number checks [SH-189] * fix(work-orders): sync wizard refs in effects and exhaust duplicate WO lookup Co-authored-by: Cursor <cursoragent@cursor.com> * fix(work-orders): extract hooks to satisfy max-lines governance gate Co-authored-by: Cursor <cursoragent@cursor.com> * style(work-orders): format wizard state hook for Prettier gate Co-authored-by: Cursor <cursoragent@cursor.com> * fix(work-orders): search one-character WO numbers for duplicates --------- Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 11:04:48 -03:00
import type { WorkOrderTableRow } from "@/domain/work-orders/types/work-order-table-row";
export function findDuplicateWoNumberRow(
woNumber: string,
rows: WorkOrderTableRow[],
excludeId?: string | number,
): WorkOrderTableRow | undefined {
const normalized = woNumber.trim();
if (normalized === "") {
return undefined;
}
return rows.find(
(row) => row.woNumber === normalized && String(row.id) !== String(excludeId ?? ""),
);
}