/** * Grid column render * @param Payment $e * @return string */ public function statusRender($e) { return $this->tt(PaymentStatus::getOptions()[$e->getStatus()]); }
/** * Method for handling single onCreate event * @param SeasonApplication $app * @return void * @throws Exceptions\InvalidStateException */ public function onCreate(SeasonApplication $app) { $amount = null; $season = $app->getSeason(); $group = $app->getSportGroup(); try { $tax = $this->seasonTaxService->getSeasonTaxSG($season, $group); if ($tax !== null) { $amount = $tax->getMemberShip(); if (empty($amount) || $amount == 0) { return; } } else { throw new Exceptions\InvalidStateException("Season tax for season {$season} and group {$group} does not exist"); } } catch (Exceptions\DataErrorException $ex) { $this->logger->addError("Application listener - onCreate - getSeasonTaxSG failed with - " . $ex->getMessage()); return; } $subject = "Application for " . $app->getSportGroup()->getName() . " (" . $app->getSportGroup()->getSportType()->getName() . ") within " . $app->getSeason()->getLabel() . " season"; $payment = new Payment(); $payment->setOwner($app->getOwner()); $payment->setSeason($app->getSeason()); $payment->setSubject($subject); $payment->setAmount($amount); $payment->setDueDate($this->paymentService->getDefaultDueDate()); $payment->setOrderedDate(new DateTime()); $payment->setEditor($app->getEditor()); $payment->setStatus(PaymentStatus::NOT_YET); $payment->setVs($this->paymentService->generateVs($payment)); $payment->setPublicNote(""); $payment->setProtectedNote(""); try { $this->paymentService->createPayment($payment); $app->setPayment($payment); $this->seasonApplicationService->updateSeasonApplication($app); } catch (Exceptions\DataErrorException $ex) { $this->logger->addError("Application listener - onCreate - savingData failed with - " . $ex->getMessage()); return; } }
public function notifyNewPayment(Payment $p) { $u = $p->getOwner(); $subjKey = "systemModule.notification.newPayment.subject"; $bodyKey = "systemModule.notification.newPayment.body"; $subject = $this->translator->translate($subjKey, null, ["host" => $this->getHostName()]); $body = $this->translator->translate($bodyKey, null, ["name" => $u->getName(), "surname" => $u->getSurname()]); $mail = new Message(); $mail->setFrom($this->getSenderEmail())->setSubject($subject)->setBody($body)->addTo($u->getContact()->getEmail()); $this->send($mail); }
public function generateVs(Payment $p) { if ($p == null) { return rand(1000, 99999); } $vs = $p->getVs(); if (empty($vs)) { return $p->getOwner()->getBirthNumber(); } return $p->getVs(); }