601 lines
37 KiB
XML
601 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 sale 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>
|
|
|
|
|
|
<!-- Sale order Read/Unread actions -->
|
|
<record id="actions_server_sale_order_unread" model="ir.actions.server">
|
|
<field name="name">Mark unread</field>
|
|
<field name="condition">True</field>
|
|
<field name="type">ir.actions.server</field>
|
|
<field name="model_id" ref="model_sale_order"/>
|
|
<field name="state">code</field>
|
|
<field name="code">self.message_check_and_set_unread(cr, uid, context.get('active_ids'), context=context)</field>
|
|
</record>
|
|
<record id="action_sale_order_unread" model="ir.values">
|
|
<field name="name">action_sale_order_unread</field>
|
|
<field name="action_id" ref="actions_server_sale_order_unread"/>
|
|
<field name="value" eval="'ir.actions.server,' + str(ref('actions_server_sale_order_unread'))" />
|
|
<field name="key">action</field>
|
|
<field name="model_id" ref="model_sale_order" />
|
|
<field name="model">sale.order</field>
|
|
<field name="key2">client_action_multi</field>
|
|
</record>
|
|
|
|
<record id="actions_server_sale_order_read" model="ir.actions.server">
|
|
<field name="name">Mark read</field>
|
|
<field name="condition">True</field>
|
|
<field name="type">ir.actions.server</field>
|
|
<field name="model_id" ref="model_sale_order"/>
|
|
<field name="state">code</field>
|
|
<field name="code">self.message_check_and_set_read(cr, uid, context.get('active_ids'), context=context)</field>
|
|
</record>
|
|
<record id="action_sale_order_read" model="ir.values">
|
|
<field name="name">action_sale_order_read</field>
|
|
<field name="action_id" ref="actions_server_sale_order_read"/>
|
|
<field name="value" eval="'ir.actions.server,' + str(ref('actions_server_sale_order_read'))" />
|
|
<field name="key">action</field>
|
|
<field name="model_id" ref="model_sale_order" />
|
|
<field name="model">sale.order</field>
|
|
<field name="key2">client_action_multi</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"/>
|
|
<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>
|
|
<span groups="base.group_user">
|
|
<button name="invoice_recreate" states="invoice_except" string="Recreate Invoice"/>
|
|
<button name="invoice_corrected" states="invoice_except" string="Ignore Exception"/>
|
|
<button name="action_quotation_send" string="Send by Mail" type="object" states="draft" class="oe_highlight"/>
|
|
<button name="action_quotation_send" string="Send by Mail" type="object" states="sent"/>
|
|
<button name="print_quotation" string="Print" type="object" states="draft" class="oe_highlight"/>
|
|
<button name="print_quotation" string="Print" type="object" states="sent"/>
|
|
<button name="action_button_confirm" states="draft" string="Confirm" type="object"/>
|
|
<button name="action_button_confirm" states="sent" string="Confirm" class="oe_highlight" type="object"/>
|
|
<button name="action_view_invoice" string="View Invoice" type="object" class="oe_highlight"
|
|
attrs="{'invisible': [('invoice_exists', '=', False)]}"/>
|
|
<button name="%(action_view_sale_advance_payment_inv)d" string="Create Invoice"
|
|
type="action" states="manual" class="oe_highlight"/>
|
|
<button name="cancel" states="draft,sent" string="Cancel"/>
|
|
<button name="action_cancel" states="manual,progress" string="Cancel" type="object"/>
|
|
<button name="invoice_cancel" states="invoice_except" string="Cancel"/>
|
|
</span>
|
|
<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="Sale 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)" 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"/>
|
|
<field name="partner_shipping_id" groups="sale.group_delivery_invoice_address"/>
|
|
<field name="project_id" context="{'partner_id':partner_id, 'pricelist_id':pricelist_id, 'default_name':name}" groups="sale.group_analytic_accounting" domain="[('type','in',['view','normal','contract'])]"/>
|
|
</group>
|
|
<group>
|
|
<field name="date_order"/>
|
|
<field name="shop_id" invisible="1"/>
|
|
<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)"/>
|
|
</group>
|
|
</group>
|
|
<notebook>
|
|
<page string="Order Lines">
|
|
<field name="order_line">
|
|
<form string="Sales Order Lines" version="7.0">
|
|
<header>
|
|
<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 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="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"/>
|
|
<field name="amount_tax"/>
|
|
<div class="oe_subtotal_footer_separator oe_inline">
|
|
<label for="amount_total" />
|
|
<button name="button_dummy"
|
|
states="draft" string="(update)" type="object" class="oe_edit_only oe_link"/>
|
|
</div>
|
|
<field name="amount_total" nolabel="1" class="oe_subtotal_footer_separator"/>
|
|
</group>
|
|
<group name="sale_margin_grp">
|
|
</group>
|
|
<div class="oe_clear"/>
|
|
<label for="note"/><br/>
|
|
<field name="note" class="oe_inline"/>
|
|
</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>
|
|
<page string="History">
|
|
<separator string="Invoices"/>
|
|
<field name="invoice_ids" context="{'form_view_ref':'account.invoice_form'}">
|
|
<tree string="Invoices" colors="blue:state == 'draft';black:state in ('proforma','proforma2','open');gray:state == 'cancel'">
|
|
<field name="date_invoice"/>
|
|
<field name="number"/>
|
|
<field name="partner_id" string="Customer"/>
|
|
<field name="user_id"/>
|
|
<field name="date_due"/>
|
|
<field name="amount_total"/>
|
|
<field name="state"/>
|
|
</tree>
|
|
</field>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
<div class="oe_chatter">
|
|
<field name="message_ids" widget="mail_thread"/>
|
|
<field name="message_follower_ids" widget="mail_followers"/>
|
|
</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="Inbox" help="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 Sale Orders" domain="[('user_id','=',uid)]" help="My Sale Orders" icon="terp-personal" name="my_sale_orders_filter"/>
|
|
<field name="partner_id"/>
|
|
<field name="user_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_order_form" 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">{}</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 sale
|
|
order.
|
|
</p><p>
|
|
OpenERP will help you efficiently handle the complete sales flow:
|
|
quotation, sale order, delivery, invoicing and payment.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
<menuitem action="action_order_form" id="menu_sale_order" parent="base.menu_sales" sequence="5" groups="base.group_sale_salesman,base.group_sale_manager"/>
|
|
|
|
<record id="action_order_tree2" 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_order_tree4" 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_order_tree5" 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_mode">tree,form,calendar,graph</field>
|
|
<field name="context">{}</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 sale order, the
|
|
delivery, the invoicing and the payment collection.
|
|
</p><p>
|
|
The social feature helps you organize discussions on each sale
|
|
order, and allow your customers to keep track of the evolution
|
|
of the sale order.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<menuitem id="menu_sale_quotations"
|
|
action="action_order_tree5" parent="base.menu_sales"
|
|
sequence="4"/>
|
|
|
|
<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_graph" model="ir.ui.view">
|
|
<field name="name">sale.order.line.graph</field>
|
|
<field name="model">sale.order.line</field>
|
|
<field name="arch" type="xml">
|
|
<graph string="Sales Order Lines">
|
|
<field name="product_id"/>
|
|
<field name="price_subtotal" operator="+"/>
|
|
</graph>
|
|
</field>
|
|
</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="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>
|
|
<span groups="base.group_user">
|
|
<button name="button_cancel" string="Cancel" type="object" states="confirmed,exception"/>
|
|
<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"/>
|
|
<button name="button_done" string="Done" type="object" attrs="{'invisible': ['|',('invoiced', '=', 0), ('state', 'not in', ('confirmed', 'exception'))]}" class="oe_highlight"/>
|
|
</span>
|
|
<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"/></h1>
|
|
<label for="order_partner_id" class="oe_edit_only"/>
|
|
<h2><field name="order_partner_id"/></h2>
|
|
<group>
|
|
<group>
|
|
<field name="product_id" readonly="1"/>
|
|
<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="Sale 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 sale order lines, not yet delivered"/>
|
|
<filter icon="terp-dialog-close" string="Done" domain="[('state','=','done')]" name="sale_order_done" help="Sale order lines done"/>
|
|
<filter icon="terp-accessories-archiver" string="Shipped" domain="[('state','=','done')]" name="unshipped" help="Sale 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="Sale 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,graph</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,graph</field>
|
|
<field name="domain">[('invoiced','<>', 1),('state','=','done')]</field>
|
|
<field name="filter" eval="True"/>
|
|
</record>
|
|
|
|
<act_window
|
|
context="{'search_default_product_id': active_id, 'default_product_id': active_id}"
|
|
id="action_order_line_product_tree"
|
|
name="Sales Order Lines"
|
|
res_model="sale.order.line"
|
|
src_model="product.product"
|
|
groups="base.group_sale_salesman"/>
|
|
|
|
<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"/>
|
|
|
|
</data>
|
|
</openerp>
|