From 59f2e4dcbd39996b551f9f9cfa759a367b7ca48c Mon Sep 17 00:00:00 2001 From: Mantavya Gajjar Date: Tue, 7 Sep 2010 17:24:14 +0530 Subject: [PATCH] [FIX]: fix a problem for selecting a correct account on change payment method bzr revid: mga@tinyerp.com-20100907115414-heu14yxy06ewp89j --- addons/account_voucher/voucher.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/addons/account_voucher/voucher.py b/addons/account_voucher/voucher.py index 012a386fa13..6d4e6dc871e 100644 --- a/addons/account_voucher/voucher.py +++ b/addons/account_voucher/voucher.py @@ -427,23 +427,23 @@ class account_voucher(osv.osv): # TODO def onchange_payment(self, cr, uid, ids, pay_now, journal_id, partner_id, ttype='sale'): + res = {} if not partner_id: - return {} - partner_pool = self.pool.get('res.partner') + return res res = {'account_id':False} + partner_pool = self.pool.get('res.partner') + journal_pool = self.pool.get('account.journal') if pay_now == 'pay_later': partner = partner_pool.browse(cr, uid, partner_id) - if ttype == 'sale': - res.update({ - 'account_id':partner.property_account_receivable.id, - }) - elif ttype == 'purchase': - res.update({ - 'account_id':partner.property_account_payable.id, - }) - return { - 'value':res - } + journal = journal_pool.browse(cr, uid, journal_id) + if journal.type in ('sale','sale_refund'): + account_id = partner.property_account_receivable.id + elif journal.type in ('purchase', 'purchase_refund','expense'): + account_id = partner.property_account_payable.id + else: + account_id = journal.default_credit_account_id.id or journal.default_debit_account_id.id + res['account_id'] = account_id + return {'value':res} def action_move_line_create(self, cr, uid, ids, *args):