From 7d465897a7cc20c07f2dc5075036895cc7eda06d Mon Sep 17 00:00:00 2001 From: Artur Savitskiy Date: Tue, 14 May 2024 00:05:57 +0200 Subject: [PATCH] Add sendmail to admin Add price calculation Add link to privacy policy --- backend/api/registrations/set.php | 16 ++++++++ backend/utils/config.php | 4 ++ .../registration-wizard.component.html | 8 ++-- .../registration-wizard.component.scss | 1 + .../registration-wizard.component.ts | 39 ++++++++++++++++--- 5 files changed, 60 insertions(+), 8 deletions(-) diff --git a/backend/api/registrations/set.php b/backend/api/registrations/set.php index 301ba48..449055c 100644 --- a/backend/api/registrations/set.php +++ b/backend/api/registrations/set.php @@ -76,5 +76,21 @@ $result = mysqli_query($connection, $querystr); + $to = REGISTRATION_MAIL; + $title = 'Neue Anmeldung bei Li-Dance'; + $message = " + Neue Anmeldung bei Li-Dance +

{$firstname} {$lastname} aus {$city} hat sich angemeldet.

+

Btte bearbeite diese möglichst schnell: Zur Anmeldung

+ "; + + $header[] = 'MIME-Version: 1.0'; + $header[] = 'Content-type: text/html; charset=iso-8859-1'; + $header[] = 'To: ' . REGISTRATION_MAIL; + $header[] = 'From: Li-Dance Registrierung '; + $header[] = 'X-Mailer: PHP/' . phpversion(); + + mb_send_mail($to, $title, $message, implode("\r\n", $header)); + echo json_encode('{ "result": "' . $result . '" }'); ?> \ No newline at end of file diff --git a/backend/utils/config.php b/backend/utils/config.php index bd3d2bb..e002598 100644 --- a/backend/utils/config.php +++ b/backend/utils/config.php @@ -9,4 +9,8 @@ define('IMAGE_PATH', dirname($_SERVER["REQUEST_URI"]) . '/images/'); define('MAGIC_WORD', 'AED717B292EE4F08A0AEE4EBA4B1B1FA'); define('MAGIC_DATE', 'YmdHi'); define('API_KEY', '754259b6-caf0-4eca-a1f6-812731adae79'); + +define('REGISTRATION_MAIL', 'info@li-dance.de'); +define('REGISTRATION_URL', 'https://test.li-dance.de/registrations'); + ?> \ No newline at end of file diff --git a/frontend/src/app/components/registrations/registration-wizard/registration-wizard.component.html b/frontend/src/app/components/registrations/registration-wizard/registration-wizard.component.html index c1ea870..8121e85 100644 --- a/frontend/src/app/components/registrations/registration-wizard/registration-wizard.component.html +++ b/frontend/src/app/components/registrations/registration-wizard/registration-wizard.component.html @@ -153,14 +153,16 @@
Einwilligung
-

{{infoTextEinwilligungserklaerung}}

+

Einwilligung zur Erhebung, Speicherung, Verarbeitung und Nutzung von personenbezogenen Daten
-
-

{{infoTextEinverstaendniserklaerung}}

+

Einverständniserklärung zur Nutzung von Bild- und Videomaterial
+
+

Ihr monatlicher Beitrag: {{registrationPrice | currency: 'EUR' }}

+
diff --git a/frontend/src/app/components/registrations/registration-wizard/registration-wizard.component.scss b/frontend/src/app/components/registrations/registration-wizard/registration-wizard.component.scss index 5a688e6..6730ae7 100644 --- a/frontend/src/app/components/registrations/registration-wizard/registration-wizard.component.scss +++ b/frontend/src/app/components/registrations/registration-wizard/registration-wizard.component.scss @@ -61,6 +61,7 @@ .big { font-size: 1.9em; + line-height: 1.9em; p { text-align: center; diff --git a/frontend/src/app/components/registrations/registration-wizard/registration-wizard.component.ts b/frontend/src/app/components/registrations/registration-wizard/registration-wizard.component.ts index f19ecf6..d25dc72 100644 --- a/frontend/src/app/components/registrations/registration-wizard/registration-wizard.component.ts +++ b/frontend/src/app/components/registrations/registration-wizard/registration-wizard.component.ts @@ -3,6 +3,7 @@ import {FormBuilder, FormGroup, Validators } from '@angular/forms'; import {ValidatorService} from "angular-iban"; import {StudentRegistration} from "../../../models/student-registration"; import {RegistrationsService} from "../../../services/registrations/registrations.service"; +import { isDate } from 'moment'; export const MY_DATE_FORMAT= { parse: { @@ -44,29 +45,30 @@ export class RegistrationWizardComponent implements OnInit { infoTextEinwilligungserklaerung = 'Ich bin darüber informiert worden, dass meine personenbezogenen Daten aufgrund rechtlicher ' + 'Vorgaben mindestens 10 Jahre nach Vertragsende aufbewahrt werden müssen. ' + - 'Ich bin damit einverstanden, dass die oben genannten personenbezogenen Daten zu den oben ' + + 'Ich bin damit einverstanden, dass die in der Datenschutzerklärung genannten personenbezogenen Daten zu den dort ' + 'genannten Zwecken erhoben, gespeichert, verarbeitet, genutzt und ggfs. weitergegeben werden. ' + - 'Ich bin darauf hingewiesen worden, dass die im Rahmen der vorstehend genannten Zwecke ' + + 'Ich bin darauf hingewiesen worden, dass die im Rahmen der genannten Zwecke ' + 'erhobenen persönlichen Daten meiner Person unter Beachtung der EU-' + 'Datenschutzgrundverordnung (DSGVO) erhoben, gespeichert, genutzt und übermittelt werden. ' + 'Ich bin zudem darauf hingewiesen worden, dass die Erhebung, Speicherung, Verarbeitung und ' + 'Nutzung meiner Daten auf freiwilliger Basis erfolgt. ' + 'Ich bin darüber informiert worden, dass diese Einverständniserklärung jederzeit mit sofortiger ' + 'Wirkung verweigert, bzw. jederzeit mit Wirkung für die Zukunft widerrufen werden kann. Meine ' + - 'Widerrufserklärung werde ich richten an die unten angegebene Adresse'; + 'Widerrufserklärung werde ich richten an die Tanz- und Sportschule Li-Dance, Inh. Lydia Kolepp, Dieselstr. 10, 61231 Bad Nauheim'; infoTextEinverstaendniserklaerung = 'Ich bin damit einverstanden, dass Bilder und Videos der Tanzschule und der Veranstaltungen, ' + 'die durch die Tanzschule organisiert sind und/oder an denen die Tanzschule teilnimmt, auf ' + 'denen ich selbst, mein Sohn oder meine Tochter zu sehen ist auf den Webseiten von Li-Dance und in anderen Online- und/oder Printmedien veröffentlicht ' + - 'werden und für Werbezwecke von Li-Dance genutzt werden dürfen. Rechtsgrundlage: Das Recht am eigenen Bild ist ein Teil des vom Gesetz geschützten ' + + 'werden und für Werbezwecke von Li-Dance genutzt werden dürfen.
' + + 'Rechtsgrundlage: Das Recht am eigenen Bild ist ein Teil des vom Gesetz geschützten ' + 'allgemeinen Persönlichkeitsrechts (§22 Kunsturheberrechtsgesetz). Es gilt der Grundsatz, dass ' + 'Bild- und Video-Material nur mit Einwilligung des Abgebildeten verbreitet oder veröffentlicht ' + 'werden kann. Es handelt sich hierbei um eine rechtsgeschäftliche Willenserklärung. Deshalb ' + 'kann bei Minderjährigen eine Einwilligung nur durch den gesetzlichen Vertreter erfolgen. ' + 'Diese Einverständniserklärung kann mit sofortiger Wirkung verweigert, bzw. jederzeit mit ' + 'Wirkung für die Zukunft widerrufen werden. Ein Widerruf kann einen Ausschluss aus der ' + - 'jeweiligen Veranstaltung zur Folge haben.' + + 'jeweiligen Veranstaltung zur Folge haben.
' + 'Ein späterer rückwirkender Widerruf für aktuell stattfindende bzw. bereits stattgefundene ' + 'Veranstaltungen ist ausgeschlossen.'; @@ -126,6 +128,33 @@ export class RegistrationWizardComponent implements OnInit { } } + get registrationPrice(): number { + const currentDate = new Date(); + const birthdate = this.firstFormGroup.get('birthday')?.value ? this.firstFormGroup.get('birthday')?.value.toDate() : '' ; + + if(!isDate(birthdate)) { + return 0; + } + + const monthDifference = currentDate.getMonth() - birthdate.getMonth(); + let age = currentDate.getFullYear() - birthdate.getFullYear(); + + // Adjust age if the birthdate hasn't occurred yet this year + if (monthDifference < 0 || (monthDifference === 0 && currentDate.getDate() < birthdate.getDate())) { + age--; + } + + if (age >= 4 && age <= 6) { + return 37; + } else if (age >= 7 && age <= 17) { + return 40; + } else if (age >= 18) { + return 50; + } else { + return 0; + } + } + capitalizeFirstTwoLetters() { let ibanValue = this.secondFormGroup.get("iban")?.value if(ibanValue.length >= 2) {