diff --git a/passerelle/contrib/toulouse_maelis/models.py b/passerelle/contrib/toulouse_maelis/models.py index 32eb31a7..14f23a23 100644 --- a/passerelle/contrib/toulouse_maelis/models.py +++ b/passerelle/contrib/toulouse_maelis/models.py @@ -66,6 +66,7 @@ class ToulouseMaelis(BaseResource, HTTPResource): def check_status(self): assert self.call('Family', 'isWSRunning') assert self.call('Activity', 'isWSRunning') + assert self.call('Invoice', 'isWSRunning') def get_referential(self, referential_name): diff --git a/tests/data/toulouse_maelis/InvoiceService.wsdl b/tests/data/toulouse_maelis/InvoiceService.wsdl new file mode 100644 index 00000000..ea17348e --- /dev/null +++ b/tests/data/toulouse_maelis/InvoiceService.wsdl @@ -0,0 +1,388 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Attention : Il est nécessaire de paramétrer un code pour la régie qui doit être passé en paramètre lors de l'invocation de la méthode. + +Service d'enregistrement des paiements effectués par une famille + La personne qui effectue le règlement de la facture doit être Rl1 ou Rl2 de la famille + Solde de la liste des factures passées en paramètre + Enregistrement du règlement + Mise à jour de la balance familiale + + ----------------------------------- + numFamily : numéro de la famille + numPerson : numéro de la personne qui effectue le règlement + lastName : nom de la personne qui effectue le règlement + firstName : prénom de la personne qui effectue le règlement + codeRegie : code de la régie + amount : montant du règlement + datePaiement : date du règlement + refTransaction : référence de la transaction + numInvoices : liste des numéros de factures réglées + Retourne le numéro du règlement + + ----------------------------------- + Attention : Le numéro ou le nom/prénom de la personne doivent être fournis + + + + + + + + + Lecture des informations relatives à l'autorisation de prélèvement en cours à la date de référence + + + ------------------------ + dossierNumber: numéro de dossier + numPerson: numéro MAELIS de la personne + codeRegie : code de la régie + dateRef: date de référence + + --------------------------- + + + + + + + + +Méthode pour vérifier si le webservice est OK + + ------------------------- + Retourne vrai ou faux + + + + + + + + + Service d'ajout d'autorisation de prélèvement + + + ------------------------ + dossierNumber : Numéro de dossier (numéro famille). + numPerson : numéro de la personne titulaire + bank : personBankBean coordonnées du compte à débiter (coordonnées bancaires) + codeRegie : code de la régie + + --------------------------- + Plusieurs cas peuvent se produire : + _ S'il les références bancaires correspondant à la demande n'existent pas, création de références bancaires avec le top de prélèvement dont la date de début correspond à la date d'effet. + _ S'il existe des références bancaires différentes de celles de la demande pour la personne ou pour l'autre responsable de la famille, elles sont clôturées à la date d'effet - 1 jour + _ S'il existe des références bancaires correspondant à la demande + * Si le top de prélèvement automatique est déjà positionné, aucun traitement n'est effectué. + * Si le top de prélèvement automatique n'est pas positionné : + - Si la RUM n'est pas fournie : Création de nouvelles références bancaires avec le top de prélèvement positionné dont la date de début correspond à la date d'effet avec génération de la RUM. La date de signature du mandat est la date d'effet. Si la RUM est fournie : L'enregistrer + - Clôture des références « sans prélèvement » à la date d'effet - 1 jour + + + + + + + + + +Récupération de toutes les factures de la famille, pour la régie et la plage de dates. + + ----------------------------------- + numDossier : numéro de la famille + codeRegie : code de la régie + dateStart : date de début des factures à récupérer + dateEnd : date de fin des factures à récupérer + Retourne la liste des factures + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_toulouse_maelis.py b/tests/test_toulouse_maelis.py index c7afee71..63baa9ff 100644 --- a/tests/test_toulouse_maelis.py +++ b/tests/test_toulouse_maelis.py @@ -38,6 +38,7 @@ def get_xml_file(filename): CONNECTION_ERROR = ConnectionError('No address associated with hostname') FAMILY_SERVICE_WSDL = FakedResponse(content=get_xml_file('FamilyService.wsdl'), status_code=200) ACTIVITY_SERVICE_WSDL = FakedResponse(content=get_xml_file('ActivityService.wsdl'), status_code=200) +INVOICE_SERVICE_WSDL = FakedResponse(content=get_xml_file('InvoiceService.wsdl'), status_code=200) FAILED_AUTH = FakedResponse(content=get_xml_file('R_failed_authentication.xml'), status_code=500) ISWSRUNNING_TRUE = FakedResponse(content=get_xml_file('R_is_ws_running.xml') % b'true', status_code=200) ISWSRUNNING_FALSE = FakedResponse(content=get_xml_file('R_is_ws_running.xml') % b'false', status_code=200) @@ -131,10 +132,26 @@ def test_call(mocked_post, mocked_get, con): @pytest.mark.parametrize( 'get_responses, post_responses, exception', [ - ([FAMILY_SERVICE_WSDL, ACTIVITY_SERVICE_WSDL], [ISWSRUNNING_TRUE, ISWSRUNNING_TRUE], None), - ([FAMILY_SERVICE_WSDL, CONNECTION_ERROR], [ISWSRUNNING_TRUE, ISWSRUNNING_TRUE], SOAPError), - ([FAMILY_SERVICE_WSDL, ACTIVITY_SERVICE_WSDL], [ISWSRUNNING_TRUE, FAILED_AUTH], APIError), - ([FAMILY_SERVICE_WSDL, ACTIVITY_SERVICE_WSDL], [ISWSRUNNING_TRUE, ISWSRUNNING_FALSE], AssertionError), + ( + [FAMILY_SERVICE_WSDL, ACTIVITY_SERVICE_WSDL, INVOICE_SERVICE_WSDL], + [ISWSRUNNING_TRUE, ISWSRUNNING_TRUE, ISWSRUNNING_TRUE], + None, + ), + ( + [FAMILY_SERVICE_WSDL, ACTIVITY_SERVICE_WSDL, CONNECTION_ERROR], + [ISWSRUNNING_TRUE, ISWSRUNNING_TRUE, ISWSRUNNING_TRUE], + SOAPError, + ), + ( + [FAMILY_SERVICE_WSDL, ACTIVITY_SERVICE_WSDL, INVOICE_SERVICE_WSDL], + [ISWSRUNNING_TRUE, ISWSRUNNING_TRUE, FAILED_AUTH], + APIError, + ), + ( + [FAMILY_SERVICE_WSDL, ACTIVITY_SERVICE_WSDL, INVOICE_SERVICE_WSDL], + [ISWSRUNNING_TRUE, ISWSRUNNING_TRUE, ISWSRUNNING_FALSE], + AssertionError, + ), ], ) @mock.patch('passerelle.utils.Request.get')