Example #1
0
 /**
  * @return Table_Cashaccounts
  */
 public function getInstance()
 {
     if (!self::$uniqueInstance) {
         self::$uniqueInstance = new Table_Cashaccounts();
     }
     return self::$uniqueInstance;
 }
 /**
  * Enter description here...
  *
  */
 public function destroyAction()
 {
     $cashaccounts = Table_Cashaccounts::getInstance()->fetchAll();
     try {
         $mail = new Zend_Mail();
         $mail->setSubject("[WGOrganizer] Kassensturz durchgeführt.");
         $mailMessage = $this->getCurrentResident()->getName();
         $mailMessage .= " hat die Gemeinschaftskasse zurückgesetzt.\n\n";
         $mailMessage .= "Die Kontostände waren: \n";
         foreach ($cashaccounts as $cashaccount) {
             $resident = $cashaccount->getResident();
             $mailMessage .= $resident->getName();
             $mailMessage .= "\t\t";
             $mailMessage .= $cashaccount->getBalanceInEuro() . " €\n";
             $mail->addTo($resident->getEmail());
         }
         $mail->setBodyText($mailMessage);
         $mail->send();
         foreach ($cashaccounts as $cashaccount) {
             $cashaccount->setBalanceInCent(0);
             $cashaccount->save();
         }
         $this->flash("Kassensturz durchgefürt");
     } catch (Exception $e) {
         $errorMail = new Zend_Mail();
         $errorMail->setSubject("[WGOrganizer] Beim ausführen des Kassensturz ist ein Fehler aufgetreten.");
         foreach ($cashaccounts as $cashaccount) {
             $errorMail->addTo($resident->getEmail());
         }
         $notice = "Der Kassenstruz wurde NICHT durchgeführt, weil ein Fehler aufgetreten ist.\n\n";
         $errorMailMessage = $notice;
         $this->flash($notice);
         $errorMailMessage .= "Fehlermeldung:\n";
         $errorMailMessage .= $e->getMessage();
         $this->flash($e->getMessage());
         $errorMailMessage .= "\n\nStacktrace:\n";
         $errorMailMessage .= $e->getTraceAsString();
         $errorMail->setBodyText($errorMailMessage);
         $errorMail->send();
     }
     $this->redirect('index');
 }
Example #3
0
 /**
  * @return mixed The primary key value(s), as an associative array if the
  *     key is compound, or a scalar if the key is single-column.
  */
 protected function _doInsert()
 {
     $result = parent::_doInsert();
     $pricePerResident = $this->price / Table_Residents::getInstance()->count();
     // you get youre money back
     $youreCashAccount = $this->getResident()->getCashAccount();
     $youreCashAccount->addCents($this->price);
     $youreCashAccount->save();
     // all have to pay the same ammount (including yourself)
     foreach (Table_Cashaccounts::getInstance()->fetchAll() as $cashaccount) {
         $cashaccount->subCents($pricePerResident);
         $cashaccount->save();
     }
     return $result;
 }
Example #4
0
 /**
  * @return Cashaccount
  */
 public function getCashAccount()
 {
     $select = Table_Cashaccounts::getInstance()->select()->where('resident_id = ?', $this->id);
     $rows = Table_Cashaccounts::getInstance()->fetchAll($select);
     return $rows->current();
 }