source: cpc/trunk/project/lib/model/doctrine/Parlementaire.class.php @ 1386

Last change on this file since 1386 was 1386, checked in by roux, 11 years ago

oups

File size: 16.6 KB
Line 
1<?php
2
3/**
4 * This class has been auto-generated by the Doctrine ORM Framework
5 */
6class Parlementaire extends BaseParlementaire
7{
8  public function getLink() {
9    sfProjectConfiguration::getActive()->loadHelpers(array('Url'));
10    return url_for('@parlementaire?slug='.$this->slug);
11  }
12  public function getTitre() {
13    return $this->getNom().', '.$this->getStatut();
14  }
15  public function getPersonne() {
16    return '';
17  }
18  public function __tostring() {
19    if($nom = $this->getNom())
20      return $nom;
21    return "";
22  }
23
24  /*  public function save() {
25    Doctrine::getTable('Personnalite')->hasChanged();
26    return parent::save($conn);
27    }*/
28
29  public function setCirconscription($str) {
30    if (preg_match('/(.*)\((\d+)/', $str, $match)) {
31      $this->nom_circo = trim($match[1]);
32      $this->num_circo = $match[2];
33    }
34  }
35
36  public function getNumCircoString($list = 0) {
37    if ($this->num_circo == 1) $string = $this->num_circo.'ère circonscription';
38    else $string = $this->num_circo.'ème circonscription';
39    if ($list == 1 && $this->num_circo < 10) {
40      $string = "&nbsp;".$string."&nbsp;";
41      if ($this->num_circo == 1) $string .= "&nbsp;";
42    }
43    return $string;
44  }
45
46  public function getNomPrenom() {
47    $weird = array('é' => 'e', 'è' => 'e', 'ë' => 'e', 'Le ' => 'Le', 'La ' => 'La', '\'' => '^ ');
48    $beg_name = " ".substr($this->nom_de_famille, 0, 3);
49    $ct = strpos($this->nom, $beg_name);
50    if (!$ct) foreach ($weird as $good => $bad)
51        if ($ct = strpos($this->nom, preg_replace("/".$bad."/", $good, $beg_name)))
52           break;
53    $nom = substr($this->nom, $ct+1);
54    $prenom = substr($this->nom, 0, strpos($this->nom, $nom));
55    return $nom.", ".preg_replace('/\s$/', '', $prenom);
56  }
57
58  public function getStatut($link = 0) {
59    if ($this->type == 'depute') {
60        if ($this->sexe == 'F') $type = 'députée';
61        else $type = 'député';
62    } else {
63        if ($this->sexe == 'F') $type = 'sénatrice';
64        else $type = 'sénateur';
65    }
66    $statut = "";
67    if ($this->fin_mandat != null) {
68      if ($this->sexe == 'F') $statut = 'ancienne ';
69      else $statut = 'ancien ';
70    }
71    $groupe = "";
72    if ($this->groupe_acronyme != "") {
73      if ($link == 1)
74        $groupe = " ".link_to($this->groupe_acronyme, '@list_parlementaires_groupe?acro='.$this->groupe_acronyme);
75      else $groupe = " ".$this->groupe_acronyme;
76    }
77    return $statut.$type.$groupe;
78  }
79 
80  public function getLongStatut($link = 0) {
81    $circo = $this->nom_circo;
82    if ($link == 1) {
83      $circo = link_to($this->nom_circo, '@list_parlementaires_departement?departement='.$circo);
84    }
85    return $this->getStatut($link).' de la '.$this->getNumCircoString().' '.$this->getPrefixeCirconscription().$circo;
86  }
87
88  public function setDebutMandat($str) {
89    if (preg_match('/(\d{2})\/(\d{2})\/(\d{4})/', $str, $m)) {
90      $this->_set('debut_mandat', $m[3].'-'.$m[2].'-'.$m[1]);
91    }
92  }
93  public function setFinMandat($str) {
94    if (preg_match('/(\d{2})\/(\d{2})\/(\d{4})/', $str, $m)) {
95      $this->_set('fin_mandat', $m[3].'-'.$m[2].'-'.$m[1]);
96    }
97    if (!$str) {
98      $this->_set('fin_mandat', NULL);
99    }
100  }
101  public function setFonctions($array) {
102    return $this->setPOrganisme('parlementaire', $array);
103  }
104  public function setExtras($array) {
105    return $this->setPOrganisme('extra', $array);
106  }
107  public function setGroupe($array) {
108    return $this->setPOrganisme('groupe', $array);
109  }
110
111  public function setPOrganisme($type, $array) {
112    if (!$array)
113      return;
114    $orgas = $this->getParlementaireOrganismes();
115    foreach($orgas->getKeys() as $key) {
116      $o = $orgas->get($key);
117      if ($o->type == $type)
118        $orgas->remove($key);
119    }
120    foreach ($array as $args) {
121      $orga = Doctrine::getTable('Organisme')->findOneByNomOrCreateIt($args[0], $type);
122      if ($type == 'groupe')
123        $this->groupe_acronyme = $orga->getSmallNomGroupe();
124      $po = new ParlementaireOrganisme();
125      $po->setParlementaire($this);
126      $po->setOrganisme($orga);
127      $fonction = preg_replace("/\(/","",$args[1]);
128      $po->setFonction($fonction);
129      $importance = ParlementaireOrganisme::defImportance($fonction);
130      $po->setImportance($importance);
131  /*      if (isset($args[2])) {
132        $po->setDebutFonction($args[2]);
133        }*/
134      $orgas->add($po);
135    }
136    $this->_set('ParlementaireOrganismes', $orgas);
137  }
138
139  private function getPOFromJoinIf($field, $value) {
140    $p = $this->toArray();
141    if (isset($p['ParlementaireOrganisme'])) {
142      $i = 0;
143      while (isset($p['ParlementaireOrganisme'][$i])) {
144        if ($p['ParlementaireOrganisme'][$i]['Organisme'][$field] == $value) {
145          $po = new ParlementaireOrganisme();
146          $o = new Organisme();
147          $o->fromArray($p['ParlementaireOrganisme'][$i]['Organisme']);
148          $po->setFonction($p['ParlementaireOrganisme'][$i]['fonction']);
149          $po->setParlementaire($this);
150          $po->setOrganisme($o);
151          return $po;
152        }
153        $i++;
154      }
155      return NULL;
156    }
157  }
158
159  public function getPOrganisme($str) {
160    if($po = $this->getPOFromJoinIf('nom', $str))
161      return $po;
162    foreach($this->getParlementaireOrganismes() as $po) {
163      if ($po['Organisme']->nom == $str)
164        return $po;
165    }
166  }
167  public function setAutresMandats($array) {
168    $this->_set('autres_mandats', serialize($array));
169  }
170  public function setMails($array) {
171    $this->_set('mails', serialize($array));
172  }
173  public function setAdresses($array) {
174    $this->_set('adresses', serialize($array));
175  }
176  public function getGroupe() {
177    if($po = $this->getPOFromJoinIf('type', 'groupe'))
178      return $po;
179    foreach($this->getParlementaireOrganismes() as $po) {
180      if ($po->type === 'groupe') 
181        return $po;
182    }
183  }
184  public function getExtras() {
185    $res = array();
186    foreach($this->getParlementaireOrganismes() as $po) {
187      if ($po->type == 'extra') 
188        array_push($res, $po);
189    }
190    return $res;
191  }
192  public function getResponsabilites() {
193    $res = array();
194    foreach($this->getParlementaireOrganismes() as $po) {
195      if ($po->type == 'parlementaire') 
196        $res[sprintf('%04d',abs(100-$po->importance)).$po->nom]=$po;
197    }
198    ksort($res);
199    return array_values($res);
200  }
201
202  public function hasPhoto() 
203  {
204    $photo = $this->_get('photo');
205    return (strlen($photo) > 0) ;
206  }
207  public function setPhoto($s) {
208    if (preg_match('/http/', $s)) {
209      $len = strlen($this->_get('photo'));
210      if ($len < 5200) {
211        $s = file_get_contents($s);
212      }else
213        return true;
214      if (!$s)
215        return false;
216    }
217    $this->_set('photo', $s);
218  }
219  public function getPageLink() {
220    return '@parlementaire?slug='.$this->slug;
221  }
222
223  public function getNomNumCirco() {
224    $shortcirco = trim(strtolower($this->_get('nom_circo')));
225    $shortcirco = preg_replace('/\s+/','-', $shortcirco);
226    return $this->_get('nom_circo')." (".$this->getNumeroDepartement($shortcirco).")";
227  }
228
229  public function getNumDepartement() {
230    $shortcirco = trim(strtolower($this->_get('nom_circo')));
231    $shortcirco = preg_replace('/\s+/','-', $shortcirco);
232    return $this->getNumeroDepartement($shortcirco);
233  }
234
235   static $dptmt_pref = array(
236     "Ain" => "de l'",
237     "Aisne" => "de l'",
238     "Allier" => "de l'",
239     "Alpes-de-Haute-Provence" => "des",
240     "Alpes-Maritimes" => "des",
241     "Ardèche" => "de l'",
242     "Ardennes" => "des",
243     "Ariège" => "d'",
244     "Aube" => "de l'",
245     "Aude" => "de l'",
246     "Aveyron" => "de l'",
247     "Bas-Rhin" => "du",
248     "Bouches-du-Rhône" => "des",
249     "Calvados" => "du",
250     "Cantal" => "du",
251     "Charente" => "de",
252     "Charente-Maritime" => "de",
253     "Cher" => "du",
254     "Corrèze" => "de",
255     "Corse-du-Sud" => "de",
256     "Côte-d'Or" => "de",
257     "Côtes-d'Armor" => "des",
258     "Creuse" => "de la",
259     "Deux-Sèvres" => "des",
260     "Dordogne" => "de la",
261     "Doubs" => "du",
262     "Drôme" => "de la",
263     "Essonne" => "de l'",
264     "Eure" => "de l'",
265     "Eure-et-Loir" => "d'",
266     "Finistère" => "du",
267     "Gard" => "du",
268     "Gers" => "du",
269     "Gironde" => "de la",
270     "Guadeloupe" => "de",
271     "Guyane" => "de",
272     "Haut-Rhin" => "du",
273     "Haute-Corse" => "de",
274     "Haute-Garonne" => "de la",
275     "Haute-Loire" => "de la",
276     "Haute-Marne" => "de la",
277     "Haute-Saône" => "de la",
278     "Haute-Savoie" => "de",
279     "Haute-Vienne" => "de la",
280     "Hautes-Alpes" => "des",
281     "Hautes-Pyrénées" => "des",
282     "Hauts-de-Seine" => "des",
283     "Hérault" => "de l'",
284     "Ille-et-Vilaine" => "d'",
285     "Indre" => "de l'",
286     "Indre-et-Loire" => "de l'",
287     "Isère" => "de l'",
288     "Jura" => "du",
289     "Landes" => "des",
290     "Loir-et-Cher" => "du",
291     "Loire" => "de la",
292     "Loire-Atlantique" => "de",
293     "Loiret" => "du",
294     "Lot" => "du",
295     "Lot-et-Garonne" => "du",
296     "Lozère" => "de la",
297     "Maine-et-Loire" => "du",
298     "Manche" => "de la",
299     "Marne" => "de la",
300     "Martinique" => "de",
301     "Mayenne" => "de la",
302     "Mayotte" => "de",
303     "Meurthe-et-Moselle" => "de",
304     "Meuse" => "de la",
305     "Morbihan" => "du",
306     "Moselle" => "de la",
307     "Nièvre" => "de la",
308     "Nord" => "du",
309     "Nouvelle-Calédonie" => "de la",
310     "Oise" => "de l'",
311     "Orne" => "de l'",
312     "Paris" => "de",
313     "Pas-de-Calais" => "du",
314     "Polynésie Française" => "de la",
315     "Puy-de-Dôme" => "du",
316     "Pyrénées-Atlantiques" => "des",
317     "Pyrénées-Orientales" => "des",
318     "Réunion" => "de la",
319     "Rhône" => "du",
320     "Saint-Pierre-et-Miquelon" => "de",
321     "Saône-et-Loire" => "de",
322     "Sarthe" => "de la",
323     "Savoie" => "de",
324     "Seine-et-Marne" => "de",
325     "Seine-Maritime" => "de",
326     "Seine-Saint-Denis" => "de",
327     "Somme" => "de la",
328     "Tarn" => "du",
329     "Tarn-et-Garonne" => "du",
330     "Territoire-de-Belfort" => "du",
331     "Val-d'Oise" => "du",
332     "Val-de-Marne" => "du",
333     "Var" => "du",
334     "Vaucluse" => "du",
335     "Vendée" => "de",
336     "Vienne" => "de la",
337     "Vosges" => "des",
338     "Wallis-et-Futuna" => "de",
339     "Yonne" => "de l'",
340     "Yvelines" => "des"
341    );
342 public function getPrefixeCirconscription() {
343     $prefixe = self::$dptmt_pref[trim($this->nom_circo)];
344    if (! preg_match("/'/", $prefixe)) $prefixe = $prefixe.' ';
345    return $prefixe;
346  }
347
348 public static $dptmt_nom = array(
349      "1" => "Ain",
350      "2" => "Aisne",
351      "3" => "Allier",
352      "4" => "Alpes-de-Haute-Provence",
353      "5" => "Hautes-Alpes",
354      "6" => "Alpes-Maritimes",
355      "7" => "Ardèche",
356      "8" => "Ardennes",
357      "9" => "Ariège",
358      "10" => "Aube",
359      "11" => "Aude",
360      "12" => "Aveyron",
361      "13" => "Bouches-du-Rhône",
362      "14" => "Calvados",
363      "15" => "Cantal",
364      "16" => "Charente",
365      "17" => "Charente-Maritime",
366      "18" => "Cher",
367      "19" => "Corrèze",
368      "2a" => "Corse-du-Sud",
369      "2b" => "Haute-Corse",
370      "21" => "Côte-d'Or",
371      "22" => "Côtes-d'Armor",
372      "23" => "Creuse",
373      "24" => "Dordogne",
374      "25" => "Doubs",
375      "26" => "Drôme",
376      "27" => "Eure",
377      "28" => "Eure-et-Loir",
378      "29" => "Finistère",
379      "30" => "Gard",
380      "31" => "Haute-Garonne",
381      "32" => "Gers",
382      "33" => "Gironde",
383      "34" => "Hérault",
384      "35" => "Ille-et-Vilaine",
385      "36" => "Indre",
386      "37" => "Indre-et-Loire",
387      "38" => "Isère",
388      "39" => "Jura",
389      "40" => "Landes",
390      "41" => "Loir-et-Cher",
391      "42" => "Loire",
392      "43" => "Haute-Loire",
393      "44" => "Loire-Atlantique",
394      "45" => "Loiret",
395      "46" => "Lot",
396      "47" => "Lot-et-Garonne",
397      "48" => "Lozère",
398      "49" => "Maine-et-Loire",
399      "50" => "Manche",
400      "51" => "Marne",
401      "52" => "Haute-Marne",
402      "53" => "Mayenne",
403      "54" => "Meurthe-et-Moselle",
404      "55" => "Meuse",
405      "56" => "Morbihan",
406      "57" => "Moselle",
407      "58" => "Nièvre",
408      "59" => "Nord",
409      "60" => "Oise",
410      "61" => "Orne",
411      "62" => "Pas-de-Calais",
412      "63" => "Puy-de-Dôme",
413      "64" => "Pyrénées-Atlantiques",
414      "65" => "Hautes-Pyrénées",
415      "66" => "Pyrénées-Orientales",
416      "67" => "Bas-Rhin",
417      "68" => "Haut-Rhin",
418      "69" => "Rhône",
419      "70" => "Haute-Saône",
420      "71" => "Saône-et-Loire",
421      "72" => "Sarthe",
422      "73" => "Savoie",
423      "74" => "Haute-Savoie",
424      "75" => "Paris",
425      "76" => "Seine-Maritime",
426      "77" => "Seine-et-Marne",
427      "78" => "Yvelines",
428      "79" => "Deux-Sèvres",
429      "80" => "Somme",
430      "81" => "Tarn",
431      "82" => "Tarn-et-Garonne",
432      "83" => "Var",
433      "84" => "Vaucluse",
434      "85" => "Vendée",
435      "86" => "Vienne",
436      "87" => "Haute-Vienne",
437      "88" => "Vosges",
438      "89" => "Yonne",
439      "90" => "Territoire-de-Belfort",
440      "91" => "Essonne",
441      "92" => "Hauts-de-Seine",
442      "93" => "Seine-Saint-Denis",
443      "94" => "Val-de-Marne",
444      "95" => "Val-d'Oise",
445      "971" => "Guadeloupe",
446      "972" => "Martinique",
447      "973" => "Guyane",
448      "974" => "Réunion",
449      "975" => "Saint-Pierre-et-Miquelon",
450      "976" => "Mayotte",
451    //  "977" => "Saint-Barthélémy",
452    //  "978" => "Saint-Martin",
453      "986" => "Wallis-et-Futuna",
454      "987" => "Polynésie Française",
455      "988" => "Nouvelle-Calédonie");
456  public static function getNomDepartement($numero) {
457    $numero = strtolower($numero);
458    if ( isset(self::$dptmt_nom["$numero"]) ) return $nom = self::$dptmt_nom["$numero"];
459    else return false;
460  }
461
462    static $nom_dptmt = array(
463      "ain" => "01",
464      "aisne" => "02",
465      "allier" => "03",
466      "alpes-de-haute-provence" => "04",
467      "hautes-alpes" => "05",
468      "alpes-maritimes" => "06",
469      "ardèche" => "07",
470      "ardennes" => "08",
471      "ariège" => "09",
472      "aube" => "10",
473      "aude" => "11",
474      "aveyron" => "12",
475      "bouches-du-rhône" => "13",
476      "calvados" => "14",
477      "cantal" => "15",
478      "charente" => "16",
479      "charente-maritime" => "17",
480      "cher" => "18",
481      "corrèze" => "19",
482      "corse-du-sud" => "2A",
483      "haute-corse" => "2B",
484      "côte-d'or" => "21",
485      "côtes-d'armor" => "22",
486      "creuse" => "23",
487      "dordogne" => "24",
488      "doubs" => "25",
489      "drôme" => "26",
490      "eure" => "27",
491      "eure-et-loir" => "28",
492      "finistère" => "29",
493      "gard" => "30",
494      "haute-garonne" => "31",
495      "gers" => "32",
496      "gironde" => "33",
497      "hérault" => "34",
498      "ille-et-vilaine" => "35",
499      "indre" => "36",
500      "indre-et-loire" => "37",
501      "isère" => "38",
502      "jura" => "39",
503      "landes" => "40",
504      "loir-et-cher" => "41",
505      "loire" => "42",
506      "haute-loire" => "43",
507      "loire-atlantique" => "44",
508      "loiret" => "45",
509      "lot" => "46",
510      "lot-et-garonne" => "47",
511      "lozère" => "48",
512      "maine-et-loire" => "49",
513      "manche" => "50",
514      "marne" => "51",
515      "haute-marne" => "52",
516      "mayenne" => "53",
517      "meurthe-et-moselle" => "54",
518      "meuse" => "55",
519      "morbihan" => "56",
520      "moselle" => "57",
521      "nièvre" => "58",
522      "nord" => "59",
523      "oise" => "60",
524      "orne" => "61",
525      "pas-de-calais" => "62",
526      "puy-de-dôme" => "63",
527      "pyrénées-atlantiques" => "64",
528      "hautes-pyrénées" => "65",
529      "pyrénées-orientales" => "66",
530      "bas-rhin" => "67",
531      "haut-rhin" => "68",
532      "rhône" => "69",
533      "haute-saône" => "70",
534      "saône-et-loire" => "71",
535      "sarthe" => "72",
536      "savoie" => "73",
537      "haute-savoie" => "74",
538      "paris" => "75",
539      "seine-maritime" => "76",
540      "seine-et-marne" => "77",
541      "yvelines" => "78",
542      "deux-sèvres" => "79",
543      "somme" => "80",
544      "tarn" => "81",
545      "tarn-et-garonne" => "82",
546      "var" => "83",
547      "vaucluse" => "84",
548      "vendée" => "85",
549      "vienne" => "86",
550      "haute-vienne" => "87",
551      "vosges" => "88",
552      "yonne" => "89",
553      "territoire-de-belfort" => "90",
554      "essonne" => "91",
555      "hauts-de-seine" => "92",
556      "seine-saint-denis" => "93",
557      "val-de-marne" => "94",
558      "val-d'oise" => "95",
559      "guadeloupe" => "971",
560      "martinique" => "972",
561      "guyane" => "973",
562      "réunion" => "974",
563      "saint-pierre-et-miquelon" => "975",
564      "mayotte" => "976",
565      "saint-barthélémy" => "977",
566      "saint-martin" => "978",
567      "wallis-et-futuna" => "986",
568      "polynésie française" => "987",
569      "nouvelle-calédonie" => "988");
570  public static function getNumeroDepartement($nom) {
571    $nom = strtolower($nom);
572    if (isset(self::$nom_dptmt[$nom])) return $numero = self::$nom_dptmt[$nom];
573    else return 0;
574  }
575
576  public function getTop() {
577    //A supprimer lorsque les top seront unifiés (cf. parlementaire action)
578    $s = preg_replace('/s:20:"hemicycle_invectives/', 's:31:"hemicycle_interventions_courtes', $this->_get('top'));
579    return unserialize($s);
580  }
581
582}
Note: See TracBrowser for help on using the repository browser.