<group name="shop">
<group>
<field name="payment_default_id"/>
- <field domain="[('type','=','sale')]" name="pricelist_id" groups="product.group_sale_pricelist"/>
+ <field domain="[('type','=','sale')]" required="True" name="pricelist_id" groups="product.group_sale_pricelist"/>
</group>
<group>
<field name="project_id" groups="analytic.group_analytic_accounting"/>
<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
+ 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>
</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_mark_as_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_mark_as_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">
<form string="Sales Order" version="7.0">
<header>
- <button name="action_draft" string="Reset to Draft" states="cancel" type="object"/>
<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 Mail" type="object" states="draft" class="oe_highlight" groups="base.group_user"/>
- <button name="action_quotation_send" string="Send by Mail" type="object" states="sent" 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,progress,manual" 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="print_quotation" string="Print" type="object" states="sent,progress,manual" 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="cancel" states="draft,sent" string="Cancel" groups="base.group_user"/>
- <button name="action_cancel" states="manual,progress" string="Cancel" type="object" groups="base.group_user"/>
- <button name="invoice_cancel" states="invoice_except" string="Cancel" groups="base.group_user"/>
- <field name="state" widget="statusbar" statusbar_visible="draft,sent,invoiced,done" statusbar_colors='{"invoice_except":"red","waiting_date":"blue"}'/>
+ <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,progress,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'))]}"/>
+ <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)" domain="[('customer','=',True)]" context="{'search_default_customer':1, 'show_address': 1}" options='{"always_reload": True}'/>
+ <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, 'pricelist_id':pricelist_id, 'default_name':name}" groups="sale.group_analytic_accounting" domain="[('type','in',['view','normal','contract'])]"/>
+ <field name="project_id" context="{'partner_id':partner_invoice_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"/>
<page string="Order Lines">
<field name="order_line">
<form string="Sales Order Lines" version="7.0">
- <header>
+ <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)"/>
+ on_change="product_id_change(parent.pricelist_id, product_id, product_uom_qty, False, product_uos_qty, False, name, parent.partner_id, False, True, parent.date_order, False, parent.fiscal_position, False, context)"/>
<label for="product_uom_qty"/>
<div>
<field
</div>
<field name="price_unit"/>
<label for="discount" groups="sale.group_discount_per_so_line"/>
- <div 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>
<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)"/>
+ on_change="product_id_change(parent.pricelist_id, product_id, product_uom_qty, False, product_uos_qty, False, 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}"
<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"/>
+ 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>
</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"/>
- <field name="message_follower_ids" widget="mail_followers"/>
</div>
</form>
</field>
<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"/>
+ <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" filter_domain="[('partner_id', 'child_of', self)]"/>
<field name="user_id"/>
<field name="project_id"/>
<group expand="0" string="Group By...">
</field>
</record>
- <record id="action_order_form" model="ir.actions.act_window">
- <field name="name">Sale Orders</field>
+ <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}</field>
+ <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
+ 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, sale order, delivery, invoicing and payment.
+ quotation, sales 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"/>
+ <menuitem action="action_orders" 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">
+ <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="search_view_id" ref="view_sales_order_filter"/>
</record>
- <record id="action_order_tree4" model="ir.actions.act_window">
+ <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>
</record>
- <record id="action_order_tree5" model="ir.actions.act_window">
+ <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}</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">
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
+ 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 sale
+ The social feature helps you organize discussions on each sales
order, and allow your customers to keep track of the evolution
- of the sale order.
+ of the sales order.
</p>
</field>
</record>
<menuitem id="menu_sale_quotations"
- action="action_order_tree5" parent="base.menu_sales"
+ action="action_quotations" parent="base.menu_sales"
sequence="4"/>
<record id="action_order_tree" model="ir.actions.act_window">
<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="arch" type="xml">
<form string="Sales Order Lines" version="7.0">
<header>
- <button name="button_cancel" string="Cancel" type="object" states="confirmed,exception" groups="base.group_user"/>
<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>
<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"/>
+ <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="order_partner_id" filter_domain="[('order_partner_id', 'child_of', self)]"/>
<field name="product_id"/>
<field name="salesman_id"/>
<group expand="0" string="Group By...">
<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"/>
+ <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="Sale Order Lines that are confirmed, done or in exception state and haven't yet been invoiced"/>
+ <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="order_partner_id" filter_domain="[('order_partner_id', 'child_of', self)]"/>
<field name="product_id"/>
<field name="salesman_id"/>
<group expand="0" string="Group By...">