From b333e333d520c6146f1ecd5950478bc2fc6c57e3 Mon Sep 17 00:00:00 2001 From: houssine Date: Thu, 3 Dec 2020 12:20:31 +0100 Subject: [PATCH] [IMP] add account_fiscal_year dependency --- easy_my_coop_loan_account/__manifest__.py | 1 + easy_my_coop_loan_account/models/__init__.py | 1 + .../models/account_fiscal_year.py | 46 +++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 easy_my_coop_loan_account/models/account_fiscal_year.py diff --git a/easy_my_coop_loan_account/__manifest__.py b/easy_my_coop_loan_account/__manifest__.py index fa78aa8..84e72b6 100644 --- a/easy_my_coop_loan_account/__manifest__.py +++ b/easy_my_coop_loan_account/__manifest__.py @@ -7,6 +7,7 @@ "version": "12.0.1.0.0", "depends": [ "account", + "account_fiscal_year", "easy_my_coop_loan", ], "author": "Coop IT Easy SCRLfs", diff --git a/easy_my_coop_loan_account/models/__init__.py b/easy_my_coop_loan_account/models/__init__.py index fa9a212..8a8d496 100644 --- a/easy_my_coop_loan_account/models/__init__.py +++ b/easy_my_coop_loan_account/models/__init__.py @@ -1,3 +1,4 @@ from . import company from . import loan_issue_line from . import account_move +from . import account_fiscal_year diff --git a/easy_my_coop_loan_account/models/account_fiscal_year.py b/easy_my_coop_loan_account/models/account_fiscal_year.py new file mode 100644 index 0000000..8f13d53 --- /dev/null +++ b/easy_my_coop_loan_account/models/account_fiscal_year.py @@ -0,0 +1,46 @@ +# 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