Skip to content

Instantly share code, notes, and snippets.

@ray-odoo
Created February 14, 2025 13:08
Show Gist options
  • Save ray-odoo/160f8cffe41da3d55fe111d2e3773ced to your computer and use it in GitHub Desktop.
Save ray-odoo/160f8cffe41da3d55fe111d2e3773ced to your computer and use it in GitHub Desktop.
Purchase Order Lines Menu - Odoo 17
SEARCH VIEW:
<data>
<field name="product_id" position="after">
<field name="name"/>
</field>
<field name="partner_id" position="after">
<field name="date_planned"/>
<field name="analytic_distribution" filter_domain="[('analytic_distribution','ilike',self)]"/>
<field name="price_unit"/>
<filter name="my_purchases" string="My Purchases" domain="[('order_id.user_id', '=', uid)]"/>
<filter string="Starred" name="starred" domain="[('order_id.priority', '=', '1')]"/>
<separator/>
<filter name="draft" string="RFQs" domain="[('order_id.state', 'in', ('draft', 'sent', 'to approve'))]"/>
<separator/>
<filter name="approved" string="Purchase Orders" domain="[('order_id.state', 'in', ('purchase', 'done'))]"/>
<filter name="to_approve" string="To Approve" domain="[('order_id.state', '=', 'to approve')]"/>
<separator/>
<filter name="draft_rfqs" string="Draft RFQs" domain="[('order_id.state', '=', 'draft')]"/>
<filter name="waiting_rfqs" string="Waiting RFQs" domain="[('order_id.state', '=', 'sent'), ('order_id.date_order', '&gt;=', datetime.datetime.now())]"/>
<filter name="late_rfqs" string="Late RFQs" domain="[('order_id.state', 'in', ['draft', 'sent', 'to approve']),('order_id.date_order', '&lt;', datetime.datetime.now())]"/>
<separator/>
</field>
</data>
TREE/LIST VIEW:
<tree string="Purchase Order Lines" create="0" decoration-info="state in ['draft', 'sent']" decoration-muted="state == 'cancel'" class="o_purchase_order">
<!-- hidden fields -->
<field name="company_id" column_invisible="1"/>
<field name="display_type" column_invisible="True"/>
<field name="company_id" column_invisible="True"/>
<field name="currency_id" column_invisible="True"/>
<field name="product_type" column_invisible="True"/>
<field name="product_uom" column_invisible="True"/>
<field name="product_uom_category_id" column_invisible="True"/>
<field name="tax_calculation_rounding_method" column_invisible="True"/>
<field name="state" column_invisible="True"/>
<field name="qty_received_manual" column_invisible="True"/>
<field name="qty_received_method" column_invisible="True"/>
<field name="order_id" readonly="True"/>
<field name="date_approve" optional="hide" readonly="True"/>
<field name="partner_id" string="Supplier" optional="show" readonly="True"/>
<field name="product_id" readonly="True" optional="show" width="35%"/>
<field name="name" readonly="True" optional="hide"/>
<field name="date_planned" optional="hide" required="not display_type"/>
<field name="analytic_distribution" widget="analytic_distribution" optional="show" groups="analytic.group_analytic_accounting" options="{'product_field': 'product_id', 'business_domain': 'purchase_order', 'amount_field': 'price_subtotal'}"/>
<field name="product_qty" sum="Total Quantity"/>
<field name="qty_received" string="Received" readonly="True" optional="show" sum="Total Received"/>
<field name="qty_to_invoice" string="To Bill" readonly="True" optional="show" sum="Total To Bill"/>
<field name="qty_invoiced" string="Billed" readonly="True" optional="show" sum="Total Billed"/>
<field name="product_uom" string="UoM" groups="uom.group_uom" readonly="True" optional="show"/>
<field name="product_packaging_qty" invisible="not product_id or not product_packaging_id" groups="product.group_stock_packaging" optional="show"/>
<field name="product_packaging_id" invisible="not product_id" context="{'default_product_id': product_id, 'tree_view_ref':'product.product_packaging_tree_view', 'form_view_ref':'product.product_packaging_form_view'}" groups="product.group_stock_packaging" optional="show"/>
<field name="price_unit" readonly="qty_invoiced != 0" optional="show"/>
<field name="taxes_id" widget="many2many_tags" readonly="True" optional="show"/>
<field name="discount" string="Disc.%" readonly="qty_invoiced != 0" optional="hide"/>
<field name="price_subtotal" string="Tax excl." sum="Total Price"/>
<field name="price_total" string="Tax incl." sum="Total Price" optional="hide"/>
<field name="state" widget="badge" decoration-success="state == 'purchase' or state == 'done'" decoration-warning="state == 'to approve'" decoration-info="state == 'draft' or state == 'sent'"/>
</tree>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment