<?php
namespace App\Controller;
use App\Repository\GuideRepository;
use App\Repository\OrderRepository;
use App\Repository\UserRepository;
use App\Repository\VoucherUsageRepository;
use Exception;
use http\Exception\UnexpectedValueException;
use Swift_Mailer;
use Swift_Message;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Address;
use Symfony\Component\Routing\Annotation\Route;
class EmailController extends AbstractController
{
private UserRepository $userRepository;
private VoucherUsageRepository $voucherUsageRepository;
private GuideRepository $guideRepository;
private OrderRepository $orderRepository;
private array $ordertextDe;
private array $ordertextNl;
private array $paymentTypeDe;
private array $paymentTypeNl;
private array $registrationDe;
private array $registrationNl;
/**
* EmailController constructor.
* @param UserRepository $userRepository
* @param VoucherUsageRepository $voucherUsageRepository
* @param GuideRepository $guideRepository
*/
public function __construct(UserRepository $userRepository, VoucherUsageRepository $voucherUsageRepository,
GuideRepository $guideRepository, OrderRepository $orderRepository)
{
$this->userRepository = $userRepository;
$this->voucherUsageRepository = $voucherUsageRepository;
$this->guideRepository = $guideRepository;
$this->orderRepository = $orderRepository;
$this->ordertextDe = [
'cart' => 'Warenkorb',
'empty_cart' => 'Ihr Warenkorb ist leer.',
'continue_shopping' => 'weiter einkaufen',
'title' => 'LeisureBREAKS Shop',
'product_selection' => 'Produktwahl',
'address' => 'Anschrift',
'payment_method' => 'Bezahlmethode',
'order_overview' => 'Bestellübersicht',
'payment' => 'Bezahlung',
'done' => 'Fertig',
'please_select' => 'LeisureBREAKS online kaufen',
'available_now' => 'Ab sofort erhältlich!',
'add_to_cart' => 'In den Warenkorb',
'products' => 'Produkte',
'product' => 'Produkt',
'quantity' => 'Anzahl',
'item_price' => 'Einzelpreis',
'total' => 'Gesamt',
'subtotal' => 'Zwischensumme',
'shipping' => 'Versand',
'totalsum' => 'Gesamtsumme',
'taxnote' => 'Preise inkl. der gesetzlichen MwSt., zzgl. Versandkosten',
'continue_to_address' => 'Weiter zur Anschrift',
'invoice_and_shipping_address' => 'Ihre Liefer- und Rechnungsanschrift',
'invoice' => 'Rechnung',
'address_identical' => 'Die Rechnungsanschrift ist identisch mit der Lieferadresse.',
'guide_usage' => 'Guide Nutzung',
'guide_usage_privacy_info' => 'Bei Aktivierung verwenden wir Ihre E-Mail-Adresse zur Registrierung des gekauften Guides. Sie erhalten automatisch eine Registrierungsbestätigung auf diese E-Mail-Adresse. Diese Einwilligung kann jederzeit widerrufen werden.',
'guide_own_usage' => 'Ich werde den Guide selber nutzen',
'holiday_addresses' => 'Bitte beachten Sie, dass wir nicht an Urlaubsanschriften im Ausland liefern.',
'shipping_address' => 'Lieferanschrift',
'salutation' => 'Anrede',
'male' => 'Herr',
'female' => 'Frau',
'firstname' => 'Vorname',
'lastname' => 'Nachname',
'street_w_number' => 'Straße und Hausnummer',
'postalcode' => 'PLZ',
'city' => 'Ort',
'country' => 'Land',
'email' => 'E-Mail',
'phone' => 'Telefon',
'invoice_address' => 'Rechnungsanschrift',
'continue_to_payment' => 'Weiter zur Bezahlung',
'back_to_product_selection' => 'Zurück zu den Produkten',
'back_to_address' => 'Zurück zur Anschrift',
'continue_to_overview' => 'Weiter zur Bestellübersicht',
'select_payment_method' => 'Wählen Sie Ihre gewünschte Zahlungsmethode',
'back_to_payment' => 'Zurück zur Bezahlung',
'buy_now' => 'Jetzt kaufen',
'thankyou_headline' => 'Vielen Dank für Ihre Bestellung!',
'thankyou_html' => 'Falls Sie Ihre E-Mail Adresse ausgefüllt haben, erhalten Sie in Kürze eine Bestätigung Ihrer Bestellung per E-Mail von onlineshop@leisurebreaks.de.<br /><br />Sollten Sie diese E-Mail nicht erhalten, könnte Ihr Spamfilter oder der Ihres Providers diese als Spam ausgefiltert haben. In diesem Fall rufen Sie uns bitte unter 0049-8753-9671790 an, um sich Ihre Bestellung bestätigen zu lassen.<br /><br /><strong>Wir wünschen Ihnen viele schöne Golfrunden mit Ihrem LeisureBREAKS Guide For Free Golf!</strong><br /><br />Ihr LeisureBREAKS-Team',
'toc' => 'Es gelten unsere AGB (Allgemeine Geschäftsbedingungen',
'newsletter' => 'Newsletter',
'newsletter_text' => 'Ich möchte den kostenlosen LeisureBREAKS-Newsletter empfangen.',
'order_by_pdf' => 'PDF-Bestellfax',
'payment_kind' => 'Bezahlart',
'salutation_M' => 'Sehr geehrter Herr ',
'salutation_F' => 'Sehr geehrte Frau ',
'order_confirmation' => 'hiermit bestätigen wir den Eingang Ihrer Bestellung.',
'subject' => 'Ihre LeisureBREAKS Bestellung ',
'data_we_got' => 'Wir haben folgende Daten von Ihnen erfasst:',
'your_order_number' => 'Ihre Bestell-Nr.',
'we_will_ship_to' => 'Wir liefern Ihre Bestellung an folgende Adresse',
'invoice_note' => 'Die Rechnung erhalten Sie mit der Ware.',
'thanks_and_good_game' => 'Wir danken für Ihre Bestellung und wünschen Ihnen ein schönes Spiel!',
'your_lb_team' => 'Ihr LeisureBREAKS-Team',
'refund_html' => "<strong>Widerrufsbelehrung</strong><br>
Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen.<br>
<br>
Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter,
der nicht der Beförderer ist, die Waren in Besitz genommen haben bzw. hat.<br>
<br>
Um Ihr Widerrufsrecht auszuüben, müssen Sie uns:<br>
<br>
LeisureBREAKS GmbH<br>
Peter Rudolph<br>
Postfach 1208<br>
84048 Mainburg<br>
Tel.: +49 - 8753 - 96 717 - 90<br>
Fax: +49 - 8753 - 96 717 - 98<br>
<br>
mittels einer eindeutigen Erklärung (z. B. ein mit der Post versandter Brief, Telefax oder E-Mail)
über Ihren Entschluss, diesen Vertrag zu widerrufen, informieren. Sie können dafür das beigefügte
Muster- Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist.<br>
<br>
Sie können das Muster-Widerrufsformular oder eine andere eindeutige Erklärung auch auf unserer
Webseite <a href=\"https://assets.contentful.com/nf5zhg9neo0b/1vb4t4ZDrOwOkYIeCOSSAg/b1c6c1adf381f1c305b07ded5c11659a/Widerrufsformular.pdf\">hier herunterladen</a>. Machen
Sie von dieser Möglichkeit Gebrauch, so werden wir Ihnen unverzüglich (z. B. per E-Mail) eine
Bestätigung über den Eingang eines solchen Widerrufs übermitteln.<br>
<br>
Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des
Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.<br>
<br>
Folgen des Widerrufs<br>
<br>
Wenn Sie diesen Vertrag widerrufen, haben wir Ihnen alle Zahlungen, die wir von Ihnen erhalten haben,
einschließlich der Lieferkosten (mit Ausnahme der zusätzlichen Kosten, die sich daraus ergeben, dass
Sie eine andere Art der Lieferung als die von uns angebotene, günstigste Standardlieferung gewählt
haben), unverzüglich und spätestens binnen vierzehn Tagen ab dem Tag zurückzuzahlen, an dem die
Mitteilung über Ihren Widerruf dieses Vertrags bei uns eingegangen ist. Für diese Rückzahlung verwenden
wir dasselbe Zahlungsmittel, das Sie bei der ursprünglichen Transaktion eingesetzt haben, es sei denn,
mit Ihnen wurde ausdrücklich etwas anderes vereinbart; in keinem Fall werden Ihnen wegen dieser
Rückzahlung Entgelte berechnet. Wir können die Rückzahlung verweigern, bis wir die Waren wieder
zurückerhalten haben oder bis Sie den Nachweis erbracht haben, dass Sie die Waren zurückgesandt haben,
je nachdem, welches der frühere Zeitpunkt ist.<br>
<br>
Sie haben die Waren unverzüglich und in jedem Fall spätestens binnen vierzehn Tagen ab dem Tag, an dem
Sie uns über den Widerruf dieses Vertrags unterrichten, an uns zurückzusenden oder zu übergeben. Die
Frist ist gewahrt, wenn Sie die Waren vor Ablauf der Frist von vierzehn Tagen absenden. Sie tragen
die unmittelbaren Kosten der Rücksendung der Waren.<br>
<br>
Sie müssen für einen etwaigen Wertverlust der Waren nur aufkommen, wenn dieser Wertverlust auf einen
zur Prüfung der Beschaffenheit, Eigenschaften und Funktionsweise der Waren nicht notwendigen Umgang
mit ihnen zurückzuführen ist.",
];
$this->ordertextNl = [
'cart' => 'Winkelwagen',
'empty_cart' => 'Uw winkelwagen is leeg.',
'continue_shopping' => 'verder winkelen',
'title' => 'LeisureBREAKS Shop',
'product_selection' => 'Produktselectie',
'address' => 'adres',
'payment_method' => 'Wijze van betaling',
'order_overview' => 'Besteloverzicht',
'payment' => 'Betaling',
'done' => 'Afgehandeld',
'please_select' => 'Bestel LeisureBREAKS online',
'available_now' => 'Nu beschikbaar!',
'add_to_cart' => 'Bestelling in winkelwagen',
'products' => 'Producten',
'product' => 'Product',
'quantity' => 'Nummer',
'item_price' => 'Prijs',
'total' => 'totaal',
'subtotal' => 'Subtotaal',
'shipping' => 'Verzending',
'totalsum' => 'Totaal',
'taxnote' => 'Alle prijzen zijn inclusief BTW, exclusief verzendkosten',
'continue_to_address' => 'Leveringsadres',
'invoice_and_shipping_address' => 'Uw verzend- en factuuradres',
'invoice' => 'Rekening',
'address_identical' => 'Het factuuradres is gelijk aan het afleveradres.',
'guide_usage' => 'Gebruik gids',
'guide_usage_privacy_info' => 'Bei Aktivierung verwenden wir Ihre E-Mail-Adresse zur Registrierung des gekauften Guides. Sie erhalten automatisch eine Registrierungsbestätigung auf diese E-Mail-Adresse. Diese Einwilligung kann jederzeit widerrufen werden.',
'guide_own_usage' => 'Ik zal de gids alleen voor eigen gebruik hanteren.',
'holiday_addresses' => 'Please note that we do not deliver to holiday residences abroad.',
'shipping_address' => 'Afleveradres',
'salutation' => 'Titel',
'male' => 'De heer',
'female' => 'Mevrouw (Mevr.)',
'firstname' => 'Voornaam',
'lastname' => 'Achternaam',
'street_w_number' => 'Straat/huisnummer',
'postalcode' => 'Postcode',
'city' => 'Woonplaats',
'country' => 'Land',
'email' => 'Email',
'phone' => 'Telefoon',
'invoice_address' => 'Factuuradres',
'continue_to_payment' => 'Betaalmethode',
'back_to_product_selection' => 'Terug naar producten',
'back_to_address' => 'Terug naar Adres',
'continue_to_overview' => 'Besteloverzicht',
'select_payment_method' => 'Selecteer de gewenste betaalmethode',
'back_to_payment' => 'Terug naar betaling',
'buy_now' => 'Bestel nu',
'thankyou_headline' => 'Bedankt voor uw bestelling!',
'thankyou_html' => 'Indien u uw emailadres heeft ingevuld, krijgt u op korte termijn een bevestiging van uw bestelling per E-mail van onlineshop@nl.leisurebreaks.de.<br /><br /> Mocht u deze email niet ontvangen hebben dan kan uw Spamfilter of die van uw provider deze uitgefilterd hebben. Wilt u ons in dat geval even bellen: +31-74-2569493 om uw bestelling te laten bevestigen.',
'toc' => 'Zie onze Algemene Leveringsvoorwaarden',
'newsletter' => 'Nieuwsbrief',
'newsletter_text' => 'Ik zou graag de LeisureBREAKS nieuwsbrief willen ontvangen.',
'order_by_pdf' => 'PDF Order fax',
'payment_kind' => 'Wijze van betaling',
'salutation_M' => 'Geachte heer ',
'salutation_F' => 'Geachte mevrouw ',
'subject' => 'Uw LeisureBREAKS bestelling ',
'order_confirmation' => 'hiermee bevestigen wij de ontvangst van uw bestelling.',
'data_we_got' => 'Wij hebben de volgende gegevens van u ontvangen:',
'your_order_number' => 'Uw bestelnummer.',
'we_will_ship_to' => 'Wij sturen uw bestelling naar het volgende adres:',
'invoice_note' => 'De factuur sturen wij met de LeisureBREAKS-gids mee.',
'thanks_and_good_game' => 'Wij bedanken u voor uw bestelling en wensen u veel golfplezier!',
'your_lb_team' => 'Uw LeisureBREAKS-Team',
'refund_html' => "<strong>Herroepingsrecht</strong><br>
U heeft het recht binnen veertien dagen na bestelling deze te annuleren, zonder opgave van reden.<br>
<br>
Het recht tot herroeping geldt veertien dagen vanaf de dag dat u, de LeisureBREAKS-gids in ontvangst heeft genomen.<br>
<br>
Om de bestelling te herroepen, moet u ons:<br>
<br>
LeisureBREAKS GmbH<br>
Peter Rudolph<br>
Postfach 1208<br>
84048 Mainburg<br>
Tel.: +49 - 8753 - 96 717 - 90<br>
Fax: +49 - 8753 - 96 717 - 98<br>
<br>
Door het sturen van een schriftelijke verklaring (bijvoorbeeld een met de post gestuurde brief of email)
over het besluit, de bestelling te herroepen, informeren. U kunt hiervoor het bijgevoegde
herroepingsformulier gebruiken, dit is wettelijk niet verplicht.<br>
<br>
U kunt een voorbeeld van het herroepingsformulier op onze website invullen:
<a href=\"https://assets.contentful.com/nf5zhg9neo0b/1vb4t4ZDrOwOkYIeCOSSAg/b1c6c1adf381f1c305b07ded5c11659a/Widerrufsformular.pdf\">widerrufsformular.pdf</a>. Als u van deze mogelijkheid gebruik maakt,
zullen wij u per email informeren over de afhandeling van deze..<br>
<br>
<br>
<br>
Gevolgen van herroeping<br>
<br>
Als u kiest voor herroeping, zullen wij u de volledige betaling die wij van u ontvangen hebben, inclusief de verzendkosten (met uitzondering van extra kosten
die daaruit voortvloeien) terugstorten. Dit indien u kiest voor een andere verzendwijze dan de door ons aangeboden verzendwijze.
Wij storten de betaling binnen veertien dagen na de dag van herroeping volledig terug.
Voor deze terugstorting gebruiken wij dezelfde wijze van betaling, die u bij de oorspronkelijke bestelling heeft gebruikt, tenzij met u een andere betaalwijze is overeengekomen.
In geen geval worden hiervoor kosten in rekening gebracht.
Wij hebben het recht de terugbetaling te weigeren totdat de geleverde gids geretourneerd is, of dat u het bewijs geleverd heeft dat deze teruggestuurd is.<br>
<br>
U moet de gids uiterlijk binnen veertien dagen na de dag van herroeping terugsturen of aangeboden hebben voor verzending.
Deze termijn is vastgesteld. Indien u kiest voor herroeping zijn de hierdoor ontstane verzendkosten voor uw rekening.
<br>
Indien de gids gebruikt is, kunt u deze niet meer retourneren.",
];
$this->paymentTypeDe = [
'elv' => "SEPA-Lastschrift",
'elv_desc' => "Wir ziehen das Geld auf Ihren Wunsch von Ihrem Bankkonto ein.",
'cc' => "Kreditkarte",
'cc_desc' => "Bezahlen Sie mit Ihrer Kreditkarte. Wir akzeptieren VISA, Mastercard, Amex und Maestro.",
'vor' => "Vorkasse",
'vor_desc' => "",
'sb' => "SOFORT/Giropay",
'sb_desc' => "Bezahlen Sie mit SOFORT-Überweisung oder Giropay.",
'wlt' => "Paypal",
'wlt_desc' => "Bezahlen Sie mit Paypal.",
'bs_payone_creditcard' => "Kreditkarte",
'bs_payone_creditcard_desc' => "Bezahlen Sie mit Ihrer Kreditkarte. Wir akzeptieren VISA, Mastercard, Amex und Maestro.",
'bs_payone_paypal' => "Paypal",
'bs_payone_paypal_desc' => "Paypal",
'cheque' => "Vorkasse",
'cheque_desc' => "",
];
$this->paymentTypeNl = [
'elv' => 'SEPA-betaling',
'elv_desc' => 'Wij zullen het bedrag een dezer dagen van uw rekening afschrijven.',
'cc' => 'Creditcard',
'cc_desc' => 'Betaal met uw creditcard. Wij accepteren VISA, Mastercard, Amex en Maestro.',
'vor' => 'Vooruitbetaling',
'vor_desc' => '',
'sb' => 'Vooruitbetaling per bank',
'sb_desc' => 'Boekt u het geldbedrag per omgaande over.',
'wlt' => 'Paypal',
'wlt_desc' => 'Betaalt u met Paypal.',
'bs_payone_creditcard' => "Creditcard",
'bs_payone_creditcard_desc' => "Betaal met uw creditcard. Wij accepteren VISA, Mastercard, Amex en Maestro.",
'bs_payone_paypal' => "Paypal",
'bs_payone_paypal_desc' => "Betaalt u met Paypal.",
'cheque' => "Vooruitbetaling",
'cheque_desc' => "",
];
$this->registrationDe = [
'subject' => "LeisureBREAKS - Ihr Guide wurde registriert",
'salutation_M' => "Sehr geehrter Herr ",
'salutation_M_simple' => "Herr",
'salutation_F' => "Sehr geehrte Frau ",
'salutation_F_simple' => "Frau",
'salutation' => "Anrede",
'firstname' => "Vorname",
'lastname' => "Nachname",
'email' => "E - Mail",
'guide_text' => "der %{name} mit der Seriennummer %{serial} wurde am %{date} mit den folgenden Daten registriert:",
'regcode' => "Registrierungscode",
'benefits' => "Vorteile der Registrierung Ihres Guides:",
'benefits_list_html' => "• sichere Entwertung Ihrer Voucher unter Mitnutzung Ihrer Guidenummer<br>
• durch Angabe Ihrer E-Mail-Adresse bei der Registrierung erhalten Sie nach jedem Spiel mit einem Online-Voucher Ihre Spielhistorie bequem per E-Mail, sofern der Golfclub digital entwertet<br>
• Nutzung des Smartphone (LB2go) bei ausgewählten Clubs<br>
• Helfen Sie uns, unser System und unseren Service für Sie zu verbessern!",
'benefits_list' => "• sichere Entwertung Ihrer Voucher unter Mitnutzung Ihrer Guidenummer
• durch Angabe Ihrer E-Mail-Adresse bei der Registrierung erhalten Sie nach jedem Spiel mit einem Online-Voucher Ihre Spielhistorie bequem per E-Mail, sofern der Golfclub digital entwertet
• Nutzung des Smartphone (LB2go) bei ausgewählten Clubs
• Helfen Sie uns, unser System und unseren Service für Sie zu verbessern!",
'good_game' => "Ein schönes Spiel wünscht Ihnen",
'your_lb_team' => "Ihr LeisureBREAKS-Team",
'lb_go_text' => "Ab sofort können Sie sich bei vollständiger Registrierung eine Wallet Datei für iOS und Android ausgeben lassen, mit der Sie sich bei den für diesen Service teilnehmenden Golfclubs ausweisen können. Gehen Sie dazu auf den Link: ",
'lb_go_link' => "Meine Voucher-Entwertungen"
];
$this->registrationNl = [
"subject" => "LeisureBREAKS - Uw gids wordt geregistreerd",
'salutation_M' => "Geachte heer ",
'salutation_M_simple' => "Heer",
'salutation_F' => "Geachte mevrouw ",
'salutation_F_simple' => "Mevrouw",
'salutation' => "Aanhef",
'firstname' => "Voornaam",
'lastname' => "Achternaam",
'email' => "Email",
'guide_text' => "%{name} met LeisureBREAKS-gids %{serial} wordt op %{date} met de volgende gegevens geregistreerd:",
'regcode' => "Registratiecode",
'benefits' => "voordelen van het registreren van uw gids:",
"benefits_list_html" => "• veilige inwisseling van de vouchers onder vermelding van uw gidsnummer<br>
• door uw e-mailadres bij de registratie op te geven, ontvangt u na elke wedstrijd een online voucher met uw speelgeschiedenis gemakkelijk per e-mail, mits de golfclub deze digitaal afboekt.<br>
• gebruik van de smartphone (LB2go) bij geselecteerde clubs.<br>
• Help ons ons systeem en onze service te verbeteren!",
"good_game" => "Wij wensen u een prettige golfronde toe!",
"your_lb_team" => "Uw LeisureBREAKS-Team",
'lb_go_text' => "Vanaf nu kunt u bij volledige registratie een Wallet-bestand voor iOS en Android laten uitgeven, waarmee u zich kunt identificeren bij de golfclubs die aan deze service deelnemen. Ga hiervoor naar de link: ",
'lb_go_link' => "Mijn voucher-afboekingen",
];
}
#[Route('/email/voucher', name: 'email_voucher')]
public function sendVoucherMail(MailerInterface $mailer, Request $request): JsonResponse
{
$guide_id = $request->query->get('guide_id');
$guide = $this->guideRepository->find($guide_id);
if (!filter_var($guide->email, FILTER_VALIDATE_EMAIL)) {
throw new Exception("Wrong E-Mail format", 400);
}
$anrede = "Sehr geehrte Damen und Herren";
if ($guide->salutation_id == 1) {
$anrede = "Sehr geehrter Herr " . $guide->first_name . " " . $guide->last_name;
} else if ($guide->salutation_id == 2) {
$anrede = "Sehr geehrte Frau " . $guide->first_name . " " . $guide->last_name;
}
$myVouchers = $this->voucherUsageRepository->findByGuide($guide_id);
if (sizeof($myVouchers) > 0) {
$firstVoucher = $myVouchers[0];
// return new JsonResponse($myVouchers);
$message = (new TemplatedEmail())
->from(new Address('onlineshop@leisurebreaks.de', 'onlineshop@leisurebreaks.de'))
->to($guide->email)
// ->to('e.arnold@soul-surf.com', 'r.kaiser@soul-surf.com')
->subject('Leisurebreaks Ihre Voucher')
->htmlTemplate('email/voucher_mail.html.twig')
->context([
'voucher_usages' => $myVouchers,
'firstVoucher' => $firstVoucher,
'guide' => $guide,
'anrede' => $anrede,
'serial_nr' => sprintf('%05d', $guide->serial_nr)
]);
$mailer->send($message);
}
return new JsonResponse(["done" => true]);
}
#[Route('/email/generic', name: 'email')]
public function generic(Swift_Mailer $mailer, Request $request): JsonResponse
{
$name = $request->query->get('name');
$to = $request->query->get('to');
$message = $request->query->get('message');
$subject = $request->query->get('subject');
if (is_null($name) | is_null($to) | is_null($message) | is_null($subject)) {
throw new UnexpectedValueException("parameter missing", 400);
}
$message = (new Swift_Message($subject))
->setFrom('info@soul-surf.com')
->setTo('r.kaiser@soul-surf.com')
->setBody(
$this->renderView(
// templates/emails/registration.html.twig
'email/index.html.twig',
['name' => $name, 'message' => $message]
),
'text/html'
);
$mailer->send($message);
// return $this->render('email/index.html.twig', [
// 'controller_name' => 'EmailController',
// ]);
return new JsonResponse(json_encode(["Done" => ""]));
}
#[Route('/email/order', name: 'email')]
public function ordertest(MailerInterface $mailer, Request $request): JsonResponse
{
// $name = $request->query->get('name');
$orderid = $request->query->get('order');
if (is_null($orderid)) {
throw new UnexpectedValueException("parameter missing", 400);
}
$order = $this->orderRepository->find($orderid);
// $to = $request->query->get('to');
// $message = 'message' . $order;
$subject = 'subject';
$countryCode = strtoupper($order->delivery_country_code);
$nlcountries = array('NL', 'BE', 'LU');
$mailFrom = "onlineshop@leisurebreaks.de";
$mailReTo = "onlineshop@leisurebreaks.de";
$staticText = $this->ordertextDe;
$staticPaymentType = $this->paymentTypeDe;
$bccNL = '';
if (in_array($countryCode, $nlcountries)) {
// We are NL!
// $mailFrom = "onlineshop@nl.leisurebreaks.de";
$mailReTo = "onlineshop@nl.leisurebreaks.de";
$staticText = $this->ordertextNl;
$staticPaymentType = $this->paymentTypeNl;
$bccNL = 'info@vanparidongolf.nl';
}
switch ($order->billing_salutation) {
case 'M':
$staticText['salutation'] = $staticText['salutation_M'] . $order->billing_last_name;
break;
case 'F':
$staticText['salutation'] = $staticText['salutation_F'] . $order->billing_last_name;
break;
}
$message = (new TemplatedEmail())
->from(new Address($mailFrom, $mailFrom))
->to($order->billing_email)
// ->to('e.arnold@soul-surf.com', 'r.kaiser@soul-surf.com')
->replyTo($mailReTo)
->bcc('info@leisurebreaks.de', 'rudolph@leisurebreaks.de')
->subject($staticText['subject'] . $countryCode . '-' . $order->id)
->htmlTemplate('email/paid_confirmation.html.twig')
->context([
'order' => $order,
'items' => $order->getOrderItem(),
'static' => $staticText,
'paymentType' => $staticPaymentType[$order->payment_kind],
'paymentType_desc' => $staticPaymentType[$order->payment_kind . '_desc'],
'show_refund' => true
]);
if ($bccNL != '') {
$message->addBcc($bccNL);
}
$mailer->send($message);
// return $this->render('email/index.html.twig', [
// 'controller_name' => 'EmailController',
// ]);
return new JsonResponse(json_encode(["Done" => ""]));
}
#[Route('/email/registration', name: 'registration')]
public function registration(MailerInterface $mailer, Request $request): JsonResponse
{
// $name = $request->query->get('name');
$guideid = $request->query->get('guide');
if (is_null($guideid)) {
throw new UnexpectedValueException("parameter missing", 400);
}
$guide = $this->guideRepository->find($guideid);
// $to = $request->query->get('to');
// $message = 'message' . $order;
$subject = 'subject';
$countryCode = $request->query->get('country');
if (is_null($guideid)) {
$countryCode = 'DE'; // strtoupper($guide->country_id);
}
$nlcountries = array('NL', 'BE', 'LU');
$mailFrom = "onlineshop@leisurebreaks.de";
$mailReTo = "onlineshop@leisurebreaks.de";
$staticText = $this->registrationDe;
// $staticPaymentType = $this->paymentTypeDe;
$bccNL = '';
if (in_array($countryCode, $nlcountries)) {
// We are NL!
// $mailFrom = "onlineshop@nl.leisurebreaks.de"; // not allowed anymore through mail provider
$mailReTo = "onlineshop@nl.leisurebreaks.de";
$staticText = $this->registrationNl;
// $staticPaymentType = $this->paymentTypeNl;
// $bccNL = 'info@vanparidongolf.nl';
}
switch ($guide->salutation_id) {
case '1':
$staticText['salutation_text'] = $staticText['salutation_M'] . $guide->last_name;
$staticText['salutation_simple'] = $staticText['salutation_M_simple'];
break;
case '2':
$staticText['salutation_text'] = $staticText['salutation_F'] . $guide->last_name;
$staticText['salutation_simple'] = $staticText['salutation_F_simple'];
break;
}
$message = (new TemplatedEmail())
->from(new Address($mailFrom, $mailFrom))
->to($guide->email)
// ->to('e.arnold@soul-surf.com', 'r.kaiser@soul-surf.com')
->replyTo($mailReTo)
// ->bcc('info@leisurebreaks.de', 'rudolph@leisurebreaks.de')
->subject($staticText['subject'])
->htmlTemplate('email/registration.html.twig')
->context([
'guide' => $guide,
'serial_nr' => sprintf('%05d', $guide->serial_nr),
// 'items' => $guide->getOrderItem(),
'static' => $staticText,
]);
if ($bccNL != '') {
// $message->addBcc($bccNL);
}
$mailer->send($message);
// return $this->render('email/index.html.twig', [
// 'controller_name' => 'EmailController',
// ]);
return new JsonResponse(json_encode(["Done" => ""]));
}
}