src/Controller/PublicController.php line 39

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\ContactType;
  4. use App\Service\Translator;
  5. use App\Controller\AppController;
  6. use Symfony\Component\Mime\Email;
  7. use Symfony\Component\Asset\Package;
  8. use Symfony\Component\Form\FormError;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\Mailer\MailerInterface;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use Symfony\Component\Asset\VersionStrategy\JsonManifestVersionStrategy;
  14. use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
  15. class PublicController extends AppController
  16. {
  17.     protected MailerInterface $mailer;
  18.     /**
  19.      * @param MailerInterface $mailer
  20.      * @param Translator $translator
  21.      */
  22.     public function __construct(MailerInterface $mailerTranslator $translator)
  23.     {
  24.         parent::__construct($translator);
  25.         $this->mailer $mailer;
  26.     }
  27.     /**
  28.      * @Route("/", name="public_index")
  29.      *
  30.      * @param Request $request
  31.      *
  32.      * @return Response
  33.      */
  34.     public function index(Request $request): Response
  35.     {   
  36.         $form $this->createForm(ContactType::class);
  37.         $form->handleRequest($request);
  38.         if ($form->isSubmitted() && $form->isValid()) {
  39.             $sent $this->sendContactMessage(
  40.                 $form->get('name')->getData(),
  41.                 $form->get('email')->getData(),
  42.                 $form->get('message')->getData()
  43.             );
  44.             if ($sent) {
  45.                 $this->addFlash('success'$this->trans('public_index_message_success'));
  46.             } else {
  47.                 $this->addFlash('error'$this->trans('email_not_sent'));
  48.             }
  49.             return $this->redirect($request->getUri());
  50.         } else if ($form->isSubmitted() && !$form->isValid()) {
  51.             $this->addFlash('error'$this->trans('invalid_captcha'));
  52.         }
  53.         return $this->render('public/index.html.twig', [
  54.             'form' => $form->createView()
  55.         ]);
  56.     }
  57.     /**
  58.      * @Route("/purchase_order_finance", name="public_purchase_order_finance")
  59.      * 
  60.      * @param Request $request
  61.      * 
  62.      * @return Response
  63.      */
  64.     public function purchaseOrderFinance(Request $request): Response
  65.     {
  66.         $form $this->createForm(ContactType::class);
  67.         $form->handleRequest($request);
  68.         if ($form->isSubmitted() && $form->isValid()) {
  69.             $sent $this->sendContactMessage(
  70.                 $form->get('name')->getData(),
  71.                 $form->get('email')->getData(),
  72.                 $form->get('message')->getData()
  73.             );
  74.             if ($sent) {
  75.                 $this->addFlash('success'$this->trans('public_purchase_message_success'));
  76.             } else {
  77.                 $this->addFlash('error'$this->trans('email_not_sent'));
  78.             }
  79.             return $this->redirect($request->getUri());
  80.         } else if ($form->isSubmitted() && !$form->isValid()) {
  81.             $this->addFlash('error'$this->trans('invalid_captcha'));
  82.         }
  83.         return $this->render('public/purchase_order_finance.html.twig', [
  84.             'form' => $form->createView()
  85.         ]);
  86.     }
  87.     /**
  88.      * @param string $name
  89.      * @param string $email
  90.      * @param string $message
  91.      *
  92.      * @return bool
  93.      */
  94.     private function sendContactMessage(string $namestring $emailstring $message): bool
  95.     {
  96.         try {
  97.             $to $this->getParameter('mailer_to');
  98.             $subject $this->trans('email_subject', ['%name%' => $name]) . " - $email";
  99.             $email = (new Email())
  100.                 ->from($email)
  101.                 ->to($to)
  102.                 ->subject($subject)
  103.                 ->text($message);
  104.             $this->mailer->send($email);
  105.             return true;
  106.         } catch (TransportExceptionInterface $exception) {
  107.         // dd($exception);
  108.             return false;
  109.         }
  110.         return false;
  111.     }
  112.     /**
  113.      * @Route("/contact", name="public_contact")
  114.      *
  115.      * @param Request $request
  116.      *
  117.      * @return Response
  118.      */
  119.     public function contact(Request $request): Response
  120.     {
  121.         $form $this->createForm(ContactType::class);
  122.         $form->handleRequest($request);
  123.         if ($form->isSubmitted() && $form->isValid()) {
  124.             $sent $this->sendContactMessage(
  125.                 $form->get('name')->getData(),
  126.                 $form->get('email')->getData(),
  127.                 $form->get('message')->getData()
  128.             );
  129.             if ($sent) {
  130.                 $this->addFlash('success'$this->trans('public_contact_message_success'));
  131.             } else {
  132.                 $this->addFlash('error'$this->trans('email_not_sent'));
  133.             }
  134.             return $this->redirect($request->getUri());
  135.         } else if ($form->isSubmitted() && !$form->isValid()) {
  136.             $this->addFlash('error'$this->trans('invalid_captcha'));
  137.         }
  138.         return $this->render('public/contact.html.twig', [
  139.             'form' => $form->createView()
  140.         ]);
  141.     }
  142.     /**
  143.      * @Route("/services", name="public_services")
  144.      * 
  145.      * @return Response
  146.      */
  147.     public function services(): Response
  148.     {
  149.         return $this->render('public/services.html.twig', []);
  150.     }
  151.     /**
  152.      * @Route("/our_analysis_and_scoring", name="public_our_analysis_and_scoring")
  153.      * 
  154.      * @return Response
  155.      */
  156.     public function ourAnalysisAndScoring(): Response
  157.     {
  158.         return $this->render('public/our_analysis_and_scoring.html.twig', []);
  159.     }
  160.     /**
  161.      * @Route("/integration", name="public_integration")
  162.      * 
  163.      * @return Response
  164.      */
  165.     public function investorUser(): Response
  166.     {
  167.         return $this->render('public/integration.html.twig', []);
  168.     }
  169.     /**
  170.      * @Route("/business", name="public_business")
  171.      * 
  172.      * @return Response
  173.      */
  174.     public function business(): Response
  175.     {
  176.         return $this->render('public/business.html.twig', []);
  177.     }
  178.     /**
  179.      * @Route("/new_financing", name="public_new_financing")
  180.      * 
  181.      * @return Response
  182.      */
  183.     public function newFinancing(): Response
  184.     {
  185.         return $this->render('public/new_financing.html.twig', []);
  186.     }
  187.     /**
  188.      * @Route("/faq", name="public_faq")
  189.      * 
  190.      * @return Response
  191.      */
  192.     public function faq(): Response
  193.     {
  194.         return $this->render('public/faq.html.twig', []);
  195.     }
  196.     /**
  197.      * @Route("/terms_of_use", name="public_terms_of_use")
  198.      * 
  199.      * @return Response
  200.      */
  201.     public function termsOfUse(): Response
  202.     {
  203.         return $this->render('public/terms_of_use.html.twig', []);
  204.     }
  205.     /**
  206.      * @Route("/they_trust_us", name="public_they_trust_us")
  207.      * 
  208.      * @return Response
  209.      */
  210.     public function theyTrustUs(): Response
  211.     {
  212.         return $this->render('public/they_trust_us.html.twig', []);
  213.     }
  214.     /**
  215.      * @Route("/nuevasempresasense", name="public_nuevas_empresas_ense")
  216.      * 
  217.      * @return Response
  218.      */
  219.     public function nuevasEmpresasEnse(): Response
  220.     {
  221.         return $this->render('public/nuevas_empresas_ense.html.twig', []);
  222.     }
  223.     /**
  224.      * @Route("/team", name="public_team")
  225.      * 
  226.      * @return Response
  227.      */
  228.     public function team(): Response
  229.     {
  230.         return $this->render('public/team.html.twig', []);
  231.     }
  232.     /* ------------------------------ NEW ROUTES ------------------------------ */
  233.     /**
  234.      * @Route("/trackinvoice", name="public_trackinvoice")
  235.      * 
  236.      * @return Response
  237.      */
  238.     public function ourEscrowAccount(): Response
  239.     {
  240.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  241.         return $this->render('public/news/herramienta_trazabilidad_facturas.html.twig', [
  242.             'background' => $manager->getUrl('build/images/portadas/i2.jpg')
  243.         ]);
  244.     }
  245.     
  246.     /**
  247.      * @Route("/our_connectors", name="public_our_connectors")
  248.      * 
  249.      * @return Response
  250.      */
  251.     public function ourConnectors(): Response
  252.     {
  253.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  254.         return $this->render('public/news/nuestros_conectores.html.twig', [
  255.             'background' => $manager->getUrl('build/images/portadas/i3.jpg')
  256.         ]);
  257.     }
  258.     /**
  259.      * @Route("/our_tools", name="public_our_tools")
  260.      * 
  261.      * @return Response
  262.      */
  263.     public function ourInvestors(): Response
  264.     {
  265.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  266.         return $this->render('public/news/nuestras_herramientas.html.twig', [
  267.             'background' => $manager->getUrl('build/images/portadas/i4.jpg')
  268.         ]);
  269.     }
  270.     /**
  271.      * @Route("/economic_cycle", name="public_economic_cycle")
  272.      * 
  273.      * @return Response
  274.      */
  275.     public function economic_cycle(): Response
  276.     {
  277.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  278.     return $this->render('public/news/automatizacion_ciclo_comercial.html.twig', [
  279.         'background' => $manager->getUrl('build/images/portadas/i5.jpg')
  280.     ]);
  281.     }
  282.     /**
  283.      * @Route("/data_processed", name="public_data_processed")
  284.      * 
  285.      * @return Response
  286.      */
  287.     public function ourScoring(): Response
  288.     {
  289.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  290.         return $this->render('public/news/captura_datos_verificacion.html.twig', [
  291.             'background' => $manager->getUrl('build/images/portadas/i6.jpg')
  292.         ]);
  293.     }
  294.     /**
  295.      * @Route("/trend_analytics", name="public_trend_analytics")
  296.      * 
  297.      * @return Response
  298.      */
  299.     public function ourProduct(): Response
  300.     {
  301.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  302.         return $this->render('public/news/bd_exogenas_tendencias_mercado.html.twig', [
  303.             'background' => $manager->getUrl('build/images/portadas/i7.jpg')
  304.         ]);
  305.     }
  306.     /**
  307.      * @Route("/commercial_rating", name="public_commercial_rating")
  308.      * 
  309.      * @return Response
  310.      */
  311.     public function ourGuarantees(): Response
  312.     {
  313.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  314.         return $this->render('public/news/rating_comercial.html.twig', [
  315.             'background' => $manager->getUrl('build/images/portadas/i8.jpg')
  316.         ]);
  317.     }
  318.     /**
  319.      * @Route("/creditinsurance_user", name="public_creditinsurance_user")
  320.      * 
  321.      * @return Response
  322.      */
  323.     public function ourContract(): Response
  324.     {
  325.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  326.         return $this->render('public/news/usuario_entidad_seguros.html.twig', [
  327.             'background' => $manager->getUrl('build/images/portadas/i9.jpg')
  328.         ]);
  329.     }
  330.     /**
  331.      * @Route("/product_finance", name="public_product_finance")
  332.      * 
  333.      * @return Response
  334.      */
  335.     public function product_finance(): Response
  336.     {
  337.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  338.         return $this->render('public/news/herramienta_producto_franquicias.html.twig', [
  339.             'background' => $manager->getUrl('build/images/portadas/i13.jpg')
  340.         ]);
  341.     }
  342.     /**
  343.      * @Route("/investor_user", name="public_investor_user")
  344.      * 
  345.      * @return Response
  346.      */
  347.     public function investor_user(): Response
  348.     {
  349.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  350.         return $this->render('public/news/usuario_inversor.html.twig', [
  351.             'background' => $manager->getUrl('build/images/portadas/i10.jpg')
  352.         ]);
  353.     }
  354.     /**
  355.      * @Route("/business_user", name="public_business_user")
  356.      * 
  357.      * @return Response
  358.      */
  359.     public function providerUser(): Response
  360.     {
  361.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  362.         return $this->render('public/news/usuario_empresa.html.twig', [
  363.             'background' => $manager->getUrl('build/images/portadas/i11.jpg')
  364.         ]);
  365.     }
  366.     /**
  367.      * @Route("/distributor_user", name="public_distributor_user")
  368.      * 
  369.      * @return Response
  370.      */
  371.     public function distributorUser(): Response
  372.     {
  373.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  374.         return $this->render('public/news/usuario_distribuidor.html.twig', [
  375.             'background' => $manager->getUrl('build/images/portadas/i12.jpg')
  376.         ]);
  377.     }
  378.     /**
  379.      * @Route("/financial_entity_user", name="public_financial_entity_user")
  380.      * 
  381.      * @return Response
  382.      */
  383.     public function financialEntityUser(): Response
  384.     {
  385.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  386.         return $this->render('public/news/usuario_entidad_financiera.html.twig', [
  387.             'background' => $manager->getUrl('build/images/portadas/i13.jpg')
  388.         ]);
  389.     }
  390.     /**
  391.      * @Route("/finance_erp", name="public_finance_erp")
  392.      * 
  393.      * @return Response
  394.      */
  395.     public function howWork(): Response
  396.     {
  397.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  398.         return $this->render('public/news/herramienta_programa_contabilidad.html.twig', [
  399.             'background' => $manager->getUrl('build/images/portadas/i29.jpg')
  400.         ]);
  401.     }
  402.     /**
  403.      * @Route("/emailbot", name="public_emailbot")
  404.      * 
  405.      * @return Response
  406.      */
  407.     public function smartEscrowPro(): Response
  408.     {
  409.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  410.         return $this->render('public/news/herramienta_facturas_email.html.twig', [
  411.             'background' => $manager->getUrl('build/images/portadas/i20.jpg')
  412.         ]);
  413.     }
  414.     /**
  415.      * @Route("/360onlinestore", name="public_360onlinestore")
  416.      * 
  417.      * @return Response
  418.      */
  419.     public function onlineStore(): Response
  420.     {
  421.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  422.         return $this->render('public/news/herramienta_360.html.twig', [
  423.             'background' => $manager->getUrl('build/images/portadas/i34.jpg')
  424.         ]);
  425.     }
  426.     /**
  427.      * @Route("/crowdfunding", name="public_crowdfunding")
  428.      * 
  429.      * @return Response
  430.      */
  431.     public function crowdfunding(): Response
  432.     {
  433.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  434.         return $this->render('public/news/crowdfunding.html.twig', [
  435.             'background' => $manager->getUrl('build/images/portadas/i35.jpg')
  436.         ]);
  437.     }
  438.     /**
  439.      * @Route("/bankiafintech", name="public_bankiafintech")
  440.      * 
  441.      * @return Response
  442.      */
  443.     public function bankiafintech(): Response
  444.     {
  445.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  446.         return $this->render('public/news/caso_exito_mvp_bankia.html.twig', [
  447.             'background' => $manager->getUrl('build/images/portadas/i37.jpg')
  448.         ]);
  449.     }
  450.     /**
  451.      * @Route("/crealsa", name="public_crealsa")
  452.      * 
  453.      * @return Response
  454.      */
  455.     public function crealsa(): Response
  456.     {
  457.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  458.         return $this->render('public/news/caso_exito_crealsa.html.twig', [
  459.             'background' => $manager->getUrl('build/images/portadas/i36.jpg')
  460.         ]);
  461.     }
  462.     /**
  463.      * @Route("/check_rating", name="public_check_rating")
  464.      * 
  465.      * @return Response
  466.      */
  467.     public function check_rating(): Response
  468.     {
  469.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  470.         return $this->render('public/news/herramienta_rating_comercial.html.twig', [
  471.             'background' => $manager->getUrl('build/images/portadas/i33.jpg')
  472.         ]);
  473.     }
  474.     /**
  475.      * @Route("/connector_edi", name="public_connector_edi")
  476.      * 
  477.      * @return Response
  478.      */
  479.     public function conectorEdi(): Response
  480.     {
  481.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  482.         return $this->render('public/news/conector_edi.html.twig', [
  483.             'background' => $manager->getUrl('build/images/portadas/i24.jpg')
  484.         ]);
  485.     }
  486.     /**
  487.      * @Route("/connector_dua", name="public_connector_dua")
  488.      * 
  489.      * @return Response
  490.      */
  491.     public function duaConnector(): Response
  492.     {
  493.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  494.         return $this->render('public/news/conector_dua.html.twig', [
  495.             'background' => $manager->getUrl('build/images/portadas/i25.jpg')
  496.         ]);
  497.     }
  498.     /**
  499.      * @Route("/connector_intrastat", name="public_connector_intrastat")
  500.      * 
  501.      * @return Response
  502.      */
  503.     public function connector_intrastat(): Response
  504.     {
  505.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  506.         return $this->render('public/news/conector_intrastat.html.twig', [
  507.             'background' => $manager->getUrl('build/images/portadas/i26.jpg')
  508.         ]);
  509.     }
  510.     /**
  511.      * @Route("/connector_sii", name="public_connector_sii")
  512.      * 
  513.      * @return Response
  514.      */
  515.     public function connector_sii(): Response
  516.     {
  517.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  518.         return $this->render('public/news/conector_sii.html.twig', [
  519.             'background' => $manager->getUrl('build/images/portadas/i27.jpg')
  520.         ]);
  521.     }
  522.     /**
  523.      * @Route("/connector_csvcheck", name="public_connector_csvcheck")
  524.      * 
  525.      * @return Response
  526.      */
  527.     public function connector_csvcheck(): Response
  528.     {
  529.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  530.         return $this->render('public/news/conector_csv_hacienda.html.twig', [
  531.             'background' => $manager->getUrl('build/images/portadas/i28.jpg')
  532.         ]);
  533.     }
  534.     /**
  535.      * @Route("/connector_erp", name="public_connector_erp")
  536.      * 
  537.      * @return Response
  538.      */
  539.     public function connector_erp(): Response
  540.     {
  541.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  542.         return $this->render('public/news/conector_erp.html.twig', [
  543.             'background' => $manager->getUrl('build/images/portadas/i29.jpg')
  544.         ]);
  545.     }
  546.     /**
  547.      * @Route("/connector_marketplace", name="public_connector_marketplace")
  548.      * 
  549.      * @return Response
  550.      */
  551.     public function connector_marketplace(): Response
  552.     {
  553.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  554.         return $this->render('public/news/conector_marketplace.html.twig', [
  555.             'background' => $manager->getUrl('build/images/portadas/i30.jpg')
  556.         ]);
  557.     }
  558.     /**
  559.      * @Route("/connector_tpv", name="public_connector_tpv")
  560.      * 
  561.      * @return Response
  562.      */
  563.     public function connector_tpv(): Response
  564.     {
  565.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  566.         return $this->render('public/news/conector_tpv.html.twig', [
  567.             'background' => $manager->getUrl('build/images/portadas/i31.jpg')
  568.         ]);
  569.     }
  570.     /**
  571.      * @Route("/kit_digitalizado", name="public_kit_digitalizador")
  572.      * 
  573.      * @return Response
  574.      */
  575.     public function kitDigitalizador(): Response
  576.     {
  577.         $manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
  578.         return $this->render('public/news/kit_digitalizador.html.twig', [
  579.             'background' => $manager->getUrl('build/images/portadas/i4.jpg')
  580.         ]);
  581.     }
  582. }