Development #55876
lingo : créer le BasketItem représentant le paiement d'une facture quand elle est payée, pas quand l'application est notifiée
0%
Description
L'utilisateur veut savoir qu'il a payé; le fait qu'on n'arrive pas à notifier l'application métier concerne le régisseur.
Fichiers
Demandes liées
Révisions associées
lingo: add remote_item_id field to BasketItem (#55876)
lingo: make BasketItem creation idempotent for paid invoices (#55876)
Using get_or_create() based on the remote_item_id field inside a
transaction is idempotent, the self.items.add(...)
operation also (if
the item is already linked it does nothing).
The new behaviour garantee that even if we cannot notify the regie's
web-service, a BasketItem is created to show the user its payment has
been recorded.
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
- Fichier 0003-lingo-make-BasketItem-creation-idempotent-for-paid-i.patch 0003-lingo-make-BasketItem-creation-idempotent-for-paid-i.patch ajouté
- Fichier 0001-lingo-factorize-basket-item-creation-for-paid-remote.patch 0001-lingo-factorize-basket-item-creation-for-paid-remote.patch ajouté
- Fichier 0002-lingo-add-remote_item_id-field-to-BasketItem.patch 0002-lingo-add-remote_item_id-field-to-BasketItem.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
- on ajoute un nouveau champ unique, remote_item_id, à BasketItem pour faire le lien avec les remote_item
- à chaque tentative de notification du web-service des factures, on récupère le basket-item existant ou on le crée et on l'ajoute si nécessaire à la transaction traitée
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
- Lié à Bug #55793: Caluire Axel : crash lingo ajouté
Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 2 ans
créer le BasketItem représentant le paiement d'une facture quand elle est payée, pas quand l'application est notifiée
Ok, dans l'affichage en backoffice des transactions, on continue de ne pas afficher la facture liée à la transaction tant que l'application métier n'a pas été notifiée.
Et cependant, la facture est d'ors et déjà stockée en tant que BasketIem, donc nous n'aurons plus besoin d'aller la créer à la main en cas de défaillance du logiel métier. Surtout cela pouvait poser problème si la facture avait disparu du logiciel métier entre temps.
L'utilisateur veut savoir qu'il a payé; le fait qu'on n'arrive pas à notifier l'application métier concerne le régisseur.
Là je ne vois pas où ça intervient.
Pour moi la cellule "mes factures à payer", continuera à afficher ce que nous firni le logiciel métier.
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
Nicolas Roche a écrit :
En fait ce BasketItem sert à deux endroits :créer le BasketItem représentant le paiement d'une facture quand elle est payée, pas quand l'application est notifiée
Ok, dans l'affichage en backoffice des transactions, on continue de ne pas afficher la facture liée à la transaction tant que l'application métier n'a pas été notifiée.
Et cependant, la facture est d'ors et déjà stockée en tant que BasketIem, donc nous n'aurons plus besoin d'aller la créer à la main en cas de défaillance du logiel métier. Surtout cela pouvait poser problème si la facture avait disparu du logiciel métier entre temps.L'utilisateur veut savoir qu'il a payé; le fait qu'on n'arrive pas à notifier l'application métier concerne le régisseur.
Là je ne vois pas où ça intervient.
- en backoffice pour afficher le montant et le sujet des items payés pour une transaction
- en frontoffice dans la cellule LingoRecentTransactionsCell pour faire la même chose
Sans cela les gens voient un paiement mais ne savent pas (via l'interface) à quoi le rattacher.
Pour moi la cellule "mes factures à payer", continuera à afficher ce que nous firni le logiciel métier.
Oui, modulo le fait que désormais on croise Transaction et RemoteItem pour avoir le statut réel d'une facture et on exclut ensuite celles qui sont en fait déjà payées (même si le logiciel métier n'est pas au courant).
Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 18e4d09053917b5c7018d16d5cdec9d5d596a615 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Fri Jul 30 11:11:19 2021 +0200 lingo: make BasketItem creation idempotent for paid invoices (#55876) Using get_or_create() based on the remote_item_id field inside a transaction is idempotent, the @self.items.add(...)@ operation also (if the item is already linked it does nothing). The new behaviour garantee that even if we cannot notify the regie's web-service, a BasketItem is created to show the user its payment has been recorded. commit ef770b457917940ae633014e1e9e02409b71c8bf Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Fri Jul 30 11:04:31 2021 +0200 lingo: add remote_item_id field to BasketItem (#55876) commit 050df6b0a1abcc4df6289899b90e5a1505c00f4a Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Fri Jul 30 11:00:00 2021 +0200 lingo: factorize basket item creation for paid remote invoices (#55876)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
lingo: factorize basket item creation for paid remote invoices (#55876)