summaryrefslogtreecommitdiff
path: root/addons/account_analytic_analysis
diff options
context:
space:
mode:
authorDamien Bouvy <dbo@odoo.com>2015-04-23 09:43:50 +0200
committerDamien Bouvy <dbo@odoo.com>2015-04-23 13:35:48 +0200
commit775ecc6cadff565cbfe3720efe8e89e693b3fa4d (patch)
treeb5bb559b08cec954cf5c3c0a1056052af6d117af /addons/account_analytic_analysis
parentf2fccdfaf02702f2e1cd3b9825425616f9774139 (diff)
[FIX] account_analytic_analysis: fiscal position should use the get_fiscal_position() function
When automatically generating invoices, contract should browse the fiscal position by calling the function get_fiscal_position of the account.fiscal.position class instead of checking the property field on the partner
Diffstat (limited to 'addons/account_analytic_analysis')
-rw-r--r--addons/account_analytic_analysis/account_analytic_analysis.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/addons/account_analytic_analysis/account_analytic_analysis.py b/addons/account_analytic_analysis/account_analytic_analysis.py
index 3c775d87f80..d83db83f9a4 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis.py
+++ b/addons/account_analytic_analysis/account_analytic_analysis.py
@@ -671,35 +671,37 @@ class account_analytic_account(osv.osv):
context = context or {}
journal_obj = self.pool.get('account.journal')
+ fpos_obj = self.pool['account.fiscal.position']
+ partner = contract.partner_id
- if not contract.partner_id:
+ if not partner:
raise osv.except_osv(_('No Customer Defined!'),_("You must first select a Customer for Contract %s!") % contract.name )
- fpos = contract.partner_id.property_account_position or False
+ fpos_id = fpos_obj.get_fiscal_position(cr, uid, partner.company_id.id, partner.id, context=context)
journal_ids = journal_obj.search(cr, uid, [('type', '=','sale'),('company_id', '=', contract.company_id.id or False)], limit=1)
if not journal_ids:
raise osv.except_osv(_('Error!'),
_('Please define a sale journal for the company "%s".') % (contract.company_id.name or '', ))
- partner_payment_term = contract.partner_id.property_payment_term and contract.partner_id.property_payment_term.id or False
+ partner_payment_term = partner.property_payment_term and partner.property_payment_term.id or False
currency_id = False
if contract.pricelist_id:
currency_id = contract.pricelist_id.currency_id.id
- elif contract.partner_id.property_product_pricelist:
- currency_id = contract.partner_id.property_product_pricelist.currency_id.id
+ elif partner.property_product_pricelist:
+ currency_id = partner.property_product_pricelist.currency_id.id
elif contract.company_id:
currency_id = contract.company_id.currency_id.id
invoice = {
- 'account_id': contract.partner_id.property_account_receivable.id,
+ 'account_id': partner.property_account_receivable.id,
'type': 'out_invoice',
- 'partner_id': contract.partner_id.id,
+ 'partner_id': partner.id,
'currency_id': currency_id,
'journal_id': len(journal_ids) and journal_ids[0] or False,
'date_invoice': contract.recurring_next_date,
'origin': contract.code,
- 'fiscal_position': fpos and fpos.id,
+ 'fiscal_position': fpos_id,
'payment_term': partner_payment_term,
'company_id': contract.company_id.id or False,
}