diff --git a/addons/account/models/account_payment.py b/addons/account/models/account_payment.py index b6bc2732231..8764d190991 100644 --- a/addons/account/models/account_payment.py +++ b/addons/account/models/account_payment.py @@ -332,7 +332,7 @@ class account_payment(models.Model): else: if self.payment_type == 'inbound': domain.append(('at_least_one_inbound', '=', True)) - else: + elif self.payment_type == 'outbound': domain.append(('at_least_one_outbound', '=', True)) return {'domain': domain, 'journal_types': set(journal_type)} @@ -341,9 +341,16 @@ class account_payment(models.Model): jrnl_filters = self._compute_journal_domain_and_types() journal_types = jrnl_filters['journal_types'] domain_on_types = [('type', 'in', list(journal_types))] - if self.journal_id.type not in journal_types: - self.journal_id = self.env['account.journal'].search(domain_on_types, limit=1) - return {'domain': {'journal_id': jrnl_filters['domain'] + domain_on_types}} + + journal_domain = jrnl_filters['domain'] + domain_on_types + default_journal_id = self.env.context.get('default_journal_id') + if not default_journal_id: + if self.journal_id.type not in journal_types: + self.journal_id = self.env['account.journal'].search(domain_on_types, limit=1) + else: + journal_domain = journal_domain.append(('id', '=', default_journal_id)) + + return {'domain': {'journal_id': journal_domain}} @api.one @api.depends('invoice_ids', 'payment_type', 'partner_type', 'partner_id') @@ -374,6 +381,8 @@ class account_payment(models.Model): self.partner_type = 'customer' elif self.payment_type == 'outbound': self.partner_type = 'supplier' + else: + self.partner_type = False # Set payment method domain res = self._onchange_journal() if not res.get('domain', {}): @@ -505,7 +514,7 @@ class account_payment(models.Model): @api.multi def action_draft(self): return self.write({'state': 'draft'}) - + def action_validate_invoice_payment(self): """ Posts a payment used to pay an invoice. This function only posts the payment by default but can be overridden to apply specific post or pre-processing. @@ -669,7 +678,7 @@ class account_payment(models.Model): for inv in invoice: if inv.move_id: name += inv.number + ', ' - name = name[:len(name)-2] + name = name[:len(name)-2] return { 'name': name, 'account_id': self.destination_account_id.id, diff --git a/addons/account/views/res_config_settings_views.xml b/addons/account/views/res_config_settings_views.xml index 7a878d265c7..22726578d1b 100644 --- a/addons/account/views/res_config_settings_views.xml +++ b/addons/account/views/res_config_settings_views.xml @@ -168,10 +168,6 @@