[FIX] purchase, sale:correct domains supplied to partner on sale ,purchase
[odoo/odoo.git] / addons / sale / sale_view.xml
index 80f05e5..d6b1fd1 100644 (file)
@@ -1,7 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <openerp>
     <data>
-        <menuitem icon="terp-partner" id="base.menu_base_partner" name="Sales" sequence="0" groups="base.group_sale_salesman,base.group_sale_manager,base.group_system,base.group_partner_manager"/>
+        <menuitem icon="terp-partner" id="base.menu_base_partner" name="Sales" sequence="0"
+            groups="base.group_sale_salesman,base.group_sale_manager"/>
+
         <menuitem id="base.menu_sales" name="Sales" parent="base.menu_base_partner" sequence="1"/>
 
         <menuitem id="base.menu_product" name="Products" parent="base.menu_base_partner" sequence="9"/>
                 <form string="Sale Shop">
                     <field name="name" select="1"/>
                     <field name="warehouse_id" required="1" select="1" widget="selection"/>
-                    <field name="company_id" widget='selection'/>
+                    <field name="company_id" widget='selection' groups="base.group_multi_company"/>
                     <separator colspan="4" string="Accounting"/>
                     <field name="payment_default_id"/>
                     <field domain="[('type','=','sale')]" name="pricelist_id" select="1"/>
-                    <field name="project_id" select="1"/>
+                    <field name="project_id" select="1" groups="analytic.group_analytic_accounting"/>
                 </form>
             </field>
         </record>
@@ -32,7 +34,7 @@
                     <field name="name"/>
                     <field name="warehouse_id"/>
                     <field name="pricelist_id"/>
-                    <field name="project_id"/>
+                    <field name="project_id" groups="analytic.group_analytic_accounting"/>
                 </tree>
             </field>
         </record>
             <field name="view_type">form</field>
             <field name="view_mode">tree,form</field>
             <field name="view_id" ref="view_shop_tree"/>
+            <field name="help">If you have more than one shops reselling your company products, you can create and manage them from here. Whenever you will record a new quotation or sale order, it has to be linked to a shop. The shop also defines the warehouse from which the products will be delivered for each particular sale.</field>
         </record>
 
+        <menuitem id="menu_config_sale"
+            parent="base.menu_base_config"
+            name="Sales" groups="base.group_extended"/>
         <menuitem action="action_shop_form" id="menu_action_shop_form"
-            parent="product.prod_config_main" sequence="0"
-            groups="base.group_extended"/>
+            parent="menu_config_sale" sequence="0" />
 
         <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="type">calendar</field>
             <field name="arch" type="xml">
-                <calendar string="Sales orders" color="state" date_start="date_order">
+                <calendar string="Sales Orders" color="state" date_start="date_order">
                     <field name="partner_id"/>
                     <field name="amount_total"/>
                 </calendar>
@@ -66,7 +71,7 @@
             <field name="model">sale.order</field>
             <field name="type">graph</field>
             <field name="arch" type="xml">
-                <graph string="Sales orders" type="bar">
+                <graph string="Sales Orders" type="bar">
                     <field name="partner_id"/>
                     <field name="amount_total" operator="+"/>
                 </graph>
             <field name="model">sale.order</field>
             <field name="type">tree</field>
             <field name="arch" type="xml">
-                <tree string="Sales orders">
+                <tree string="Sales Orders" colors="grey:state=='done'">
                     <field name="name"/>
+                    <field name="date_order"/>
                     <field name="partner_id"/>
                     <field name="user_id" />
-                    <field name="date_order"/>
-                    <field name="partner_shipping_id"/>
                     <field name="picked_rate" widget="progressbar"/>
                     <field name="invoiced_rate" widget="progressbar"/>
-                    <field name="amount_untaxed" sum="Total Untaxed amount"/>
-                    <field name="amount_total" sum="Total amount"/>
+                    <field name="amount_untaxed" sum="Total Tax Excluded"/>
+                    <field name="amount_total" sum="Total Tax Included"/>
                     <field name="state"/>
                 </tree>
             </field>
             <field name="model">sale.order</field>
             <field name="type">form</field>
             <field name="arch" type="xml">
-                <form string="Sales order">
+                <form string="Sales Order">
                     <group col="6" colspan="4">
                         <field name="name"/>
                         <field name="date_order"/>
                         <field name="invoiced"/>
                     </group>
                     <notebook colspan="5">
-                        <page string="Sale Order">
-                            <field name="partner_id" on_change="onchange_partner_id(partner_id)" required="1"/>
+                        <page string="Sales Order">
+                            <field name="partner_id" on_change="onchange_partner_id(partner_id)" domain="[('customer','=',True)]" context="{'search_default_customer':1}" required="1"/>
                             <field domain="[('partner_id','=',partner_id)]" name="partner_order_id"/>
-                            <field domain="[('partner_id','=',partner_id)]" name="partner_invoice_id"/>
-                            <field domain="[('partner_id','=',partner_id)]" name="partner_shipping_id"/>
+                            <field domain="[('partner_id','=',partner_id)]" name="partner_invoice_id" groups="base.group_extended"/>
+                            <field domain="[('partner_id','=',partner_id)]" name="partner_shipping_id" groups="base.group_extended"/>
                             <field domain="[('type','=','sale')]" name="pricelist_id" groups="base.group_extended"/>
                             <field name="project_id"
                                 context="{'partner_id':partner_id, 'contact_id':partner_order_id, 'pricelist_id':pricelist_id, 'default_name':name}"
-                                groups="base.group_extended" domain="[('parent_id','!=',False)]" />
+                                groups="analytic.group_analytic_accounting" domain="[('parent_id','!=',False)]" />
                             <newline/>
                             <field colspan="4" mode="tree,form,graph" name="order_line" nolabel="1" widget="one2many_list">
                                 <form string="Sale Order Lines">
                                                 domain="[('product_id','=',product_id)]"
                                                 groups="base.group_extended"/>
 
-                                            <field name="company_id" groups="base.group_multi_company" widget="selection"/>
+                                            <field name="company_id" groups="base.group_multi_company" readonly="1"/>
                                             <field colspan="4" name="name"/>
                                             <field name="price_unit"/>
                                             <field name="discount"/>
                                                 <field name="invoiced"/>
                                                 <group attrs="{'invisible':[('invoiced','=',True)]}">
                                                 <button colspan="1"
-                                                    name="create_sale_order_line_invoice"
+                                                    name="%(action_view_sale_order_line_make_invoice)d"
                                                     states="confirmed"
-                                                    string="Create Invoice"
-                                                    type="object"
+                                                    string="Make Invoices"
+                                                    type="action"
                                                     icon="terp-document-new" />
                                                  </group>
                                             </group>
                                         </page>
                                     </notebook>
                                 </form>
-                                <tree string="Sales order lines">
+                                <tree string="Sales Order Lines">
                                     <field colspan="4" name="name"/>
                                     <field name="product_uom_qty" string="Qty"/>
                                     <field name="product_uom" string="UoM"/>
                                 <field name="amount_tax"/>
                                 <field name="amount_total"/>
                                 <button name="button_dummy" states="draft" string="Compute" type="object" icon="gtk-execute"/>
-                                <button name="%(action_view_sale_advance_payment_inv)d" string="Deposit" type="action" icon="gtk-execute" attrs="{'invisible':[('state','!=','draft')]}"/>
+                                <button name="%(action_view_sale_advance_payment_inv)d" string="Advance Invoice"
+                                    type="action" icon="gtk-execute" states="draft,manual" groups="base.group_extended"/>
                             </group>
                             <group col="13" colspan="4">
                                 <field name="state"/>
-                                <button name="order_confirm" states="draft" string="Confirm Order" icon="gtk-apply"/>
-                                <button name="invoice_recreate" states="invoice_except" string="Recreate Invoice" icon="gtk-print"/>
+                                <button name="invoice_recreate" states="invoice_except" string="Recreate Invoice" icon="gtk-go-forward"/>
                                 <button name="invoice_corrected" states="invoice_except" string="Invoice Corrected" icon="gtk-apply"/>
                                 <button name="ship_recreate" states="shipping_except" string="Recreate Procurement" icon="gtk-ok"/>
                                 <button name="ship_corrected" states="shipping_except" string="Procurement Corrected" icon="gtk-apply"/>
-                                <button name="manual_invoice" states="manual" string="Create Invoice" icon="terp-document-new"/>
+                                <button name="action_cancel" states="manual,progress" string="Cancel Order" type="object" icon="gtk-cancel"/>
+                                <button name="manual_invoice" states="manual" string="Create Invoice" icon="gtk-go-forward" type="object"/>
                                 <button name="ship_cancel" states="shipping_except" string="Cancel Order" icon="gtk-cancel"/>
                                 <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object" icon="gtk-convert"/>
-                                <button name="action_cancel" states="manual,progress" string="Cancel Order" type="object" icon="gtk-cancel"/>
                                 <button name="cancel" states="draft" string="Cancel Order" icon="gtk-cancel"/>
                                 <button name="invoice_cancel" states="invoice_except" string="Cancel Order" icon="gtk-cancel"/>
+                                <button name="order_confirm" states="draft" string="Confirm Order" icon="gtk-apply"/>
                             </group>
                         </page>
                         <page string="Other Information">
             <field name="type">search</field>
             <field name="arch" type="xml">
                 <search string="Search Sales Order">
-                    <filter icon="terp-document-new" string="Quotations" domain="[('state','=','draft')]" help="Sale Orders that haven't yet be confirmed"/>
+                    <filter icon="terp-document-new" string="Quotations" domain="[('state','=','draft')]" help="Sales Order that haven't yet been confirmed"/>
                     <filter icon="terp-check" string="Sales" domain="[('state','in',('manual','progress'))]"/>
                     <separator orientation="vertical"/>
-                    <filter icon="terp-dolar_ok!" string="To Invoice" domain="[('state','=','manual')]" help="Sale Orders ready to be invoiced"/>
+                    <filter icon="terp-dolar_ok!" string="To Invoice" domain="[('state','=','manual')]" help="Sales Order ready to be invoiced"/>
                     <separator orientation="vertical"/>
                     <field name="name" select="1"/>
+                    <field name="date_order" select="1" string="Order date" />
                     <field name="partner_id" select="1"/>
                     <field name="user_id" select="1">
-                          <filter domain="[('user_id','=',uid)]" help="My Sale Orders" icon="terp-personal"/>
+                        <filter domain="[('user_id','=',uid)]" help="My Sale Orders" icon="terp-personal"/>
                     </field>
-
-                    <field name="date_order" select="1" string="Order date" />
                     <newline/>
                     <group expand="0" string="Group By..." colspan="11" col="11" groups="base.group_extended">
                         <filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
             <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">{"search_default_user_id":uid}</field>
+            <field name="help">Sales Orders helps you manage quotations and orders done with your customers. OpenERP suggests that you to start by creating a quotation. Once the order is confirmed, the quotation is converted into a Sale Order. OpenERP can handle several types of products so that a sales order can trigger tasks, delivery orders, manufacturing orders, purchases and so on. Based on the configuration of the sale 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="3"/>
+        <menuitem action="action_order_form" id="menu_sale_order" parent="base.menu_sales" sequence="3" 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="model">sale.order.line</field>
             <field name="type">graph</field>
             <field name="arch" type="xml">
-                <graph string="Sales order lines">
+                <graph string="Sales Order Lines">
                     <field name="product_id"/>
                     <field name="price_subtotal" operator="+"/>
                 </graph>
             <field name="model">sale.order.line</field>
             <field name="type">tree</field>
             <field name="arch" type="xml">
-                <tree string="Sales order lines">
+                <tree string="Sales Order Lines">
                     <field name="order_id"/>
                     <field name="order_partner_id"/>
                     <field name="product_id"/>
                     <field name="product_uom_qty" string="Qty"/>
                     <field name="product_uom" string="UoM"/>
                     <field name="salesman_id"/>
-                    <field name="price_subtotal"/>
+                    <field name="price_subtotal" sum="Total"/>
                     <field name="state"/>
+                    <field name="invoiced"/>
                 </tree>
             </field>
         </record>
             <field name="type">form</field>
             <field name="arch" type="xml">
                 <form string="Sales Order Lines">
-                    <notebook>
-                        <page string="Order Lines">
-                            <separator colspan="4" string="General Information"/>
-                            <field name="order_id"/>
-                            <field name="order_partner_id" readonly="1" invisible="1"/>
-                            <field name="product_uom_qty" readonly="1"/>
-                            <field groups="product.group_uos" name="product_uos_qty"/>
-                            <field name="product_uom"/>
-                            <field name="product_id" readonly="1"/>
-                            <field name="invoiced"/>
-                            <field name="company_id" groups="base.group_multi_company" widget="selection"/>
-                            <separator colspan="4" string="Manual Designation"/>
-                            <field colspan="4" name="name"/>
-                            <field name="price_unit"/>
-                            <field name="discount"/>
-                            <field name="type" groups="base.group_extended"/>
-                            <field name="delay" groups="base.group_extended"/>
-                            <field name="price_subtotal"/>
-                            <field name="th_weight"/>
-                            <separator colspan="4" string="Taxes"/>
-                            <field colspan="4" name="tax_id" domain="[('parent_id','=',False),('type_tax_use','&lt;&gt;','purchase')]" nolabel="1"/>
-                            <separator colspan="4" string="States"/>
-                            <field name="state"/>
-                            <group col="3" colspan="2">
-                                <button colspan="1"
-                                  name="create_sale_order_line_invoice"
-                                  string="Create Invoice"
-                                  type="object"
-                                  icon="terp-document-new"
-                                  attrs="{'invisible': ['|',('state', 'in', ('draft','cancel')),('invoiced', '=', 1)]}"/>
-                                <button name="button_cancel"
-                                    string="Cancel" type="object"
-                                    icon="gtk-cancel"
-                                    attrs="{'invisible': ['|',('state', 'not in', ('confirmed', 'exception')),('invoiced', '=', 1)]}"/>
-                                <button name="button_done"
-                                    string="Done" type="object"
-                                    icon="gtk-jump-to"
-                                    attrs="{'invisible': ['|',('state', 'not in', ('confirmed','exception')),('invoiced', '=', 0)]}"/>
-                            </group>
-                        </page>
-                        <page string="Invoice Lines" groups="base.group_extended">
-                            <field colspan="4" name="invoice_lines" nolabel="1"/>
-                        </page>
-                        <page string="Notes">
-                            <field colspan="4" name="notes" nolabel="1"/>
-                        </page>
-                    </notebook>
+                    <group colspan="4" col="6">
+                        <field name="order_id"/>
+                        <field name="order_partner_id" readonly="1" invisible="1"/>
+                        <field name="invoiced"/>
+
+                        <field name="product_id" readonly="1"/>
+                        <field name="product_uom_qty" readonly="1"/>
+                        <field name="product_uom"/>
+
+                        <field colspan="4" name="name" groups="base.group_extended"/>
+                        <field name="company_id" groups="base.group_multi_company" readonly="1"/>
+                    </group>
+                    <separator colspan="4" string="Price"/>
+                    <group colspan="4" col="6">
+                        <field name="price_unit"/>
+                        <field name="discount"/>
+                        <field name="price_subtotal"/>
+                    </group>
+                    <separator colspan="4" string="Notes"/>
+                    <field colspan="4" name="notes" nolabel="1"/>
+                    <separator colspan="4"/>
+                    <field name="state"/>
+                    <group col="3" colspan="2">
+                        <button name="button_cancel"
+                            string="Cancel" type="object"
+                            icon="gtk-cancel"
+                            states="confirmed,exception"/>
+                        <button colspan="1"
+                            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" />
+                    </group>
                 </form>
             </field>
         </record>
                     <field name="order_partner_id"/>
                     <field name="product_id"/>
                     <field name="salesman_id">
-                        <filter icon="terp-personnal" domain="[('salesman_id','=',uid)]" help="Sale Order Lines related to a Sale Order of mine"/>
+                        <filter icon="terp-personnal" domain="[('salesman_id','=',uid)]" help="Sale Order Lines related to a Sales Order of mine"/>
                     </field>
                     <newline/>
                     <group expand="context.get('report',False)" string="Group By..." colspan="9" col="8">
             <field name="type">search</field>
             <field name="arch" type="xml">
                 <search string="Search Uninvoiced Lines">
+                    <filter icon="terp-check" string="To Do"
+                        domain="[('state','=','confirmed')]"
+                        name="sale order"
+                        help="Confirmed sale order lines, not yet delivered"
+                        />
+                    <filter icon="terp-check" string="Done"
+                        domain="[('state','=','done')]"
+                        name="sale_order_done"
+                        help="Sale order lines done"
+                        />
+                    <separator orientation="vertical"/>
                     <filter icon="terp-accessories-archiver" string="Shipped"
                         domain="[('state','=','done')]"
                         name="unshipped"
                         domain="[('invoiced','&lt;&gt;', 1),('state','&lt;&gt;','draft'),('state','&lt;&gt;','cancel')]"
                         help="Sale Order Lines that are confirmed, done or in exception state and haven't yet been invoiced"
                         />
-                    <filter icon="terp-check" string="Confirmed"
-                        domain="[('state','=','confirmed')]"
-                        name="sale order"
-                        help="Confirmed Sale Order Lines"
-                        />
                     <separator orientation="vertical"/>
                     <field name="order_id"/>
                     <field name="order_partner_id"/>
                     </field>
                     <newline />
                     <group expand="0" string="Group By..." colspan="9" col="8">
+                        <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="Order" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'order_id'}"/>
+                        <separator orientation="vertical"/>
                         <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
                     </group>
                 </search>
             <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">Lines to invoice opens a search view with sales order and their status.</field>
+            <field name="help">Here is a list of each sales order line to be invoiced. This view allows you to invoice sales orders partially, by lines of sales order. You don't need this list if you invoice based on the delivery orders or if you invoice sales totally.</field>
         </record>
 
         <record id="action_order_line_tree3" model="ir.actions.act_window">
             <field name="filter" eval="True"/>
         </record>
 
-        <act_window context="{'partner_id': active_id}" domain="[('partner_id', '=', active_id)]" id="act_res_partner_2_sale_order" name="Sales" res_model="sale.order" src_model="res.partner"/>
+        <act_window
+        context="{'search_default_partner_id': [active_id]}"
+        id="act_res_partner_2_sale_order"
+        name="Sales"
+        res_model="sale.order"
+        src_model="res.partner"/>
 
-        <act_window domain="[('product_id','=',active_id)]" id="action_order_line_product_tree" name="Product sales" res_model="sale.order.line" src_model="product.product" groups="base.group_extended"/>
+        <act_window
+        context="{'search_default_product_id': [active_id]}"
+        id="action_order_line_product_tree"
+        name="Product sales"
+        res_model="sale.order.line"
+        src_model="product.product"
+        groups="base.group_extended"/>
 
-        <menuitem id="menu_invoiced" name="Billing" parent="base.menu_base_partner" sequence="5"/>
-        <menuitem action="action_order_line_tree2" id="menu_invoicing_sales_order_lines" parent="menu_invoiced" sequence="2"/>
+        <menuitem id="menu_invoiced" name="Invoicing" parent="base.menu_base_partner" sequence="5"
+            groups="base.group_extended"/>
+        <menuitem action="action_order_line_tree2" id="menu_invoicing_sales_order_lines" parent="menu_invoiced" sequence="2" groups="base.group_sale_salesman,base.group_sale_manager"/>
         <!-- configartion view -->
 
         <record id="view_config_picking_policy" model="ir.ui.view">
-            <field name="name">Configure Picking Policy for Sale Order </field>
+            <field name="name">Configure Picking Policy for Sales Order </field>
             <field name="model">sale.config.picking_policy</field>
             <field name="type">form</field>
             <field name="inherit_id" ref="base.res_config_view_base"/>
             <field name="arch" type="xml">
               <data>
                 <form position="attributes">
-                  <attribute name="string">Sales Configuration</attribute>
+                  <attribute name="string">Sales Application Configuration</attribute>
                 </form>
                 <separator string="title" position="attributes">
-                <attribute name="string"
-                       >Configure Sale Order Logistic</attribute>
+                <attribute name="string">Configure Sales Order Logistic</attribute>
                   </separator>
                   <xpath expr="//label[@string='description']" position="attributes">
                     <attribute name="string">Setup your sales workflow and default values.</attribute>
         </record>
 
         <record id="action_config_picking_policy" model="ir.actions.act_window">
-            <field name="name">Configure Picking Policy for Sale Order</field>
+            <field name="name">Configure Picking Policy for Sales Order</field>
             <field name="type">ir.actions.act_window</field>
             <field name="res_model">sale.config.picking_policy</field>
             <field name="view_id" ref="view_config_picking_policy"/>
         <!-- register configuration wizard -->
         <record id="config_wizard_step_sale_picking_policy" model="ir.actions.todo">
             <field name="action_id" ref="action_config_picking_policy"/>
+            <field name="restart">always</field>
             <field name="groups_id" eval="[(6,0,[ref('base.group_extended')])]"/>
         </record>