fix: дата подачи — день отправки, а не сохранения черновика

В подборе и реферале черновик хранил дату первого сохранения, и через
несколько дней заявка уходила на согласование со старой датой подачи.
Теперь при отправке дата подачи всегда сегодняшняя, а открытый черновик
сразу показывает сегодня (как уже было в объяснительной по СКУД). В реферале
дату больше нельзя поправить руками. Общая логика — shared/submitDate.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Тимур Городецкий
2026-10-02 09:34:51 +05:00
parent 5702939b52
commit c91d2dbc04
9 changed files with 66 additions and 10 deletions
@@ -0,0 +1,30 @@
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();
}