HELLOWORLD

Обзор системы

HELLOWORLD — веб‑платформа для генерации пакета кредитных документов ОАО «Капитал Банк Центральной Азии». Заменяет десктопныйdoc_generator.py, но с учётом хранения истории, статистики и командной работы.

По каждому клиенту система формирует до 5 PDF-файлов:

  1. Кредитный договорwork1.docx (обычный) или work1_target.docx (целевой), 10 страниц, все реквизиты, подпись директора + печать + подпись заёмщика на последней стр.
  2. Заявка на конверсию KGS→RUBwork3.docx, 1 страница, с курсом, счетами клиента, ролями сотрудников и подписями (клиент / операционное управление / казначейство).
  3. Кассовый ордерwork2.pdf, 1 страница, overlay текста PyMuPDF: сумма RUB, счёт клиента, прописью, паспорт, дата, контролёр / бухгалтер / кассир.
  4. Агентский договор Аска-Тооagency.docx, включается галкой «Сгенерировать вместе с пакетом». Аска-Тоо (Агент) конвертирует RUB → USD и оплачивает поставщика техники.
  5. Commercial Invoice поставщика (CLAAS / John Deere / AGCO Fendt) — PDF, реквизиты и модель зависят от выбранного «Поставщик техники» в форме.
Аудит
Каждый пакет проходит 16–19 проверок
Роли
Роли сотрудников подставляются из справочника
Подписи
3 бакета: пул / клиенты / сотрудники

Правила для агента (чек-лист перед работой)

Этот раздел — основной справочник для ИИ-агента. Перед созданием пакета, регенерацией, отправкой в Telegram или любым автоматическим действием агент обязан свериться с этой инструкцией. Если каких-то данных не хватает — ОСТАНАВЛИВАЕТСЯ и спрашивает у пользователя, а не подставляет заглушки и не оставляет пустые поля.

Обязательные поля клиента (без них не создавать пакет)

Поле API (PackCreate)Поле в БД (packs)Где используетсяПример
full_nameclient_nameвсе документыЭмилбек Уулу Шумкар
inninnкредит, конверсия20806200150208
passport_id ⚠passportкредит, ордер1012030
passport_prefixpassport_prefixкредит, ордерID / AN
addressaddressкредит, конверсияг. Бишкек, ул. Чуй 128, кв. 47
mkk_numbermkk_numberкредит, ордер214071
mkk_datemkk_dateкредит31.12.2018
contract_numbercontract_numberкредит, № договора5810
contract_datecontract_dateкредит2026-02-25
credit_typecredit_typeвыбор шаблонацелевой (default)
credit_purposecredit_purposeкредитсельхозтехника (default)
credit_amountcredit_amount_kgsкредит, ордер11500000
credit_term_monthscredit_term_monthsкредит12
account_suffixaccount_suffixвсе документы2809535
conversion_rateconversion_rateконверсия1.1385
signature_name (auto)signature_nameкредит (подпись)Эмилбек у. Ш.
borrower_sign_choiceborrower_sign_choiceкартинка подписиРандом / имя файла
⚠ Внимание к именам полей. В API схема PackCreate использует passport_id, в БД поле называется passport. Если отправить в API ключ passport — pydantic его молча проигнорирует, и в PDF будет пусто. То же с credit_amount (неcredit_amount_kgs).

Обязательные поля агентского договора

ПолеГде используетсяПример
generate_agencyвключает генерацию агентского+инвойсtrue
dobагентский (данные принципала)2001-06-08
phoneагентский+996 (555) 815-882
emailагентский[email protected]
agency_contract_numberагентский5810
agency_contract_dateагентский2026-08-07
transfer_dateпоручение принципала2026-08-07
transfer_amount_rubагентский, инвойс, поручение7000000
usd_rateинвойс, расчёты82,6500
claas_invoice_numberинвойс, актCLA-0494/26
claas_invoice_dateинвойс, агентский2026-06-29
act_dateакт-отчёт2026-08-21
supplierвыбор поставщикаclaas / john_deere / agco_fendt

Правило: если данных не хватает — СПРОСИ

  • Если у клиента нет паспорта (пустой passport) — спросить у пользователя серию/номер. Не подставлять «0000000», не оставлять пустым.
  • Если нет МКК (mkk_number/mkk_date) — спросить, а не генерировать случайные.
  • Если нет адреса — спросить (или использовать «🎲 бишкекский адрес» из справочника, но только с явного разрешения пользователя).
  • Если нет подписи клиента в /assets/podpisi_CLIENTSпод ФИО — спросить, приложит ли пользователь. Не подставлять чужую подпись как «свою».
  • Если нет даты одного из документов — рассчитать по правилам «Хронология дат» ниже и показать пользователю рассчитанные даты для подтвержденияперед генерацией.
  • Если несколько сценариев одинаково валидны — предложить пользователю выбор через инструмент AskQuestion, а не выбирать самому.

Правило: signature_name (короткая форма ФИО в подписи)

Автоматически формируется бэкендом функцией _short_fio_ru() в app/core/generator.py из full_name, если поле пустое. Формат:

  • Курманбеков Шамил КурманбековичКурманбеков Ш. К.
  • Эмилбек Уулу ШумкарЭмилбек у. Ш.
  • Мирлан кызы БегайымМирлан к. Б.
  • Калмаматов Расул (2 слова) → Калмаматов Р.
  • Абыгазиев (1 слово) → Абыгазиев
При ручном вводе ФИО через форму /generate — если оставить signature_name пустым, бэкенд сам подставит инициалы по этой формуле. Явное значение всегда имеет приоритет.

Правило: отправка в Telegram (5 файлов на клиента)

Стандартный пакет для отправки — ровно 5 PDF + сообщение с ФИО в конце:

  1. Кредитный договор (_scanned.pdf)
  2. Заявка на конверсию (_scanned.pdf)
  3. Кассовый ордер (_scanned.pdf)
  4. Агентский договор без скана
  5. Commercial Invoice без скана
  6. → следом коротким сообщением: ФИО клиента
Не отправляй одновременно и «чистые» и «сканы» одного и того же документа. По правилу «3 скана + 2 чистых» = 5 файлов, ни больше ни меньше.

Правило: 2-й раунд (повторное поручение)

Если клиент делает ещё один перевод — не создавать новый пакет ине трогать оригинальный кредитный/агентский договор. Использовать кнопку «Новое поручение» в карточке пакета или API POST /api/packs/{pack_id}/rounds. Round-2 генерирует только: Поручение принципала, Акт-отчёт, Commercial Invoice. Даты нового раунда: не раньше, чем через 2–3 недели после акта предыдущего.

Правило: кредит на сельхозтехнику (по умолчанию)

  • credit_type: «целевой» (значение целевой) → шаблон work1.docx — договор на сельхозтехнику.
  • credit_purpose: «сельхозтехника» — базовое значение по умолчанию, если пользователь не указал другое.
  • Другой тип (обычный) → work1_target.docx — используем только если пользователь явно попросил «потребительский».

Аудит: как проверить, что все поля заполнены

Перед отправкой в Telegram открыть сгенерированный кредитный PDF и визуально проверить последнюю страницу (реквизиты сторон):

  • Паспорт ID <номер> — должен быть номер, не пусто
  • Выдан МКК <номер> от <дата> г. — оба значения на месте
  • Адрес регистрации: <полный адрес> — не только «г. Бишкек»
  • Строка подписи заёмщика: <Фамилия И.О.>__________ — не пустая линия

А также в первом абзаце договора: «Эмилбек Уулу Шумкар (Паспорт ID 1012030, выдан МКК 214071 от 31.12.2018 г.), зарегистрированный по адресу:<полный адрес>». Если какое-либо значение пропущено — вернуться к созданию, спросить у пользователя, обновить БД, регенерировать.

Хронология дат документов

Обязательная последовательность и ориентировочные разрывы между датамидля одного клиента. Если даты ставятся вручную — соблюдай эту логику. Если поля пустые — система заполняет их автоматически согласно этим правилам.

Эталонный пример (по одному клиенту)

#ДокументПример датыРазрыв от предыдущегоПоле в системе
1Кредитный договор20.02.2026— базовая датаcontract_date
2Заявка на конверсию25.02.2026+3…6 рабочих дней от кредитаoperation_date
3Кассовый ордер (снятие RUB)26.02.2026+1 рабочий день от конверсииcash_order_date
4Commercial Invoice поставщика25.06.2026~4 месяца после ордера (техника заказана)claas_invoice_date
5Агентский договор Аска-Тоо28.07.2026~1 месяц после инвойсаagency_contract_date
6Поручение принципала (заявление на перевод)02.08.2026+3…7 дней от агентскогоtransfer_date
7Акт-отчёт агента15.08.2026+10…14 дней от порученияact_date

Правила ± допусков и запреты

  • Кредит → Конверсия: строго +3…6 рабочих дней. Никогда не в тот же день. Если выпадает на сб/вс — сдвиг на понедельник.
  • Конверсия → Кассовый ордер: обязательно +1 рабочий день. Кассовый ордер не может быть тем же днём, что и заявка на конверсию («конверсия в один день, снятие — на следующий»).
  • Ордер → Инвойс поставщика: ориентир ~3–4 месяца — техника заказывается заранее.
  • Инвойс → Агентский договор: ориентир ~3–6 недель. Агентский договор всегда после инвойса, не раньше.
  • Агентский → Поручение принципала: обычно 3–10 дней. Поручение = момент, когда клиент даёт агенту распоряжение перевести RUB.
  • Поручение → Акт-отчёт: 10–14 календарных дней — банковский процесс конверсии, отправки и подтверждения поставщика.
  • Пересечение договоров запрещено: у одного клиента даты кредитного и агентского договоров не должны совпадать или идти «внахлёст» (агентский всегда сильно позже, минимум через несколько месяцев).
  • Раунды (повторные поручения): следующий раунд поручения возможен не раньше, чем через 2–3 недели после акта предыдущего раунда.

Что делает система автоматически

  • Если operation_date не задана — берётся contract_date + 3..6 рабочих дней (без сб/вс).
  • Если cash_order_date не задана — берётся operation_date + 1 рабочий день (без сб/вс).
  • Если transfer_date (агентский) не задана — берётся agency_contract_date + N дней (см. модуль agency.py).
  • Если act_date не задана — считается от даты поручения по стандартному банковскому расписанию.
  • Все сдвиги пропускают выходные (сб/вс). Праздники не учитываются — проверяй визуально.
Если вручную ставишь дату — сначала сверься с этой таблицей. Кассовый ордер и заявка не могут быть в один день, агентский не может быть раньше инвойса, акт не может быть раньше поручения. Такие пакеты не пройдут аудит.

Главная — Dashboard

Страница / — сводная витрина: KPI, разбивки, график активности.

Активность за период

  • Сегодня / Вчера — количество новых пакетов и сумма переводов ₽
  • 7 дней / 30 дней — накопительно
  • Всего — с момента запуска системы

Разбивки

  • По статусам (Новый / В работе / Использован / Оплачен / Отменён)
  • По банкам‑получателям (агрегируется из блока «Переводы»)
  • По дням за последние 30 суток — на графике
Если суммы по банкам расходятся с фактическими — проверь, что переводы клиентов заведены на странице пакета в блоке «Переводы клиента» (см. раздел «Учёт переводов»).

Создание пакета

Страница /generate. Форма разбита на 6 блоков:

① Клиент

  • ФИОПолное имя. Если в справочнике «Подписи по клиентам» лежит PNG с этим именем — он автоматически возьмётся при выборе подписи «Рандом».
  • ИНН (14 цифр)Реальный ИНН клиента. Кнопка рандома удалена намеренно — сюда только реальные данные.
  • ПаспортСелектор ID/AN (90 px) + номер (7–8 цифр). Кнопка рандома удалена.
  • Адрес🎲 подставит случайный бишкекский адрес (реальные улицы/микрорайоны из справочника).
  • МКК: № / датаКем и когда выдан паспорт. Например: 600044 / 26.02.2022.

② Кредит

  • Тип договораОбычный/Потребительский → шаблон work1_target.docx. Целевой (сельхозтехника) → work1.docx.
  • № договора4-значный номер, генерируется рандомом (🎲) или вводится вручную. Полный номер формируется как ГО-<номер>-<год>-П/К.
  • Дата договораДень подписания договора клиентом.
  • Сумма (KGS)Сумма кредита в сомах. 🎲 подставляет между 8.5–10.0 млн ₽ округлённо.
  • Цель кредитаВыбор из справочника /settings/purposes или свободный ввод. ⚙ рядом — открывает справочник.
  • Срок (мес.)6, 12, 24, 48 и т.д. — от этого зависит дата окончания в договоре.

③ Счёт клиента

Один 7-значный суффикс → 3 счёта клиента (KGS, RUB, ссудный). Формат:1030162002XXXXXXX для KGS-счёта.

④ Конверсия KGS → RUB

  • Курс KGS/RUBКурс НБКР на дату операции. Кнопка «Курс НБКР» открывает официальный сайт на нужную дату.
  • Дата операцииПусто = автоматически «дата договора + 1–3 рабочих дня». Кнопка «Курс на день» открывает НБКР на эту дату.

⑤ Подписи

  • Инициалы клиентаНапример «Ж. Кудайбердиева» — что будет напечатано в подписной линии. Если пусто — берётся из ФИО.
  • Картинка подписиВыбор из общего пула. «Рандом» = если у клиента есть персональная (по ФИО), возьмётся она; иначе случайная из пула /assets/podpisi_ZAEMSHIK.

⑥ Файлы и опции

  • Генерировать заявкуСоздать work3 (заявку на конверсию) + ордер в RUB.
  • Делать ч/б сканыСоздать «_scanned.pdf» — визуально ксерокопии.
  • Плоская схема имёнВсе файлы в одну папку с датой в имени. Иначе — вложенная структура.
  • Сотрудники банка⚙ открывает справочник /settings/staff.
Кнопка «Рандом всё» вверху формы: сразу проставит рандомные значения в ФИО, ИНН, паспорт, ДР, телефон, email, инициалы, № договора, сумму, суффикс счёта, адрес, № инвойса. Полезно для быстрых тестов.

История пакетов

Страница /packs — таблица всех сгенерированных пакетов.

Фильтры

  • Поиск — по ФИО, № договора, ИНН.
  • Статус — Новый / В работе / Использован / Оплачен / Отменён.
  • Банк — фильтр по банку-получателю из переводов.
  • Переводы — только с переводами / только без.
  • Период — пресеты (Сегодня, Вчера, 7 дней, 30 дней, Всё время) + выбор поля («по дате договора» или «по дате создания») + произвольные даты.

Колонки

  • КлиентФИО, кликается — переход в карточку. ⏳ = генерация в процессе. ✗ = ошибка (наведи для деталей).
  • № договора4-значный номер из формы.
  • ДатаДата договора.
  • Сумма KGSОсновная сумма из формы.
  • Переводы ₽Сумма всех переводов клиента + в скобках количество. Кликается на карточку.
  • АудитСоотношение проверок (например 19/19).
  • СтатусСелектор, меняется на месте — сохраняется автоматически.
  • КомментарийИнлайн-редактирование, кнопка 💾 появляется при изменении.

Действия

Сохранить
Появляется при редактировании комментария
Изменить
Перейти в форму /generate с загруженными данными
Открыть
Полная карточка клиента с переводами и файлами
Скачать
ZIP-архив со всеми PDF пакета
Перегенерировать
Пересобрать PDF с текущими данными
Удалить
Удаляет пакет и все его файлы

Массовые операции

  • Чекбокс в шапке — выделить всё на текущей странице.
  • Чекбокс в строке — выбрать конкретный пакет.
  • Кнопка «Скачать выбранные (N)» — один ZIP с папками по каждому клиенту.

Карточка клиента (пакет)

Страница /packs/[id] — детальная карточка одного пакета.

Верх — метаданные и кнопки

  • ЗаголовокФИО клиента + № договора + дата + сумма KGS.
  • Скачать ZIPВсе PDF пакета одним архивом.
  • Изменить данныеОткрывает /generate?from=<id> с заполненной формой для правки и перегенерации.
  • ПерегенерироватьПересобирает PDF без изменения данных. Удаляет старые файлы, аудит перезапускается.
  • УдалитьПолностью удаляет пакет из БД и файловой системы.

Блок «Статус пакета»

Селектор статуса + свободный комментарий. Сохранение по кнопке «Сохранить» (пишется в аудит-журнал).

Блок «Переводы клиента»

Учёт денежных переводов от клиента. Один клиент = много переводов.

  • Форма добавления — Сумма ₽ / Банк / Дата / Заметка → «+ Добавить».
  • Таблица — все переводы клиента, отсортированы по дате (новые сверху).
  • Итого — сумма всех переводов внизу таблицы.
  • Удаление — крестик в правой колонке (с подтверждением).
  • Автообновление — суммы и статистика пересчитываются мгновенно.

Реквизиты

Сводка ключевых полей пакета: ИНН, паспорт, тип кредита, цель, курс, сумма RUB, аудит, статус. Читаемая копия для просмотра.

Файлы

Список PDF-файлов пакета с размером. По каждому файлу: — открыть в новой вкладке, — скачать.

Учёт переводов клиента

Что это. В системе хранится история денежных переводов, приходящих от клиента (за товар, за кредит и т.п.), с разбивкой по банкам и датам. Каждый пакет может иметь множество записей о переводах.

Пример учёта

Клиент James Bond внёс двумя платежами:

  • 29.07 — 500 000 ₽ через ВТБ (комментарий: «на карту»)
  • 04.08 — 200 000 ₽ через Сбербанк (комментарий: «остаток»)

В карточке клиента:

Дата         Банк        Сумма ₽     Заметка
2026-08-04   Сбербанк    200 000     остаток
2026-07-29   ВТБ         500 000     на карту
                          ─────────
                          700 000 ₽

Где отражается

  • В списке /packs — колонка «Переводы ₽» с суммой и (кол-во).
  • На главной — виджеты «Активность» суммируют переводы за период.
  • На главной — «Топ банков» показывает разбивку сумм по банкам.
  • Фильтр «Только с переводами / Без переводов» на /packs.
  • Фильтр «Банк = ВТБ» и т.п. — тоже на /packs.

Настройки

Страница /settings — четыре раздела со справочниками.

Цели кредита

/settings/purposes — редактируемый список целей. Появляется в подсказках при вводе «Цель кредита» и в кнопке 🎲 (случайная цель).

Сотрудники банка

/settings/staff — ФИО сотрудников с распределением по ролям:

  • Контролер / Бухгалтер / Кассир — используются в кассовом ордере (work2).
  • Операционное управление / Казначейство — в заявке на конверсию (work3).
  • При генерации по каждой роли выбирается случайное ФИО из списка (без дублей).

Подписи и штампы

/settings/signatures — 3 бакета PNG-файлов. Подробнее — ниже.

Telegram-бот

/settings/telegram — привязка вашего Telegram (chat_id) к учётной записи, чтобы отправлять PDF пакета одной кнопкой из карточки клиента. Инструкция по привязке — на самой странице.

Подписи и штампы

Страница /settings/signatures с тремя вкладками. Каждая вкладка = отдельная папка на сервере.

Пул заёмщиков

/assets/podpisi_ZAEMSHIK

Случайная подпись для клиента, если у него нет персональной.

Имя файла: Любое имя файла (не пересекается).

По клиентам

/assets/podpisi_CLIENTS

Персональная подпись конкретного клиента. Берётся автоматически при совпадении ФИО.

Имя файла: Имя файла = точное ФИО клиента.

По сотрудникам

/assets/podpisi_STAFF

Подпись сотрудника банка, ляжет рядом с его ФИО в кассовом ордере и заявке на конверсию.

Имя файла: Имя файла = точное ФИО сотрудника.

Как это работает при генерации

  1. Для клиента: сначала ищется PNG в «По клиентам» по ФИО. Если нет — случайная из «Пул заёмщиков».
  2. Для сотрудников: подпись фамилии, выбранной по роли, ищется в «По сотрудникам». Если персональной нет — берётся случайная (уникальная в рамках документа) из того же бакета «По сотрудникам», не из пула заёмщиков.
  3. Для штампа банка + подписи директора на стр. 10 договора — берётся случайная из /assets/shtampi и /assets/podpisi (общий пул).
Если хотя бы одна папка пуста — подпись/штамп просто не накладывается, генерация не ломается. Проверить содержимое можно тут же на вкладке «Настройки → Подписи».

Типовые сценарии

1. Создать пакет для нового клиента

  1. Открой /generate (кнопка «Создать» в меню).
  2. Заполни блоки Клиент / Кредит / Счёт / Конверсия / Подписи / Опции.
  3. Нажми «⚡ Сгенерировать пакет».
  4. После генерации откроется карточка клиента с 3 PDF-файлами.

2. Отметить перевод от клиента

  1. В карточке клиента найди блок «Переводы клиента».
  2. Введи сумму ₽, выбери банк, дату, при желании — заметку.
  3. Нажми «+ Добавить». Сумма моментально появится в списке /packs и на главной.

3. Массовая выгрузка

  1. На /packs включи нужные фильтры (например: за 7 дней, только с переводами).
  2. Отметь пакеты чекбоксами (или «выбрать все» в шапке таблицы).
  3. Нажми «Скачать выбранные (N)» — получишь один ZIP.

4. Поправить опечатку и перегенерировать

  1. В карточке клиента нажми «📝 Изменить данные».
  2. Форма /generate откроется с данными этого пакета.
  3. Внеси правки и нажми «💾 Сохранить и перегенерировать».
  4. Старые PDF удалятся, новые пересоберутся, аудит перезапустится.
  5. Если галка «Сгенерировать агентский» включена — агентский и инвойс тоже пересоберутся.

5. Собрать агентский договор + инвойс поставщика

  1. В форме /generate заполни блок «⑦ Агентский договор + инвойс».
  2. Выбери поставщика (CLAAS / John Deere / AGCO Fendt) — от него зависят реквизиты инвойса и модель техники.
  3. Заполни: дату рождения клиента, № и дату инвойса, сумму ₽, курс USD/RUB, дату перевода клиента.
  4. Включи галку «Сгенерировать сразу вместе с пакетом» и нажми «⚡ Сгенерировать пакет».
  5. В карточке клиента появится отдельный блок «Агентский договор + инвойс» с двумя PDF.

6. Отправить PDF пакета в Telegram

  1. Один раз привяжи свой Telegram на /settings/telegram (см. FAQ).
  2. В списке /packs или в карточке клиента нажми «В Telegram» (📤).
  3. Все PDF пакета уйдут тебе в личку. Ссылку/файлы можно переслать в рабочий чат.

5. Проверить сколько прошло через ВТБ

  1. Открой /packs.
  2. В фильтре «Все банки» выбери «ВТБ».
  3. Внизу — общий счётчик пакетов, а на главной — «Топ банков‑получателей» покажет сумму.

FAQ

PDF не генерируется, статус «error»развернуть
Открой карточку клиента — там будет красный блок с текстом ошибки. Чаще всего это отсутствие шрифта или проблема с шаблоном. Нажми «Перегенерировать», если не поможет — покажи сообщение админу.
В договоре пусто в блоке «ЗАЕМЩИК»развернуть
Значит в форме были оставлены пустыми поля ИНН/паспорт/МКК/адрес. Открой «📝 Изменить данные» и заполни, потом перегенерируй.
Штамп не накрыл «Исаканова Э.С.» на последней страницеразвернуть
Overlay зависит от наличия PNG-файлов штампа и подписи в /assets/shtampi и /assets/podpisi. Загрузи их через /settings/signatures (или дай ссылку админу, он разложит).
У клиента должна быть его личная подпись, а не случайнаяразвернуть
Открой «Настройки → Подписи → По клиентам». Загрузи PNG с именем файла = точное ФИО клиента. При следующей генерации при выборе «Рандом» система автоматически возьмёт её.
Как посмотреть курс НБКР на конкретную дату?развернуть
На /generate рядом с полями «Курс KGS/RUB» и «Дата операции» есть кнопки Курс НБКР — они открывают официальный сайт НБКР с параметрами выбранной даты.
Пакет создан по ошибке, как удалить?развернуть
Открой карточку клиента → кнопка «🗑 Удалить» (с подтверждением). Либо на /packs — кнопка удалить в строке.
Как быстро внести 10 переводов подряд?развернуть
Открой карточку клиента. В блоке «Переводы клиента» после каждого «+ Добавить» поле «Сумма» очищается автоматически, но «Банк» и «Дата» сохраняются — можно быстро вбить серию.
Можно ли сгенерировать без сканов и заявки?развернуть
Да, на /generate в блоке «⑥ Файлы и опции» сними галки: «Генерировать заявку на конверсию» и «Сразу делать ч/б сканы». Тогда получишь только договор + кассовый ордер.
Как отправить пакет PDF в Telegram?развернуть
Один раз привяжи свой Telegram на /settings/telegram: напиши боту /start, скопируй chat_id в поле и нажми «Привязать» — бот отправит тебе тестовое сообщение. После этого в списке пакетов и в карточке клиента появится кнопка «В Telegram» (значок 📤) — она отправит все PDF пакета тебе в личку. Если статус пакета «⏳ генерация», кнопка неактивна.
Агентский договор не собирается вместе с пакетомразвернуть
Проверь блок «⑦ Агентский договор + инвойс» — там должна быть включена галка «Сгенерировать сразу вместе с пакетом» и заполнены все обязательные поля (ДР клиента, № инвойса, сумма ₽, курс USD/RUB, дата перевода). Если каких-то данных нет — в карточке клиента будет жёлтая подсказка. Тогда допиши поля и нажми «Сохранить и перегенерировать» — агентский дособерётся автоматически.
Не хватает информации? Скажи админу — доработаем инструкцию.