From 59b0fbc5691416f67d07bee3a2ca38ea0d430564 Mon Sep 17 00:00:00 2001 From: "gorbenko.pavel" Date: Fri, 16 Oct 2026 16:37:34 +0500 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=B2=D1=8B=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B7=D0=B0=D1=8F=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BE=D1=82=D0=BF=D1=83=D1=81=D0=BA=20=D0=B2=20=D0=AD?= =?UTF-8?q?=D0=94=D0=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Флаг VACATION_EDO_SIGNING_ENABLED в shared/config.ts: пока false, решение последнего согласующего применяется без обращения к ЭДО. Код отправки оставлен, включается заменой флага на true. Co-Authored-By: Claude Opus 5.5 --- src/webparts/requestPortal/forms/Vacation/README.md | 3 +++ src/webparts/requestPortal/forms/Vacation/VacationView.tsx | 3 ++- src/webparts/requestPortal/shared/config.ts | 7 +++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/webparts/requestPortal/forms/Vacation/README.md b/src/webparts/requestPortal/forms/Vacation/README.md index 58f7694..8ae6b46 100644 --- a/src/webparts/requestPortal/forms/Vacation/README.md +++ b/src/webparts/requestPortal/forms/Vacation/README.md @@ -30,6 +30,9 @@ - **Заголовок элемента** (`Title`): `Отпуск — {ФИО} — дд.мм.гггг`. ## Подписание в ЭДО +> **Сейчас выключено** (`VACATION_EDO_SIGNING_ENABLED = false` в `shared/config.ts`): решение последнего +> согласующего применяется сразу, в ЭДО ничего не уходит. Описанное ниже работает, когда флаг `true`. + Когда **последний согласующий** нажимает «Согласовать», заявление сначала уходит на подпись в TANSU ЭДО (`VacationView` → `onBeforeDecide`), и только потом применяется решение. Последний — значит заявка «На согласовании» и несогласованной осталась одна строка фазы согласования (`completesApprovalPhase`; diff --git a/src/webparts/requestPortal/forms/Vacation/VacationView.tsx b/src/webparts/requestPortal/forms/Vacation/VacationView.tsx index fede67b..2976429 100644 --- a/src/webparts/requestPortal/forms/Vacation/VacationView.tsx +++ b/src/webparts/requestPortal/forms/Vacation/VacationView.tsx @@ -30,6 +30,7 @@ import type { ApproverDecision } from '../../shared/approval'; import { isAlreadyAccepted } from '../../shared/edo/edoErrors'; import { executionPhaseRows } from '../../shared/approval/useRouteExecutors'; import { friendlyErrorMessage } from '../../shared/diagnostics'; +import { VACATION_EDO_SIGNING_ENABLED } from '../../shared/config'; import { approvalListTitle, approvalListTitleForListId, @@ -179,7 +180,7 @@ const VacationView: React.FC = ({ context, itemId, formKey, // заявка остаётся на согласовании, и ошибку видно в панели решения; согласовать можно ещё раз. const sendBeforeFinalApproval = async (decision: ApproverDecision): Promise => { sentBeforeDecision.current = false; - if (decision !== 'approve') return; + if (!VACATION_EDO_SIGNING_ENABLED || decision !== 'approve') return; if (!completesApprovalPhase(status, await approval.getMatrixForRequest(itemId))) return; diff --git a/src/webparts/requestPortal/shared/config.ts b/src/webparts/requestPortal/shared/config.ts index b7743c0..1cb7693 100644 --- a/src/webparts/requestPortal/shared/config.ts +++ b/src/webparts/requestPortal/shared/config.ts @@ -81,6 +81,13 @@ export function getEdoApiBaseUrl(): string { return _edoApiBaseUrl; } +/** + * Отправка согласованного заявления на отпуск на подпись в ЭДО (forms/Vacation/VacationView). + * Временно выключена: решение последнего согласующего применяется без обращения к ЭДО. + * Чтобы вернуть — поставить true, остальной код отправки на месте. + */ +export const VACATION_EDO_SIGNING_ENABLED = false; + // Уведомления согласующим (поток Power Automate, см. approval/notify.service.ts). // Настраивается свойствами веб-части notificationsEnabled / notifyOnlyTo — тот // же модульный синглтон, что и у approvalApiBaseUrl выше.