public function parse($id) { /** @var Rathausumschau $ru */ $ru = Rathausumschau::model()->findByPk($id); if (count($ru->dokumente) > 0 && $ru->dokumente[0]->text_pdf != "") { return; } if (count($ru->dokumente) > 0) { if ($ru->dokumente[0]->text_pdf != "") { return; } $dokument = $ru->dokumente[0]; } else { $result = Yii::app()->db->createCommand("SELECT MIN(id) minid FROM dokumente")->queryAll(); $id = $result[0]["minid"]; if ($id >= 0) { $id = 0; } $id--; $dokument = new Dokument(); $dokument->id = $id; $dokument->typ = Dokument::$TYP_RATHAUSUMSCHAU; $dokument->rathausumschau_id = $ru->id; } $dokument->url = $ru->url; $dokument->datum = $ru->datum; $dokument->datum_dokument = $ru->datum; $dokument->name = "Rathausumschau " . $ru->nr . "/" . substr($ru->datum, 0, 4); $dokument->text_pdf = ""; if (!$dokument->save()) { var_dump($dokument->getErrors()); die; } $dokument->reDownloadIndex(); echo "Load: " . $ru->url . "\n"; }
exit; } $gliederungid = $dokumenttemplate->getDokumentGliederungID($session); $kategorieid = $dokumenttemplate->getDokumentKategorieID($session); $statusid = $dokumenttemplate->getDokumentStatusID($session); $file = $dokumenttemplate->getDokumentFile($session); if (!$session->isAllowed("dokumente_create", $gliederungid)) { $api->output(array("failed" => "PERMISSION_DENIED"), 403); exit; } if ($file == null) { $api->output(array("failed" => "FILE_MISSING"), 400); } else { $dokument = new Dokument($session->getStorage()); // Zwischenspeichern um die ID zu bekommen $dokument->save(); $revision = new DokumentRevision($session->getStorage()); $revision->setDokument($dokument); $revision->setUser($session->getUser()); $revision->setTimestamp(time()); $revision->setGliederungID($gliederungid); $revision->setKategorieID($kategorieid); $revision->setStatusID($statusid); $revision->setIdentifier($dokumenttemplate->getDokumentIdentifier($session)); $revision->setLabel($dokumenttemplate->getDokumentLabel($session)); $revision->setFile($file); $revision->setData($dokumenttemplate->getDokumentData($session)); $revision->setKommentar($dokumenttemplate->getDokumentKommentar($session)); foreach ($dokumenttemplate->getDokumentFlags($session) as $flagid) { $flag = $session->getStorage()->getDokumentFlag($flagid); $revision->setFlag($flag);
/** * @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"; }