public function actionDokumente($id) { $this->load_pdf_js = true; /** @var Dokument $dokument */ $dokument = Dokument::getCachedByID($id); if (!$dokument) { $this->render('error', ["code" => 404, "message" => "Das Dokument wurde leider nicht gefunden."]); } else { $this->render('dokumentenanzeige', ["id" => $id, "dokument" => $dokument]); } }
/** * @param int $zeitspanne * @return array */ public function benachrichtigungsErgebnisse($zeitspanne) { $benachrichtigungen = $this->getBenachrichtigungen(); if ($zeitspanne > 0) { $neu_seit_ts = time() - $zeitspanne * 24 * 3600; $neu_seit = date("Y-m-d H:i:s", $neu_seit_ts); } else { $neu_seit = $this->datum_letzte_benachrichtigung; $neu_seit_ts = RISTools::date_iso2timestamp($neu_seit); } $ergebnisse = ["antraege" => [], "termine" => [], "vorgaenge" => []]; $sql = Yii::app()->db->createCommand(); $sql->select("id")->from("dokumente")->where("datum >= '" . addslashes($neu_seit) . "'"); $data = $sql->queryColumn(["id"]); if (count($data) > 0) { $document_ids = []; foreach ($data as $did) { $document_ids[] = "id:\"Document:{$did}\""; } foreach ($benachrichtigungen as $benachrichtigung) { $e = $this->queryBenachrichtigungen($document_ids, $benachrichtigung); foreach ($e as $f) { $d = explode(":", $f["id"]); $dokument_id = IntVal($d[1]); $dokument = Dokument::getCachedByID($dokument_id); if (!$dokument) { continue; } if ($dokument->antrag_id > 0) { if (!isset($ergebnisse["antraege"][$dokument->antrag_id])) { $ergebnisse["antraege"][$dokument->antrag_id] = ["antrag" => $dokument->antrag, "dokumente" => []]; } if (!isset($ergebnisse["antraege"][$dokument->antrag_id]["dokumente"][$dokument_id])) { $ergebnisse["antraege"][$dokument->antrag_id]["dokumente"][$dokument_id] = ["dokument" => Dokument::model()->findByPk($dokument_id), "queries" => []]; } $ergebnisse["antraege"][$dokument->antrag_id]["dokumente"][$dokument_id]["queries"][] = $benachrichtigung; } elseif ($dokument->termin_id > 0) { if (!isset($ergebnisse["termine"][$dokument->termin_id])) { $ergebnisse["termine"][$dokument->termin_id] = ["termin" => $dokument->termin, "dokumente" => []]; } if (!isset($ergebnisse["termine"][$dokument->termin_id]["dokumente"][$dokument_id])) { $ergebnisse["termine"][$dokument->termin_id]["dokumente"][$dokument_id] = ["dokument" => Dokument::model()->findByPk($dokument_id), "queries" => []]; } $ergebnisse["termine"][$dokument->termin_id]["dokumente"][$dokument_id]["queries"][] = $benachrichtigung; } } } } foreach ($this->abonnierte_vorgaenge as $vorgang) { foreach ($vorgang->antraege as $ant) { if (RISTools::date_iso2timestamp($ant->datum_letzte_aenderung) < $neu_seit_ts) { continue; } if (!isset($ergebnisse["vorgaenge"][$vorgang->id])) { $ergebnisse["vorgaenge"][$vorgang->id] = ["vorgang" => $vorgang->wichtigstesRisItem()->getName(true), "neues" => []]; } $ant->findeAenderungen(time()); $ergebnisse["vorgaenge"][$vorgang->id]["neues"][] = $ant; } foreach ($vorgang->dokumente as $dok) { if (RISTools::date_iso2timestamp($dok->datum) < $neu_seit_ts) { continue; } if (!isset($ergebnisse["vorgaenge"][$vorgang->id])) { $ergebnisse["vorgaenge"][$vorgang->id] = ["vorgang" => $vorgang->wichtigstesRisItem()->getName(true), "neues" => []]; } $ergebnisse["vorgaenge"][$vorgang->id]["neues"][] = $dok; } foreach ($vorgang->ergebnisse as $erg) { if (RISTools::date_iso2timestamp($erg->datum_letzte_aenderung) < $neu_seit_ts) { continue; } if (!isset($ergebnisse["vorgaenge"][$vorgang->id])) { $ergebnisse["vorgaenge"][$vorgang->id] = ["vorgang" => $vorgang->wichtigstesRisItem()->getName(true), "neues" => []]; } $ergebnisse["vorgaenge"][$vorgang->id]["neues"][] = $erg; } } return $ergebnisse; }