/** * 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'); }
/** * @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; }
/** * @return Cashaccount */ public function getCashAccount() { $select = Table_Cashaccounts::getInstance()->select()->where('resident_id = ?', $this->id); $rows = Table_Cashaccounts::getInstance()->fetchAll($select); return $rows->current(); }