Домен: Организации¶
Организации-исполнители, их кошельки и реквизиты.
—
ORM-модели¶
Organization¶
Таблица organization — организация-исполнитель.
Поле |
Тип |
Описание |
|---|---|---|
|
|
Первичный ключ; передаётся в |
|
|
Полное название |
|
|
Краткое название |
|
|
0=ЮЛ, 1=ИП/физлицо |
|
|
ИНН |
|
|
КПП |
|
|
ОГРН |
|
|
Адрес |
|
|
0=активна |
from autodealer.domain.organization import Organization
org = Organization.objects.get(organization_id=1)
print(org.shortname, org.inn)
active = Organization.objects.filter(hidden=0).all()
Wallet¶
Таблица wallet — кассы и расчётные счета организации.
Также используется в домене Домен: Платежи.
Поле |
Тип |
Описание |
|---|---|---|
|
|
Первичный ключ; передаётся в |
|
|
Название кошелька |
|
|
Организация-владелец |
DirectoryRegistry¶
Таблица directory_registry — универсальная метазапись для любой сущности.
Создаётся автоматически при создании клиента, организации, документа.
Поле |
Тип |
Описание |
|---|---|---|
|
|
Первичный ключ |
|
|
Тип сущности: 1=Organization, 3=Client, 4=ModelDetail |
|
|
Кто создал |
|
|
Кто изменил последним |
Примечание
directory_registry создаётся до основной записи. Триггеры Firebird
читают USER_CONNECTION по CURRENT_CONNECTION для заполнения change_user_id.
Перед UPDATE на таблицах с directory_registry_id необходимо вызвать
set_session_user().
—
Высокоуровневые функции (services)¶
get_organization¶
- autodealer.services.get_organization(organization_id)¶
Загрузить организацию с кошельками.
- Результат:
OrganizationInfoилиNone.
from autodealer.services import get_organization org = get_organization(1) print(org) # OrganizationInfo(id=1, name='ИП Кропотов', inn=None, wallets=2) wallet_id = org.wallet_id_by_name("наличн") # → 1
list_organizations¶
- autodealer.services.list_organizations()¶
Все активные организации с кошельками.
- Результат:
list[OrganizationInfo]
create_organization¶
- autodealer.services.create_organization(fullname, *, shortname=None, inn=None, kpp=None, ogrn=None, address=None, face=0, wallet_names=None, created_by_user_id=1)¶
Создать организацию с кошельками атомарно.
- Параметры:
fullname (str) – Полное название.
wallet_names (list[str]) – Названия касс/счетов.
- Результат:
from autodealer.services import create_organization org = create_organization( "ООО СК-Авто Казань", shortname="СК-Авто", inn="1655012345", address="г. Казань, ул. Скрябина 8к1", wallet_names=["Наличные", "Банковская карта", "СБП"], ) print(org.organization_id, org.wallets)
—
Типы данных¶
- class autodealer.services.OrganizationInfo¶
- organization_id: int
- fullname: str | None
- shortname: str | None
- inn: str | None
- kpp: str | None
- ogrn: str | None
- address: str | None
- face: int
- hidden: int
- wallets: list[dict]
Список
[{"wallet_id": 1, "name": "Наличные"}, ...]
- wallet_id_by_name(name) int | None¶
Найти
wallet_idпо части названия (без учёта регистра).org.wallet_id_by_name("наличн") # → 1 org.wallet_id_by_name("сбер") # → 3