Exemplo n.º 1
0
 /**
  * @param string $typ
  * @param Antrag|Termin|Tagesordnungspunkt $antrag_termin_tagesordnungspunkt
  * @param array $dok
  * @throws Exception
  * @return string
  */
 public static function create_if_necessary($typ, $antrag_termin_tagesordnungspunkt, $dok)
 {
     $x = explode("/", $dok["url"]);
     $dokument_id = IntVal($x[count($x) - 1]);
     /** @var Dokument|null $dokument */
     $dokument = Dokument::model()->disableDefaultScope()->findByPk($dokument_id);
     if ($dokument) {
         if ($dokument->name != $dok["name"] || $dokument->name_title != $dok["name_title"]) {
             echo "- Dokumententitel geändert: " . $dokument->name . " (" . $dokument->name_title . ")";
             echo "=> " . $dok["name"] . " (" . $dok["name_title"] . ")\n";
             $dokument->name = $dok["name"];
             $dokument->name_title = $dok["name_title"];
             $dokument->save();
         }
         return "";
     }
     $dokument = new Dokument();
     $dokument->id = $dokument_id;
     $dokument->typ = $typ;
     $dokument->name_title = "";
     $dokument->datum_dokument = null;
     if (is_a($antrag_termin_tagesordnungspunkt, "Antrag")) {
         $dokument->antrag_id = $antrag_termin_tagesordnungspunkt->id;
     }
     if (is_a($antrag_termin_tagesordnungspunkt, "Termin")) {
         $dokument->termin_id = $antrag_termin_tagesordnungspunkt->id;
     }
     if (is_a($antrag_termin_tagesordnungspunkt, "Tagesordnungspunkt")) {
         $dokument->tagesordnungspunkt_id = $antrag_termin_tagesordnungspunkt->id;
     }
     $dokument->url = $dok["url"];
     $dokument->name = $dok["name"];
     $dokument->datum = date("Y-m-d H:i:s");
     $dokument->deleted = 0;
     if (defined("NO_TEXT")) {
         throw new Exception("Noch nicht implementiert");
     } else {
         $dokument->download_and_parse();
     }
     if (!$dokument->save()) {
         RISTools::send_email(Yii::app()->params['adminEmail'], "Dokument:create_if_necessary Error", print_r($dokument->getErrors(), true), null, "system");
         throw new Exception("Fehler");
     }
     $dokument->geo_extract();
     $dokument->solrIndex();
     $dokument->highlightBenachrichtigung();
     return "Neue Datei: " . $dokument_id . " / " . $dok["name"] . "\n";
 }