Projet

Général

Profil

Development #1251

Module WS Domino-Abelium

Ajouté par Benjamin Dauvergne il y a environ 12 ans. Mis à jour il y a environ 11 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Version cible:
-
Début:
04 février 2012
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Planning:

Description

Ce module est une interface vers le web-service SOAP du logiciel Abelium-Domino, il permet de lister les familles et les factures. Pour faciliter les rapprochements on peut lister les familles avec seulement quelques champs dans un premier temps, trouver la famille concernée puis demander une complétion des champs manquants.

Il y a trois classes:
- Famille
- Facture
- DominoWs

Le constructeur de DominoWs prend en argument l'URL du fichier WSDL, le domaine, le login et le mot de passe, ainsi qu'éventuellement l'emplacement du port SOAP si le WSDL est faux sur ce point.

Il y a deux propriétés contenant des dictionnaires qui donnent accès à la listes des familles et des factures:
- familles
- factures

Les familles du dictionnaire familles sont incomplète, avec seulement 5 champs chargés:
- id
- nom
- email_pere
- email_mere
- adresse_internet <=> email_famille
L'idée étant de pouvoir faire un rapprochement à l'aide d'une adresse email.

Une fois la bonne famille retrouvée il faut utilisé la méthode complete() de l'object de type Famille pour récupérer le reste des champs.

La liste des champs possible est dans l'attribute MORE_COLUMNS de la class Famille.

Pour obtenir la liste des factures pour une famille, il y a une propriété factures.

Les factures contiennent les champs suivant:
- id (int)
- debut_periode (date)
- fin_periode (date)
- creation (date)
- echeance (date)
- montant (Decimal)
- reste (Decimal)

Un méthode detail() de la class Facture permet d'obtenir le detail de la facture dans un dictionnaire:

{ 
  'etablissement': 'CENTRE MARCEL CATHELAIN'
  'lignes': [ 
       { 'quantite': '14', 
         'prix': '1.7', 
         'montant': '23.8', 
         'designation': 'Bons CAF Journée(s) Août' 
       }, .. ]
}

La plupart des méthodes ou propriété donnent lieu à la création d'un cache pour accélérer les accès. Pour avoir des données fraiches il faut appeler la méthode clear_cache() sur une instance de la classe DominoWs.


Fichiers

abelium_domino_ws.py (21,7 ko) abelium_domino_ws.py Benjamin Dauvergne, 04 février 2012 07:48
abelium_domino_ws.py (21,6 ko) abelium_domino_ws.py v2 Anonyme, 04 février 2012 15:29
abelium_domino_ws.py (24,3 ko) abelium_domino_ws.py v3 Benjamin Dauvergne, 09 février 2012 11:58

Historique

#1

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

Pas fan des libellés en français dans le code.

Le try/except ImportError pour l'import de suds.client, il pourrait être répété sur suds.bindings, sinon il ne sert pas à grand chose.

Il reste un "print args", malgré le logger.debug de la ligne qui le précède. Dans la même veine il reste un "import pdb".

Préférer les list comprehensions aux map().

À part tout ça, j'attendrais d'avoir du code utilisant ce module avant de l'ajouter à auquo.

#2

Mis à jour par Anonyme il y a environ 12 ans

Frédéric Péters a écrit :

Pas fan des libellés en français dans le code.

C'est extrait de domino, j'aurai pu tout traduire en anglais puis faire une trad, mais euh... j'attends une vrai demande.

Le try/except ImportError pour l'import de suds.client, il pourrait être répété sur suds.bindings, sinon il ne sert pas à grand chose.

En fait je vais le virer tout simplement, ce sera mieux géré au niveau des modules utilisateurs de au-quotidien.

Il reste un "print args", malgré le logger.debug de la ligne qui le précède. Dans la même veine il reste un "import pdb".

Préférer les list comprehensions aux map().

À part tout ça, j'attendrais d'avoir du code utilisant ce module avant de l'ajouter à auquo.

Ok.

#3

Mis à jour par Anonyme il y a environ 12 ans

Anonyme a écrit :

Frédéric Péters a écrit :

Pas fan des libellés en français dans le code.

C'est extrait de domino, j'aurai pu tout traduire en anglais puis faire une trad, mais euh... j'attends une vrai demande.

Un doute tout d'un coup. Tu parles des descriptions des champs ou bien du fait d'appeler les deux classes Famille et Facture ?

#4

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

Je parle de l'utilisation du français de manière générale, du

class Famille(SimpleObject): de la ligne 75

au

raise ValueError('Il reste %s euros a facture par %s' % (reste_du, montant)) de la ligne 385.

#5

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

Voilà j'ai corrigé les problèmes de franglish (sauf la description des champs, extraite de Domino).

J'ai aussi remis en phase le module avec les dernières modifications commises par Abelium.

#6

Mis à jour par Frédéric Péters il y a presque 12 ans

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

Mergé par Benjamin.

#7

Mis à jour par Thomas Noël il y a plus de 11 ans

  • Version cible Mise en ligne supprimé
#8

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

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF