src/Controller/DefaultController.php line 38

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Doctrine\Persistence\ManagerRegistry;
  4. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  5. use Symfony\Component\Mailer\MailerInterface;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Form\FormError;
  12. use Symfony\Component\Validator\Validator\ValidatorInterface;
  13. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  14. use App\Entity\Master\User;
  15. use App\Form\PasswordCreationType;
  16. use App\Form\PasswordRecoveryType;
  17. use App\Form\Model\Contact;
  18. use App\Form\ContactType;
  19. use App\Service\ValidationService;
  20. use App\Service\OfficeService;
  21. class DefaultController extends AbstractController
  22. { 
  23.     protected $mr;
  24.     private $params;
  25.     public function __construct(ManagerRegistry $managerRegistry, ParameterBagInterface $params)
  26.     {
  27.         $this->mr = $managerRegistry;
  28.         $this->params = $params;
  29.     }
  30.     /**
  31.      * @Route("/", name="homepage")
  32.      */
  33.     public function index(Request $request, MailerInterface $mailer)
  34.     {
  35.         $em = $this->mr->getManager('master');
  36.         $contact = new Contact();
  37.         $form = $this->createForm(ContactType::class, $contact);
  38.         $form->handleRequest($request);
  39.         
  40.         if($form->isSubmitted()){
  41.             $valid = true;            
  42.             $path = 'https://www.google.com/recaptcha/api/siteverify?secret=6LcmTdgUAAAAAHtbLS0hf0fJtNZALbjDqU_6Xxhq&response='.$request->request->get("g-recaptcha-response");
  43.             $ch = curl_init();
  44.             curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Accept: application/json'));
  45.             curl_setopt($ch, CURLOPT_URL,$path);
  46.             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  47.             curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  48.             curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
  49.             $result = curl_exec($ch);
  50.             curl_close($ch);
  51.             
  52.             $res = json_decode($result, true);
  53.             
  54.             if(!$res["success"]){
  55.                 $valid = false;
  56.                 $form->get('recaptcha')->addError(new FormError("Convalidare prima di inviare la richiesta"));
  57.                 $this->addFlash('notice_warning', 'Prima di inviare la richiesta, provare di non essere un robot.');
  58.             }
  59.             if($valid && $form->isValid()){
  60.                 
  61.                 $message = (new TemplatedEmail())
  62.                     ->subject($this->params->get('subject_contact'))
  63.                     ->from($form->get('email')->getData())
  64.                     ->to($this->params->get('contact_email'))
  65.                     ->htmlTemplate('email/contact.html.twig')
  66.                     ->context(['name' => $form->get('name')->getData(), 'surname' => $form->get('surname')->getData(), 'message' => $form->get('message')->getData()]);
  67.                 $mailer->send($message);
  68.                 $this->addFlash('notice_success', 'Richiesta di informazioni inoltrata correttamente!');
  69.                 return $this->redirectToRoute('homepage');
  70.             }
  71.             else
  72.                 $this->addFlash('notice_warning', 'Controllare le informazioni inserite');
  73.         }
  74.         return $this->render('default/index.html.twig', array(
  75.             'form' => $form->createView()
  76.         ));
  77.     }
  78.     /**
  79.      * @Route("/home/{section}", name="homepage_with_section")
  80.      */
  81.     public function indexWithSection(Request $request, $section)
  82.     {
  83.         $session = $request->getSession();
  84.         $session->set('section', $section);
  85.         $session->set('dashboardTab', 'profile');
  86.         return $this->redirectToRoute('homepage');
  87.     }
  88.     
  89.     /**
  90.      * @Route("/aiuto", name="help")
  91.      */
  92.     public function help(Request $request)
  93.     {
  94.         $em = $this->mr->getManager('master');
  95.         $slug = $request->request->get('slug');
  96.         $help = $em->getRepository("App\Entity\Master\Help")->findOneBySlug($slug);
  97.         $response = array("code" => 200, "success" => true, "title" => $help->getTitle(), "text" => $help->getText());
  98.         return new Response(json_encode($response)); 
  99.     }
  100.     // FILTRI
  101.     /**
  102.     * @Route("/aggiorna-comuni", name="update_cities")
  103.     */
  104.     public function updateCities(Request $request)
  105.     {
  106.         $em = $this->mr->getManager('master');
  107.         $name = $request->request->get('name');
  108.         $cities = $em->getRepository("App\Entity\Master\City")->findByName($name);
  109.         $first = true;
  110.         $json = '[';
  111.         foreach($cities as $c){
  112.             if($first) $first = false; else $json.= ',';
  113.             $json.= '{
  114.                 "id":"'.$c->getId().'", 
  115.                 "name":'.json_encode($c->getName()).', 
  116.                 "province":'.json_encode($c->getProvince()->getSign()).', 
  117.                 "country":'.json_encode($c->getProvince()->getCountry()->getName()).',
  118.                 "defaultZip":"'.$c->getDefaultZip().'"
  119.             }';
  120.         }
  121.         $json .= ']';
  122.         $response = array("code" => 200, "success" => true, "cities" => $json);
  123.         return new Response(json_encode($response));
  124.     }
  125.     
  126.     /**
  127.     * @Route("/aggiorna-paesi-esteri", name="update_countries")
  128.     */
  129.     public function updateCountries(Request $request)
  130.     {
  131.         $em = $this->mr->getManager('master');
  132.         $name = $request->request->get('name');
  133.         $countries = $em->getRepository("App\Entity\Master\Country")->findByName($name);
  134.         $first = true;
  135.         $jsonCountries = '[';
  136.         foreach($countries as $c){
  137.             if($first)
  138.                 $first = false;
  139.             else
  140.                 $jsonCountries.= ',';
  141.             $jsonCountries.= '{"id":"'.$c->getId().'", "name":'.json_encode($c->getName()).'}';
  142.         }
  143.         $jsonCountries .= ']';
  144.         $response = array("code" => 200, "success" => true, "countries" => $jsonCountries);
  145.         return new Response(json_encode($response));
  146.     }
  147.     
  148.     /**
  149.     * @Route("/aggiorna-cittadinanze", name="update_nationalities")
  150.     */
  151.     public function updateNationalities(Request $request)
  152.     {
  153.         $em = $this->mr->getManager('master');
  154.         $nationality = $request->request->get('nationality');
  155.         $countries = $em->getRepository("App\Entity\Master\Country")->findByNationality($nationality);
  156.         $first = true;
  157.         $jsonCountries = '[';
  158.         foreach($countries as $c){
  159.             if($first)
  160.                 $first = false;
  161.             else
  162.                 $jsonCountries.= ',';
  163.             $jsonCountries.= '{"id":"'.$c->getId().'", "nationality":'.json_encode($c->getNationality()).'}';
  164.         }
  165.         $jsonCountries .= ']';
  166.         $response = array("code" => 200, "success" => true, "countries" => $jsonCountries);
  167.         return new Response(json_encode($response));
  168.     }
  169.     /**
  170.     * @Route("/aggiorna-cartelle", name="update_directories")
  171.     */
  172.     public function updateDirectories(Request $request)
  173.     {
  174.         $em = OfficeService::getSlaveManager($this->mr, $this->params, $request->getSession());
  175.         $directoryName = $request->request->get('directory');
  176.         $documents = $em->getRepository("App\Entity\Slave\Document")->findByDirectoryName($directoryName);
  177.         
  178.         $first = true;
  179.         $json = '[';
  180.         foreach($documents as $document){
  181.             if($first)
  182.                 $first = false;
  183.             else
  184.                 $json.= ',';
  185.         $json.= '{"id":'.$document->getId().',
  186.                 "directoryName":'.json_encode($document->getDirectory()).'}';
  187.         }
  188.         $json .= ']';
  189.         $response = array("code" => 100, "success" => true, "documents" => $json);
  190.         return new Response(json_encode($response));
  191.     }
  192.     /**
  193.     * @Route("/aggiorna-tipo-operazione", name="update_performance_name")
  194.     */
  195.     public function updatePerformanceName(Request $request)
  196.     {
  197.         $em = $this->mr->getManager('master');
  198.         $name = $request->request->get('name');
  199.         $performances = $em->getRepository("App\Entity\Master\Configuration")->findByTypeSlugAndValue('performance_name', $name);
  200.         $first = true;
  201.         $jsonPerformances = '[';
  202.         foreach($performances as $p){
  203.             if($first)
  204.                 $first = false;
  205.             else
  206.                 $jsonPerformances.= ',';
  207.             $jsonPerformances.= '{"id":"'.$p->getId().'", "value":'.json_encode($p->getValue()).', "typeId":'.json_encode($p->getType()->getId()).', "value2":'.$p->getValue2().'}';
  208.         }
  209.         $jsonPerformances .= ']';
  210.         $response = array("code" => 200, "success" => true, "pNames" => $jsonPerformances);
  211.         return new Response(json_encode($response));
  212.     }
  213.     
  214.     /**
  215.     * @Route("/aggiorna-tipo-operazione-com4", name="update_performance_name_com4")
  216.     */
  217.     public function updatePerformanceNameCom4(Request $request)
  218.     {
  219.         $em = $this->mr->getManager('master');
  220.         $name = $request->request->get('name');
  221.         $performances = $em->getRepository("App\Entity\Master\Configuration")->findByTypeSlugAndValue('performance_name_com4', $name);
  222.         $first = true;
  223.         $jsonPerformances = '[';
  224.         foreach($performances as $p){
  225.             if($first)
  226.                 $first = false;
  227.             else
  228.                 $jsonPerformances.= ',';
  229.             $jsonPerformances.= '{"id":"'.$p->getId().'", "value":'.json_encode($p->getValue()).', "value2":'.$p->getValue2().'}';
  230.         }
  231.         $jsonPerformances .= ']';
  232.         $response = array("code" => 200, "success" => true, "pNamesCom4" => $jsonPerformances);
  233.         return new Response(json_encode($response));
  234.     }
  235.     
  236.     /**
  237.     * @Route("/aggiorna-tipo-operazione-cnl4", name="update_performance_name_cnl4")
  238.     */
  239.     public function updatePerformanceNameCnl4(Request $request)
  240.     {
  241.         $em = $this->mr->getManager('master');
  242.         $name = $request->request->get('name');
  243.         $performances = $em->getRepository("App\Entity\Master\Configuration")->findByTypeSlugAndValue('performance_name_cnl4', $name);
  244.         $first = true;
  245.         $jsonPerformances = '[';
  246.         foreach($performances as $p){
  247.             if($first)
  248.                 $first = false;
  249.             else
  250.                 $jsonPerformances.= ',';
  251.             $jsonPerformances.= '{"id":"'.$p->getId().'", "value":'.json_encode($p->getValue()).', "value2":'.$p->getValue2().'}';
  252.         }
  253.         $jsonPerformances .= ']';
  254.         $response = array("code" => 200, "success" => true, "pNamesCnl4" => $jsonPerformances);
  255.         return new Response(json_encode($response));
  256.     }
  257.     /**
  258.     * @Route("/aggiorna-tipo-operazione-art1", name="update_performance_name_art1")
  259.     */
  260.     public function updatePerformanceNameArt1(Request $request)
  261.     {
  262.         $em = $this->mr->getManager('master');
  263.         $name = $request->request->get('name');
  264.         $performances = $em->getRepository("App\Entity\Master\Configuration")->findByTypeSlugAndValue('performance_name_art1', $name);
  265.         $first = true;
  266.         $jsonPerformances = '[';
  267.         foreach($performances as $p){
  268.             if($first)
  269.                 $first = false;
  270.             else
  271.                 $jsonPerformances.= ',';
  272.             $jsonPerformances.= '{"id":"'.$p->getId().'", "value":'.json_encode($p->getValue()).', "value2":'.$p->getValue2().'}';
  273.         }
  274.         $jsonPerformances .= ']';
  275.         $response = array("code" => 200, "success" => true, "pNamesArt1" => $jsonPerformances);
  276.         return new Response(json_encode($response));
  277.     }
  278.     
  279.     /**
  280.     * @Route("/trova-comune-da-codice", name="find_city_from_code")
  281.     */
  282.     public function findCityFromCode(Request $request)
  283.     {
  284.         $em = $this->mr->getManager('master');
  285.         $code = $request->request->get('cityCode');
  286.         $cityId = '';
  287.         $cityName = '';
  288.         $city = $em->getRepository("App\Entity\Master\City")->findOneByCode($code);
  289.         if($city != null){
  290.             $cityId = $city->getId();
  291.             $cityName = $city->getName().' ('.$city->getProvince()->getSign().')';
  292.         }
  293.         $response = array("code" => 200, "success" => true, "cityId" => $cityId, "cityName" => $cityName);
  294.         return new Response(json_encode($response));
  295.     }
  296. }