From 24e53f6a1a03741fadafd1f8f4f195f47fcf6157 Mon Sep 17 00:00:00 2001
From: Emmanuel Cazenave <ecazenave@entrouvert.com>
Date: Thu, 1 Aug 2019 16:52:28 +0200
Subject: [PATCH] atal: get status fom eAtal and Atal (#35181)

---
 passerelle/apps/atal/models.py               |   52 +
 tests/data/atal/DemandeService.wsdl          | 1110 ++++++++++++++++++
 tests/data/atal/details_demande_response.xml |    2 +
 tests/data/atal/etat_travaux_response.xml    |    1 +
 tests/test_atal.py                           |   89 ++
 5 files changed, 1254 insertions(+)
 create mode 100644 tests/data/atal/DemandeService.wsdl
 create mode 100644 tests/data/atal/details_demande_response.xml
 create mode 100644 tests/data/atal/etat_travaux_response.xml

diff --git a/passerelle/apps/atal/models.py b/passerelle/apps/atal/models.py
index 0d51eeb9..15d74478 100644
--- a/passerelle/apps/atal/models.py
+++ b/passerelle/apps/atal/models.py
@@ -157,6 +157,21 @@ class ATALConnector(BaseResource):
         )
         return process_response(demande_number)
 
+    @endpoint(
+        methods=['get'], perm='can_access', example_pattern='{demande_number}/',
+        pattern='^(?P<demande_number>\w+)/$', name='retrieve-details-demande',
+        parameters={
+            'demande_number': {
+                'description': _('Demande number'), 'example_value': 'DIT18050001'
+            }
+        }
+    )
+    def retrieve_details_demande(self, request, demande_number):
+        soap_res = self._soap_call(
+                wsdl='DemandeService', method='retrieveDetailsDemande',
+                demandeNumberParam=demande_number)
+        return {'data': helpers.serialize_object(soap_res)}
+
     @endpoint(
         methods=['get'], perm='can_access', example_pattern='{demande_number}/',
         pattern='^(?P<demande_number>\w+)/$', name='retrieve-etat-travaux',
@@ -172,6 +187,43 @@ class ATALConnector(BaseResource):
             numero=demande_number)
         return {'data': helpers.serialize_object(soap_res)}
 
+    @endpoint(
+        methods=['get'], perm='can_access', example_pattern='{demande_number}/',
+        pattern='^(?P<demande_number>\w+)/$', name='status',
+        parameters={
+            'demande_number': {
+                'description': _('Demande number'), 'example_value': 'DIT18050001'
+            }
+        }
+    )
+    def status(self, request, demande_number):
+        soap_res = self._soap_call(
+            wsdl='DemandeService', method='retrieveDetailsDemande',
+            demandeNumberParam=demande_number)
+        status = helpers.serialize_object(soap_res).get('etatDemande', {}).get('description')
+        if not status:
+            raise APIError('Could not get a status')
+
+        if status != 'PRISE EN COMPTE':
+            return {
+                'data': {
+                    'status': status
+                }
+            }
+
+        soap_res = self._soap_call(
+            wsdl='DemandeService', method='retrieveEtatTravaux',
+            numero=demande_number
+        )
+        status = helpers.serialize_object(soap_res).get('libelle')
+        if not status:
+            raise APIError('Could not get a status')
+        return {
+                'data': {
+                    'status': status
+                }
+            }
+
     @endpoint(
         perm='can_access',
         post={
diff --git a/tests/data/atal/DemandeService.wsdl b/tests/data/atal/DemandeService.wsdl
new file mode 100644
index 00000000..6fe22e04
--- /dev/null
+++ b/tests/data/atal/DemandeService.wsdl
@@ -0,0 +1,1110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions targetNamespace="http://localhost/awa/services/DemandeService" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns9="http://tiers.atal.dto.commun.awa.aductis.com" xmlns:ns5="http://ldap.dto.commun.awa.aductis.com" xmlns:ns6="http://service.dto.commun.awa.aductis.com" xmlns:ns7="http://role.dto.commun.awa.aductis.com" xmlns:ns8="http://adresse.dto.commun.awa.aductis.com" xmlns:ns2="http://demande.services.awa.aductis.com" xmlns:ns1="http://services.awa.aductis.com" xmlns:ns4="http://etat.dto.commun.awa.aductis.com" xmlns:ns3="http://utilisateur.dto.commun.awa.aductis.com" xmlns:tns="http://localhost/awa/services/DemandeService" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
+  <wsdl:types>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://localhost/awa/services/DemandeService">
+<xsd:element name="insertReponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="reponseTemplateId" type="xsd:int"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="userAtal" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="numeroIntervention" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertReponseResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="resultMessageId" type="xsd:int"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandeContactComplet">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactNom" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactPrenom" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactCivilite" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactTelephone" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactCourriel" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactAdresse" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeObjet" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeLieu" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeDescription" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="remoteAddress" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="codeEquipement" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="codeServiceDemandeur" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="dateSouhaitee" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="dateButoir" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="commentaireDemande" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="typeDemande" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandeContactCompletResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="numeroDemande" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertReponseClotureWithComments">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="numeroDemande" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="reponseTemplateId" type="xsd:int"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="userAtal" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="commentaires" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertReponseClotureWithCommentsResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="resultMessageId" type="xsd:int"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandePretSalle">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactNom" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactTelephone" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactCourriel" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactAdresse" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeObjet" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeLieu" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeDescription" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="remoteAddress" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="codeEquipement" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="typeDeSalle" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="nbPersonnesPrevues" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="codeServiceDemandeur" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="dateDebut" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="dateFin" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandePretSalleResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="numeroDemande" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandeXYWithDLComment">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactNom" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactTelephone" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactCourriel" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactAdresse" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeObjet" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeLieu" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeDescription" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="remoteAddress" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="codeEquipement" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="codeServiceDemandeur" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="dateSouhaitee" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="dateButoir" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="commentaireDemande" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="coordX" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="coordY" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandeXYWithDLCommentResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="numeroDemande" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertReponseCloture">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="numeroDemande" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="reponseTemplateId" type="xsd:int"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="userAtal" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertReponseClotureResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="resultMessageId" type="xsd:int"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertReponseClotureByTypeAndNatureWithComments">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="numeroDemande" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="reponseTemplateId" type="xsd:int"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="userAtal" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="commentaires" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="typeRequest" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="natureRequest" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertReponseClotureByTypeAndNatureWithCommentsResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="resultMessageId" type="xsd:int"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandeWithDLComment">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactNom" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactTelephone" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactCourriel" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactAdresse" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeObjet" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeLieu" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeDescription" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="remoteAddress" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="codeEquipement" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="codeServiceDemandeur" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="dateSouhaitee" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="dateButoir" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="commentaireDemande" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandeWithDLCommentResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="numeroDemande" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandeXYByType">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactNom" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactTelephone" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactCourriel" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactAdresse" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeObjet" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeLieu" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeDescription" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="remoteAddress" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="codeEquipement" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="codeServiceDemandeur" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="dateSouhaitee" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="typeDemande" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="coordX" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="coordY" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandeXYByTypeResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="numeroDemande" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="updateDemandeMotsCles">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="numeroDemande" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="motsCles" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="updateDemandeMotsClesResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="resultat" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertReponseClotureByTypeAndNature">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="numeroDemande" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="reponseTemplateId" type="xsd:int"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="userAtal" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="typeRequest" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="natureRequest" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertReponseClotureByTypeAndNatureResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="resultMessageId" type="xsd:int"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="isActionValid">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="in0" type="xsd:int"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="in1" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="in2" type="xsd:int"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="isActionValidResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="out" type="xsd:int"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="getDemandesParDestinataire">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="loginDestinataire" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:complexType name="ArrayOfString">
+<xsd:sequence>
+<xsd:element maxOccurs="unbounded" minOccurs="0" name="string" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+<xsd:element name="getDemandesParDestinataireResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="listeDemandesParDestinataire" nillable="true" type="ns2:ArrayOfDemande"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandeAvecAuteurJSON">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="jsonObject" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandeAvecAuteurJSONResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="numeroDemande" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="retrieveEtatTravaux">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="numero" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="retrieveEtatTravauxResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="etatTravaux" nillable="true" type="ns2:EtatTravaux"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="retrieveDemandes">
+<xsd:complexType/>
+</xsd:element>
+<xsd:element name="retrieveDemandesResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="DemandesRetrieved" nillable="true" type="ns2:ArrayOfDemande"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemande">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="in1" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="in2" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="in3" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="in4" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="in5" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="in6" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="in7" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="in8" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="in9" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="in10" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandeResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandeByType">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactNom" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactTelephone" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactCourriel" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="contactAdresse" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeObjet" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeLieu" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeDescription" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="remoteAddress" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="codeEquipement" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="codeServiceDemandeur" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="dateSouhaitee" nillable="true" type="xsd:string"/>
+<xsd:element maxOccurs="1" minOccurs="1" name="typeDemande" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="insertDemandeByTypeResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="numeroDemande" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="retrieveDetailsDemande">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="demandeNumberParam" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="retrieveDetailsDemandeResponse">
+<xsd:complexType>
+<xsd:sequence>
+<xsd:element maxOccurs="1" minOccurs="1" name="detailsDemandeRetrieved" nillable="true" type="ns2:Demande"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+</xsd:schema>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://services.awa.aductis.com">
+<xsd:complexType name="AwaWSExceptionDetail">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="code" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="detail" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+<xsd:element name="AwaWSException" type="ns1:AwaWSExceptionDetail"/>
+</xsd:schema>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://demande.services.awa.aductis.com">
+<xsd:complexType name="ArrayOfDemande">
+<xsd:sequence>
+<xsd:element maxOccurs="unbounded" minOccurs="0" name="Demande" nillable="true" type="ns2:Demande"/>
+</xsd:sequence>
+</xsd:complexType>
+<xsd:complexType name="Demande">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="codeDemande" type="xsd:long"/>
+<xsd:element minOccurs="0" name="commentairesDestinataires" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="demandeur" nillable="true" type="ns3:UtilisateurDto"/>
+<xsd:element minOccurs="0" name="etatDemande" nillable="true" type="ns4:EtatDemandeDto"/>
+<xsd:element minOccurs="0" name="numeroDemande" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="objetDemande" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="operateur" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="reponses" nillable="true" type="ns2:ArrayOfReponse"/>
+</xsd:sequence>
+</xsd:complexType>
+<xsd:complexType name="ArrayOfReponse">
+<xsd:sequence>
+<xsd:element maxOccurs="unbounded" minOccurs="0" name="Reponse" nillable="true" type="ns2:Reponse"/>
+</xsd:sequence>
+</xsd:complexType>
+<xsd:complexType name="Reponse">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="codeReponse" type="xsd:long"/>
+<xsd:element minOccurs="0" name="commentaires" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="dateEstimee" type="xsd:dateTime"/>
+<xsd:element minOccurs="0" name="dateEstimeeFin" type="xsd:dateTime"/>
+<xsd:element minOccurs="0" name="dateReponse" type="xsd:dateTime"/>
+<xsd:element minOccurs="0" name="description" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="destinataire" nillable="true" type="ns3:UtilisateurDto"/>
+<xsd:element minOccurs="0" name="etatInterventionATAL" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="numeroReponse" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="objetReponse" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="typeReponse" nillable="true" type="xsd:long"/>
+</xsd:sequence>
+</xsd:complexType>
+<xsd:complexType name="EtatTravaux">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="commentaires" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="date" type="xsd:dateTime"/>
+<xsd:element minOccurs="0" name="id" type="xsd:int"/>
+<xsd:element minOccurs="0" name="libelle" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:schema>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://etat.dto.commun.awa.aductis.com">
+<xsd:complexType name="EtatDemandeDto">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="codeEtatDemande" type="xsd:int"/>
+<xsd:element minOccurs="0" name="codeEtatTraitementDemande" nillable="true" type="xsd:long"/>
+<xsd:element minOccurs="0" name="description" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="typeEtatDemande" type="xsd:short"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:schema>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://utilisateur.dto.commun.awa.aductis.com">
+<xsd:complexType name="UtilisateurDto">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="SAutoriserChangementMdp" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="SAutoriserChangementRepondeur" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="SDesactiverRepondeurAuto" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="SFactif" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="SNotificationMail" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="activerRepondeurAuto" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="allImputations" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="allSalles" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="allServicesDemandeur" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="allServicesExecutant" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="allServicesGestionnaires" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="allVehicules" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="autoriserChangementLanguage" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="autoriserChangementMdp" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="autoriserChangementPreferenceRecap" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="autoriserChangementRepondeur" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="config" nillable="true" type="ns5:ConfigurationLdapDto"/>
+<xsd:element minOccurs="0" name="dateDerniereVisite" type="xsd:dateTime"/>
+<xsd:element minOccurs="0" name="displayChart" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="droits" nillable="true" type="ns3:ArrayOfUserRightDto"/>
+<xsd:element minOccurs="0" name="email" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="emails" nillable="true" type="tns:ArrayOfString"/>
+<xsd:element minOccurs="0" name="enSession" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="factif" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="fax" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="group" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="groupId" type="xsd:long"/>
+<xsd:element minOccurs="0" name="homePreference" type="xsd:int"/>
+<xsd:element minOccurs="0" name="id" type="xsd:long"/>
+<xsd:element minOccurs="0" name="langue" nillable="true" type="xsd:long"/>
+<xsd:element minOccurs="0" name="login" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="mdp" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="nbAdmin" nillable="true" type="xsd:int"/>
+<xsd:element minOccurs="0" name="nbDemandeurs" nillable="true" type="xsd:int"/>
+<xsd:element minOccurs="0" name="nbGest" nillable="true" type="xsd:int"/>
+<xsd:element minOccurs="0" name="nbManagers" nillable="true" type="xsd:int"/>
+<xsd:element minOccurs="0" name="nom" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="notificationMail" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="nouveauCompte" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="preferenceRecap" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="selectedEquipTypes" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="serviceDemandeur" nillable="true" type="ns6:ServiceDemandeurDto"/>
+<xsd:element minOccurs="0" name="serviceLevel" nillable="true" type="xsd:int"/>
+<xsd:element minOccurs="0" name="telephone" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="type" nillable="true" type="ns7:RoleDto"/>
+<xsd:element minOccurs="0" name="typeAcces" nillable="true" type="xsd:short"/>
+<xsd:element minOccurs="0" name="typesEquipements" nillable="true" type="ns3:ArrayOfUserEquipementTypeDto"/>
+<xsd:element minOccurs="0" name="userDn" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="uuid" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+<xsd:complexType name="ArrayOfUserEquipementTypeDto">
+<xsd:sequence>
+<xsd:element maxOccurs="unbounded" minOccurs="0" name="UserEquipementTypeDto" nillable="true" type="ns3:UserEquipementTypeDto"/>
+</xsd:sequence>
+</xsd:complexType>
+<xsd:complexType name="UserEquipementTypeDto">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="natureEquipement" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="typeEquipement" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+<xsd:complexType name="ArrayOfUserRightDto">
+<xsd:sequence>
+<xsd:element maxOccurs="unbounded" minOccurs="0" name="UserRightDto" nillable="true" type="ns3:UserRightDto"/>
+</xsd:sequence>
+</xsd:complexType>
+<xsd:complexType name="UserRightDto">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="droit" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="module" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:schema>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://role.dto.commun.awa.aductis.com">
+<xsd:complexType name="RoleDto">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="codeRole" type="xsd:long"/>
+<xsd:element minOccurs="0" name="description" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="name" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="nomCle" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="roleLevel" nillable="true" type="xsd:int"/>
+<xsd:element minOccurs="0" name="typeRole" type="xsd:long"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:schema>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://ldap.dto.commun.awa.aductis.com">
+<xsd:complexType name="ConfigurationLdapDto">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="active" nillable="true" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="domain" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="groupId" nillable="true" type="xsd:long"/>
+<xsd:element minOccurs="0" name="id" nillable="true" type="xsd:long"/>
+<xsd:element minOccurs="0" name="mapEmail" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="mapFax" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="mapId" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="mapLogin" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="mapMdp" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="mapNom" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="mapTelephone" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="name" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="port" nillable="true" type="xsd:int"/>
+<xsd:element minOccurs="0" name="searchAttribute" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="searchCategory" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="searchClass" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="searchDn" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="searchDnByType" nillable="true" type="tns:ArrayOfString"/>
+<xsd:element minOccurs="0" name="searchDnList" nillable="true" type="tns:ArrayOfString"/>
+<xsd:element minOccurs="0" name="searchDnType" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="searchPageSize" type="xsd:int"/>
+<xsd:element minOccurs="0" name="searchType" type="xsd:int"/>
+<xsd:element minOccurs="0" name="secure" nillable="true" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="server" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="syncNature" nillable="true" type="xsd:int"/>
+<xsd:element minOccurs="0" name="url" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="userAttribute" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="userDn" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="userMdp" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="userName" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:schema>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://service.dto.commun.awa.aductis.com">
+<xsd:complexType name="ServiceDemandeurDto">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="FDemandeur" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="FDestinataire" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="FExecutant" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="FInterne" type="xsd:boolean"/>
+<xsd:element minOccurs="0" name="adresse" nillable="true" type="ns8:AdresseDto"/>
+<xsd:element minOccurs="0" name="adresseFacturation" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="codeService" type="xsd:long"/>
+<xsd:element minOccurs="0" name="codeServicePere" nillable="true" type="xsd:long"/>
+<xsd:element minOccurs="0" name="codeTypeService" type="xsd:int"/>
+<xsd:element minOccurs="0" name="collectivite" nillable="true" type="ns9:TiersDto"/>
+<xsd:element minOccurs="0" name="droitHabillement" type="xsd:float"/>
+<xsd:element minOccurs="0" name="droitMateriel" type="xsd:float"/>
+<xsd:element minOccurs="0" name="droitOutillage" type="xsd:float"/>
+<xsd:element minOccurs="0" name="libelle" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="libelleComplet" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="libelleSimple" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="modeGestion" type="xsd:int"/>
+<xsd:element minOccurs="0" name="natureService" type="xsd:int"/>
+<xsd:element minOccurs="0" name="numeroService" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="quota" type="xsd:float"/>
+<xsd:element minOccurs="0" name="responsable" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="tierParent" nillable="true" type="ns9:TiersDto"/>
+<xsd:element minOccurs="0" name="typeQuota" type="xsd:int"/>
+<xsd:element minOccurs="0" name="typeTiers" nillable="true" type="xsd:long"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:schema>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://tiers.atal.dto.commun.awa.aductis.com">
+<xsd:complexType name="TiersDto">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="adresse" nillable="true" type="ns8:AdresseDto"/>
+<xsd:element minOccurs="0" name="adresseFacturation" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="codeService" type="xsd:long"/>
+<xsd:element minOccurs="0" name="collectivite" nillable="true" type="ns9:TiersDto"/>
+<xsd:element minOccurs="0" name="libelle" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="libelleComplet" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="libelleSimple" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="tierParent" nillable="true" type="ns9:TiersDto"/>
+<xsd:element minOccurs="0" name="typeTiers" nillable="true" type="xsd:long"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:schema>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://adresse.dto.commun.awa.aductis.com">
+<xsd:complexType name="AdresseDto">
+<xsd:sequence>
+<xsd:element minOccurs="0" name="adresse1" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="adresse2" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="adresseResume" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="boitePostale" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="cedex" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="codePostal" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="email" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="fax" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="idAdresse" nillable="true" type="xsd:long"/>
+<xsd:element minOccurs="0" name="numero" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="numeroBatiment" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="numeroEscalier" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="numeroEtage" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="numeroLogement" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="numeroSequence" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="pays" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="siteWeb" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="telephone" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="telephonePortable" nillable="true" type="xsd:string"/>
+<xsd:element minOccurs="0" name="typeAdresse" nillable="true" type="xsd:long"/>
+<xsd:element minOccurs="0" name="ville" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:schema>
+  </wsdl:types>
+  <wsdl:message name="isActionValidResponse">
+    <wsdl:part name="parameters" element="tns:isActionValidResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="isActionValidRequest">
+    <wsdl:part name="parameters" element="tns:isActionValid">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandeXYByTypeRequest">
+    <wsdl:part name="parameters" element="tns:insertDemandeXYByType">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertReponseClotureByTypeAndNatureWithCommentsRequest">
+    <wsdl:part name="parameters" element="tns:insertReponseClotureByTypeAndNatureWithComments">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="retrieveDetailsDemandeRequest">
+    <wsdl:part name="parameters" element="tns:retrieveDetailsDemande">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandeXYWithDLCommentResponse">
+    <wsdl:part name="parameters" element="tns:insertDemandeXYWithDLCommentResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertReponseClotureWithCommentsResponse">
+    <wsdl:part name="parameters" element="tns:insertReponseClotureWithCommentsResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandeContactCompletRequest">
+    <wsdl:part name="parameters" element="tns:insertDemandeContactComplet">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertReponseClotureWithCommentsRequest">
+    <wsdl:part name="parameters" element="tns:insertReponseClotureWithComments">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="updateDemandeMotsClesResponse">
+    <wsdl:part name="parameters" element="tns:updateDemandeMotsClesResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandePretSalleResponse">
+    <wsdl:part name="parameters" element="tns:insertDemandePretSalleResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="getDemandesParDestinataireResponse">
+    <wsdl:part name="parameters" element="tns:getDemandesParDestinataireResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertReponseClotureResponse">
+    <wsdl:part name="parameters" element="tns:insertReponseClotureResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandeContactCompletResponse">
+    <wsdl:part name="parameters" element="tns:insertDemandeContactCompletResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandeAvecAuteurJSONResponse">
+    <wsdl:part name="parameters" element="tns:insertDemandeAvecAuteurJSONResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandeXYByTypeResponse">
+    <wsdl:part name="parameters" element="tns:insertDemandeXYByTypeResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertReponseClotureByTypeAndNatureResponse">
+    <wsdl:part name="parameters" element="tns:insertReponseClotureByTypeAndNatureResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandeWithDLCommentRequest">
+    <wsdl:part name="parameters" element="tns:insertDemandeWithDLComment">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="retrieveEtatTravauxResponse">
+    <wsdl:part name="parameters" element="tns:retrieveEtatTravauxResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="getDemandesParDestinataireRequest">
+    <wsdl:part name="parameters" element="tns:getDemandesParDestinataire">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertReponseClotureRequest">
+    <wsdl:part name="parameters" element="tns:insertReponseCloture">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="AwaWSException">
+    <wsdl:part name="AwaWSException" element="ns1:AwaWSException">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertReponseResponse">
+    <wsdl:part name="parameters" element="tns:insertReponseResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandeWithDLCommentResponse">
+    <wsdl:part name="parameters" element="tns:insertDemandeWithDLCommentResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="updateDemandeMotsClesRequest">
+    <wsdl:part name="parameters" element="tns:updateDemandeMotsCles">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandeAvecAuteurJSONRequest">
+    <wsdl:part name="parameters" element="tns:insertDemandeAvecAuteurJSON">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandePretSalleRequest">
+    <wsdl:part name="parameters" element="tns:insertDemandePretSalle">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandeByTypeRequest">
+    <wsdl:part name="parameters" element="tns:insertDemandeByType">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertReponseClotureByTypeAndNatureRequest">
+    <wsdl:part name="parameters" element="tns:insertReponseClotureByTypeAndNature">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandeRequest">
+    <wsdl:part name="parameters" element="tns:insertDemande">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="retrieveDemandesRequest">
+    <wsdl:part name="parameters" element="tns:retrieveDemandes">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertReponseClotureByTypeAndNatureWithCommentsResponse">
+    <wsdl:part name="parameters" element="tns:insertReponseClotureByTypeAndNatureWithCommentsResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandeResponse">
+    <wsdl:part name="parameters" element="tns:insertDemandeResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="retrieveDemandesResponse">
+    <wsdl:part name="parameters" element="tns:retrieveDemandesResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="retrieveEtatTravauxRequest">
+    <wsdl:part name="parameters" element="tns:retrieveEtatTravaux">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertReponseRequest">
+    <wsdl:part name="parameters" element="tns:insertReponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="retrieveDetailsDemandeResponse">
+    <wsdl:part name="parameters" element="tns:retrieveDetailsDemandeResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandeByTypeResponse">
+    <wsdl:part name="parameters" element="tns:insertDemandeByTypeResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="insertDemandeXYWithDLCommentRequest">
+    <wsdl:part name="parameters" element="tns:insertDemandeXYWithDLComment">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:portType name="DemandeService">
+    <wsdl:operation name="insertReponse">
+      <wsdl:input name="insertReponseRequest" message="tns:insertReponseRequest">
+    </wsdl:input>
+      <wsdl:output name="insertReponseResponse" message="tns:insertReponseResponse">
+    </wsdl:output>
+      <wsdl:fault name="AwaWSException" message="tns:AwaWSException">
+    </wsdl:fault>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemandeContactComplet">
+      <wsdl:input name="insertDemandeContactCompletRequest" message="tns:insertDemandeContactCompletRequest">
+    </wsdl:input>
+      <wsdl:output name="insertDemandeContactCompletResponse" message="tns:insertDemandeContactCompletResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertReponseClotureWithComments">
+      <wsdl:input name="insertReponseClotureWithCommentsRequest" message="tns:insertReponseClotureWithCommentsRequest">
+    </wsdl:input>
+      <wsdl:output name="insertReponseClotureWithCommentsResponse" message="tns:insertReponseClotureWithCommentsResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemandePretSalle">
+      <wsdl:input name="insertDemandePretSalleRequest" message="tns:insertDemandePretSalleRequest">
+    </wsdl:input>
+      <wsdl:output name="insertDemandePretSalleResponse" message="tns:insertDemandePretSalleResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemandeXYWithDLComment">
+      <wsdl:input name="insertDemandeXYWithDLCommentRequest" message="tns:insertDemandeXYWithDLCommentRequest">
+    </wsdl:input>
+      <wsdl:output name="insertDemandeXYWithDLCommentResponse" message="tns:insertDemandeXYWithDLCommentResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertReponseCloture">
+      <wsdl:input name="insertReponseClotureRequest" message="tns:insertReponseClotureRequest">
+    </wsdl:input>
+      <wsdl:output name="insertReponseClotureResponse" message="tns:insertReponseClotureResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertReponseClotureByTypeAndNatureWithComments">
+      <wsdl:input name="insertReponseClotureByTypeAndNatureWithCommentsRequest" message="tns:insertReponseClotureByTypeAndNatureWithCommentsRequest">
+    </wsdl:input>
+      <wsdl:output name="insertReponseClotureByTypeAndNatureWithCommentsResponse" message="tns:insertReponseClotureByTypeAndNatureWithCommentsResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemandeWithDLComment">
+      <wsdl:input name="insertDemandeWithDLCommentRequest" message="tns:insertDemandeWithDLCommentRequest">
+    </wsdl:input>
+      <wsdl:output name="insertDemandeWithDLCommentResponse" message="tns:insertDemandeWithDLCommentResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemandeXYByType">
+      <wsdl:input name="insertDemandeXYByTypeRequest" message="tns:insertDemandeXYByTypeRequest">
+    </wsdl:input>
+      <wsdl:output name="insertDemandeXYByTypeResponse" message="tns:insertDemandeXYByTypeResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="updateDemandeMotsCles">
+      <wsdl:input name="updateDemandeMotsClesRequest" message="tns:updateDemandeMotsClesRequest">
+    </wsdl:input>
+      <wsdl:output name="updateDemandeMotsClesResponse" message="tns:updateDemandeMotsClesResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertReponseClotureByTypeAndNature">
+      <wsdl:input name="insertReponseClotureByTypeAndNatureRequest" message="tns:insertReponseClotureByTypeAndNatureRequest">
+    </wsdl:input>
+      <wsdl:output name="insertReponseClotureByTypeAndNatureResponse" message="tns:insertReponseClotureByTypeAndNatureResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="isActionValid">
+      <wsdl:input name="isActionValidRequest" message="tns:isActionValidRequest">
+    </wsdl:input>
+      <wsdl:output name="isActionValidResponse" message="tns:isActionValidResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="getDemandesParDestinataire">
+      <wsdl:input name="getDemandesParDestinataireRequest" message="tns:getDemandesParDestinataireRequest">
+    </wsdl:input>
+      <wsdl:output name="getDemandesParDestinataireResponse" message="tns:getDemandesParDestinataireResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemandeAvecAuteurJSON">
+      <wsdl:input name="insertDemandeAvecAuteurJSONRequest" message="tns:insertDemandeAvecAuteurJSONRequest">
+    </wsdl:input>
+      <wsdl:output name="insertDemandeAvecAuteurJSONResponse" message="tns:insertDemandeAvecAuteurJSONResponse">
+    </wsdl:output>
+      <wsdl:fault name="AwaWSException" message="tns:AwaWSException">
+    </wsdl:fault>
+    </wsdl:operation>
+    <wsdl:operation name="retrieveEtatTravaux">
+      <wsdl:input name="retrieveEtatTravauxRequest" message="tns:retrieveEtatTravauxRequest">
+    </wsdl:input>
+      <wsdl:output name="retrieveEtatTravauxResponse" message="tns:retrieveEtatTravauxResponse">
+    </wsdl:output>
+      <wsdl:fault name="AwaWSException" message="tns:AwaWSException">
+    </wsdl:fault>
+    </wsdl:operation>
+    <wsdl:operation name="retrieveDemandes">
+      <wsdl:input name="retrieveDemandesRequest" message="tns:retrieveDemandesRequest">
+    </wsdl:input>
+      <wsdl:output name="retrieveDemandesResponse" message="tns:retrieveDemandesResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemande">
+      <wsdl:input name="insertDemandeRequest" message="tns:insertDemandeRequest">
+    </wsdl:input>
+      <wsdl:output name="insertDemandeResponse" message="tns:insertDemandeResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemandeByType">
+      <wsdl:input name="insertDemandeByTypeRequest" message="tns:insertDemandeByTypeRequest">
+    </wsdl:input>
+      <wsdl:output name="insertDemandeByTypeResponse" message="tns:insertDemandeByTypeResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="retrieveDetailsDemande">
+      <wsdl:input name="retrieveDetailsDemandeRequest" message="tns:retrieveDetailsDemandeRequest">
+    </wsdl:input>
+      <wsdl:output name="retrieveDetailsDemandeResponse" message="tns:retrieveDetailsDemandeResponse">
+    </wsdl:output>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="DemandeServiceHttpBinding" type="tns:DemandeService">
+    <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="insertReponse">
+      <wsdlsoap:operation soapAction="urn:insertReponse"/>
+      <wsdl:input name="insertReponseRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="insertReponseResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="AwaWSException">
+        <wsdlsoap:fault name="AwaWSException" use="literal"/>
+      </wsdl:fault>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemandeContactComplet">
+      <wsdlsoap:operation soapAction="urn:insertDemandeContactComplet"/>
+      <wsdl:input name="insertDemandeContactCompletRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="insertDemandeContactCompletResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertReponseClotureWithComments">
+      <wsdlsoap:operation soapAction="urn:insertReponseClotureWithComments"/>
+      <wsdl:input name="insertReponseClotureWithCommentsRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="insertReponseClotureWithCommentsResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemandePretSalle">
+      <wsdlsoap:operation soapAction="urn:insertDemandePretSalle"/>
+      <wsdl:input name="insertDemandePretSalleRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="insertDemandePretSalleResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemandeXYWithDLComment">
+      <wsdlsoap:operation soapAction="urn:insertDemandeXYWithDLComment"/>
+      <wsdl:input name="insertDemandeXYWithDLCommentRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="insertDemandeXYWithDLCommentResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertReponseCloture">
+      <wsdlsoap:operation soapAction="urn:insertReponseCloture"/>
+      <wsdl:input name="insertReponseClotureRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="insertReponseClotureResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertReponseClotureByTypeAndNatureWithComments">
+      <wsdlsoap:operation soapAction="urn:insertReponseClotureByTypeAndNatureWithComments"/>
+      <wsdl:input name="insertReponseClotureByTypeAndNatureWithCommentsRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="insertReponseClotureByTypeAndNatureWithCommentsResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemandeWithDLComment">
+      <wsdlsoap:operation soapAction="urn:insertDemandeWithDLComment"/>
+      <wsdl:input name="insertDemandeWithDLCommentRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="insertDemandeWithDLCommentResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemandeXYByType">
+      <wsdlsoap:operation soapAction="urn:insertDemandeXYByType"/>
+      <wsdl:input name="insertDemandeXYByTypeRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="insertDemandeXYByTypeResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="updateDemandeMotsCles">
+      <wsdlsoap:operation soapAction="urn:updateDemandeMotsCles"/>
+      <wsdl:input name="updateDemandeMotsClesRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="updateDemandeMotsClesResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertReponseClotureByTypeAndNature">
+      <wsdlsoap:operation soapAction="urn:insertReponseClotureByTypeAndNature"/>
+      <wsdl:input name="insertReponseClotureByTypeAndNatureRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="insertReponseClotureByTypeAndNatureResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="isActionValid">
+      <wsdlsoap:operation soapAction=""/>
+      <wsdl:input name="isActionValidRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="isActionValidResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="getDemandesParDestinataire">
+      <wsdlsoap:operation soapAction="urn:GetDemandesParDestinataire"/>
+      <wsdl:input name="getDemandesParDestinataireRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="getDemandesParDestinataireResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemandeAvecAuteurJSON">
+      <wsdlsoap:operation soapAction="urn:insertDemandeAvecAuteurJSON"/>
+      <wsdl:input name="insertDemandeAvecAuteurJSONRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="insertDemandeAvecAuteurJSONResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="AwaWSException">
+        <wsdlsoap:fault name="AwaWSException" use="literal"/>
+      </wsdl:fault>
+    </wsdl:operation>
+    <wsdl:operation name="retrieveEtatTravaux">
+      <wsdlsoap:operation soapAction="urn:retrieveEtatTravaux"/>
+      <wsdl:input name="retrieveEtatTravauxRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="retrieveEtatTravauxResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="AwaWSException">
+        <wsdlsoap:fault name="AwaWSException" use="literal"/>
+      </wsdl:fault>
+    </wsdl:operation>
+    <wsdl:operation name="retrieveDemandes">
+      <wsdlsoap:operation soapAction="urn:RetrieveDemandes"/>
+      <wsdl:input name="retrieveDemandesRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="retrieveDemandesResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemande">
+      <wsdlsoap:operation soapAction=""/>
+      <wsdl:input name="insertDemandeRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="insertDemandeResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="insertDemandeByType">
+      <wsdlsoap:operation soapAction="urn:insertDemandeByType"/>
+      <wsdl:input name="insertDemandeByTypeRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="insertDemandeByTypeResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="retrieveDetailsDemande">
+      <wsdlsoap:operation soapAction="urn:RetrieveDetailsDemande"/>
+      <wsdl:input name="retrieveDetailsDemandeRequest">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="retrieveDetailsDemandeResponse">
+        <wsdlsoap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="DemandeService">
+    <wsdl:port name="DemandeServiceHttpPort" binding="tns:DemandeServiceHttpBinding">
+      <wsdlsoap:address location="http://ns317145.ovh.net:8288/awa/services/DemandeService"/>
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>
diff --git a/tests/data/atal/details_demande_response.xml b/tests/data/atal/details_demande_response.xml
new file mode 100644
index 00000000..fc5bde3f
--- /dev/null
+++ b/tests/data/atal/details_demande_response.xml
@@ -0,0 +1,2 @@
+<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ns1:retrieveDetailsDemandeResponse xmlns:ns1="http://localhost/awa/services/DemandeService"><ns1:detailsDemandeRetrieved><codeDemande xmlns="http://demande.services.awa.aductis.com">13154</codeDemande><commentairesDestinataires xmlns="http://demande.services.awa.aductis.com"></commentairesDestinataires><demandeur xmlns="http://demande.services.awa.aductis.com"><SAutoriserChangementMdp xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><SAutoriserChangementRepondeur xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><SDesactiverRepondeurAuto xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><SFactif xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><SNotificationMail xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><activerRepondeurAuto xmlns="http://utilisateur.dto.commun.awa.aductis.com">false</activerRepondeurAuto><allImputations xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><allSalles xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><allServicesDemandeur xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><allServicesExecutant xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><allServicesGestionnaires xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><allVehicules xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><autoriserChangementLanguage xmlns="http://utilisateur.dto.commun.awa.aductis.com">false</autoriserChangementLanguage><autoriserChangementMdp xmlns="http://utilisateur.dto.commun.awa.aductis.com">false</autoriserChangementMdp><autoriserChangementPreferenceRecap xmlns="http://utilisateur.dto.commun.awa.aductis.com">false</autoriserChangementPreferenceRecap><autoriserChangementRepondeur xmlns="http://utilisateur.dto.commun.awa.aductis.com">false</autoriserChangementRepondeur><config xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><dateDerniereVisite xmlns="http://utilisateur.dto.commun.awa.aductis.com">2019-07-25T09:28:47+02:00</dateDerniereVisite><displayChart xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><droits xmlns="http://utilisateur.dto.commun.awa.aductis.com" /><email xmlns="http://utilisateur.dto.commun.awa.aductis.com">jean.delgoleto@berger-levrault.com</email><emails xmlns="http://utilisateur.dto.commun.awa.aductis.com"><ns1:string>jean.delgoleto@berger-levrault.com</ns1:string></emails><enSession xmlns="http://utilisateur.dto.commun.awa.aductis.com">false</enSession><factif xmlns="http://utilisateur.dto.commun.awa.aductis.com">true</factif><fax xmlns="http://utilisateur.dto.commun.awa.aductis.com"></fax><group xmlns="http://utilisateur.dto.commun.awa.aductis.com">false</group><groupId xmlns="http://utilisateur.dto.commun.awa.aductis.com">0</groupId><homePreference xmlns="http://utilisateur.dto.commun.awa.aductis.com">0</homePreference><id xmlns="http://utilisateur.dto.commun.awa.aductis.com">22</id><langue xmlns="http://utilisateur.dto.commun.awa.aductis.com">1</langue><login xmlns="http://utilisateur.dto.commun.awa.aductis.com">GRC</login><mdp xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><nbAdmin xmlns="http://utilisateur.dto.commun.awa.aductis.com">0</nbAdmin><nbDemandeurs xmlns="http://utilisateur.dto.commun.awa.aductis.com">0</nbDemandeurs><nbGest xmlns="http://utilisateur.dto.commun.awa.aductis.com">0</nbGest><nbManagers xmlns="http://utilisateur.dto.commun.awa.aductis.com">0</nbManagers><nom xmlns="http://utilisateur.dto.commun.awa.aductis.com">GRC</nom><notificationMail xmlns="http://utilisateur.dto.commun.awa.aductis.com">true</notificationMail><nouveauCompte xmlns="http://utilisateur.dto.commun.awa.aductis.com">false</nouveauCompte><preferenceRecap xmlns="http://utilisateur.dto.commun.awa.aductis.com">false</preferenceRecap><selectedEquipTypes xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><serviceDemandeur xmlns="http://utilisateur.dto.commun.awa.aductis.com"><FDemandeur xmlns="http://service.dto.commun.awa.aductis.com">true</FDemandeur><FDestinataire xmlns="http://service.dto.commun.awa.aductis.com">false</FDestinataire><FExecutant xmlns="http://service.dto.commun.awa.aductis.com">false</FExecutant><FInterne xmlns="http://service.dto.commun.awa.aductis.com">false</FInterne><adresse xmlns="http://service.dto.commun.awa.aductis.com" xsi:nil="true" /><adresseFacturation xmlns="http://service.dto.commun.awa.aductis.com" xsi:nil="true" /><codeService xmlns="http://service.dto.commun.awa.aductis.com">637</codeService><codeServicePere
+xmlns="http://service.dto.commun.awa.aductis.com" xsi:nil="true" /><codeTypeService xmlns="http://service.dto.commun.awa.aductis.com">128</codeTypeService><collectivite xmlns="http://service.dto.commun.awa.aductis.com" xsi:nil="true" /><droitHabillement xmlns="http://service.dto.commun.awa.aductis.com">0.0</droitHabillement><droitMateriel xmlns="http://service.dto.commun.awa.aductis.com">0.0</droitMateriel><droitOutillage xmlns="http://service.dto.commun.awa.aductis.com">0.0</droitOutillage><libelle xmlns="http://service.dto.commun.awa.aductis.com">Administrés</libelle><libelleComplet xmlns="http://service.dto.commun.awa.aductis.com">Administrés</libelleComplet><libelleSimple xmlns="http://service.dto.commun.awa.aductis.com">Administrés</libelleSimple><modeGestion xmlns="http://service.dto.commun.awa.aductis.com">0</modeGestion><natureService xmlns="http://service.dto.commun.awa.aductis.com">0</natureService><numeroService xmlns="http://service.dto.commun.awa.aductis.com" xsi:nil="true" /><quota xmlns="http://service.dto.commun.awa.aductis.com">0.0</quota><responsable xmlns="http://service.dto.commun.awa.aductis.com" xsi:nil="true" /><tierParent xmlns="http://service.dto.commun.awa.aductis.com" xsi:nil="true" /><typeQuota xmlns="http://service.dto.commun.awa.aductis.com">0</typeQuota><typeTiers xmlns="http://service.dto.commun.awa.aductis.com">128</typeTiers></serviceDemandeur><serviceLevel xmlns="http://utilisateur.dto.commun.awa.aductis.com">2</serviceLevel><telephone xmlns="http://utilisateur.dto.commun.awa.aductis.com">+33664847804</telephone><type xmlns="http://utilisateur.dto.commun.awa.aductis.com"><codeRole xmlns="http://role.dto.commun.awa.aductis.com">3</codeRole><description xmlns="http://role.dto.commun.awa.aductis.com">Gestionnaire</description><name xmlns="http://role.dto.commun.awa.aductis.com">TYPE_USER_GEST</name><nomCle xmlns="http://role.dto.commun.awa.aductis.com">user.role.gestionnaire</nomCle><roleLevel xmlns="http://role.dto.commun.awa.aductis.com">1</roleLevel><typeRole xmlns="http://role.dto.commun.awa.aductis.com">3</typeRole></type><typeAcces xmlns="http://utilisateur.dto.commun.awa.aductis.com">0</typeAcces><typesEquipements xmlns="http://utilisateur.dto.commun.awa.aductis.com" /><userDn xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /><uuid xmlns="http://utilisateur.dto.commun.awa.aductis.com" xsi:nil="true" /></demandeur><etatDemande xmlns="http://demande.services.awa.aductis.com"><codeEtatDemande xmlns="http://etat.dto.commun.awa.aductis.com">0</codeEtatDemande><codeEtatTraitementDemande xmlns="http://etat.dto.commun.awa.aductis.com">1</codeEtatTraitementDemande><description xmlns="http://etat.dto.commun.awa.aductis.com">%s</description><typeEtatDemande xmlns="http://etat.dto.commun.awa.aductis.com">2</typeEtatDemande></etatDemande><numeroDemande xmlns="http://demande.services.awa.aductis.com">DIT19080001</numeroDemande><objetDemande xmlns="http://demande.services.awa.aductis.com">Test entrouvert</objetDemande><operateur xmlns="http://demande.services.awa.aductis.com" xsi:nil="true" /><reponses xmlns="http://demande.services.awa.aductis.com" /></ns1:detailsDemandeRetrieved></ns1:retrieveDetailsDemandeResponse></soap:Body></soap:Envelope>
diff --git a/tests/data/atal/etat_travaux_response.xml b/tests/data/atal/etat_travaux_response.xml
new file mode 100644
index 00000000..26973e04
--- /dev/null
+++ b/tests/data/atal/etat_travaux_response.xml
@@ -0,0 +1 @@
+<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ns1:retrieveEtatTravauxResponse xmlns:ns1="http://localhost/awa/services/DemandeService"><ns1:etatTravaux><commentaires xmlns="http://demande.services.awa.aductis.com"></commentaires><id xmlns="http://demande.services.awa.aductis.com">2</id><libelle xmlns="http://demande.services.awa.aductis.com">%s</libelle></ns1:etatTravaux></ns1:retrieveEtatTravauxResponse></soap:Body></soap:Envelope>
diff --git a/tests/test_atal.py b/tests/test_atal.py
index c88ed36f..000d931e 100644
--- a/tests/test_atal.py
+++ b/tests/test_atal.py
@@ -1,4 +1,7 @@
+# coding: utf-8
+
 import base64
+import os
 
 from django.contrib.contenttypes.models import ContentType
 import mock
@@ -8,6 +11,16 @@ from passerelle.apps.atal.models import ATALConnector
 from passerelle.base.models import ApiUser, AccessRight
 
 
+def get_file(filename):
+    with open(
+            os.path.join(
+                os.path.dirname(__file__), 'data', 'atal', filename
+            ),
+            'r'
+    ) as f:
+        return f.read()
+
+
 @pytest.fixture()
 def connector(db):
     api = ApiUser.objects.create(username='all', keytype='', key='')
@@ -145,3 +158,79 @@ def test_upload(app, connector, monkeypatch):
         'err_class': 'passerelle.utils.jsonresponse.APIError',
         'err_desc': 'Invalid base64 string'
     }
+
+
+def test_retrieve_details_demande(app, connector, monkeypatch):
+    import passerelle.utils
+
+    wsdl_response = mock.Mock(
+        content=get_file('DemandeService.wsdl'), status_code=200,
+        headers={'Content-Type': 'text/xml'}
+    )
+    monkeypatch.setattr(passerelle.utils.Request, 'get', mock.Mock(return_value=wsdl_response))
+
+    api_response = mock.Mock(
+        content=get_file('details_demande_response.xml') % 'EN ATTENTE', status_code=200,
+        headers={'Content-Type': 'text/xml'}
+    )
+    monkeypatch.setattr(passerelle.utils.Request, 'post', mock.Mock(return_value=api_response))
+
+    response = app.get('/atal/slug-atal/retrieve-details-demande/DIT18050001/')
+    assert response.json['err'] == 0
+    assert response.json['data']['etatDemande']['description'] == 'EN ATTENTE'
+
+
+def test_retrieve_etat_travaux(app, connector, monkeypatch):
+    import passerelle.utils
+
+    wsdl_response = mock.Mock(
+        content=get_file('DemandeService.wsdl'), status_code=200,
+        headers={'Content-Type': 'text/xml'}
+    )
+    monkeypatch.setattr(passerelle.utils.Request, 'get', mock.Mock(return_value=wsdl_response))
+
+    api_response = mock.Mock(
+        content=get_file('etat_travaux_response.xml') % u'travaux pas commencés', status_code=200,
+        headers={'Content-Type': 'text/xml'}
+    )
+    monkeypatch.setattr(passerelle.utils.Request, 'post', mock.Mock(return_value=api_response))
+
+    response = app.get('/atal/slug-atal/retrieve-etat-travaux/DIT18050001/')
+    assert response.json['err'] == 0
+    assert response.json['data']['libelle'] == u'travaux pas commencés'
+
+
+def test_status(app, connector, monkeypatch):
+    import passerelle.utils
+
+    wsdl_response = mock.Mock(
+        content=get_file('DemandeService.wsdl'), status_code=200,
+        headers={'Content-Type': 'text/xml'}
+    )
+    monkeypatch.setattr(passerelle.utils.Request, 'get', mock.Mock(return_value=wsdl_response))
+
+    api_response = mock.Mock(
+        content=get_file('details_demande_response.xml') % 'EN ATTENTE', status_code=200,
+        headers={'Content-Type': 'text/xml'}
+    )
+    monkeypatch.setattr(passerelle.utils.Request, 'post', mock.Mock(return_value=api_response))
+    response = app.get('/atal/slug-atal/status/DIT18050001/')
+
+    assert response.json['err'] == 0
+    assert response.json['data']['status'] == u'EN ATTENTE'
+
+    api_response1 = mock.Mock(
+        content=get_file('details_demande_response.xml') % 'PRISE EN COMPTE', status_code=200,
+        headers={'Content-Type': 'text/xml'}
+    )
+    api_response2 = mock.Mock(
+        content=get_file('etat_travaux_response.xml') % u'travaux pas commencés', status_code=200,
+        headers={'Content-Type': 'text/xml'}
+    )
+    monkeypatch.setattr(
+        passerelle.utils.Request, 'post', mock.Mock(side_effect=[api_response1, api_response2])
+    )
+
+    response = app.get('/atal/slug-atal/status/DIT18050001/')
+    assert response.json['err'] == 0
+    assert response.json['data']['status'] == u'travaux pas commencés'
-- 
2.20.1

