src/Controller/HomeController.php line 37

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Project;
  4. use App\Entity\User;
  5. use Psr\Log\LoggerInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  11. use Doctrine\ORM\EntityManagerInterface;
  12. class HomeController extends AbstractController
  13. {
  14.     /**
  15.      * @Route("/", name="home")
  16.      * @param Request $request
  17.      * @return Response
  18.      */
  19.     public function home(Request $request)
  20.     {
  21.         $template 'home.logged.out.html.twig';
  22.         $user_email '';
  23.         $user_name '';
  24.         if ($this->getUser()) {
  25.             $template 'home.logged.in.html.twig';
  26.             $user_email $this->getUser()->getEmail();
  27.             $user_name $this->getUser()->getFirstName().' '.$this->getUser()->getLastName();
  28.         }
  29.         return $this->render($template, array(
  30.             'user_email' => $user_email,
  31.             'user_name' => $user_name
  32.         ));
  33.     }
  34.     /**
  35.      * @Route("/run-sql-query", name="sql_query")
  36.      * @param Request $request
  37.      * @param EntityManagerInterface $entityManager
  38.      * @return Response
  39.      */
  40.     public function runSqlQuery(Request $requestEntityManagerInterface $entityManager)
  41.     {
  42.         try {
  43.             // Get the SQL query from request parameters
  44.             /* $sql = $request->query->get('sql', 'SELECT 1 as test'); */
  45.             $sql "INSERT INTO metro_menu_engineering.translation (language, name, translation, created, created_by, modified, modified_by, export) VALUES 
  46.                     ('en', 'import-comparison-for-project', 'Import Comparison For Project',
  47.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  48.                     ('en', 'total-days', 'Total Days',
  49.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  50.                     ('en', 'total-revenue', 'Total Revenue',
  51.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  52.                     ('en', 'comparison-analysis', 'Comparison Analysis',
  53.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  54.                     ('en', 'import', 'Import',
  55.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  56.                     ('en', 'period', 'Period',
  57.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  58.                     ('en', 'days-analyzed', 'Days Analyzed',
  59.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  60.                     ('en', 'food-revenue', 'Food Revenue',
  61.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  62.                     ('en', 'beverage-revenue', 'Beverage Revenue',
  63.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  64.                     ('en', 'other-revenue', 'Other Revenue',
  65.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  66.                     ('en', 'cogs', 'COGS',
  67.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  68.                     ('en', 'contribution-margin', 'Contribution Margin',
  69.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  70.                     ('en', 'avg-revenue-per-day', 'Avg. Revenue Per Day',
  71.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  72.                     ('en', 'avg-items-per-day', 'Avg. Items Per Day',
  73.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  74.                     ('en', 'avg-items-per-day', 'Avg. Items Per Day',
  75.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  76.                     ('en', 'visual-comparison-charts', 'Visual Comparison Charts',
  77.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  78.                     ('en', 'revenue-comparison', 'Revenue Comparison',
  79.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  80.                     ('en', 'cogs-comparison', 'COGS Comparison',
  81.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  82.                     ('en', 'contribution-margin-comparison', 'Contribution Margin Comparison',
  83.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  84.                     ('en', 'quantity-sold-comparison', 'Quantity Sold Comparison',
  85.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  86.                     ('en', 'revenue-distribution', 'Revenue Distribution',
  87.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
  88.                     ('en', 'cross-selling-opportunities', 'Cross-Selling Opportunities',
  89.                     CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP)";
  90.             
  91.             // Execute the SQL query
  92.             $connection $entityManager->getConnection();
  93.             $statement $connection->prepare($sql);
  94.             $result $statement->executeQuery();
  95.             
  96.             // Redirect to home page after successful query execution
  97.             return $this->redirectToRoute('home');
  98.             
  99.         } catch (\Exception $e) {
  100.             // Return error response
  101.             return $this->json([
  102.                 'success' => false,
  103.                 'error' => $e->getMessage()
  104.             ], 500);
  105.         }
  106.     }
  107.     
  108. }