diff --git a/mcfix_account/models/account_payment.py b/mcfix_account/models/account_payment.py
index 08b9cf24..feca60fe 100644
--- a/mcfix_account/models/account_payment.py
+++ b/mcfix_account/models/account_payment.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-from odoo import models, api, _
+from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
@@ -64,6 +64,15 @@ def _check_company_id(self):
class AccountAbstractPayment(models.AbstractModel):
_inherit = 'account.abstract.payment'
+ @api.multi
+ def _get_default_company(self):
+ if self.env.context.get('default_invoice_ids'):
+ inv = self.env['account.invoice'].browse(self.env.context['default_invoice_ids'][0][1])
+ return inv.company_id.id
+ return self.env.user.company_id.id
+
+ create_company_id = fields.Many2one('res.company', string='Company', default=_get_default_company)
+
@api.multi
@api.depends('company_id')
def name_get(self):
@@ -79,10 +88,12 @@ def name_get(self):
res += [(rec.id, name)]
return res
- @api.onchange('company_id')
- def onchange_company_id(self):
- self.journal_id = False
+# @api.onchange('create_company_id')
+# def onchange_company_id(self):
+# if self.create_company_id and self.journal_id.company_id != self.create_company_id:
+# self.journal_id = False
+ # Company is related from journal_id cannot be different!!!!!
@api.multi
@api.constrains('journal_id', 'company_id')
def _check_company_journal_id(self):
@@ -96,6 +107,27 @@ def _check_company_journal_id(self):
return True
+class AccountRegisterPayment(models.TransientModel):
+ _inherit = 'account.register.payments'
+
+ @api.model
+ def default_get(self, fields):
+ rec = super(AccountRegisterPayment, self).default_get(fields)
+ context = dict(self._context or {})
+ active_model = context.get('active_model')
+ active_ids = context.get('active_ids')
+ invoices = self.env[active_model].browse(active_ids)
+ if invoices:
+ rec['create_company_id'] = invoices[0].company_id.id
+ return rec
+
+ @api.onchange('create_company_id')
+ def onchange_company_id(self):
+ if self.create_company_id and \
+ self.journal_id.company_id != self.create_company_id:
+ self.journal_id = False
+
+
class AccountPayment(models.Model):
_inherit = "account.payment"
@@ -131,17 +163,26 @@ def _compute_destination_account_id(self):
force_company=rec.company_id.id).\
property_account_payable_id.id
- @api.onchange('payment_type', 'company_id')
+ @api.onchange('create_company_id')
+ def onchange_company_id(self):
+ if self.create_company_id and \
+ self.journal_id.company_id != self.create_company_id:
+ self.journal_id = False
+ if self.create_company_id:
+ return self._onchange_payment_type()
+
+ @api.onchange('payment_type')
def _onchange_payment_type(self):
res = super(AccountPayment, self)._onchange_payment_type()
res['domain']['journal_id'].append(('company_id', '=',
- self.company_id.id))
+ self.create_company_id.id))
return res
- @api.model
- def create(self, vals):
- if 'company_id' not in vals:
- journal_id = vals.get('journal_id')
- journal = self.env['account.journal'].browse(journal_id)
- vals['company_id'] = journal.company_id.id
- return super(AccountPayment, self).create(vals)
+ # is related!!!
+# @api.model
+# def create(self, vals):
+# if 'company_id' not in vals:
+# journal_id = vals.get('journal_id')
+# journal = self.env['account.journal'].browse(journal_id)
+# vals['company_id'] = journal.company_id.id
+# return super(AccountPayment, self).create(vals)
diff --git a/mcfix_account/views/account_payment_view.xml b/mcfix_account/views/account_payment_view.xml
index 93d0b09e..a6de214c 100644
--- a/mcfix_account/views/account_payment_view.xml
+++ b/mcfix_account/views/account_payment_view.xml
@@ -6,10 +6,18 @@
-
+
+
+
+
+
+ [('type', 'in', ('bank', 'cash')), ('company_id','=', create_company_id)]
+
+ {'no_create': True}
+
- [('company_id','=', company_id)]
+ [('type', 'in', ('bank', 'cash')), ('company_id','=', company_id)]
@@ -20,8 +28,24 @@
+
+
+
+ account.register.payments.wizard
+ account.register.payments
+
+
+
+
+
+
+
+ [('type', 'in', ('bank', 'cash')), ('company_id', '=', create_company_id)]
+
+
+