c91d2dbc04
В подборе и реферале черновик хранил дату первого сохранения, и через несколько дней заявка уходила на согласование со старой датой подачи. Теперь при отправке дата подачи всегда сегодняшняя, а открытый черновик сразу показывает сегодня (как уже было в объяснительной по СКУД). В реферале дату больше нельзя поправить руками. Общая логика — shared/submitDate. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
31 lines
1.6 KiB
TypeScript
31 lines
1.6 KiB
TypeScript
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();
|
|
}
|