<?php
namespace App\Controller;
use App\Form\MembershipCancellationType;
use phpDocumentor\Reflection\Types\Object_;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use App\Form\MembershipRegisterType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Mime\Email;
use Symfony\Component\Mailer\MailerInterface;
/**
* @Route("/mitgliedschaft", name="membership_")
*/
class MembershipController extends AbstractController
{
/**
* @Route("/", name="index")
*/
public function index(Request $request, MailerInterface $mailer)
{
/* Form register */
$formRegister = $this->createForm(MembershipRegisterType::class);
$formRegister->handleRequest($request);
if($formRegister->isSubmitted() && $formRegister->isValid()) {
$registerFormData = $formRegister->getData();
/* COR employee */
if ($registerFormData['employeeOfCorCompany'] === 1) {
$employeeOfCorCompany = 'Ja';
} else {
$employeeOfCorCompany = 'Nein';
}
/* Minors
if ($registerFormData['minors'] === 1) {
$minors = 'Ja';
} else {
$minors = 'Nein';
} */
$registerFormMessageClub = (new Email())
->from('noreply@ctc-rheda.de')
->to('c-ctc@studionuca.com')
->bcc('presse@ctc-rheda.de')
->subject('Registrierung Mitgliedschaft')
->text(
'Es ist eine neue Registrierung zur Mitgliedschaft durch www.ctc-rheda.de/mitgliedschaft/ eingegangen.'.\PHP_EOL.\PHP_EOL.
'Absender: '.$registerFormData['email'].\PHP_EOL.\PHP_EOL.
'Stammdaten'.\PHP_EOL.
'Vorname: '.$registerFormData['firstName'].\PHP_EOL.
'Nachname: '.$registerFormData['lastName'].\PHP_EOL.
'Telefon: '.$registerFormData['phoneNumber'].\PHP_EOL.
'Geburtstag: '.$registerFormData['birthDate']->format('d.m.Y').\PHP_EOL.
/*'Minderjährig: '.$minors.\PHP_EOL.\PHP_EOL.*/
'Anschrift'.\PHP_EOL.
'Straße: '.$registerFormData['street'].\PHP_EOL.
'PLZ: '.$registerFormData['zipCode'].\PHP_EOL.
'Stadt: '.$registerFormData['city'].\PHP_EOL.\PHP_EOL.
'Mitgliedschaftsinformationen'.\PHP_EOL.
'Mitgliedschaft: '.$registerFormData['membership'].\PHP_EOL.
'COR Mitarbeiter: '.$employeeOfCorCompany.\PHP_EOL.
'Team Matches: '.$registerFormData['teamMatches'].\PHP_EOL.
'Spielerpass: '.$registerFormData['playerPass'].\PHP_EOL.\PHP_EOL.
'Zahlungsinformationen'.\PHP_EOL.
'Vorname: '.$registerFormData['paymentFirstName'].\PHP_EOL.
'Nachname: '.$registerFormData['paymentLastName'].\PHP_EOL.
'IBAN: '.$registerFormData['paymentIban'].\PHP_EOL.
'Sonstiges'.\PHP_EOL.
'Anmerkungen: '.$registerFormData['notes'].\PHP_EOL
);
$mailer->send($registerFormMessageClub);
$registerFormMessageResponse = (new Email())
->from('noreply@ctc-rheda.de')
->to($registerFormData['email'])
->subject('Registrierung Mitgliedschaft')
->html(
'Liebe/r '.$registerFormData['firstName'].',<br><br>'.
'wir freuen uns sehr, dich als neues Mitglied im Cor Tennisclub Rheda begrüßen zu dürfen!<br><br>'.
'Über unsere Website <a href="https://www.ctc-rheda.de">CTC-Rheda.de</a> kannst du dich im Buchungssystem eTennis registrieren und anschließend Platzbuchungen für die Sommersaison vornehmen.<br><br>'.
'Damit du keine wichtigen Informationen rund um den Verein verpasst, tritt gerne unserer WhatsApp-Gruppe „CTC-News" über folgenden Link bei:<br>'.
'👉 <a href="https://chat.whatsapp.com/DmAKAa7AzTrBFsoNmWRyZX">https://chat.whatsapp.com/DmAKAa7AzTrBFsoNmWRyZX</a><br><br>'.
'Der Mitgliedsbeitrag für das Jahr 2025 wird halbjährlich von dem bei der Registrierung angegebenen Konto eingezogen. Wir bitten dich, die vom Cor Tennisclub Rheda e.V. (Gläubiger-ID: DE84CTC00001045281) veranlasste Lastschrift einzulösen.<br><br>'.
'NEU: Wir möchten die Digitalisierung im Verein weiter vorantreiben und gleichzeitig einen Beitrag zum Umweltschutz leisten. Daher werden wir künftig auf postalische Schreiben verzichten und wichtige Mitteilungen ausschließlich per E-Mail versenden.<br><br>'.
'Solltest du eine „Auszubildende / Studenten"-Mitgliedschaft abgeschlossen haben, bitten wir dich, uns noch einen entsprechenden Nachweis per E-Mail zuzusenden, da sonst der Beitrag nicht aktiv wird.<br><br>'.
'Wir wünschen dir viel sportliches und geselliges Vergnügen im Cor Tennisclub Rheda!<br><br>'.
'Vielen Dank!<br><br>'.
'Mit sportlichen Grüßen<br>'.
'Cor TC Rheda e.V.<br>'.
'René Klindt (1. Vorsitzender)'
);
$mailer->send($registerFormMessageResponse);
$successType = 'anmeldung-erfolgreich';
return $this->redirectToRoute('membership_success', array('successType' => $successType));
}
/* Form cancellation */
$formCancellation = $this->createForm(MembershipCancellationType::class);
$formCancellation->handleRequest($request);
if($formCancellation->isSubmitted() && $formCancellation->isValid()) {
$cancellationFormData = $formCancellation->getData();
$cancellationFormMessageClub = (new Email())
->from('noreply@ctc-rheda.de')
->to('c-ctc@studionuca.com')
->bcc('presse@ctc-rheda.de')
->subject('Abmeldung Mitgliedschaft')
->text(
'Es ist eine neue Abmeldung zur Mitgliedschaft durch www.ctc-rheda.de/mitgliedschaft/ eingegangen.'.\PHP_EOL.\PHP_EOL.
'Absender: '.$cancellationFormData['email'].\PHP_EOL.\PHP_EOL.
'Stammdaten'.\PHP_EOL.
'Vorname: '.$cancellationFormData['firstName'].\PHP_EOL.
'Nachname: '.$cancellationFormData['lastName'].\PHP_EOL.
'Geburtstag: '.$cancellationFormData['birthDate']->format('d.m.Y').\PHP_EOL.\PHP_EOL.
'Mitgliedschaftsinformationen'.\PHP_EOL.
'Grund: '.$cancellationFormData['reason'].\PHP_EOL.\PHP_EOL.
'Sonstiges'.\PHP_EOL.
'Anmerkungen: '.$cancellationFormData['notes'].\PHP_EOL
);
$mailer->send($cancellationFormMessageClub);
$cancellationFormMessageResponse = (new Email())
->from('noreply@ctc-rheda.de')
->to($cancellationFormData['email'])
->subject('Kündigung Mitgliedschaft')
->html(
'Liebe/r '.$cancellationFormData['firstName'].',<br><br>'.
'die Kündigung der Mitgliedschaft haben wir mit Bedauern zur Kenntnis genommen.<br><br>'.
'Die Mitgliedschaft endet satzungsgemäß am 31.12.'.date('Y').'.<br><br>'.
'Die uns gegebene Beitrags-Einzugsermächtigung für die Mitgliedschaft erlischt mit dem zuvor genannten Datum.'.'<br><br>'.
'Mit sportlichen Grüßen<br>'.
'Cor TC Rheda e.V.<br>'.
'René Klindt (1. Vorsitzender)'
);
$mailer->send($cancellationFormMessageResponse);
$this->addFlash('success', 'Your message has been sent');
$successType = 'abmeldung-erfolgreich';
return $this->redirectToRoute('membership_success', array('successType' => $successType));
}
/* Get meta from api */
$metaJson = null;
try {
$metaJsonPath = @file_get_contents('https://api.ctc-rheda.de/api/singletons/get/membership?token=863f1ccdb97de3b924e07b600ce0f5');
if ($metaJsonPath !== false) {
$metaJson = json_decode($metaJsonPath, true);
}
} catch (\Exception $e) {
// Log the error if needed
error_log('API Error in MembershipController: ' . $e->getMessage());
}
// Fallback if API is not available
if ($metaJson === null) {
$metaJson = [
'title' => 'Mitgliedschaft',
'description' => 'Du möchtest Mitglied im CTC werden? Kein Problem. Hier findest Du alle notwendigen Informationen zur Mitgliedschaft.',
'keywords' => 'Tennis, Mitgliedschaft, CTC, Rheda'
];
}
return $this->render('pages/membership.html.twig', [
'page' => array(
'title' => 'Mitgliedschaft',
'description' => 'Du möchtest Mitglied im CTC werden? Kein Problem. Hier findest Du alle notwendigen Informationen zur Mitgliedschaft.',
'meta' => $metaJson
),
'registrationForm' => $formRegister->createView(),
'cancellationForm' => $formCancellation->createView()
]);
}
/**
* @Route("/{successType}/", name="success")
*/
public function membershipSuccess($successType)
{
// $successType = $this->get($successType);
return $this->render('pages/membership-form-success.html.twig', [
'successType' => $successType,
'page' => array(
'title' => 'Formular abgesendet',
'description' => 'Deine Daten wurden erfolgreich übermittelt.'
)
]);
}
}