# 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_fm_id = fields.Many2one( comodel_name='date.range', string="Fiscal month", compute='_compute_date_range_fm', search='_search_date_range_fm', ) @api.multi @api.depends('date', 'company_id') def _compute_date_range_fm(self): for rec in self: date = rec.date company = rec.company_id rec.date_range_fm_id = company.find_daterange_fm(date) @api.model def _search_date_range_fm(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['date.range'].search(date_range_domain) domain = [] for date_range in date_ranges: domain = expression.OR([domain, [ '&', '&', ('date', '>=', date_range.date_start), ('date', '<=', date_range.date_end), '|', ('company_id', '=', False), ('company_id', '=', date_range.company_id.id), ]]) return domain