You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

46 lines
1.4 KiB

# Copyright 2020 Coop IT Easy SCRL fs
# Houssine BAKKALI <houssine@coopiteasy.be>
# 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),
])
if not fy:
raise UserError("No fiscal year has been found for %s" %
str(today))
if company_id:
return fy.filtered(lambda r: r.company_id == company_id)
return fy
@api.model
def get_next_fiscal_year(self, date=None, company_id=None):
if not date:
date = fields.Date.today()
nextyear = date + relativedelta(years=+1)
fy = self.env["account.fiscal.year"].search([
('date_from', '<=', nextyear),
('date_to', '>=', nextyear),
])
if not fy:
raise UserError("No next fiscal year has been found for %s" %
str(nextyear))
if company_id:
return fy.filtered(lambda r: r.company_id == company_id)
return fy