Фильтр доменов odoo 12 для stock.moves.line в мульти компании - PullRequest
0 голосов
/ 05 мая 2020

У меня проблема с фильтрацией движений товаров в odoo. У меня структурированная иерархия компаний: материнская компания, 6 дочерних компаний, и каждая дочерняя компания имеет несколько дочерних компаний. У каждой компании свой набор пользователей. Каталог продукции общий для всех компаний. Когда я пытаюсь получить отчет о перемещении продукта, система будет сообщать мне КАЖДОЕ движение, даже о других компаниях. Я попытался отфильтровать результаты в "stock.move.line.search" с доменом вроде:

domain="[('product_id.company_id','=',self.env.user.company_id)]"

И все варианты, которые я могу себе представить. Основная цель - получить для пользователя только движения активной компании. Где я делаю не так?

РЕДАКТИРОВАТЬ: Я получаю линии движения из Инвентаря-> Основные данные-> Продукты -> [Я выбираю продукт] -> Перемещения продуктов. Здесь у меня есть список ВСЕХ движений для этого продукта, даже для других компаний. Фильтрация по picking_type может "решить" мою проблему:

<?xml version="1.0"?>
<search string="Stock Moves">
            <field name="picking_id" string="Reference"/>
            <field name="product_id"/>
            <field name="location_id"/>
            <field name="location_dest_id"/>
            <separator/>
            <filter string="To Do" name="todo" domain="[('state','not in', ['done', 'draft'])]"/>
            <filter string="Done" name="done" domain="[('state','=','done')]"/>
            <separator/>
            <filter string="Receptions" name="incoming" domain="[('picking_id.picking_type_id.code','=','incoming')]"/>
            <filter string="Deliveries" name="outgoing" domain="[('picking_id.picking_type_id.code','=','outgoing')]"/>
            <filter string="Internal" name="internal" domain="[('picking_id.picking_type_id.code','=','internal')]"/>
            <filter string="Manufacturing" name="manufacturing" domain="[('picking_id.picking_type_id.code','=','mrp_operation')]"/>

            <separator/>
            <group expand="0" string="Group By">
                <filter string="Status" name="by_state" domain="[]" context="{'group_by':'state'}"/>
                **<filter string="Product" name="groupby_product_id" domain="[('picking_id.picking_type_id.code','=','internal')]" context="{'group_by': 'product_id'}"/>**
            </group>
        </search>

Но конечный пользователь может удалить фильтр вручную. Как добиться неизменного результата?

...