Added PDF for pregenerated PDF
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
<?php
|
||||
include 'renderer.php';
|
||||
require_once 'vendor/autoload.php';
|
||||
|
||||
use setasign\Fpdi\Fpdi;
|
||||
|
||||
class Membership extends Renderer {
|
||||
protected array $formFields = [
|
||||
@@ -67,43 +70,43 @@ class Membership extends Renderer {
|
||||
if ($formData['agreedElectronicalHandling'] !== 1) {
|
||||
$this->errors['accept_electronical_usage'] = 'Für die Online-Registrierung müssen Sie der elektronischen Verarbeitung zustimmen';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function saveNewMember(array $formData): void {
|
||||
$salt = $this->generateRandomString();
|
||||
$query = sprintf("INSERT INTO ffajs.clubmember( "
|
||||
. " first_name, last_name, street, zip, town, "
|
||||
. " birthdate, phone, email, child_name, child_street, "
|
||||
. " subscription, bank_name, iban, bic, account_member_name, "
|
||||
. " membership_status, salt) "
|
||||
. "VALUES('%s', '%s', '%s', '%s', '%s', "
|
||||
. " '%s', '%s', '%s', '%s', '%s', "
|
||||
. " '%s', '%s', '%s', '%s', '%s', "
|
||||
. " %d, '%s') ",
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'firstname', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'lastname', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'street', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'zip', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'town', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'birthDate', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'phoneNumber', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'email', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'childName', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'childStreet', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'payHeight', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'bankname', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'iban', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'bic', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'accountmembername', $salt),
|
||||
1,
|
||||
$salt);
|
||||
mysqli_query($this->dbConnection, $query);
|
||||
}
|
||||
protected function saveNewMember(array $formData): void {
|
||||
$salt = $this->generateRandomString();
|
||||
$query = sprintf("INSERT INTO ffajs.clubmember( "
|
||||
. " first_name, last_name, street, zip, town, "
|
||||
. " birthdate, phone, email, child_name, child_street, "
|
||||
. " subscription, bank_name, iban, bic, account_member_name, "
|
||||
. " membership_status, salt) "
|
||||
. "VALUES('%s', '%s', '%s', '%s', '%s', "
|
||||
. " '%s', '%s', '%s', '%s', '%s', "
|
||||
. " '%s', '%s', '%s', '%s', '%s', "
|
||||
. " %d, '%s') ",
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'firstname', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'lastname', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'street', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'zip', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'town', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'birthDate', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'phoneNumber', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'email', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'childName', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'childStreet', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'payHeight', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'bankname', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'iban', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'bic', $salt),
|
||||
$this->getDbEncryptedValueIfNeeded($formData, 'accountmembername', $salt),
|
||||
1,
|
||||
$salt);
|
||||
mysqli_query($this->dbConnection, $query);
|
||||
}
|
||||
|
||||
protected function sendEmail(array $formData): void {
|
||||
protected function sendEmail(array $formData): void {
|
||||
$noForm = count($this->errors) === 0;
|
||||
if ($noForm) {
|
||||
$data = ['Name' => $formData['firstname'], $formData['lastname'], 'Strasse' => $formData['street'], 'Ort' => $formData['zip'] . ' ' . $formData['town'],
|
||||
$data = ['Vorname' => $formData['firstname'], 'Nachname' => $formData['lastname'], 'Strasse' => $formData['street'], 'Ort' => $formData['zip'] . ' ' . $formData['town'],
|
||||
'Geburtstag' => $formData['birthDate'], 'Telefon' => $formData['phoneNumber'], 'Email' => $formData['email'],
|
||||
'Name des Kindes' => $formData['childName'], 'Straße des Kindes' => $formData['childStreet'],
|
||||
'Gewünschter Mitgliedsbeitrag' => $formData['payHeight'], 'Geldinstitut' => $formData['bankname'],
|
||||
@@ -118,8 +121,77 @@ class Membership extends Renderer {
|
||||
foreach ($data as $field => $value) {
|
||||
$message .= $field . ': ' . $value . "\n";
|
||||
}
|
||||
$this->sendMail($mail, 'Mitgliedsantrag', $message, '');
|
||||
$attachment = [
|
||||
'Mitgliedsantrag.pdf' => ['content' => $this->createPdf(), 'type' => 'application/pdf']
|
||||
];
|
||||
$this->sendMail($mail, 'Mitgliedsantrag', $message, '', $attachment);
|
||||
$this->templateName = 'membership_success';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function createPdf(array $formData): TCPDF
|
||||
{
|
||||
$pdf = new Fpdi();
|
||||
$pdf->AddFont('DejaVuSans', '', 'DejaVuSans.php');
|
||||
$pdf->AddFont('DejaVuSans Bold', '', 'DejaVuSans-Bold.php');
|
||||
$pdf->AddPage('P', 'A4');
|
||||
$pdf->SetMargins(20, 20, 20, 20);
|
||||
$pdf->SetFont('DejaVuSans Bold', '', 15);
|
||||
$pdf->Cell(0, 2, utf8_decode('Verein der Freunde und Förderer'), 0, 1, 'C');
|
||||
$pdf->Cell(0, 10, utf8_decode('der August-Jaspert-Schule e.V.'), 0, 1, 'C');
|
||||
$pdf->SetFont('DejaVuSans Bold', '', 13);
|
||||
$pdf->Cell(0, 13.5, utf8_decode('Beitrittserklärung'), 0, 1, 'L');
|
||||
$pdf->setFont('DejaVuSans', '', 12);
|
||||
$pdf->Cell(0, 12, utf8_decode('Folgende Felder sind Pflicht und müssen ausgefüllt werden'), 0, 1, 'L');
|
||||
$newFields = [
|
||||
'Name' => $formData['lastname'],
|
||||
'Vorname' => $formData['firstname'],
|
||||
'Straße' => $formData['street'],
|
||||
'PLZ und Wohnort' => $formData['zip'] . ' ' . $formData['town'],
|
||||
'Telefon' => $formData['phoneNumber'],
|
||||
'Email-Adresse' => $formData['email'],
|
||||
'Geburtsdatum' => $formData['birthDate'],
|
||||
'Gewünschter Beitrag' => str_replace('€', '', $formData['payHeight']) . ' EUR',
|
||||
];
|
||||
foreach ($newFields as $field => $value) {
|
||||
$pdf->Cell(60, 5, utf8_decode($field), 0);
|
||||
$pdf->Cell(0, 5, utf8_decode($value), 0, 1);
|
||||
}
|
||||
$pdf->Ln(5);
|
||||
$pdf->MultiCell(0, 5, utf8_decode('Ich erkläre hiermit, dass ich die Satzung des Vereins erhalten habe und akzeptiere und trete dem Verein bei.'));
|
||||
$pdf->Ln(14);
|
||||
$lineStartX = $pdf->GetX();
|
||||
$pdf->Cell(0, 0, '', 'T');
|
||||
$lineEndX = $pdf->GetX();
|
||||
$pdf->SetFont('DejaVuSans', '', 10);
|
||||
$pdf->Ln(1);
|
||||
$pdf->Cell(60, 2, utf8_decode('Ort, Datum'), 0);
|
||||
$pdf->Cell(0, 2, utf8_decode('Unterschrift'), 0);
|
||||
$pdf->Ln(15);
|
||||
$pdf->SetFont('DejaVuSans', '', 12);
|
||||
$pdf->MultiCell(0, 5, utf8_decode('Wenn Sie die Abbuchung per SEPA-Mandat wünschen, füllen Sie bitte folgende Felder aus:'));
|
||||
$pdf->Ln(5);
|
||||
$newFields = [
|
||||
'Geldinstitut' => $formData['bankname'],
|
||||
'IBAN' => $formData['iban'],
|
||||
'BIC' => $formData['bic'],
|
||||
'Kontoinhaber' => $formData['accountmembername'],
|
||||
];
|
||||
foreach ($newFields as $field => $value) {
|
||||
$pdf->Cell(60, 5, utf8_decode($field), 0);
|
||||
$pdf->Cell(0, 5, utf8_decode($value), 0, 1);
|
||||
}
|
||||
$pdf->Ln(5);
|
||||
$pdf->MultiCell(0, 5, utf8_decode('Mir ist bekannt, das ich diese Einzugsermächtigung jederzeit widerrufen kann und sie mit Beendigung meiner Mitgliedschaft automatisch erlischt.'));
|
||||
$pdf->Ln(14);
|
||||
$lineStartX = $pdf->GetX();
|
||||
$pdf->Cell(0, 0, '', 'T');
|
||||
$lineEndX = $pdf->GetX();
|
||||
$pdf->SetFont('DejaVuSans', '', 10);
|
||||
$pdf->Ln(1);
|
||||
$pdf->Cell(60, 2, utf8_decode('Ort, Datum'), 0);
|
||||
$pdf->Cell(0, 2, utf8_decode('Unterschrift'), 0);
|
||||
return $pdf->Output('S', '');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -449,11 +449,15 @@ class Renderer {
|
||||
return $mail;
|
||||
}
|
||||
|
||||
protected function sendMail(PHPMailer $mail, string $subject, string $body, string $signature): void {
|
||||
protected function sendMail(PHPMailer $mail, string $subject, string $body, string $signature, $attachments = []): void {
|
||||
$completeBody = $body . $signature . $this->emailLegalInformation();
|
||||
$mail->Subject = $subject;
|
||||
$mail->Body = $completeBody;
|
||||
$mail->AltBody = 'Diese Email benötigt HTML-Ansicht';
|
||||
foreach ($attachments as $fileName => $attachment) {
|
||||
$mail->addStringAttachment($attachment['content'], $fileName, 'base64', $attachment['type']);
|
||||
|
||||
}
|
||||
$mail->send();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user