Files
odoo-usability/purchase_usability/purchase_view.xml
2020-11-27 10:05:36 +01:00

212 lines
9.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2014-2019 Akretion (http://www.akretion.com/)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo>
<record id="purchase_order_form" model="ir.ui.view">
<field name="name">usability.purchase.order.form</field>
<field name="model">purchase.order</field>
<field name="inherit_id" ref="purchase.purchase_order_form"/>
<field name="arch" type="xml">
<button name="action_rfq_send" states="purchase" position="after">
<button name="print_order" states="purchase" string="Print Order" type="object"/>
</button>
<field name="fiscal_position_id" position="attributes">
<attribute name="widget">selection</attribute>
</field>
<button name="button_cancel" type="object" position="attributes">
<attribute name="confirm">Are you sure you want to cancel this purchase order?</attribute>
</button>
<!-- the 'origin' field can be very long ; it can list a lot of MO or OP!
I think limiting the size of the field would not be the best option,
because the info it carries can be interesting. So we just move it
from the top of the view to the second tab -->
<field name="origin" position="replace"/>
<field name="date_approve" position="after">
<field name="origin"/>
</field>
<!-- Remove once this PR is merged https://github.com/odoo/odoo/pull/35073 -->
<xpath expr="//field[@name='order_line']/form//field[@name='analytic_tag_ids']" position="attributes">
<attribute name="groups">analytic.group_analytic_tags</attribute>
</xpath>
</field>
</record>
<record id="purchase_order_tree" model="ir.ui.view">
<field name="name">usability.purchase.order.tree</field>
<field name="model">purchase.order</field>
<field name="inherit_id" ref="purchase.purchase_order_tree"/>
<field name="arch" type="xml">
<!-- the 'origin' field can be very long ; it can list a lot of MO or OP!
I think limiting the size of the field would not be the best option,
because the info it carries can be interesting. So we just remove it from
tree view to avoid layout issues -->
<field name="origin" position="attributes">
<attribute name="invisible">1</attribute>
</field>
<field name="state" position="after">
<!-- State field is not sufficient to define what is the next step of the purchase-->
<field name="invoice_status"/>
</field>
</field>
</record>
<record id="view_purchase_order_filter" model="ir.ui.view">
<field name="name">usability.purchase.order.tree</field>
<field name="model">purchase.order</field>
<field name="inherit_id" ref="purchase.view_purchase_order_filter"/>
<field name="arch" type="xml">
<group expand="0" position="inside">
<filter string="Billing Status" name="invoice_status_groupby" context="{'group_by': 'invoice_status'}"/>
</group>
<field name="name" position="attributes">
<attribute name="string">Reference or Origin</attribute>
<attribute name="filter_domain">['|', ('name', 'ilike', self), ('origin', 'ilike', self)]</attribute>
</field>
</field>
</record>
<!-- Default measure should be Total without taxes instead of Total with taxes -->
<record id="purchase_order_pivot" model="ir.ui.view">
<field name="name">usability.purchase.order.pivot</field>
<field name="model">purchase.order</field>
<field name="inherit_id" ref="purchase.purchase_order_pivot"/>
<field name="arch" type="xml">
<field name="amount_total" type="measure" position="replace">
<field name="amount_untaxed" type="measure"/>
</field>
</field>
</record>
<record id="purchase_order_graph" model="ir.ui.view">
<field name="name">usability.purchase.order.graph</field>
<field name="model">purchase.order</field>
<field name="inherit_id" ref="purchase.purchase_order_graph"/>
<field name="arch" type="xml">
<field name="amount_total" type="measure" position="replace">
<field name="amount_untaxed" type="measure"/>
</field>
</field>
</record>
<record id="purchase_order_calendar" model="ir.ui.view">
<field name="name">usability.purchase.order.calendar</field>
<field name="model">purchase.order</field>
<field name="inherit_id" ref="purchase.purchase_order_calendar"/>
<field name="arch" type="xml">
<field name="amount_total" position="replace">
<field name="amount_untaxed" widget="monetary"/>
</field>
</field>
</record>
<!-- Do not show cancelled quotations by default in "Requests for Quotation" -->
<record id="purchase.purchase_rfq" model="ir.actions.act_window">
<field name="context">{'search_default_draft': 1}</field>
</record>
<record id="purchase_order_line_tree" model="ir.ui.view">
<field name="name">usability.purchase.order.line.tree</field>
<field name="model">purchase.order.line</field>
<field name="inherit_id" ref="purchase.purchase_order_line_tree"/>
<field name="arch" type="xml">
<field name="name" position="replace"/>
<field name="product_id" position="after">
<field name="name"/>
</field>
<field name="product_qty" position="after">
<field name="qty_received"/>
<field name="qty_invoiced"/>
</field>
<field name="price_unit" position="replace"/>
<field name="product_uom" position="after">
<field name="price_unit"/>
</field>
<field name="product_qty" position="before">
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
<field name="currency_id" invisible="1"/>
</field>
<field name="date_planned" position="after">
<field name="state"/>
</field>
</field>
</record>
<record id="purchase_order_line_search" model="ir.ui.view">
<field name="name">usability.purchase.order.line.search</field>
<field name="model">purchase.order.line</field>
<field name="inherit_id" ref="purchase.purchase_order_line_search"/>
<field name="arch" type="xml">
<field name="partner_id" position="after">
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
</field>
<group expand="0" position="inside">
<filter string="Analytic Account" name="account_analytic_groupby" context="{'group_by': 'account_analytic_id'}"/>
</group>
</field>
</record>
<record id="purchase_order_line_pivot" model="ir.ui.view">
<field name="name">usability.purchase.order.line.pivot</field>
<field name="model">purchase.order.line</field>
<field name="arch" type="xml">
<pivot string="Purchase Order Lines">
<field name="state" type="col"/>
<field name="partner_id" type="row"/>
<field name="price_subtotal" type="measure"/> <!-- not good, because it sums-up different currencies -->
</pivot>
</field>
</record>
<record id="purchase_order_line_action" model="ir.actions.act_window">
<field name="name">Purchase Order Lines</field>
<field name="res_model">purchase.order.line</field>
<field name="view_mode">tree,form,pivot</field>
</record>
<!-- The menu entry should be added in customer-specific module -->
<record id="purchase.action_purchase_order_report_all" model="ir.actions.act_window">
<field name="view_mode">pivot,graph,tree</field> <!--- native order is graph,pivot. Switch order and add tree -->
</record>
<record id="view_purchase_order_pivot" model="ir.ui.view">
<field name="model">purchase.report</field>
<field name="inherit_id" ref="purchase.view_purchase_order_pivot"/>
<field name="arch" type="xml">
<pivot position="attributes">
<attribute name="disable_linking"></attribute>
</pivot>
<field name="unit_quantity" position="replace"/> <!-- it's stupid to display a unit_quantity by default... it will sum qty of different products, which doesn't make a lot of sense -->
<field name="price_average" position="replace"/> <!-- it's stupid to display a price_average by default... it will average between different products, which is a non-sense -->
</field>
</record>
<record id="view_purchase_order_tree" model="ir.ui.view">
<field name="name">purchase.report.tree</field>
<field name="model">purchase.report</field>
<field name="arch" type="xml">
<tree>
<field name="commercial_partner_id"/>
<field name="date_order"/>
<field name="date_approve"/>
<field name="product_id"/>
<field name="unit_quantity" sum="1"/>
<field name="product_uom"/>
<field name="price_total" sum="1"/>
<field name="account_analytic_id"/>
<field name="currency_id" invisible="1"/>
<field name="user_id"/>
<field name="state"/>
</tree>
</field>
</record>
</odoo>