fix(piaf): fix race condition découverte par les nouveaux tests
Parent
41a4e04ea7
révision
ef8fc2da8e
|
@ -26,6 +26,7 @@ from django.conf import settings
|
|||
from django.template.loader import render_to_string
|
||||
from django.core.mail import EmailMessage
|
||||
from django.urls import reverse
|
||||
from django.db.models import Q
|
||||
from constance import config
|
||||
|
||||
from piaf.base import resthys
|
||||
|
@ -103,7 +104,7 @@ class TipiPaiement(models.Model):
|
|||
|
||||
@classmethod
|
||||
def set_from_post(cls, data):
|
||||
paiement = cls.objects.get(
|
||||
paiement = cls.objects.filter(~Q(result='P')).get(
|
||||
numcli=data['numcli'],
|
||||
amount=data['montant']/100,
|
||||
refdet=data['refdet'],
|
||||
|
|
|
@ -25,6 +25,7 @@ from django.urls import reverse, reverse_lazy
|
|||
from django.utils.decorators import method_decorator
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from django.http import HttpResponse
|
||||
from django.db.models import Q
|
||||
from constance import config
|
||||
|
||||
from piaf.base import forms, utils, resthys, models, mixins
|
||||
|
@ -96,10 +97,11 @@ class PrepareInvoice(mixins.HackyMessagesMixin, generic.edit.FormView):
|
|||
if context['invoice']['solde'] > 0:
|
||||
# create or recycle paiement
|
||||
try:
|
||||
paiement = models.TipiPaiement.objects.get(
|
||||
paiement = models.TipiPaiement.objects.filter(
|
||||
~Q(result='P')
|
||||
).get(
|
||||
pk=self.request.session['paiement'],
|
||||
related_invoices=context['invoice']['numero'],
|
||||
result=None,
|
||||
)
|
||||
except Exception:
|
||||
paiement = models.TipiPaiement(
|
||||
|
|
Chargement…
Référencer dans un nouveau ticket