Odoo18-Base/addons/l10n_ar_website_sale/models/sale_order.py
2025-03-10 11:12:23 +07:00

26 lines
1.2 KiB
Python

import pytz
from odoo import fields, models
class SaleOrder(models.Model):
_inherit = "sale.order"
def _create_invoices(self, grouped=False, final=False, date=None):
""" EXTENDS 'sale'
Necessary because if someone creates an invoice after 9 pm Argentina time, if the invoice is created
automatically, then it is created with the date of the next day (UTC date) instead of today.
This fix is necessary because it causes problems validating invoices in ARCA (ex AFIP), since when generating
the invoice with the date of the next day, no more invoices could be generated with today's date.
We took the same approach that was used in the POS module to set the date, in this case always forcing the
Argentina timezone """
invoices = super()._create_invoices(grouped=grouped, final=final, date=date)
for invoice in invoices:
if invoice.country_code == 'AR':
timezone = pytz.timezone('America/Buenos_Aires')
context_today_ar = fields.Datetime.now().astimezone(timezone).date()
invoice.invoice_date = context_today_ar
return invoices