[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

1  2 
addons/mrp_repair/mrp_repair.py
addons/purchase/stock.py
addons/stock/stock.py

@@@ -327,7 -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):
@@@ -58,6 -58,19 +58,19 @@@ class stock_picking(osv.osv)
          'purchase_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.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)
+         return res
      def get_currency_id(self, cursor, user, picking):
          if picking.purchase_id:
              return picking.purchase_id.pricelist_id.currency_id.id
@@@ -993,6 -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:
                      'origin': (picking.name or '') + (picking.origin and (':' + picking.origin) or ''),
                      'type': inv_type,
                      'account_id': account_id,
-                     'partner_id': partner.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,