Project

General

Profile

Development #1251

Module WS Domino-Abelium

Added by Benjamin Dauvergne about 12 years ago. Updated about 11 years ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
04 February 2012
Due date:
% Done:

0%

Estimated time:
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.


Files

abelium_domino_ws.py (21.7 KB) abelium_domino_ws.py Benjamin Dauvergne, 04 February 2012 07:48 AM
abelium_domino_ws.py (21.6 KB) abelium_domino_ws.py v2 Anonymous, 04 February 2012 03:29 PM
abelium_domino_ws.py (24.3 KB) abelium_domino_ws.py v3 Benjamin Dauvergne, 09 February 2012 11:58 AM

History

#1

Updated by Frédéric Péters about 12 years ago

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

Updated by Anonymous about 12 years ago

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

Updated by Anonymous about 12 years ago

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

Updated by Frédéric Péters about 12 years ago

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

Updated by Benjamin Dauvergne about 12 years ago

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

Updated by Frédéric Péters almost 12 years ago

  • Status changed from Solution déployée to Résolu (à déployer)

Mergé par Benjamin.

#7

Updated by Thomas Noël over 11 years ago

  • Target version deleted (Mise en ligne )
#8

Updated by Thomas Noël about 11 years ago

  • Status changed from Résolu (à déployer) to Fermé

Also available in: Atom PDF