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;
 }