==================================== РуОду — Аренда и коммунальные услуги ==================================== .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta .. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 |badge1| |badge2| Управление договорами аренды и коммунальных услуг: учёт объектов и приборов учёта (счётчиков), ввод показаний по периодам и автоматическое формирование счетов (``account.move``) — фиксированной суммой или по расходу счётчика. Договор аренды связывается с российским договором (``partner.contract.customer``), нативная бухгалтерия Odoo не затрагивается. Порт коммерческого модуля ``comm_service`` (Odoo 17) на платформу РуОду (Odoo 19) с согласованием с российской локализацией ``l10n_ru_*``. **Содержание** .. contents:: :local: Возможности =========== * Договоры аренды с привязкой к объектам (офисы, машиноместа и т. п.) и статусами «Черновик / Действует / Не действует» * Каталог объектов с признаком занятости и историей цен * Приборы учёта (счётчики) и показания по периодам с контролем корректности (год, месяц, монотонность показаний) * Автоматическое формирование счетов за период: * ежемесячно, ежеквартально или ежегодно * фиксированной суммой либо по расходу счётчика (разница показаний) * защита от повторного начисления за один и тот же период * Мастер массового создания счетов по всем действующим договорам * Мастер ввода показаний счётчиков за период * Связь договора аренды с российским договором (``partner.contract.customer``); поля периода и договора на счёте * Печатная форма «Счёт по форме 1С» (устаревшая, см. ниже) * Портал заказчика: отображение текущего долга Зависимости =========== * ``account`` — счета (``account.move``) * ``l10n_ru_contract`` — российские договоры (``partner.contract.customer``), реквизиты компании и контрагента (``chief_id``, ``inn``, ``kpp``) * ``l10n_ru_contract_account`` — поле ``mt_contract_id`` и синхронизация счёта с договором (``set_ons``) Python-зависимости: ``pytils`` (суммы и даты прописью в печатной форме). Использование ============= #. Заведите типы объектов и объекты в *Аренда > Объекты*. #. Создайте договор аренды в *Аренда > Договоры*: укажите заказчика, компанию, объект и строки услуг (продукт, цена, период, при необходимости — счётчик). Переведите договор в статус «Действует». #. Вносите показания счётчиков вручную или через *Аренда > Счётчики > Мастер ввода показаний*. #. Формируйте счета кнопкой «Создать счета» в договоре или через *Аренда > Договоры > Создание счетов* (массовый мастер по всем действующим договорам). #. При необходимости привяжите договор аренды к российскому договору (кнопка «Договор не привязан. Создать?»). Счета создаются в состоянии «Черновик»: их можно проверить и провести штатными средствами Odoo. При проведении счёт попадает в РСБУ-слой через коннектор документов (событие ``action_post``) — отдельных действий не требуется. Печатные формы ============== Форма «Счёт по форме 1С» (``ruodoo_commservice.report_inv_1c``) помечена **устаревшей**: печать в проекте переведена на DOCX. Форма скрыта из интерфейса (сброшен ``binding_model_id``), но код сохранён и может быть вызван программно. Планируемое удаление — в версии 20 (см. ``docs/research/11-qweb-reports-registry.md``). Известные ограничения ===================== * Учёт ведётся в рублях, ориентирован на российскую локализацию. * Счёт дохода в строке счёта берётся из категории товара; если он не задан, подставляется счёт по умолчанию из журнала продаж. Тестирование ============ Модуль покрыт тестами ``TransactionCase`` (создание счетов по периодам и по счётчикам, контроль дублей и показаний, мастера). Запуск:: docker compose run --rm odoo odoo -d -i ruodoo_commservice \ --test-enable --test-tags=/ruodoo_commservice --stop-after-init Авторы ====== * MK.Lab, RuOdoo Модуль сопровождается MK.Lab, RuOdoo. .. image:: https://ruodoo.ru/logo.png :alt: MK.Lab, RuOdoo :target: https://ruodoo.ru Модуль является частью решения РуОду.