<?php
namespace App\Controller;
use App\Form\ContactType;
use App\Service\Translator;
use App\Controller\AppController;
use Symfony\Component\Mime\Email;
use Symfony\Component\Asset\Package;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Asset\VersionStrategy\JsonManifestVersionStrategy;
use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
class PublicController extends AppController
{
protected MailerInterface $mailer;
/**
* @param MailerInterface $mailer
* @param Translator $translator
*/
public function __construct(MailerInterface $mailer, Translator $translator)
{
parent::__construct($translator);
$this->mailer = $mailer;
}
/**
* @Route("/", name="public_index")
*
* @param Request $request
*
* @return Response
*/
public function index(Request $request): Response
{
$form = $this->createForm(ContactType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$sent = $this->sendContactMessage(
$form->get('name')->getData(),
$form->get('email')->getData(),
$form->get('message')->getData()
);
if ($sent) {
$this->addFlash('success', $this->trans('public_index_message_success'));
} else {
$this->addFlash('error', $this->trans('email_not_sent'));
}
return $this->redirect($request->getUri());
} else if ($form->isSubmitted() && !$form->isValid()) {
$this->addFlash('error', $this->trans('invalid_captcha'));
}
return $this->render('public/index.html.twig', [
'form' => $form->createView()
]);
}
/**
* @Route("/purchase_order_finance", name="public_purchase_order_finance")
*
* @param Request $request
*
* @return Response
*/
public function purchaseOrderFinance(Request $request): Response
{
$form = $this->createForm(ContactType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$sent = $this->sendContactMessage(
$form->get('name')->getData(),
$form->get('email')->getData(),
$form->get('message')->getData()
);
if ($sent) {
$this->addFlash('success', $this->trans('public_purchase_message_success'));
} else {
$this->addFlash('error', $this->trans('email_not_sent'));
}
return $this->redirect($request->getUri());
} else if ($form->isSubmitted() && !$form->isValid()) {
$this->addFlash('error', $this->trans('invalid_captcha'));
}
return $this->render('public/purchase_order_finance.html.twig', [
'form' => $form->createView()
]);
}
/**
* @param string $name
* @param string $email
* @param string $message
*
* @return bool
*/
private function sendContactMessage(string $name, string $email, string $message): bool
{
try {
$to = $this->getParameter('mailer_to');
$subject = $this->trans('email_subject', ['%name%' => $name]) . " - $email";
$email = (new Email())
->from($email)
->to($to)
->subject($subject)
->text($message);
$this->mailer->send($email);
return true;
} catch (TransportExceptionInterface $exception) {
// dd($exception);
return false;
}
return false;
}
/**
* @Route("/contact", name="public_contact")
*
* @param Request $request
*
* @return Response
*/
public function contact(Request $request): Response
{
$form = $this->createForm(ContactType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$sent = $this->sendContactMessage(
$form->get('name')->getData(),
$form->get('email')->getData(),
$form->get('message')->getData()
);
if ($sent) {
$this->addFlash('success', $this->trans('public_contact_message_success'));
} else {
$this->addFlash('error', $this->trans('email_not_sent'));
}
return $this->redirect($request->getUri());
} else if ($form->isSubmitted() && !$form->isValid()) {
$this->addFlash('error', $this->trans('invalid_captcha'));
}
return $this->render('public/contact.html.twig', [
'form' => $form->createView()
]);
}
/**
* @Route("/services", name="public_services")
*
* @return Response
*/
public function services(): Response
{
return $this->render('public/services.html.twig', []);
}
/**
* @Route("/our_analysis_and_scoring", name="public_our_analysis_and_scoring")
*
* @return Response
*/
public function ourAnalysisAndScoring(): Response
{
return $this->render('public/our_analysis_and_scoring.html.twig', []);
}
/**
* @Route("/integration", name="public_integration")
*
* @return Response
*/
public function investorUser(): Response
{
return $this->render('public/integration.html.twig', []);
}
/**
* @Route("/business", name="public_business")
*
* @return Response
*/
public function business(): Response
{
return $this->render('public/business.html.twig', []);
}
/**
* @Route("/new_financing", name="public_new_financing")
*
* @return Response
*/
public function newFinancing(): Response
{
return $this->render('public/new_financing.html.twig', []);
}
/**
* @Route("/faq", name="public_faq")
*
* @return Response
*/
public function faq(): Response
{
return $this->render('public/faq.html.twig', []);
}
/**
* @Route("/terms_of_use", name="public_terms_of_use")
*
* @return Response
*/
public function termsOfUse(): Response
{
return $this->render('public/terms_of_use.html.twig', []);
}
/**
* @Route("/they_trust_us", name="public_they_trust_us")
*
* @return Response
*/
public function theyTrustUs(): Response
{
return $this->render('public/they_trust_us.html.twig', []);
}
/**
* @Route("/nuevasempresasense", name="public_nuevas_empresas_ense")
*
* @return Response
*/
public function nuevasEmpresasEnse(): Response
{
return $this->render('public/nuevas_empresas_ense.html.twig', []);
}
/**
* @Route("/team", name="public_team")
*
* @return Response
*/
public function team(): Response
{
return $this->render('public/team.html.twig', []);
}
/* ------------------------------ NEW ROUTES ------------------------------ */
/**
* @Route("/trackinvoice", name="public_trackinvoice")
*
* @return Response
*/
public function ourEscrowAccount(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/herramienta_trazabilidad_facturas.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i2.jpg')
]);
}
/**
* @Route("/our_connectors", name="public_our_connectors")
*
* @return Response
*/
public function ourConnectors(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/nuestros_conectores.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i3.jpg')
]);
}
/**
* @Route("/our_tools", name="public_our_tools")
*
* @return Response
*/
public function ourInvestors(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/nuestras_herramientas.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i4.jpg')
]);
}
/**
* @Route("/economic_cycle", name="public_economic_cycle")
*
* @return Response
*/
public function economic_cycle(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/automatizacion_ciclo_comercial.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i5.jpg')
]);
}
/**
* @Route("/data_processed", name="public_data_processed")
*
* @return Response
*/
public function ourScoring(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/captura_datos_verificacion.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i6.jpg')
]);
}
/**
* @Route("/trend_analytics", name="public_trend_analytics")
*
* @return Response
*/
public function ourProduct(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/bd_exogenas_tendencias_mercado.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i7.jpg')
]);
}
/**
* @Route("/commercial_rating", name="public_commercial_rating")
*
* @return Response
*/
public function ourGuarantees(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/rating_comercial.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i8.jpg')
]);
}
/**
* @Route("/creditinsurance_user", name="public_creditinsurance_user")
*
* @return Response
*/
public function ourContract(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/usuario_entidad_seguros.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i9.jpg')
]);
}
/**
* @Route("/product_finance", name="public_product_finance")
*
* @return Response
*/
public function product_finance(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/herramienta_producto_franquicias.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i13.jpg')
]);
}
/**
* @Route("/investor_user", name="public_investor_user")
*
* @return Response
*/
public function investor_user(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/usuario_inversor.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i10.jpg')
]);
}
/**
* @Route("/business_user", name="public_business_user")
*
* @return Response
*/
public function providerUser(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/usuario_empresa.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i11.jpg')
]);
}
/**
* @Route("/distributor_user", name="public_distributor_user")
*
* @return Response
*/
public function distributorUser(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/usuario_distribuidor.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i12.jpg')
]);
}
/**
* @Route("/financial_entity_user", name="public_financial_entity_user")
*
* @return Response
*/
public function financialEntityUser(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/usuario_entidad_financiera.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i13.jpg')
]);
}
/**
* @Route("/finance_erp", name="public_finance_erp")
*
* @return Response
*/
public function howWork(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/herramienta_programa_contabilidad.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i29.jpg')
]);
}
/**
* @Route("/emailbot", name="public_emailbot")
*
* @return Response
*/
public function smartEscrowPro(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/herramienta_facturas_email.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i20.jpg')
]);
}
/**
* @Route("/360onlinestore", name="public_360onlinestore")
*
* @return Response
*/
public function onlineStore(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/herramienta_360.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i34.jpg')
]);
}
/**
* @Route("/crowdfunding", name="public_crowdfunding")
*
* @return Response
*/
public function crowdfunding(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/crowdfunding.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i35.jpg')
]);
}
/**
* @Route("/bankiafintech", name="public_bankiafintech")
*
* @return Response
*/
public function bankiafintech(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/caso_exito_mvp_bankia.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i37.jpg')
]);
}
/**
* @Route("/crealsa", name="public_crealsa")
*
* @return Response
*/
public function crealsa(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/caso_exito_crealsa.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i36.jpg')
]);
}
/**
* @Route("/check_rating", name="public_check_rating")
*
* @return Response
*/
public function check_rating(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/herramienta_rating_comercial.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i33.jpg')
]);
}
/**
* @Route("/connector_edi", name="public_connector_edi")
*
* @return Response
*/
public function conectorEdi(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/conector_edi.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i24.jpg')
]);
}
/**
* @Route("/connector_dua", name="public_connector_dua")
*
* @return Response
*/
public function duaConnector(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/conector_dua.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i25.jpg')
]);
}
/**
* @Route("/connector_intrastat", name="public_connector_intrastat")
*
* @return Response
*/
public function connector_intrastat(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/conector_intrastat.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i26.jpg')
]);
}
/**
* @Route("/connector_sii", name="public_connector_sii")
*
* @return Response
*/
public function connector_sii(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/conector_sii.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i27.jpg')
]);
}
/**
* @Route("/connector_csvcheck", name="public_connector_csvcheck")
*
* @return Response
*/
public function connector_csvcheck(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/conector_csv_hacienda.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i28.jpg')
]);
}
/**
* @Route("/connector_erp", name="public_connector_erp")
*
* @return Response
*/
public function connector_erp(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/conector_erp.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i29.jpg')
]);
}
/**
* @Route("/connector_marketplace", name="public_connector_marketplace")
*
* @return Response
*/
public function connector_marketplace(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/conector_marketplace.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i30.jpg')
]);
}
/**
* @Route("/connector_tpv", name="public_connector_tpv")
*
* @return Response
*/
public function connector_tpv(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/conector_tpv.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i31.jpg')
]);
}
/**
* @Route("/kit_digitalizado", name="public_kit_digitalizador")
*
* @return Response
*/
public function kitDigitalizador(): Response
{
$manager = new Package(new JsonManifestVersionStrategy($this->getParameter('buildFolder') . '/manifest.json'));
return $this->render('public/news/kit_digitalizador.html.twig', [
'background' => $manager->getUrl('build/images/portadas/i4.jpg')
]);
}
}