diff --git a/account_multic_fix/__manifest__.py b/account_multic_fix/__manifest__.py index 1e6dcb45..98652792 100644 --- a/account_multic_fix/__manifest__.py +++ b/account_multic_fix/__manifest__.py @@ -19,7 +19,7 @@ ############################################################################## { 'name': 'Account Multi Company Fixes', - 'version': '13.0.1.1.0', + 'version': "15.0.1.0.0", 'author': 'ADHOC SA', 'website': 'www.adhoc.com.ar', 'license': 'AGPL-3', @@ -29,5 +29,5 @@ 'views/account_bank_statement_line_views.xml', ], 'demo': [], - 'installable': False, + 'installable': True, } diff --git a/account_multic_fix/models/__init__.py b/account_multic_fix/models/__init__.py index 42bfe198..062a9c08 100644 --- a/account_multic_fix/models/__init__.py +++ b/account_multic_fix/models/__init__.py @@ -3,5 +3,3 @@ # directory ############################################################################## from . import account_move -from . import account_move_line -from . import account_master_port diff --git a/account_multic_fix/models/account_master_port.py b/account_multic_fix/models/account_master_port.py deleted file mode 100644 index f601a24b..00000000 --- a/account_multic_fix/models/account_master_port.py +++ /dev/null @@ -1,161 +0,0 @@ -############################################################################## -# For copyright and license notices, see __manifest__.py file in module root -# directory -############################################################################## -from odoo import models, fields - -# TODO remove all this file on v14 - - -class AccountAnalyticLine(models.Model): - _inherit = 'account.analytic.line' - - product_id = fields.Many2one(check_company=True) - general_account_id = fields.Many2one(domain="[('deprecated', '=', False), ('company_id', '=', company_id)]") - move_id = fields.Many2one(check_company=True) - - -class AccountBankStatement(models.Model): - _inherit = 'account.bank.statement' - _check_company_auto = True - - journal_id = fields.Many2one(check_company=True) - - -class AccountBankStatementLine(models.Model): - _inherit = 'account.bank.statement.line' - _check_company_auto = True - - account_id = fields.Many2one( - domain="[('deprecated', '=', False), ('company_id', '=', company_id)]", - check_company=True, - ) - statement_id = fields.Many2one(check_company=True) - - -class AccountJournalGroup(models.Model): - _inherit = 'account.journal.group' - _check_company_auto = True - - excluded_journal_ids = fields.Many2many(check_company=True) - - -class AccountTax(models.Model): - _inherit = 'account.tax' - _check_company_auto = True - - -class AccountTaxRepartitionLine(models.Model): - _inherit = 'account.tax.repartition.line' - _check_company_auto = True - - account_id = fields.Many2one( - domain="[('deprecated', '=', False), ('company_id', '=', company_id), " - "('internal_type', 'not in', ('receivable', 'payable'))]", - check_company=True, - ) - invoice_tax_id = fields.Many2one(check_company=True) - refund_tax_id = fields.Many2one(check_company=True) - - -class AccountJournal(models.Model): - _inherit = 'account.journal' - _check_company_auto = True - - account_control_ids = fields.Many2many(check_company=True) - default_credit_account_id = fields.Many2one( - check_company=True, domain="[('deprecated', '=', False), ('company_id', '=', company_id)]") - default_debit_account_id = fields.Many2one( - check_company=True, domain="[('deprecated', '=', False), ('company_id', '=', company_id)]") - profit_account_id = fields.Many2one(check_company=True) - loss_account_id = fields.Many2one(check_company=True) - bank_account_id = fields.Many2one( - check_company=True, - domain="[('partner_id','=', company_partner_id), '|', " - "('company_id', '=', False), ('company_id', '=', company_id)]") - journal_group_ids = fields.Many2many(check_company=True) - secure_sequence_id = fields.Many2one(check_company=True) - - -class AccountPayment(models.Model): - _inherit = "account.payment" - _check_company_auto = True - - partner_bank_account_id = fields.Many2one(check_company=True) - - -# No los agregamos porque no se usa mucho y hay que agregar stored de company id que seguro trae conflicto porque -# odoo lo agrega en v14, idem para 'account.fiscal.position.account' -# class AccountFiscalPositionTax(models.Model): -# _inherit = "account.fiscal.position.tax" -# _check_company_auto = True - - -class AccountReconcileModel(models.Model): - _inherit = "account.reconcile.model" - _check_company_auto = True - - # company_id = fields.Many2one(default=lambda self: self.env.company) - match_journal_ids = fields.Many2many( - domain="[('type', 'in', ('bank', 'cash')), ('company_id', '=', company_id)]", - check_company=True) - # company_id = fields.Many2one(default=lambda self: self.env.company) - account_id = fields.Many2one( - domain="[('deprecated', '=', False), ('company_id', '=', company_id)]", - check_company=True) - journal_id = fields.Many2one( - domain="[('type', '=', 'general'), ('company_id', '=', company_id)]", - check_company=True) - tax_ids = fields.Many2many(check_company=True) - analytic_account_id = fields.Many2one(check_company=True) - analytic_tag_ids = fields.Many2many(check_company=True) - second_account_id = fields.Many2one( - domain="[('deprecated', '=', False), ('company_id', '=', company_id)]", - check_company=True) - second_journal_id = fields.Many2one( - domain="[('type', '=', 'general'), ('company_id', '=', company_id)]", - check_company=True) - second_tax_ids = fields.Many2many(check_company=True) - second_analytic_account_id = fields.Many2one(check_company=True) - second_analytic_tag_ids = fields.Many2many(check_company=True) - - -class AccountMoveLine(models.Model): - _inherit = "account.move.line" - _check_company_auto = True - - move_id = fields.Many2one(check_company=True) - # company_id = fields.Many2one(default=lambda self: self.env.company) - account_id = fields.Many2one( - # da error al installar follow up - # domain="[('deprecated', '=', False), ('company_id', '=', company_id)]", - check_company=True, - ) - reconcile_model_id = fields.Many2one(check_company=True) - payment_id = fields.Many2one(check_company=True) - tax_ids = fields.Many2many(check_company=True) - tax_repartition_line_id = fields.Many2one(check_company=True) - analytic_account_id = fields.Many2one(check_company=True) - analytic_tag_ids = fields.Many2many(check_company=True) - - -class AccountAccount(models.Model): - _inherit = "account.account" - _check_company_auto = True - - tax_ids = fields.Many2many(check_company=True) - company_id = fields.Many2one(readonly=True) - - -class AccountMove(models.Model): - _inherit = "account.move" - _check_company_auto = True - - # en realidad dejamos que elija cualquier diario - # journal_id = fields.Many2one(check_company=True) - - partner_id = fields.Many2one(check_company=True) - fiscal_position_id = fields.Many2one(check_company=True) - invoice_payment_term_id = fields.Many2one(check_company=True) - invoice_partner_bank_id = fields.Many2one(check_company=True) - invoice_vendor_bill_id = fields.Many2one(check_company=True) diff --git a/account_multic_fix/models/account_move.py b/account_multic_fix/models/account_move.py index ccd45246..5d179259 100644 --- a/account_multic_fix/models/account_move.py +++ b/account_multic_fix/models/account_move.py @@ -15,7 +15,7 @@ def _onchange_journal(self): company_changed = self.company_id != self._origin.company_id if self.line_ids: company_changed = self.company_id != self.line_ids[0].account_id.company_id - elif self.invoice_partner_bank_id.company_id and self.invoice_partner_bank_id.company_id != self.company_id: + elif self.partner_bank_id.company_id and self.partner_bank_id.company_id != self.company_id: company_changed = True elif self.invoice_payment_term_id.company_id and self.invoice_payment_term_id.company_id != self.company_id: company_changed = True @@ -57,21 +57,22 @@ def _onchange_journal(self): if self.currency_id != self.company_id.currency_id: self._onchange_currency() # si bien onchange partner llama _recompute_dynamic_lines no manda el recompute_all_taxes, este refrezca - # lineas de impuestos + # lineas de impuestos+ self._recompute_dynamic_lines(recompute_all_taxes=True) return super()._onchange_journal() @api.onchange('partner_id') def _onchange_partner_id(self): - if not self._context.get('force_company'): - self = self.with_context(force_company=self.company_id.id) - res = super(AccountMove, self)._onchange_partner_id() + res = super()._onchange_partner_id() partner_banks = self.bank_partner_id.bank_ids.filtered(lambda x: x.company_id == self.company_id) - self.invoice_partner_bank_id = partner_banks and partner_banks[0] + self.partner_bank_id = partner_banks and partner_banks[0] return res - def _recompute_payment_terms_lines(self): - ''' Compute the dynamic payment term lines of the journal entry.''' - if not self._context.get('force_company'): - self = self.with_context(force_company=self.company_id.id) - return super(AccountMove, self)._recompute_payment_terms_lines() + @api.depends('company_id', 'invoice_filter_type_domain') + def _compute_suitable_journal_ids(self): + # we override this method to add filter by companies in the env instead of the company of the user + for m in self: + journal_type = m.invoice_filter_type_domain or 'general' + company_ids = self.env.companies.ids + domain = [('company_id', 'in', company_ids), ('type', '=', journal_type)] + m.suitable_journal_ids = self.env['account.journal'].search(domain) diff --git a/account_multic_fix/models/account_move_line.py b/account_multic_fix/models/account_move_line.py deleted file mode 100644 index ecc7d277..00000000 --- a/account_multic_fix/models/account_move_line.py +++ /dev/null @@ -1,14 +0,0 @@ -############################################################################## -# For copyright and license notices, see __manifest__.py file in module root -# directory -############################################################################## -from odoo import models - - -class AccountMoveLine(models.Model): - _inherit = "account.move.line" - - def _get_computed_account(self): - if not self._context.get('force_company'): - self = self.with_context(force_company=self.company_id.id or self.move_id.company_id.id) - return super(AccountMoveLine, self)._get_computed_account()