diff options
Diffstat (limited to 'addons/l10n_latam_invoice_document/models/account_journal.py')
| -rw-r--r-- | addons/l10n_latam_invoice_document/models/account_journal.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/addons/l10n_latam_invoice_document/models/account_journal.py b/addons/l10n_latam_invoice_document/models/account_journal.py new file mode 100644 index 00000000..9ed4e43b --- /dev/null +++ b/addons/l10n_latam_invoice_document/models/account_journal.py @@ -0,0 +1,38 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models, api, _ +from odoo.exceptions import ValidationError + +class AccountJournal(models.Model): + + _inherit = "account.journal" + + l10n_latam_use_documents = fields.Boolean( + 'Use Documents?', help="If active: will be using for legal invoicing (invoices, debit/credit notes)." + " If not set means that will be used to register accounting entries not related to invoicing legal documents." + " For Example: Receipts, Tax Payments, Register journal entries") + l10n_latam_company_use_documents = fields.Boolean(compute='_compute_l10n_latam_company_use_documents') + + @api.depends('company_id') + def _compute_l10n_latam_company_use_documents(self): + for rec in self: + rec.l10n_latam_company_use_documents = rec.company_id._localization_use_documents() + + @api.onchange('company_id', 'type') + def _onchange_company(self): + self.l10n_latam_use_documents = self.type in ['sale', 'purchase'] and \ + self.l10n_latam_company_use_documents + + @api.constrains('l10n_latam_use_documents') + def check_use_document(self): + for rec in self: + if rec.env['account.move'].search([('journal_id', '=', rec.id), ('posted_before', '=', True)], limit=1): + raise ValidationError(_( + 'You can not modify the field "Use Documents?" if there are validated invoices in this journal!')) + + @api.onchange('type', 'l10n_latam_use_documents') + def _onchange_type(self): + res = super()._onchange_type() + if self.l10n_latam_use_documents: + self.refund_sequence = False + return res |
