<?php
/**
* Created by PhpStorm.
* User: dimaalferov
* Date: 11/05/2020
* Time: 13:06
*/
namespace App\Controller;
use App\Service\BackendAPI\ApiWorker;
use App\Service\CurrencyApi;
use App\Service\DbApi\DbApi;
use App\Service\Helpers\DataSaverHelper;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
use Symfony\Component\Routing\Annotation\Route;
class MainController extends AbstractController {
/**
* @param $dbApi
* @param ApiWorker $apiWorker
* @param CurrencyApi $currencyApi
* @param DataSaverHelper $dataSaverHelper
* @param Request $request
*
* @return Response
* @Route("/", name="main-page")
*/
public function mainPage( Request $request, DbApi $dbApi, ApiWorker $apiWorker, DataSaverHelper $dataSaverHelper, CurrencyApi $currencyApi ){
$session = $this->get('session');
$getData = $request->query->all();
$dataSaverHelper->saveGetParametersToCookie($getData);
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($orderId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
if( $customer ) {
$boughtCourses = explode(',', $customer->getBoughtCourses() );
}
}
$courseList = $dbApi->getAllCourses(9999);
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$currentCurrency = $currencyApi->getCurrentCurrency($ip);
$amount = 99;
if ( $currentCurrency != 'usd' ) {
$amount = 5 * round($currencyApi->currencyExchange( $amount, $currentCurrency ) / 5);
}
$userAgent = $_SERVER['HTTP_USER_AGENT'];
$browser = 'chrome';
if( strpos(strtolower($userAgent), 'chrome') ) {
$browser = 'chrome';
} elseif ( strpos(strtolower($userAgent), 'safari') ) {
$browser = 'safari';
} elseif ( strpos(strtolower($userAgent), 'firefox') ) {
$browser = 'firefox';
}
return $this->render('main/main-v2.html.twig', [
'session' => $session->all(),
'sessionParams' => $session->all(),
'customer' => $customer ?? 0,
'courseList' => $courseList ?? 0,
'currentCurrency' => $currentCurrency,
'cur' => $amount ?? 0,
'boughtCourses' => $boughtCourses ?? 0,
'customerInit' => $customerInit ?? '',
'browser' => $browser
]);
}
/**
* @param $dbApi
* @return Response
* @Route("/v2", name="main-page-v2")
*/
public function mainPageV2( DbApi $dbApi, ApiWorker $apiWorker, CurrencyApi $currencyApi ){
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
$boughtCourses = explode(',', $customer->getBoughtCourses() );
}
$courseList = $dbApi->getAllCourses(2);
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$currentCurrency = $currencyApi->getCurrentCurrency($ip);
$amount = 99;
if ( $currentCurrency != 'usd' ) {
$amount = 5 * round($currencyApi->currencyExchange( $amount, $currentCurrency ) / 5);
}
return $this->render('main/main-v3.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0,
'courseList' => $courseList ?? 0,
'currentCurrency' => $currentCurrency,
'cur' => $amount ?? 0,
'boughtCourses' => $boughtCourses ?? 0
]);
}
/**
* @param $dbApi
* @return Response
* @Route("/v3", name="main-page-v3")
*/
public function mainPageV3( DbApi $dbApi, ApiWorker $apiWorker, CurrencyApi $currencyApi ){
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
$boughtCourses = explode(',', $customer->getBoughtCourses() );
}
$courseList = $dbApi->getAllCourses(2);
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$currentCurrency = $currencyApi->getCurrentCurrency($ip);
$amount = 99;
if ( $currentCurrency != 'usd' ) {
$amount = 5 * round($currencyApi->currencyExchange( $amount, $currentCurrency ) / 5);
}
return $this->render('main/main-v3.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0,
'courseList' => $courseList ?? 0,
'currentCurrency' => $currentCurrency,
'cur' => $amount ?? 0,
'boughtCourses' => $boughtCourses ?? 0
]);
}
/**
* @return Response
* @Route("/classes", name="classes")
*/
public function classesPage(DbApi $dbApi, ApiWorker $apiWorker){
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($orderId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
//$customer = json_decode($apiWorker->getCustomerInfo($orderId), true);
if($customer) {
$boughtCourses = explode(',', $customer->getBoughtCourses() );
}
}
$courseList = $dbApi->getAllCourses( );
return $this->render('main/classes.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0,
'courseList' => $courseList ?? 0,
'boughtCourses' => $boughtCourses ?? 0,
'customerInit' => $customerInit ?? ''
]);
}
/**
* @return Response
* @Route("/classes/{slug}", name="single-class")
*/
public function singleClassPage($slug, DbApi $dbApi, ApiWorker $apiWorker, CurrencyApi $currencyApi){
$session = $this->get('session');
$orderId = $session->get('order_id');
$isCourseBought = false;
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($orderId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
//$customer = json_decode($apiWorker->getCustomerInfo($orderId), true);
if($customer) {
$boughtCourses = explode(',', $customer->getBoughtCourses() );
$coursesArray = explode(',', $customer->getBoughtCourses() );
if( in_array( $slug, $coursesArray ) ) {
$isCourseBought = true;
}
}
}
$courseList = $dbApi->getAllCourses(3);
$course = $dbApi->getCourseById( $slug );
$courseVideos = $dbApi->getCourseVideos( $slug );
//$video = $dbApi->getVideoById(1);
$relatedCourses = $dbApi->getAllCoursesExcept( $slug, 3 );
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$currentCurrency = $currencyApi->getCurrentCurrency($ip);
$amount = $course->getPrice();
// if ( $currentCurrency != 'usd' ) {
// $amount = 5 * round($currencyApi->currencyExchange( $amount, $currentCurrency ) / 5);
// }
return $this->render('main/single-class.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0,
'course' => $course ?? 0,
'courseVideos' => $courseVideos ?? 0,
//'video' => $video ?? 0,
'courseList' => $courseList ?? 0,
'isCourseBought' => $isCourseBought ?? 0,
'relatedCourses' => $relatedCourses ?? 0,
'currentCurrency' => $currentCurrency,
'price' => $amount ?? 0,
'boughtCourses' => $boughtCourses ?? 0,
'customerInit' => $customerInit ?? ''
]);
}
/**
* @return Response
* @Route("/live-private-lessons", name="live-private-lessons")
*/
public function livePrivateLessonsPage(DbApi $dbApi){
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
}
return $this->render('main/live-private-lessons.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0
]);
}
/**
* @return Response
* @Route("/online-private-lessons", name="online-private-lessons")
*/
public function onlinePrivateLessonsPage(DbApi $dbApi, CurrencyApi $currencyApi){
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
}
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$currentCurrency = $currencyApi->getCurrentCurrency($ip);
$amount = 299;
// if ( $currentCurrency != 'usd' ) {
// $amount = 5 * round($currencyApi->currencyExchange( $amount, $currentCurrency ) / 5);
// }
return $this->render('main/online-private-lessons.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0,
'currentCurrency' => $currentCurrency,
'price' => $amount ?? 0
]);
}
/**
* @return Response
* @Route("/private-lessons", name="private-lessons")
*/
public function privateLessonsPage(DbApi $dbApi){
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
}
return $this->render('main/private-lessons.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0
]);
}
/**
* @return Response
* @Route("/contact", name="contact")
*/
public function contactPage(ApiWorker $apiWorker, DbApi $dbApi){
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($orderId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
}
return $this->render('main/contact.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0,
'customerInit' => $customerInit ?? ''
]);
}
/**
* @return Response
* @Route("/press", name="press")
*/
public function pressPage(DbApi $dbApi){
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
}
return $this->render('main/press.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0
]);
}
/**
* @return Response
* @Route("/terms", name="terms")
*/
public function termsOfServicePage(DbApi $dbApi){
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
}
return $this->render('main/terms-of-service.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0
]);
}
/**
* @return Response
* @Route("/online-lesson-thank", name="online_lesson_thank")
*/
public function onlineLessonThankPage(DbApi $dbApi){
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
$customerDbId = $customer->getId();
$lessons = $dbApi->getLessons($customerDbId);
$lessonsNumber = count($lessons) - 1;
if( !empty($lessons) ) {
$bookTime = $lessons[$lessonsNumber]->getBookTime();
}
}
return $this->render('main/lesson-thank.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0,
'lessons' => $lessons ?? 0,
'bookTime' => $bookTime ?? ''
]);
}
/**
* @return Response
* @Route("/cookie-policy", name="cookie-policy")
*/
public function cookiePolicyPage(DbApi $dbApi){
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
}
return $this->render('main/cookie-policy.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0
]);
}
/**
* @return Response
* @Route("/privacy-policy", name="privacy-policy")
*/
public function privacyPolicyPage(ApiWorker $apiWorker, DbApi $dbApi){
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
//$customer = $dbApi->getUserById($orderId);
$customer = json_decode($apiWorker->getCustomerInfo($orderId), true);
}
return $this->render('main/privacy-policy.html.twig', [
'session' => $session->all(),
'customer' => $customer['data'] ?? 0
]);
}
/**
* @return Response
* @Route("/impressum", name="impressum")
*/
public function impressumPage(ApiWorker $apiWorker, DbApi $dbApi){
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($orderId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
}
$browser = $_SERVER['HTTP_USER_AGENT'];
return $this->render('main/impressum.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0,
'customerInit' => $customerInit ?? '',
'browser' => $browser ?? []
]);
}
/**
* @Route("/api/update-currency")
*
* @return JsonResponse
*/
public function updateCurrencies( CurrencyApi $currencyApi, DbApi $dbApi ) {
$currencyInfo = $currencyApi->apiUpdateCurrencies( $dbApi );
return new JsonResponse( $currencyInfo );
}
/**
* @param DbApi $dbApi
*
* @Route ("/selfie-upload", name="selfie_upload_page")
*
* @return Response
*/
public function selfieUpload( DbApi $dbApi, ApiWorker $apiWorker ) {
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($orderId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
}
return $this->render('main/selfie-upload.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0,
'customerInit' => $customerInit ?? ''
]);
}
/**
* @param DbApi $dbApi
*
* @Route ("/signature-upload", name="signature_upload_page")
*
* @return Response
*/
public function signatureUpload( DbApi $dbApi, ApiWorker $apiWorker ) {
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
$backendCustomer = json_decode($apiWorker->getCustomerInfo($orderId), true);
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
}
return $this->render('main/signature-upload.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0,
'backendCustomer' => $backendCustomer ?? [],
'customerInit' => $customerInit ?? ''
]);
}
/**
* @param DbApi $dbApi
*
* @Route ("/thank", name="thank_page")
*
* @return Response
*/
public function thankPage( DbApi $dbApi, ApiWorker $apiWorker ) {
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($orderId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
}
return $this->render('main/thank.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0,
'customerInit' => $customerInit ?? ''
]);
}
/**
* @param DbApi $dbApi
*
* @Route ("/sms-tan", name="sms_tan")
*
* @return Response
*/
public function smsTanPage( ApiWorker $apiWorker, DbApi $dbApi ) {
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = $dbApi->getUserById($orderId);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($orderId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
}
return $this->render('main/sms-tan.html.twig', [
'session' => $session->all(),
'customer' => $customer ?? 0,
'customerInit' => $customerInit ?? ''
]);
}
/**
* @param Request $request
* @param ApiWorker $apiWorker
* @param $code
*
* @Route("/s/{code}")
*
* @return Response
*/
public function confirmCode( Request $request, ApiWorker $apiWorker, $code, DbApi $dbApi ) {
$session = $this->get('session');
$result = json_decode($apiWorker->confirmPhoneByHash( $code ), true );
if( $result['success']) {
$userId = $result['data']['customer_id'];
$session->set('order_id', $userId);
//return $this->redirectToRoute('classes');
}
$orderId = $session->get('order_id');
if($orderId) {
$customer = json_decode($apiWorker->getCustomerInfo($orderId), true);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($orderId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
}
return $this->render('main/sms.confirmed.html.twig', [
'session' => $session->all(),
'customer' => $customer['data'] ?? 0,
'result' => $result ?? '',
'customerInit' => $customerInit ?? ''
]);
}
/**
* @param Request $request
* @param ApiWorker $api
* @param DbApi $dbApi
* @Route("/verification")
*
*@return Response
*/
public function emailConfirm(ApiWorker $api, Request $request, DbApi $dbApi, ApiWorker $apiWorker )
{
$session = $this->get('session');
$orderId = $session->get('order_id');
if( $orderId ) {
$customer = json_decode($api->getCustomerInfo($orderId), true);//$dbApi->getUserById($orderId);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($orderId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
}
$hash = $request->query->get('hash');
$result = $api->confirmEmail( $hash );
$result = json_decode( $result, true );
if( $result['success']) {
$session->set('order_id', $result['data']['customer_id']);
$session->set('email_confirmation', true);
}
return $this->render('main/email.confirmed.html.twig',[
'customer' => $customer['data'] ?? 0,
'customerInit' => $customerInit ?? ''
]);
}
/**
* @Route("/agb", name="pdf_agb")
*/
public function returnAgbFile()
{
$pdfPath = $this->getParameter('kernel.project_dir') . '/public/build/pdf/legal/mcx_agb.pdf';
return $this->file($pdfPath, 'AGB.pdf', ResponseHeaderBag::DISPOSITION_INLINE);
}
/**
* @Route("/datenschutz", name="pdf_datenschutz")
*/
public function returnDatenschutzFile()
{
$pdfPath = $this->getParameter('kernel.project_dir') . '/public/build/pdf/legal/mcx_daten.pdf';
return $this->file($pdfPath, 'Datenschutz.pdf', ResponseHeaderBag::DISPOSITION_INLINE);
}
/**
* @Route("/leistungsbeschreibung", name="pdf_leistungsbeschreibung")
*/
public function returnLeistungsbeschreibungFile()
{
$pdfPath = $this->getParameter('kernel.project_dir') . '/public/build/pdf/legal/mcx_Leistungen.pdf';
return $this->file($pdfPath, 'Leistungsbeschreibung.pdf', ResponseHeaderBag::DISPOSITION_INLINE);
}
/**
* @Route("/widerrufsbelehrung", name="pdf_widerrufsbelehrung")
*/
public function returnWiderrufsBelehrungFile()
{
$pdfPath = $this->getParameter('kernel.project_dir') . '/public/build/pdf/legal/mcx_widerruf.pdf';
return $this->file($pdfPath, 'WiderrufsBelehrung.pdf', ResponseHeaderBag::DISPOSITION_INLINE);
}
/**
* @param ApiWorker $apiWorker
* @param $hash
* @param DbApi $dbApi
* @Route("/ka/{hash}", name="ka-page")
*
*@return Response
*/
public function kaPage( ApiWorker $apiWorker, $hash, DbApi $dbApi )
{
$session = $this->get('session');
$userId = $session->get('order_id');
if( !$userId ) {
$customerInfoHash = json_decode( $apiWorker->getUserBySmsShortHash($hash), true );
if( $customerInfoHash['success'] ) {
$userId = $customerInfoHash['data']['id'];
$session->set('order_id', $userId);
}
}
$customerInfo = json_decode( $apiWorker->getCustomerInfo($userId), true );
$orderData = json_decode( $apiWorker->getOrder($userId),true );
$result = json_decode( $apiWorker->getRenderedPdfByTplId($userId, 142, 0), true);
if( $orderData['data']['identity_sign'] != null ) {
return $this->redirectToRoute('ka-thank-page');
}
if( $userId ) {
$customer = $dbApi->getUserById($userId);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($userId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
}
return $this->render('main/ka.html.twig', [
'session' => $session->all(),
'pdf' => $result['data'] ?? 0,
'customerInfo' => $customerInfo['data'] ?? 0,
'userId' => $userId ?? 0,
'orderData' => $orderData['data'] ?? 0,
'customer' => $customer ?? 0,
'customerInit' => $customerInit ?? ''
]);
}
/**
* @param ApiWorker $apiWorker
* @param DbApi $dbApi
* @Route("/ka-thank", name="ka-thank-page")
*
*@return Response
*/
public function kaThankPage( ApiWorker $apiWorker, DbApi $dbApi )
{
$session = $this->get('session');
$userId = $session->get('order_id');
$customerInfo = json_decode( $apiWorker->getCustomerInfo($userId), true );
$result = json_decode( $apiWorker->getRenderedPdfByTplId($userId, 142, 0), true);
if( $userId ) {
$customer = $dbApi->getUserById($userId);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($userId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
}
return $this->render('main/ka.thank.html.twig', [
'session' => $session->all(),
'pdf' => $result['data'] ?? 0,
'customerInfo' => $customerInfo['data'] ?? 0,
'userId' => $userId ?? 0,
'customer' => $customer ?? 0,
'customerInit' => $customerInit ?? ''
]);
}
/**
* @Route("/api/save-kulanz-link", name="api_save_kulanz_link")
*/
public function apiPdfLetterCreate( Request $request, ApiWorker $apiWorker ) {
$session = $this->get('session');
$userId = $session->get('order_id');
$tplId = 142;
$filename = 'Kulanzantrag_bereits_genehmigt.pdf';
$customerInfo = json_decode( $apiWorker->getCustomerInfo($userId), true );
if( $customerInfo['success'] ) {
$firstname = $customerInfo['data']['firstname'];
$lastname = $customerInfo['data']['lastname'];
$filename = 'Kulanzantrag_bereits_genehmigt_'.$firstname.'_'.$lastname.'_'.$userId.'.pdf';
}
$result = $apiWorker->getRenderedPdfByTplId($userId, $tplId);
$result = json_decode($result, true);
if( $result['success'] ) {
$decoded = base64_decode( $result['data'] );
$response = new Response();
$response->headers->remove('Content-Disposition');
$response->setContent($decoded);
$response->headers->set('Content-Type', 'application/pdf');
$response->headers->set('Content-Disposition', 'attachment; filename='.$filename);
return $response;
}
return new Response('Requested file not found');
}
/**
* @param $slug
* @param ApiWorker $apiWorker
* @param DbApi $dbApi
* @param Request $request
*
* @Route("/cancel/{slug}")
*
* @return Response
*/
public function emailCancellation( ApiWorker $apiWorker, $slug, Request $request, DbApi $dbApi ) {
$session = $this->get('session');
$result = json_decode($apiWorker->getUserBySmsShortHash($slug), true );
$templateType = $request->query->get('tt');
$templateId = $request->query->get('ti');
if( $templateType == 's' ) {
$templateTypeVal = 'sms';
} elseif ( $templateType == 'e' ) {
$templateTypeVal = 'email';
} elseif ( $templateType == 'p' ) {
$templateTypeVal = 'pdf';
} else {
$templateTypeVal = '';
}
if( !$templateId ) {
$templateId = '';
}
$session->set('templateTypeVal', $templateTypeVal);
$session->set('templateId', $templateId);
if( $result['success'] ) {
$userId = $result['data']['id'];
$session->set('order_id', $userId);
//$apiWorker->logFrontendAction($userId);
$orderStatus = $result['data']['status'];
//$cancelResult = json_decode( $apiWorker->cancelOrder($userId, $templateTypeVal, $templateId), true );
if( $result['data']['id'] ) {
$customer = $dbApi->getUserById($result['data']['id']);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($userId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
}
}
return $this->render('main/cancel.html.twig', [
'customerInfo' => $result ?? 0,
'cancelResult' => $cancelResult ?? 0,
'slug' => $slug ?? 0,
'orderStatus' => $orderStatus ?? 0,
'customer' => $customer ?? 0,
'customerInit' => $customerInit ?? ''
]);
}
/**
* @param ApiWorker $apiWorker
* @param DbApi $dbApi
*
* @Route("/cancel-thank", name="cancel_thank_page")
*
* @return Response
*/
public function cancelThankPage( ApiWorker $apiWorker, DbApi $dbApi ) {
$session = $this->get('session');
$userId = $session->get('order_id');
$customerData = json_decode( $apiWorker->getCustomerInfo($userId), true );
if( $userId ) {
$customer = $dbApi->getUserById($userId);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($userId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
}
return $this->render('main/cancel.thank.html.twig', [
'customerInfo' => $customerData ?? [],
'customer' => $customer ?? 0,
'customerInit' => $customerInit ?? ''
]);
}
/**
* @param ApiWorker $apiWorker
* @param DbApi $dbApi
*
* @Route("/too-late", name="too_late_page")
*
* @return Response
*/
public function tooLatePage( ApiWorker $apiWorker, DbApi $dbApi) {
$session = $this->get('session');
$userId = $session->get('order_id');
$customerData = json_decode( $apiWorker->getCustomerInfo($userId), true );
$orderData = json_decode( $apiWorker->getOrder($userId), true );
if( $userId ) {
$customer = $dbApi->getUserById($userId);
$backendCustomer = json_decode( $apiWorker->getCustomerInfo($userId), true );
if( $backendCustomer['success'] ) {
$customerInit = strtoupper(substr($backendCustomer['data']['firstname'], 0, 1)) . strtoupper(substr($backendCustomer['data']['lastname'], 0, 1));
}
}
return $this->render('main/cancel.late.html.twig', [
'customerInfo' => $customerData['data'] ?? [],
'orderData' => $orderData['data'] ?? [],
'orderId' => $userId ?? 0,
'customer' => $customer ?? 0,
'customerInit' => $customerInit ?? ''
]);
}
}