<?php
namespace App\Controller;
use App\Controller\Classes\Telegram;
use App\Entity\BusinessTime;
use App\Entity\Category;
use App\Entity\Feedback;
use App\Entity\Impressum;
use App\Entity\OrderItem;
use App\Entity\Orders;
use App\Entity\ProductCars;
use App\Entity\Products;
use App\Entity\ShopData;
use App\Entity\Tables;
use App\Form\CartType;
use App\Form\OrderType;
use App\Form\UserFeedbackType;
use App\Manager\CartManager;
use App\Storage\CartSessionStorage;
use DateTime;
use Doctrine\ORM\EntityManagerInterface;
use phpDocumentor\Reflection\Types\True_;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class ViewShopController extends AbstractController
{
#[Route('/restaurant-und-cafe', name: 'restaurantCafe')]
public function index(EntityManagerInterface $entityManager): Response
{
$shop = $entityManager->getRepository(ShopData::class)->findAll();
return $this->render('view_shop/index.html.twig', [
'controller_name' => 'ViewShopController',
'user' => $this->getUser(),
'shops' => $shop
]);
}
/* #[Route('/restaurant-und-cafe/shop/{shopName}/{table}', name: 'restaurantCafeShop')]
public function shop(EntityManagerInterface $entityManager, CartManager $cartManager, Request $request, string $shopName, string $table): Response
{
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('geschaftName'=>$shopName));
$categories = $entityManager->getRepository(Category::class)->findBy(array('createdBy'=>$shop->getCreatedBy()));
$impressum = $entityManager->getRepository(Impressum::class)->findOneBy(['createdBy'=> $shop->getCreatedBy()]);
$table = $entityManager->getRepository(Tables::class)->findOneBy(['createdBy'=> $shop->getCreatedBy(), 'name'=> $table ]);
/* $shopSetting = $shop->getShopSetting();
$shopTemplatePath = $shopSetting->getShopTemplates()->getPath();*/
/* $user = $shop->getCreatedBy();
$cart = $cartManager->getCurrentCart();*/
/* $cart->setTable($table);
$table->setEmpty(false);
$entityManager->persist($table);
$entityManager->flush();*/
/*$entityManager->persist($cart);
$entityManager->flush();
$allProductWithCategory = array();
foreach($categories as $cat) {
$products = $entityManager->getRepository(Products::class)->findBy(['createdBy'=>$shop->getCreatedBy(), 'category'=> $cat]);
$allProductWithCategory[$cat->getName()] = $products;
}
return $this->render("@custom_templates/shop/templates/demo/shop.html.twig", [
'controller_name' => 'StreamController',
'user' => $this->getUser(),
's' => $shop,
'impress' =>$impressum,
'allProducts' => $allProductWithCategory,
'total' => $cart->getTotal(),
'c' => $categories,
'table'=>$table
]);*/
/*}*/
#[Route('/restaurant-und-cafe/shop/{shopName}', name: 'restaurantCafeShopDemo')]
public function shopDemo(EntityManagerInterface $entityManager, CartManager $cartManager, Request $request, string $shopName): Response
{
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('shopUrl'=>$shopName));
$categories = $entityManager->getRepository(Category::class)->findBy(array('createdBy'=>$shop->getCreatedBy()));
$impressum = $entityManager->getRepository(Impressum::class)->findOneBy(['createdBy'=> $shop->getCreatedBy()]);
/* $shopSetting = $shop->getShopSetting();
$shopTemplatePath = $shopSetting->getShopTemplates()->getPath();*/
$user = $shop->getCreatedBy();
$cart = $cartManager->getCurrentCart();
$allProductWithCategory = array();
foreach($categories as $cat) {
$products = $entityManager->getRepository(Products::class)->findBy(['createdBy'=>$shop->getCreatedBy(), 'category'=> $cat]);
$allProductWithCategory[$cat->getName()] = $products;
}
//dd($allProductWithCategory);
return $this->render("@custom_templates/shop/templates/demo/shop.html.twig", [
'controller_name' => 'StreamController',
'user' => $this->getUser(),
's' => $shop,
'impress' =>$impressum,
'allProducts' => $allProductWithCategory,
'total' => $cart->getTotal(),
'c' => $categories,
]);
}
#[Route('/restaurant-und-cafe/menus/{shopName}/{table}', name: 'restaurantmenusAdditional')]
public function restaurantmenusAdditional(EntityManagerInterface $entityManager, CartManager $cartManager, Request $request, string $shopName, string $table): Response
{
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('geschaftName'=>$shopName));
$categories = $entityManager->getRepository(Category::class)->findBy(array('createdBy'=>$shop->getCreatedBy()));
$impressum = $entityManager->getRepository(Impressum::class)->findOneBy(['createdBy'=> $shop->getCreatedBy()]);
$table = $entityManager->getRepository(Tables::class)->findOneBy(['createdBy'=> $shop->getCreatedBy(), 'name'=> $table ]);
$user = $shop->getCreatedBy();
$cart = $cartManager->getCurrentCart();
/* $cart->setTable($table);
$table->setEmpty(false);
$entityManager->persist($table);
$entityManager->flush();*/
$entityManager->persist($cart);
$entityManager->flush();
$allProductWithCategory = array();
foreach($categories as $cat) {
$products = $entityManager->getRepository(Products::class)->findBy(['createdBy'=>$shop->getCreatedBy(), 'category'=> $cat]);
$allProductWithCategory[$cat->getName()] = $products;
}
return $this->render("@custom_templates/menu/templates/demoAdditional/menu.html.twig", [
'controller_name' => 'StreamController',
'user' => $this->getUser(),
's' => $shop,
'impress' =>$impressum,
'allProducts' => $allProductWithCategory,
'total' => $cart->getTotal(),
'c' => $categories,
'table'=>$table
]);
}
#[Route('/restaurant-und-cafe/callKeller/{shopName}/{table}', name: 'callKeller')]
public function callKeller(EntityManagerInterface $entityManager, CartManager $cartManager, Request $request, string $shopName, string $table): Response
{
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('shopUrl'=>$shopName));
if($shop) {
$table = $entityManager->getRepository(Tables::class)->findOneBy(['createdBy'=> $shop->getCreatedBy(), 'name'=> $table ]);
if($table) {
$messega = $table->getName() . " - " . "Подойдите пожайлуйста";
$table->setShowAlert(true);
$table->setEmpty(false);
$this->sendMessage($shop->getShopTelegramAPI(), $messega, '5310743804:AAHGWMMLxK1u1q8-HgdllPuZAQE6ceU6LxQ');
$entityManager->flush();
return $this->json(true);
} else {
return $this->json(false);
}
} else {
return $this->json(false);
}
}
#[Route('/restaurant-und-cafe/callKellerDissable/{shopName}/{table}/{id}', name: 'callKellerTableDissableTelegram')]
public function callKellerAcceptTelegram(EntityManagerInterface $entityManager, CartManager $cartManager, Request $request, string $shopName, string $table, string $id): Response
{
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('shopTelegramAPI'=>$id));
if($shop->getConnector() !== $id) {
return $this->json("Falsche KEY");
}
$table = $entityManager->getRepository(Tables::class)->findOneBy(['createdBy'=> $shop->getCreatedBy(), 'name'=> $table ]);
if($table) {
$table->setShowAlert(true);
$entityManager->persist($table);
$entityManager->flush();
return $this->json(true);
} else {
return $this->json(false);
}
}
#[Route('/restaurant-und-cafe/reservirung/{shopName}', name: 'restaurantReservirung')]
public function restaurantReservirung(EntityManagerInterface $entityManager, CartManager $cartManager, Request $request, string $shopName, string $table): Response
{
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('geschaftName'=>$shopName));
$categories = $entityManager->getRepository(Category::class)->findBy(array('createdBy'=>$shop->getCreatedBy()));
$impressum = $entityManager->getRepository(Impressum::class)->findOneBy(['createdBy'=> $shop->getCreatedBy()]);
$table = $entityManager->getRepository(Tables::class)->findOneBy(['createdBy'=> $shop->getCreatedBy(), 'name'=> $table ]);
/* $shopSetting = $shop->getShopSetting();
$shopTemplatePath = $shopSetting->getShopTemplates()->getPath();*/
$user = $shop->getCreatedBy();
$cart = $cartManager->getCurrentCart();
/* $cart->setTable($table);
$table->setEmpty(false);
$entityManager->persist($table);
$entityManager->flush();*/
$entityManager->persist($cart);
$entityManager->flush();
$allProductWithCategory = array();
foreach($categories as $cat) {
$products = $entityManager->getRepository(Products::class)->findBy(['createdBy'=>$shop->getCreatedBy(), 'category'=> $cat]);
$allProductWithCategory[$cat->getName()] = $products;
}
return $this->render("@custom_templates/shop/templates/demo/shop.html.twig", [
'controller_name' => 'StreamController',
'user' => $this->getUser(),
's' => $shop,
'impress' =>$impressum,
'allProducts' => $allProductWithCategory,
'total' => $cart->getTotal(),
'c' => $categories,
'table'=>$table
]);
}
#[Route('/autohause/{shopUrl}', name: 'autoHausMain')]
public function autoHause(EntityManagerInterface $entityManager, CartManager $cartManager, Request $request, string $shopUrl): Response
{
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('shopUrl'=>$shopUrl));
$categories = $entityManager->getRepository(Category::class)->findBy(array('createdBy'=>$shop->getCreatedBy()));
$user = $shop->getCreatedBy();
$cart = $cartManager->getCurrentCart();
return $this->render("@custom_templates/autohaus/templates/demo/shop.html.twig", [
'controller_name' => 'StreamController',
'user' => $this->getUser(),
's' => $shop,
'total' => $cart->getTotal(),
'c' => $categories,
]);
}
#[Route('/apis/orders/{id}', name: 'demoOrders')]
public function orderList(EntityManagerInterface $entityManager, CartManager $cartManager, Request $request, string $id): Response
{
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('id'=>$id));
$orders = $entityManager->getRepository(Orders::class)->findBy(['shopID'=> $shop->getId()]);
return $this->json($orders);
}
#[Route('/autohause/{shopUrl}/{categoryUrl}', name: 'autoHausMainCat')]
public function autoHauseCat(EntityManagerInterface $entityManager, CartManager $cartManager, Request $request, string $shopUrl, string $categoryUrl): Response
{
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('shopUrl'=>$shopUrl));
$categories = $entityManager->getRepository(Category::class)->findBy(array('createdBy'=>$shop->getCreatedBy(), 'url'=>$categoryUrl));
$user = $shop->getCreatedBy();
$cart = $cartManager->getCurrentCart();
return $this->render("@custom_templates/autohaus/templates/demo/shopcat.html.twig", [
'controller_name' => 'StreamController',
'user' => $this->getUser(),
's' => $shop,
'total' => $cart->getTotal(),
'c' => $categories,
]);
}
#[Route('/autohause/{shopUrl}/{categoryUrl}/{pUrl}', name: 'autoHausSingle')]
public function autoHauseSingle(EntityManagerInterface $entityManager, CartManager $cartManager, Request $request, string $pUrl, string $shopUrl, string $categoryUrl): Response
{
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('shopUrl'=>$shopUrl));
$categories = $entityManager->getRepository(Category::class)->findBy(array('createdBy'=>$shop->getCreatedBy(), 'url'=>$categoryUrl));
$productCar = $entityManager->getRepository(ProductCars::class)->findOneBy(['url'=>$pUrl, 'createdBy'=>$shop->getCreatedBy()]);
$impressum = $entityManager->getRepository(Impressum::class)->findOneBy(['createdBy'=> $shop->getCreatedBy()]);
$user = $shop->getCreatedBy();
$cart = $cartManager->getCurrentCart();
return $this->render("@custom_templates/autohaus/templates/demo/shopsingle.html.twig", [
'controller_name' => 'StreamController',
'user' => $this->getUser(),
's' => $shop,
'product' => $productCar,
'impress' => $impressum,
'total' => $cart->getTotal(),
'c' => $categories,
]);
}
#[Route('/restaurant-und-cafe/shop/{shopName}/addToCart/{id}', name: 'addToCart')]
public function AddCart(EntityManagerInterface $entityManager, CartManager $cartManager,Request $request, string $shopName, string $id): Response
{
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('shopUrl'=>$shopName));
$items = new OrderItem();
$product = $entityManager->getRepository(Products::class)->findOneBy(['id'=>$id]);
$items->setProduct($product);
$items->setQuantity(1);
$cart = $cartManager->getCurrentCart();
$cart
->addItem($items)
->setShopID($shop)
->setUpdatedAt(new \DateTime());
$cartManager->save($cart);
return $this->redirectToRoute('restaurantCafeShopDemo',array('shopName' => $shopName));
}
#[Route('/restaurant-und-cafe/shop/{shopName}/cart', name: 'cart')]
public function cartView(EntityManagerInterface $entityManager, CartManager $cartManager, Request $request, string $shopName, CartSessionStorage $cartStorage): Response
{
$cart = $cartManager->getCurrentCart();
$form = $this->createForm(CartType::class, $cart);
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('shopUrl'=>$shopName));
$categories = $entityManager->getRepository(Category::class)->findBy(array('createdBy'=>$shop->getCreatedBy()));
$form->handleRequest($request);
$impressum = $entityManager->getRepository(Impressum::class)->findOneBy(['createdBy'=> $shop->getCreatedBy()]);
/* $shopSetting = $shop->getShopSetting();
$shopTemplatePath = $shopSetting->getShopTemplates()->getPath();*/
if ($form->isSubmitted()) {
$cart->setUpdatedAt(new \DateTime());
$cart->setStatus("InProcess");
$cartManager->save($cart);
return $this->redirectToRoute('cart', ['shopName'=>$shopName]);
}
return $this->render("@custom_templates/shop/templates/demo/cart.html.twig", [
'cart' => $cart,
'user' => $this->getUser(),
's' => $shop,
'impress' => $impressum,
'total' => $cart->getTotal(),
'c' => $categories,
'form' => $form->createView(),
]);
}
#[Route('/restaurant-und-cafe/shop/{shopName}/checkout', name: 'checkout')]
public function checkoutPage(EntityManagerInterface $entityManager, CartManager $cartManager, Request $request, string $shopName, CartSessionStorage $cartStorage): Response
{
$cart = $cartManager->getCurrentCart();
$orders = $entityManager->getRepository(Orders::class)->findOneBy(['id'=>$cart->getId()]);
$form = $this->createForm(OrderType::class, $orders);
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('shopUrl'=>$shopName));
$impressum = $entityManager->getRepository(Impressum::class)->findOneBy(['createdBy'=> $shop->getCreatedBy()]);
$categories = $entityManager->getRepository(Category::class)->findBy(array('createdBy'=>$shop->getCreatedBy()));
$form->handleRequest($request);
$prefix = $shop->getOrderPrefix();
$dateNow = new DateTime('now');
$dateStringFormat= $dateNow->format('YmdHis');
if ($form->isSubmitted()) {
$order = $form->getNormData();
$order->setShopID($shop);
$order->setTotalCart($cart->getTotal());
$order->setOrderNummer($prefix . $dateStringFormat );
$order->setCreatedAt($dateNow);
$order->setUpdatedAt($dateNow);
$order->setStatus("OrderComplite");
$entityManager->persist($order);
$entityManager->flush();
$cartStorage->clearCart();
return $this->redirectToRoute('checkoutReady', ['shopName'=>$shopName, 'dateStringFormat'=>$dateStringFormat]);
}
/* $shopSetting = $shop->getShopSetting();*/
/* $shopTemplatePath = $shopSetting->getShopTemplates()->getPath();*/
return $this->render("@custom_templates/shop/templates/demo/checkout.html.twig", [
'cart' => $cart,
'user' => $this->getUser(),
's' => $shop,
'impress' => $impressum,
'total' => $cart->getTotal(),
'c' => $categories,
'form' => $form->createView(),
]);
}
#[Route('/restaurant-und-cafe/shop/{shopName}/checkout/ready/{dateStringFormat}', name: 'checkoutReady')]
public function checkoutPageReady(EntityManagerInterface $entityManager, CartManager $cartManager, Request $request, string $shopName, string $dateStringFormat, CartSessionStorage $cartStorage): Response
{
$cart = $cartManager->getCurrentCart();
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('shopUrl'=>$shopName));
/* $cartRenew = $cartStorage;*/
$form = $this->createForm(CartType::class, $cart);
$impressum = $entityManager->getRepository(Impressum::class)->findOneBy(['createdBy'=> $shop->getCreatedBy()]);
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('shopUrl'=>$shopName));
$categories = $entityManager->getRepository(Category::class)->findBy(array('createdBy'=>$shop->getCreatedBy()));
$form->handleRequest($request);
/*
if ($request->isMethod('POST')) {
$cart->setUpdatedAt(new \DateTime());
$cartManager->reload($cart);
return $this->redirectToRoute('cart');
}*/
if ($form->isSubmitted()) {
$cart->setUpdatedAt(new \DateTime());
$cartManager->save($cart);
return $this->redirectToRoute('cart', ['shopName'=>$shopName]);
}
/* $shopSetting = $shop->getShopSetting();
$shopTemplatePath = $shopSetting->getShopTemplates()->getPath();*/
$telegramApi = $shop->getShopTelegramAPI();
$prefix = $shop->getOrderPrefix();
$text = "Bestellnummer Nr. ". $prefix . $dateStringFormat ." kam von der Website";
$this->sendMessage($telegramApi, $text, '5310743804:AAHGWMMLxK1u1q8-HgdllPuZAQE6ceU6LxQ');
return $this->render("@custom_templates/shop/templates/demo/cart.html.twig", [
'cart' => $cart,
'user' => $this->getUser(),
's' => $shop,
'impress' => $impressum,
'total' => $cart->getTotal(),
'c' => $categories,
'form' => $form->createView(),
]);
}
function sendMessage($chatID, $messaggio, $token) {
//$url = "https://192.168.60.56:8000/restaurant-und-cafe/callKeller/demotest/G23";
//$url = "acceptTisch/callKellerDissable/demotest/G23";
/*$url = $url . "&text=" . urlencode($messaggio);*/
$keyboard = [
'inline_keyboard' => [
[
['text' => 'Принять стол', 'callback_data' => 'acceptTisch', 'url' => "/acceptTisch"]
]
],
'resize_keyboard' => true, // Опционально: сделать клавиатуру масштабируемой
];
$keyboard = json_encode($keyboard);
$params = [
'chat_id' => $chatID,
'text' => $messaggio,
'reply_markup' => $keyboard,
];
$url = "https://api.telegram.org/bot" . $token . "/sendMessage?" . http_build_query($params);;
$ch = curl_init();
$optArray = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
);
curl_setopt_array($ch, $optArray);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
#[Route('/restaurant-und-cafe/feedback/{shopName}', name: 'leaveFeedback')]
public function leaveFeedback(EntityManagerInterface $entityManager, Request $request, string $shopName): Response
{
//$data = $request->get('email');
//$data = $request->getContent();
/* $data = json_decode($request->getContent(), true);
$feedback = new Feedback();*/
$data = $request->getContent();
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('geschaftName'=>$shopName));
$categories = $entityManager->getRepository(Category::class)->findBy(array('createdBy'=>$shop->getCreatedBy()));
$feedback = new Feedback();
return $this->json("Added");
}
#[Route('/restaurant-und-cafe/menu/{shopName}', name: 'restaurantCafeMenu')]
public function menu(EntityManagerInterface $entityManager, Request $request, string $shopName): Response
{
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('shopUrl'=>$shopName));
$categories = $entityManager->getRepository(Category::class)->findBy(array('createdBy'=>$shop->getCreatedBy()));
$impressum = $entityManager->getRepository(Impressum::class)->findOneBy(['createdBy'=> $shop->getCreatedBy()]);
$feedback = new Feedback();
$form = $this->createForm(UserFeedbackType::class, $feedback);
$form->handleRequest($request);
/* $menuSetting = $shop->getMenuSetting();*/
/* $shopTemplatePath = $menuSetting->getMenuTemplates()->getPath();*/
$alergenOn = false;
$caloryOn = false;
$componentsOn = false;
$feedback = false;
$deliver = $shop->getDelivery();
$payment = $shop->getPayment();
$statusOffen = $entityManager->getRepository(BusinessTime::class)->findOneBy(['createdBy'=> $shop->getCreatedBy()]);
$curDay = date("D");
$curentTime = date("G:i:s");
if($statusOffen) {
$openCloseVal = $this->getOftClose($statusOffen, $curDay, $curentTime);
$getCurrentOff = $this->getCurrentDayOffen($statusOffen, $curDay, $curentTime);
} else {
$getCurrentOff = null;
$openCloseVal = null;
}
$allProductWithCategory = array();
foreach($categories as $cat) {
$products = $entityManager->getRepository(Products::class)->findBy(['createdBy'=>$shop->getCreatedBy(), 'category'=> $cat->getId()]);
$allProductWithCategory[$cat->getName()] = $products;
}
foreach ($allProductWithCategory as $categoryName => &$products) {
usort($products, function ($a, $b) {
// Сравниваем по полю 'numberInMenu'
return $a->getNumberInMenu() - $b->getNumberInMenu();
});
}
if ($form->isSubmitted() && $form->isValid()) {
// encode the plain password
$feedback->setShopid($shop);
$entityManager->persist($feedback);
$entityManager->flush();
$feedback = new Feedback();
$form = $this->createForm(UserFeedbackType::class, $feedback);
return $this->render("@custom_templates/menu/templates/demo/menu.html.twig", [
'controller_name' => 'ViewShopController',
'notification' => 'Success',
'user' => $this->getUser(),
's' => $shop,
'alergen' => $alergenOn,
'comp' => $componentsOn,
// 'menuSetting' => $menuSetting,
'calor' => $caloryOn,
'currentOff' => $getCurrentOff,
'delivery' =>$deliver,
'payment' =>$payment,
'allProducts' => $allProductWithCategory,
'feedback' => $feedback,
'openClose' => $openCloseVal,
'statusOffen' => $statusOffen,
'impress'=> $impressum,
'categories' => $categories,
'form' => $form->createView()
]);
} else {
return $this->render("@custom_templates/menu/templates/demo/menu.html.twig", [
'controller_name' => 'ViewShopController',
'user' => $this->getUser(),
's' => $shop,
'alergen' => $alergenOn,
'comp' => $componentsOn,
'impress'=> $impressum,
'currentOff' => $getCurrentOff,
'openClose' => $openCloseVal,
'calor' => $caloryOn,
'feedback' => $feedback,
'statusOffen' => $statusOffen,
'delivery' =>$deliver,
'payment' =>$payment,
'allProducts' => $allProductWithCategory,
'notification' => 'false',
'categories' => $categories,
// 'menuSetting' => $menuSetting,
'form' => $form->createView()
]);
}
}
public function CheckUserData(){
return true;
}
#[Route('/restaurant-und-cafe/menu/{shopName}/{table}', name: 'restaurantCafeMenuTische')]
public function menuTische(EntityManagerInterface $entityManager, Request $request, string $shopName): Response
{
$shop = $entityManager->getRepository(ShopData::class)->findOneBy(array('geschaftName'=>$shopName));
$categories = $entityManager->getRepository(Category::class)->findBy(array('createdBy'=>$shop->getCreatedBy()));
$impressum = $entityManager->getRepository(Impressum::class)->findOneBy(['createdBy'=> $shop->getCreatedBy()]);
$feedback = new Feedback();
$form = $this->createForm(UserFeedbackType::class, $feedback);
$form->handleRequest($request);
/* $menuSetting = $shop->getMenuSetting();*/
/* $shopTemplatePath = $menuSetting->getMenuTemplates()->getPath();*/
$alergenOn = false;
$caloryOn = false;
$componentsOn = false;
/* $feedback = false;*/
$deliver = $shop->getDelivery();
$payment = $shop->getPayment();
$statusOffen = $entityManager->getRepository(BusinessTime::class)->findOneBy(['createdBy'=> $shop->getCreatedBy()]);
$curDay = date("D");
$curentTime = date("G:i:s");
$openCloseVal = $this->getOftClose($statusOffen, $curDay, $curentTime);
$getCurrentOff = $this->getCurrentDayOffen($statusOffen, $curDay, $curentTime);
$allProductWithCategory = array();
foreach($categories as $cat) {
$products = $entityManager->getRepository(Products::class)->findBy(['createdBy'=>$shop->getCreatedBy(), 'category'=> $cat->getId()]);
;
$allProductWithCategory[$cat->getName()] = $products;
}
if ($form->isSubmitted() && $form->isValid()) {
// encode the plain password
$feedback->setShopid($shop);
$entityManager->persist($feedback);
$entityManager->flush();
$feedback = new Feedback();
$form = $this->createForm(UserFeedbackType::class, $feedback);
return $this->render("@custom_templates/menushop/templates/demo/menu.html.twig", [
'controller_name' => 'ViewShopController',
'notification' => 'Success',
'user' => $this->getUser(),
's' => $shop,
'alergen' => $alergenOn,
'comp' => $componentsOn,
// 'menuSetting' => $menuSetting,
'calor' => $caloryOn,
'currentOff' => $getCurrentOff,
'delivery' =>$deliver,
'payment' =>$payment,
'allProducts' => $allProductWithCategory,
'feedback' => $feedback,
'openClose' => $openCloseVal,
'statusOffen' => $statusOffen,
'impress'=> $impressum,
'categories' => $categories,
'form' => $form->createView()
]);
} else {
return $this->render("@custom_templates/menu/templates/demo/menu.html.twig", [
'controller_name' => 'ViewShopController',
'user' => $this->getUser(),
's' => $shop,
'alergen' => $alergenOn,
'comp' => $componentsOn,
'impress'=> $impressum,
'currentOff' => $getCurrentOff,
'openClose' => $openCloseVal,
'calor' => $caloryOn,
'feedback' => $feedback,
'statusOffen' => $statusOffen,
'delivery' =>$deliver,
'payment' =>$payment,
'allProducts' => $allProductWithCategory,
'notification' => 'false',
'categories' => $categories,
// 'menuSetting' => $menuSetting,
'form' => $form->createView()
]);
}
}
public function getCurrentDayOffen($statusOffen, $day, $currentTime) {
if($day == "Mon") {
if($statusOffen->isMonOn()) {
$timeOpen = $statusOffen->getMonStart()->format('G:i');
$timeClose = $statusOffen->getMonEnd()->format('G:i');
return [$day, $timeOpen, $timeClose];
} else {
return "Geschlossen";
}
}
if($day == "Sun") {
if($statusOffen->isSunOn()) {
$timeOpen = $statusOffen->getSunStart()->format('G:i');
$timeClose = $statusOffen->getSunEnd()->format('G:i');
return [$day, $timeOpen, $timeClose];
} else {
return "Geschlossen";
}
}
if($day == "Tue") {
if($statusOffen->isTueOn()) {
$timeOpen = $statusOffen->getTueStart()->format('G:i');
$timeClose = $statusOffen->getTueEnd()->format('G:i');
return [$day, $timeOpen, $timeClose];
} else {
return "Geschlossen";
}
}
if($day == "Thu") {
if($statusOffen->isThurOn()) {
$timeOpen = $statusOffen->getThurStart()->format('G:i');
$timeClose = $statusOffen->getThurEnd()->format('G:i');
return [$day, $timeOpen, $timeClose];
} else {
return "Geschlossen";
}
}
if($day == "Fri") {
if($statusOffen->isFriOn()) {
$timeOpen = $statusOffen->getFriStart()->format('G:i');
$timeClose = $statusOffen->getFriEnd()->format('G:i');
return [$day, $timeOpen, $timeClose];
} else {
return "Geschlossen";
}
}
if($day == "Sat") {
if($statusOffen->isSatOn()) {
$timeOpen = $statusOffen->getSatStart()->format('G:i');
$timeClose = $statusOffen->getSatEnd()->format('G:i');
return [$day, $timeOpen, $timeClose];
} else {
return "Geschlossen";
}
}
}
public function getOftClose($statusOffen, $day, $currentTime) {
if($day == "Sun") {
if($statusOffen->isSunOn()) {
$timeOpen = $statusOffen->getSunStart()->format('G:i');
$timeClose = $statusOffen->getSunEnd()->format('G:i');
return [$day, $timeOpen, $timeClose];
} else {
return "Geschlossen";
}
}
if($day == "Mon") {
if($statusOffen->isMonOn()) {
$timeOpen = $statusOffen->getMonStart()->format('G:i');
$timeClose = $statusOffen->getMonEnd()->format('G:i');
return [$day, $timeOpen, $timeClose];
} else {
return "Geschlossen";
}
}
if($day == "Tue") {
if($statusOffen->isTueOn()) {
$timeOpen = $statusOffen->getTueStart()->format('G:i');
$timeClose = $statusOffen->getTueEnd()->format('G:i');
return [$day, $timeOpen, $timeClose];
} else {
return "Geschlossen";
}
}
if($day == "Wed") {
if($statusOffen->isTueOn()) {
$timeOpen = $statusOffen->getTueStart()->format('G:i');
$timeClose = $statusOffen->getTueEnd()->format('G:i');
return [$day, $timeOpen, $timeClose];
} else {
return "Geschlossen";
}
}
if($day == "Thu") {
if($statusOffen->isThurOn()) {
$timeOpen = $statusOffen->getThurStart()->format('G:i');
$timeClose = $statusOffen->getThurEnd()->format('G:i');
return [$day, $timeOpen, $timeClose];
} else {
return "Geschlossen";
}
}
if($day == "Fri") {
if($statusOffen->isFriOn()) {
$timeOpen = $statusOffen->getFriStart()->format('G:i');
$timeClose = $statusOffen->getFriEnd()->format('G:i');
return [$day, $timeOpen, $timeClose];
} else {
return "Geschlossen";
}
}
if($day == "Sat") {
if($statusOffen->isSatOn()) {
$timeOpen = $statusOffen->getSatStart()->format('G:i');
$timeClose = $statusOffen->getSatEnd()->format('G:i');
return [$day, $timeOpen, $timeClose];
} else {
return "Geschlossen";
}
}
}
public function checkTime($open, $close, $currenTime){
if ($currenTime > $open && $currenTime < $close)
{
return "Geöffnet";
} else {
return "Geschlossen";
}
}
}