# Copyright 2017 ACSONE SA/NV # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import api, fields, models from odoo.osv import expression class AccountMove(models.Model): _inherit = 'account.move' date_range_fy_id = fields.Many2one( comodel_name='account.fiscal.year', string="Fiscal year", compute='_compute_date_range_fy', search='_search_date_range_fy') @api.multi @api.depends('date', 'company_id') def _compute_date_range_fy(self): for rec in self: date = fields.Date.to_date(rec.date) company = rec.company_id rec.date_range_fy_id =\ company and company.find_daterange_fy(date) or False @api.model def _search_date_range_fy(self, operator, value): if operator in ('=', '!=', 'in', 'not in'): date_range_domain = [('id', operator, value)] else: date_range_domain = [('name', operator, value)] date_ranges = self.env['account.fiscal.year'].search(date_range_domain) domain = [('id', '=', -1)] for date_range in date_ranges: domain = expression.OR([domain, [ '&', ('date', '>=', date_range.date_from), ('date', '<=', date_range.date_to), '|', ('company_id', '=', False), ('company_id', '=', date_range.company_id.id), ]]) return domain