[FIX] account_anglo_saxon: fix refund preparation after API refactoring by Akretion
bzr revid: odo@openerp.com-20121219010429-heljgqgxbz02xcn9
This commit is contained in:
parent
2037f353c0
commit
a4e0fb1414
|
@ -157,28 +157,27 @@ class account_invoice_line(osv.osv):
|
|||
res['value'].update({'account_id':a})
|
||||
return res
|
||||
|
||||
account_invoice_line()
|
||||
|
||||
class account_invoice(osv.osv):
|
||||
_inherit = "account.invoice"
|
||||
|
||||
def _refund_cleanup_lines(self, cr, uid, lines):
|
||||
for line in lines:
|
||||
inv_id = line['invoice_id']
|
||||
inv_obj = self.browse(cr, uid, inv_id[0])
|
||||
if inv_obj.type == 'in_invoice':
|
||||
if line.get('product_id',False):
|
||||
product_obj = self.pool.get('product.product').browse(cr, uid, line['product_id'][0])
|
||||
oa = product_obj.property_stock_account_output and product_obj.property_stock_account_output.id
|
||||
if not oa:
|
||||
oa = product_obj.categ_id.property_stock_account_output_categ and product_obj.categ_id.property_stock_account_output_categ.id
|
||||
if oa:
|
||||
fpos = inv_obj.fiscal_position or False
|
||||
a = self.pool.get('account.fiscal.position').map_account(cr, uid, fpos, oa)
|
||||
account_data = self.pool.get('account.account').read(cr, uid, [a], ['name'])[0]
|
||||
line.update({'account_id': (account_data['id'],account_data['name'])})
|
||||
res = super(account_invoice,self)._refund_cleanup_lines(cr, uid, lines)
|
||||
return res
|
||||
def _prepare_refund(self, cr, uid, invoice, date=None, period_id=None, description=None, journal_id=None, context=None):
|
||||
invoice_data = super(account_invoice, self)._prepare_refund(cr, uid, invoice, date, period_id,
|
||||
description, journal_id, context=context)
|
||||
if invoice.type == 'in_invoice':
|
||||
fiscal_position = self.pool.get('account.fiscal.position')
|
||||
for _, _, line_dict in invoice_data['invoice_line']:
|
||||
if line_dict.get('product_id'):
|
||||
product = self.pool.get('product.product').browse(cr, uid, line_dict['product_id'], context=context)
|
||||
counterpart_acct_id = product.property_stock_account_output and \
|
||||
product.property_stock_account_output.id
|
||||
if not counterpart_acct_id:
|
||||
counterpart_acct_id = product.categ_id.property_stock_account_output_categ and \
|
||||
product.categ_id.property_stock_account_output_categ.id
|
||||
if counterpart_acct_id:
|
||||
fpos = invoice.fiscal_position or False
|
||||
line_dict['account_id'] = fiscal_position.map_account(cr, uid,
|
||||
fpos,
|
||||
counterpart_acct_id)
|
||||
return invoice_data
|
||||
|
||||
account_invoice()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
Loading…
Reference in New Issue