openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #00500
[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