Commit Graph

21 Commits

Author SHA1 Message Date
Тимур Городецкий da8c2c3e54 Merge branch 'main' of http://git.tnsu.kz/timur.gorodetskiy/request-portal
Tests / frontend-test (push) Successful in 2m2s
2026-10-06 17:23:25 +05:00
Тимур Городецкий 271758527e feat: ссылка на заявку ТМЦ уходит в КПС для ссылок с source=kps
Заявки, открытые из КПС, передают ссылку на заявку в позицию акта
дефектов через Inventory API (POST /inventory/api/defect-acts/parts/
{partId}/tmc-transfer); остальные — в Dataverse, как раньше. Для КПС не
ищем «Куда» в Dataverse: positionId там чужой и давал только 404.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 17:23:08 +05:00
gorbenko.pavel 637e51d7f9 Feature/vacation edo signing (#23)
Tests / frontend-test (push) Successful in 1m24s
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/23
2026-10-05 08:53:18 +00:00
Тимур Городецкий f8ab2a1d71 fix: даты «только дата» больше не сдвигаются на день назад
Tests / frontend-test (push) Successful in 2m1s
SharePoint хранит поле «только дата» как полночь по поясу сайта (UTC+5)
в UTC: «05.10» приходит из REST как 2026-10-04T19:00:00Z. Формы брали
первые 10 символов и показывали 04.10, а каждое пересохранение (полное
право, исполнитель, повторная отправка) записывало дату ещё на день раньше.

Чтение всех дат идёт через spDateOnlyToIso (округление до ближайшей
полуночи UTC), «сегодня» — через todayIsoDate вместо toISOString, который
до 05:00 давал вчерашнее число. Уже сдвинутые записи в SP не исправляются.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-05 12:41:18 +05:00
Тимур Городецкий 9400f8546e feat: параметр source во внешней ссылке ТМЦ сохраняется в заявке
Внешняя система (напр. КПС) передаёт source — пишем его в новую колонку
SourceSystem рядом с SourcePositionId, чтобы по заявке было видно, откуда
она пришла и куда отвечать. Запоминание источника вынесено в отдельный
эффект: positionId/source/склад сохраняются и по ссылке без nomenclatureId.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-05 12:39:48 +05:00
Тимур Городецкий 153c966f0b feat: история согласования — маршрут пересохраняется патчем
При доработке и повторной отправке writeRoute раньше удалял все строки
маршрута и создавал заново — кто вернул или отклонил заявку и с каким
комментарием, терялось. Теперь маршрут пересохраняется патчем
(planRoutePatch + ApprovalListService.patchSteps): строки, что остаются в
маршруте, обновляются на месте, и их прошлые решения лежат в истории
версий; недостающие шаги создаются, выпавшие и строки делегатов уходят в
корзину. Всё одним пакетом. Проверено пилотами на увольнении и рабочем
месте (обе фазы, уход в корзину). Аварийный откат для всех форм —
ROUTE_PATCH_ENABLED = false.

Из версий строк маршрута и заявки собирается лента «История
согласования» (shared/approval/history): отправки, решения с
комментариями и временем на шаге, делегирование, замена исполнителя,
у кого заявка сейчас. Свёрнутый раздел в карточке и в форме доработки
всех форм, грузится только при раскрытии.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-29 12:42:42 +05:00
Тимур Городецкий 9b83c54491 feat: удаление своих заявок в статусе Черновик
Tests / frontend-test (push) Successful in 1m15s
2026-09-24 16:52:53 +05:00
Тимур Городецкий 936205be09 feat: показ склада-источника в СЗ на перемещение ТМЦ по внешней ссылке
Tests / frontend-test (push) Successful in 1m16s
2026-09-23 14:41:47 +05:00
Тимур Городецкий 98226e4753 feat: предзаполнение «Куда» в ТМЦ, разморозка 1С, readOnly «Отдел»
Tests / frontend-test (push) Successful in 1m16s
- СЗ на перемещение ТМЦ: поле «Куда» предзаполняется проектом-получателем
  по строке-источнику Dataverse (cree9_demandline -> lzk position -> LZK ->
  project id), см. shared/dataverse/lzkPosition.service.ts
- Заявка 1С досрочно разморожена для всех пользователей (UNFROZEN_FORMS
  в SubmitActions), остальные формы остаются замороженными
- Поле «Отдел» в заявке 1С сделано read-only

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-23 11:07:54 +05:00
gorbenko.pavel cf57b40513 feat(автосогласование): колонка AutoApprove во всех списках согласования (#20)
Tests / frontend-test (push) Failing after 38s
Провижининг (Provision-Lists.ps1 читает эти манифесты) теперь заводит колонку
«Автосогласование» (AutoApprove, Да/Нет) в каждом из 12 списков согласования —
рядом с уже существующими SLAhours/AskOverdueReason.

Значение приходит из resolve (approval-route API, шаг маршрута настраивается
только в админке — портал само значение не выбирает, только переносит его в
строку списка при отправке заявки/сохранении черновика, тем же путём, что и
slaHours/askOverdueReason). Фактическое автосогласование по истечении SLA
делает фоновая задача бэкенда (Hangfire), не портал.

В ApprovalMatrix добавлена пометка «(авто)» рядом со значением SLA — чисто
информативно, чтобы участник видел, что решение по шагу может принять не
только человек.

Примечание: ServiceRequest и TmcTransfer не передают ни slaHours/
askOverdueReason, ни (теперь) autoApprove из resolve в строку — это
существовавший пробел (SLA на уровне шага у этих двух форм и раньше не
работал), автосогласование для них наследует только это же ограничение.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/20
2026-09-14 09:02:14 +00:00
Тимур Городецкий 11eb127764 feat: доработал заявку перемещение тмц
Tests / frontend-test (push) Successful in 4m45s
2026-09-10 11:19:16 +05:00
gorbenko.pavel cc2efd8771 Заявка на услуги (#18)
Tests / frontend-test (push) Successful in 1m15s
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/18
2026-09-01 12:48:41 +00:00
Тимур Городецкий 6172321710 feat: added split print button
Tests / frontend-test (push) Successful in 4m15s
2026-08-27 10:09:05 +05:00
Тимур Городецкий 488d3b20da fix: в заголовке заявковк на чтение теперь показывает правильный номер 2026-08-26 16:38:10 +05:00
Тимур Городецкий a4bc54def2 feat: feat: брендированная печать, поле «Подразделение» и подача ТМЦ за другого
- Печать доступна только после согласования (Отдел рекрутинга); выбор
  организации и логотип-шапка для форм с несколькими юрлицами
- «СЗ на перемещение ТМЦ»: заявителя можно выбрать (подача за другого),
  маршрут резолвится на выбранного
- «Реферальная рекомендация»: организация вакансии (мультивыбор) и
  подразделение/проект вакансии
- Поле «Подразделение» (справочник) — Vacation, UnpaidLeave, Clearance,
  WorkplaceSetup, RecruitingHire, RecruitingSelection, TmcTransfer
- Поле «Проект» — Vacation, UnpaidLeave, Clearance
2026-08-26 15:49:25 +05:00
Тимур Городецкий 3b4ee93b48 feat: добавил поле организация во все заявки, а также расширил компонет выбора даты для ui-kit 2026-08-25 11:43:57 +05:00
gorbenko.pavel ebb361ab9f Правка ошибок (#11)
Tests / frontend-test (push) Successful in 1m28s
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/11
2026-08-21 06:30:09 +00:00
gorbenko.pavel 6f789f8f1c Архивация списков (#9)
Tests / frontend-test (push) Successful in 1m12s
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/9
2026-08-19 09:07:53 +00:00
gorbenko.pavel e2c7f96021 скрипт 2026-08-17 13:19:43 +05:00
gorbenko.pavel 364835eaf7 Обходной лист (#7)
Tests / frontend-test (push) Successful in 1m16s
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/7
2026-08-17 05:43:38 +00:00
Тимур Городецкий 8578653c16 feat: changed get time logic to approvers 2026-08-13 10:01:08 +05:00