From 19af4a35afa8437c8973c5a6621d68b00288a13c Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Fri, 3 Apr 2020 20:08:44 +0200 Subject: [PATCH 3/6] lingo: force transaction_date to UTC in pay_invoice() (#41323) --- combo/apps/lingo/models.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/combo/apps/lingo/models.py b/combo/apps/lingo/models.py index fc753dc6..ff930e39 100644 --- a/combo/apps/lingo/models.py +++ b/combo/apps/lingo/models.py @@ -17,11 +17,12 @@ # along with this program. If not, see . import datetime +from decimal import Decimal import json import logging import re -from decimal import Decimal +import pytz from dateutil import parser import eopayment @@ -199,9 +200,14 @@ class Regie(models.Model): raise PermissionDenied def pay_invoice(self, invoice_id, transaction_id, transaction_date): + assert timezone.is_aware(transaction_date), 'transaction_date must be an aware date' + url = self.webservice_url + '/invoice/%s/pay/' % invoice_id - data = {'transaction_id': transaction_id, - 'transaction_date': transaction_date.strftime('%Y-%m-%dT%H:%M:%S')} + transaction_date = transaction_date.astimezone(pytz.utc) + data = { + 'transaction_id': transaction_id, + 'transaction_date': transaction_date.strftime('%Y-%m-%dT%H:%M:%S') + } headers = {'content-type': 'application/json'} return requests.post(url, remote_service='auto', data=json.dumps(data), headers=headers).json() -- 2.24.0