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
@@ -59,6 +59,7 @@ import { VacancySection } from './sections/VacancySection';
import { CandidateInfoSection } from './sections/CandidateInfoSection';
import { AssessmentSection } from './sections/AssessmentSection';
import { useStableCallback } from '../../shared/useStableCallback';
import { submitDateOnOpen } from '../../shared/submitDate';
const ReferralForm: React.FC<IRequestFormProps> = ({
requestType,
@@ -111,7 +112,7 @@ const ReferralForm: React.FC<IRequestFormProps> = ({
Promise.all([loadReferralRequest(editId, editListId), getAttachments(editListId || dataListTitle(FORM_ID), editId)])
.then(([loaded, atts]) => {
if (alive) {
setData(loaded.data);
setData({ ...loaded.data, SubmitDate: submitDateOnOpen(loaded.status, loaded.data.SubmitDate) });
setRequestStatus(loaded.status);
setRequestCode(loaded.code || undefined);
if (loaded.code) notifyCode(loaded.code);
@@ -141,7 +142,7 @@ const ReferralForm: React.FC<IRequestFormProps> = ({
setData((prev) => ({
...prev,
Referrer: prev.Referrer || user.email,
SubmitDate: prev.SubmitDate || todayIso()
SubmitDate: todayIso()
}));
approval
.getProfileFields(user.loginName)
@@ -5,8 +5,9 @@ import { ISectionProps, REFERRER_PLACEHOLDER } from '../model';
/** Секция 1: кто рекомендует — дата подачи, сам рекомендатель и его контакты. */
export const ReferrerSection: React.FC<ISectionProps> = ({ data, set, context, onReferrerChange, printOrgIndex }) => (
<CollapseSection title="1. Рекомендатель" icon="people">
{/* Дата подачи — всегда сегодняшняя (ставит форма, при отправке — заново), руками не меняется. */}
<FormField label="1.1 Дата подачи" htmlFor="SubmitDate" required>
<TextInput id="SubmitDate" type="date" value={data.SubmitDate} onChange={(v) => set('SubmitDate', v)} />
<TextInput id="SubmitDate" type="date" value={data.SubmitDate} onChange={(v) => set('SubmitDate', v)} readOnly />
</FormField>
<FormField label="1.2 Ф.И.О. рекомендателя" htmlFor="Referrer" required full>
<PeopleField
@@ -1,6 +1,7 @@
import { ApprovalListService, IApproverToWrite, approvalServiceFor, writeRoute } from '../../shared/approval';
import { ISaveItemResult, saveRequestItem } from '../../shared/dataList';
import { ensureEmployee } from '../../shared/employee';
import { submitDateOnSave } from '../../shared/submitDate';
import { FORM_ID, IFormData, OTHER_VALUE } from './model';
/**
@@ -28,7 +29,7 @@ function buildItem(data: IFormData, status: string, referrerId: number): Record<
return {
Title: buildTitle(data.CandidateName, data.VacancyTitle),
RequestStatus: status,
SubmitDate: data.SubmitDate || null,
SubmitDate: submitDateOnSave(status, data.SubmitDate) || null,
ReferrerId: referrerId,
ReferrerPosition: data.ReferrerPosition || null,
ReferrerDepartment: data.ReferrerDepartment || null,