source: cpc/trunk/project/lib/task/loadDocumentsTask.class.php @ 1372

Last change on this file since 1372 was 1372, checked in by teymour, 11 years ago

Intégration des multi signataires

File size: 2.9 KB
Line 
1<?php
2
3class loadDocumentsTask extends sfBaseTask {
4  protected function configure() {
5    $this->namespace = 'load';
6    $this->name = 'Documents';
7    $this->briefDescription = 'Load Documents data';
8    $this->addOption('env', null, sfCommandOption::PARAMETER_OPTIONAL, 'Changes the environment this task is run in', 'test');
9    $this->addOption('app', null, sfCommandOption::PARAMETER_OPTIONAL, 'Changes the environment this task is run in', 'frontend');
10  }
11
12  protected function execute($arguments = array(), $options = array()) {
13    $dir = dirname(__FILE__).'/../../batch/documents/out/';
14    $manager = new sfDatabaseManager($this->configuration);
15
16    if (is_dir($dir)) {
17      if ($dh = opendir($dir)) {
18        while (($file = readdir($dh)) != false) {
19          if ($file == ".." || $file == "." || $file == ".svn") continue;
20          foreach(file($dir.$file) as $line) {
21            echo "try $dir$file :\n";
22            $json = json_decode($line);
23            if (!$json )
24            {
25              echo "ERROR json : $dir$file\n";
26              continue;
27            }
28            if (!$json->source)
29              {echo "ERROR source : $dir$file\n"; continue;}
30            if (!$json->legislature)
31              {echo "ERROR legislature : $dir$file\n"; continue;}
32            if (!$json->id)
33              {echo "ERROR id : $dir$file\n"; continue;}
34            if (!$json->numero)
35              {echo "ERROR numero : $dir$file\n"; continue;}
36            if(!$json->date_depot)
37              {echo "ERROR date_depot : $dir$file\n"; continue;}
38            if (!$json->dossier)
39              {echo "ERROR dossier : $dir$file\n"; continue;}
40            if (!$json->type)
41              {echo "ERROR type : $dir$file\n"; continue;}
42            $doc = Doctrine::getTable('Texteloi')->find($json->id);
43            if (!$doc) {
44              $doc = new Texteloi();
45              $doc->id = $json->id;
46              $doc->source = $json->source;
47              $doc->legislature = $json->legislature;
48              $doc->numero = $json->numero;
49              if ($json->annexe != "")
50                $doc->annexe = $json->annexe;
51              $doc->date = $json->date_depot;
52              $doc->type = $json->type;
53              //              $doc->save();
54            }
55            if ($json->date_publi)
56              $doc->date = $json->date_publi;
57            $doc->setDossier($json->dossier);
58            if ($json->type_details)
59              $doc->type_details = $json->type_details;
60            if ($json->titre)
61              $doc->titre = $json->titre;
62            if ($json->categorie)
63              $doc->categorie = $json->categorie;
64            if ($json->auteurs)
65              $doc->setAuteurs($json->auteurs);
66            if ($json->motscles)
67              foreach (explode('.', $json->motscles) as $tag)
68                if (strlen($tag) < 100)
69                  $doc->addTag($tag);
70            if ($json->contenu)
71              $doc->setContenu($json->contenu);
72            $doc->save();
73            echo "$dir$file DONE\n";
74          }
75          unlink($dir.$file);
76        }
77        closedir($dh);
78      }
79    }
80  }
81}
Note: See TracBrowser for help on using the repository browser.