mirror of
https://github.com/Sea-Haven-Industries/shoc-frontend-new.git
synced 2026-10-06 17:02:05 +00:00
28 lines
942 B
TypeScript
28 lines
942 B
TypeScript
|
|
import type { WorkOrderBoardCreatePayload } from "@/domain/work-orders/types/work-order-board";
|
||
|
|
import type { WorkOrderWizardDraft } from "@/domain/work-orders/types/work-order-wizard";
|
||
|
|
import { mondayOf } from "@/domain/work-orders/utils/wizard-date-utils";
|
||
|
|
|
||
|
|
/** Mutates `payload` with `dueDate` and day/week schedule fields (range mode has no schedule fields). */
|
||
|
|
export function assignWizardScheduleFields(
|
||
|
|
payload: WorkOrderBoardCreatePayload,
|
||
|
|
draft: WorkOrderWizardDraft,
|
||
|
|
): void {
|
||
|
|
if (draft.dueDate) {
|
||
|
|
payload.dueDate = draft.dueDate;
|
||
|
|
}
|
||
|
|
|
||
|
|
const isRange = draft.schedMode === "range";
|
||
|
|
|
||
|
|
if (!isRange && draft.scheduleWeekOnly) {
|
||
|
|
payload.scheduleWeekOnly = true;
|
||
|
|
|
||
|
|
const week = draft.targetWeek?.trim() || (draft.scheduledOn ? mondayOf(draft.scheduledOn) : "");
|
||
|
|
|
||
|
|
if (week) {
|
||
|
|
payload.targetWeek = week;
|
||
|
|
}
|
||
|
|
} else if (!isRange && draft.scheduledOn) {
|
||
|
|
payload.scheduledDate = draft.scheduledOn;
|
||
|
|
}
|
||
|
|
}
|