[FIX] point_of_sale: set the payment date based on TZ
If a user is in an early timezone (e.g. UTC-5), an order made on the
...-01 19:15:00 or, converted to UTC, as ...-02 00:15:00
fields.Date.today() returns the days ...-02 instead of ...-01
Use context_today to convert in the right timezone.
This slightly change the return format of _payment_fields to return a date
instead of a datetime.
Followup of 7272abe0e3 that was adding the timezone in the context
Closes #22651
This commit is contained in:
@@ -46,9 +46,11 @@ class PosOrder(models.Model):
|
||||
}
|
||||
|
||||
def _payment_fields(self, ui_paymentline):
|
||||
payment_date = ui_paymentline['name']
|
||||
payment_date = fields.Date.context_today(self, fields.Datetime.from_string(payment_date))
|
||||
return {
|
||||
'amount': ui_paymentline['amount'] or 0.0,
|
||||
'payment_date': ui_paymentline['name'],
|
||||
'payment_date': payment_date,
|
||||
'statement_id': ui_paymentline['statement_id'],
|
||||
'payment_name': ui_paymentline.get('note', False),
|
||||
'journal': ui_paymentline['journal_id'],
|
||||
@@ -811,7 +813,7 @@ class PosOrder(models.Model):
|
||||
"""Create a new payment for the order"""
|
||||
args = {
|
||||
'amount': data['amount'],
|
||||
'date': data.get('payment_date', fields.Date.today()),
|
||||
'date': data.get('payment_date', fields.Date.context_today(self)),
|
||||
'name': self.name + ': ' + (data.get('payment_name', '') or ''),
|
||||
'partner_id': self.env["res.partner"]._find_accounting_partner(self.partner_id).id or False,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user