Управления правилами автоматического пополнения запасов

По умолчанию в Odoo есть несколько вариантов автоматического поддержания запасов:
1. При помощи маршрутов (Routes). Хороший вариант, когда правила пополнения просты, вроде «Делай всё на заказ / Бери со склада и дозаказывай чего нет» (MTO, MTO/MTS).
2. При помощи правил пополнения минимальных запасов (Reordering Rules или Stock Orderpoint). Это особенно удобно в том случае, если нужно поддерживать определённые не снижаемые остатки товара. Например, когда есть большой ассортимент товара, и некоторый товар особенно ходовой, а другой выгоднее заказывать партиями заранее.

В то же время при большом ассортименте товаров создание таких правил может быть довольно утомительной задачей, поскольку правило нужно создать вручную для каждого шаблона товара. Если же правила отличаются для вариантов товара (например есть ходовая расцветка или размер, которых должно быть больше), то процесс управления правилами может занять на порядок больше времени.
А когда нужно поменять правила, например на сезонный товар (летом запас ушанок может быть и по-меньше :) ), то задача изменить каждое правило вручную сулит настоящую головную боль.

Мы с этим столкнулись лично и сразу же стали искать готовые решения. Они есть, в частности модуль от OCA: apps.odoo.com/apps/modules/11.0/stock_orderpoint_generator/
Однако, логика данных модулей видимо создавалась программистами, а не пользователями, которые непосредственно работают со складскими запасами)
Потому было принято решение изобретать велосипед писать своё решение. Собственно вот оно: apps.odoo.com/apps/modules/11.0/cx_product_auto_reorder/

Основные отличия:
1. Весь функционал перенесён непосредственно в шаблоны (принцип «одного окна»).
2. Правила генерируются автоматически при создание шаблона либо продукта.
3. Возможность настраивать правила в зависимости от категории товара или его атрибутов (цвет, размер итп) (опцию с атрибутами мы вынесли в отдельное платное расширение для модуля).

Основы разработки простого модуля в OpenERP

Привожу перевод статьи с кратким но достаточно полным описанием создания модуля в OpenERP. Так как не достаточно владею терминологией программирования — перевел как получилось. Если есть какие либо поправки к переводу, прошу писать — не стесняйтесь :)

Перевод оригинальной статьи

OpenObject использует модули в качестве контейнеров функций, для быстрого обслуживания и хорошему развитию. Модули обеспечивают функциональность в OpenERP.

Состав модуля

Модуль может содержать следующие элементы:

бизнес объекты: объявленные как классы Питона, с расширением osv.osv класс OpenObject

данные: виды, меню, технологические процессы, демонстрационные данные и т.д.

мастера: интерактивные формы

отчеты: RML (формат XML), шаблоны МАКО или OpenOffice отчеты, объедененные с любым видом коммерческой информации, с созданием HTML, ODT или PDF отчетами.

Структура модуля

Модуль создаются в пределах директории server\openerp\addons
Читать дальше →