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):
'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
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,