/**
  * E-Mail-Benachrichtigungen überfälliger Anträge verschicken
  */
 public function actionEmail()
 {
     /** @var Antrag[] $abgelaufen */
     $abgelaufen = [];
     /** @var Antrag[] $verlaengert */
     $verlaengert = [];
     $abgelaufenStr = $verlaengertStr = '';
     /** @var Antrag[] $antraege */
     $antraege = Antrag::getAbgelaufene();
     foreach ($antraege as $antrag) {
         $abgelaufen[] = $antrag;
         if ($abgelaufenStr == '') {
             $abgelaufenStr = "Die Bearbeitungsfrist folgender Anträge ist abgelaufen:\n\n";
         }
         $abgelaufenStr .= "- " . str_replace("\n", "", $antrag->titel) . "\n";
         $abgelaufenStr .= "  https://www.muenchen-transparent.de/antraege/" . $antrag->ris_id . "\n";
         $abgelaufenStr .= "  Status: " . $antrag->status . "\n";
         $abgelaufenStr .= "  Gestellt am: " . $antrag->gestellt_am . "\n";
         $abgelaufenStr .= "  Ursprüngliche Frist: " . $antrag->bearbeitungsfrist . "\n";
         if ($antrag->fristverlaengerung) {
             $abgelaufenStr .= "  Fristverlängerung: " . $antrag->fristverlaengerung . "\n";
         }
         $abgelaufenStr .= "\n";
     }
     $verlaengertSql = 'fristverlaengerung IS NOT NULL AND fristverlaengerung_benachrichtigung IS NULL';
     $verlaengertSql .= ' AND status != "erledigt"';
     /** @var Antrag[] $antraege */
     $antraege = Antrag::find()->where($verlaengertSql)->all();
     foreach ($antraege as $antrag) {
         $verlaengert[] = $antrag;
         if ($verlaengertStr == '') {
             $verlaengertStr = "Die Bearbeitungsfrist folgender Anträge wurde verlängert:\n\n";
         }
         $verlaengertStr .= "- " . str_replace("\n", "", $antrag->titel) . "\n";
         $verlaengertStr .= "  https://www.muenchen-transparent.de/antraege/" . $antrag->ris_id . "\n";
         $verlaengertStr .= "  Status: " . $antrag->status . "\n";
         $verlaengertStr .= "  Gestellt am: " . HtmlTools::formatDate($antrag->gestellt_am) . "\n";
         $verlaengertStr .= "  Ursprüngliche Frist: " . HtmlTools::formatDate($antrag->bearbeitungsfrist) . "\n";
         $verlaengertStr .= "  Neue (verlängerte) Frist: " . HtmlTools::formatDate($antrag->fristverlaengerung) . "\n\n";
     }
     if (count($abgelaufen) == 0 && count($verlaengert) == 0) {
         return;
     }
     $mail = "Hallo,\n\n" . $abgelaufenStr . $verlaengertStr;
     $mail .= "\n\nMit freundlichen Grüßen,\n  Der nette grüne Stadtrats-Roboter";
     foreach (\Yii::$app->params['mailTo'] as $mailTo) {
         Mailgun::sendWithLog($mailTo, 'Verspätungsalarm: Stadtrats-Anträge', $mail);
     }
     echo $mail;
     // @TODO
     foreach ($abgelaufen as $antrag) {
         $antrag->bearbeitungsfrist_benachrichtigung = date('Y-m-d H:i:s');
         $antrag->save();
     }
     foreach ($verlaengert as $antrag) {
         $antrag->fristverlaengerung_benachrichtigung = date('Y-m-d H:i:s');
         $antrag->save();
     }
 }
Exemplo n.º 2
0
 /**
  * @return Antrag[]
  */
 public static function getAbgelaufene()
 {
     $sql = 'bearbeitungsfrist <= CURRENT_DATE() ' . 'AND (fristverlaengerung IS NULL OR fristverlaengerung <= CURRENT_DATE()) ' . 'AND NOT ((status_override = "" AND status = "erledigt") OR status_override = "erledigt") ' . 'AND bearbeitungsfrist_benachrichtigung IS NULL';
     return Antrag::find()->where($sql)->all();
 }