feat: заявление на отпуск уходит на подпись в ЭДО после финального согласования
Когда последний согласующий согласовывает заявку на отпуск, заявление собирается в браузере как DOCX и отправляется в ЭДО (POST /api/v1/integration/signing-requests). Подписывает сотрудник из заявки, его же почта передаётся как initiator_email. ИИН берётся из Employee/ByEmail, БИН компании — из Dictionary/Companies. Неудача отправки не отменяет согласование и показывается сообщением с кнопкой повтора. Свойство веб-части «С каким ЭДО работать»: стейдж (https://10.0.1.225:8443) или локальный бэкенд (https://localhost:7016). jszip объявлен зависимостью явно (раньше был транзитивным). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
/** Ф.И.О. по частям — так их принимает ЭДО. */
|
||||
export interface IFioParts {
|
||||
lastName: string;
|
||||
firstName: string;
|
||||
middleName: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* «Иванов Иван Иванович» → фамилия, имя, отчество. Справочник отдаёт ФИО одной строкой.
|
||||
* Два слова — отчества нет; больше трёх (например, «оглы», двойные фамилии) — всё после
|
||||
* имени уходит в отчество, чтобы ничего не потерять. Одно слово → ничего не определить:
|
||||
* ЭДО требует и фамилию, и имя.
|
||||
*/
|
||||
export function splitFio(fio: string): IFioParts | undefined {
|
||||
const words = (fio || '').split(/\s+/).filter((w) => w.length > 0);
|
||||
if (words.length < 2) return undefined;
|
||||
const [lastName, firstName, ...rest] = words;
|
||||
return { lastName, firstName, middleName: rest.join(' ') };
|
||||
}
|
||||
Reference in New Issue
Block a user