source: cpc/trunk/project/lib/task/updateDeputesTask.class.php @ 1274

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

doctrine au lieu de Doctrine ne semble plus marcher sous linux avec la 1.4

File size: 2.6 KB
Line 
1<?php
2
3class updateDeputesTask extends sfBaseTask
4{
5  protected function configure()
6  {
7    $this->namespace = 'update';
8    $this->name = 'Deputes';
9    $this->briefDescription = 'Update Deputes';
10    $this->addOption('env', null, sfCommandOption::PARAMETER_OPTIONAL, 'Changes the environment this task is run in', 'test');
11    $this->addOption('app', null, sfCommandOption::PARAMETER_OPTIONAL, 'Changes the environment this task is run in', 'frontend');
12  }
13 
14  protected function splitArrayJson($json) {
15    $res = array();
16    foreach($json as $j) {
17      if ($j) 
18        array_push($res, explode(' / ', $j));
19    }
20    return $res;
21  }
22
23  protected function execute($arguments = array(), $options = array())
24  {
25    $dir = dirname(__FILE__).'/../../batch/depute/out/';
26    $manager = new sfDatabaseManager($this->configuration);   
27
28    if (is_dir($dir)) {
29      if ($dh = opendir($dir)) {
30        while (($file = readdir($dh)) !== false) {
31          $sections = array();
32          if (preg_match('/^\./', $file))
33            continue;
34//        echo "$dir$file\n";
35          foreach(file($dir.$file) as $line) {
36            $json = json_decode($line);
37            if (!isset($json->nom) || !$json->nom)
38              next;
39//          echo "-".$json->nom." ".$json->id_an."\n";
40            $parl = Doctrine::getTable('Parlementaire')->findOneByNom($json->nom);
41            if (!$parl) {
42              $parl = new Parlementaire();
43              $parl->type = 'depute';
44              $parl->nom = $json->nom;
45              $parl->nom_de_famille = $json->nom_de_famille;
46              $parl->sexe = $json->sexe;
47            }
48            if ($json->circonscription)
49              $parl->circonscription = $json->circonscription;
50            if (count($json->adresses))
51              $parl->adresses = $json->adresses;
52            if (count($json->autresmandats))
53              $parl->autres_mandats = $json->autresmandats;
54            if ($json->groupe)
55              $parl->groupe = $this->splitArrayJson($json->groupe);
56            if (count($json->extras))
57              $parl->extras = $this->splitArrayJson($json->extras);
58            if (count($json->fonctions))
59              $parl->fonctions = $this->splitArrayJson($json->fonctions);
60            $parl->debut_mandat = $json->debut_mandat;
61            $parl->fin_mandat = $json->fin_mandat;
62            if ($json->id_an)
63              $parl->id_an = $json->id_an;
64            if (count($json->mails))
65                $parl->mails = $json->mails;
66            if ($json->photo)
67              $parl->photo = $json->photo;
68            if ($json->place_hemicycle)
69              $parl->place_hemicycle = $json->place_hemicycle;
70            if ($json->profession)
71              $parl->profession = $json->profession;
72            if ($json->site_web)
73              $parl->site_web = $json->site_web;
74            if ($json->url_an)
75              $parl->url_an = $json->url_an;
76            $parl->save();
77          }
78        }
79      }
80    }
81  }
82}
Note: See TracBrowser for help on using the repository browser.