src/Controller/RegistrationController.php line 49

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\BusinessTime;
  4. use App\Entity\Category;
  5. use App\Entity\Impressum;
  6. use App\Entity\KassenUser;
  7. use App\Entity\MenuSetting;
  8. use App\Entity\MenuTemplate;
  9. use App\Entity\Products;
  10. use App\Entity\ShopData;
  11. use App\Entity\ShopSetting;
  12. use App\Entity\ShopTemplates;
  13. use App\Entity\Tables;
  14. use App\Entity\TablesCategories;
  15. use App\Entity\Tax;
  16. use App\Entity\Users;
  17. use App\Entity\WarengruppenType;
  18. use App\Form\RegistrationFormType;
  19. use App\Repository\UsersRepository;
  20. use App\Security\BlitzkonnektAuthAuthenticator;
  21. use App\Security\EmailVerifier;
  22. use Doctrine\ORM\EntityManagerInterface;
  23. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  24. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  25. use Symfony\Component\HttpFoundation\Request;
  26. use Symfony\Component\HttpFoundation\Response;
  27. use Symfony\Component\Mailer\Bridge\Google\Transport\GmailSmtpTransport;
  28. use Symfony\Component\Mailer\Mailer;
  29. use Symfony\Component\Mime\Address;
  30. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  31. use Symfony\Component\Routing\Annotation\Route;
  32. use Symfony\Component\String\ByteString;
  33. use Symfony\Component\String\Slugger\AsciiSlugger;
  34. use Symfony\Component\Uid\Uuid;
  35. use SymfonyCasts\Bundle\VerifyEmail\Exception\VerifyEmailExceptionInterface;
  36. class RegistrationController extends AbstractController
  37. {
  38.     private EmailVerifier $emailVerifier;
  39.     public function __construct(EmailVerifier $emailVerifier)
  40.     {
  41.         $this->emailVerifier $emailVerifier;
  42.     }
  43.     #[Route('/user/registration'name'app_register')]
  44.     public function register(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): Response
  45.     {
  46.         $user = new Users();
  47.         $form $this->createForm(RegistrationFormType::class, $user);
  48.         $form->handleRequest($request);
  49.         if ($form->isSubmitted() && $form->isValid()) {
  50.             // encode the plain password
  51.             $user->setRoles(['ROLE_USER']);
  52.             $user->setUsername($form->get('email')->getData());
  53.             $user->setPassword(
  54.             $userPasswordHasher->hashPassword(
  55.                     $user,
  56.                     $form->get('plainPassword')->getData()
  57.                 )
  58.             );
  59.             $entityManager->persist($user);
  60.             $entityManager->flush();
  61.             $shopDate = new ShopData();
  62.             $shopDate->setCreatedBy($user);
  63.             $shopDate->setGeschaftName($user->getEmail());
  64.             $shopDate->setConnector($user->getEmail());
  65.             $entityManager->persist($shopDate);
  66.             $entityManager->flush();
  67.             $user->setShopID($shopDate);
  68.             $entityManager->flush();
  69.             return $this->redirectToRoute('userNotificationBeta');
  70.         }
  71.         return $this->render('registration/register.html.twig', [
  72.             'registrationForm' => $form->createView(),
  73.             'user'=> $this->getUser()
  74.         ]);
  75.     }
  76.     #[Route('/verify/email'name'app_verify_email')]
  77.     public function verifyUserEmail(Request $requestUsersRepository $usersRepository): Response
  78.     {
  79.         $id $request->get('id');
  80.         if (null === $id) {
  81.             return $this->redirectToRoute('app_register');
  82.         }
  83.         $user $usersRepository->find($id);
  84.         if (null === $user) {
  85.             return $this->redirectToRoute('app_register');
  86.         }
  87.         // validate email confirmation link, sets User::isVerified=true and persists
  88.         try {
  89.             $this->emailVerifier->handleEmailConfirmation($request$user);
  90.         } catch (VerifyEmailExceptionInterface $exception) {
  91.             $this->addFlash('verify_email_error'$exception->getReason());
  92.             return $this->redirectToRoute('app_register');
  93.         }
  94.         // @TODO Change the redirect on success and handle or remove the flash message in your templates
  95.         $this->addFlash('success''Your email address has been verified.');
  96.         return $this->redirectToRoute('app_register');
  97.     }
  98.     #[Route('/api/user-add/auto'name'api_admin_auto_user')]
  99.     public function AdminAutoAddUser(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager){
  100.          $password ByteString::fromRandom(16)->toString();
  101.          $connectorId ByteString::fromRandom(32)->toString();
  102.          $api_admin_key $request->get('adminKey');
  103.          $invoice $request->get('invoice');
  104.          $kunden $request->get('kunden');
  105.          if($api_admin_key === 'fwsvysB72W9ysvQJkSJXzNWA4NemkSXV') {
  106.          $user = new Users();
  107.          // encode the plain password
  108.          $user->setRoles(['ROLE_SHOP_OWNER']);
  109.          $user->setIsVerified(true);
  110.          $user->setName($kunden);
  111.          $user->setSurname($kunden);
  112.          $user->setKundeninvoice($invoice);
  113.          $user->setKundennumber($kunden);
  114.          $user->setUsername($invoice $kunden);
  115.          $user->setPassword(
  116.              $userPasswordHasher->hashPassword(
  117.                  $user,
  118.                  $invoice $kunden
  119.              )
  120.          );
  121.          $entityManager->persist($user);
  122.          $entityManager->flush();
  123.              $impressum = new Impressum();
  124.              $impressum->setCreatedBy($user);
  125.              $entityManager->persist($user);
  126.              $entityManager->flush();
  127.              $btime = new BusinessTime();
  128.              $btime->setCreatedBy($user);
  129.              $entityManager->persist($btime);
  130.              $entityManager->flush();
  131.          $demoTemplate $entityManager->getRepository(MenuTemplate::class)->findOneBy(['name'=>'Demo']);
  132.          $templateMenuSetting = new MenuSetting();
  133.          $templateMenuSetting->setName("Demo");
  134.          $templateMenuSetting->setAlegrenOn('true');
  135.          $templateMenuSetting->setMenuBG("#666");
  136.          $templateMenuSetting->setBgColor("#000000");
  137.          $templateMenuSetting->setBodySize(14);
  138.          $templateMenuSetting->setCreatedBy($user);
  139.          $templateMenuSetting->setTitleSize(22);
  140.          $templateMenuSetting->setTextColor("#fff");
  141.          $templateMenuSetting->setBodyColor("#fff");
  142.          $templateMenuSetting->setMenuNav("#fff");
  143.          $templateMenuSetting->setTimeColor("#fff");
  144.          $templateMenuSetting->setFirmnameColor("#ff1f1f");
  145.          $templateMenuSetting->setMenuTemplates($demoTemplate);
  146.          $entityManager->persist($templateMenuSetting);
  147.          $entityManager->flush();
  148.              $demoTemplateShop $entityManager->getRepository(ShopTemplates::class)->findOneBy(['name'=>'Demo']);
  149.              $templateShopSetting = new ShopSetting();
  150.              $templateShopSetting->setName("Demo");
  151.              $templateShopSetting->setAlegrenOn('true');
  152.              $templateShopSetting->setMenuBG("#666");
  153.              $templateShopSetting->setBgColor("#000000");
  154.              $templateShopSetting->setBodySize(14);
  155.              $templateMenuSetting->setFirmnameColor("#ff1f1f");
  156.              $templateShopSetting->setCreatedBy($user);
  157.              $templateShopSetting->setTitleSize(22);
  158.              $templateShopSetting->setTextColor("#fff");
  159.              $templateShopSetting->setBodyColor("#fff");
  160.              $templateShopSetting->setTitleColor("#fff");
  161.              $templateShopSetting->setShopTemplates($demoTemplateShop);
  162.              $entityManager->persist($templateShopSetting);
  163.              $entityManager->flush();
  164.              $shopDate = new ShopData();
  165.          $shopDate->setCreatedBy($user);
  166.          $shopDate->setMenuEnabled(false);
  167.          $shopDate->setShopEnabled(false);
  168.          $shopDate->setMenuSetting($templateMenuSetting);
  169.          $shopDate->setShopSetting($templateShopSetting);
  170.          $shopDate->setGeschaftName($user->getUsername());
  171.          $shopDate->setConnector($invoice $kunden);
  172.          $shopDate->setAccountEnabled(true);
  173.          $shopDate->setMenuEnabled(true);
  174.          $shopDate->setShopEnabled(false);
  175.          $entityManager->persist($shopDate);
  176.          $entityManager->flush();
  177.          $user->setShopID($shopDate);
  178.          $entityManager->persist($user);
  179.          $entityManager->flush();
  180.             return $this->json([
  181.                 'password' => $password
  182.             ]);
  183.          } else {
  184.              return $this->json([
  185.                  'key' => "KeyMissing"
  186.              ]);
  187.          }
  188.     }
  189.     #[Route('/api/kasse/add-product'name'api_admin_kasse_products')]
  190.     public function APIConnectorKasse(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager){
  191.         $catName $request->get('catName');
  192.         $connectorId $request->get('connectorId');
  193.         $pName $request->get('pName');
  194.         $ean $request->get('pEan');
  195.         $plu $request->get('pPlu');
  196.         $price $request->get('pPrice');
  197.         $happyPrice $request->get('happyPrice');
  198.         $unuqueId $request->get('id');
  199.         $category null;
  200.         $productes null;
  201.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  202.         if($shopDate) {
  203.             $categoryCheck $entityManager->getRepository(Category::class)->findOneBy(['name'=> $catName]);
  204.             if(!$categoryCheck) {
  205.                 $category = new Category();
  206.                 $category->setName($catName);
  207.                 $category->setCreatedBy($shopDate->getCreatedBy());
  208.                 $entityManager->persist($category);
  209.                 $entityManager->flush();
  210.             } else {
  211.                 $category $categoryCheck;
  212.             }
  213.             $product = new Products();
  214.             $product->setName($pName);
  215.             $product->setUnuqueId($unuqueId);
  216.             $product->setCategory($category);
  217.             $product->setcreatedBy($shopDate->getCreatedBy());
  218.             $product->setEan($ean);
  219.             $product->setPlu($plu);
  220.             $product->setPrice($price);
  221.             $product->setPriceHappyHour($happyPrice);
  222.             // encode the plain password
  223.             $entityManager->persist($product);
  224.             $entityManager->flush();
  225.             $productes $product;
  226.                 return $this->json([
  227.                     'product' => $productes->getName(),
  228.                     'category' => $category->getName()
  229.                 ]);
  230.         } else {
  231.             return $this->json([
  232.                 'key' => "KeyMissing"
  233.             ]);
  234.         }
  235.     }
  236.     #[Route('/api/kasse/add-companyInfo'name'api_admin_add_companyInfo')]
  237.     public function APIConnectorKasseInfoCompany(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  238.     {
  239.         $connectorId str_replace('"'""$request->get('connectorId'));
  240.         $companyInfo $request->get('companyInfo');
  241.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  242.         if($shopDate != null) {
  243.             $impressum $entityManager->getRepository(Impressum::class)->findOneBy(['createdBy'=>$connectorId]);
  244.             if($companyInfo) {
  245.                 $shopDate->setGeschaftName($companyInfo['Name']);
  246.                 $shopDate->setShopOwner($companyInfo['Owner']);
  247.                 $impressum->setGeschaftAddress($companyInfo['Address']);
  248.                 $impressum->setGeschaftBank($companyInfo['Bank']);
  249.                 $impressum->setGeschaftBIC($companyInfo['BIC']);
  250.                 $impressum->setGeschaftCity($companyInfo['City']);
  251.                 $impressum->setGeschaftIBAN($companyInfo['IBAN']);
  252.                 $impressum->setGeschaftTel($companyInfo['Tel']);
  253.                 $entityManager->persist($impressum);
  254.                 $entityManager->flush();
  255.                 $entityManager->persist($shopDate);
  256.                 $entityManager->flush();
  257.                 return $this->json(true);
  258.             } else {
  259.                 return $this->json(false);
  260.             }
  261.         } else {
  262.             return $this->json(false);
  263.         }
  264.     }
  265.     #[Route('/kasse/checkKey/{connectorId}'name'getConnectorKey')]
  266.     public function getConnectorKey(Request $requestUsersRepository $usersRepositoryEntityManagerInterface $entityManagerstring $connectorId): Response
  267.     {
  268.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  269.         if($shopDate != null) {
  270.             return $this->json(true);
  271.         } else {
  272.             return $this->json(false);
  273.         }
  274.     }
  275.     #[Route('/kasse/getKey/{connectorId}'name'getKassenKey')]
  276.     public function getKassenKey(Request $requestUsersRepository $usersRepositoryEntityManagerInterface $entityManagerstring $connectorId): Response
  277.     {
  278.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  279.         if($shopDate != null) {
  280.             return $this->json(true);
  281.         } else {
  282.             return $this->json(false);
  283.         }
  284.     }
  285.     #[Route('/kasse/getNameOfShop/{connectorId}'name'getShopName')]
  286.     public function getNameOfShop(Request $requestUsersRepository $usersRepositoryEntityManagerInterface $entityManagerstring $connectorId): Response
  287.     {
  288.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  289.         if($shopDate != null) {
  290.             return $this->json($shopDate->getShopUrl());
  291.         } else {
  292.             return $this->json(false);
  293.         }
  294.     }
  295.     #[Route('/api/kasse/get-product-global'name'api_admin_kasse_getproducts_global')]
  296.     public function APIConnectorGetProductKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  297.     {
  298.         $connectorId str_replace('"'""$request->get('connectorId'));
  299.         //$connectorId = $request->get('connectorId');
  300.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  301.         if($shopDate) {
  302.             $products $entityManager->getRepository(Products::class)->findBy(['createdBy' => $shopDate->getCreatedBy()]);
  303.             if($products != null) {
  304.                 return $this->json($products);
  305.             } else {
  306.                 return $this->json(false);
  307.             }
  308.         }else {
  309.             return $this->json("Key missing");
  310.         }
  311.     }
  312.     #[Route('/api/kasse/get-warengruppenType'name'api_admin_kasse_getwarengruppenType_global')]
  313.     public function APIConnectorGetwarengruppenTypeKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  314.     {
  315.         $connectorId str_replace('"'""$request->get('connectorId'));
  316.         //$connectorId = $request->get('connectorId');
  317.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  318.         if($shopDate) {
  319.             $warenGrupTypo $entityManager->getRepository(WarengruppenType::class)->findBy(['createdBy' => $shopDate->getCreatedBy()]);
  320.             if($warenGrupTypo != null) {
  321.                 return $this->json($warenGrupTypo);
  322.             } else {
  323.                 return $this->json(false);
  324.             }
  325.         }else {
  326.             return $this->json("Key missing");
  327.         }
  328.     }
  329.     #[Route('/api/kasse/get-categories-global'name'api_admin_kasse_getcategories_global')]
  330.     public function APIConnectorGetCategoriesKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  331.     {
  332.         $connectorId str_replace('"'""$request->get('connectorId'));
  333.         //$connectorId = $request->get('connectorId');
  334.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  335.         if($shopDate) {
  336.             $categories $entityManager->getRepository(Category::class)->findBy(['createdBy' => $shopDate->getCreatedBy()]);
  337.             if($categories != null) {
  338.                 return $this->json($categories);
  339.             } else {
  340.                 return $this->json(false);
  341.             }
  342.         } else {
  343.             return $this->json("Key missing");
  344.         }
  345.     }
  346.     #[Route('/api/kasse/set-fu-global'name'test')]
  347.     public function test(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  348.     {
  349.         $requestData $request->request->all();
  350.         //$overwrite = $request->get('overwrite');
  351.      /*   $shopDate = $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);*/
  352.         $categoryCheck $entityManager->getRepository(Category::class)->findOneBy(['kasseCatId'=> 87'createdBy' => 21]);
  353.         dd($categoryCheck);
  354.     }
  355.     #[Route('/api/kasse/set-categories-global'name'api_admin_kasse_setcategories_global')]
  356.     public function APIConnectorSetCategoriesKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  357.     {
  358.         $requestData $request->request->all();
  359.         $connectorId $requestData['connectorID'];
  360.         //$overwrite = $request->get('overwrite');
  361.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  362.         if($shopDate) {
  363.             $categories = new Category();
  364.             if($requestData) {
  365.                 $categoryCheck $entityManager->getRepository(Category::class)->findOneBy(['kasseCatId'=> $requestData['kasseCatId'], 'createdBy' => $shopDate->getCreatedBy()]);
  366.                 $modes $entityManager->getRepository(WarengruppenType::class)->findOneBy(['modeid'=> $requestData['mode'], 'createdBy' => $shopDate->getCreatedBy()]);
  367.                 $slugger = new AsciiSlugger();
  368.             /*    dd($modes, $categoryCheck);*/
  369. // Use the slug() method to convert the string to a URL format
  370.                 $url $slugger->slug($requestData['name'])->lower()->toString();
  371.                 if($categoryCheck) {
  372.                     $categoryCheck->setName($requestData['name']);
  373.                     $categoryCheck->setKasseCatId($requestData['kasseCatId']);
  374.                 //    $categoryCheck->setAllwaySingleSaldo($requestData['allwaySingleSaldo']);
  375.                     $categoryCheck->setAllwaySingleSaldo(false);
  376.                  //   $categoryCheck->setNotPrintSaldo($requestData['notPrintSaldo']);
  377.                     $categoryCheck->setNotPrintSaldo(false);
  378.                     $categoryCheck->setColor($requestData['color']);
  379.                     $categoryCheck->setUrl($url);
  380.                     $categoryCheck->setEnableMenu(false);
  381.                     $categoryCheck->setEnableShop(false);
  382.                     $categoryCheck->setNotPrintSaldo(false);
  383.                     $categoryCheck->setDeviceID($requestData['deviceID']);
  384.                     $categoryCheck->setKodSinchro($requestData['kodSynchro']);
  385.                     $categoryCheck->setMode($modes->getId());
  386.                     $categoryCheck->setSortID($requestData['sortID']);
  387.                     $entityManager->persist($categoryCheck);
  388.                     try {
  389.                         $entityManager->flush();
  390.                         return $this->json($categoryCheck);
  391.                     } catch (\Exception $ex) {
  392.                         return $this->json("Error");
  393.                     }
  394.                 } else {
  395.                     $categories->setName($requestData['name']);
  396.                     $categories->setKasseCatId($requestData['kasseCatId']);
  397.                     $categories->setCreatedBy($shopDate->getCreatedBy());
  398.                     $categories->setAllwaySingleSaldo(false);
  399.                     //$categories->setAllwaySingleSaldo($requestData['allwaySingleSaldo']);
  400.                     //$categories->setNotPrintSaldo($requestData['notPrintSaldo']);
  401.                     $categories->setNotPrintSaldo(false);
  402.                     $categories->setColor($requestData['color']);
  403.                     $categories->setUrl($url);
  404.                     $categories->setEnableMenu(false);
  405.                     $categories->setEnableShop(false);
  406.                     $categories->setNotPrintSaldo(false);
  407.                     $categories->setDeviceID($requestData['deviceID']);
  408.                     $categories->setKodSinchro($requestData['kodSynchro']);
  409.                     $categories->setMode($modes->getId());
  410.                     $categories->setSortID($requestData['sortID']);
  411.                     $entityManager->persist($categories);
  412.                     try {
  413.                         $entityManager->flush();
  414.                         return $this->json($categories);
  415.                     } catch (\Exception $ex) {
  416.                         return $this->json("Error");
  417.                     }
  418.                 }
  419.             } else {
  420.                 return $this->json(false);
  421.             }
  422.         } else {
  423.             return $this->json("Key missing");
  424.         }
  425.     }
  426.     #[Route('/api/kasse/set-tax'name'api_admin_kasse_settax_global')]
  427.     public function APIConnectorSetTaxKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  428.     {
  429.         $requestData $request->request->all();;
  430.         $connectorId $requestData['connectorID'];
  431.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  432.         if($shopDate) {
  433.             $tax = new Tax();
  434.             $taxChecker $entityManager->getRepository(Tax::class)->findOneBy(['kasseID'=> $requestData['kasseid'], 'createdBy' => $shopDate->getCreatedBy()]);
  435.             if($requestData) {
  436.                 if($taxChecker) {
  437.                     $taxChecker->setName($requestData['name']);
  438.                     $taxChecker->setStatus($requestData['status']);
  439.                     $taxChecker->setCountry(intval($requestData['country']));
  440.                     $taxChecker->setDescription($requestData['description']);
  441.                     $taxChecker->setTaxValue($requestData['taxValue']);
  442.                     $taxChecker->setDeviceID($requestData['deviceID']);
  443.                     $taxChecker->setKasseID($requestData['kasseid']);
  444.                     $entityManager->persist($taxChecker);
  445.                     $entityManager->flush();
  446.                     return $this->json($taxChecker);
  447.                 } else {
  448.                     $tax->setCreatedBy($shopDate->getCreatedBy());
  449.                     $tax->setName($requestData['name']);
  450.                     $tax->setStatus($requestData['status']);
  451.                     $tax->setCountry(intval($requestData['country']));
  452.                     $tax->setDescription($requestData['description']);
  453.                     $tax->setTaxValue($requestData['taxValue']);
  454.                     $tax->setDeviceID($requestData['deviceID']);
  455.                     $tax->setKasseID($requestData['kasseid']);
  456.                     $entityManager->persist($tax);
  457.                     $entityManager->flush();
  458.                     return $this->json($tax);
  459.                 }
  460.             } else {
  461.                 return $this->json(false);
  462.             }
  463.         }  else {
  464.             return $this->json("Key missing");
  465.         }
  466.     }
  467.     #[Route('/api/kasse/set-warengruppentypen'name'api_admin_kasse_setwarengruppentypen_global')]
  468.     public function APIConnectorSetWarenGruppenTypenKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  469.     {
  470.         //$requestData = json_decode($request->getContent(), true);
  471.         $requestData $request->request->all();
  472.         $connectorId $requestData['connectorID'];
  473.         //$overwrite = $request->get('overwrite');
  474.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  475.         if($shopDate) {
  476.             $warengruppenutype = new WarengruppenType();
  477.             $warengruppenutypeChecker $entityManager->getRepository(WarengruppenType::class)->findOneBy(['kassenID'=> $requestData['kasseid'], 'createdBy' => $shopDate->getCreatedBy()]);
  478.             if($requestData) {
  479.                 if($warengruppenutypeChecker) {
  480.                     $warengruppenutypeChecker->setName($requestData['name']);
  481.                     $warengruppenutypeChecker->setCodeSynchro($requestData['codeSynchro']);
  482.                     $warengruppenutypeChecker->setDeviceId($requestData['deviceId']);
  483.                     $warengruppenutypeChecker->setModeid($requestData['modeid']);
  484.                     $warengruppenutypeChecker->setKassenID($requestData['kasseid']);
  485.                     $entityManager->persist($warengruppenutypeChecker);
  486.                     $entityManager->flush();
  487.                     return $this->json($warengruppenutypeChecker);
  488.                 } else {
  489.                     $warengruppenutype->setCreatedBy($shopDate->getCreatedBy());
  490.                     $warengruppenutype->setName($requestData['name']);
  491.                     $warengruppenutype->setCodeSynchro($requestData['codeSynchro']);
  492.                     $warengruppenutype->setDeviceId($requestData['deviceId']);
  493.                     $warengruppenutype->setModeid($requestData['modeid']);
  494.                     $warengruppenutype->setKassenID($requestData['kasseid']);
  495.                     $entityManager->persist($warengruppenutype);
  496.                     $entityManager->flush();
  497.                     return $this->json($warengruppenutype);
  498.                 }
  499.             } else {
  500.                 return $this->json(false);
  501.             }
  502.         }  else {
  503.             return $this->json("Key missing");
  504.         }
  505.     }
  506.     #[Route('/api/kasse/set-firmendaten'name'api_admin_kasse_setfirmendaten_global')]
  507.     public function APIConnectorSetfirmendatenKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  508.     {
  509.         $requestData $request->request->all();
  510.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $requestData['connectorID']]);
  511.         $impressum $entityManager->getRepository(Impressum::class)->findOneBy(['createdBy' => $shopDate->getCreatedBy()]);
  512.         if($shopDate) {
  513.             $shopDate->setShopOwner($requestData['owner']);
  514.             $shopDate->setGeschaftName($requestData['name']);
  515.             $entityManager->persist($shopDate);
  516.             $entityManager->flush();
  517.             $impressum->setGeschaftInh($requestData['owner']);
  518.             $impressum->setGeschaftAddress($requestData['address']);
  519.             $impressum->setGeschaftCity($requestData['city']);
  520.             $impressum->setGeschaftZIP($requestData['zip']);
  521.             $impressum->setGeschaftEmail($requestData['email']);
  522.             $impressum->setGeschaftSteuer($requestData['taxnummer']);
  523.             $impressum->setGeschaftTel($requestData['tel']);
  524.             $impressum->setGeschaftIBAN($requestData['iban']);
  525.             $impressum->setGeschaftBank($requestData['bank']);
  526.             $impressum->setGeschaftBIC($requestData['bic']);
  527.             $entityManager->persist($impressum);
  528.             $entityManager->flush();
  529.             return $this->json(true);
  530.         }  else {
  531.             return $this->json("Key missing");
  532.         }
  533.     }
  534.     #[Route('/api/kasse/set-raume'name'api_admin_kasse_setraume_global')]
  535.     public function APIConnectorSetRaumeKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  536.     {
  537.         //$requestData = json_decode($request->getContent(), true);
  538.         $requestData $request->request->all();
  539.         $connectorId $requestData['connectorID'];
  540.         //$overwrite = $request->get('overwrite');
  541.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  542.         if($shopDate) {
  543.             $tableCategories = new TablesCategories();
  544.             $tableCategoriesChecker $entityManager->getRepository(TablesCategories::class)->findOneBy(['kasseId'=> $requestData['kassenId'], 'createdBy' => $shopDate->getCreatedBy()]);
  545.             if($requestData) {
  546.                 if($tableCategoriesChecker) {
  547.                     $tableCategoriesChecker->setTakeoutOrder($requestData['takeoutOrder']);
  548.                     $tableCategoriesChecker->setTaxMode($requestData['taxMode']);
  549.                     $tableCategoriesChecker->setName($requestData['name']);
  550.                     $tableCategoriesChecker->setKasseId($requestData['kassenId']);
  551.                     $tableCategoriesChecker->setPriceDeviation($requestData['priceDeviation']);
  552.                     $tableCategoriesChecker->setColor($requestData['color']);
  553.                     $tableCategoriesChecker->setImageMode($requestData['imageMode']);
  554.                     $tableCategoriesChecker->setDescription($requestData['description']);
  555.                     $warengrup $entityManager->getRepository(WarengruppenType::class)->findOneBy(['kassenID'=> $requestData['modeId'], 'createdBy' => $shopDate->getCreatedBy()]);
  556.                     if($warengrup) {
  557.                         $tableCategoriesChecker->setModeId($warengrup);
  558.                     }
  559.                     $tableCategoriesChecker->setSortId($requestData['sortId']);
  560.                   //  $tableCategoriesChecker->setImageName($requestData['imageName']);
  561.                     $tableCategoriesChecker->setRunCustomerSelect($requestData['runCustomerSelect']);
  562.                     $entityManager->persist($tableCategoriesChecker);
  563.                     $entityManager->flush();
  564.                     return $this->json($tableCategoriesChecker);
  565.                 } else {
  566.                     $tableCategories->setCreatedBy($shopDate->getCreatedBy());
  567.                     $tableCategories->setTakeoutOrder($requestData['takeoutOrder']);
  568.                     $tableCategories->setTaxMode($requestData['taxMode']);
  569.                     $tableCategories->setName($requestData['name']);
  570.                     $tableCategories->setKasseId($requestData['kassenId']);
  571.                     $tableCategories->setPriceDeviation($requestData['priceDeviation']);
  572.                     $tableCategories->setColor($requestData['color']);
  573.                     $tableCategories->setImageMode($requestData['imageMode']);
  574.                     $tableCategories->setDescription($requestData['description']);
  575.                     $warengrup $entityManager->getRepository(WarengruppenType::class)->findOneBy(['kassenID'=> $requestData['modeId'], 'createdBy' => $shopDate->getCreatedBy()]);
  576.                     if($warengrup){
  577.                         $tableCategories->setModeId($warengrup);
  578.                     }
  579.                     $tableCategories->setSortId($requestData['sortId']);
  580.                    // $tableCategories->setImageName($requestData['imageName']);
  581.                     $tableCategories->setRunCustomerSelect($requestData['runCustomerSelect']);
  582.                     $entityManager->persist($tableCategories);
  583.                     $entityManager->flush();
  584.                     return $this->json($tableCategories);
  585.                 }
  586.             } else {
  587.                 return $this->json(false);
  588.             }
  589.         }  else {
  590.             return $this->json("Key missing");
  591.         }
  592.     }
  593.     #[Route('/api/kasse/set-tische'name'api_admin_kasse_setwtische_global')]
  594.     public function APIConnectorSettischeKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  595.     {
  596.         //$requestData = json_decode($request->getContent(), true);
  597.         $requestData $request->request->all();
  598.         $connectorId $requestData['connectorID'];
  599.         //$overwrite = $request->get('overwrite');
  600.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  601.         if($shopDate) {
  602.             $tables = new Tables();
  603.             $tablesChecker $entityManager->getRepository(Tables::class)->findOneBy(['kasseID'=> $requestData['kassenId'], 'createdBy' => $shopDate->getCreatedBy()]);
  604.             if($requestData) {
  605.                 if($tablesChecker) {
  606.                     $tablesChecker->setColorString($requestData['colorString']);
  607.                     $tablesChecker->setDescription($requestData['description']);
  608.                     $tablesChecker->setSortId($requestData['sortId']);
  609.                     $tablesChecker->setUnpaidDetail($requestData['unpaidDetail']);
  610.                     $tablesChecker->setAlertMessage($requestData['alertMessage']);
  611.                     $tablesCategoryChecker $entityManager->getRepository(TablesCategories::class)->findOneBy(['kasseId'=> $requestData['levelId'], 'createdBy' => $shopDate->getCreatedBy()]);
  612.                     if($tablesCategoryChecker) {
  613.                         $tablesChecker->setTablecategory($tablesCategoryChecker);
  614.                     }
  615.                     $tablesChecker->setKasseID($requestData['kassenId']);
  616.                     $tablesChecker->setName($requestData['name']);
  617.                     $entityManager->persist($tablesChecker);
  618.                     $entityManager->flush();
  619.                     return $this->json($tablesChecker);
  620.                 } else {
  621.                     $tables->setCreatedBy($shopDate->getCreatedBy());
  622.                     $tables->setColorString($requestData['colorString']);
  623.                     $tables->setDescription($requestData['description']);
  624.                     $tables->setSortId($requestData['sortId']);
  625.                     $tables->setUnpaidDetail($requestData['unpaidDetail']);
  626.                     $tables->setAlertMessage($requestData['alertMessage']);
  627.                     $tablesCategoryChecker $entityManager->getRepository(TablesCategories::class)->findOneBy(['kasseId'=> $requestData['levelId'], 'createdBy' => $shopDate->getCreatedBy()]);
  628.                     if($tablesCategoryChecker) {
  629.                         $tables->setTablecategory($tablesCategoryChecker);
  630.                     }
  631.                     $tables->setKasseID($requestData['kassenId']);
  632.                     $tables->setName($requestData['name']);
  633.                     $entityManager->persist($tables);
  634.                     $entityManager->flush();
  635.                     return $this->json($tables);
  636.                 }
  637.             } else {
  638.                 return $this->json(false);
  639.             }
  640.         }  else {
  641.             return $this->json("Key missing");
  642.         }
  643.     }
  644.     #[Route('/api/kasse/set-users'name'api_admin_kasse_setuser_global')]
  645.     public function APIConnectorSetuserKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  646.     {
  647.         //$requestData = json_decode($request->getContent(), true);
  648.         $requestData $request->request->all();
  649.         $connectorId $requestData['connectorID'];
  650.         //$overwrite = $request->get('overwrite');
  651.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  652.         if($shopDate) {
  653.             $kassenUser = new KassenUser();
  654.             $kassenUserCheck $entityManager->getRepository(KassenUser::class)->findOneBy(['kasseId'=> $requestData['kasseId'], 'createdBy' => $shopDate->getCreatedBy()]);
  655.             if($requestData) {
  656.                 if($kassenUserCheck) {
  657.                     $kassenUserCheck->setKasseId($requestData['kasseId']);
  658.                     $kassenUserCheck->setLogin($requestData['login']);
  659.                     $entityManager->persist($kassenUserCheck);
  660.                     $entityManager->flush();
  661.                     return $this->json($kassenUserCheck);
  662.                 } else {
  663.                     $kassenUser->setCreatedBy($shopDate->getCreatedBy());
  664.                     $kassenUser->setKasseId($requestData['kasseId']);
  665.                     $kassenUser->setLogin($requestData['login']);
  666.                     $entityManager->persist($kassenUser);
  667.                     $entityManager->flush();
  668.                     return $this->json($kassenUser);
  669.                 }
  670.             } else {
  671.                 return $this->json(false);
  672.             }
  673.         }  else {
  674.             return $this->json("Key missing");
  675.         }
  676.     }
  677.     #[Route('/api/kasse/set-zutaten'name'api_admin_kasse_zutaten_global')]
  678.     public function APIConnectorSetZutatenKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  679.     {
  680.         //$requestData = json_decode($request->getContent(), true);
  681.         $requestData $request->request->all();
  682.         $connectorId $requestData['connectorID'];
  683.         //$overwrite = $request->get('overwrite');
  684.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  685.         if($shopDate) {
  686.             $warengruppenutype = new WarengruppenType();
  687.             $warengruppenutypeChecker $entityManager->getRepository(WarengruppenType::class)->findOneBy(['kassenID'=> $requestData['kasseid'], 'createdBy' => $shopDate->getCreatedBy()]);
  688.             if($requestData) {
  689.                 if($warengruppenutypeChecker) {
  690.                     $warengruppenutypeChecker->setName($requestData['name']);
  691.                     $warengruppenutypeChecker->setCodeSynchro($requestData['codeSynchro']);
  692.                     $warengruppenutypeChecker->setDeviceId($requestData['deviceId']);
  693.                     $warengruppenutypeChecker->setModeid($requestData['modeid']);
  694.                     $warengruppenutypeChecker->setKassenID($requestData['kasseid']);
  695.                     $entityManager->persist($warengruppenutypeChecker);
  696.                     $entityManager->flush();
  697.                     return $this->json($warengruppenutypeChecker);
  698.                 } else {
  699.                     $warengruppenutype->setCreatedBy($shopDate->getCreatedBy());
  700.                     $warengruppenutype->setName($requestData['name']);
  701.                     $warengruppenutype->setCodeSynchro($requestData['codeSynchro']);
  702.                     $warengruppenutype->setDeviceId($requestData['deviceId']);
  703.                     $warengruppenutype->setModeid($requestData['modeid']);
  704.                     $warengruppenutype->setKassenID($requestData['kasseid']);
  705.                     $entityManager->persist($warengruppenutype);
  706.                     $entityManager->flush();
  707.                     return $this->json($warengruppenutype);
  708.                 }
  709.             } else {
  710.                 return $this->json(false);
  711.             }
  712.         }  else {
  713.             return $this->json("Key missing");
  714.         }
  715.     }
  716.     #[Route('/api/kasse/set-single-product'name'api_admin_kasse_setsingleproduct_global')]
  717.     public function APIConnectorSetSingleProductKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  718.     {
  719.         $requestData $request->request->all();;
  720.         
  721.         $connectorId $requestData['connectorID'];
  722.         //$overwrite = $request->get('overwrite');
  723.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  724.         if($shopDate) {
  725.             if($requestData) {
  726.                 $slugger = new AsciiSlugger();
  727. // Use the slug() method to convert the string to a URL format
  728.                 $url $slugger->slug($requestData['productName'])->lower()->toString();
  729.                 $product = new Products();
  730.                 $unuqueId $requestData['id'];
  731.                 $plu $requestData['plu'];
  732.                 $ean $requestData['ean'];
  733.                 $categoryName $requestData['categoryName'];
  734.                 $categoryId $requestData['categoryId'];
  735.                 $productName $requestData['productName'];
  736.                 $productPrice $requestData['productPrice'];
  737.                 $productHappyHourPrice $requestData['productHappyHourPrice'];
  738.                 $productTaxId $requestData['productTaxId'];
  739.                 $productTax $requestData['productTax'];
  740.                 $staticTax $requestData['staticTax'];
  741.                 $productConsisted $requestData['productConsisted'];
  742.                 $productKitchenName $requestData['productKitchenName'];
  743.                 $minUnit $requestData['minUnit'];
  744.                 $minUnitCount $requestData['minUnitCount'];
  745.                 $isService $requestData['isService'];
  746.                 $maxProductDiscount $requestData['maxProductDiscount'];
  747.                 $productColor $requestData['productColor'];
  748.                 $productImages $requestData['productImages'];
  749.                 $productImagesShow $requestData['productImagesShow'];
  750.                 $productSortIndex $requestData['productSortIndex'];
  751.                 $withSupplement $requestData['withSupplement'];
  752.                 $hasVariablePrice $requestData['hasVariablePrice'];
  753.                 $categoryCheck $entityManager->getRepository(Category::class)->findOneBy(['name'=> $categoryName'createdBy' => $shopDate->getCreatedBy()]);
  754.                 if(!$categoryCheck) {
  755.                     return $this->json("Categories not found");
  756.                 }
  757.                 $p $entityManager->getRepository(Products::class)->findOneBy(['unuqueId' => $unuqueId'createdBy' => $shopDate->getCreatedBy()]);
  758.                 $tax $entityManager->getRepository(Tax::class)->findOneBy(['kasseID' => $productTaxId'createdBy' => $shopDate->getCreatedBy()]);
  759.                 if($p) {
  760.                     $p->setUnuqueId($unuqueId);
  761.                     $p->setEan($ean);
  762.                     $p->setMinUnit($minUnit);
  763.                     $p->setMinUnitCount($minUnitCount);
  764.                     $p->setIsService($isService);
  765.                     $p->setPlu($plu);
  766.                     $p->setHasVariablePrice($hasVariablePrice);
  767.                     $p->setCategory($categoryCheck);
  768.                     $p->setName($productName);
  769.                     $p->setPrice($productPrice);
  770.                     $p->setPriceHappyHour($productHappyHourPrice);
  771.                     $p->setProductTax($productTax);
  772.                     if($tax) {
  773.                         $p->setTax($tax);
  774.                     }
  775.                     $p->setUrl($url);
  776.                     $p->setStaticTax($staticTax);
  777.                     $p->setProductConsisted($productConsisted);
  778.                     //$p->setProductKitchenName($productKitchenName);
  779.                     $p->setMaxProductDiscount($maxProductDiscount);
  780.                     $p->setColor($productColor);
  781.                     $p->setSortID($productSortIndex);
  782.                     $p->setSuppliment($withSupplement);
  783.                     $p->setcreatedBy($shopDate->getCreatedBy());
  784.                     $p->setDeviceId("");
  785.                     $p->setKodSynchro("");
  786.                     $entityManager->persist($p);
  787.                     $entityManager->flush();
  788.                 } else {
  789.                     $product->setUnuqueId($unuqueId);
  790.                     $product->setEan($ean);
  791.                     $product->setPlu($plu);
  792.                     $product->setMinUnit($minUnit);
  793.                     $product->setMinUnitCount($minUnitCount);
  794.                     $product->setIsService($isService);
  795.                     $product->setHasVariablePrice($hasVariablePrice);
  796.                     $product->setCategory($categoryCheck);
  797.                     $product->setName($productName);
  798.                     $product->setPrice($productPrice);
  799.                     $product->setPriceHappyHour($productHappyHourPrice);
  800.                     $product->setProductTax($productTax);
  801.                     if($tax) {
  802.                         $product->setTax($tax);
  803.                     }
  804.                     $product->setUrl($url);
  805.                     $product->setStaticTax($staticTax);
  806.                     $product->setProductConsisted($productConsisted);
  807.                     //$product->setProductKitchenName($productConsisted);
  808.                     $product->setMaxProductDiscount($maxProductDiscount);
  809.                     $product->setColor($productColor);
  810.                     $product->setSortID($productSortIndex);
  811.                     $product->setSuppliment($withSupplement);
  812.                     $product->setcreatedBy($shopDate->getCreatedBy());
  813.                     $product->setDeviceId("");
  814.                     $product->setKodSynchro("");
  815.                     // encode the plain password
  816.                     $entityManager->persist($product);
  817.                     $entityManager->flush();
  818.                 }
  819.                 $entityManager->persist($product);
  820.                 try {
  821.                     $entityManager->flush();
  822.                     return $this->json($product);
  823.                 } catch (\Exception $ex) {
  824.                     return $this->json("Error");
  825.                 }
  826.             } else {
  827.                 return $this->json(false);
  828.             }
  829.         } else {
  830.             return $this->json("Key missing");
  831.         }
  832.     }
  833.     #[Route('/api/kasse/get-tax'name'api_admin_kasse_gettax_global')]
  834.     public function APIConnectorGetTaxKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  835.     {
  836.         $connectorId str_replace('"'""$request->get('connectorId'));
  837.         //$connectorId = $request->get('connectorId');
  838.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  839.         if($shopDate) {
  840.             $tax $entityManager->getRepository(Tax::class)->findBy(['createdBy' => $shopDate->getCreatedBy()]);
  841.             if($tax != null) {
  842.                 return $this->json($tax);
  843.             } else {
  844.                 return $this->json(false);
  845.             }
  846.         } else {
  847.             return $this->json("Key missing");
  848.         }
  849.     }
  850.     #[Route('/api/kasse/get-tische'name'api_admin_kasse_gettische_global')]
  851.     public function APIConnectorGetTischeKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  852.     {
  853.         $connectorId str_replace('"'""$request->get('connectorId'));
  854.         //$connectorId = $request->get('connectorId');
  855.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  856.         if($shopDate) {
  857.             $tables $entityManager->getRepository(Tables::class)->findBy(['createdBy' => $shopDate->getCreatedBy()]);
  858.             if($tables != null) {
  859.                 return $this->json($tables);
  860.             } else {
  861.                 return $this->json(false);
  862.             }
  863.         } else {
  864.             return $this->json("Key missing");
  865.         }
  866.     }
  867.     #[Route('/api/kasse/get-raume'name'api_admin_kasse_getraume_global')]
  868.     public function APIConnectorGetraumeKasseGlobal(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): \Symfony\Component\HttpFoundation\JsonResponse
  869.     {
  870.         $connectorId str_replace('"'""$request->get('connectorId'));
  871.         //$connectorId = $request->get('connectorId');
  872.         $shopDate $entityManager->getRepository(ShopData::class)->findOneBy(['connector' => $connectorId]);
  873.         if($shopDate) {
  874.             $tablescategories $entityManager->getRepository(TablesCategories::class)->findBy(['createdBy' => $shopDate->getCreatedBy()]);
  875.             if($tablescategories != null) {
  876.                 return $this->json($tablescategories);
  877.             } else {
  878.                 return $this->json(false);
  879.             }
  880.         } else {
  881.             return $this->json("Key missing");
  882.         }
  883.     }
  884.     function addCategoryFunction() {
  885.     }
  886.     function addProducteFunction() {
  887.     }
  888. }