summaryrefslogtreecommitdiff
path: root/addons/l10n_latam_invoice_document/models/account_journal.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/l10n_latam_invoice_document/models/account_journal.py')
-rw-r--r--addons/l10n_latam_invoice_document/models/account_journal.py38
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