[FIX] account_anglo_saxon: fix refund preparation after API refactoring by Akretion

bzr revid: odo@openerp.com-20121219010429-heljgqgxbz02xcn9
This commit is contained in:
Olivier Dony 2012-12-19 02:04:29 +01:00
parent 2037f353c0
commit a4e0fb1414
1 changed files with 19 additions and 20 deletions

View File

@ -157,28 +157,27 @@ class account_invoice_line(osv.osv):
res['value'].update({'account_id':a}) res['value'].update({'account_id':a})
return res return res
account_invoice_line()
class account_invoice(osv.osv): class account_invoice(osv.osv):
_inherit = "account.invoice" _inherit = "account.invoice"
def _refund_cleanup_lines(self, cr, uid, lines): def _prepare_refund(self, cr, uid, invoice, date=None, period_id=None, description=None, journal_id=None, context=None):
for line in lines: invoice_data = super(account_invoice, self)._prepare_refund(cr, uid, invoice, date, period_id,
inv_id = line['invoice_id'] description, journal_id, context=context)
inv_obj = self.browse(cr, uid, inv_id[0]) if invoice.type == 'in_invoice':
if inv_obj.type == 'in_invoice': fiscal_position = self.pool.get('account.fiscal.position')
if line.get('product_id',False): for _, _, line_dict in invoice_data['invoice_line']:
product_obj = self.pool.get('product.product').browse(cr, uid, line['product_id'][0]) if line_dict.get('product_id'):
oa = product_obj.property_stock_account_output and product_obj.property_stock_account_output.id product = self.pool.get('product.product').browse(cr, uid, line_dict['product_id'], context=context)
if not oa: counterpart_acct_id = product.property_stock_account_output and \
oa = product_obj.categ_id.property_stock_account_output_categ and product_obj.categ_id.property_stock_account_output_categ.id product.property_stock_account_output.id
if oa: if not counterpart_acct_id:
fpos = inv_obj.fiscal_position or False counterpart_acct_id = product.categ_id.property_stock_account_output_categ and \
a = self.pool.get('account.fiscal.position').map_account(cr, uid, fpos, oa) product.categ_id.property_stock_account_output_categ.id
account_data = self.pool.get('account.account').read(cr, uid, [a], ['name'])[0] if counterpart_acct_id:
line.update({'account_id': (account_data['id'],account_data['name'])}) fpos = invoice.fiscal_position or False
res = super(account_invoice,self)._refund_cleanup_lines(cr, uid, lines) line_dict['account_id'] = fiscal_position.map_account(cr, uid,
return res fpos,
counterpart_acct_id)
return invoice_data
account_invoice()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: