From efa3fdf65e8d581309c0fa8486bb91bc8d2b0eb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=B8=D0=BC=D1=83=D1=80=20=D0=93=D0=BE=D1=80=D0=BE?= =?UTF-8?q?=D0=B4=D0=B5=D1=86=D0=BA=D0=B8=D0=B9?= Date: Thu, 29 Oct 2026 10:59:14 +0500 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=87?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BE=20=D1=81=D1=80=D0=BE=D0=BA?= =?UTF-8?q?=D0=B5=20=D1=83=D0=B2=D0=B5=D0=B4=D0=BE=D0=BC=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B2=20=D0=B7=D0=B0=D1=8F=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B8=20=D0=BD=D0=B0=20=D1=83=D0=B2=D0=BE=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit По аналогии с ежегодным отпуском вверху формы и просмотра увольнения — плашка «Примечание» с текстом от кадров про срок уведомления по ст. 56 ТК РК. На печать не идёт. Co-Authored-By: Claude Opus 5.5 (1M context) --- .../forms/Dismissal/DismissalForm.tsx | 16 ++++++++++++++-- .../forms/Dismissal/DismissalView.tsx | 5 +++-- .../requestPortal/forms/Dismissal/README.md | 2 ++ .../requestPortal/forms/Dismissal/model.ts | 15 +++++++++++++++ 4 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/webparts/requestPortal/forms/Dismissal/DismissalForm.tsx b/src/webparts/requestPortal/forms/Dismissal/DismissalForm.tsx index 20f2f68..4101f4d 100644 --- a/src/webparts/requestPortal/forms/Dismissal/DismissalForm.tsx +++ b/src/webparts/requestPortal/forms/Dismissal/DismissalForm.tsx @@ -10,7 +10,8 @@ import { RequestNumber, SubmitActions, getDraftDeleteHandler, - useRequestSubmit + useRequestSubmit, + FormNotice } from '../../shared/ui'; import { composeRemoveRowRule, @@ -44,7 +45,16 @@ import { dataListTitle, dataListTitleForListId } from '../../shared/listTitles'; -import { FORM_ID, IFormData, EMPTY_DATA, SetField, IOrganizationRecord, primaryPosition } from './model'; +import { + FORM_ID, + IFormData, + EMPTY_DATA, + SetField, + IOrganizationRecord, + primaryPosition, + NOTICE_TITLE, + NOTICE_ITEMS +} from './model'; import { saveDismissalRequest, dismissalApprovalService } from './submit'; import { loadDismissalRequest } from './load'; import { RequestSection } from './sections/RequestSection'; @@ -374,6 +384,8 @@ const DismissalForm: React.FC = ({ )} {submit.error && {submit.error}} + + diff --git a/src/webparts/requestPortal/forms/Dismissal/DismissalView.tsx b/src/webparts/requestPortal/forms/Dismissal/DismissalView.tsx index 079ae6e..66bc94a 100644 --- a/src/webparts/requestPortal/forms/Dismissal/DismissalView.tsx +++ b/src/webparts/requestPortal/forms/Dismissal/DismissalView.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { useState, useEffect, useMemo, useCallback } from 'react'; import type { WebPartContext } from '@microsoft/sp-webpart-base'; import styles from './DismissalView.module.scss'; -import { Alert, FormCard, InitiatorLine, FormModeProvider, PrintButton } from '../../shared/ui'; +import { Alert, FormCard, InitiatorLine, FormModeProvider, PrintButton, FormNotice } from '../../shared/ui'; import { ApproverService, DecisionPanel, @@ -28,7 +28,7 @@ import { dataListTitleForListId } from '../../shared/listTitles'; import { parseRoute } from '../../shared/routing'; -import { FORM_ID, IFormData, EMPTY_DATA, SetField } from './model'; +import { FORM_ID, IFormData, EMPTY_DATA, SetField, NOTICE_TITLE, NOTICE_ITEMS } from './model'; import { loadDismissalRequest } from './load'; import { dismissalApprovalService, updateAssetsAcceptor } from './submit'; import { loadClearanceRequest } from '../Clearance/load'; @@ -285,6 +285,7 @@ const DismissalView: React.FC = ({ context, itemId, formKey } headerRight={status ? : undefined} > + diff --git a/src/webparts/requestPortal/forms/Dismissal/README.md b/src/webparts/requestPortal/forms/Dismissal/README.md index b3f71e9..1a1f989 100644 --- a/src/webparts/requestPortal/forms/Dismissal/README.md +++ b/src/webparts/requestPortal/forms/Dismissal/README.md @@ -61,6 +61,8 @@ RequestTypeId» в `docs/forms.md`). Тип заведён в админке app - **Комментарий** (`Comment`) — необязательный свободный текст. Причины увольнения отдельного поля нет: в шаблоне формулировка фиксированная («по собственному желанию»). - **Заголовок элемента** (`Title`): `Заявление на увольнение — {ФИО} — дд.мм.гггг`. +- **Примечание** (с 10-29, `FormNotice`, тексты `NOTICE_TITLE`/`NOTICE_ITEMS` в `model.ts`) — плашка + вверху формы и просмотра про срок уведомления по ст. 56 ТК РК. Текст от HR, дословно; на печать не идёт. ## Совместители: организации таблицей, удаление синхронизировано с маршрутом Сотрудник может числиться сразу в НЕСКОЛЬКИХ компаниях (совместительство). diff --git a/src/webparts/requestPortal/forms/Dismissal/model.ts b/src/webparts/requestPortal/forms/Dismissal/model.ts index 08c788b..d66ba68 100644 --- a/src/webparts/requestPortal/forms/Dismissal/model.ts +++ b/src/webparts/requestPortal/forms/Dismissal/model.ts @@ -149,3 +149,18 @@ export const EMPTY_DATA: IFormData = { export const EMPLOYEE_PLACEHOLDER = 'Начните вводить Ф.И.О. сотрудника…'; /** Заявление нужно подавать не позднее чем за столько месяцев до последнего рабочего дня. */ export const MIN_NOTICE_MONTHS = 1; + +/** + * Примечание вверху формы и просмотра (см. shared/ui/FormNotice). Текст — от HR, + * дословно. «Не менее чем за один месяц» — это MIN_NOTICE_MONTHS: поменяли срок — + * поправьте и текст. + */ +export const NOTICE_TITLE = 'Примечание'; +export const NOTICE_ITEMS: string[] = [ + 'Срок уведомления. Согласно п. 1 ст. 56 Трудового кодекса РК, работник вправе по своей инициативе ' + + 'расторгнуть трудовой договор, уведомив работодателя письменно не менее чем за один месяц, за исключением ' + + 'случаев, предусмотренных п. 3 этой статьи. Если трудовым договором установлен более длительный срок ' + + 'уведомления, применяется срок из трудового договора.', + 'Увольнение до истечения срока уведомления. Дата увольнения раньше чем через месяц с даты подачи заявления ' + + 'возможна только по согласованию с работодателем, либо в случаях, предусмотренных п. 3 ст. 56 ТК РК.' +];