Project

General

Profile

Development #41323

Stocker et utiliser transaction_date dans les objects Transaction

Added by Benjamin Dauvergne about 2 months ago. Updated 27 days ago.

Status:
Solution déployée
Priority:
Normal
Target version:
-
Start date:
03 Apr 2020
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

Copié de #41317 :

  • ajouter un attribut transaction_date sur Transaction (peut être None)
  • le renseigner avec transaction_date quand la réponse eopayment en contient une
  • envoyer « transaction_date = Transaction.transaction_date or Transaction.end_date » lors du pay_invoice

0002-lingo-store-received-transaction_date-41323.patch View (1.51 KB) Benjamin Dauvergne, 04 Apr 2020 12:04 PM

0004-lingo-use-transaction_date-instead-of-end_date-when-.patch View (1.06 KB) Benjamin Dauvergne, 04 Apr 2020 12:04 PM

0005-REMOVE-ME-use-eopayment-from-branch-REMOVE-ME.patch View (639 Bytes) Benjamin Dauvergne, 04 Apr 2020 12:04 PM

0003-lingo-force-transaction_date-to-UTC-in-pay_invoice-4.patch View (1.63 KB) Benjamin Dauvergne, 04 Apr 2020 12:04 PM

0001-lingo-add-Transaction.transaction_date-41323.patch View (1.81 KB) Benjamin Dauvergne, 04 Apr 2020 12:04 PM

0006-REMOVE-ME-use-eopayment-from-branch-REMOVE-ME.patch View (639 Bytes) Benjamin Dauvergne, 07 Apr 2020 01:48 PM

0002-lingo-store-received-transaction_date-41323.patch View (1.51 KB) Benjamin Dauvergne, 07 Apr 2020 01:48 PM

0001-lingo-add-Transaction.bank_transaction_date-41323.patch View (1.91 KB) Benjamin Dauvergne, 07 Apr 2020 01:48 PM

0003-lingo-force-transaction_date-to-UTC-in-pay_invoice-4.patch View (1.63 KB) Benjamin Dauvergne, 07 Apr 2020 01:48 PM

0005-lingo-send-bank_transaction_date-when-notifying-trig.patch View (1.16 KB) Benjamin Dauvergne, 07 Apr 2020 01:48 PM

0004-lingo-use-bank_transaction_date-instead-of-end_date-.patch View (1.07 KB) Benjamin Dauvergne, 07 Apr 2020 01:48 PM

0002-lingo-store-received-transaction_date-41323.patch View (1.5 KB) Benjamin Dauvergne, 04 May 2020 03:26 PM

0001-lingo-add-Transaction.bank_transaction_date-41323.patch View (1.9 KB) Benjamin Dauvergne, 04 May 2020 03:26 PM

0003-lingo-force-transaction_date-to-UTC-in-pay_invoice-4.patch View (2.05 KB) Benjamin Dauvergne, 04 May 2020 03:26 PM

0005-lingo-send-bank_transaction_date-when-notifying-trig.patch View (1.15 KB) Benjamin Dauvergne, 04 May 2020 03:26 PM

0004-lingo-use-bank_transaction_date-instead-of-end_date-.patch View (1.06 KB) Benjamin Dauvergne, 04 May 2020 03:26 PM


Related issues

Related to Lingo - Development #42565: transaction_date n'est pas sauvegardé Solution déployée 06 May 2020
Blocks Publik - Development #41317: système de paiment : gestion de la date de la transaction Résolu (à déployer) 03 Apr 2020

Associated revisions

Revision 1482ec59 (diff)
Added by Benjamin Dauvergne 28 days ago

lingo: add Transaction.bank_transaction_date (#41323)

Revision 4afe8c93 (diff)
Added by Benjamin Dauvergne 28 days ago

lingo: store received transaction_date (#41323)

Revision 83a53952 (diff)
Added by Benjamin Dauvergne 28 days ago

lingo: force transaction_date to UTC in pay_invoice() (#41323)

Revision eebae4cb (diff)
Added by Benjamin Dauvergne 28 days ago

lingo: use bank_transaction_date instead of end_date when possible (#41323)

Revision 24dcabc6 (diff)
Added by Benjamin Dauvergne 28 days ago

lingo: send bank_transaction_date when notifying triggers (#41323)

History

#1 Updated by Benjamin Dauvergne about 2 months ago

  • Blocks Development #41317: système de paiment : gestion de la date de la transaction added

#2 Updated by Benjamin Dauvergne about 2 months ago

  • Subject changed from Stocker transaction_date dans les objects Transaction to Stocker et utiliser transaction_date dans les objects Transaction

#3 Updated by Benjamin Dauvergne about 2 months ago

  • Description updated (diff)

#4 Updated by Benjamin Dauvergne about 2 months ago

  • Assignee set to Benjamin Dauvergne

#5 Updated by Benjamin Dauvergne about 2 months ago

Question: dans quel timezone le champ transaction_date balancé à un RemoteItem est-il ? Ça ne semble pas déterminé, à la lecture du code ça serait toujours UTC vu que DateTimeField retourne ça par défaut (mais j'aime pas l'implicite).

Je dis ça parce que le souci sous-jacent c'est la date (et pas l'heure) d'imputation dans Axel et pour ça il faudra que dans toulouse-axel on envoie je suppose date et heure dans le bon fuseau.

PS: en fait le datetime ne vient même pas de DateTimeField puisqu'il vient juste d'être créé lors de la réception du paiement, via timezone.now() qui est toujours dans la zone UTC.
Validé sur https://passerelle-moncompte.cutm-ea-dev-publik.nfrance.com/manage/toulouse-axel/test/logs/?q=transaction_date :

     {"transaction_id": "20200330162510_927460", "transaction_date": "2020-03-30T16:27:19"} 

La transaction 927460 a été notifiée vers 18:27 pas 16:27.

#6 Updated by Thomas Noël about 2 months ago

UTC d'un bout à l'autre, je confirme (réponse de SystemPay, API envoi de lingo vers passerelle, API envoi de passerelle vers Axel)

#7 Updated by Benjamin Dauvergne about 2 months ago

Voilà, le 0005 est temporaire, c'est pour pouvoir tester avec la branche eopayment.

#8 Updated by Benjamin Dauvergne about 2 months ago

Quelques changements :
  • renommage de Transaction.transaction_date en bank_transaction_date (c'est plus cohérent avec bank_transaction_id)
  • correction au changement de fuseau horaire (c'est tz.localize() sur un dt naïf, mais c'est dt.astimezone(tz) sur un dt aware :/)
  • envoie de transaction_date aux triggers w.c.s., y a pas de raison qu'ils en soient privés (et ça servira pour corrige la date de paiement de DPark à Toulouse).

#10 Updated by Benjamin Dauvergne about 2 months ago

Patch 0006 retiré, eopayment sur pypi correspond maintenant.

#11 Updated by Thomas Noël about 1 month ago

0001: ok

0002: typo sur "logger.erorr"

0003: le truc que j'arrive jamais à savoir c'est si pytz fait partie de la stdlib ou pas. Mais sinon, à voir si tu veux conserver le "assert", on dit souvent que c'est pas bien dans du vrai code (autre que les tests), parce que les assert ne sont pas gérées avec python -O. Bref, si tu peux mettre un if, tout le monde il sera heureux.

0004 et 0005: ok

#12 Updated by Benjamin Dauvergne 28 days ago

Thomas Noël a écrit :

0003: le truc que j'arrive jamais à savoir c'est si pytz fait partie de la stdlib ou pas. Mais sinon, à voir si tu veux conserver le "assert", on dit souvent que c'est pas bien dans du vrai code (autre que les tests), parce que les assert ne sont pas gérées avec python -O. Bref, si tu peux mettre un if, tout le monde il sera heureux.

pytz est une dépendance implicite de django, django.utils.timezone.utc vaut pytz.utc, je vais mettre django.utils.timezone.utc pour qu'on se pose moins de questions.

0004 et 0005: ok

#14 Updated by Thomas Noël 28 days ago

  • Status changed from Solution proposée to Solution validée

#15 Updated by Benjamin Dauvergne 28 days ago

  • Status changed from Solution validée to Résolu (à déployer)
commit 24dcabc6532a58d9eb9dd66df4733df6761bb63d
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Tue Apr 7 12:21:15 2020 +0200

    lingo: send bank_transaction_date when notifying triggers (#41323)

commit eebae4cbbde107c024ca9c1d8d512ab3ced0de07
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Apr 3 20:09:01 2020 +0200

    lingo: use bank_transaction_date instead of end_date when possible (#41323)

commit 83a53952a4459b4510e527809dc5c445a3ff3e70
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Apr 3 20:08:44 2020 +0200

    lingo: force transaction_date to UTC in pay_invoice() (#41323)

commit 4afe8c930c50664b77f5cf2a65e8ba6ef65de57e
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Apr 3 19:14:21 2020 +0200

    lingo: store received transaction_date (#41323)

commit 1482ec599f623c748a68ca34d7de83b53c911cea
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Apr 3 19:09:57 2020 +0200

    lingo: add Transaction.bank_transaction_date (#41323)

#16 Updated by Frédéric Péters 27 days ago

  • Status changed from Résolu (à déployer) to Solution déployée

#17 Updated by Valentin Deniaud 26 days ago

Also available in: Atom PDF