<form string="Sales Shop" version="7.0">
<label for="name" class="oe_edit_only"/>
<h1><field name="name"/></h1>
+ <label for="warehouse_id" class="oe_edit_only"/>
+ <h2><field name="warehouse_id" required="1"/></h2>
<group>
<group>
- <field name="warehouse_id" required="1" widget="selection"/>
- <field name="company_id" widget="selection" groups="base.group_multi_company"/>
- </group>
- <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>
<menuitem action="action_shop_form" id="menu_action_shop_form" parent="base.menu_base_config" sequence="35"
groups="stock.group_locations"/>
+ <!-- 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">
<form string="Sales Order" version="7.0">
<header>
- <button name="invoice_recreate" states="invoice_except" string="Recreate Invoice"/>
- <button name="invoice_corrected" states="invoice_except" string="Ignore Exception"/>
- <button name="ship_recreate" states="shipping_except" string="Recreate Delivery Order"/>
- <button name="ship_corrected" states="shipping_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="manual_invoice" states="manual" string="Create Final Invoice" type="object" class="oe_highlight"/>
- <button name="print_quotation" string="Send by Post" type="object" states="draft" class="oe_highlight"/>
- <button name="print_quotation" string="Send by Post" 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="Open Invoice" type="object"
- attrs="{'invisible': ['|','|',('state', '!=','progress'), ('invoiced', '=', True),('order_policy','=','picking')]}"/>
- <button name="action_view_delivery" string="Open Delivery Order" type="object"
- attrs="{'invisible': ['|','|','|',('picking_ids','=',False),('picking_ids','=',[]), ('state', 'not in', ('progress','manual')),('shipped','=',True)]}"/>
- <button name="%(action_view_sale_advance_payment_inv)d" string="Advance Invoice" type="action" states="manual"/>
- <button name="cancel" states="draft,sent" string="Cancel"/>
- <button name="action_cancel" states="manual,progress" string="Cancel" type="object"/>
- <button name="ship_cancel" states="shipping_except" string="Cancel"/>
- <button name="invoice_cancel" states="invoice_except" string="Cancel"/>
+ <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="ship_recreate" states="shipping_except" string="Recreate Delivery Order"/>
+ <button name="ship_corrected" states="shipping_except" string="Ignore Exception"/>
+ <button name="action_quotation_send" string="Send by Mail" type="object" states="draft,sent" class="oe_highlight"/>
+ <button name="manual_invoice" states="manual" string="Create Final Invoice" type="object" class="oe_highlight"/>
+ <button name="print_quotation" string="Send by Post" type="object" states="draft,sent" class="oe_highlight"/>
+ <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="Open Invoice" type="object" class="oe_highlight"
+ attrs="{'invisible': ['|','|',('state', '!=','progress'), ('invoiced', '=', True),('order_policy','=','picking')]}"/>
+ <button name="action_view_delivery" string="Open Delivery Order" type="object" class="oe_highlight"
+ attrs="{'invisible': ['|','|','|',('picking_ids','=',False),('picking_ids','=',[]), ('state', 'not in', ('progress','manual')),('shipped','=',True)]}"/>
+ <button name="%(action_view_sale_advance_payment_inv)d" string="Advance Invoice" type="action" states="manual"/>
+ <button name="cancel" states="draft,sent" string="Cancel"/>
+ <button name="action_cancel" states="manual,progress" string="Cancel" type="object"/>
+ <button name="ship_cancel" states="shipping_except" string="Cancel"/>
+ <button name="invoice_cancel" states="invoice_except" string="Cancel"/>
+ </span>
<field name="state" widget="statusbar" statusbar_visible="draft,sent,progress,invoiced,done" statusbar_colors='{"shipping_except":"red","invoice_except":"red","waiting_date":"blue"}'/>
</header>
<sheet>
</h1>
<group>
<group>
- <field name="partner_id" on_change="onchange_partner_id(partner_id)" domain="[('customer','=',True)]" context="{'search_default_customer':1}" />
- <field domain="[('parent_id','=',partner_id)]" name="partner_invoice_id" groups="sale.group_delivery_invoice_address" options='{"quick_create": false}'/>
- <field domain="[('parent_id','=',partner_id)]" name="partner_shipping_id" groups="sale.group_delivery_invoice_address" options='{"quick_create": false}'/>
- <field domain="[('type','=','sale')]" name="pricelist_id" groups="product.group_sale_pricelist" on_change="onchange_pricelist_id(pricelist_id,order_line)"/>
+ <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 domain="[('parent_id','=',partner_id)]" name="partner_invoice_id" groups="sale.group_delivery_invoice_address"/>
+ <field domain="[('parent_id','=',partner_id)]" 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>
+ </group>
+ <group>
<field name="date_order"/>
<field name="shop_id" on_change="onchange_shop_id(shop_id)" widget="selection" groups="stock.group_locations"/>
<field name="client_order_ref"/>
<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="invoiced" invisible="1"/>
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed,done" statusbar_colors='{"exception":"red","cancel":"red"}'/>
</header>
- <group col="4" colspan="4">
+ <group>
<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, product_packaging, parent.fiscal_position, False, context)"/>
- <field name="name" placeholder="Product/Service characteristics"/>
- </group>
- <group>
<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, product_packaging, parent.fiscal_position, True, context)"/>
- <field name="product_uom" groups="product.group_uom" class="oe_inline"
+ <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"/>
- <div>
- <field groups="product.group_uos" name="product_uos_qty" class="oe_inline"/>
- <field groups="product.group_uos" name="product_uos" class="oe_inline"/>
+ <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" class="oe_inline oe_no_button"/>
</div>
<field name="price_unit"/>
- <field name="discount" groups="sale.group_discount_per_so_line"/>
+ <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>
- <group>
<group>
<field name="product_packaging"
context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}" on_change="product_packaging_change(parent.pricelist_id, product_id, product_uom_qty, product_uom, parent.partner_id, product_packaging, True, context)"
domain="[('product_id','=',product_id)]" groups="product.group_stock_packaging"
colspan="3"/>
<field name="tax_id" widget="many2many_tags" domain="[('parent_id','=',False),('type_tax_use','<>','purchase')]"/>
- <field name="invoiced"/>
- <button name="%(action_view_sale_order_line_make_invoice)d" states="confirmed" string="Make Invoices" type="action" icon="terp-document-new"/>
- </group>
- <group col="4">
+ <label for="delay"/>
+ <div>
+ <field name="delay" class="oe_inline"/> days
+ </div>
<field name="type"/>
- <field name="delay"/>
<field name="th_weight"/>
+
+ <!-- we should put a config wizard for these two fields -->
<field name="address_allotment_id"/>
+ <field name="property_ids" widget="many2many_tags"/>
</group>
- <separator string="Properties" colspan="2"/>
- <field name="property_ids" colspan="4" nolabel="1" />
- <field name="notes" groups="base.group_sale_notes_subtotal" placeholder="Add a note on order line..."/>
- <div groups="base.group_no_one">
- <separator colspan="4" string="Invoice Lines"/>
- <field colspan="4" name="invoice_lines" nolabel="1"/>
- <separator colspan="4" string="Stock Moves"/>
- <field colspan="4" name="move_ids" nolabel="1" widget="many2many"/>
- </div>
</group>
+ <label for="name"/>
+ <field name="name"/>
+ <div groups="base.group_no_one">
+ <label for="invoice_lines"/>
+ <field name="invoice_lines"/>
+ <label for="move_ids"/>
+ <field name="move_ids" widget="many2many"/>
+ </div>
</form>
<tree string="Sales Order Lines">
- <field name="sequence" />
+ <field name="sequence"/>
<field name="name"/>
<field name="product_uom_qty" string="Quantity"/>
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
<field name="amount_tax"/>
<field name="amount_total" class="oe_subtotal_footer_separator"/>
</group>
- <separator string="Notes" class="oe_clear"/>
- <field name="note" placeholder="Add a global note on the sale order..."/>
+ <div class="oe_clear">
+ <label for="note"/>
+ </div>
+ <field name="note" class="oe_inline"/>
</page>
- <page string="Other Information">
+ <page string="Other Information" groups="base.group_user">
<group>
<group name="logistics">
- <field name="incoterm" widget="selection"/>
+ <field name="incoterm" widget="selection" groups="base.group_user"/>
<field name="picking_policy" required="True"/>
<field name="order_policy" on_change="shipping_policy_change(order_policy)"/>
<field name="invoice_quantity" invisible="True"/>
</group>
- <group>
+ <group groups="base.group_user">
<field name="user_id"/>
<field groups="base.group_no_one" name="origin"/>
</group>
<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" />
- <field name="user_id" />
- <field name="date_due" />
- <field name="amount_total" />
- <field name="state" />
+ <field name="date_invoice"/>
+ <field name="number"/>
+ <field name="partner_id"/>
+ <field name="user_id"/>
+ <field name="date_due"/>
+ <field name="amount_total"/>
+ <field name="state"/>
</tree>
</field>
<separator string="Delivery Orders"/>
<field name="picking_ids" context="{'default_type': 'out'}">
<tree colors="blue:state == 'draft';grey:state == 'cancel';red:state not in ('cancel', 'done') and min_date < current_date" string="Delivery Orders">
<field name="name"/>
- <field name="partner_id" string="Customer" />
+ <field name="partner_id" string="Customer"/>
<field name="min_date"/>
<field name="state"/>
<button name="action_process" states="assigned" string="Deliver" type="object" icon="gtk-go-forward" context="{'default_type': 'out'}"/>
</page>
</notebook>
</sheet>
- <footer>
- <field name="message_ids" widget="ThreadView"/>
- </footer>
+ <div class="oe_chatter">
+ <field name="message_ids" widget="mail_thread"/>
+ </div>
</form>
</field>
</record>
<search string="Search Sales Order">
<field name="name" string="Sales Order" filter_domain="['|',('name','ilike',self),('client_order_ref','ilike',self)]"/>
<separator orientation="vertical"/>
+ <filter icon="terp-mail-message-new"
+ string="Inbox" help="Unread messages"
+ name="needaction_pending"
+ domain="[('needaction_pending','=',True)]"/>
+ <separator orientation="vertical"/>
<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"/>
<field name="context">{"search_default_sales":1}</field>
<field name="help">Sales Orders help you manage quotations and orders from your customers. OpenERP suggests that you start by creating a quotation. Once it is confirmed, the quotation will be converted into a Sales Order. OpenERP can handle several types of products so that a sales order may trigger tasks, delivery orders, manufacturing orders, purchases and so on. Based on the configuration of the sales order, a draft invoice will be generated so that you just have to confirm it when you want to bill your customer.</field>
</record>
- <menuitem action="action_order_form" id="menu_sale_order" parent="base.menu_sales" sequence="4" groups="base.group_sale_salesman,base.group_sale_manager"/>
+ <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>
<menuitem id="menu_sale_quotations"
action="action_order_tree5" parent="base.menu_sales"
- sequence="3" />
+ sequence="4"/>
<record id="action_order_tree" model="ir.actions.act_window">
<field name="name">Old Quotations</field>
<field name="arch" type="xml">
<form string="Sales Order Lines" version="7.0">
<header>
- <button name="button_cancel" string="Cancel" type="object" icon="gtk-cancel" states="confirmed,exception"/>
- <button name="%(action_view_sale_order_line_make_invoice)d" string="Create Invoice" type="action" states="done" icon="gtk-go-forward" attrs="{'invisible': [('invoiced', '=', 1)]}"/>
- <button name="button_done" string="Done" type="object" states="confirmed,exception" icon="gtk-go-forward"/>
+ <span groups="base.group_user">
+ <button name="button_cancel" string="Cancel" type="object" icon="gtk-cancel" states="confirmed,exception"/>
+ <button name="%(action_view_sale_order_line_make_invoice)d" string="Create Invoice" type="action" states="done" icon="gtk-go-forward" attrs="{'invisible': [('invoiced', '=', 1)]}" class="oe_highlight"/>
+ <button name="button_done" string="Done" type="object" states="confirmed,exception" icon="gtk-go-forward" class="oe_highlight"/>
+ </span>
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed,done" statusbar_colors='{"exception":"red","cancel":"red"}'/>
</header>
<sheet>
<group>
<group>
<field name="product_id" readonly="1"/>
- <field name="name" groups="base.group_no_one"/>
<label name="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>
+ </group>
+ <group>
<field name="price_unit"/>
<field name="discount" groups="sale.group_discount_per_so_line"/>
<field name="price_subtotal" groups="base.group_sale_notes_subtotal"/>
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
</group>
</group>
- <separator string="Notes" groups="base.group_sale_notes_subtotal"/>
- <field name="notes" groups="base.group_sale_notes_subtotal"/>
+ <label for="name"/>
+ <field name="name"/>
</sheet>
</form>
</field>