← Back to team overview

openerp-dev-web team mailing list archive

[Merge] lp:~openerp-dev/openobject-addons/ron-dev-addons2 into lp:~openerp-dev/openobject-addons/trunk-dev-addons2

 

ron(openerp) has proposed merging lp:~openerp-dev/openobject-addons/ron-dev-addons2 into lp:~openerp-dev/openobject-addons/trunk-dev-addons2.

Requested reviews:
  OpenERP R&D Team (openerp-dev)
Related bugs:
  #663890 Creating invoices and grouping multiplies services
  https://bugs.launchpad.net/bugs/663890
  #666362 [6.0RC1] sale Invoice Control "Not from Picking" is bad wording
  https://bugs.launchpad.net/bugs/666362
  #667246 Wrong Journals when creating an invoice from picking
  https://bugs.launchpad.net/bugs/667246
  #667324 invoicing control in purchase orders
  https://bugs.launchpad.net/bugs/667324
  #669210 [trunk][mrp] stock_move.action_consume raises exception
  https://bugs.launchpad.net/bugs/669210
  #670056 [6.0RC1] stock moves - missing search field "Reference"
  https://bugs.launchpad.net/bugs/670056
  #670652 Demo data of purchase order is not relevant in terms of supplier address
  https://bugs.launchpad.net/bugs/670652
  #670921 Purchase module : problems in group by in seach view
  https://bugs.launchpad.net/bugs/670921
  #671386 PO Line description doesn't take Supplier Product Name or Code in Product's Suppliers Tab
  https://bugs.launchpad.net/bugs/671386


https://bugs.launchpad.net/openobject-addons/+bug/671386
https://bugs.launchpad.net/openobject-addons/+bug/670921
https://bugs.launchpad.net/openobject-addons/+bug/670921
https://bugs.launchpad.net/openobject-addons/+bug/670652
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/ron-dev-addons2/+merge/40954
Your team OpenERP R&D Team is requested to review the proposed merge of lp:~openerp-dev/openobject-addons/ron-dev-addons2 into lp:~openerp-dev/openobject-addons/trunk-dev-addons2.
=== modified file 'product/product.py'
--- product/product.py	2010-11-03 13:33:30 +0000
+++ product/product.py	2010-11-16 13:26:23 +0000
@@ -24,7 +24,7 @@
 
 import math
 from _common import rounding
-import re  
+import re
 from tools.translate import _
 
 def is_pair(x):
@@ -649,7 +649,7 @@
         return res and res[0] or False
 
     _columns = {
-        'name' : fields.many2one('res.partner', 'Supplier', required=True, ondelete='cascade', help="Supplier of this product"),
+        'name' : fields.many2one('res.partner', 'Supplier', required=True,domain = [('supplier','=',True)], ondelete='cascade', help="Supplier of this product"),
         'product_name': fields.char('Supplier Product Name', size=128, help="This supplier's product name will be used when printing a request for quotation. Keep empty to use the internal one."),
         'product_code': fields.char('Supplier Product Code', size=64, help="This supplier's product code will be used when printing a request for quotation. Keep empty to use the internal one."),
         'sequence' : fields.integer('Sequence', help="Assigns the priority to the list of product supplier."),

=== modified file 'product/product_demo.xml'
--- product/product_demo.xml	2010-10-10 17:32:39 +0000
+++ product/product_demo.xml	2010-11-16 13:26:23 +0000
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <openerp>
     <data noupdate="1">
-        <!-- 
-    Resource: product.category 
+        <!--
+    Resource: product.category
     -->
-        
+
         <record id="cat1" model="product.category">
             <field name="parent_id" ref="product.cat0"/>
             <field name="name">Sellable</field>
@@ -55,37 +55,37 @@
     <record id="product_category_marketableproduct0" model="product.category">
             <field name="name">Marketable Products</field>
     </record>
-    
-    
+
+
     <record id="product_category_shelves0" model="product.category">
         <field name="parent_id" ref="product_category_marketableproduct0"/>
             <field name="name">Shelves</field>
     </record>
-    
-    
+
+
     <record id="product_category_otherproducts0" model="product.category">
             <field name="name">Other Products</field>
     </record>
-    
-    
+
+
     <record id="product_category_rawmaterial0" model="product.category">
         <field name="parent_id" ref="product_category_otherproducts0"/>
             <field name="name">Raw Materials</field>
     </record>
-    
-    
+
+
     <record id="product_category_services0" model="product.category">
         <field name="parent_id" ref="product_category_marketableproduct0"/>
             <field name="name">Marketable Services</field>
     </record>
-    
-    
+
+
     <record id="product_category_misc0" model="product.category">
         <field name="parent_id" ref="product_category_otherproducts0"/>
             <field name="name">Misc</field>
     </record>
 
-        
+
         <record id="product_ul_box" model="product.ul">
             <field name="name">Box 20x20x40</field>
             <field name="type">box</field>
@@ -94,11 +94,11 @@
             <field name="name">Box 30x40x60</field>
             <field name="type">box</field>
         </record>
-        
+
         <!--
     Resource: product.product
     -->
-        
+
         <record id="product_product_0" model="product.product">
             <field name="list_price">38.25</field>
             <field name="standard_price">25.5</field>
@@ -126,6 +126,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="sale_delay">2.0</field>
             <field name="name">Basic PC</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_pc"/>
         </record>
         <record id="product_product_pc2" model="product.product">
@@ -138,6 +139,7 @@
             <field name="procure_method">make_to_order</field>
             <field name="sale_delay">18.0</field>
             <field name="name">Basic+ PC (assembly on order)</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_pc"/>
         </record>
         <record id="product_product_pc3" model="product.product">
@@ -149,6 +151,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="sale_delay">3.0</field>
             <field name="name">Medium PC</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_pc"/>
         </record>
         <record id="product_product_pc4" model="product.product">
@@ -160,6 +163,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="procure_method">make_to_order</field>
             <field name="name">Customizable PC</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_pc"/>
             <field name="state">end</field>
         </record>
@@ -171,6 +175,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="sale_delay">1.0</field>
             <field name="name">Mainboard ASUStek A7N8X</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_mb2" model="product.product">
@@ -181,6 +186,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="sale_delay">1.0</field>
             <field name="name">Mainboard ASUStek A7V8X-X</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
             <field name="state">draft</field>
         </record>
@@ -192,6 +198,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="sale_delay">1.0</field>
             <field name="name">Processor AMD Athlon XP 1800+</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_cpu3" model="product.product">
@@ -202,6 +209,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="sale_delay">1.0</field>
             <field name="name">Processor AMD Athlon XP 2200+</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_hdd1" model="product.product">
@@ -212,6 +220,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="sale_delay">1.0</field>
             <field name="name">HDD Seagate 7200.8 80GB</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_hdd2" model="product.product">
@@ -222,6 +231,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="sale_delay">1.0</field>
             <field name="name">HDD Seagate 7200.8 120GB</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_hdd3" model="product.product">
@@ -233,6 +243,7 @@
             <field name="procure_method">make_to_order</field>
             <field name="sale_delay">1.0</field>
             <field name="name">HDD Seagate 7200.8 160GB</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_fan" model="product.product">
@@ -243,6 +254,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="sale_delay">1.0</field>
             <field name="name">Regular case fan 80mm</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_fan2" model="product.product">
@@ -253,6 +265,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="sale_delay">1.0</field>
             <field name="name">Silent fan</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="cat1"/>
         </record>
         <record id="product_product_cpu_gen" model="product.product">
@@ -265,6 +278,7 @@
             <field name="sale_delay">1.0</field>
             <field name="name">Regular processor config</field>
             <field name="procure_method">make_to_order</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_ram" model="product.product">
@@ -275,6 +289,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="sale_delay">1.0</field>
             <field name="name">DDR 256MB PC400</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_pc"/>
         </record>
         <record id="product_product_ram512" model="product.product">
@@ -285,6 +300,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="sale_delay">1.0</field>
             <field name="name">DDR 512MB PC400</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_cpu2" model="product.product">
@@ -297,6 +313,7 @@
             <field name="procure_method">make_to_order</field>
             <field name="sale_delay">1.0</field>
             <field name="name">High speed processor config</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_tow1" model="product.product">
@@ -307,6 +324,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="sale_delay">1.0</field>
             <field name="name">ATX Mid-size Tower</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_20" model="product.product">
@@ -319,6 +337,7 @@
             <field name="procure_method">make_to_order</field>
             <field name="sale_delay">1.0</field>
             <field name="name">HDD on demand</field>
+            <field name="type">product</field>
             <field eval="False" name="sale_ok"/>
             <field name="categ_id" ref="product_category_10"/>
         </record>
@@ -331,6 +350,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="name">RAM on demand</field>
             <field eval="False" name="sale_ok"/>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_22" model="product.product">
@@ -341,6 +361,7 @@
             <field name="uom_id" ref="product_uom_unit"/>
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="name">Processor on demand</field>
+            <field name="type">product</field>
             <field eval="False" name="sale_ok"/>
             <field name="categ_id" ref="product_category_10"/>
         </record>
@@ -352,6 +373,7 @@
             <field name="uom_id" ref="product_uom_unit"/>
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="name">Complete PC With Peripherals</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_24" model="product.product">
@@ -362,6 +384,7 @@
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="name">Keyboard</field>
             <field name="variants">AZERTY</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_25" model="product.product">
@@ -371,6 +394,7 @@
             <field name="uom_id" ref="product_uom_unit"/>
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="name">Mouse</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_10"/>
         </record>
         <record id="product_product_26" model="product.product">
@@ -381,6 +405,7 @@
             <field name="uom_id" ref="product_uom_unit"/>
             <field name="uom_po_id" ref="product_uom_unit"/>
             <field name="name">Kit Keyboard + Mouse</field>
+            <field name="type">product</field>
             <field name="categ_id" ref="product_category_11"/>
         </record>
 
@@ -396,9 +421,10 @@
         <field name="uom_id" ref="product_uom_unit"/>
         <field name="uom_po_id" ref="product_uom_unit"/>
         <field name="name">Shelf of 100cm</field>
+        <field name="type">product</field>
             <field name="categ_id" ref="product_category_shelves0"/>
     </record>
-    
+
     <record id="product_product_shelfofcm1" model="product.product">
             <field name="default_code">SHE200</field>
             <field name="supply_method">produce</field>
@@ -408,6 +434,7 @@
         <field name="uom_id" ref="product_uom_unit"/>
         <field name="uom_po_id" ref="product_uom_unit"/>
         <field name="name">Shelf of 200cm</field>
+        <field name="type">product</field>
             <field name="categ_id" ref="product_category_shelves0"/>
     </record>
     <record id="product_product_woodmm0" model="product.product">
@@ -419,6 +446,7 @@
         <field name="name">Wood 2mm</field>
         <field eval="10" name="seller_delay"/>
         <field eval="7.0" name="sale_delay"/>
+        <field name="type">product</field>
         <field name="categ_id" ref="product_category_rawmaterial0"/>
     </record>
 
@@ -452,12 +480,13 @@
             <field name="default_code">REST</field>
             <field name="supply_method">produce</field>
             <field eval="'make_to_order'" name="procure_method"/>
-            <field name="type">consu</field>
+            <field name="type">product</field>
             <field name="list_price">1.0</field>
             <field name="standard_price">1.0</field>
         <field name="uom_id" ref="product_uom_unit"/>
         <field name="uom_po_id" ref="product_uom_unit"/>
         <field name="name">Restaurant Expenses</field>
+        <field name="type">product</field>
         <field name="categ_id" ref="product_category_otherproducts0"/>
     </record>
 
@@ -467,7 +496,7 @@
  		<field name="type">service</field>
 		<field eval="'make_to_order'" name="procure_method"/>
         <field eval="0" name="sale_ok"/>
-        <field eval="1" name="purchase_ok"/> 
+        <field eval="1" name="purchase_ok"/>
         <field name="standard_price">20.0</field>
         <field name="uom_id" ref="uom_hour"/>
         <field name="uom_po_id" ref="uom_hour"/>
@@ -484,6 +513,7 @@
         	<field name="uom_po_id" ref="product_uom_unit"/>
         	<field name="name">Rear Panel SHE100</field>
             <field eval="5" name="seller_delay"/>
+            <field name="type">product</field>
         	<field name="categ_id" ref="product_category_misc0"/>
 	</record>
 
@@ -496,6 +526,7 @@
         <field name="uom_po_id" ref="product_uom_unit"/>
         <field name="name">Rear Panel SHE200</field>
             <field eval="5" name="seller_delay"/>
+            <field name="type">product</field>
         <field name="categ_id" ref="product_category_misc0"/>
     </record>
 
@@ -508,6 +539,7 @@
         <field name="uom_po_id" ref="product_uom_unit"/>
         <field name="name">Side Panel</field>
             <field eval="5" name="seller_delay"/>
+            <field name="type">product</field>
         <field name="categ_id" ref="product_category_misc0"/>
     </record>
 
@@ -520,6 +552,7 @@
         <field name="uom_po_id" ref="product_uom_unit"/>
         <field name="name">Rack 100cm</field>
             <field eval="8" name="seller_delay"/>
+            <field name="type">product</field>
         <field name="categ_id" ref="product_category_misc0"/>
     </record>
 
@@ -532,6 +565,7 @@
         <field name="uom_po_id" ref="product_uom_unit"/>
         <field name="name">Rack 200cm</field>
             <field eval="8" name="seller_delay"/>
+            <field name="type">product</field>
         <field name="categ_id" ref="product_category_misc0"/>
     </record>
 
@@ -544,6 +578,7 @@
         <field name="uom_id" ref="product_uom_unit"/>
         <field name="uom_po_id" ref="product_uom_unit"/>
         <field name="name">Assembly Section</field>
+        <field name="type">product</field>
             <field name="categ_id" ref="product_category_misc0"/>
     </record>
 
@@ -556,6 +591,7 @@
         <field name="uom_po_id" ref="product_uom_unit"/>
         <field name="name">Wood Lintel 4m</field>
             <field eval="10" name="seller_delay"/>
+            <field name="type">product</field>
         <field name="categ_id" ref="product_category_misc0"/>
     </record>
 
@@ -567,6 +603,7 @@
         <field name="uom_po_id" ref="product_uom_unit"/>
         <field name="name">Metal Cleats</field>
             <field eval="20" name="seller_delay"/>
+            <field name="type">product</field>
         <field name="categ_id" ref="product_category_misc0"/>
     </record>
 
@@ -574,7 +611,7 @@
             <field name="default_code">HOT</field>
             <field name="supply_method">produce</field>
             <field eval="'make_to_order'" name="procure_method"/>
-            <field name="type">consu</field>
+            <field name="type">product</field>
             <field name="list_price">1.0</field>
             <field name="standard_price">1.0</field>
         <field name="uom_id" ref="product_uom_unit"/>
@@ -593,6 +630,7 @@
         <field name="uom_po_id" ref="product_uom_unit"/>
         <field name="name">KIT Shelf of 100cm</field>
             <field eval="0" name="purchase_ok"/>
+            <field name="type">product</field>
         <field name="categ_id" ref="product_category_shelves0"/>
     </record>
 

=== modified file 'purchase/purchase.py'
--- purchase/purchase.py	2010-11-12 13:29:08 +0000
+++ purchase/purchase.py	2010-11-16 13:26:23 +0000
@@ -646,6 +646,11 @@
             return {'value': {'price_unit': price_unit or 0.0, 'name': name or '',
                 'notes': notes or'', 'product_uom' : uom or False}, 'domain':{'product_uom':[]}}
         prod= self.pool.get('product.product').browse(cr, uid, product)
+        if prod.product_tmpl_id.seller_ids:
+            seller_get_id = prod.product_tmpl_id.seller_ids[0].name.id
+        else:
+            seller_get_id = False
+
         lang=False
         if partner_id:
             lang=self.pool.get('res.partner').read(cr, uid, partner_id, ['lang'])['lang']
@@ -675,8 +680,15 @@
                         'date': date_order,
                         })[pricelist]
         dt = (datetime.now() + relativedelta(days=int(seller_delay) or 0.0)).strftime('%Y-%m-%d %H:%M:%S')
-        prod_name = self.pool.get('product.product').name_get(cr, uid, [prod.id])[0][1]
-
+        if seller_get_id == partner_id:
+            prod_suppl_name = self.pool.get('product.product').browse(cr, uid, prod.id).seller_ids[0].product_name
+            prod_suppl_code = self.pool.get('product.product').browse(cr, uid, prod.id).seller_ids[0].product_code
+            if prod_suppl_name == False or prod_suppl_code == False:
+               prod_name = self.pool.get('product.product').name_get(cr, uid, [prod.id])[0][1]
+            else:
+                prod_name= '[' + prod_suppl_code + '] '+ prod_suppl_name
+        else:
+            prod_name = self.pool.get('product.product').name_get(cr, uid, [prod.id])[0][1]
 
         res = {'value': {'price_unit': price, 'name': name or prod_name,
             'taxes_id':map(lambda x: x.id, prod.supplier_taxes_id),

=== modified file 'purchase/purchase_demo.xml'
--- purchase/purchase_demo.xml	2010-10-27 10:42:47 +0000
+++ purchase/purchase_demo.xml	2010-11-16 13:26:23 +0000
@@ -5,17 +5,17 @@
     <!--Resource: purchase.order-->
 
         <record id="order_purchase1" model="purchase.order">
-            <field model="stock.location" name="location_id" search="[]"/>
+            <field name="location_id" ref="stock.stock_location_stock"/>
             <field model="product.pricelist" name="pricelist_id" search="[]"/>
-            <field model="res.partner" name="partner_id" search="[('supplier','=','True')]" />
-            <field model="res.partner.address" name="partner_address_id" search="[]"/>
+            <field name="partner_id" ref="base.res_partner_asus"/>
+            <field name="partner_address_id" ref="base.res_partner_address_tang"/>
         </record>
 
         <record id="order_purchase2" model="purchase.order">
-            <field model="stock.location" name="location_id" search="[]"/>
+            <field name="location_id" ref="stock.stock_location_stock"/>
             <field model="product.pricelist" name="pricelist_id" search="[]"/>
-            <field model="res.partner" name="partner_id" search="[('supplier','=','True')]" />
-            <field model="res.partner.address" name="partner_address_id" search="[]"/>
+            <field name="partner_id" ref="base.res_partner_3"/>
+            <field name="partner_address_id" ref="base.res_partner_address_zen"/>
         </record>
 
         <!--Resource: purchase.order.line-->

=== modified file 'stock/stock.py'
--- stock/stock.py	2010-11-12 13:29:08 +0000
+++ stock/stock.py	2010-11-16 13:26:23 +0000
@@ -632,7 +632,7 @@
         'move_lines': fields.one2many('stock.move', 'picking_id', 'Internal Moves', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}),
         'auto_picking': fields.boolean('Auto-Picking'),
         'address_id': fields.many2one('res.partner.address', 'Address', help="Address of partner"),
-        'partner_id': fields.related('address_id','partner_id',type='many2one',relation='res.partner',string='Partner'),
+        'partner_id': fields.related('address_id','partner_id',type='many2one',relation='res.partner',string='Partner',store=True),
         'invoice_state': fields.selection([
             ("invoiced", "Invoiced"),
             ("2binvoiced", "To Be Invoiced"),
@@ -973,7 +973,7 @@
             if not partner:
                 raise osv.except_osv(_('Error, no partner !'),
                     _('Please put a partner on the picking list if you want to generate invoice.'))
-            
+
             if not inv_type:
                 inv_type = self._get_invoice_type(picking)
 


Follow ups