30 lines
984 B
Python
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
|