From 2157540768112107a3c68ed28ce429572e28fce5 Mon Sep 17 00:00:00 2001 From: celm1990 Date: Tue, 30 Jan 2018 15:49:22 -0500 Subject: [PATCH] [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 7272abe0e3c0 that was adding the timezone in the context Closes #22651 --- addons/point_of_sale/models/pos_order.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/point_of_sale/models/pos_order.py b/addons/point_of_sale/models/pos_order.py index eba28e216d6..c7bc8266cbb 100644 --- a/addons/point_of_sale/models/pos_order.py +++ b/addons/point_of_sale/models/pos_order.py @@ -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, }