28 lines
1.1 KiB
Python
28 lines
1.1 KiB
Python
from odoo import models
|
|
|
|
|
|
class ResCurrency(models.Model):
|
|
_inherit = 'res.currency'
|
|
|
|
def _get_currency_table_fiscal_year_bounds(self, main_company):
|
|
# EXTENDS account
|
|
default_bounds = super()._get_currency_table_fiscal_year_bounds(main_company)
|
|
manual_fiscal_years = self.env['account.fiscal.year'].search(self.env['account.fiscal.year']._check_company_domain(main_company), order='date_from ASC')
|
|
|
|
manual_bounds = manual_fiscal_years.mapped(lambda x: (x.date_from, x.date_to))
|
|
rslt = []
|
|
for default_from, default_to in default_bounds:
|
|
while (
|
|
manual_bounds
|
|
and (
|
|
not default_to
|
|
or (default_from and default_from <= manual_bounds[0][0] and default_to >= manual_bounds[0][0])
|
|
or default_to >= manual_bounds[0][1]
|
|
)):
|
|
rslt.append(manual_bounds.pop(0))
|
|
|
|
if not rslt or rslt[-1][1] < default_from:
|
|
rslt.append((default_from, default_to))
|
|
|
|
return rslt
|