3 function ax_load_object($obj, $from)
5 foreach ($from as $k=>$v) {
6 if (property_exists($obj, $k)) {
12 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker:
26 public $CORPS_LIBELLE;
29 public $ADRESSE = array();
30 public $NUM_ADRESSE = 0;
31 public $ACTIVITE = array();
32 public $NUM_ACTIVITE = 0;
33 public $FORMATION = array();
34 public $NUM_FORMATION = 0;
37 public function __construct($aa)
40 ax_load_object($this, $aa);
43 function Ajout_adresse ($adresse,$i) {
44 $this->ADRESSE[$i] = $adresse;
47 function Ajout_activite ($activite,$i) {
48 $this->ACTIVITE[$i] = $activite;
49 $this->NUM_ACTIVITE++;
51 function Ajout_formation ($formation,$i) {
52 $this->FORMATION[$i] = $formation;
53 $this->NUM_FORMATION++;
55 function Ajout_erreur ($erreur) {
56 $this->Erreur = $erreur;
62 return $this->NOM_PATR;
65 return $this->PART_NOM;
70 function Nom_usuel() {
71 return $this->NOM_USUEL;
73 function Part_nomus() {
74 return $this->PART_NOMUS;
76 function Nom_complet() {
77 return $this->NOM_COMPLET;
80 return $this->CIVILITE;
88 function Corps_Libelle() {
89 return $this->CORPS_LIBELLE;
94 function Nationalite() {
95 return $this->NATIONALITE;
100 function Type_anc() {
101 return $this->TYPE_ANC;
103 function Adresse_type($i) {
104 return $this->ADRESSE[$i]->TYPE;
106 function Adresse1($i) {
107 return $this->ADRESSE[$i]->ADRESS1;
109 function Adresse2($i) {
110 return $this->ADRESSE[$i]->ADRESS2;
112 function Adresse3($i) {
113 return $this->ADRESSE[$i]->ADRESS3;
115 function Code_pst($i) {
116 return $this->ADRESSE[$i]->CODE_PST;
119 return $this->ADRESSE[$i]->VILLE;
121 function Zip_cedex($i) {
122 return $this->ADRESSE[$i]->ZIPCEDEX;
124 function Etat_region($i) {
125 return $this->ADRESSE[$i]->ETATREGION;
128 return $this->ADRESSE[$i]->PAYS;
130 function Mobile($i) {
131 return $this->ADRESSE[$i]->MOBILE;
134 return $this->ADRESSE[$i]->TEL;
137 return $this->ADRESSE[$i]->FAX;
139 function Num_adresse() {
140 return $this->NUM_ADRESSE;
142 function Entreprise($i) {
143 return $this->ACTIVITE[$i]->ENTREPRISE;;
145 function Raison_sociale($i) {
146 return $this->ACTIVITE[$i]->RAISON_SOCIALE;
148 function Fonction($i) {
149 return $this->ACTIVITE[$i]->FONCTION;
151 function Adresse_act_type($i) {
152 return $this->ACTIVITE[$i]->TYPE;
154 function Adresse_act_adresse1($i) {
155 return $this->ACTIVITE[$i]->ADRESS1;
157 function Adresse_act_adresse2($i) {
158 return $this->ACTIVITE[$i]->ADRESS2;
160 function Adresse_act_adresse3($i) {
161 return $this->ACTIVITE[$i]->ADRESS3;
163 function Adresse_act_code_pst($i) {
164 return $this->ACTIVITE[$i]->CODE_PST;
166 function Adresse_act_ville($i) {
167 return $this->ACTIVITE[$i]->VILLE;
169 function Adresse_act_zip_cedex($i) {
170 return $this->ACTIVITE[$i]->ZIPCEDEX;
172 function Adresse_act_etat_region($i) {
173 return $this->ACTIVITE[$i]->ETATREGION;
175 function Adresse_act_pays($i) {
176 return $this->ACTIVITE[$i]->PAYS;
178 function Adresse_act_mobile($i) {
179 return $this->ACTIVITE[$i]->MOBILE;
181 function Adresse_act_tel($i) {
182 return $this->ACTIVITE[$i]->TEL;
184 function Adresse_act_fax($i) {
185 return $this->ACTIVITE[$i]->FAX;
187 function Num_activite() {
188 return $this->NUM_ACTIVITE;
190 function Formation($i) {
191 return $this->FORMATION[$i]->LIBELLE;
193 function Num_formation() {
194 return $this->NUM_FORMATION;
213 public function __construct($aa)
215 ax_load_object($this, $aa);
222 public $RAISON_SOCIALE;
237 public function __construct($aa)
239 ax_load_object($this, $aa);
247 public function __construct($aa)
249 ax_load_object($this, $aa);
253 function xml_get_children($vals, &$i)
256 if (isset($vals[$i]['value'])) $children[] = $vals[$i]['value'];
258 while (++$i < count($vals)) {
259 switch ($vals[$i]['type']) {
261 $children[] = $vals[$i]['value'];
266 'tag' => $vals[$i]['tag'],
267 'attributes' => isset($vals[$i]['attributes'])?
268 $vals[$i]['attributes'] : null,
269 'value' => $vals[$i]['value'],
275 'tag' => $vals[$i]['tag'],
276 'attributes' => isset($vals[$i]['attributes'])?
277 $vals[$i]['attributes'] : null,
278 'children' => xml_get_children($vals, $i),
288 //fonction principale de récupération des données de l'ancien
289 //à indiquer: matricule de l'ancien
290 function recupere_infos_ancien($AX_MATRICULE)
292 include('config.inc');
294 $id =14;//14 params persos ancien
295 $id_ad = 11; //12 params adresse
296 $id_ac = 14; //15 params adresse
297 $id_fo = 1; //1 params fonction
301 // Génération d'un identifiant de "session" inter-serveurs
302 $id_session = md5 (uniqid (rand()));
304 // Connexion au serveur pour lui fournir l'identifiant et lui demander un challenge
305 $challenge = file_get_contents ($nom_script_renvoi_challenge."?id_session=".urlencode($id_session));
306 if ($challenge == 'ERROR')
308 $erreur = "Erreur lors de la demande du challenge";
312 // On va relire la clé privée (codée)
313 $privkeypass = $phrase;
314 $pkey_txt = file_get_contents ($chemin_cle_privee);
315 if (($pkey_res = openssl_pkey_get_private($pkey_txt, $privkeypass)) == false)
317 $erreur = "Erreur lors de l'ouverture de la clé privée";
321 // Signature du challenge (cryptage avec clé privée)
322 if ( openssl_private_encrypt($challenge, $response, $pkey_res) == false )
324 $erreur = "Erreur lors du cryptage du challenge avec la clé privée";
328 // Signature du login (cryptage avec clé privée)
329 if ( openssl_private_encrypt($AX_MATRICULE, $AX_MATRICULE_CRYPTE, $pkey_res) == false )
331 $erreur = "Erreur lors du cryptage du matricule avec la clé privée";
335 // Envoi de la réponse au serveur avec l'identifiant de l'ancien dont on veut récupérer les infos
336 $reponse_serveur .= file_get_contents ($nom_script_renvoi_infos."?id_session=".urlencode($id_session)."&AX_MATRICULE_CRYPTE=".urlencode($AX_MATRICULE_CRYPTE)."&response=".urlencode($response));
338 $parser = xml_parser_create();
339 xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
340 xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
341 xml_parse_into_struct($parser, $reponse_serveur, $vals, $index);
342 xml_parser_free($parser);
346 'tag' => $vals[0]['tag'],
347 'attributes' => isset($vals[0]['attributes'])?
348 $vals[0]['attributes'] : null,
349 'children' => xml_get_children($vals, $i = 0),
352 for ($i=0; $i < $id; $i++)
354 $val_ancien[$tree[0]['children'][0]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$i]['value'];
357 $Ancien_renvoye = new Ancien($val_ancien);
359 //adresse while pour nbre d'adresses
361 while ($tree[0]['children'][0]['children'][$id]['tag'] == 'ADRESSE')
363 for ($i=0; $i <= $id_ad; $i++)
365 $val_adresse[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value'];
368 $Adresse_renvoyee = new Adresse($val_adresse);
369 $Ancien_renvoye->Ajout_adresse($Adresse_renvoyee,$num_ad);
372 $num_ad = $num_ad + 1;
378 while ($tree[0]['children'][0]['children'][$id]['tag'] == 'ACTIVITE')
380 for ($i=0; $i <= $id_ac; $i++)
382 $val_activite[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value'];
384 for ($j=0; $j <= $id_ad; $j++)
386 $val_activite[$tree[0]['children'][0]['children'][$id]['children'][$i]['children'][$j]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['children'][$j]['value'];
390 $Activite_renvoyee = new Activite($val_activite);
391 $Ancien_renvoye->Ajout_activite($Activite_renvoyee,$num_ac);
394 $num_ac = $num_ac + 1;
397 //idem pour formation
399 while ($tree[0]['children'][0]['children'][$id]['tag'] == 'FORMATION')
401 for ($i=0; $i <= $id_fo; $i++)
403 $val_formation[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value'];
406 $Formation_renvoyee = new Formation($val_formation);
407 $Ancien_renvoye->Ajout_formation($Formation_renvoyee,$num_fo);
409 //prochaine formation
410 $num_fo = $num_fo + 1;
419 if ($erreur) //erreur ici
421 $Ancien_renvoye = new Ancien('');
422 $Ancien_renvoye->Ajout_erreur($erreur);
425 { //renvoyée par le fichier serveur_renvoie_infos
426 $Ancien_renvoye->Ajout_erreur($tree[0]['children'][1]['value']);
429 return $Ancien_renvoye;
432 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: