Commit Graph

232 Commits

Author SHA1 Message Date
Тимур Городецкий 9cacb6b271 feat: письмо инициатору при отклонении и возврате заявки
Поток RequestsNotification умеет ветки «Отклонено» и «Возврат на доработку»,
но портал их не вызывал: notifyActiveStep ищет только активные строки, а после
такого решения их нет — инициатор узнавал о решении, только открыв заявку.

notifyInitiatorOfReturn шлёт в тот же поток RowID строки, по которой решил
текущий пользователь; подключён в onDecided всех форм, кроме «Изменения
условий ТД» (доработаем позже).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-28 16:50:31 +05:00
Тимур Городецкий 72e330e659 feat: поля вида «Перевод на другую должность» в изменении условий ТД
Третий разобранный вид: новая должность из справочника с ручным вводом,
дата перевода, причина (карьерный рост / вакантная должность / новый
объект, перераспределение функций / иное) и обоснование. Должностная
инструкция по ТЗ прикладывается всегда — обязательный слот вложений.
Работника и работодателя не различаем: причины видны всем.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-28 16:48:09 +05:00
Тимур Городецкий ddf313c951 feat: вложения в изменении условий ТД — «Результаты аттестации»
Колонка ТЗ «Что приложить» становится подписанными слотами вложений по
виду; обязательны там, где ТЗ прямо требует документ. Первый слот —
«Результаты аттестации» при доплате за вредные условия. Обязательность
проверяется только при отправке, черновик сохраняется и без файла; файлы
скрытого слота не загружаются.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-28 15:41:15 +05:00
Тимур Городецкий c59b0ad208 refactor: подписанные вложения — общий модуль shared/attachments
Подпись вложения префиксом в имени файла и поле одного слота жили внутри
«Заявки на приём», а теперь нужны и другим формам. Перенесены в
shared/attachments без изменения поведения: приём реэкспортирует общее,
его форма и просмотр не тронуты. useAttachmentEditor принимает новую,
ещё не сохранённую заявку (itemId пустой) и явное «куда грузить» —
id появляется только после первого сохранения.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-28 15:41:15 +05:00
Тимур Городецкий 6aef9a5ba9 feat: поля вида «Надбавка / доплата» в изменении условий ТД
Второй разобранный вид: основание (а–д из шаблона ТЗ — надбавка это или
доплата, видно из пункта), срок с/по или «бессрочно», размер с
переключателем «% / ₸» и обоснование, куда пишется и объём доп. работы при
совмещении. Проценты принимают дробные значения (7,5 %), тенге — целые;
при переходе на тенге дробная часть отбрасывается.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-28 15:18:04 +05:00
Тимур Городецкий 4c018154d3 feat: выбор организации сотрудника в изменении условий ТД
Условия меняются в одном трудовом договоре, а у совместителя их несколько.
Как в командировке: пикер FullBase теперь выбирает человека (записи
склеены по ИИН), а под ним — список его мест работы «Компания — должность —
подразделение»; единственное место выбирается само. Маршрут строится по
человеку и не ждёт выбора организации. Строка под полем и вложенная сетка,
сжимавшая поля вида, убраны.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-28 14:44:16 +05:00
Тимур Городецкий 17f9dec39b feat: поля вида «Повышение должностного оклада» в изменении условий ТД
Первый разобранный с кадрами вид: текущий и новый оклад, дата, причина
(испытательный срок / расширение функционала / иное) и обоснование — оно
же текст причины «иное». Всё необязательно. Поля вида живут в своей
секции byType/, а колонки невыбранного вида при сохранении очищаются,
чтобы после смены вида в заявке не оставалось скрытых значений.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-28 14:43:35 +05:00
Тимур Городецкий 4eece061d1 feat: каркас заявки «Изменение условий трудового договора»
Новая кадровая форма (hr-contract-change, только тестировщикам): сотрудник
из кадровой базы снимком в текстовых колонках и вид изменения из 10 по
ст. 33 ТК РК. Вид хранится MultiChoice-массивом, хотя по ТЗ выбирается
один, — чтобы разрешить несколько без миграции. Маршрут — по сотруднику,
а без учётной записи — по заявителю. Поля по видам добавляются отдельно.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-28 12:10:43 +05:00
Тимур Городецкий 9f97a19cab feat: выбор сотрудника из полной кадровой базы (Employee/FullBase)
PeoplePicker находит только тех, у кого есть учётка M365, — рабочих на
объектах в нём нет. Пикер ищет по части Ф.И.О. в Employee/FullBase,
показывает только работающих, а совместителя — строкой на каждое место
работы, чтобы сразу выбрать нужную компанию.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-28 12:10:42 +05:00
Тимур Городецкий 82a9a68fbc style: заметный комментарий согласующего в маршруте
Tests / frontend-test (push) Successful in 1m31s
Мелкий серый текст под именем согласующего пользователи не замечали,
а там бывает причина возврата или отклонения. Теперь это плашка:
светлый фон, полоса слева, обычный размер шрифта. Действует во всех формах.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-28 10:05:03 +05:00
Тимур Городецкий ac633c767e feat: комментарий инициатора в заявке на отпуск
Необязательное поле «Комментарий» (VacationComment, Note) последним в
секции: инициатор может пояснить заявку для согласующих. В просмотре
пустой комментарий не показывается, в DOCX для ЭДО не идёт.
Колонка уже провизионирована.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-28 10:05:02 +05:00
Тимур Городецкий a750db9d7f Merge branch 'main' of http://git.tnsu.kz/timur.gorodetskiy/request-portal
Tests / frontend-test (push) Successful in 1m25s
2026-10-27 15:33:45 +05:00
Тимур Городецкий ea04602606 feat: переезд внутри карточки точки, время выезда обязательно
Транспорт и время выезда переехали в карточку точки, куда едут («Как
добраться: Алматы → Астана»), обратный переезд — под переключателем
«Возвращение». Отдельной строкой на линии маршрута участок пропускали.
Время выезда теперь обязательно — оно нужно тревел-координатору под билеты.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 16:06:29 +05:00
Тимур Городецкий 57feeddcfe feat: дни суточных и ночи проживания можно поправить вручную
По умолчанию считаются по датам точки; карандаш открывает ручной ввод — любое
число (форс-мажор, задержался). Под полем видно, сколько по датам, и можно
вернуть расчёт. В просмотре, печати и колонке SP ручное значение помечено
«(вручную)». Хранится в TripEstimateJson (quantityManual), колонок нет.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 15:53:06 +05:00
Тимур Городецкий fa2e9593f1 feat: секция «Обязательство и согласие» в командировке
Переименована по требованию кадров; так же подписана и в списке незаполненных полей.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 15:46:16 +05:00
Тимур Городецкий 8d162db4ba docs: требования кадров к командировке в общей таблице форм
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 15:21:19 +05:00
Тимур Городецкий 51f3c6fb9a feat: предпочтительное время выезда на участках командировки
У каждого участка маршрута рядом с видом транспорта — «Утро / День / Вечер /
Ночь» (необязательно, повторный клик снимает выбор). Хранится в TripRouteJson
(legDepartureTime) — новых колонок нет. На схеме — только в подсказке плашки
транспорта. Стили плашек вынесены в общий ChoiceChips.module.scss.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 15:21:13 +05:00
Тимур Городецкий 63448e60aa feat: комментарий после итога сметы в командировке
Необязательное поле «Комментарий» (колонка TripComment) после итога сметы;
в просмотре пустой комментарий не показывается.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 15:16:43 +05:00
Тимур Городецкий 50a1ae2ce3 feat: командировка не дольше 40 дней
От прибытия в первую точку до отъезда из последней включительно; при
отправке подсвечивается отъезд последней точки.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 15:14:45 +05:00
Тимур Городецкий d07056937a feat: лимиты суточных и проживания, ночи считаются сами
Суточные — не больше 6 МРП в день по Казахстану и 8 за рубежом (по признаку
точки). Проживание теперь строится по точкам маршрута, как суточные: ночи из
дат точки, человек вводит только цену за ночь — не больше 15 000 ₸ по
Казахстану; лимит для заграницы — константа, пока без значения. Превышение
видно сразу под полем и блокирует отправку. syncPerDiem → syncRouteItems.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 15:12:50 +05:00
Тимур Городецкий 17f448a1c2 feat: точки командировки по Казахстану и за рубежом
У каждой точки маршрута — «Казахстан | Другая страна» (бывают смешанные
поездки). За рубежом страна и город вводятся вручную, подпись «Китай, Пекин»,
объект можно вписать своим текстом (завод, выставка — их нет в справочнике).
Новая колонка TripKind («По Казахстану» / «Зарубежная») — хотя бы одна точка
за рубежом делает поездку зарубежной; пригодится для маршрута и отчётов.
Переключатель «Форма | Схема» вынесен в общий SegmentedSwitch.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 15:02:22 +05:00
Тимур Городецкий 6122370bbf feat: убрано поле «Цель» из заявки на командировку
Поле убрано из формы, модели, чтения/записи и проверки. Колонка TripPurpose
убрана из манифеста; в уже созданном списке SP она остаётся с данными
тестовых заявок (провизионер колонки не удаляет).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 14:27:06 +05:00
Тимур Городецкий cd7b27daa2 feat: командировку нельзя оформить задним числом
Прибытие в любую точку маршрута — не раньше сегодняшнего дня: прошедшие дни
закрыты в календаре, а набранная вручную или устаревшая в черновике дата
подсвечивается при отправке (черновик сохраняется). «Сегодня» передаётся в
submitIssues параметром — тесты не зависят от текущей даты.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 14:26:02 +05:00
Тимур Городецкий fa84dd6ad5 feat: такси вместо автобуса в видах транспорта командировки
По просьбе кадров. Иконка — local_taxi (машина с шашкой), чтобы такси
отличалось от служебного и личного автотранспорта.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 14:25:00 +05:00
Тимур Городецкий 08dd151c56 feat: город в командировке из справочника на русском и казахском
Город отправления и города точек выбираются из справочника КАТО; в маршруте
хранятся оба названия и код (city/cityKz/cityKato, origin/originKz/originKato
внутри TripRouteJson — новых колонок нет). Везде, включая TripCity/TripRoute и
заголовок, город показывается как «Кульсары (Құлсары)». Введённый вручную
город (село, заграница) сохраняется текстом. README дополнен и описанием
командирующей организации.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 14:24:10 +05:00
Тимур Городецкий c892fb26a9 feat: справочник городов КАТО и поле выбора города
Города и посёлки РК (178) из официального КАТО stat.gov.kz — на русском и
казахском, с кодом и областью. Справочник генерируется скриптом
scripts/Build-KatoCities.ps1 и лежит на фронте: внешних API и ключей не нужно.
CityPicker ищет по обоим языкам с учётом раскладки (Құлсары = Кулсары) и
оставляет свой вариант для сёл и заграницы.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 14:21:26 +05:00
Тимур Городецкий 513f6c1d30 feat: выбор командирующей организации в заявке на командировку
Сотрудник может работать в нескольких компаниях, а командирует одна —
теперь её выбирают из организаций сотрудника (Employee/ByEmail), должность
подставляется из выбранной компании. Одна организация выбирается сама.
Выбор хранится в TripCompany + TripCompanyId (id — под будущий маршрут).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 11:50:24 +05:00
gorbenko.pavel 093bbecd9f fix: в заявке на отпуск не показываются сообщения об отправке в ЭДО
Tests / frontend-test (push) Successful in 2m17s
Плашки об отправке, ошибке и повторе, а также текст «Документы
отправлены на подписание в ЭДО» показываются только при включённом
VACATION_EDO_SIGNING_ENABLED.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 16:38:17 +05:00
gorbenko.pavel 59b0fbc569 feat: временно выключена отправка заявления на отпуск в ЭДО
Флаг VACATION_EDO_SIGNING_ENABLED в shared/config.ts: пока false,
решение последнего согласующего применяется без обращения к ЭДО.
Код отправки оставлен, включается заменой флага на true.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 16:37:34 +05:00
Тимур Городецкий 984eb65f5b feat: поле «Время работы» в заявке на приём
Tests / frontend-test (push) Successful in 2m6s
Пункт 4.5 — тот же выбор, что 5.6 в заявке на подбор, с «Другое» и ручным
вводом; подставляется из связанного подбора и обязателен для отправки.
Колонка сайта WorkHours общая с подбором (тот же тип, заголовок и варианты),
в список приёма её подключает провизионинг — до деплоя, иначе заявка не
сохранится. «Сдельная оплата труда» сдвинута на 4.6.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 15:59:32 +05:00
Тимур Городецкий b3c46f32d5 feat: подача заявок на отпуск открыта для всех
Оплачиваемый отпуск и отпуск без сохранения з/п добавлены в UNFROZEN_FORMS:
сохранять черновик и отправлять их теперь могут все, а не только группа
«Тестирование». Формы начали передавать formId в SubmitActions — без него
точечное снятие заморозки не срабатывало.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 15:47:04 +05:00
Тимур Городецкий 739f247268 feat: подсветка незаполненных полей в заявке в отдел 1С
Проверки обязательных полей вынесены в validation.ts и показываются под
полями через FieldIssuesProvider, как в приёме, подборе и отпуске: форма
прокручивается к первому полю, над кнопками — кликабельный список.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 15:44:36 +05:00
Тимур Городецкий 4f0d02fe59 feat: в заявке 1С дата запрета по АТП оформляется только на базу АТП
При виде работ «Дата запрета (открытие/закрытие)» и выбранной базе АТП
остальные базы снимаются и добавить их нельзя — дата запрета по АТП
открывается/закрывается отдельно. Над полем «База 1С» при этом виде работ
показывается предупреждение.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 15:44:35 +05:00
Тимур Городецкий ac1b66d0df feat: памятка HR и подсветка ошибок полей в заявках на отпуск
Tests / frontend-test (push) Successful in 2m5s
LeavePrintNotice заменён общим LeaveNotice с заголовком и пунктами из model.ts
каждой формы: в отпуске — примечание HR (ст. 92 ТК РК, срок подачи, подписание
в отделе кадров), в отпуске без содержания — прежняя памятка про печать.
Проверки отпуска вынесены в validation.ts и показываются под полями через
FieldIssuesProvider, как в приёме и подборе.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 15:13:02 +05:00
Тимур Городецкий e811186cec feat: маршрут отпуска и отпуска без содержания учитывает организацию сотрудника
Кадровый сотрудник и исполнитель в этих маршрутах зависят от компании
сотрудника (Ольга Кудрящова и Айнур — Тансу/КПС/CT, Мольдир Хамит —
остальные), но формы не передавали организацию в расчёт маршрута, и
условные шаги в админке не срабатывали. Теперь названия компаний из поля
«Организация» (Employee/ByEmail) уходят как Organization через пробел — и в
согласование, и в исполнителей; маршрут пересчитывается, когда организация
подгрузится. Общий хелпер — shared/dictionary/organizationRouteFields.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 12:44:29 +05:00
Тимур Городецкий 91c66bbf81 Merge branch 'main' of http://git.tnsu.kz/timur.gorodetskiy/request-portal 2026-10-15 12:32:19 +05:00
Тимур Городецкий 7fce5a789c chore: доработки скриптов браузерного QA
guard пропускает GetClientSideComponents (без него страница не грузит
SPFx), probe с --local-build запускает Chromium без проверок Local Network
Access, которые режут загрузку https://localhost:4321 с SharePoint.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 12:31:59 +05:00
Тимур Городецкий ea6eb3663b refactor: расчёт маршрута заявки в 1С вынесен в planRoute
Сбор условий маршрута (вид работ, база 1С, отдел) и запрос маршрута с
схлопыванием повторов переехали из формы в planRoute.ts. Поведение формы
не меняется; функцию сможет использовать страница «Проверка маршрутов»,
чтобы проверять ровно тот маршрут, что видит заявитель.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 12:31:59 +05:00
gorbenko.pavel 5d2abaf430 Чат заявки: отметки «@» и оповещения через поток (#26)
Tests / frontend-test (push) Successful in 2m1s
## Что сделано

**Чат заявки: отметки и оповещения**
- В поле ввода «@» открывает подсказку с участниками заявки: инициатор, согласующие и исполнители из маршрута, а также те, кому открыты «Все заявки» этого типа (список из request-type-access).
- Отметка — обычный текст «@ФИО», без штатного упоминания SharePoint, чтобы не уходило его письмо.
- После отправки сообщения портал вызывает поток Power Automate (`FLOW_CHAT_NOTIFY_URL`): отмеченным — «Вас упомянули», инициатору — «Новое сообщение по вашей заявке». Сбой потока не мешает отправке.
- В письмо добавляется строка «Прикреплены файлы: …», чтобы сообщение из одного файла не приходило пустым.
- Свойство веб-части «Чат: уведомлять о своих сообщениях (для теста)», по умолчанию выключено: письма и о своих сообщениях, можно отметить себя.
- Когда пишет сам инициатор с отметками, в `initiatorEmail` уходит первый отмеченный — поток шлёт инициатору всегда, если его нет среди отмеченных, и иначе он получил бы письмо о своём же сообщении.

**Чат включён для:** Обходной лист, заявка на подбор, заявка на приём, заявка в отдел 1С.

**Исправление:** редактор маршрута может удалять исполнителей в Обходном листе, Командировке и заявке в 1С (не передавалось `canRemoveRow`).

**Прочее:** убраны 4 предупреждения линтера (`no-new-null`, `no-script-url`).

## Не проверено на тенанте
- Ответ потока 200 через AadHttpClient и доставка писем.
- Права согласующих на комментарии и на запись в библиотеку «Файлы чата».
- Папки в «Файлы чата» наследуют права библиотеки, а не закрыты на заявку — для подбора и приёма это важно решить до выкладки.
- Если поток вставляет `messageText` в HTML-письмо, перенос строки перед «Прикреплены файлы» может не отобразиться.

---------

Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/26
2026-10-14 10:05:45 +00:00
Тимур Городецкий 99f3558e4a fix: один согласующий не дублируется на шаге маршрута заявки в 1С
База 1С — мультивыбор, поэтому на одном шаге могут сработать сразу
несколько строк матрицы с одним исполнителем (Гульжан и за ЗУП, и за
АТП от финдепа). Он получал бы два уведомления и решал шаг дважды.
Запланированный маршрут теперь оставляет одну строку на человека в
пределах шага; один человек на разных шагах не схлопывается.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-13 09:37:10 +05:00
Тимур Городецкий a6f4218e7e feat: маршрут заявки в 1С учитывает базу 1С
Новая матрица маршрута #8 назначает согласующих по выбранной базе
(ЗУП, АТП, ATS), а форма передавала в approval-route только вид работ
и отдел — такие шаги никогда не срабатывали. Теперь DB1C уходит в
fieldValues одной строкой через пробел (мультивыбор, value у API
только строка), и маршрут пересчитывается при смене набора баз.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-13 09:36:48 +05:00
Тимур Городецкий 96f53da020 feat: столбец «Дата выхода» в разделах при фильтре по рабочему месту
Tests / frontend-test (push) Successful in 2m7s
Раньше дата выхода показывалась только во «Все заявки». Теперь — в любом
разделе (Мои заявки, очереди), когда фильтр по типу оставляет только заявки
на организацию рабочего места.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 15:05:42 +05:00
Тимур Городецкий d6bb76fe47 feat: памятка о бумажном заявлении в заявках на отпуск
После согласования заявление нужно распечатать, подписать и сдать в
отдел кадров — напоминаем об этом в трудовом отпуске и отпуске без
содержания (подача и просмотр). Общий компонент LeavePrintNotice,
на печать не выводится.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 13:59:58 +05:00
Тимур Городецкий 4b05da5469 feat: трудовой отпуск — не более 24 дней в одной заявке
Требование HR: ограничение на поле «Количество дней» и проверка при
отправке с понятным сообщением.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 13:59:58 +05:00
Тимур Городецкий 41cce93b41 fix: плитки заявок одной высоты, плашка «В разработке» по размеру текста
Tests / frontend-test (push) Successful in 2m3s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 11:24:44 +05:00
Тимур Городецкий 664b58a44a fix: трудовой отпуск подаётся за 7 дней вместо 14
По требованию HR минимальный срок подачи заявления сокращён до недели.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 11:24:43 +05:00
Тимур Городецкий 755cfc8329 fix: отпуск без содержания — без лимита 5 дней, «Иная причина»
5 дней работодатель обязан дать только при браке/рождении/смерти,
сверх — по договорённости, поэтому форма больше не ограничивает число
дней. Вариант «В иных случаях» подписан как «Иная причина» — читается
как ответ на «Причина»; значение в SP прежнее.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 11:24:42 +05:00
Тимур Городецкий e46632d67a fix: примечание СБ в заявке на приём — необязательное
По просьбе заказчика примечание при отметке «Согласован СБ» больше не
требуется для отправки: поле по-прежнему появляется только при отметке,
но его можно оставить пустым.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-09 15:44:17 +05:00
Тимур Городецкий 8330790bf9 feat: отметка «Сдельная оплата труда» в заявке на приём
Tests / frontend-test (push) Successful in 1m25s
Пункт 4.5 в «Условиях оплаты и оформления» — информационная отметка, на
обязательность окладов не влияет. Та же колонка сайта PieceworkPay
(Boolean), что в заявке на подбор, и оттуда же подставляется при связи с
подбором (поле 1.1 и «Оформить приём по этой заявке»).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-09 14:16:21 +05:00
Тимур Городецкий af93ae57f4 feat: оформление приёма прямо из согласованной заявки на подбор
Просили создавать заявку на приём из самого подбора, а не искать его в
поле 1.1. Под вложениями согласованного подбора — «+ Оформить приём по этой
заявке» со счётчиком «занято X из Y» (и предупреждением, если вакансии
заняты). Новая заявка на приём сразу связана с подбором и заполнена из
него: логика вынесена в selectionPrefill и общая с полем 1.1. Вместе с
rpsource в адресе передаётся партиция подбора (rplist): Id в партициях
повторяются. Приёмы по подбору грузятся один раз на оба блока (useLinkedHires).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-09 14:12:33 +05:00