[IMP] sale and sale_* modules:-useability improvements
authormtr <mtr@mtr>
Sat, 18 Sep 2010 05:23:21 +0000 (10:53 +0530)
committermtr <mtr@mtr>
Sat, 18 Sep 2010 05:23:21 +0000 (10:53 +0530)
bzr revid: mtr@mtr-20100918052321-s0oog2xkaclltknd

addons/sale/report/sale_report_view.xml
addons/sale/sale.py
addons/sale/sale_view.xml
addons/sale/security/ir.model.access.csv
addons/sale_journal/sale_journal_view.xml
addons/sale_journal/security/ir.model.access.csv
addons/sale_margin/sale_margin_view.xml
addons/sale_order_dates/sale_order_dates_view.xml

index 36b1afe..46fa68e 100644 (file)
         <field name="arch" type="xml">
             <search string="Sales Analysis">
                 <group>
-                    <filter icon="terp-go-year" string="  365 Days  "
-                        domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')),('date','&gt;',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"
-                        help="Tasks performed in last 365 days"/>
-                    <filter icon="terp-go-month" string="   30 Days   "
+                    <filter icon="terp-go-year" string="  Year  "
+                        domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')),('date','&gt;=',time.strftime('%%Y-01-01'))]"
+                        help="Sales order created in last 365 days"/>
+                    <filter icon="terp-go-month" string="   Month   "
                         name="month"
-                        domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
-                        help="Tasks performed in last 30 days"/>
+                        domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')),('date','&gt;=',time.strftime('%%Y-%%m-01'))]"
+                        help="Sales order created in last 30 days"/>
                     <filter icon="terp-go-week"
-                         string="    7 Days    "
+                         string="    Month-1    "
                          separator="1"
-                         domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
-                         help="Tasks during last 7 days"/>
+                         domain="[('date','&lt;=', (datetime.date (int(time.strftime('%%Y')), datetime.date.today().month, 1) - datetime.timedelta (days = 1)).strftime('%%Y-%%m-%%d')),('date','&gt;',(datetime.date (int(time.strftime('%%Y')), datetime.date.today().month-1, 1)).strftime('%%Y-%%m-%%d'))]"
+                         help="Sales order created in last month"/>
                     <separator orientation="vertical"/>
                     <filter icon="terp-document-new"
                         string="Quotations"
                         domain="[('state','=','draft')]"/>
-                    <filter icon="terp-dolar"
+                    <filter icon="terp-check"
                         string="Sales"
                         domain="[('state','not in',('draft','done','cancel'))]"/>
                     <separator orientation="vertical"/>
@@ -77,7 +77,7 @@
                     <separator orientation="vertical"/>
                     <field name="partner_id"/>
                     <field name="product_id"/>
-                    <field name="user_id" widget="selection">
+                    <field name="user_id">
                         <filter icon="terp-personal"
                             string="My Sales"
                             help="My Sales"
@@ -92,6 +92,7 @@
                     <filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id','set_visible':True}"/>
                     <filter string="Default UoM" icon="terp-mrp" context="{'group_by':'uom_name'}"/>
                     <filter string="Category of Product" icon="terp-stock_symbol-selection" context="{'group_by':'categ_id'}"/>
+                    <separator orientation="vertical"/>
                     <filter string="Analytic Account" icon="terp-folder-green" context="{'group_by':'analytic_account_id'}"/>
                     <separator orientation="vertical"/>
                     <filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
                     <filter string="Shop" icon="terp-go-home" context="{'group_by':'shop_id'}"/>
                     <filter string="Company" icon="terp-go-home" groups="base.group_multi_company" context="{'group_by':'company_id'}"/>
                     <separator orientation="vertical"/>
-                   <filter string="Day" icon="terp-go-today" context="{'group_by':'day'}"/>
-                   <filter string="Month" icon="terp-go-month" context="{'group_by':'month'}"/>
-                    <filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/>
+                   <filter string="Day" icon="terp-go-today" context="{'group_by':'day'}" help="Ordered date of the sales order"/>
+                   <filter string="Month" icon="terp-go-month" context="{'group_by':'month'}" help="Ordered month of the sales order"/>
+                   <filter string="Year" icon="terp-go-year" context="{'group_by':'year'}" help="Ordered Year of the sales order"/>
                 </group>
                 <newline/>
                 <group expand="0" string="Extended Filters..." groups="base.group_extended">
+                    <field name="shop_id"/>
+                    <field name="categ_id" widget="selection"/>
+                    <field name="company_id" groups="base.group_multi_company"/>
+                    <newline/>
                     <field name="date"/>
                     <field name="date_confirm"/>
-                    <separator orientation="vertical"/>
-                    <field name="shop_id" widget="selection"/>
-                    <field name="categ_id" widget="selection"/>
-                    <field name="company_id" groups="base.group_multi_company" widget="selection"/>
                 </group>
             </search>
         </field>
     <menuitem id="base.next_id_64" name="Reporting" parent="base.menu_base_partner" sequence="11"/>
     <menuitem action="action_order_report_all" id="menu_report_product_all" parent="base.next_id_64" sequence="1"/>
 
-    <record id="action_stock_move_report_so" model="ir.actions.act_window">
-        <field name="name">Shipments Analysis</field>
-        <field name="res_model">report.stock.move</field>
-        <field name="view_type">form</field>
-        <field name="view_mode">tree,graph</field>
-        <field name="context">{'search_default_month':1, 'search_default_group_product':1, 'search_default_group_partner':1, 'search_default_done':1, 'search_default_out': 1, 'group_by':[], 'group_by_no_leaf':1}</field>
-        <field name="help">Shipments Analysis opens a search views with all your shipments (in and out quantities), their total value, planned and actual dates. You can sort out your analysis on different groups to get fine grained analysis.</field>
-    </record>
-    <menuitem action="action_stock_move_report_so" id="menu_action_stock_move_report_so" parent="base.next_id_64" sequence="25"/>
-
-
     <!--This views used in board_sale module -->
     <record id="view_sales_by_partner_tree" model="ir.ui.view">
         <field name="name">sales.by.partner.tree</field>
index b2df129..47d5a63 100644 (file)
@@ -247,7 +247,7 @@ class sale_order(osv.osv):
         'order_line': fields.one2many('sale.order.line', 'order_id', 'Order Lines', readonly=True, states={'draft': [('readonly', False)]}),
         'invoice_ids': fields.many2many('account.invoice', 'sale_order_invoice_rel', 'order_id', 'invoice_id', 'Invoices', help="This is the list of invoices that have been generated for this sale order. The same sale order may have been invoiced in several times (by line for example)."),
         'picking_ids': fields.one2many('stock.picking', 'sale_id', 'Related Picking', readonly=True, help="This is the list of picking list that have been generated for this invoice"),
-        'shipped': fields.boolean('Picked', readonly=True, help="It indicates that a picking has been done. It will be set to True if the ordered quantities are available and the picking is done. If the ordered quantities are not available it generates a Purchase/Manufacturing order. Unless its Picking and Purchase/Manufacturing order are not in the done state it wont be set to True"),
+        'shipped': fields.boolean('Picked', readonly=True, help="It indicates that a picking has been done. It will be set to True if the ordered quantities are available and the picking is done. If the ordered quantities are not available Procurement generates a Purchase/Manufacturing order. Unless its Picking and Purchase/Manufacturing order are not in the done state it wont be set to True"),
         'picked_rate': fields.function(_picked_rate, method=True, string='Picked', type='float'),
         'invoiced_rate': fields.function(_invoiced_rate, method=True, string='Invoiced', type='float'),
         'invoiced': fields.function(_invoiced, method=True, string='Paid',
@@ -273,10 +273,10 @@ class sale_order(osv.osv):
             },
             multi='sums', help="The total amount"),
 
-        'invoice_quantity': fields.selection([('order', 'Ordered Quantities'), ('procurement', 'Shipped Quantities')], 'Invoice on', help="The sale order will automatically create the invoice proposition (draft invoice). Ordered and delivered quantities may not be the same. You have to choose if you invoice based on ordered or shipped quantities. If the product is a service, shipped quantities means hours spent on the associated tasks.", required=True),
+        'invoice_quantity': fields.selection([('order', 'Ordered Quantities'), ('procurement', 'Shipped Quantities')], 'Invoice on', help="The sale order will automatically create the invoice proposition (draft invoice). Ordered and delivered quantities may not be the same. You have to choose if you want your invoice based on ordered or shipped quantities. If the product is a service, shipped quantities means hours spent on the associated tasks.", required=True),
         'payment_term': fields.many2one('account.payment.term', 'Payment Term'),
         'fiscal_position': fields.many2one('account.fiscal.position', 'Fiscal Position'),
-        'company_id': fields.related('shop_id','company_id',type='many2one',relation='res.company',string='Company',store=True)
+        'company_id': fields.many2one('res.company','Company')
     }
     _defaults = {
         'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'sale.order', context=c),
index 327a10a..d81a127 100644 (file)
@@ -15,7 +15,7 @@
                 <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"/>
@@ -78,7 +78,7 @@
             <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"/>
                                 <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="action_cancel" states="manual,progress" string="Cancel Order" type="object" icon="gtk-cancel"/>
                                 <button name="manual_invoice" states="manual" string="Create Invoice" icon="terp-document-new"/>
                                 <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"/>
                             </group>
                     </field>
                     <newline/>
                     <group expand="0" string="Group By..." colspan="11" col="11" groups="base.group_extended">
+                        <filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
+                        <separator orientation="vertical"/>
                         <filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
                         <filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
                         <separator orientation="vertical"/>
                         <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
-                        <separator orientation="vertical"/>
-                        <filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
                     </group>
                </search>
             </field>
@@ -373,28 +373,33 @@ to your configuration: from the sales order, from the pickings, etc.
             <field name="type">form</field>
             <field name="arch" type="xml">
                 <form string="Sales Order Lines">
+                    <separator colspan="4" string="General Information"/>
+                                   <group colspan="4" col="6">
+                                               <field name="order_id"/>
+                                               <field name="product_id" readonly="1"/>
+                                               <field name="invoiced"/>
+                                               <field name="product_uom_qty" readonly="1"/>
+                                               <field groups="product.group_uos" name="product_uos_qty"/>
+                                               <field name="product_uom"/>
+                                               <field name="company_id" groups="base.group_multi_company" readonly="1"/>
+                                               <field name="order_partner_id" readonly="1" invisible="1"/>
+                                   </group>
                     <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" readonly="1"/>
                             <separator colspan="4" string="Manual Designation"/>
-                            <field colspan="4" name="name" groups="base.group_extended"/>
-                            <field name="price_unit"/>
-                            <field name="discount"/>
+                            <group colspan="4" col="6">
                             <field name="type" groups="base.group_extended"/>
                             <field name="delay" groups="base.group_extended"/>
-                            <field name="price_subtotal"/>
                             <field name="th_weight" groups="base.group_extended"/>
+                            <field name="price_unit"/>
+                            <field name="discount"/>
+                            <field name="price_subtotal"/>
+                            </group>
+                            <separator colspan="4" string="Description"/>
+                            <field colspan="4" name="name" groups="base.group_extended"/>
                             <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"/>
+                            <separator colspan="4"/>
                             <field name="state"/>
                             <group col="3" colspan="2">
                                 <button colspan="1"
@@ -455,6 +460,12 @@ to your configuration: from the sales order, from the pickings, etc.
             <field name="type">search</field>
             <field name="arch" type="xml">
                 <search string="Search Uninvoiced Lines">
+                    <filter icon="terp-check" string="Confirmed"
+                        domain="[('state','=','confirmed')]"
+                        name="sale order"
+                        help="Confirmed Sale Order Lines"
+                        />
+                    <separator orientation="vertical"/>    
                     <filter icon="terp-accessories-archiver" string="Shipped"
                         domain="[('state','=','done')]"
                         name="unshipped"
@@ -464,11 +475,6 @@ to your configuration: from the sales order, from the pickings, etc.
                         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"/>
@@ -478,8 +484,9 @@ to your configuration: from the sales order, from the pickings, etc.
                     </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>
index 89a2003..d7bf15d 100644 (file)
@@ -13,7 +13,7 @@
 "access_sale_order_stock_worker","sale.order stock worker","model_sale_order","stock.group_stock_user",1,1,0,0
 "access_sale_order_line_stock_worker","sale.order.line stock worker","model_sale_order_line","stock.group_stock_user",1,1,0,0
 "access_sale_order_manager","sale.order.manager","model_sale_order","base.group_sale_manager",1,0,0,0
-"access_sale_order_line_manager","sale.order.line.manager","model_sale_order_line","base.group_sale_manager",1,0,0,0
+"access_sale_order_line_manager","sale.order.line.manager","model_sale_order_line","base.group_sale_manager",1,1,1,1
 "access_sale_report_manager","sale.report","model_sale_report","base.group_sale_manager",1,1,1,1
 "access_ir_property_sales","ir.property.sales","base.model_ir_property","base.group_sale_salesman",1,1,1,1
 "access_sale_account_journal","account.journal sale order.user","account.model_account_journal","base.group_sale_salesman",1,0,0,0
index f70f3ad..90a4f8c 100644 (file)
             <field name="type">form</field>
             <field name="arch" type="xml">
                 <form string="Invoice Type">
+                    <group colspan="4" col="6">
                     <field name="name" select="1"/>
-                    <field name="active" select="1"/>
                     <field name="invoicing_method" select="1"/>
-                    <newline/>
-                    <field name="note" colspan="4"/>
+                    <field name="active" select="1"/>
+                    </group>
+                     <notebook>
+                        <page string="Notes">
+                            <field name="note" colspan="2" nolabel="1"/>
+                        </page>
+                    </notebook>
                 </form>
             </field>
         </record>
@@ -80,9 +85,9 @@
                     </notebook>
                     <field name="state"/>
                         <group col="6" colspan="2">
-                            <button name="button_open" string="Open Journal" states="draft" type="object" icon="gtk-open"/>
-                            <button string="Confirm Sales" name="button_sale_confirm" states="open" type="object" icon="gtk-execute"/>
-                            <button name="button_close" string="Close Journal" states="confirm,open" type="object" icon="gtk-close"/>
+                            <button name="button_open" string="Open Journal" states="draft" type="object" icon="terp-check"/>
+                            <button string="Confirm Sales" name="button_sale_confirm" states="open" type="object" icon="terp-camera_test"/>
+                            <button name="button_close" string="Close Journal" states="confirm,open" type="object" icon="terp-dialog-close"/>
                             <button name="button_draft" string="Set to Draft" states="cancel" type="object" icon="gtk-convert"/>
                             <button string="Cancel Sales" name="button_sale_cancel" states="close,draft,open,confirm" type="object" icon="gtk-cancel"/>
                         </group>
                 <search string="Sales by Journal">
                     <group col="8" colspan="4">
                                                <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Sales Journal which are in draft state"/>
-                        <filter icon="gtk-open" string="Open" domain="[('state','=','open')]" help="Open Sales Journal"/>
+                        <filter icon="terp-check" string="Open" domain="[('state','=','open')]" help="Open Sales Journal"/>
+                        <filter icon="terp-camera_test" string="Confirm" domain="[('state','=','confirm')]" help="Confirmed Sales Journal"/>
                         <filter icon="gtk-cancel" string="Cancel" domain="[('state','=','cancel')]" help="Sales Journal which are cancelled"/>
-                        <filter icon="terp-check" string="Confirm" domain="[('state','=','confirm')]" help="Confirmed Sales Journal"/>
-                        <filter icon="terp-camera_test" string="Close" domain="[('state','=','done')]" help="Sales Journal which are closed"/>
+                        <filter icon="terp-dialog-close" string="Close" domain="[('state','=','done')]" help="Sales Journal which are closed"/>
                        <separator orientation="vertical"/>
                         <field name="name"/>
                         <field name="code"/>
         </record>
 
 
-        <menuitem id="menu_definition_journal" name="Sales Journals" parent="menu_sale_journal_config"  action="action_definition_journal" sequence="70" />
+        <menuitem id="menu_definition_journal" name="Sales Journals" parent="menu_sale_journal_config"  action="action_definition_journal" sequence="70" groups="base.group_sale_salesman"/>
 
     <!-- Inherit sales order form view -->
 
                     </notebook>
                     <field name="state"/>
                         <group col="6" colspan="2">
-                            <button name="button_open" string="Open Journal" states="draft" type="object" icon="gtk-open"/>
-                            <button string="Confirm Picking" name="button_picking_confirm" states="open" type="object" icon="gtk-execute"/>
+                            <button name="button_open" string="Open Journal" states="draft" type="object" icon="terp-check"/>
+                            <button string="Confirm Picking" name="button_picking_confirm" states="open" type="object" icon="terp-camera_test"/>
                             <button name="button_reset" string="Set to Draft" states="cancel" type="object" icon="gtk-convert"/>
-                            <button name="button_close" string="Close Journal" states="confirm,open" type="object" icon="gtk-close"/>
+                            <button name="button_close" string="Close Journal" states="confirm,open" type="object" icon="terp-dialog-close"/>
                             <button string="Cancel Picking" name="button_picking_cancel" states="close,draft,open,confirm" type="object" icon="gtk-cancel"/>
                         </group>
                 </form>
                 <search string="Picking Journals">
                     <group col="8" colspan="4">
                         <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Picking Journals which are in draft state"/>
-                                               <filter icon="gtk-open" string="Open" domain="[('state','=','open')]" help="Open Picking Journals"/>
+                                               <filter icon="terp-check" string="Open" domain="[('state','=','open')]" help="Open Picking Journals"/>
                                                <filter icon="gtk-cancel" string="Cancel" domain="[('state','=','cancel')]" help="Picking Journals which are cancelled"/>
-                                               <filter icon="terp-camera_test" string="Close" domain="[('state','=','done')]" help="Picking Journals which are closed"/>
+                                               <filter icon="terp-dialog-close" string="Close" domain="[('state','=','done')]" help="Picking Journals which are closed"/>
                         <separator orientation="vertical"/>
                         <field name="name"/>
                         <field name="code"/>
index 8b1f5b4..645ee5b 100644 (file)
@@ -1,6 +1,7 @@
 "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
 "access_sale_journal_invoice_type_finance_invoice","sale_journal.invoice.type invoice","model_sale_journal_invoice_type","account.group_account_invoice",1,0,0,0
 "access_sale_journal_invoice_type_partner_manager","sale_journal.invoice.type partner manager","model_sale_journal_invoice_type","base.group_partner_manager",1,0,0,0
+"access_sale_journal_invoice_type_salesman","sale_journal.invoice.type salesman","model_sale_journal_invoice_type","base.group_sale_salesman",1,0,0,0
 "access_sale_journal_sale_journal","sale_journal.sale.journal","model_sale_journal_sale_journal","base.group_sale_salesman",1,0,0,0
 "access_sale_journal_invoice_type_manager","sale_journal.invoice.type.manager","model_sale_journal_invoice_type","base.group_sale_manager",1,1,1,1
 "access_sale_journal_sale_journal_manager","sale_journal.sale.journal.manager","model_sale_journal_sale_journal","base.group_sale_manager",1,1,1,1
index e8f3e12..47cbe4c 100644 (file)
                <field name="model">stock.picking</field>
                <field name="inherit_id" ref="stock.view_picking_out_form" />
                <field name="arch" type="xml">
-                       <notebook colspan="4">
+               <xpath expr="/form/notebook/page[@string='Additional info']" position="after">
                        <page string="Customer Invoices">
-                                       <separator string="Invoices" colspan="4"/>
                     <field colspan="4" name="invoice_ids" nolabel="1"/>
                                        <group col="10" colspan="4">
                                                <label colspan="6"/>
                                                <button name="create_invoice" icon='gtk-execute' string="Create Invoice" type="object"/>        
                                        </group>
             </page>    
-                       </notebook>             
+               </xpath>
                </field>
        </record>
        
index 54248fa..5bb53fe 100644 (file)
@@ -8,14 +8,14 @@
             <field name="type">form</field>
             <field name="inherit_id" ref="sale.view_order_form"/>
             <field name="arch" type="xml">
+                <field name="create_date" position="after">
+                    <field name="requested_date"/>
+                </field>
                 <field name="date_confirm" position="after">
                     <field name="commitment_date"/>
                     <field name="effective_date"/>
-                    <field name="requested_date"/>
                 </field>
             </field>
         </record>
-
-
     </data>
 </openerp>