<?php
namespace App\Controller;
use App\Entity\ZonaCalore;
use App\Entity\ZonaSismica;
use App\Repository\ZonaCaloreRepository;
use App\Repository\ZonaSismicaRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class DefaultController extends AbstractController
{
/**
* @Route("/", name="home")
*/
public function index(): Response
{
$this->denyAccessUnlessGranted("ROLE_USER");
return $this->redirectToRoute("domanda_home");
return $this->render('default/index.html.twig', [
'controller_name' => 'DefaultController',
]);
}
/**
* @Route("/importa/zone", name="importa_zone")
*/
public function importaZone(ZonaSismicaRepository $zonaSismicaRepository, ZonaCaloreRepository $zonaCaloreRepository, EntityManagerInterface $entityManager): Response
{
$zoneSismiche = $zonaSismicaRepository->findAll();
$row = 1;
if (($handle = fopen("doc/sismica.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
if ($num == 5 && $data[0] != "Regione") {
$find = false;
foreach ($zoneSismiche as $zonaSismica) {
if ($zonaSismica->getNome() == trim($data[3])) {
$find = true;
break;
}
}
if (!$find) {
$zonaSismica = new ZonaSismica();
$zonaSismica->setRegione(trim($data[0]));
$zonaSismica->setProvincia(trim($data[1]));
$zonaSismica->setCodiceIstat(trim($data[2]));
$zonaSismica->setNome(strtolower(trim($data[3])));
$zonaSismica->setZona(intval(trim($data[4])));
$entityManager->persist($zonaSismica);
}
}
}
$entityManager->flush();
fclose($handle);
}
$zoneCalore = $zonaCaloreRepository->findAll();
$row = 1;
if (($handle = fopen("doc/calore.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
if ($num == 5 && $data[0] != "pr") {
$find = false;
foreach ($zoneCalore as $zonaCalore) {
if ($zonaCalore->getNome() == trim($data[4])) {
$find = true;
break;
}
}
if (!$find) {
if (trim($data[4]) > "" && trim($data[1]) > "") {
$data[4] = preg_replace("/\(.*\)/", "", $data[4]);
$zoneCalore = new ZonaCalore();
$zoneCalore->setProvincia(trim($data[0]));
$zoneCalore->setNome(strtolower(trim($data[4])));
$zoneCalore->setZona(trim($data[1]));
$entityManager->persist($zoneCalore);
}
}
}
}
$entityManager->flush();
fclose($handle);
}
exit();
}
}