# Copyright 2020 Coop IT Easy SCRL fs # Houssine BAKKALI # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from dateutil.relativedelta import relativedelta from odoo import api, fields, models from odoo.exceptions import UserError class AccountFiscalYear(models.Model): _inherit = "account.fiscal.year" @api.model def get_ongoing_fiscal_year(self, company_id=None): today = fields.Date.today() fy = self.env["account.fiscal.year"].search([ ('date_from', '>=', today), ('date_to', '<=', today), ('company_id', '=', company_id) ]) if not fy: raise UserError("No fiscal year has been found for %d", today) if company_id: return fy.filtered(lambda r: r.company_id == company_id) return fy @api.model def get_next_fiscal_year(self, company_id=None): nextyear = fields.Date.today() + relativedelta(years=+1) fy = self.env["account.fiscal.year"].search([ ('date_from', '>=', nextyear), ('date_to', '<=', nextyear), ('company_id', '=', company_id) ]) if not fy: raise UserError("No next fiscal year has been found for %d", nextyear) if company_id: return fy.filtered(lambda r: r.company_id == company_id) return fy