579 lines
37 KiB
XML
579 lines
37 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<openerp>
|
|
<data>
|
|
|
|
<!-- Top menu item -->
|
|
<!--
|
|
This menu item's purpose is to overwrite another one defined in
|
|
the base module in order to set new groups.
|
|
-->
|
|
<menuitem name="Sales"
|
|
id="base.menu_base_partner"
|
|
groups="base.group_sale_salesman,base.group_sale_manager"/>
|
|
|
|
<menuitem id="base.menu_product" name="Products" parent="base.menu_base_partner" sequence="9"/>
|
|
|
|
|
|
<record id="view_shop_form" model="ir.ui.view">
|
|
<field name="name">sale.shop</field>
|
|
<field name="model">sale.shop</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Sales Shop" version="7.0">
|
|
<label for="name" class="oe_edit_only"/>
|
|
<h1><field name="name"/></h1>
|
|
<group name="shop">
|
|
<group>
|
|
<field name="payment_default_id"/>
|
|
<field domain="[('type','=','sale')]" name="pricelist_id" groups="product.group_sale_pricelist"/>
|
|
</group>
|
|
<group>
|
|
<field name="project_id" groups="analytic.group_analytic_accounting"/>
|
|
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
|
</group>
|
|
</group>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_shop_tree" model="ir.ui.view">
|
|
<field name="name">sale.shop</field>
|
|
<field name="model">sale.shop</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Sales Shop">
|
|
<field name="name"/>
|
|
<field name="pricelist_id" groups="product.group_sale_pricelist"/>
|
|
<field name="project_id" groups="analytic.group_analytic_accounting"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="action_shop_form" model="ir.actions.act_window">
|
|
<field name="name">Shop</field>
|
|
<field name="type">ir.actions.act_window</field>
|
|
<field name="res_model">sale.shop</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">tree,form</field>
|
|
<field name="view_id" ref="view_shop_tree"/>
|
|
<field name="help" type="html">
|
|
<p class="oe_view_nocontent_create">
|
|
Click to define a new sale shop.
|
|
</p><p>
|
|
Each quotation or sales order must be linked to a shop. The
|
|
shop also defines the warehouse from which the products will be
|
|
delivered for each particular sales.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
|
|
<record id="view_sale_order_calendar" model="ir.ui.view">
|
|
<field name="name">sale.order.calendar</field>
|
|
<field name="model">sale.order</field>
|
|
<field name="arch" type="xml">
|
|
<calendar string="Sales Orders" color="state" date_start="date_order">
|
|
<field name="partner_id"/>
|
|
<field name="amount_total"/>
|
|
</calendar>
|
|
</field>
|
|
</record>
|
|
<record model="ir.ui.view" id="view_sale_order_graph">
|
|
<field name="name">sale.order.graph</field>
|
|
<field name="model">sale.order</field>
|
|
<field name="arch" type="xml">
|
|
<graph string="Sales Orders" type="bar">
|
|
<field name="partner_id"/>
|
|
<field name="amount_total" operator="+"/>
|
|
</graph>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_order_tree" model="ir.ui.view">
|
|
<field name="name">sale.order.tree</field>
|
|
<field name="model">sale.order</field>
|
|
<field name="priority">2</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Sales Orders" fonts="bold:message_unread==True" colors="grey:state=='cancel';blue:state in ('waiting_date','manual');red:state in ('invoice_except','shipping_except')">
|
|
<field name="message_unread" invisible="1"/>
|
|
<field name="name" string="Order Number"/>
|
|
<field name="date_order"/>
|
|
<field name="partner_id"/>
|
|
<field name="user_id"/>
|
|
<field name="amount_total" sum="Total Tax Included"/>
|
|
<field name="state"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_quotation_tree" model="ir.ui.view">
|
|
<field name="name">sale.order.tree</field>
|
|
<field name="model">sale.order</field>
|
|
<field name="priority">4</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Quotation" fonts="bold:message_unread==True" colors="grey:state=='cancel';blue:state in ('waiting_date','manual');red:state in ('invoice_except','shipping_except')">
|
|
<field name="message_unread" invisible="1"/>
|
|
<field name="name" string="Quotation Number"/>
|
|
<field name="date_order"/>
|
|
<field name="partner_id"/>
|
|
<field name="user_id"/>
|
|
<field name="amount_total" sum="Total Tax Included"/>
|
|
<field name="state"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_order_form" model="ir.ui.view">
|
|
<field name="name">sale.order.form</field>
|
|
<field name="model">sale.order</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Sales Order" version="7.0">
|
|
<header>
|
|
<button name="invoice_recreate" states="invoice_except" string="Recreate Invoice" groups="base.group_user"/>
|
|
<button name="invoice_corrected" states="invoice_except" string="Ignore Exception" groups="base.group_user"/>
|
|
<button name="action_quotation_send" string="Send by Email" type="object" states="draft" class="oe_highlight" groups="base.group_user"/>
|
|
<button name="action_quotation_send" string="Send by Email" type="object" states="sent" groups="base.group_user"/>
|
|
<button name="print_quotation" string="Print" type="object" states="draft" class="oe_highlight" groups="base.group_user"/>
|
|
<button name="print_quotation" string="Print" type="object" states="sent" groups="base.group_user"/>
|
|
<button name="action_button_confirm" states="draft" string="Confirm Sale" type="object" groups="base.group_user"/>
|
|
<button name="action_button_confirm" states="sent" string="Confirm Sale" class="oe_highlight" type="object" groups="base.group_user"/>
|
|
<button name="action_view_invoice" string="View Invoice" type="object" class="oe_highlight"
|
|
attrs="{'invisible': [('invoice_exists', '=', False)]}" groups="base.group_user"/>
|
|
<button name="%(action_view_sale_advance_payment_inv)d" string="Create Invoice"
|
|
type="action" states="manual" class="oe_highlight" groups="base.group_user"/>
|
|
<button name="copy_quotation" states="cancel" string="New Copy of Quotation" type="object"/>
|
|
<button name="cancel" states="draft,sent" string="Cancel Quotation" groups="base.group_user"/>
|
|
<button name="action_cancel" states="manual,progress" string="Cancel Order" type="object" groups="base.group_user"/>
|
|
<button name="invoice_cancel" states="invoice_except" string="Cancel Order" groups="base.group_user"/>
|
|
<field name="state" widget="statusbar" statusbar_visible="draft,sent,invoiced,done" statusbar_colors='{"invoice_except":"red","waiting_date":"blue"}'/>
|
|
</header>
|
|
<sheet>
|
|
<h1>
|
|
<label string="Quotation " attrs="{'invisible': [('state','not in',('draft','sent'))]}"/>
|
|
<label string="Sales Order " attrs="{'invisible': [('state','in',('draft','sent'))]}"/>
|
|
<field name="name" class="oe_inline" readonly="1"/>
|
|
</h1>
|
|
<group>
|
|
<group>
|
|
<field name="partner_id" on_change="onchange_partner_id(partner_id, context)" domain="[('customer','=',True)]" context="{'search_default_customer':1, 'show_address': 1}" options='{"always_reload": True}'/>
|
|
<field name="partner_invoice_id" groups="sale.group_delivery_invoice_address" context="{'default_type':'invoice'}"/>
|
|
<field name="partner_shipping_id" groups="sale.group_delivery_invoice_address" context="{'default_type':'delivery'}"/>
|
|
<field name="project_id" context="{'partner_id':partner_id, 'default_pricelist_id':pricelist_id, 'default_name':name, 'default_type': 'contract'}" groups="sale.group_analytic_accounting" domain="[('type','in',['view','normal','contract'])]"/>
|
|
</group>
|
|
<group>
|
|
<field name="date_order"/>
|
|
<field name="shop_id" groups="base.group_no_one" on_change="onchange_shop_id(shop_id, context)" widget="selection"/>
|
|
<field name="client_order_ref"/>
|
|
<field domain="[('type','=','sale')]" name="pricelist_id" groups="product.group_sale_pricelist" on_change="onchange_pricelist_id(pricelist_id,order_line)"/>
|
|
<field name="currency_id" invisible="1"/>
|
|
</group>
|
|
</group>
|
|
<notebook>
|
|
<page string="Order Lines">
|
|
<field name="order_line">
|
|
<form string="Sales Order Lines" version="7.0">
|
|
<header groups="base.group_user">
|
|
<button name="%(action_view_sale_order_line_make_invoice)d" states="confirmed" string="Invoice" type="action" icon="terp-document-new"/>
|
|
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed,done" statusbar_colors='{"exception":"red","cancel":"red"}'/>
|
|
</header>
|
|
<group>
|
|
<group>
|
|
<field name="state" invisible="1" />
|
|
<field name="product_id"
|
|
context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}"
|
|
groups="base.group_user"
|
|
on_change="product_id_change(parent.pricelist_id, product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.partner_id, False, True, parent.date_order, False, parent.fiscal_position, False, context)"/>
|
|
<label for="product_uom_qty"/>
|
|
<div>
|
|
<field
|
|
context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}"
|
|
name="product_uom_qty" class="oe_inline"
|
|
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, False, parent.date_order, False, parent.fiscal_position, True, context)"/>
|
|
<field name="product_uom" groups="product.group_uom" class="oe_inline oe_no_button"
|
|
|
|
on_change="product_uom_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, False, parent.date_order, context)"/>
|
|
</div>
|
|
<label for="product_uos_qty" groups="product.group_uos"/>
|
|
<div groups="product.group_uos">
|
|
<field name="product_uos_qty" class="oe_inline"/>
|
|
<field name="product_uos" options='{"no_open": True}' class="oe_inline"/>
|
|
</div>
|
|
<field name="price_unit"/>
|
|
<label for="discount" groups="sale.group_discount_per_so_line"/>
|
|
<div name="discount" groups="sale.group_discount_per_so_line">
|
|
<field name="discount" class="oe_inline"/> %%
|
|
</div>
|
|
</group>
|
|
<group>
|
|
<field name="tax_id" widget="many2many_tags" domain="[('parent_id','=',False),('type_tax_use','<>','purchase')]"/>
|
|
<field name="type"/>
|
|
<field name="th_weight"/>
|
|
<!-- we should put a config wizard for these two fields -->
|
|
<field name="address_allotment_id"/>
|
|
</group>
|
|
</group>
|
|
<label for="name"/>
|
|
<field name="name"/>
|
|
<div groups="base.group_no_one">
|
|
<label for="invoice_lines"/>
|
|
<field name="invoice_lines"/>
|
|
</div>
|
|
</form>
|
|
<tree string="Sales Order Lines" editable="bottom">
|
|
<field name="sequence" widget="handle"/>
|
|
<field name="state" invisible="1"/>
|
|
<field name="th_weight" invisible="1"/>
|
|
<field name="product_id"
|
|
context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}"
|
|
groups="base.group_user"
|
|
on_change="product_id_change(parent.pricelist_id, product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.partner_id, False, True, parent.date_order, False, parent.fiscal_position, False, context)"/>
|
|
<field name="name"/>
|
|
<field name="product_uom_qty"
|
|
context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}"
|
|
on_change="product_id_change(parent.pricelist_id, product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.partner_id, False, False, parent.date_order, False, parent.fiscal_position, True, context)"/>
|
|
<field name="product_uom"
|
|
on_change="product_uom_change(parent.pricelist_id, product_id, product_uom_qty, product_uom, product_uos_qty, product_uos, name, parent.partner_id, False, False, parent.date_order, context)"
|
|
groups="product.group_uom" options='{"no_open": True}'/>
|
|
<field name="product_uos_qty" groups="product.group_uos" invisible="1"/>
|
|
<field name="product_uos" string="UoS" groups="product.group_uos" invisible="1"/>
|
|
<field name="tax_id" widget="many2many_tags" domain="[('parent_id','=',False),('type_tax_use','<>','purchase')]"/>
|
|
<field name="price_unit"/>
|
|
<field name="discount" groups="sale.group_discount_per_so_line"/>
|
|
<field name="price_subtotal"/>
|
|
</tree>
|
|
</field>
|
|
<group class="oe_subtotal_footer oe_right" colspan="2" name="sale_total">
|
|
<field name="amount_untaxed" widget='monetary' options="{'currency_field': 'currency_id'}"/>
|
|
<field name="amount_tax" widget='monetary' options="{'currency_field': 'currency_id'}"/>
|
|
<div class="oe_subtotal_footer_separator oe_inline">
|
|
<label for="amount_total" />
|
|
<button name="button_dummy"
|
|
states="draft,sent" string="(update)" type="object" class="oe_edit_only oe_link"/>
|
|
</div>
|
|
<field name="amount_total" nolabel="1" class="oe_subtotal_footer_separator" widget='monetary' options="{'currency_field': 'currency_id'}"/>
|
|
</group>
|
|
<div class="oe_clear"/>
|
|
<field name="note" class="oe_inline" placeholder="Terms and conditions..."/>
|
|
</page>
|
|
<page string="Other Information" groups="base.group_user">
|
|
<group>
|
|
<group name="sales_person" groups="base.group_user">
|
|
<field name="user_id"/>
|
|
<field groups="base.group_no_one" name="origin"/>
|
|
</group>
|
|
<group name="sale_pay">
|
|
<field name="payment_term" widget="selection"/>
|
|
<field name="fiscal_position" widget="selection"/>
|
|
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
|
</group>
|
|
<group>
|
|
<field name="invoiced"/>
|
|
<field name="invoice_exists" invisible="1"/>
|
|
</group>
|
|
</group>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
<div class="oe_chatter">
|
|
<field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/>
|
|
<field name="message_ids" widget="mail_thread"/>
|
|
</div>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- inherited view to make the order lines list in the form non-editable
|
|
for the members of some usability groups -->
|
|
<record id="view_order_form_editable_list" model="ir.ui.view">
|
|
<field name="name">sale.order.form.editable.list</field>
|
|
<field name="model">sale.order</field>
|
|
<field name="inherit_id" ref="sale.view_order_form"/>
|
|
<field name="groups_id" eval="[(6, 0, [ref('product.group_uos'), ref('product.group_stock_packaging'), ref('sale.group_mrp_properties')])]"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//field[@name='order_line']/tree" position="attributes">
|
|
<attribute name="editable"/>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_sales_order_filter" model="ir.ui.view">
|
|
<field name="name">sale.order.list.select</field>
|
|
<field name="model">sale.order</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Search Sales Order">
|
|
<field name="name" string="Sales Order" filter_domain="['|',('name','ilike',self),('client_order_ref','ilike',self)]"/>
|
|
<filter icon="terp-mail-message-new" string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
|
|
<separator/>
|
|
<filter icon="terp-document-new" string="Quotations" name="draft" domain="[('state','in',('draft','sent'))]" help="Sales Order that haven't yet been confirmed"/>
|
|
<filter icon="terp-check" string="Sales" name="sales" domain="[('state','in',('manual','progress'))]"/>
|
|
<filter icon="terp-dolar_ok!" string="To Invoice" domain="[('state','=','manual')]" help="Sales Order ready to be invoiced"/>
|
|
<filter icon="terp-dolar_ok!" string="Done" domain="[('state','=','done')]" help="Sales Order done"/>
|
|
<separator/>
|
|
<filter string="My Sales Orders" domain="[('user_id','=',uid)]" help="My Sales Orders" icon="terp-personal" name="my_sale_orders_filter"/>
|
|
<field name="partner_id"/>
|
|
<field name="user_id"/>
|
|
<field name="project_id"/>
|
|
<group expand="0" string="Group By...">
|
|
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
|
|
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
|
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
|
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="action_orders" model="ir.actions.act_window">
|
|
<field name="name">Sales Orders</field>
|
|
<field name="type">ir.actions.act_window</field>
|
|
<field name="res_model">sale.order</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">tree,form,calendar,graph</field>
|
|
<field name="search_view_id" ref="view_sales_order_filter"/>
|
|
<field name="context">{
|
|
'show_address': 1,
|
|
'search_default_my_sale_orders_filter': 1
|
|
}
|
|
</field>
|
|
<field name="domain">[('state', 'not in', ('draft', 'sent', 'cancel'))]</field>
|
|
<field name="help" type="html">
|
|
<p class="oe_view_nocontent_create">
|
|
Click to create a quotation that can be converted into a sales
|
|
order.
|
|
</p><p>
|
|
OpenERP will help you efficiently handle the complete sales flow:
|
|
quotation, sales order, delivery, invoicing and payment.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<menuitem action="action_orders" id="menu_sale_order" parent="base.menu_sales" sequence="6" groups="base.group_sale_salesman,base.group_sale_manager"/>
|
|
|
|
<record id="action_orders_exception" model="ir.actions.act_window">
|
|
<field name="name">Sales in Exception</field>
|
|
<field name="type">ir.actions.act_window</field>
|
|
<field name="res_model">sale.order</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">tree,form,calendar,graph</field>
|
|
<field name="domain">[('state','in',('shipping_except','invoice_except'))]</field>
|
|
<field name="filter" eval="True"/>
|
|
<field name="search_view_id" ref="view_sales_order_filter"/>
|
|
</record>
|
|
|
|
<record id="action_orders_in_progress" model="ir.actions.act_window">
|
|
<field name="name">Sales Order in Progress</field>
|
|
<field name="type">ir.actions.act_window</field>
|
|
<field name="res_model">sale.order</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">tree,form,calendar,graph</field>
|
|
<field name="domain">[('state','in',('progress','waiting_date','manual'))]</field>
|
|
<field name="search_view_id" ref="view_sales_order_filter"/>
|
|
</record>
|
|
|
|
|
|
<record id="action_quotations" model="ir.actions.act_window">
|
|
<field name="name">Quotations</field>
|
|
<field name="type">ir.actions.act_window</field>
|
|
<field name="res_model">sale.order</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_id" ref="view_quotation_tree"/>
|
|
<field name="view_mode">tree,form,calendar,graph</field>
|
|
<field name="context">{'show_address': 1, 'search_default_my_sale_orders_filter': 1}</field>
|
|
<field name="domain">[('state','in',('draft','sent','cancel'))]</field>
|
|
<field name="search_view_id" ref="view_sales_order_filter"/>
|
|
<field name="help" type="html">
|
|
<p class="oe_view_nocontent_create">
|
|
Click to create a quotation, the first step of a new sale.
|
|
</p><p>
|
|
OpenERP will help you handle efficiently the complete sale flow:
|
|
from the quotation to the sales order, the
|
|
delivery, the invoicing and the payment collection.
|
|
</p><p>
|
|
The social feature helps you organize discussions on each sales
|
|
order, and allow your customers to keep track of the evolution
|
|
of the sales order.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<menuitem id="menu_sale_quotations"
|
|
action="action_quotations" parent="base.menu_sales"
|
|
sequence="5"/>
|
|
|
|
<record id="action_order_tree" model="ir.actions.act_window">
|
|
<field name="name">Old Quotations</field>
|
|
<field name="type">ir.actions.act_window</field>
|
|
<field name="res_model">sale.order</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">tree,form,calendar,graph</field>
|
|
<field name="domain">[('state','=','draft'),('date_order','<',time.strftime('%Y-%m-%d %H:%M:%S'))]</field>
|
|
<field name="filter" eval="True"/>
|
|
<field name="search_view_id" ref="view_sales_order_filter"/>
|
|
</record>
|
|
|
|
|
|
<record id="view_order_line_tree" model="ir.ui.view">
|
|
<field name="name">sale.order.line.tree</field>
|
|
<field name="model">sale.order.line</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Sales Order Lines">
|
|
<field name="product_id" invisible="1"/>
|
|
<field name="order_id"/>
|
|
<field name="order_partner_id"/>
|
|
<field name="name"/>
|
|
<field name="product_uom_qty" string="Qty"/>
|
|
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
|
|
<field name="salesman_id"/>
|
|
<field name="price_subtotal" sum="Total"/>
|
|
<field name="state"/>
|
|
<field name="invoiced"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
<record id="view_order_line_form2" model="ir.ui.view">
|
|
<field name="name">sale.order.line.form2</field>
|
|
<field name="model">sale.order.line</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Sales Order Lines" version="7.0">
|
|
<header>
|
|
<button name="%(action_view_sale_order_line_make_invoice)d" string="Create Invoice" type="action" attrs="{'invisible': ['|',('invoiced', '=', 1), ('state', 'not in', ('confirmed', 'draft'))]}" class="oe_highlight" groups="base.group_user"/>
|
|
<button name="button_cancel" string="Cancel Line" type="object" states="confirmed,exception" groups="base.group_user"/>
|
|
<button name="button_done" string="Done" type="object" attrs="{'invisible': ['|',('invoiced', '=', 0), ('state', 'not in', ('confirmed', 'exception'))]}" class="oe_highlight" groups="base.group_user"/>
|
|
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed,done" statusbar_colors='{"exception":"red","cancel":"red"}'/>
|
|
</header>
|
|
<sheet>
|
|
<label for="order_id" class="oe_edit_only"/>
|
|
<h1><field name="order_id" domain="[('state','!=','done')]"/></h1>
|
|
<label for="order_partner_id" class="oe_edit_only"/>
|
|
<h2><field name="order_partner_id"/></h2>
|
|
<group>
|
|
<group>
|
|
<field name="product_id"/>
|
|
<label for="product_uom_qty"/>
|
|
<div>
|
|
<field name="product_uom_qty" readonly="1" class="oe_inline"/>
|
|
<field name="product_uom" groups="product.group_uom" class="oe_inline"/>
|
|
</div>
|
|
</group>
|
|
<group>
|
|
<field name="price_unit"/>
|
|
<field name="discount" groups="sale.group_discount_per_so_line"/>
|
|
<field name="price_subtotal"/>
|
|
<field name="invoiced"/>
|
|
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
|
|
</group>
|
|
</group>
|
|
<label for="name"/>
|
|
<field name="name"/>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_sales_order_line_filter" model="ir.ui.view">
|
|
<field name="name">sale.order.line.select</field>
|
|
<field name="model">sale.order.line</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Search Sales Order">
|
|
<filter icon="terp-dolar_ok!" string="To Invoice" domain="[('invoiced','<>', 1),('state','=','done')]" help="Sales Order Lines ready to be invoiced"/>
|
|
<separator/>
|
|
<filter string="My Sales Order Lines" icon="terp-personnal" domain="[('salesman_id','=',uid)]" help="Sales Order Lines related to a Sales Order of mine"/>
|
|
<field name="order_id"/>
|
|
<field name="order_partner_id"/>
|
|
<field name="product_id"/>
|
|
<field name="salesman_id"/>
|
|
<group expand="0" string="Group By...">
|
|
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
|
|
<filter string="Order" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'order_id'}"/>
|
|
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'salesman_id'}"/>
|
|
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_sales_order_uninvoiced_line_filter" model="ir.ui.view">
|
|
<field name="name">sale.order.uninvoiced.line</field>
|
|
<field name="model">sale.order.line</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Search Uninvoiced Lines">
|
|
<filter icon="terp-gtk-go-back-rtl" string="To Do" domain="[('state','=','confirmed')]" name="sale order" help="Confirmed sales order lines, not yet delivered"/>
|
|
<filter icon="terp-dialog-close" string="Done" domain="[('state','=','done')]" name="sale_order_done" help="Sales order lines done"/>
|
|
<filter icon="terp-accessories-archiver" string="Shipped" domain="[('state','=','done')]" name="unshipped" help="Sales Order Lines that are in 'done' state"/>
|
|
<separator/>
|
|
<filter icon="terp-dolar_ok!" string="Uninvoiced" name="uninvoiced" domain="[('invoiced','<>', 1),('state','<>','draft'),('state','<>','cancel')]" help="Sales Order Lines that are confirmed, done or in exception state and haven't yet been invoiced"/>
|
|
<separator/>
|
|
<filter string="My Sales Order Lines" icon="terp-personal" domain="[('salesman_id','=',uid)]" help="My Sales Order Lines"/>
|
|
<field name="order_id"/>
|
|
<field name="order_partner_id"/>
|
|
<field name="product_id"/>
|
|
<field name="salesman_id"/>
|
|
<group expand="0" string="Group By...">
|
|
<filter string="Order" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'order_id'}" help="Order reference"/>
|
|
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
|
|
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="action_order_line_tree2" model="ir.actions.act_window">
|
|
<field name="name">Order Lines to Invoice</field>
|
|
<field name="type">ir.actions.act_window</field>
|
|
<field name="res_model">sale.order.line</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">tree,form</field>
|
|
<field name="search_view_id" ref="view_sales_order_uninvoiced_line_filter"/>
|
|
<field name="context">{"search_default_uninvoiced":1}</field>
|
|
<field name="filter" eval="True"/>
|
|
<field name="help" type="html">
|
|
<p>
|
|
Here is a list of each sales order line to be invoiced. You can
|
|
invoice sales orders partially, by lines of sales order. You do
|
|
not need this list if you invoice from the delivery orders or
|
|
if you invoice sales totally.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="action_order_line_tree3" model="ir.actions.act_window">
|
|
<field name="name">Uninvoiced and Delivered Lines</field>
|
|
<field name="type">ir.actions.act_window</field>
|
|
<field name="res_model">sale.order.line</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">tree,form</field>
|
|
<field name="domain">[('invoiced','<>', 1),('state','=','done')]</field>
|
|
<field name="filter" eval="True"/>
|
|
</record>
|
|
<record id="action_order_line_product_tree" model="ir.actions.act_window">
|
|
<field name="context">{'search_default_product_id': active_id, 'default_product_id': active_id}</field>
|
|
<field name="name">Sales Order Lines</field>
|
|
<field name="res_model">sale.order.line</field>
|
|
<field name="view_id" ref="view_order_line_tree"/>
|
|
</record>
|
|
<record model="ir.ui.view" id="product_form_view_sale_order_button">
|
|
<field name="name">product.product.sale.order</field>
|
|
<field name="model">product.product</field>
|
|
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//div[@name='buttons']" position="inside">
|
|
<button string="Sales" name="%(action_order_line_product_tree)d" type="action" groups="base.group_sale_salesman"/>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
<menuitem id="base.menu_invoiced" name="Invoicing" parent="base.menu_base_partner" sequence="5"/>
|
|
<menuitem id="menu_invoicing_sales_order_lines" parent="base.menu_invoiced" action="action_order_line_tree2" sequence="10" groups="sale.group_invoice_so_lines"/>
|
|
|
|
<record model="ir.ui.view" id="view_company_inherit_form2">
|
|
<field name="name">res.company.form.inherit</field>
|
|
<field name="inherit_id" ref="base.view_company_form"/>
|
|
<field name="model">res.company</field>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//group[@name='account_grp']" position="after">
|
|
<group name="sale_grp" string="Sales">
|
|
<field name="sale_note" nolabel="1" placeholder="Default terms & conditions..."/>
|
|
</group>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
</data>
|
|
</openerp>
|