diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py
index f58c640b11c..ff4200ace11 100644
--- a/addons/account_voucher/account_voucher.py
+++ b/addons/account_voucher/account_voucher.py
@@ -741,13 +741,17 @@ class account_voucher(osv.osv):
total_credit = 0.0
total_debit = 0.0
- account_type = 'receivable'
+ account_type = None
+ if context.get('account_id'):
+ account_type = self.pool['account.account'].browse(cr, uid, context['account_id'], context=context).type
if ttype == 'payment':
- account_type = 'payable'
+ if not account_type:
+ account_type = 'payable'
total_debit = price or 0.0
else:
total_credit = price or 0.0
- account_type = 'receivable'
+ if not account_type:
+ account_type = 'receivable'
if not context.get('move_line_ids', False):
ids = move_line_pool.search(cr, uid, [('state','=','valid'), ('account_id.type', '=', account_type), ('reconcile_id', '=', False), ('partner_id', '=', partner_id)], context=context)
@@ -836,9 +840,9 @@ class account_voucher(osv.osv):
else:
default['value']['line_dr_ids'].append(rs)
- if ttype == 'payment' and len(default['value']['line_cr_ids']) > 0:
+ if len(default['value']['line_cr_ids']) > 0:
default['value']['pre_line'] = 1
- elif ttype == 'receipt' and len(default['value']['line_dr_ids']) > 0:
+ elif len(default['value']['line_dr_ids']) > 0:
default['value']['pre_line'] = 1
default['value']['writeoff_amount'] = self._compute_writeoff_amount(cr, uid, default['value']['line_dr_ids'], default['value']['line_cr_ids'], price, ttype)
return default
diff --git a/addons/account_voucher/account_voucher_view.xml b/addons/account_voucher/account_voucher_view.xml
index 41d3c6fc1f6..b7ea4b8fc71 100644
--- a/addons/account_voucher/account_voucher_view.xml
+++ b/addons/account_voucher/account_voucher_view.xml
@@ -213,10 +213,10 @@
-
+
-
+
onchange_amount(amount)
@@ -230,7 +230,7 @@
-
+
@@ -241,7 +241,7 @@
-
+