<?php
namespace App\Controller;
use App\Entity\Project;
use App\Entity\User;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Doctrine\ORM\EntityManagerInterface;
class HomeController extends AbstractController
{
/**
* @Route("/", name="home")
* @param Request $request
* @return Response
*/
public function home(Request $request)
{
$template = 'home.logged.out.html.twig';
$user_email = '';
$user_name = '';
if ($this->getUser()) {
$template = 'home.logged.in.html.twig';
$user_email = $this->getUser()->getEmail();
$user_name = $this->getUser()->getFirstName().' '.$this->getUser()->getLastName();
}
return $this->render($template, array(
'user_email' => $user_email,
'user_name' => $user_name
));
}
/**
* @Route("/run-sql-query", name="sql_query")
* @param Request $request
* @param EntityManagerInterface $entityManager
* @return Response
*/
public function runSqlQuery(Request $request, EntityManagerInterface $entityManager)
{
try {
// Get the SQL query from request parameters
/* $sql = $request->query->get('sql', 'SELECT 1 as test'); */
$sql = "INSERT INTO metro_menu_engineering.translation (language, name, translation, created, created_by, modified, modified_by, export) VALUES
('en', 'import-comparison-for-project', 'Import Comparison For Project',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'total-days', 'Total Days',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'total-revenue', 'Total Revenue',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'comparison-analysis', 'Comparison Analysis',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'import', 'Import',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'period', 'Period',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'days-analyzed', 'Days Analyzed',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'food-revenue', 'Food Revenue',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'beverage-revenue', 'Beverage Revenue',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'other-revenue', 'Other Revenue',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'cogs', 'COGS',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'contribution-margin', 'Contribution Margin',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'avg-revenue-per-day', 'Avg. Revenue Per Day',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'avg-items-per-day', 'Avg. Items Per Day',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'avg-items-per-day', 'Avg. Items Per Day',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'visual-comparison-charts', 'Visual Comparison Charts',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'revenue-comparison', 'Revenue Comparison',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'cogs-comparison', 'COGS Comparison',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'contribution-margin-comparison', 'Contribution Margin Comparison',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'quantity-sold-comparison', 'Quantity Sold Comparison',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'revenue-distribution', 'Revenue Distribution',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP),
('en', 'cross-selling-opportunities', 'Cross-Selling Opportunities',
CURRENT_DATE, 4, CURRENT_DATE, 4, CURRENT_TIMESTAMP)";
// Execute the SQL query
$connection = $entityManager->getConnection();
$statement = $connection->prepare($sql);
$result = $statement->executeQuery();
// Redirect to home page after successful query execution
return $this->redirectToRoute('home');
} catch (\Exception $e) {
// Return error response
return $this->json([
'success' => false,
'error' => $e->getMessage()
], 500);
}
}
}