Revision 84fd22a0
Added by Benjamin Dauvergne about 12 years ago
extra/modules/abelium_domino_ws.py | ||
---|---|---|
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
from decimal import Decimal |
3 |
import time |
|
3 | 4 |
import datetime |
4 | 5 |
from xml.etree import ElementTree as etree |
5 | 6 |
import logging |
... | ... | |
20 | 21 |
return unicode(x).strip() |
21 | 22 |
|
22 | 23 |
def strip_and_int(x): |
23 |
return int(x.strip()) |
|
24 |
try: |
|
25 |
return int(x.strip()) |
|
26 |
except ValueError: |
|
27 |
return None |
|
28 |
|
|
29 |
def strip_and_date(x): |
|
30 |
try: |
|
31 |
return datetime.datetime.strptime(x.strip(), '%Y%m%d').date() |
|
32 |
except ValueError: |
|
33 |
return None |
|
24 | 34 |
|
25 | 35 |
def parse_date(date_string): |
26 | 36 |
if date_string: |
... | ... | |
38 | 48 |
def decorated_function(self, *args, **kwargs): |
39 | 49 |
cache_name = '__%s_cache' % function.__name__ |
40 | 50 |
if not hasattr(self, cache_name): |
41 |
setattr(self, cache_name, {}) |
|
42 |
d = getattr(self, cache_name) |
|
51 |
setattr(self, cache_name, (time.time(), {})) |
|
52 |
t, d = getattr(self, cache_name) |
|
53 |
if time.time() - t > 30: |
|
54 |
setattr(self, cache_name, (time.time(), {})) |
|
55 |
t, d = getattr(self, cache_name) |
|
43 | 56 |
k = tuple(*args) + tuple(sorted(kwargs.items())) |
44 | 57 |
if not k in d: |
45 | 58 |
d[k] = function(self, *args, **kwargs) |
... | ... | |
73 | 86 |
v = getattr(self, local_name, None) |
74 | 87 |
if v is None: |
75 | 88 |
continue |
76 |
v = unicode(v).encode('utf-8') |
|
77 |
l.append('{0}: "{1}"'.format(remote_name, v)) |
|
78 |
return ','.join(l) |
|
89 |
l.append(u'{0}: "{1}"'.format(remote_name, v)) |
|
90 |
return u','.join(l) |
|
79 | 91 |
|
80 | 92 |
def debug(self): |
81 | 93 |
'''Output a debugging view of this object''' |
94 |
res = '' |
|
82 | 95 |
for remote_name, name, converter, desc in self.MORE_COLUMNS or self.COLUMNS: |
83 | 96 |
if hasattr(self, name): |
84 |
print name, ':', getattr(self, name) |
|
97 |
res += name + ':' + repr(getattr(self, name)) + '\n' |
|
98 |
return res |
|
85 | 99 |
|
86 | 100 |
def __int__(self): |
87 | 101 |
'''Return the object id''' |
88 | 102 |
return self.id |
89 | 103 |
|
104 |
class UrgentContact(SimpleObject): |
|
105 |
COLUMNS = ( |
|
106 |
('IDENFANTS', 'id_enfant', strip_and_int, 'IDENFANTS'), |
|
107 |
('IDCONTACT_AUTORISE', 'id', strip_and_int, 'IDCONTACT_AUTORISE'), |
|
108 |
('LIENFAMILLE_CH', 'lien_de_famille', unicode_and_strip, 'LIENFAMILLE_CH'), |
|
109 |
('PERE_MERE_CH', 'lien_pere_ou_pere', unicode_and_strip, 'PERE_MERE_CH'), |
|
110 |
('IDFAMILLES', 'id_famille', unicode_and_strip, 'IDFAMILLES'), |
|
111 |
('TYPE_CH', 'type', unicode_and_strip, 'TYPE_CH'), |
|
112 |
('NOM_CH', 'nom', unicode_and_strip, 'NOM_CH'), |
|
113 |
('PRENOM_CH', 'prenom', unicode_and_strip, 'PRENOM_CH'), |
|
114 |
('RUE_CH', 'rue', unicode_and_strip, 'RUE_CH'), |
|
115 |
('RUE2_CH', 'rue2', unicode_and_strip, 'RUE2_CH'), |
|
116 |
('RUE3_CH', 'rue3', unicode_and_strip, 'RUE3_CH'), |
|
117 |
('CODEPOSTAL_CH', 'code_postal', unicode_and_strip, 'CODEPOSTAL_CH'), |
|
118 |
('VILLE_CH', 'ville', unicode_and_strip, 'VILLE_CH'), |
|
119 |
('TELEPHONE_CH', 'telephone', unicode_and_strip, 'TELEPHONE_CH'), |
|
120 |
('TELEPHONE2_CH', 'telephone2', unicode_and_strip, 'TELEPHONE2_CH'), |
|
121 |
('ADRESSEINT_CH', 'adresse_internet', unicode_and_strip, 'ADRESSEINT_CH'), |
|
122 |
) |
|
123 |
|
|
90 | 124 |
class Child(SimpleObject): |
91 | 125 |
COLUMNS = ( |
92 | 126 |
('IDENFANTS', 'id', strip_and_int, 'Identifiant de ENFANTS'), |
93 |
('NOM_CH', 'nom',unicode_and_strip, 'Nom'), |
|
94 |
('PRENOM_CH', 'prenom',unicode_and_strip, 'Prénom'), |
|
95 |
('NAISSANCE_DA', 'naissance',unicode_and_strip, 'Date de Naissance'),
|
|
96 |
('COMMENTAIRE_ME', 'commentaire',unicode_and_strip, 'Commentaires / Notes'), |
|
97 |
('IDFAMILLES', 'id_famille',unicode_and_strip, 'IDFAMILLES'), |
|
98 |
('CODEPOSTAL_CH', 'code_postal',unicode_and_strip, 'Code Postal'), |
|
99 |
('VILLE_CH', 'ville',unicode_and_strip, 'Ville'), |
|
100 |
('CODEINTERNE_CH', 'code_interne',unicode_and_strip, 'Code Interne'), |
|
101 |
('LIEUNAISSANCE_CH', 'lieu_naissance',unicode_and_strip, 'Lieu de Naissance'), |
|
102 |
('DEPNAISSANCE_CH', 'departement_naissance',unicode_and_strip, 'Département Naissance'), |
|
103 |
('NUMSECU_CH', 'num_securite_sociale',unicode_and_strip, 'N° de SECU'), |
|
104 |
('NATIONALITE_CH', 'nationalite',unicode_and_strip, 'Nationalité'), |
|
105 |
('PRENOM2_CH', 'prenom2',unicode_and_strip, 'Prénom 2'), |
|
106 |
('SEXE_CH', 'sexe',unicode_and_strip, 'Sexe'), |
|
107 |
('IDTABLELIBRE1', 'IDTABLELIBRE1',unicode_and_strip, 'IDTABLELIBRE1'), |
|
108 |
('IDTABLELIBRE2', 'IDTABLELIBRE2',unicode_and_strip, 'IDTABLELIBRE2'), |
|
109 |
('IDTABLELIBRE3', 'IDTABLELIBRE3',unicode_and_strip, 'IDTABLELIBRE3'), |
|
110 |
('IDTABLELIBRE4', 'IDTABLELIBRE4',unicode_and_strip, 'IDTABLELIBRE4'), |
|
111 |
('CHAMPLIBRE1_CH', 'CHAMPLIBRE1_CH',unicode_and_strip, 'Valeur Champ Libre 1'), |
|
112 |
('CHAMPLIBRE2_CH', 'CHAMPLIBRE2_CH',unicode_and_strip, 'Valeur Champ Libre 2'), |
|
113 |
('CHAMPCALCULE1_CH', 'CHAMPCALCULE1_CH',unicode_and_strip, 'Valeur Champ Calculé 1'), |
|
114 |
('CHAMPCALCULE2_CH', 'CHAMPCALCULE2_CH',unicode_and_strip, 'Valeur Champ Calculé 2'), |
|
115 |
('SOMMEIL_ME', 'sommeil',unicode_and_strip, 'Sommeil'), |
|
116 |
('ACTIVITE_ME', 'activite',unicode_and_strip, 'Activités'), |
|
117 |
('HABITUDE_ME', 'habitude',unicode_and_strip, 'Habitudes'), |
|
118 |
('PHOTO_CH', 'photographie',unicode_and_strip, 'Photographie'), |
|
119 |
('NUMCOMPTE_CH', 'numcompte',unicode_and_strip, 'N° Compte Comptable'), |
|
120 |
('TELEPHONE_CH', 'telephone',unicode_and_strip, 'Téléphone'), |
|
121 |
('IDFAMILLES2', 'id_famille2',unicode_and_strip, 'Identifiant famille 2'), |
|
122 |
('PERE_CH', 'pere',unicode_and_strip, 'Nom du père'), |
|
123 |
('MERE_CH', 'mere',unicode_and_strip, 'Nom de la mère'), |
|
124 |
('AUTOPARENTALEMERE_IN', 'autorisation_parentale_mere',unicode_and_strip, 'Autorisation Parentale Mère'), |
|
125 |
('AUTOPARENTALEPERE_IN', 'autorisation_parentale_pere',unicode_and_strip, 'Autorisation Parentale de Père'), |
|
126 |
('IDPORTAIL_ENFANTS', 'id_portail_enfants',unicode_and_strip, 'Identifiant de PORTAIL_ENFANTS'), |
|
127 |
('ADRESSEINT_CH', 'adresse_internet',unicode_and_strip, 'Adresse Internet'), |
|
127 |
('NOM_CH', 'nom', unicode_and_strip, 'Nom'),
|
|
128 |
('PRENOM_CH', 'prenom', unicode_and_strip, 'Prénom'),
|
|
129 |
('NAISSANCE_DA', 'date_naissance', strip_and_date, 'Date de Naissance'),
|
|
130 |
('COMMENTAIRE_ME', 'commentaire', unicode_and_strip, 'Commentaires / Notes'),
|
|
131 |
('IDFAMILLES', 'id_famille', unicode_and_strip, 'IDFAMILLES'),
|
|
132 |
('CODEPOSTAL_CH', 'code_postal', unicode_and_strip, 'Code Postal'),
|
|
133 |
('VILLE_CH', 'ville', unicode_and_strip, 'Ville'),
|
|
134 |
('CODEINTERNE_CH', 'code_interne', unicode_and_strip, 'Code Interne'),
|
|
135 |
('LIEUNAISSANCE_CH', 'lieu_naissance', unicode_and_strip, 'Lieu de Naissance'),
|
|
136 |
('DEPNAISSANCE_CH', 'departement_naissance', unicode_and_strip, 'Département Naissance'),
|
|
137 |
('NUMSECU_CH', 'num_securite_sociale', unicode_and_strip, 'N° de SECU'),
|
|
138 |
('NATIONALITE_CH', 'nationalite', unicode_and_strip, 'Nationalité'),
|
|
139 |
('PRENOM2_CH', 'prenom2', unicode_and_strip, 'Prénom 2'),
|
|
140 |
('SEXE_CH', 'sexe', unicode_and_strip, 'Sexe'),
|
|
141 |
('IDTABLELIBRE1', 'IDTABLELIBRE1', unicode_and_strip, 'IDTABLELIBRE1'),
|
|
142 |
('IDTABLELIBRE2', 'IDTABLELIBRE2', unicode_and_strip, 'IDTABLELIBRE2'),
|
|
143 |
('IDTABLELIBRE3', 'IDTABLELIBRE3', unicode_and_strip, 'IDTABLELIBRE3'),
|
|
144 |
('IDTABLELIBRE4', 'IDTABLELIBRE4', unicode_and_strip, 'IDTABLELIBRE4'),
|
|
145 |
('CHAMPLIBRE1_CH', 'CHAMPLIBRE1_CH', unicode_and_strip, 'Valeur Champ Libre 1'),
|
|
146 |
('CHAMPLIBRE2_CH', 'CHAMPLIBRE2_CH', unicode_and_strip, 'Valeur Champ Libre 2'),
|
|
147 |
('CHAMPCALCULE1_CH', 'CHAMPCALCULE1_CH', unicode_and_strip, 'Valeur Champ Calculé 1'),
|
|
148 |
('CHAMPCALCULE2_CH', 'CHAMPCALCULE2_CH', unicode_and_strip, 'Valeur Champ Calculé 2'),
|
|
149 |
('SOMMEIL_ME', 'sommeil', unicode_and_strip, 'Sommeil'),
|
|
150 |
('ACTIVITE_ME', 'activite', unicode_and_strip, 'Activités'),
|
|
151 |
('HABITUDE_ME', 'habitude', unicode_and_strip, 'Habitudes'),
|
|
152 |
('PHOTO_CH', 'photographie', unicode_and_strip, 'Photographie'),
|
|
153 |
('NUMCOMPTE_CH', 'numcompte', unicode_and_strip, 'N° Compte Comptable'),
|
|
154 |
('TELEPHONE_CH', 'telephone', unicode_and_strip, 'Téléphone'),
|
|
155 |
('IDFAMILLES2', 'id_famille2', unicode_and_strip, 'Identifiant famille 2'),
|
|
156 |
('PERE_CH', 'pere', unicode_and_strip, 'Nom du père'),
|
|
157 |
('MERE_CH', 'mere', unicode_and_strip, 'Nom de la mère'),
|
|
158 |
('AUTOPARENTALEMERE_IN', 'autorisation_parentale_mere', unicode_and_strip, 'Autorisation Parentale Mère'),
|
|
159 |
('AUTOPARENTALEPERE_IN', 'autorisation_parentale_pere', unicode_and_strip, 'Autorisation Parentale de Père'),
|
|
160 |
('IDPORTAIL_ENFANTS', 'id_portail_enfants', unicode_and_strip, 'Identifiant de PORTAIL_ENFANTS'),
|
|
161 |
('ADRESSEINT_CH', 'adresse_internet', unicode_and_strip, 'Adresse Internet'),
|
|
128 | 162 |
) |
129 | 163 |
|
130 | 164 |
def save(self): |
... | ... | |
132 | 166 |
self.client.update_child(self) |
133 | 167 |
else: |
134 | 168 |
self.id = self.client.add_child(self) |
169 |
self.client.clear_cache() |
|
135 | 170 |
|
136 | 171 |
class Family(SimpleObject): |
137 | 172 |
COLUMNS = ( |
... | ... | |
140 | 175 |
('EMAILPERE_CH', 'email_pere', unicode_and_strip, 'email du père'), |
141 | 176 |
('EMAILMERE_CH', 'email_mere', unicode_and_strip, 'email de la mère'), |
142 | 177 |
('ADRESSEINT_CH', 'adresse_internet', unicode_and_strip, 'adresse internet'), |
178 |
('CODEINTERNE_CH', 'code_interne', unicode_and_strip, 'code interne'), |
|
143 | 179 |
) |
144 | 180 |
|
145 | 181 |
MORE_COLUMNS = ( |
... | ... | |
158 | 194 |
('TELECOPIE2_CH', 'telecopie2', unicode_and_strip, 'télécopie 2'), |
159 | 195 |
('ADRESSEINT_CH', 'adresse_internet', unicode_and_strip, 'adresse internet'), |
160 | 196 |
('SITUATION_CH', 'situation', unicode_and_strip, 'situation familiale'), |
161 |
('REVENUMENSUEL_MO', 'revenu_mensuel_mo', unicode_and_strip, 'revenu mensuel de la famille'),
|
|
162 |
('REVENUANNUEL_MO', 'revenu_annuel_mo', unicode_and_strip, 'revenu annuel de la famille'),
|
|
163 |
('QUOTIENTFAMILIAL_MO', 'quotient_familial_mo', unicode_and_strip, 'quotient familial'),
|
|
164 |
('NBTOTALENFANTS_EN', 'nb_total_enfants_en', unicode_and_strip, 'nombre total d\'enfants'),
|
|
165 |
('NBENFANTSACHARGE_EN', 'nb_enfants_a_charge_en', unicode_and_strip, 'nombre d\'enfants à charge'),
|
|
197 |
('REVENUMENSUEL_MO', 'revenu_mensuel', unicode_and_strip, 'revenu mensuel de la famille'), |
|
198 |
('REVENUANNUEL_MO', 'revenu_annuel', unicode_and_strip, 'revenu annuel de la famille'), |
|
199 |
('QUOTIENTFAMILIAL_MO', 'quotient_familial', unicode_and_strip, 'quotient familial'), |
|
200 |
('NBTOTALENFANTS_EN', 'nb_total_enfants', unicode_and_strip, 'nombre total d\'enfants'), |
|
201 |
('NBENFANTSACHARGE_EN', 'nb_enfants_a_charge', unicode_and_strip, 'nombre d\'enfants à charge'), |
|
166 | 202 |
('NOMPERE_CH', 'nom_pere', unicode_and_strip, 'monsieur'), |
167 | 203 |
('PRENOMPERE_CH', 'prenom_pere', unicode_and_strip, 'prénom monsieur'), |
168 |
('AUTOPARENTALEPERE_IN', 'autoparentale_pere_in', unicode_and_strip, 'autorisation parentale de père'),
|
|
169 |
('DATENAISPERE_DA', 'date_naissance_pere', unicode_and_strip, 'date de naisance du père'),
|
|
204 |
('AUTOPARENTALEPERE_IN', 'autoparentale_pere', unicode_and_strip, 'autorisation parentale de père'), |
|
205 |
('DATENAISPERE_DA', 'date_naissance_pere', strip_and_date, 'date de naisance du père'),
|
|
170 | 206 |
('DEPNAISPERE_EN', 'departement_naissance_pere', unicode_and_strip, 'département de naissance du père'), |
171 | 207 |
('LIEUNAISPERE_CH', 'lieu_naissance_pere', unicode_and_strip, 'lieu de naissance du père'), |
172 | 208 |
('RUEPERE_CH', 'rue_pere', unicode_and_strip, 'rue père'), |
... | ... | |
176 | 212 |
('VILLEPERE_CH', 'ville_pere', unicode_and_strip, 'ville père'), |
177 | 213 |
('TELEPHONEPERE_CH', 'telephone_pere', unicode_and_strip, 'téléphone père'), |
178 | 214 |
('TELEPHONE2PERE_CH', 'telephone2_pere', unicode_and_strip, 'téléphone 2 père'), |
179 |
('TELPERE_LR_IN', 'tel_pere_liste_rouge_in', unicode_and_strip, 'téléphone liste rouge père'),
|
|
180 |
('TEL2PERE_LR_IN', 'tel2_pere_liste_rouge_in', unicode_and_strip, 'téléphone 2 liste rouge père'),
|
|
181 |
('TEL_LR_IN', 'tel_liste_rourge_in', unicode_and_strip, 'téléphone liste rouge'),
|
|
182 |
('TEL2_LR_IN', 'tel2_liste_rouge_in', unicode_and_strip, 'téléphone 2 liste rouge'),
|
|
215 |
('TELPERE_LR_IN', 'tel_pere_liste_rouge', unicode_and_strip, 'téléphone liste rouge père'), |
|
216 |
('TEL2PERE_LR_IN', 'tel2_pere_liste_rouge', unicode_and_strip, 'téléphone 2 liste rouge père'), |
|
217 |
('TEL_LR_IN', 'tel_liste_rourge', unicode_and_strip, 'téléphone liste rouge'), |
|
218 |
('TEL2_LR_IN', 'tel2_liste_rouge', unicode_and_strip, 'téléphone 2 liste rouge'), |
|
183 | 219 |
('NOMMERE_CH', 'nom_mere', unicode_and_strip, 'madame'), |
184 | 220 |
('PRENOMMERE_CH', 'prenom_mere', unicode_and_strip, 'prénom madame'), |
185 |
('AUTOPARENTALEMERE_IN', 'autoparentale_mere_in', unicode_and_strip, 'autorisation parentale mère'),
|
|
186 |
('DATENAISMERE_DA', 'date_naissance_mere_da', unicode_and_strip, 'date de naissance de la mère'),
|
|
187 |
('DEPNAISMERE_EN', 'departement_naissance_mere_en', unicode_and_strip, 'département de naissance de la mère'),
|
|
221 |
('AUTOPARENTALEMERE_IN', 'autoparentale_mere', unicode_and_strip, 'autorisation parentale mère'), |
|
222 |
('DATENAISMERE_DA', 'date_naissance_mere', strip_and_date, 'date de naissance de la mère'),
|
|
223 |
('DEPNAISMERE_EN', 'departement_naissance_mere', unicode_and_strip, 'département de naissance de la mère'), |
|
188 | 224 |
('LIEUNAISMERE_CH', 'lieu_naissance_mere', unicode_and_strip, 'lieu de naissance de la mère'), |
189 | 225 |
('RUEMERE_CH', 'rue_mere', unicode_and_strip, 'rue mère'), |
190 |
('REVMENSUELPERE_MO', 'revenu_mensuel_pere_mo', unicode_and_strip, 'revenu mensuel du père'),
|
|
226 |
('REVMENSUELPERE_MO', 'revenu_mensuel_pere', unicode_and_strip, 'revenu mensuel du père'), |
|
191 | 227 |
('RUE2MERE_CH', 'rue2_mere', unicode_and_strip, 'rue 2 mère'), |
192 | 228 |
('RUE3MERE_CH', 'rue3_mere', unicode_and_strip, 'rue 3 mère'), |
193 | 229 |
('CODEPOSTALMERE_CH', 'code_postal_mere', unicode_and_strip, 'code postal de la mère'), |
194 | 230 |
('VILLEMERE_CH', 'ville_mere', unicode_and_strip, 'ville de la mère'), |
195 |
('REVMENSUELMERE_MO', 'revenu_mensuel_mere_mo', unicode_and_strip, 'revenu mensuel mère'),
|
|
196 |
('REVANNUELPERE_MO', 'revenu_annuel_pere_mo', unicode_and_strip, 'revenu annuel père'),
|
|
197 |
('REVANNUELMERE_MO', 'revenu_annuel_mere_mo', unicode_and_strip, 'revenu annuel mère'),
|
|
231 |
('REVMENSUELMERE_MO', 'revenu_mensuel_mere', unicode_and_strip, 'revenu mensuel mère'), |
|
232 |
('REVANNUELPERE_MO', 'revenu_annuel_pere', unicode_and_strip, 'revenu annuel père'), |
|
233 |
('REVANNUELMERE_MO', 'revenu_annuel_mere', unicode_and_strip, 'revenu annuel mère'), |
|
198 | 234 |
('TELEPHONEMERE_CH', 'telephone_mere', unicode_and_strip, 'téléphone mère'), |
199 | 235 |
('TELEPHONE2MERE_CH', 'telephone2_mere', unicode_and_strip, 'téléphone 2 mère'), |
200 |
('TELMERE_LR_IN', 'telephone_mere_liste_rouge_in', unicode_and_strip, 'téléphone liste rouge mère'),
|
|
201 |
('TEL2MERE_LR_IN', 'telephone2_mere_liste_rouge_in', unicode_and_strip, 'téléphone 2 liste rouge mère'),
|
|
236 |
('TELMERE_LR_IN', 'telephone_mere_liste_rouge', unicode_and_strip, 'téléphone liste rouge mère'), |
|
237 |
('TEL2MERE_LR_IN', 'telephone2_mere_liste_rouge', unicode_and_strip, 'téléphone 2 liste rouge mère'), |
|
202 | 238 |
('TELECOPIEPERE_CH', 'telecopie_pere', unicode_and_strip, 'télécopie du père'), |
203 | 239 |
('TELECOPIE2PERE_CH', 'telecopie2_pere', unicode_and_strip, 'télécopie 2 du père'), |
204 | 240 |
('TELECOPIEMERE_CH', 'telecopie_mere', unicode_and_strip, 'télécopie de la mère'), |
... | ... | |
223 | 259 |
('TELPROFMERE_CH', 'telephone_travail_mere', unicode_and_strip, 'téléphone travail mère'), |
224 | 260 |
('TEL2PROFMERE_CH', 'telephone2_travail_mere', unicode_and_strip, 'téléphone 2 travail mère'), |
225 | 261 |
('TELMOBILMERE_CH', 'telephone_mobile_mere', unicode_and_strip, 'téléphone mobile mère'), |
226 |
('TOTALDU_MO', 'total_du_mo', unicode_and_strip, 'total dû'),
|
|
227 |
('TOTALREGLE_MO', 'total_regle_mo', unicode_and_strip, 'total réglé'),
|
|
262 |
('TOTALDU_MO', 'total_du', unicode_and_strip, 'total dû'), |
|
263 |
('TOTALREGLE_MO', 'total_regle', unicode_and_strip, 'total réglé'), |
|
228 | 264 |
('NUMCENTRESS_CH', 'num_centre_securite_sociale', unicode_and_strip, 'n° centre sécurité sociale'), |
229 | 265 |
('NOMCENTRESS_CH', 'nom_centre_securite_sociale', unicode_and_strip, 'nom centre sécurité sociale'), |
230 | 266 |
('NUMASSURANCE_CH', 'num_assurance', unicode_and_strip, 'n° assurance'), |
231 | 267 |
('NOMASSURANCE_CH', 'nom_assurance', unicode_and_strip, 'nom assurance'), |
232 |
('RIVOLI_EN', 'code_rivoli_en', unicode_and_strip, 'identifiant code rivoli'),
|
|
268 |
('RIVOLI_EN', 'code_rivoli', unicode_and_strip, 'identifiant code rivoli'), |
|
233 | 269 |
('NUMCOMPTE_CH', 'numero_compte_comptable', unicode_and_strip, 'n° compte comptable'), |
234 | 270 |
('EMAILPERE_CH', 'email_pere', unicode_and_strip, 'email du père'), |
235 | 271 |
('EMAILMERE_CH', 'email_mere', unicode_and_strip, 'email de la mère'), |
236 | 272 |
('NUMALLOCATAIRE_CH', 'numero_allocataire', unicode_and_strip, 'n° allocataire'), |
237 |
('COMMENTAIRE_ME', 'commentaire_me', unicode_and_strip, 'commentaires / notes'),
|
|
273 |
('COMMENTAIRE_ME', 'commentaire', unicode_and_strip, 'commentaires / notes'), |
|
238 | 274 |
('IDCSPPERE', 'identifiant_csp_pere', unicode_and_strip, 'référence identifiant csp'), |
239 | 275 |
('IDCSPMERE', 'identifiant_csp_mere', unicode_and_strip, 'référence identifiant csp'), |
240 | 276 |
('IDSECTEURS', 'identifiant_secteurs', unicode_and_strip, 'référence identifiant secteurs'), |
... | ... | |
268 | 304 |
('NUMRUEPERE_CH', 'numero_rue_pere', unicode_and_strip, 'numéro de rue père'), |
269 | 305 |
('NUMRUEMERE_CH', 'numero_rue_mere', unicode_and_strip, 'numéro de rue mère'), |
270 | 306 |
('IDPORTAIL_FAMILLES', 'identifiant_portail_familles', unicode_and_strip, 'identifiant de portail_familles'), |
271 |
('ECHEANCEASSURANCE_DA', 'echeance_assurance_da', unicode_and_strip, 'date echéance assurance'),
|
|
272 |
('RM_MIKADO_MO', 'rm_mikado_mo', unicode_and_strip, 'revenus mensuels mikado'),
|
|
273 |
('RA_MIKADO_MO', 'ra_mikado_mo', unicode_and_strip, 'revenus annuels mikado'),
|
|
274 |
('QF_MIKADO_MO', 'qf_mikado_mo', unicode_and_strip, 'quotient familial mikado'),
|
|
275 |
('RM_DIABOLO_MO', 'rm_diabolo_mo', unicode_and_strip, 'revenus mensuels diabolo'),
|
|
276 |
('RA_DIABOLO_MO', 'ra_diabolo_mo', unicode_and_strip, 'revenus annuels diabolo'),
|
|
277 |
('QF_DIABOLO_MO', 'qf_diabolo_mo', unicode_and_strip, 'quotient familial diabolo'),
|
|
278 |
('RM_OLIGO_MO', 'rm_oligo_mo', unicode_and_strip, 'revenus mensuels oligo'),
|
|
279 |
('RA_OLIGO_MO', 'ra_oligo_mo', unicode_and_strip, 'revenus annuels oligo'),
|
|
280 |
('QF_OLIGO_MO', 'qf_oligo_mo', unicode_and_strip, 'quotient familial oligo'),
|
|
281 |
('APPLICATION_REV_MIKADO_DA', 'application_rev_mikado_da', unicode_and_strip, 'date d\'application des revenus de mikado'),
|
|
282 |
('APPLICATION_REV_DIABOLO_DA', 'application_rev_diabolo_da', unicode_and_strip, 'date d\'application des revenus de diabolo'),
|
|
283 |
('APPLICATION_REV_OLIGO_DA', 'application_rev_oligo_da', unicode_and_strip, 'date d\'application des revenus de oligo'),
|
|
307 |
('ECHEANCEASSURANCE_DA', 'echeance_assurance', unicode_and_strip, 'date echéance assurance'), |
|
308 |
('RM_MIKADO_MO', 'rm_mikado', unicode_and_strip, 'revenus mensuels mikado'), |
|
309 |
('RA_MIKADO_MO', 'ra_mikado', unicode_and_strip, 'revenus annuels mikado'), |
|
310 |
('QF_MIKADO_MO', 'qf_mikado', unicode_and_strip, 'quotient familial mikado'), |
|
311 |
('RM_DIABOLO_MO', 'rm_diabolo', unicode_and_strip, 'revenus mensuels diabolo'), |
|
312 |
('RA_DIABOLO_MO', 'ra_diabolo', unicode_and_strip, 'revenus annuels diabolo'), |
|
313 |
('QF_DIABOLO_MO', 'qf_diabolo', unicode_and_strip, 'quotient familial diabolo'), |
|
314 |
('RM_OLIGO_MO', 'rm_oligo', unicode_and_strip, 'revenus mensuels oligo'), |
|
315 |
('RA_OLIGO_MO', 'ra_oligo', unicode_and_strip, 'revenus annuels oligo'), |
|
316 |
('QF_OLIGO_MO', 'qf_oligo', unicode_and_strip, 'quotient familial oligo'), |
|
317 |
('APPLICATION_REV_MIKADO_DA', 'application_rev_mikado', unicode_and_strip, 'date d\'application des revenus de mikado'), |
|
318 |
('APPLICATION_REV_DIABOLO_DA', 'application_rev_diabolo', unicode_and_strip, 'date d\'application des revenus de diabolo'), |
|
319 |
('APPLICATION_REV_OLIGO_DA', 'application_rev_oligo', unicode_and_strip, 'date d\'application des revenus de oligo'), |
|
284 | 320 |
) |
285 | 321 |
|
286 | 322 |
def __init__(self, *args, **kwargs): |
... | ... | |
302 | 338 |
def add_child(self, child): |
303 | 339 |
if hasattr(self, 'id'): |
304 | 340 |
child.id_famille = self.id |
341 |
child.client = self.client |
|
305 | 342 |
self.children.append(child) |
306 | 343 |
|
307 | 344 |
def save(self): |
308 | 345 |
if hasattr(self, 'id'): |
309 | 346 |
self.client.update_family(self) |
310 | 347 |
else: |
348 |
self.code_interne = self.client.new_code_interne() |
|
311 | 349 |
self.id = self.client.add_family(self) |
312 | 350 |
for child in self.children: |
313 | 351 |
child.id_famille = self.id |
314 | 352 |
child.save() |
353 |
self.client.clear_cache() |
|
315 | 354 |
|
316 | 355 |
class Invoice(SimpleObject): |
317 | 356 |
COLUMNS = ( |
... | ... | |
359 | 398 |
self.domain = domain |
360 | 399 |
self.login = login |
361 | 400 |
self.password = password |
362 |
self.client = Client(url, location=location, timeout=5)
|
|
401 |
self.client = Client(url, location=location, timeout=60)
|
|
363 | 402 |
self.client.options.cache.setduration(seconds=60) |
364 | 403 |
|
365 | 404 |
def clear_cache(self): |
... | ... | |
373 | 412 |
'''Call SOAP method named function_name passing args list as parameters. |
374 | 413 |
|
375 | 414 |
Any error is converted into the DominoException class.''' |
415 |
print 'call', function_name, args |
|
376 | 416 |
|
377 | 417 |
try: |
378 | 418 |
logger.debug('soap call to %s%r', function_name, args) |
... | ... | |
381 | 421 |
self.data = data |
382 | 422 |
except IOError, e: |
383 | 423 |
raise DominoException('Erreur IO', e) |
424 |
if data is None: |
|
425 |
data = '' |
|
384 | 426 |
if data.startswith('ERREUR'): |
385 | 427 |
raise DominoException(data[9:].encode('utf8')) |
386 | 428 |
return data |
... | ... | |
488 | 530 |
args=(id_famille, (','.join([x[0] for x in columns])))) |
489 | 531 |
return dict([(int(x), x) for x in children]) |
490 | 532 |
|
533 |
def get_urgent_contacts(self, id_enfant): |
|
534 |
columns = UrgentContact.COLUMNS |
|
535 |
urgent_contacts = self('LISTER_PERSONNES_URGENCE', |
|
536 |
UrgentContact, |
|
537 |
|
|
538 |
args=((id_enfant, ','.join([x[0] for x in columns])))) |
|
539 |
return dict([(int(x), x) for x in urgent_contacts]) |
|
491 | 540 |
|
492 | 541 |
@property |
493 | 542 |
@object_cached |
... | ... | |
502 | 551 |
invoice.famille = self.families[invoice.id_famille] |
503 | 552 |
return invoices |
504 | 553 |
|
554 |
def new_code_interne(self): |
|
555 |
max_ci = 0 |
|
556 |
for family in self.families.values(): |
|
557 |
try: |
|
558 |
max_ci = max(max_ci, int(family.code_interne)) |
|
559 |
except: |
|
560 |
pass |
|
561 |
return '%05d' % (max_ci+1) |
|
562 |
|
|
505 | 563 |
def get_invoices(self, id_famille=0, state='TOUTES'): |
506 | 564 |
'''Get invoices informations. |
507 | 565 |
|
... | ... | |
551 | 609 |
return famille |
552 | 610 |
return None |
553 | 611 |
|
612 |
def get_family_by_code_interne(self, code_interne): |
|
613 |
'''Return the first whose one email attribute matches the given email''' |
|
614 |
for famille in self.families.values(): |
|
615 |
if getattr(famille, 'code_interne', None) == code_interne: |
|
616 |
return famille |
|
617 |
return None |
|
618 |
|
|
554 | 619 |
def pay_invoice(self, id_invoices, amount, other_information, date=None): |
555 | 620 |
'''Notify Domino of the payment of some invoices. |
556 | 621 |
|
Also available in: Unified diff
[domino] finish family update workflow
- when creating or updating a family, store the family.code_interne value into
the user object for later retrieval,
- add web service API to retrieve person to contact for children