import { REQUEST_STATUS, isEditableStatus } from './approval/models/statuses'; function pad2(n: number): string { return n < 10 ? `0${n}` : `${n}`; } /** Сегодняшняя дата по местному времени, YYYY-MM-DD (формат input type=date). */ export function todaySubmitDate(): string { const now = new Date(); return `${now.getFullYear()}-${pad2(now.getMonth() + 1)}-${pad2(now.getDate())}`; } /** * «Дата подачи» для формы, открытой на редактирование. Черновик и доработку * подают заново — на экране сегодняшняя дата, а не дата первого сохранения; * у уже отправленной заявки остаётся та, с которой её подали. */ export function submitDateOnOpen(status: string, savedDate: string): string { return isEditableStatus(status) ? todaySubmitDate() : savedDate; } /** * «Дата подачи» для записи в SharePoint из формы подачи. Любое сохранение кроме * черновика — это отправка («На согласовании» или «Ждёт очереди», см. * initialSubmitStatus): дата всегда сегодняшняя — форму могли открыть вчера, а * черновик сохранить неделю назад. Черновик хранит то, что на экране. */ export function submitDateOnSave(status: string, currentDate: string): string { return status === REQUEST_STATUS.draft ? currentDate : todaySubmitDate(); }