[MERGE]: Merge with lp:~openerp-dev/openobject-addons/ksa-addons2
authorrpa (Open ERP) <rpa@tinyerp.com>
Thu, 6 Jan 2011 12:48:45 +0000 (18:18 +0530)
committerrpa (Open ERP) <rpa@tinyerp.com>
Thu, 6 Jan 2011 12:48:45 +0000 (18:18 +0530)
bzr revid: rpa@tinyerp.com-20110106124845-fi83ya2dyzpk0p0j

addons/mrp_repair/mrp_repair.py
addons/purchase/stock.py
addons/sale/stock.py
addons/stock/stock.py

index 8fde87c..7bc2de4 100644 (file)
@@ -327,7 +327,10 @@ class mrp_repair(osv.osv):
                 self.write(cr, uid, [o.id], {'state': '2binvoiced'})
             else:
                 self.write(cr, uid, [o.id], {'state': 'confirmed'})
-                mrp_line_obj.write(cr, uid, [l.id for l in o.operations], {'state': 'confirmed'})
+                for line in o.operations:
+                    if line.product_id.track_production and not line.prodlot_id:
+                        raise osv.except_osv(_('Warning'), _("Production lot is required for opration line with product '%s'") % (line.product_id.name))
+                    mrp_line_obj.write(cr, uid, [line.id], {'state': 'confirmed'})
         return True
 
     def action_cancel(self, cr, uid, ids, context=None):
index 4fc154a..e32528f 100644 (file)
@@ -65,7 +65,7 @@ class stock_picking(osv.osv):
         res = super(stock_picking, self)._get_address_invoice(cr, uid, picking)
         if picking.purchase_id:
             partner_obj = self.pool.get('res.partner')
-            partner = (picking.purchase_id and picking.purchase_id.partner_id) or picking.address_id.partner_id
+            partner = picking.purchase_id.partner_id or picking.address_id.partner_id
             data = partner_obj.address_get(cr, uid, [partner.id],
                 ['contact', 'invoice'])
             res.update(data)
index 573f019..f7c5d81 100644 (file)
@@ -43,19 +43,6 @@ class stock_picking(osv.osv):
         'sale_id': False
     }
 
-    def _get_address_invoice(self, cr, uid, picking):
-        """ Gets invoice address of a partner
-        @return {'contact': address, 'invoice': address} for invoice
-        """
-        res = super(stock_picking, self)._get_address_invoice(cr, uid, picking)
-        if picking.sale_id:
-            partner_obj = self.pool.get('res.partner')
-            partner = (picking.sale_id and picking.sale_id.partner_id) or picking.address_id.partner_id
-            data = partner_obj.address_get(cr, uid, [partner.id],
-                ['contact', 'invoice'])
-            res.update(data)
-        return res
-
     def get_currency_id(self, cursor, user, picking):
         if picking.sale_id:
             return picking.sale_id.pricelist_id.currency_id.id
index 447354b..7a1e218 100644 (file)
@@ -993,7 +993,7 @@ class stock_picking(osv.osv):
 
             address_contact_id, address_invoice_id = \
                     self._get_address_invoice(cr, uid, picking).values()
-            partner_id = address_obj.browse(cr, uid, address_contact_id)
+            address = address_obj.browse(cr, uid, address_contact_id, context=context)
 
             comment = self._get_comment_invoice(cr, uid, picking)
             if group and partner.id in invoices_group:
@@ -1013,7 +1013,7 @@ class stock_picking(osv.osv):
                     'origin': (picking.name or '') + (picking.origin and (':' + picking.origin) or ''),
                     'type': inv_type,
                     'account_id': account_id,
-                    'partner_id': partner_id.partner_id.id,
+                    'partner_id': address.partner_id.id,
                     'address_invoice_id': address_invoice_id,
                     'address_contact_id': address_contact_id,
                     'comment': comment,