Projet

Général

Profil

Development #50067

impossible d'imposer le paiement unitaire en cas de régie distance

Ajouté par Thomas Noël il y a environ 3 ans. Mis à jour il y a environ 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
12 janvier 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Dans #46503 on a ajouté une erreur dans le clean du formulaire pour dire que Regie.can_pay_only_one_basket_item est incompatible avec la présence de Regie.webservice_url (régie distante).

Je ne sais pas trop pourquoi on a fait ça, mais en l’occurrence ça me bloque pour permettre l'envoi de la référence d'une facture venant d'une régie distante (et c'est un must have pour beaucoup de collectivités).


Fichiers

Révisions associées

Révision 71aa546f (diff)
Ajouté par Thomas Noël il y a environ 3 ans

lingo: support can_pay_only_one on remote regie (#50067)

Historique

#1

Mis à jour par Thomas Noël il y a environ 3 ans

Ce patch retire la limite... je ne sais toujours pas trop pourquoi on l'avait mise... Si la personne qui relis en sait plus que moi, bienvenue.

#2

Mis à jour par Benjamin Dauvergne il y a environ 3 ans

Je relis.

#3

Mis à jour par Valentin Deniaud il y a environ 3 ans

Fun fact, dans handle_payment, ce patch met des if en virant les assert qui avaient eux-mêmes virés les if, cf le 0002 de #47477#note-6. Pas de problème, par contre il ne faut pas lever PaymentException ici, ça fera une 500.

#4

Mis à jour par Thomas Noël il y a environ 3 ans

Ah oui bien vu pour les raise, j'ai remplacé par des affichages à l'usager ; c'est mieux que des assert.

#5

Mis à jour par Thomas Noël il y a environ 3 ans

Aussi, Benjamin disait sur le salon :

pour moi il y a un souci parce que c'est pas le même chemin de paiement dans les deux cas (sur les items et les remote_items), on voulait d'abord factoriser ça avant de le permettre
mais peut-être qu'effectivement ça marche maintenant

Et pour m'en convaincre j'ai testé un paiement d'un remote_item avec ce patch et ça tourne bien jusqu'au bout.

#6

Mis à jour par Benjamin Dauvergne il y a environ 3 ans

Je n'ai pas testé comme toi mais un truc m'intrigue, le code suivant dépend de la présence d'un paramètre request_data sur l'item :

            # PayFiP/TIPI specific
            if regie.payment_backend.service in ('payfip_ws', 'tipi'):
                if item.request_data and item.request_data.get('exer') and item.request_data.get('refdet'):
                    kwargs['exer'] = item.request_data['exer']
                    kwargs['refdet'] = item.request_data['refdet']

Je pense que comme tu as testé avec payzen, tu n'es pas passé par là. Je dirai qu'il faut au minimum mettre un hasattr(item, 'request_data') pour s'assurer qu'on puisse toujours payer des factures avec payfip/tipi. Plus simple même ça peut être déplacé deux lignes plus loin où il y a déjà un hasattr(item, 'request_data'). Je pense qu'avec cett modification on est tout terrain.

#7

Mis à jour par Lauréline Guérin il y a environ 3 ans

  • Assigné à mis à Thomas Noël
#8

Mis à jour par Thomas Noël il y a environ 3 ans

Benjamin Dauvergne a écrit :

Je n'ai pas testé comme toi mais un truc m'intrigue, le code suivant dépend de la présence d'un paramètre request_data sur l'item (...)

Yep, voilà, j'ai regroupé sous un getattr.

#9

Mis à jour par Benjamin Dauvergne il y a environ 3 ans

  • Statut changé de Solution proposée à Solution validée

Goldorak go.

#10

Mis à jour par Thomas Noël il y a environ 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 71aa546fec87781e3b84e35fe1032fe455a89eb5
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Tue Jan 12 12:23:50 2021 +0100

    lingo: support can_pay_only_one on remote regie (#50067)

#11

Mis à jour par Frédéric Péters il y a environ 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF