From c7c2b3882911136f8695c655d136342ea008b65f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Thu, 19 Sep 2019 13:29:46 +0200 Subject: [PATCH] use "GetDossiersSelonDerniereEtape" API to get details (as notifications are not sent/received) --- grandlyon_cartads_cs/models.py | 35 +++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/grandlyon_cartads_cs/models.py b/grandlyon_cartads_cs/models.py index a6280a1..a25971f 100644 --- a/grandlyon_cartads_cs/models.py +++ b/grandlyon_cartads_cs/models.py @@ -17,13 +17,14 @@ # along with this program. If not, see . import base64 +import datetime import os from django.core.cache import cache from django.db import models from django.utils.translation import ugettext_lazy as _ -from passerelle.apps.cartads_cs.models import AbstractCartaDSCS +from passerelle.apps.cartads_cs.models import AbstractCartaDSCS, CartaDSDossier from passerelle.utils import SOAPTransport class Transport(SOAPTransport): @@ -96,3 +97,35 @@ class GLCartaDSCS(AbstractCartaDSCS): if resp.content: # error messages are put in content, valid responses are empty. raise Exception(resp.content) + + def hourly(self): + client = self.soap_client(wsdl_url=self.get_wsdl_url('ServiceRechercheDossier')) + client2 = self.soap_client(wsdl_url=self.get_wsdl_url('ServiceDossier')) + + resp = client.service.GetDossiersSelonDerniereEtape( + self.client_name, + datetime.datetime.now() - datetime.timedelta(days=1), + datetime.datetime.now()), + for cartads_dossier in resp[0]: + resp = client2.service.GetInfosDossier(self.get_token(), cartads_dossier['IdDossier']) + id_dossier_externe = resp['IdDossierExterne'] + if not id_dossier_externe: + continue + if not id_dossier_externe.startswith('publik-'): + continue + publik, dossier_id, tracking_code = id_dossier_externe.split('-', 2) + try: + dossier = CartaDSDossier.objects.get( + zip_ready=True, + zip_sent=True, + zip_ack_response='True', + cartads_id_dossier__isnull=True, + tracking_code=tracking_code, + id=dossier_id) + except CartaDSDossier.DoesNotExist: + continue + dossier.cartads_id_dossier = resp['IdDossier'] + dossier.cartads_numero_dossier = resp['NomDossier'] + dossier.save() + + super(GLCartaDSCS, self).hourly()