Files
Report-showcase/.template/development/modules/presentation-commercial-offer.md
T
2026-10-09 01:45:17 +00:00

3.5 KiB
Raw Blame History

Модуль: Технико-коммерческое предложение

Ответственность: формирует ТКП как самостоятельный профиль с предметом, ценой, сроками, коммерческими условиями и приложениями. Расположение: .template/lib/presentation/profiles/commercial-offer.typ

Публичный интерфейс

Символ Тип Описание
commercial-offer-profile() конструктор DocumentProfile Принимает адресата, предмет, стоимость, валюту, сроки и validity
render-commercial-offer() renderer-функция Собирает шапку, резюме предложения, body, условия, подпись и приложения
commercial-terms() domain-normalizer Нормализует цену, НДС, валюту, срок и порядок оплаты
commercial-offer-validators() массив functions Проверяет предмет и обязательные коммерческие поля

Зависимости

Модуль Что использует
.template/lib/domain/document.typ DocumentProfile и context
.template/lib/domain/parties.typ Recipient и Signer
.template/lib/domain/attachments.typ Календарный план, ТЗ и другие приложения
.template/lib/presentation/foundation.typ Typography, page и media policy
.template/lib/presentation/components.typ Letter shell, money/date blocks, company footer, signature block

Инварианты

  • ТКП имеет собственный profile.id и renderer, а не boolean-режим письма.
  • Стоимость хранится структурированно: amount, currency, tax note; renderer не разбирает свободную строку.
  • Срок выполнения и срок действия предложения являются разными полями.
  • Приложения используют общий AttachmentSet и могут иметь цифровую нумерацию.
  • Коммерческие defaults принадлежат constructor, но пользователь может заменить текстовые формулировки через content slots.
  • Renderer не импортирует внешний G:/TYPST/TKP и не читает его config.

Намеренно НЕ обрабатывает

  • Расчёт стоимости из сметы.
  • Юридическую проверку налоговой формулировки.
  • Автоматическое превращение ТКП в договор.
  • Специфические главы научного отчёта.

Заметки для агента

Используйте TKP только как контекст сценариев и визуальную подсказку. Не копируйте монолитный facade. Если уникальная иконка действительно нужна, перенесите её в .template/lib/assets/icons/ и дайте ей семантическое имя. Таблицы календарного плана должны использовать общий corp-table, а не локальную реализацию.