/** * @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"; }