30 lines
984 B
Python

from odoo import models, api, fields
from odoo.tools import date_utils
class ResCompany(models.Model):
_inherit = "res.company"
@api.model
def get_fiscal_dates(self, payload):
companies = self.env["res.company"].browse(
data["company_id"] or self.env.company.id for data in payload
)
existing_companies = companies.exists()
# prefetch both fields
existing_companies.fetch(["fiscalyear_last_day", "fiscalyear_last_month"])
results = []
for data, company in zip(payload, companies):
if company not in existing_companies:
results.append(False)
continue
start, end = date_utils.get_fiscal_year(
fields.Date.to_date(data["date"]),
day=company.fiscalyear_last_day,
month=int(company.fiscalyear_last_month),
)
results.append({"start": start, "end": end})
return results