v14-facturacionelectronica/l10n_co_sequence_resolution/models/account_move.py

47 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
# Copyright 2021 Joan Marín <Github@JoanMarin>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from datetime import datetime
from odoo import fields, models
class AccountMove(models.Model):
_inherit = 'account.move'
def _get_warn_resolution(self):
warn_remaining = False
warn_inactive_resolution = False
if self.journal_id.sequence_id and self.journal_id.sequence_id.use_dian_control:
remaining_numbers = self.journal_id.sequence_id.remaining_numbers
remaining_days = self.journal_id.sequence_id.remaining_days
date_range = self.env['ir.sequence.date_range'].search([
('sequence_id', '=', self.journal_id.sequence_id.id),
('active_resolution', '=', True)
])
today = fields.Date.context_today(self)
if date_range:
date_range.ensure_one()
date_to = date_range.date_to
days = (date_to - today).days
numbers = date_range.number_to - date_range.number_next_actual
if numbers < remaining_numbers or days < remaining_days:
warn_remaining = True
else:
warn_inactive_resolution = True
self.warn_inactive_resolution = warn_inactive_resolution
self.warn_remaining = warn_remaining
warn_remaining = fields.Boolean(
compute="_get_warn_resolution",
string="Warn About Remainings?",
store=False)
warn_inactive_resolution = fields.Boolean(
compute="_get_warn_resolution",
string="Warn About Inactive Resolution?",
store=False)