Initial commit
This commit is contained in:
commit
41d230d524
163 files changed
+11500
No files matched your search
@@ -0,0 +1,43 @@
|
||||
# Модуль: Технико-коммерческое предложение
|
||||
|
||||
**Ответственность**: формирует ТКП как самостоятельный профиль с предметом, ценой, сроками, коммерческими условиями и приложениями.
|
||||
**Расположение**: `.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`, а не локальную реализацию.
|
||||
Reference in new issue
Block a user