2
0
account-financial-tools/account_move_fiscal_year/models/account_move.py
2023-08-04 08:52:31 +02:00

45 lines
1.4 KiB
Python

# 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