Public release from ruodoo-project: 19.0 - 2026-05-31 21:19:12 UTC

This commit is contained in:
CI Publish Bot
2026-05-31 21:19:21 +00:00
commit aa4214c195
1213 changed files with 183945 additions and 0 deletions

View File

@ -0,0 +1,80 @@
# ruodoo_demo_data — Описание модуля и требования к установке
Модуль загружает единый набор демо-данных для всех модулей ruodoo: контрагентов, пользователей, продуктов, договоров, счетов, заказов, проектов, DMS и показателей.
---
## Зависимости
Модуль требует наличия следующих модулей (все должны быть установлены **до** установки `ruodoo_demo_data`):
- `base`, `base_setup`, `account`, `crm`, `project`, `sale`
- `base_user_role`
- `docx_report`
- `l10n_ru_advance_payments`, `l10n_ru_attorney`, `l10n_ru_contract`, `l10n_ru_contract_account`, `l10n_ru_contract_sale`, `l10n_ru_doc`, `l10n_ru_upd_xml`
- `mklab_base_indicators`, `mklab_base_indicators_extended`, `mklab_dms_document`, `mklab_project_task_indicators`
- `dms`
Если хотите валидацию ИНН через `base_vat` — он тоже должен быть установлен заранее.
---
## Валюта: рубли вместо долларов
По умолчанию Odoo создаёт компанию с валютой USD. Чтобы все суммы считались в рублях, нужно сделать это вручную до или сразу после установки модуля.
**Шаги:**
1. Перейдите в `Бухгалтерия → Конфигурация → Валюты`.
2. Найдите `Российский рубль (RUB)` и активируйте его (переключатель в колонке "Активна").
3. Перейдите в `Настройки → Компании → [ваша компания]`.
4. В поле "Валюта" выберите `RUB`.
5. Сохраните.
Если установить `l10n_ru` (российская локализация) **до** `ruodoo_demo_data` — RUB активируется автоматически, останется только выбрать его в настройках компании.
---
## OdooBot — имя не перезаписывается
`base.partner_root` — это системный партнёр OdooBot. Ранее в `data/res_partner.xml` была запись, которая перезаписывала его имя на "Смирнов Дмитрий Александрович". Запись удалена — OdooBot не затрагивается.
Имя директора компании задаётся только через `demo_user_director` (модель `res.users`) и `res.company.chief_id`.
---
## VAT (ИНН) для контрагентов
Модуль `base_vat` проверяет поле `vat`. Для России ожидается 10 цифр ИНН юридического лица без каких-либо префиксов (формат: `7714321098`).
Всем юридическим лицам в `data/res_partner.xml` и `data/res_company.xml` добавлено поле `vat` — только цифры ИНН с валидной контрольной суммой.
| Партнёр | vat |
|---|---|
| ООО "Технологии Будущего" | 7714321098 |
| ООО "Ритейл Плюс" | 7701987652 |
| ООО "МегаТорг" | 7736543217 |
| ООО "СтройМатериалы Групп" | 7802876540 |
| ООО "Снабжение Плюс" | 7703456784 |
| ООО "ПромКомплект" | 6670123457 |
| ООО "Моя Компания" (main_partner) | 7704567896 |
Физические лица (контакты, директора) поле `vat` не заполняют.
---
## Порядок установки (шаг за шагом)
1. Установить российскую локализацию: `l10n_ru` (активирует RUB, создаёт план счетов).
2. Установить все зависимые модули из списка выше.
3. Перейти в `Настройки → Компании` и вручную установить валюту **RUB**.
4. Установить `ruodoo_demo_data`.
5. Проверить: OdooBot в чате должен остаться с именем "OdooBot".
---
## Известные ограничения
- Данные загружаются с `noupdate="1"` — повторная установка не перезапишет изменения, сделанные вручную.
- Если `base_vat` не установлен — поле `vat` сохраняется без валидации, ошибок не будет.
- Если `base_vat` установлен — все ИНН в модуле проверены по алгоритму контрольной суммы и пройдут валидацию.

View File

@ -0,0 +1 @@
from . import models

View File

@ -0,0 +1,97 @@
{
'name': 'RuOdoo Demo Data',
'version': '19.0.1.0.0',
'category': 'Technical',
'summary': 'Единый загрузчик демо-данных для всех модулей ruodoo',
'description': """
Модуль загружает полный набор демо-данных для российской конфигурации Odoo:
- Контрагенты (покупатели и поставщики) с российскими реквизитами (ИНН, КПП, ОГРН, ОКПО, VAT)
- Пользователи и роли
- Продукты и единицы измерения
- Сотрудники
- Договоры и профили договоров
- Счета-фактуры и бухгалтерские проводки
- Заказы на продажу и закупку
- Авансовые счета и доверенности
- CRM: стадии и сделки
- Проекты и задачи
- Показатели (mklab indicators)
- DMS: хранилища, директории, файлы, шаблоны, документы
Предназначен для быстрого старта и демонстрации возможностей ruodoo-модулей.
""",
'author': 'MK.Lab',
'website': 'https://www.inf-centre.ru/',
'depends': [
'base',
'base_setup',
'account',
'crm',
'project',
'sale',
'base_user_role',
'docx_report',
'l10n_ru_advance_payments',
'l10n_ru_attorney',
'l10n_ru_contract',
'l10n_ru_contract_account',
'l10n_ru_contract_sale',
'l10n_ru_doc',
'l10n_ru_upd_xml',
'mklab_base_indicators',
'mklab_base_indicators_extended',
'mklab_dms_document',
'mklab_project_task_indicators',
'dms',
],
'data': [
'views/res_config_settings_views.xml',
# Базовые справочники (нет зависимостей)
'data/res_partner.xml',
'data/res_bank.xml',
'data/res_users.xml',
'data/res_company.xml',
'data/res_users_role.xml',
'data/uom_uom.xml',
'data/product_product.xml',
'data/hr_employee.xml',
# Договоры (зависят от res.partner)
'data/contract_profile.xml',
'data/partner_contract.xml',
# Бухгалтерия (зависит от res.partner, product.product)
'data/account_move.xml',
# Закупки и доверенности (зависят от res.partner, hr.employee)
'data/purchase_order.xml',
'data/base_consent.xml',
# Авансовые счета (зависят от res.partner)
'data/order_prepaid.xml',
# Продажи (зависят от res.partner, partner.contract.customer)
'data/sale_order.xml',
# CRM
'data/crm_stage.xml',
'data/crm_lead.xml',
# Проекты
'data/project_project.xml',
'data/project_task.xml',
# Показатели
'data/hg_index_code.xml',
'data/hg_node.xml',
'data/hg_index.xml',
'data/hg_templates.xml',
# DMS (строгий порядок по внутренним зависимостям)
'data/dms_access_group.xml',
'data/dms_category.xml',
'data/dms_tag.xml',
'data/dms_storage.xml',
'data/dms_directory.xml',
'data/dms_file.xml',
'data/dms_template.xml',
'data/dms_document.xml',
# DOCX шаблоны
'data/docx_template.xml',
],
'installable': True,
'application': False,
'license': 'LGPL-3',
}

View File

@ -0,0 +1,208 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Инвойсы создаются в draft. mt_contract_id не ставим — иначе constrains проверяет receivable счёт -->
<!-- ========== ИСХОДЯЩИЙ СЧЁТ 1: ООО "Технологии Будущего" ========== -->
<record id="demo_invoice_001" model="account.move">
<field name="move_type">out_invoice</field>
<field name="partner_id" ref="demo_partner_buyer"/>
<field name="company_id" ref="base.main_company"/>
<field name="invoice_date">2026-01-25</field>
<field name="invoice_date_due">2026-02-25</field>
<field name="sf_number">1</field>
<field name="osnovanie">Договор № 001/2026 от 10.01.2026</field>
<field name="gruzootpr" ref="base.main_partner"/>
<field name="gruzopol" ref="demo_partner_buyer"/>
<field name="kladov" ref="demo_employee_ivanov"/>
<field name="only_service" eval="True"/>
</record>
<record id="demo_invoice_001_line_1" model="account.move.line">
<field name="move_id" ref="demo_invoice_001"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_software_tmpl'))]"/>
<field name="quantity">1.0</field>
<field name="price_unit">185000.0</field>
<field name="name">Система управления складом WMS Pro</field>
</record>
<record id="demo_invoice_001_line_2" model="account.move.line">
<field name="move_id" ref="demo_invoice_001"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_implementation_tmpl'))]"/>
<field name="quantity">1.0</field>
<field name="price_unit">120000.0</field>
<field name="name">Услуги внедрения и настройки системы</field>
</record>
<record id="demo_invoice_001_line_3" model="account.move.line">
<field name="move_id" ref="demo_invoice_001"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_training_tmpl'))]"/>
<field name="quantity">2.0</field>
<field name="price_unit">45000.0</field>
<field name="name">Обучение пользователей (группа до 10 чел.)</field>
</record>
<!-- ========== ИСХОДЯЩИЙ СЧЁТ 2: ООО "Ритейл Плюс" ========== -->
<record id="demo_invoice_002" model="account.move">
<field name="move_type">out_invoice</field>
<field name="partner_id" ref="demo_partner_invoice_1"/>
<field name="company_id" ref="base.main_company"/>
<field name="invoice_date">2026-02-01</field>
<field name="invoice_date_due">2026-03-01</field>
<field name="sf_number">2</field>
<field name="osnovanie">Договор № 002/2026 от 20.01.2026</field>
<field name="gruzootpr" ref="base.main_partner"/>
<field name="gruzopol" ref="demo_partner_invoice_1"/>
<field name="kladov" ref="demo_employee_ivanov"/>
<field name="only_service" eval="True"/>
</record>
<record id="demo_invoice_002_line_1" model="account.move.line">
<field name="move_id" ref="demo_invoice_002"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_license_tmpl'))]"/>
<field name="quantity">10.0</field>
<field name="price_unit">24000.0</field>
<field name="name">Лицензия пользователя WMS Pro (1 год)</field>
</record>
<record id="demo_invoice_002_line_2" model="account.move.line">
<field name="move_id" ref="demo_invoice_002"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_support_tmpl'))]"/>
<field name="quantity">3.0</field>
<field name="price_unit">35000.0</field>
<field name="name">Техническая поддержка и сопровождение (мес.)</field>
</record>
<!-- ========== ИСХОДЯЩИЙ СЧЁТ 3: ООО "МегаТорг" ========== -->
<record id="demo_invoice_003" model="account.move">
<field name="move_type">out_invoice</field>
<field name="partner_id" ref="demo_partner_invoice_2"/>
<field name="company_id" ref="base.main_company"/>
<field name="invoice_date">2026-02-10</field>
<field name="invoice_date_due">2026-03-10</field>
<field name="sf_number">3</field>
<field name="osnovanie">Договор № 003/2026 от 05.02.2026</field>
<field name="gruzootpr" ref="base.main_partner"/>
<field name="gruzopol" ref="demo_partner_invoice_2"/>
<field name="kladov" ref="demo_employee_ivanov"/>
<field name="only_service" eval="True"/>
</record>
<record id="demo_invoice_003_line_1" model="account.move.line">
<field name="move_id" ref="demo_invoice_003"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_tovar_tmpl'))]"/>
<field name="quantity">2.0</field>
<field name="price_unit">95000.0</field>
<field name="name">Комплект оборудования для автоматизации</field>
</record>
<record id="demo_invoice_003_line_2" model="account.move.line">
<field name="move_id" ref="demo_invoice_003"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_implementation_tmpl'))]"/>
<field name="quantity">1.0</field>
<field name="price_unit">120000.0</field>
<field name="name">Услуги внедрения и настройки системы</field>
</record>
<!-- ========== ВХОДЯЩИЙ СЧЁТ 1: ООО "СтройМатериалы Групп" ========== -->
<record id="demo_bill_001" model="account.move">
<field name="move_type">in_invoice</field>
<field name="partner_id" ref="demo_partner_supplier"/>
<field name="company_id" ref="base.main_company"/>
<field name="invoice_date">2026-01-18</field>
<field name="invoice_date_due">2026-02-18</field>
</record>
<record id="demo_bill_001_line_1" model="account.move.line">
<field name="move_id" ref="demo_bill_001"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_server_tmpl'))]"/>
<field name="quantity">2.0</field>
<field name="price_unit">240000.0</field>
<field name="name">Сервер Dell PowerEdge R740</field>
</record>
<record id="demo_bill_001_line_2" model="account.move.line">
<field name="move_id" ref="demo_bill_001"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_tovar_tmpl'))]"/>
<field name="quantity">5.0</field>
<field name="price_unit">65000.0</field>
<field name="name">Комплект оборудования для автоматизации</field>
</record>
<!-- ========== ВХОДЯЩИЙ СЧЁТ 2: ООО "ПромКомплект" ========== -->
<record id="demo_bill_002" model="account.move">
<field name="move_type">in_invoice</field>
<field name="partner_id" ref="demo_partner_vendor_1"/>
<field name="company_id" ref="base.main_company"/>
<field name="invoice_date">2026-02-12</field>
<field name="invoice_date_due">2026-03-12</field>
</record>
<record id="demo_bill_002_line_1" model="account.move.line">
<field name="move_id" ref="demo_bill_002"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_tovar_tmpl'))]"/>
<field name="quantity">10.0</field>
<field name="price_unit">65000.0</field>
<field name="name">Комплект оборудования для автоматизации</field>
</record>
<!-- ========== УПД ИНВОЙС ========== -->
<record id="demo_invoice_doc_001" model="account.move">
<field name="move_type">out_invoice</field>
<field name="partner_id" ref="demo_partner_buyer"/>
<field name="company_id" ref="base.main_company"/>
<field name="invoice_date">2026-03-01</field>
<field name="invoice_date_due">2026-04-01</field>
<field name="sf_number">4</field>
<field name="osnovanie">Договор № 001/2026 от 10.01.2026</field>
<field name="gruzopol" ref="demo_partner_buyer"/>
<field name="gruzootpr" ref="base.main_partner"/>
<field name="kladov" ref="demo_employee_ivanov"/>
<field name="only_service" eval="True"/>
</record>
<record id="demo_invoice_doc_line_001" model="account.move.line">
<field name="move_id" ref="demo_invoice_doc_001"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_tovar_tmpl'))]"/>
<field name="quantity">3.0</field>
<field name="price_unit">95000.0</field>
<field name="name">Комплект оборудования для автоматизации</field>
</record>
<!-- ========== АЛИАСЫ ДЛЯ СОВМЕСТИМОСТИ ========== -->
<record id="demo_account_move_invoice_1" model="account.move">
<field name="move_type">out_invoice</field>
<field name="partner_id" ref="demo_partner_invoice_1"/>
<field name="company_id" ref="base.main_company"/>
<field name="invoice_date">2026-02-15</field>
<field name="only_service" eval="True"/>
</record>
<record id="demo_account_move_invoice_1_line_1" model="account.move.line">
<field name="move_id" ref="demo_account_move_invoice_1"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_support_tmpl'))]"/>
<field name="quantity">1.0</field>
<field name="price_unit">35000.0</field>
<field name="name">Техническая поддержка и сопровождение (мес.)</field>
</record>
<record id="demo_account_move_invoice_2" model="account.move">
<field name="move_type">out_invoice</field>
<field name="partner_id" ref="demo_partner_invoice_2"/>
<field name="company_id" ref="base.main_company"/>
<field name="invoice_date">2026-02-20</field>
<field name="only_service" eval="True"/>
</record>
<record id="demo_account_move_invoice_2_line_1" model="account.move.line">
<field name="move_id" ref="demo_account_move_invoice_2"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_license_tmpl'))]"/>
<field name="quantity">5.0</field>
<field name="price_unit">24000.0</field>
<field name="name">Лицензия пользователя WMS Pro (1 год)</field>
</record>
<record id="demo_account_move_bill_1" model="account.move">
<field name="move_type">in_invoice</field>
<field name="partner_id" ref="demo_partner_vendor_1"/>
<field name="company_id" ref="base.main_company"/>
<field name="invoice_date">2026-02-25</field>
</record>
<record id="demo_account_move_bill_1_line_1" model="account.move.line">
<field name="move_id" ref="demo_account_move_bill_1"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_tovar_tmpl'))]"/>
<field name="quantity">3.0</field>
<field name="price_unit">65000.0</field>
<field name="name">Комплект оборудования для автоматизации</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Доверенность (из l10n_ru_attorney) -->
<record id="demo_consent_001" model="base.consent">
<field name="name">ДОВ-2026-001</field>
<field name="date_from">2026-01-15</field>
<field name="date_to">2026-07-15</field>
<field name="partner_id" ref="demo_attorney_partner_supplier"/>
<field name="employee_id" ref="demo_employee_ivanov"/>
<field name="purchaseorder_id" ref="demo_purchase_order_001"/>
<field name="company_id" ref="base.main_company"/>
</record>
</data>
</odoo>

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Создаём счета для профилей договоров если план счетов ещё не настроен -->
<record id="demo_account_payable" model="account.account">
<field name="name">Расчёты с поставщиками</field>
<field name="code">60100</field>
<field name="account_type">liability_payable</field>
<field name="reconcile" eval="True"/>
<field name="company_ids" eval="[(4, ref('base.main_company'))]"/>
</record>
<record id="demo_account_receivable" model="account.account">
<field name="name">Расчёты с покупателями</field>
<field name="code">62100</field>
<field name="account_type">asset_receivable</field>
<field name="reconcile" eval="True"/>
<field name="company_ids" eval="[(4, ref('base.main_company'))]"/>
</record>
<!-- Виды договоров -->
<record id="demo_contract_profile_supply" model="contract.profile">
<field name="name">Договор поставки</field>
<field name="payable_account_id" ref="demo_account_payable"/>
<field name="receivable_account_id" ref="demo_account_receivable"/>
<field name="max_receivable_id">0</field>
<field name="payment_term_id" ref="account.account_payment_term_immediate"/>
<field name="journal_id" model="account.journal"
search="[('type', '=', 'sale'), ('company_id', '=', obj().env.ref('base.main_company').id)]"/>
</record>
<record id="demo_contract_profile_service" model="contract.profile">
<field name="name">Договор оказания услуг</field>
<field name="payable_account_id" ref="demo_account_payable"/>
<field name="receivable_account_id" ref="demo_account_receivable"/>
<field name="max_receivable_id">0</field>
<field name="payment_term_id" ref="account.account_payment_term_immediate"/>
<field name="journal_id" model="account.journal"
search="[('type', '=', 'sale'), ('company_id', '=', obj().env.ref('base.main_company').id)]"/>
</record>
<record id="demo_contract_profile_agency" model="contract.profile">
<field name="name">Агентский договор</field>
<field name="payable_account_id" ref="demo_account_payable"/>
<field name="receivable_account_id" ref="demo_account_receivable"/>
<field name="max_receivable_id">0</field>
<field name="payment_term_id" ref="account.account_payment_term_immediate"/>
<field name="journal_id" model="account.journal"
search="[('type', '=', 'sale'), ('company_id', '=', obj().env.ref('base.main_company').id)]"/>
</record>
<!-- Дни доставки/отгрузки -->
<record id="demo_day_monday" model="contract.day">
<field name="name">Понедельник</field>
</record>
<record id="demo_day_wednesday" model="contract.day">
<field name="name">Среда</field>
</record>
<record id="demo_day_friday" model="contract.day">
<field name="name">Пятница</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Демо сделки CRM -->
<record id="demo_crm_lead_1" model="crm.lead">
<field name="type">opportunity</field>
<field name="name">Редизайн сайта</field>
<field name="contact_name">Алиса Мартин</field>
<field name="partner_name">TechCorp LLC</field>
<field name="email_from">alice.martin@techcorp.example.com</field>
<field name="phone">+1 555 100 2000</field>
<field name="expected_revenue">15000</field>
<field name="priority">1</field>
<field name="stage_id" ref="demo_crm_stage_qualified"/>
</record>
<record id="demo_crm_lead_2" model="crm.lead">
<field name="type">opportunity</field>
<field name="name">Внедрение ERP</field>
<field name="contact_name">Боб Джонсон</field>
<field name="partner_name">Global Industries</field>
<field name="email_from">bob.johnson@globalind.example.com</field>
<field name="phone">+1 555 200 3000</field>
<field name="expected_revenue">50000</field>
<field name="priority">2</field>
<field name="stage_id" ref="demo_crm_stage_proposition"/>
</record>
<record id="demo_crm_lead_3" model="crm.lead">
<field name="type">lead</field>
<field name="name">Миграция в облако</field>
<field name="contact_name">Кэрол Уайт</field>
<field name="partner_name">StartupXYZ</field>
<field name="email_from">carol@startupxyz.example.com</field>
<field name="phone">+1 555 300 4000</field>
<field name="expected_revenue">8000</field>
<field name="priority">0</field>
<field name="stage_id" ref="demo_crm_stage_new"/>
</record>
</data>
</odoo>

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Демо стадии CRM -->
<record id="demo_crm_stage_new" model="crm.stage">
<field name="name">Новый</field>
<field name="sequence">1</field>
</record>
<record id="demo_crm_stage_qualified" model="crm.stage">
<field name="name">Квалифицирован</field>
<field name="sequence">2</field>
</record>
<record id="demo_crm_stage_proposition" model="crm.stage">
<field name="name">Предложение</field>
<field name="sequence">3</field>
</record>
<record id="demo_crm_stage_won" model="crm.stage">
<field name="name">Выиграно</field>
<field name="sequence">4</field>
<field name="is_won">True</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="access_group_01_demo" model="dms.access.group">
<field name="name">Admin</field>
<field name="perm_create">True</field>
<field name="perm_write">True</field>
<field name="perm_unlink">True</field>
<field name="explicit_user_ids" eval="[(6, 0, [ref('base.user_admin'), ref('ruodoo_demo_data.demo_user_director')])]" />
</record>
<record id="access_group_02_demo" model="dms.access.group">
<field name="name">Portal</field>
<field name="group_ids" eval="[(6, 0, [ref('base.group_portal')])]" />
</record>
<record id="access_group_03_demo" model="dms.access.group">
<field name="name">User</field>
<field name="explicit_user_ids" eval="[(6, 0, [ref('ruodoo_demo_data.demo_user_manager'), ref('ruodoo_demo_data.demo_user_purchaser'), ref('ruodoo_demo_data.demo_user_accountant')])]" />
</record>
</odoo>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="category_01_demo" model="dms.category">
<field name="name">Internal</field>
</record>
<record id="category_02_demo" model="dms.category">
<field name="name">Human Resource</field>
<field name="parent_id" ref="category_01_demo" />
</record>
<record id="category_03_demo" model="dms.category">
<field name="name">Contracts</field>
<field name="parent_id" ref="category_02_demo" />
</record>
<record id="category_04_demo" model="dms.category">
<field name="name">Traveling</field>
<field name="parent_id" ref="category_02_demo" />
</record>
<record id="category_05_demo" model="dms.category">
<field name="name">External</field>
</record>
<record id="category_06_demo" model="dms.category">
<field name="name">News</field>
<field name="parent_id" ref="category_05_demo" />
</record>
</odoo>

View File

@ -0,0 +1,114 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="directory_01_demo" model="dms.directory">
<field name="name">Documents</field>
<field name="is_root_directory" eval="True" />
<field name="parent_id" eval="False" />
<field name="color" eval="1" />
<field name="storage_id" ref="storage_demo" />
<field name="category_id" ref="category_01_demo" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_01_demo'), ref('tag_05_demo')])]" />
<field name="group_ids" eval="[(6, 0, [ref('access_group_01_demo')])]" />
</record>
<record id="directory_02_demo" model="dms.directory">
<field name="name">Media</field>
<field name="is_root_directory" eval="True" />
<field name="parent_id" eval="False" />
<field name="color" eval="2" />
<field name="storage_id" ref="storage_demo" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_01_demo'), ref('tag_03_demo')])]" />
<field name="group_ids" eval="[(6, 0, [ref('access_group_01_demo')])]" />
</record>
<record id="directory_03_demo" model="dms.directory">
<field name="name">Sheets</field>
<field name="is_root_directory" eval="False" />
<field name="color" eval="1" />
<field name="parent_id" ref="directory_01_demo" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_01_demo'), ref('tag_04_demo')])]" />
</record>
<record id="directory_04_demo" model="dms.directory">
<field name="name">Templates</field>
<field name="is_root_directory" eval="False" />
<field name="color" eval="1" />
<field name="parent_id" ref="directory_01_demo" />
<field name="category_id" ref="category_01_demo" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_07_demo')])]" />
</record>
<record id="directory_05_demo" model="dms.directory">
<field name="name">Photos</field>
<field name="is_root_directory" eval="False" />
<field name="color" eval="2" />
<field name="category_id" ref="category_02_demo" />
<field name="parent_id" ref="directory_02_demo" />
<field name="group_ids" eval="[(6, 0, [ref('access_group_01_demo'), ref('access_group_02_demo')])]" />
</record>
<record id="directory_06_demo" model="dms.directory">
<field name="name">2017</field>
<field name="is_root_directory" eval="False" />
<field name="color" eval="2" />
<field name="parent_id" ref="directory_05_demo" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_02_demo'), ref('tag_03_demo')])]" />
</record>
<record id="directory_07_demo" model="dms.directory">
<field name="name">2018</field>
<field name="is_root_directory" eval="False" />
<field name="color" eval="2" />
<field name="parent_id" ref="directory_05_demo" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_02_demo'), ref('tag_06_demo')])]" />
</record>
<record id="directory_08_demo" model="dms.directory">
<field name="name">Videos</field>
<field name="is_root_directory" eval="False" />
<field name="color" eval="2" />
<field name="parent_id" ref="directory_02_demo" />
</record>
<record id="directory_09_demo" model="dms.directory">
<field name="name">Music</field>
<field name="is_root_directory" eval="False" />
<field name="color" eval="2" />
<field name="parent_id" ref="directory_02_demo" />
</record>
<record id="directory_10_demo" model="dms.directory">
<field name="name">Graphics</field>
<field name="is_root_directory" eval="False" />
<field name="parent_id" ref="directory_02_demo" />
</record>
<record id="directory_11_demo" model="dms.directory">
<field name="name">Mails</field>
<field name="is_root_directory" eval="True" />
<field name="parent_id" eval="False" />
<field name="color" eval="3" />
<field name="storage_id" ref="storage_demo" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_04_demo'), ref('tag_05_demo')])]" />
<field name="group_ids" eval="[(6, 0, [ref('access_group_01_demo'), ref('access_group_02_demo')])]" />
</record>
<record id="directory_12_demo" model="dms.directory">
<field name="name">Data</field>
<field name="is_root_directory" eval="False" />
<field name="color" eval="1" />
<field name="parent_id" ref="directory_01_demo" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_06_demo'), ref('tag_07_demo')])]" />
</record>
<record id="directory_13_demo" model="dms.directory">
<field name="name">Code</field>
<field name="is_root_directory" eval="False" />
<field name="color" eval="1" />
<field name="category_id" ref="category_01_demo" />
<field name="parent_id" ref="directory_01_demo" />
</record>
<record id="directory_14_demo" model="dms.directory">
<field name="name">Slides</field>
<field name="is_root_directory" eval="False" />
<field name="category_id" ref="category_01_demo" />
<field name="parent_id" ref="directory_01_demo" />
</record>
<record id="directory_root_res_partner_demo" model="dms.directory">
<field name="name">Partners</field>
<field name="is_root_directory" eval="True" />
<field name="color" eval="1" />
<field name="storage_id" ref="storage_attachment_demo" />
<field name="category_id" ref="category_01_demo" />
<field name="model_id" ref="base.model_res_partner" />
<field name="res_model">res.partner</field>
</record>
</odoo>

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Входящий документ -->
<record id="demo_dms_document_incoming" model="dms.document">
<field name="type_document">incoming</field>
<field name="name">ВХ-2026-001</field>
<field name="partner_id" ref="demo_partner_supplier"/>
<field name="date">2026-01-10</field>
<field name="text">&lt;p&gt;Входящее письмо от поставщика с коммерческим предложением.&lt;/p&gt;</field>
<field name="incoming_file_type">pdf</field>
<field name="state">draft</field>
<field name="company_id" ref="base.main_company"/>
</record>
<!-- Исходящий документ -->
<record id="demo_dms_document_outgoing" model="dms.document">
<field name="type_document">outgoing</field>
<field name="name">ИСХ-2026-001</field>
<field name="partner_id" ref="demo_partner_buyer"/>
<field name="date">2026-01-12</field>
<field name="text">&lt;p&gt;Исходящее письмо покупателю с подтверждением заказа.&lt;/p&gt;</field>
<field name="incoming_file_type">pdf</field>
<field name="state">draft</field>
<field name="company_id" ref="base.main_company"/>
</record>
<!-- Внутренний документ -->
<record id="demo_dms_document_internal" model="dms.document">
<field name="type_document">internal</field>
<field name="name">ВН-2026-001</field>
<field name="partner_id" ref="base.main_partner"/>
<field name="date">2026-01-15</field>
<field name="text">&lt;p&gt;Внутренняя служебная записка о порядке работы с документами.&lt;/p&gt;</field>
<field name="incoming_file_type">pdf</field>
<field name="state">draft</field>
<field name="company_id" ref="base.main_company"/>
</record>
</data>
</odoo>

View File

@ -0,0 +1,214 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="file_01_demo" model="dms.file">
<field name="name">Sydney.jpg</field>
<field name="color" eval="1" />
<field name="directory_id" ref="directory_06_demo" />
<field name="content" type="base64" file="dms/test/image01.jpg" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_01_demo'), ref('tag_05_demo')])]" />
</record>
<record id="file_02_demo" model="dms.file">
<field name="name">Logo_01.jpg</field>
<field name="color" eval="1" />
<field name="directory_id" ref="directory_07_demo" />
<field name="content" type="base64" file="dms/test/image02.jpg" />
</record>
<record id="file_03_demo" model="dms.file">
<field name="name">Logo_02.jpg</field>
<field name="color" eval="1" />
<field name="directory_id" ref="directory_07_demo" />
<field name="category_id" ref="category_02_demo" />
<field name="content" type="base64" file="dms/test/image03.jpg" />
</record>
<record id="file_04_demo" model="dms.file">
<field name="name">Logo_03.jpg</field>
<field name="color" eval="1" />
<field name="directory_id" ref="directory_07_demo" />
<field name="content" type="base64" file="dms/test/image04.jpg" />
</record>
<record id="file_05_demo" model="dms.file">
<field name="name">Logo.svg</field>
<field name="color" eval="1" />
<field name="directory_id" ref="directory_10_demo" />
<field name="category_id" ref="category_03_demo" />
<field name="content" type="base64" file="dms/test/vector.svg" />
</record>
<record id="file_06_demo" model="dms.file">
<field name="name">Loop_01.wav</field>
<field name="color" eval="1" />
<field name="directory_id" ref="directory_09_demo" />
<field name="content" type="base64" file="dms/test/audio01.wav" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_01_demo'), ref('tag_03_demo')])]" />
</record>
<record id="file_07_demo" model="dms.file">
<field name="name">Loop_02.wav</field>
<field name="color" eval="2" />
<field name="directory_id" ref="directory_09_demo" />
<field name="content" type="base64" file="dms/test/audio02.wav" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_01_demo'), ref('tag_03_demo')])]" />
</record>
<record id="file_08_demo" model="dms.file">
<field name="name">Loop_03.mp3</field>
<field name="color" eval="2" />
<field name="directory_id" ref="directory_09_demo" />
<field name="content" type="base64" file="dms/test/audio03.mp3" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_01_demo'), ref('tag_03_demo')])]" />
</record>
<record id="file_09_demo" model="dms.file">
<field name="name">Loop_04.mp3</field>
<field name="color" eval="2" />
<field name="directory_id" ref="directory_09_demo" />
<field name="content" type="base64" file="dms/test/audio04.mp3" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_01_demo'), ref('tag_03_demo')])]" />
</record>
<record id="file_10_demo" model="dms.file">
<field name="name">Video.mp4</field>
<field name="color" eval="3" />
<field name="directory_id" ref="directory_08_demo" />
<field name="content" type="base64" file="dms/test/video.mp4" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_02_demo'), ref('tag_03_demo')])]" />
</record>
<record id="file_11_demo" model="dms.file">
<field name="name">Mail_01.eml</field>
<field name="color" eval="4" />
<field name="directory_id" ref="directory_11_demo" />
<field name="content" type="base64" file="dms/test/mail01.eml" />
<field name="category_id" ref="category_03_demo" />
</record>
<record id="file_12_demo" model="dms.file">
<field name="name">Mail_02.eml</field>
<field name="color" eval="4" />
<field name="directory_id" ref="directory_11_demo" />
<field name="content" type="base64" file="dms/test/mail02.eml" />
</record>
<record id="file_13_demo" model="dms.file">
<field name="name">Text.txt</field>
<field name="directory_id" ref="directory_12_demo" />
<field name="content" type="base64" file="dms/test/text.txt" />
<field name="tag_ids" eval="[(6, 0, [ref('tag_05_demo'), ref('tag_06_demo')])]" />
</record>
<record id="file_14_demo" model="dms.file">
<field name="name">ASPECTJ.aj</field>
<field name="directory_id" ref="directory_13_demo" />
<field name="content" type="base64" file="dms/test/code01.aj" />
<field name="category_id" ref="category_01_demo" />
</record>
<record id="file_15_demo" model="dms.file">
<field name="name">Bash.sh</field>
<field name="directory_id" ref="directory_13_demo" />
<field name="content" type="base64" file="dms/test/code02.sh" />
</record>
<record id="file_16_demo" model="dms.file">
<field name="name">C.c</field>
<field name="directory_id" ref="directory_13_demo" />
<field name="content" type="base64" file="dms/test/code03.c" />
</record>
<record id="file_17_demo" model="dms.file">
<field name="name">Cplusplus.cc</field>
<field name="directory_id" ref="directory_13_demo" />
<field name="content" type="base64" file="dms/test/code04.cc" />
</record>
<record id="file_18_demo" model="dms.file">
<field name="name">CSharp.cs</field>
<field name="directory_id" ref="directory_13_demo" />
<field name="content" type="base64" file="dms/test/code05.cs" />
</record>
<record id="file_19_demo" model="dms.file">
<field name="name">COBOL.cbl</field>
<field name="directory_id" ref="directory_13_demo" />
<field name="content" type="base64" file="dms/test/code06.cbl" />
</record>
<record id="file_20_demo" model="dms.file">
<field name="name">CoffeeScript.coffee</field>
<field name="directory_id" ref="directory_13_demo" />
<field name="content" type="base64" file="dms/test/code07.coffee" />
</record>
<record id="file_21_demo" model="dms.file">
<field name="name">Fortran.f</field>
<field name="directory_id" ref="directory_13_demo" />
<field name="content" type="base64" file="dms/test/code08.f" />
</record>
<record id="file_22_demo" model="dms.file">
<field name="name">Go.go</field>
<field name="directory_id" ref="directory_13_demo" />
<field name="content" type="base64" file="dms/test/code09.go" />
</record>
<record id="file_23_demo" model="dms.file">
<field name="name">Groovy.groovy</field>
<field name="directory_id" ref="directory_13_demo" />
<field name="content" type="base64" file="dms/test/code10.groovy" />
</record>
<record id="file_24_demo" model="dms.file">
<field name="name">Java.java</field>
<field name="directory_id" ref="directory_13_demo" />
<field name="content" type="base64" file="dms/test/code11.java" />
</record>
<record id="file_25_demo" model="dms.file">
<field name="name">Scala.sc</field>
<field name="directory_id" ref="directory_13_demo" />
<field name="content" type="base64" file="dms/test/code12.sc" />
</record>
<record id="file_26_demo" model="dms.file">
<field name="name">Sample.md</field>
<field name="directory_id" ref="directory_04_demo" />
<field name="content" type="base64" file="dms/test/markdown.md" />
</record>
<record id="file_27_demo" model="dms.file">
<field name="name">Document_05.pdf</field>
<field name="color" eval="1" />
<field name="directory_id" ref="directory_12_demo" />
<field name="content" type="base64" file="dms/test/document01.pdf" />
</record>
<record id="file_28_demo" model="dms.file">
<field name="name">Slide_01.odp</field>
<field name="directory_id" ref="directory_14_demo" />
<field name="content" type="base64" file="dms/test/slide01.odp" />
</record>
<record id="file_29_demo" model="dms.file">
<field name="name">Slide_02.ppt</field>
<field name="directory_id" ref="directory_14_demo" />
<field name="content" type="base64" file="dms/test/slide02.ppt" />
</record>
<record id="file_30_demo" model="dms.file">
<field name="name">Document_02.doc</field>
<field name="color" eval="5" />
<field name="directory_id" ref="directory_12_demo" />
<field name="content" type="base64" file="dms/test/document02.doc" />
</record>
<record id="file_31_demo" model="dms.file">
<field name="name">Document_03.odt</field>
<field name="color" eval="5" />
<field name="directory_id" ref="directory_12_demo" />
<field name="content" type="base64" file="dms/test/document03.odt" />
</record>
<record id="file_32_demo" model="dms.file">
<field name="name">Sheet_01.xls</field>
<field name="color" eval="6" />
<field name="directory_id" ref="directory_03_demo" />
<field name="content" type="base64" file="dms/test/sheet01.xls" />
</record>
<record id="file_33_demo" model="dms.file">
<field name="name">Sheet_02.csv</field>
<field name="color" eval="6" />
<field name="directory_id" ref="directory_03_demo" />
<field name="content" type="base64" file="dms/test/sheet02.csv" />
</record>
<record id="file_34_demo" model="dms.file">
<field name="name">Sheet_03.ods</field>
<field name="color" eval="6" />
<field name="directory_id" ref="directory_03_demo" />
<field name="content" type="base64" file="dms/test/sheet03.ods" />
</record>
<record id="file_35_demo" model="dms.file">
<field name="name">Document_04.rtf</field>
<field name="color" eval="6" />
<field name="directory_id" ref="directory_03_demo" />
<field name="content" type="base64" file="dms/test/document04.rtf" />
</record>
<record id="file_36_demo" model="dms.file">
<field name="name">Text.rst</field>
<field name="color" eval="3" />
<field name="directory_id" ref="directory_02_demo" />
<field name="content" type="base64" file="dms/test/text.rst" />
</record>
</odoo>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="storage_demo" model="dms.storage">
<field name="name">Documents Storage</field>
<field name="save_type">database</field>
</record>
<record id="storage_attachment_demo" model="dms.storage">
<field name="name">Attachment Storage</field>
<field name="save_type">attachment</field>
<field name="inherit_access_from_parent_record" eval="True" />
<field name="include_message_attachments" eval="True" />
<field name="model_ids" eval="[(6, 0, [ref('base.model_res_partner')])]" />
</record>
</odoo>

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="tag_01_demo" model="dms.tag">
<field name="name">Customer</field>
<field name="color">1</field>
<field name="category_id" ref="category_03_demo" />
</record>
<record id="tag_02_demo" model="dms.tag">
<field name="name">Partner</field>
<field name="color">2</field>
<field name="category_id" ref="category_03_demo" />
</record>
<record id="tag_03_demo" model="dms.tag">
<field name="name">Project</field>
<field name="color">3</field>
<field name="category_id" ref="category_04_demo" />
</record>
<record id="tag_04_demo" model="dms.tag">
<field name="name">Sales</field>
<field name="color">4</field>
<field name="category_id" ref="category_05_demo" />
</record>
<record id="tag_05_demo" model="dms.tag">
<field name="name">Portal</field>
<field name="color">5</field>
<field name="category_id" ref="category_05_demo" />
</record>
<record id="tag_06_demo" model="dms.tag">
<field name="name">Apps</field>
<field name="color">6</field>
<field name="category_id" ref="category_05_demo" />
</record>
<record id="tag_07_demo" model="dms.tag">
<field name="name">Accounting</field>
<field name="color">7</field>
<field name="category_id" ref="category_05_demo" />
</record>
<record id="tag_08_demo" model="dms.tag">
<field name="name">Customer Invoice</field>
<field name="color">8</field>
<field name="category_id" ref="category_05_demo" />
</record>
<record id="tag_09_demo" model="dms.tag">
<field name="name">Vendor Bill</field>
<field name="color">9</field>
<field name="category_id" ref="category_05_demo" />
</record>
<record id="tag_10_demo" model="dms.tag">
<field name="name">Product</field>
<field name="color">10</field>
<field name="category_id" ref="category_06_demo" />
</record>
<record id="tag_11_demo" model="dms.tag">
<field name="name">Contract</field>
<field name="color">11</field>
<field name="category_id" ref="category_01_demo" />
</record>
</odoo>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Шаблон документа -->
<record id="demo_dms_template_letter" model="dms.template">
<field name="name">Шаблон исходящего письма</field>
<field name="text">&lt;p&gt;Уважаемые коллеги,&lt;/p&gt;&lt;p&gt;Настоящим сообщаем вам о ...&lt;/p&gt;&lt;p&gt;С уважением,&lt;br/&gt;${user.name}&lt;/p&gt;</field>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="demo_dms_template_request" model="dms.template">
<field name="name">Шаблон запроса документов</field>
<field name="text">&lt;p&gt;Просим предоставить следующие документы:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Счёт-фактура&lt;/li&gt;&lt;li&gt;Товарная накладная&lt;/li&gt;&lt;/ul&gt;</field>
<field name="company_id" ref="base.main_company"/>
</record>
</data>
</odoo>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- DOCX-шаблон для печати договора на модели account.move -->
<!-- report_docx_template (файл .docx) загружается пользователем вручную -->
<record id="demo_docx_template_contract" model="docx.template">
<field name="name">Печать договора</field>
<field name="report_type">docx-docx</field>
<field name="model">account.move</field>
<field name="docx_output_type">docx</field>
<field name="docx_model_id" search="[('model','=','account.move')]" model="ir.model"/>
<field name="global_template" eval="True"/>
<field name="filename_pattern">object.name or 'contract'</field>
</record>
<!-- DOCX-шаблон договора для модели partner.contract.customer -->
<record id="demo_docx_template_partner_contract" model="docx.template">
<field name="name">Контракт №1</field>
<field name="report_type">docx-docx</field>
<field name="model">partner.contract.customer</field>
<field name="docx_output_type">docx</field>
<field name="docx_model_id" search="[('model','=','partner.contract.customer')]" model="ir.model"/>
<field name="global_template" eval="True"/>
<field name="filename_pattern">object.name or 'contract'</field>
<field name="print_report_name">'contract.docx'</field>
<field name="report_docx_template" type="base64" file="ruodoo_demo_data/static/src/templates/contract.docx"/>
<field name="report_docx_template_filename">contract.docx</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Показатели -->
<record id="demo_index_revenue" model="hg.index">
<field name="name">Выручка за месяц</field>
<field name="internal_code_id" ref="demo_index_code_revenue"/>
<field name="external_code">REV-001</field>
<field name="public" eval="True"/>
<field name="node_id" ref="demo_node_sales"/>
</record>
<record id="demo_index_cost" model="hg.index">
<field name="name">Себестоимость за месяц</field>
<field name="internal_code_id" ref="demo_index_code_cost"/>
<field name="external_code">COST-001</field>
<field name="public" eval="False"/>
<field name="node_id" ref="demo_node_production"/>
</record>
<record id="demo_index_profit" model="hg.index">
<field name="name">Прибыль за месяц</field>
<field name="internal_code_id" ref="demo_index_code_profit"/>
<field name="external_code">PROF-001</field>
<field name="public" eval="True"/>
</record>
<!-- Значения показателей -->
<record id="demo_value_revenue_jan" model="hg.value">
<field name="index_id" ref="demo_index_revenue"/>
<field name="date_due">2026-01-31</field>
<field name="value_float_actual">1500000.0</field>
<field name="value_float_plan">1200000.0</field>
<field name="type">alone</field>
</record>
<record id="demo_value_revenue_feb" model="hg.value">
<field name="index_id" ref="demo_index_revenue"/>
<field name="date_due">2026-02-28</field>
<field name="value_float_actual">1350000.0</field>
<field name="value_float_plan">1300000.0</field>
<field name="type">alone</field>
</record>
<record id="demo_value_cost_jan" model="hg.value">
<field name="index_id" ref="demo_index_cost"/>
<field name="date_due">2026-01-31</field>
<field name="value_float_actual">900000.0</field>
<field name="value_float_plan">800000.0</field>
<field name="type">alone</field>
</record>
<record id="demo_value_profit_jan" model="hg.value">
<field name="index_id" ref="demo_index_profit"/>
<field name="date_due">2026-01-31</field>
<field name="value_float_actual">600000.0</field>
<field name="value_float_plan">400000.0</field>
<field name="type">alone</field>
</record>
<!-- Связи гиперграфа -->
<record id="demo_link_sales_production" model="hg.link">
<field name="name">Продажи → Производство</field>
<field name="source_id" ref="demo_node_sales"/>
<field name="target_ids" eval="[(6, 0, [ref('demo_node_production')])]"/>
</record>
</data>
</odoo>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Коды показателей -->
<record id="demo_index_code_revenue" model="hg.index.code">
<field name="name">ВЫРУЧКА</field>
</record>
<record id="demo_index_code_cost" model="hg.index.code">
<field name="name">СЕБЕСТОИМОСТЬ</field>
</record>
<record id="demo_index_code_profit" model="hg.index.code">
<field name="name">ПРИБЫЛЬ</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Узлы гиперграфа -->
<record id="demo_node_sales" model="hg.node">
<field name="name">Продажи</field>
<field name="res_model">sale.order</field>
<field name="res_id">0</field>
</record>
<record id="demo_node_production" model="hg.node">
<field name="name">Производство</field>
<field name="res_model">mrp.production</field>
<field name="res_id">0</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Шаблон показателей для сметы задачи -->
<record id="demo_hg_template_project_budget" model="hg.templates">
<field name="name">Смета проекта (базовая)</field>
</record>
<!-- Строки шаблона показателей -->
<record id="demo_hg_template_line_revenue" model="hg.templates.line">
<field name="template_id" ref="demo_hg_template_project_budget"/>
<field name="index_id" ref="demo_index_revenue"/>
<field name="date_due">2026-12-31</field>
<field name="value_float_plan">2000000.0</field>
</record>
<record id="demo_hg_template_line_cost" model="hg.templates.line">
<field name="template_id" ref="demo_hg_template_project_budget"/>
<field name="index_id" ref="demo_index_cost"/>
<field name="date_due">2026-12-31</field>
<field name="value_float_plan">1200000.0</field>
</record>
<record id="demo_hg_template_line_profit" model="hg.templates.line">
<field name="template_id" ref="demo_hg_template_project_budget"/>
<field name="index_id" ref="demo_index_profit"/>
<field name="date_due">2026-12-31</field>
<field name="value_float_plan">800000.0</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Директор — привязан к demo_user_director -->
<record id="demo_employee_director" model="hr.employee">
<field name="name">Смирнов Дмитрий Александрович</field>
<field name="job_title">Генеральный директор</field>
<field name="user_id" ref="demo_user_director"/>
</record>
<!-- Менеджер по продажам — привязан к demo_user_manager -->
<record id="demo_employee_manager" model="hr.employee">
<field name="name">Петров Алексей Сергеевич</field>
<field name="job_title">Менеджер по продажам</field>
<field name="user_id" ref="demo_user_manager"/>
</record>
<!-- Менеджер по закупкам — привязан к demo_user_purchaser -->
<record id="demo_employee_purchaser" model="hr.employee">
<field name="name">Козлова Наталья Викторовна</field>
<field name="job_title">Менеджер по закупкам</field>
<field name="user_id" ref="demo_user_purchaser"/>
</record>
<!-- Кладовщик / ответственный за передачу товаров (поле kladov в УПД) -->
<record id="demo_employee_ivanov" model="hr.employee">
<field name="name">Иванов Иван Иванович</field>
<field name="job_title">Кладовщик</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Авансовый счёт (входящий) -->
<record id="demo_prepaid_inbound_001" model="order.prepaid">
<field name="name">АС-2026-001</field>
<field name="partner_id" ref="demo_partner_invoice_1"/>
<field name="invoice_date">2026-01-15</field>
<field name="invoice_date_due">2026-01-30</field>
<field name="company_id" ref="base.main_company"/>
<field name="advance_type">inbound</field>
<field name="state">draft</field>
</record>
<!-- Строки авансового счёта -->
<record id="demo_prepaid_line_001" model="order.prepaid.line">
<field name="prepaid_id" ref="demo_prepaid_inbound_001"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_tovar_tmpl'))]"/>
<field name="label">Предоплата за товар</field>
<field name="quantity">1.0</field>
<field name="price_unit">150000.0</field>
</record>
<record id="demo_prepaid_line_002" model="order.prepaid.line">
<field name="prepaid_id" ref="demo_prepaid_inbound_001"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_implementation_tmpl'))]"/>
<field name="label">Предоплата за доставку</field>
<field name="quantity">1.0</field>
<field name="price_unit">5000.0</field>
</record>
<!-- Авансовый счёт (исходящий) -->
<record id="demo_prepaid_outbound_001" model="order.prepaid">
<field name="name">АС-2026-002</field>
<field name="partner_id" ref="demo_partner_vendor_1"/>
<field name="invoice_date">2026-01-20</field>
<field name="invoice_date_due">2026-02-05</field>
<field name="company_id" ref="base.main_company"/>
<field name="advance_type">outbound</field>
<field name="state">draft</field>
</record>
<record id="demo_prepaid_line_003" model="order.prepaid.line">
<field name="prepaid_id" ref="demo_prepaid_outbound_001"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_server_tmpl'))]"/>
<field name="label">Аванс поставщику за сырьё</field>
<field name="quantity">10.0</field>
<field name="price_unit">8000.0</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Договор поставки с ООО "Технологии Будущего" -->
<record id="demo_contract_customer_001" model="partner.contract.customer">
<field name="name">001/2026</field>
<field name="date_start">2026-01-10</field>
<field name="date_end">2026-12-31</field>
<field name="partner_id" ref="demo_partner_buyer"/>
<field name="company_id" ref="base.main_company"/>
<field name="profile_id" ref="demo_contract_profile_supply"/>
<field name="type">customer</field>
<field name="state">signed</field>
<field name="partner_type">company</field>
</record>
<!-- Договор с ООО "Ритейл Плюс" -->
<record id="demo_contract_customer_002" model="partner.contract.customer">
<field name="name">002/2026</field>
<field name="date_start">2026-01-20</field>
<field name="date_end">2026-12-31</field>
<field name="partner_id" ref="demo_partner_invoice_1"/>
<field name="company_id" ref="base.main_company"/>
<field name="profile_id" ref="demo_contract_profile_service"/>
<field name="type">customer</field>
<field name="state">signed</field>
<field name="partner_type">company</field>
</record>
<!-- Договор с ООО "МегаТорг" -->
<record id="demo_contract_customer_003" model="partner.contract.customer">
<field name="name">003/2026</field>
<field name="date_start">2026-02-05</field>
<field name="date_end">2026-12-31</field>
<field name="partner_id" ref="demo_partner_invoice_2"/>
<field name="company_id" ref="base.main_company"/>
<field name="profile_id" ref="demo_contract_profile_supply"/>
<field name="type">customer</field>
<field name="state">signed</field>
<field name="partner_type">company</field>
</record>
<!-- Договор поставки с ООО "СтройМатериалы Групп" (поставщик) -->
<record id="demo_contract_supplier_001" model="partner.contract.customer">
<field name="name">П-001/2026</field>
<field name="date_start">2026-01-05</field>
<field name="date_end">2026-12-31</field>
<field name="partner_id" ref="demo_partner_supplier"/>
<field name="company_id" ref="base.main_company"/>
<field name="profile_id" ref="demo_contract_profile_supply"/>
<field name="type">supplier</field>
<field name="state">signed</field>
<field name="partner_type">company</field>
</record>
<!-- Пункты договора 001/2026 -->
<record id="demo_contract_line_001" model="contract.line">
<field name="contract_id" ref="demo_contract_customer_001"/>
<field name="sequence">10</field>
<field name="name">1.1</field>
<field name="punct">&lt;p&gt;Поставщик обязуется поставить товар в соответствии с условиями настоящего договора в срок не позднее 30 (тридцати) календарных дней с момента получения заявки.&lt;/p&gt;</field>
</record>
<record id="demo_contract_line_002" model="contract.line">
<field name="contract_id" ref="demo_contract_customer_001"/>
<field name="sequence">20</field>
<field name="name">1.2</field>
<field name="punct">&lt;p&gt;Покупатель обязуется принять и оплатить товар в течение 30 (тридцати) банковских дней с момента выставления счёта.&lt;/p&gt;</field>
</record>
<record id="demo_contract_line_003" model="contract.line">
<field name="contract_id" ref="demo_contract_customer_001"/>
<field name="sequence">30</field>
<field name="name">2.1</field>
<field name="punct">&lt;p&gt;Цена товара включает стоимость упаковки и доставки до склада Покупателя.&lt;/p&gt;</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Создаём только product.template — Odoo автоматически создаёт единственный вариант -->
<!-- В заказах ссылаемся на шаблон через product_template_id или используем -->
<!-- product_id = product_tmpl_id.product_variant_id (первый и единственный вариант) -->
<record id="demo_product_software_tmpl" model="product.template">
<field name="name">Система управления складом WMS Pro</field>
<field name="default_code">SW-WMS-001</field>
<field name="list_price">185000.0</field>
<field name="standard_price">95000.0</field>
<field name="categ_id" ref="product.product_category_goods"/>
<field name="type">service</field>
<field name="invoice_policy">order</field>
<field name="uom_id" ref="uom.product_uom_unit"/>
</record>
<record id="demo_product_license_tmpl" model="product.template">
<field name="name">Лицензия пользователя WMS Pro (1 год)</field>
<field name="default_code">SW-LIC-001</field>
<field name="list_price">24000.0</field>
<field name="standard_price">8000.0</field>
<field name="categ_id" ref="product.product_category_goods"/>
<field name="type">service</field>
<field name="invoice_policy">order</field>
<field name="uom_id" ref="uom.product_uom_unit"/>
</record>
<record id="demo_product_support_tmpl" model="product.template">
<field name="name">Техническая поддержка и сопровождение (мес.)</field>
<field name="default_code">SRV-SUP-001</field>
<field name="list_price">35000.0</field>
<field name="standard_price">15000.0</field>
<field name="categ_id" ref="product.product_category_goods"/>
<field name="type">service</field>
<field name="invoice_policy">order</field>
<field name="uom_id" ref="uom.product_uom_unit"/>
</record>
<record id="demo_product_implementation_tmpl" model="product.template">
<field name="name">Услуги внедрения и настройки системы</field>
<field name="default_code">SRV-IMP-001</field>
<field name="list_price">120000.0</field>
<field name="standard_price">60000.0</field>
<field name="categ_id" ref="product.product_category_goods"/>
<field name="type">service</field>
<field name="invoice_policy">order</field>
<field name="uom_id" ref="uom.product_uom_unit"/>
</record>
<record id="demo_product_server_tmpl" model="product.template">
<field name="name">Сервер Dell PowerEdge R740</field>
<field name="default_code">HW-SRV-001</field>
<field name="list_price">320000.0</field>
<field name="standard_price">240000.0</field>
<field name="categ_id" ref="product.product_category_goods"/>
<field name="type">service</field>
<field name="invoice_policy">order</field>
<field name="uom_id" ref="uom.product_uom_unit"/>
</record>
<record id="demo_product_training_tmpl" model="product.template">
<field name="name">Обучение пользователей (группа до 10 чел.)</field>
<field name="default_code">SRV-TRN-001</field>
<field name="list_price">45000.0</field>
<field name="standard_price">20000.0</field>
<field name="categ_id" ref="product.product_category_goods"/>
<field name="type">service</field>
<field name="invoice_policy">order</field>
<field name="uom_id" ref="uom.product_uom_unit"/>
</record>
<record id="demo_product_tovar_tmpl" model="product.template">
<field name="name">Комплект оборудования для автоматизации</field>
<field name="default_code">HW-KIT-001</field>
<field name="list_price">95000.0</field>
<field name="standard_price">65000.0</field>
<field name="categ_id" ref="product.product_category_goods"/>
<field name="type">service</field>
<field name="invoice_policy">order</field>
<field name="uom_id" ref="uom.product_uom_unit"/>
</record>
</data>
</odoo>

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Demo Projects (from project_demo_data_loader) -->
<record id="demo_project_1" model="project.project">
<field name="name">Website Redesign</field>
<field name="description">Full redesign of the corporate website.</field>
<field name="privacy_visibility">employees</field>
</record>
<record id="demo_project_2" model="project.project">
<field name="name">ERP Implementation</field>
<field name="description">Odoo ERP rollout for Global Industries.</field>
<field name="privacy_visibility">employees</field>
</record>
<!-- Demo Projects (from mklab_project_task_indicators) -->
<record id="demo_project_construction" model="project.project">
<field name="name">Строительство производственного склада (демо)</field>
</record>
<record id="demo_project_it" model="project.project">
<field name="name">Разработка корпоративной CRM-системы (демо)</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Demo Tasks for Project 1: Website Redesign (from project_demo_data_loader) -->
<record id="demo_task_1_1" model="project.task">
<field name="name">Gather requirements</field>
<field name="project_id" ref="demo_project_1"/>
<field name="description">Collect all design and functional requirements from the client.</field>
</record>
<record id="demo_task_1_2" model="project.task">
<field name="name">Create wireframes</field>
<field name="project_id" ref="demo_project_1"/>
<field name="description">Design low-fidelity wireframes for all key pages.</field>
</record>
<record id="demo_task_1_3" model="project.task">
<field name="name">Frontend development</field>
<field name="project_id" ref="demo_project_1"/>
<field name="description">Implement approved designs in HTML/CSS/JS.</field>
</record>
<!-- Demo Tasks for Project 2: ERP Implementation (from project_demo_data_loader) -->
<record id="demo_task_2_1" model="project.task">
<field name="name">System analysis</field>
<field name="project_id" ref="demo_project_2"/>
<field name="description">Analyse existing business processes and map to Odoo modules.</field>
</record>
<record id="demo_task_2_2" model="project.task">
<field name="name">Data migration</field>
<field name="project_id" ref="demo_project_2"/>
<field name="description">Migrate legacy data to Odoo.</field>
</record>
<record id="demo_task_2_3" model="project.task">
<field name="name">User training</field>
<field name="project_id" ref="demo_project_2"/>
<field name="description">Train end-users on the new system.</field>
</record>
<!-- Demo Tasks for Project: Construction (from mklab_project_task_indicators) -->
<record id="demo_task_design_docs" model="project.task">
<field name="name">Разработка проектной документации (демо)</field>
<field name="project_id" ref="demo_project_construction"/>
<field name="description">Подготовка полного комплекта проектной документации для строительства склада.</field>
</record>
<record id="demo_task_foundation" model="project.task">
<field name="name">Устройство монолитного фундамента (демо)</field>
<field name="project_id" ref="demo_project_construction"/>
<field name="description">Земляные работы, армирование и заливка монолитного фундамента.</field>
</record>
<record id="demo_task_roofing" model="project.task">
<field name="name">Монтаж кровельного покрытия (демо)</field>
<field name="project_id" ref="demo_project_construction"/>
<field name="description">Монтаж металлочерепицы и водосточной системы.</field>
</record>
<!-- Demo Tasks for Project: IT CRM (from mklab_project_task_indicators) -->
<record id="demo_task_backend" model="project.task">
<field name="name">Разработка серверной части CRM (демо)</field>
<field name="project_id" ref="demo_project_it"/>
<field name="description">Проектирование и реализация REST API, интеграция с базой данных.</field>
</record>
<record id="demo_task_frontend" model="project.task">
<field name="name">Разработка пользовательского интерфейса CRM (демо)</field>
<field name="project_id" ref="demo_project_it"/>
<field name="description">Вёрстка и реализация клиентской части на основе утверждённых макетов.</field>
</record>
<record id="demo_task_testing" model="project.task">
<field name="name">Тестирование и приёмка системы (демо)</field>
<field name="project_id" ref="demo_project_it"/>
<field name="description">Функциональное и нагрузочное тестирование, устранение замечаний.</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- ========== ЗАКУПКА 1: ООО "СтройМатериалы Групп" ========== -->
<record id="demo_purchase_order_001" model="purchase.order">
<field name="partner_id" ref="demo_partner_supplier"/>
<field name="company_id" ref="base.main_company"/>
<field name="date_order">2026-01-05 09:00:00</field>
<field name="user_id" ref="demo_user_purchaser"/>
<field name="state">purchase</field>
</record>
<record id="demo_purchase_line_001_1" model="purchase.order.line">
<field name="order_id" ref="demo_purchase_order_001"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_server_tmpl'))]"/>
<field name="product_qty">2.0</field>
<field name="price_unit">240000.0</field>
<field name="date_planned">2026-01-20 09:00:00</field>
</record>
<record id="demo_purchase_line_001_2" model="purchase.order.line">
<field name="order_id" ref="demo_purchase_order_001"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_tovar_tmpl'))]"/>
<field name="product_qty">5.0</field>
<field name="price_unit">65000.0</field>
<field name="date_planned">2026-01-20 09:00:00</field>
</record>
<!-- ========== ЗАКУПКА 2: ООО "Снабжение Плюс" ========== -->
<record id="demo_purchase_order_002" model="purchase.order">
<field name="partner_id" ref="demo_attorney_partner_supplier"/>
<field name="company_id" ref="base.main_company"/>
<field name="date_order">2026-01-15 10:00:00</field>
<field name="user_id" ref="demo_user_purchaser"/>
<field name="state">purchase</field>
</record>
<record id="demo_purchase_line_002_1" model="purchase.order.line">
<field name="order_id" ref="demo_purchase_order_002"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_software_tmpl'))]"/>
<field name="product_qty">3.0</field>
<field name="price_unit">95000.0</field>
<field name="date_planned">2026-01-25 09:00:00</field>
</record>
<!-- ========== ЗАКУПКА 3: ООО "ПромКомплект" ========== -->
<record id="demo_purchase_order_003" model="purchase.order">
<field name="partner_id" ref="demo_partner_vendor_1"/>
<field name="company_id" ref="base.main_company"/>
<field name="date_order">2026-02-01 09:00:00</field>
<field name="user_id" ref="demo_user_purchaser"/>
<field name="state">purchase</field>
</record>
<record id="demo_purchase_line_003_1" model="purchase.order.line">
<field name="order_id" ref="demo_purchase_order_003"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_tovar_tmpl'))]"/>
<field name="product_qty">10.0</field>
<field name="price_unit">65000.0</field>
<field name="date_planned">2026-02-15 09:00:00</field>
</record>
<!-- Создаём инвойсы через стандартный механизм — появится смарт-кнопка -->
<function model="purchase.order" name="action_create_invoice">
<value model="purchase.order" eval="[ref('demo_purchase_order_001'), ref('demo_purchase_order_002'), ref('demo_purchase_order_003')]"/>
</function>
</data>
</odoo>

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Т-Банк (бывший Тинькофф) — реальные реквизиты -->
<record id="bank_tbank" model="res.bank">
<field name="name">АО «Т-Банк»</field>
<field name="city">Москва</field>
<field name="bic">044525974</field>
<field name="corr_acc">30101810145250000974</field>
</record>
<!-- Расчётный счёт нашей компании -->
<record id="main_company_bank" model="res.partner.bank">
<field name="acc_number">40702810100000000001</field>
<field name="bank_id" ref="bank_tbank"/>
<field name="company_id" ref="base.main_company"/>
<field name="partner_id" ref="base.main_partner"/>
</record>
<!-- Расчётный счёт ООО "Технологии Будущего" -->
<record id="partner_buyer_bank" model="res.partner.bank">
<field name="acc_number">40702810100000000002</field>
<field name="bank_id" ref="bank_tbank"/>
<field name="partner_id" ref="demo_partner_buyer"/>
</record>
<!-- Расчётный счёт ООО "СтройМатериалы Групп" -->
<record id="partner_supplier_bank" model="res.partner.bank">
<field name="acc_number">40702810100000000003</field>
<field name="bank_id" ref="bank_tbank"/>
<field name="partner_id" ref="demo_partner_supplier"/>
</record>
</data>
</odoo>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Заполняем реквизиты основной компании, не меняя её название -->
<record id="base.main_company" model="res.company">
<field name="street">ул. Тверская, д. 15, офис 301</field>
<field name="city">Москва</field>
<field name="zip">125009</field>
<field name="country_id" ref="base.ru"/>
<field name="phone">+7 (495) 123-45-67</field>
<field name="email">info@mycompany.ru</field>
<field name="chief_id" ref="demo_user_director"/>
<field name="print_facsimile">1</field>
<field name="print_stamp">1</field>
</record>
<!-- Реквизиты партнёра компании -->
<record id="base.main_partner" model="res.partner">
<field name="name">ООО "Моя Компания"</field>
<field name="inn">7704567896</field>
<field name="kpp">770401001</field>
<field name="ogrn">1027700123456</field>
<field name="okpo">45678901</field>
<field name="vat">7704567896</field>
<field name="street">ул. Тверская, д. 15, офис 301</field>
<field name="city">Москва</field>
<field name="zip">125009</field>
<field name="country_id" ref="base.ru"/>
</record>
</data>
</odoo>

View File

@ -0,0 +1,161 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- ========== ПОКУПАТЕЛИ ========== -->
<!-- ООО "Технологии Будущего" — основной покупатель -->
<record id="demo_partner_buyer" model="res.partner">
<field name="name">ООО "Технологии Будущего"</field>
<field name="is_company" eval="True"/>
<field name="customer_rank">1</field>
<field name="street">пр-т Ленинградский, д. 37, стр. 6</field>
<field name="city">Москва</field>
<field name="zip">125167</field>
<field name="country_id" ref="base.ru"/>
<field name="phone">+7 (495) 987-65-43</field>
<field name="email">info@techfuture.ru</field>
<field name="website">https://techfuture.ru</field>
<field name="inn">7714321098</field>
<field name="kpp">771401001</field>
<field name="ogrn">1027714321098</field>
<field name="okpo">32109876</field>
<field name="vat">7714321098</field>
</record>
<!-- Директор ООО "Технологии Будущего" -->
<record id="demo_contact_buyer_director" model="res.partner">
<field name="name">Новиков Сергей Владимирович</field>
<field name="parent_id" ref="demo_partner_buyer"/>
<field name="type">director</field>
<field name="is_company" eval="False"/>
<field name="function">Генеральный директор</field>
<field name="phone">+7 (495) 987-65-44</field>
<field name="email">s.novikov@techfuture.ru</field>
<field name="country_id" ref="base.ru"/>
<field name="passport">4515 678901</field>
</record>
<!-- ООО "Ритейл Плюс" — второй покупатель -->
<record id="demo_partner_invoice_1" model="res.partner">
<field name="name">ООО "Ритейл Плюс"</field>
<field name="is_company" eval="True"/>
<field name="customer_rank">1</field>
<field name="street">ул. Садовая-Кудринская, д. 11</field>
<field name="city">Москва</field>
<field name="zip">123001</field>
<field name="country_id" ref="base.ru"/>
<field name="phone">+7 (495) 234-56-78</field>
<field name="email">office@retailplus.ru</field>
<field name="inn">7701987652</field>
<field name="kpp">770101001</field>
<field name="ogrn">1027701987652</field>
<field name="okpo">19876543</field>
<field name="vat">7701987652</field>
</record>
<!-- ООО "МегаТорг" — третий покупатель -->
<record id="demo_partner_invoice_2" model="res.partner">
<field name="name">ООО "МегаТорг"</field>
<field name="is_company" eval="True"/>
<field name="customer_rank">1</field>
<field name="street">ул. Профсоюзная, д. 56, офис 12</field>
<field name="city">Москва</field>
<field name="zip">117393</field>
<field name="country_id" ref="base.ru"/>
<field name="phone">+7 (495) 345-67-89</field>
<field name="email">info@megatore.ru</field>
<field name="inn">7736543217</field>
<field name="kpp">773601001</field>
<field name="ogrn">1027736543217</field>
<field name="okpo">54321098</field>
<field name="vat">7736543217</field>
</record>
<!-- ========== ПОСТАВЩИКИ ========== -->
<!-- ООО "СтройМатериалы Групп" — основной поставщик -->
<record id="demo_partner_supplier" model="res.partner">
<field name="name">ООО "СтройМатериалы Групп"</field>
<field name="is_company" eval="True"/>
<field name="supplier_rank">1</field>
<field name="street">Московский пр-т, д. 212</field>
<field name="city">Санкт-Петербург</field>
<field name="zip">196006</field>
<field name="country_id" ref="base.ru"/>
<field name="phone">+7 (812) 456-78-90</field>
<field name="email">supply@stroygroup.ru</field>
<field name="website">https://stroygroup.ru</field>
<field name="inn">7802876540</field>
<field name="kpp">780201001</field>
<field name="ogrn">1027802876540</field>
<field name="okpo">87654321</field>
<field name="vat">7802876540</field>
</record>
<!-- Директор ООО "СтройМатериалы Групп" -->
<record id="demo_contact_supplier_director" model="res.partner">
<field name="name">Захаров Андрей Николаевич</field>
<field name="parent_id" ref="demo_partner_supplier"/>
<field name="type">director</field>
<field name="is_company" eval="False"/>
<field name="function">Генеральный директор</field>
<field name="phone">+7 (812) 456-78-91</field>
<field name="email">a.zakharov@stroygroup.ru</field>
<field name="country_id" ref="base.ru"/>
<field name="passport">4012 345678</field>
</record>
<!-- ООО "Снабжение Плюс" — поставщик для доверенностей -->
<record id="demo_attorney_partner_supplier" model="res.partner">
<field name="name">ООО "Снабжение Плюс"</field>
<field name="is_company" eval="True"/>
<field name="supplier_rank">1</field>
<field name="street">ул. Новослободская, д. 18</field>
<field name="city">Москва</field>
<field name="zip">127055</field>
<field name="country_id" ref="base.ru"/>
<field name="phone">+7 (495) 456-78-90</field>
<field name="email">info@snabplus.ru</field>
<field name="inn">7703456784</field>
<field name="kpp">770301001</field>
<field name="ogrn">1027703456784</field>
<field name="okpo">45678901</field>
<field name="vat">7703456784</field>
</record>
<!-- ООО "ПромКомплект" — второй поставщик -->
<record id="demo_partner_vendor_1" model="res.partner">
<field name="name">ООО "ПромКомплект"</field>
<field name="is_company" eval="True"/>
<field name="supplier_rank">1</field>
<field name="street">ул. Красноармейская, д. 4</field>
<field name="city">Екатеринбург</field>
<field name="zip">620014</field>
<field name="country_id" ref="base.ru"/>
<field name="phone">+7 (343) 567-89-01</field>
<field name="email">info@promkomplekt.ru</field>
<field name="inn">6670123457</field>
<field name="kpp">667001001</field>
<field name="ogrn">1026670123457</field>
<field name="okpo">12345670</field>
<field name="vat">6670123457</field>
</record>
<!-- ========== КОНТАКТНОЕ ЛИЦО ПОКУПАТЕЛЯ ========== -->
<record id="demo_contact_person_buyer" model="res.partner">
<field name="name">Иванов Иван Иванович</field>
<field name="parent_id" ref="demo_partner_buyer"/>
<field name="type">contact</field>
<field name="is_company" eval="False"/>
<field name="function">Менеджер по закупкам</field>
<field name="country_id" ref="base.ru"/>
<field name="zip">125167</field>
<field name="phone">+7 (495) 987-65-45</field>
<field name="email">i.ivanov@techfuture.ru</field>
<field name="passport">4510 123456</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Директор компании (используется как chief_id в res.company) -->
<!-- last_name/first_name/second_name вычисляются из name автоматически -->
<record id="demo_user_director" model="res.users">
<field name="name">Смирнов Дмитрий Александрович</field>
<field name="login">d.smirnov@codap.ru</field>
<field name="email">d.smirnov@codap.ru</field>
<field name="function">Генеральный директор</field>
<field name="group_ids" eval="[(4, ref('base.group_user')), (4, ref('base.group_system'))]"/>
</record>
<!-- Менеджер по продажам -->
<record id="demo_user_manager" model="res.users">
<field name="name">Петров Алексей Сергеевич</field>
<field name="login">a.petrov@codap.ru</field>
<field name="email">a.petrov@codap.ru</field>
<field name="function">Менеджер по продажам</field>
<field name="group_ids" eval="[(4, ref('base.group_user')), (4, ref('dms.group_dms_user')), (4, ref('sales_team.group_sale_salesman'))]"/>
</record>
<!-- Менеджер по закупкам -->
<record id="demo_user_purchaser" model="res.users">
<field name="name">Козлова Наталья Викторовна</field>
<field name="login">n.kozlova@codap.ru</field>
<field name="email">n.kozlova@codap.ru</field>
<field name="function">Менеджер по закупкам</field>
<field name="group_ids" eval="[(4, ref('base.group_user')), (4, ref('purchase.group_purchase_user'))]"/>
</record>
<!-- Бухгалтер -->
<record id="demo_user_accountant" model="res.users">
<field name="name">Федорова Ирина Павловна</field>
<field name="login">i.fedorova@codap.ru</field>
<field name="email">i.fedorova@codap.ru</field>
<field name="function">Главный бухгалтер</field>
<field name="group_ids" eval="[(4, ref('base.group_user')), (4, ref('account.group_account_user'))]"/>
</record>
</data>
</odoo>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Демо роль: Менеджер по продажам -->
<!-- implied_ids убраны: зависимые модули (sales_team, account) могут быть
не загружены на момент установки base_user_role -->
<record id="demo_role_sales_manager" model="res.users.role">
<field name="name">Менеджер по продажам (демо)</field>
</record>
<!-- Демо роль: Бухгалтер -->
<record id="demo_role_accountant" model="res.users.role">
<field name="name">Бухгалтер (демо)</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- ========== ПРОДАЖА 1: ООО "Технологии Будущего" ========== -->
<record id="demo_sale_order_001" model="sale.order">
<field name="partner_id" ref="demo_partner_buyer"/>
<field name="partner_invoice_id" ref="demo_partner_buyer"/>
<field name="partner_shipping_id" ref="demo_partner_buyer"/>
<field name="company_id" ref="base.main_company"/>
<field name="mt_contract_id" ref="demo_contract_customer_001"/>
<field name="date_order">2026-01-10 09:00:00</field>
<field name="user_id" ref="demo_user_manager"/>
<field name="state">sale</field>
</record>
<record id="demo_sale_line_001_1" model="sale.order.line">
<field name="order_id" ref="demo_sale_order_001"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_software_tmpl'))]"/>
<field name="product_uom_qty">1.0</field>
<field name="price_unit">185000.0</field>
</record>
<record id="demo_sale_line_001_2" model="sale.order.line">
<field name="order_id" ref="demo_sale_order_001"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_implementation_tmpl'))]"/>
<field name="product_uom_qty">1.0</field>
<field name="price_unit">120000.0</field>
</record>
<record id="demo_sale_line_001_3" model="sale.order.line">
<field name="order_id" ref="demo_sale_order_001"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_training_tmpl'))]"/>
<field name="product_uom_qty">2.0</field>
<field name="price_unit">45000.0</field>
</record>
<!-- ========== ПРОДАЖА 2: ООО "Ритейл Плюс" ========== -->
<record id="demo_sale_order_1" model="sale.order">
<field name="partner_id" ref="demo_partner_invoice_1"/>
<field name="partner_invoice_id" ref="demo_partner_invoice_1"/>
<field name="partner_shipping_id" ref="demo_partner_invoice_1"/>
<field name="company_id" ref="base.main_company"/>
<field name="mt_contract_id" ref="demo_contract_customer_002"/>
<field name="date_order">2026-01-20 10:00:00</field>
<field name="user_id" ref="demo_user_manager"/>
<field name="state">sale</field>
</record>
<record id="demo_sale_line_1_1" model="sale.order.line">
<field name="order_id" ref="demo_sale_order_1"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_license_tmpl'))]"/>
<field name="product_uom_qty">10.0</field>
<field name="price_unit">24000.0</field>
</record>
<record id="demo_sale_line_1_2" model="sale.order.line">
<field name="order_id" ref="demo_sale_order_1"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_support_tmpl'))]"/>
<field name="product_uom_qty">3.0</field>
<field name="price_unit">35000.0</field>
</record>
<!-- ========== ПРОДАЖА 3: ООО "МегаТорг" ========== -->
<record id="demo_sale_order_2" model="sale.order">
<field name="partner_id" ref="demo_partner_invoice_2"/>
<field name="partner_invoice_id" ref="demo_partner_invoice_2"/>
<field name="partner_shipping_id" ref="demo_partner_invoice_2"/>
<field name="company_id" ref="base.main_company"/>
<field name="mt_contract_id" ref="demo_contract_customer_003"/>
<field name="date_order">2026-02-05 11:00:00</field>
<field name="user_id" ref="demo_user_manager"/>
<field name="state">sale</field>
</record>
<record id="demo_sale_line_2_1" model="sale.order.line">
<field name="order_id" ref="demo_sale_order_2"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_tovar_tmpl'))]"/>
<field name="product_uom_qty">2.0</field>
<field name="price_unit">95000.0</field>
</record>
<record id="demo_sale_line_2_2" model="sale.order.line">
<field name="order_id" ref="demo_sale_order_2"/>
<field name="product_id" model="product.product" search="[('product_tmpl_id', '=', ref('demo_product_implementation_tmpl'))]"/>
<field name="product_uom_qty">1.0</field>
<field name="price_unit">120000.0</field>
</record>
<!-- Создаём инвойсы через стандартный механизм — появится смарт-кнопка -->
<function model="sale.order" name="_create_invoices">
<value model="sale.order" eval="[ref('demo_sale_order_001'), ref('demo_sale_order_1'), ref('demo_sale_order_2')]"/>
</function>
</data>
</odoo>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Добавляем код ОКЕИ 796 (штука) к стандартной единице измерения -->
<record id="uom.product_uom_unit" model="uom.uom">
<field name="okei">796</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1 @@
from . import res_config_settings

View File

@ -0,0 +1,7 @@
from odoo import models, fields
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
module_ruodoo_demo_data = fields.Boolean(string='Демо-данные')

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="res_config_settings_view_form_ruodoo_demo_data" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.ruodoo_demo_data</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//form" position="inside">
<app string="Демо-данные" name="ruodoo_demo_data" groups="base.group_system" img="/ruodoo_demo_data/static/description/icon.png">
<block title="CRM" name="demo_crm_setting_container">
<setting id="demo_crm" string="CRM"
help="Установить демо-данные для CRM (сделки, стадии).">
<field name="module_ruodoo_demo_data"/>
</setting>
</block>
<block title="Бухгалтерия" name="demo_account_setting_container">
<setting id="demo_account" string="Бухгалтерия"
help="Установить демо-данные для бухгалтерии (счета, контрагенты).">
<field name="module_ruodoo_demo_data"/>
</setting>
</block>
<block title="Проекты" name="demo_project_setting_container">
<setting id="demo_project" string="Проекты"
help="Установить демо-данные для проектов (проекты, задачи).">
<field name="module_ruodoo_demo_data"/>
</setting>
</block>
<block title="Продажи" name="demo_sale_setting_container">
<setting id="demo_sale" string="Продажи"
help="Установить демо-данные для продаж (заказы).">
<field name="module_ruodoo_demo_data"/>
</setting>
</block>
</app>
</xpath>
</field>
</record>
</odoo>