[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:
celm1990
2018-04-12 01:17:47 +02:00
committed by Martin Trigaux
parent fe7b9ab709
commit 2157540768
+4 -2
View File
@@ -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,
}