src/Controller/DefaultController.php line 42
<?phpnamespace App\Controller;use App\Classes\Security;use App\Classes\Utils;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\HttpFoundation\ResponseHeaderBag;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;use Symfony\Component\HttpFoundation\JsonResponse;use DateTime;use Symfony\Component\HttpKernel\Kernel;use App\Entity\ContactoFeria;use App\Entity\Delegado;use App\Entity\User;use App\Entity\Farmacia;use App\Entity\LandingLog;use Symfony\Component\Security\Core\Role\Role;use Doctrine\ORM\EntityManager;use Doctrine\ORM\EntityManagerInterface;use Detection\MobileDetect;use App\Entity\DelegadoFerias;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use App\Entity\TipoIncidencia;//use App\Entity\ContactoFeria;//use App\Entity\FarmaciaPersona;class DefaultController extends AbstractController{#[Route('/politica-de-cookies', name: 'politica_de_cookies')]public function politicaCookies(Request $request) {return $this->render('Default/politica-de-cookies.html.twig');}/*** @Route("/", name="homepage")*/public function indexAction(EntityManagerInterface $em, Request $request): Response{$detect = new MobileDetect();if($this->getUser()->hasRole("ROLE_ADMIN")) {return $this->redirectToRoute("admin_homepage");} else if($this->getUser()->hasRole("ROLE_GESTOR")) {if(($detect->isMobile() || $detect->isTablet() || Utils::isIpadPro($detect))&&($this->getUser()->hasRole("ROLE_FERIAS"))) {return $this->redirectToRoute("ferias_homepage");} else {return $this->redirectToRoute("gestor_homepage");}} else if($this->getUser()->hasRole("ROLE_FERIAS")) {return $this->redirectToRoute("ferias_homepage");} else if($this->getUser()->hasRole("ROLE_SAC")) {return $this->redirectToRoute("gestor_incidencias");} else {return $this->render('Default/index.html.twig', []);}}/*** @Route("/api/delegado", name="get_delegado_from_farmacia")*/public function getDelegadoAction(EntityManagerInterface $em, Request $request){$farmacia = $em->getRepository(Farmacia::class)->find($request->get("id"));$arr_resultado = array();$arr_resultado['resultado'] = -1;if($farmacia) {if($farmacia->getDelegado()) {$arr_resultado['resultado'] = $farmacia->getDelegado()->getId();$arr_resultado['nombre'] = $farmacia->getDelegado()->getNombre();$arr_resultado['zona'] = $farmacia->getZona()->getNombre();$arr_resultado['plataforma'] = $farmacia->getPlataforma();if($this->getUser()->hasRole("ROLE_FERIAS")) {$arr_resultado['soluciones'] = 1;$arr_resultado['delegados_feria'] = array();$arr_resultado['experience'] = $farmacia->getExperience();$arr_resultado['piel'] = $farmacia->getPiel();$arr_resultado['circulacion_venosa'] = $farmacia->getCirculacionVenosa();$arr_resultado['nutricion'] = $farmacia->getNutricion();$arr_resultado['salud_articular'] = $farmacia->isSaludArticular();$arr_resultado['medical_dispenser'] = $farmacia->getMedicalDispenser();foreach($farmacia->getDelegadosFerias() as $delegado_feria) {$arr_delegado_feria = array();$arr_delegado_feria['nombre'] = $delegado_feria->getNombre();$arr_delegado_feria['numero'] = $delegado_feria->getNumero();$arr_resultado['delegados_feria'][Utils::string2url($delegado_feria->getTipo())] = $arr_delegado_feria;}$arr_resultado['farmacia_personas'] = array();foreach($farmacia->getPersonas() as $persona) {$arr_farmacia_persona = array();$arr_farmacia_persona['nombre'] = $persona->getNombre();$arr_farmacia_persona['apellidos'] = $persona->getApellidos();$arr_farmacia_persona['email'] = $persona->getEmail();$arr_farmacia_persona['dni'] = $persona->getDni();$arr_resultado['farmacia_personas'][$persona->getId()] = $arr_farmacia_persona;}} else {$arr_resultado['soluciones'] = 0;}}}return new JsonResponse($arr_resultado);}/*** @Route("/api/feria/contactos", name="get_contactos_feria_from_farmacia")*/public function getContactosFeriaAction(EntityManagerInterface $em, Request $request){$farmacia = $em->getRepository(Farmacia::class)->find($request->get("farmacia_id"));$arr_resultado = array();$arr_resultado['resultado'] = 0;if($farmacia) {$contactos = $em->getRepository(ContactoFeria::class)->getContactosFeriaFarmacia($request->get("feria_id"), $request->get("farmacia_id"));if(count($contactos)>0) {$arr_resultado['resultado'] = count($contactos);$arr_resultado['contactos'] = array();foreach($contactos as $contacto) {$arr_contacto = array();$arr_contacto['farmacia_id'] = $contacto->getFarmacia()->getId();$arr_contacto['farmacia_nombre'] = $contacto->getFarmacia()->getNombre();$arr_contacto['fecha'] = $contacto->getStrFecha();$arr_contacto['personas'] = array();foreach($contacto->getPersonasContacto() as $persona) {$arr_contacto['personas'][] = $persona->getNombre();}$arr_contacto['intereses'] = array();foreach($contacto->getIntereses() as $interes) {$arr_contacto['intereses'][] = $interes->getNombre();}if($contacto->getDetalle()==true) {$arr_contacto['detalle_aurum'] = 'SÃ';} else {$arr_contacto['detalle_aurum'] = 'No';}$arr_resultado['contactos'][]=$arr_contacto;}}}return new JsonResponse($arr_resultado);}/*** @Route("/api/farmacia", name="get_datos_from_farmacia")*/public function getDatosFarmaciaAction(EntityManagerInterface $em, Request $request){$farmacia = $em->getRepository(Farmacia::class)->find($request->get("id"));$arr_resultado = array();$arr_resultado['resultado'] = -1;if($farmacia) {if($farmacia->getDelegado()) {$arr_resultado['delegado'] = $farmacia->getDelegado()->getNombre();} else {$arr_resultado['delegado'] = '';}$arr_resultado['zona'] = $farmacia->getZona()->getNombre();$arr_resultado['telefono'] = $farmacia->getTelefono();$arr_resultado['e-mail'] = $farmacia->getEmail();$arr_resultado['cif'] = $farmacia->getNif();$arr_resultado['localidad'] = $farmacia->getLocalidad();$arr_resultado['provincia'] = $farmacia->getProvincia();$arr_resultado['direccion'] = $farmacia->getDireccion();$arr_resultado['cod_postal'] = $farmacia->getCodPostal();$arr_resultado['plataforma'] = $farmacia->getPlataforma();$arr_resultado['nombre'] = $farmacia->getNombre();$arr_resultado['id'] = $farmacia->getId();$arr_resultado['cod_cliente'] = $farmacia->getCodCliente();$arr_resultado['cod_local'] = $farmacia->getCodLocal();$ahora = new \DateTime();$arr_resultado['tope_facturacion'] = 0;for($i=2016;$i<=$ahora->format("Y");$i++) {$arr_resultado['facturacion'.$i] = number_format($farmacia->getFacturacionAnio($i),2,',','.');$arr_resultado['tope_facturacion'] = $i;}$arr_resultado['facturacionDesde2016'] = number_format($farmacia->getFacturacion2016(),2,',','.');$arr_resultado['resultado'] = 1;}return new JsonResponse($arr_resultado);}/*** @Route("/api/farmacia/instant", name="api_farmacia_instant_search")*/public function instantSearchAction(EntityManagerInterface $em, Request $request){$resultados = $em->getRepository(Farmacia::class)->instantSearch($request);return new JsonResponse($resultados);}/*** @Route("/api/importa/blisters", name="api_importa_blisters")*/public function importaBlistersAction(EntityManagerInterface $em, Request $request){$phpExcelObject = $this->get('phpexcel')->createPHPExcelObject('D:/work/cinfa/medical-dispenser/docs/datos_a_importar.xlsx');$hoja = $phpExcelObject->getActiveSheet();$highestRow = $hoja->getHighestRow();$highestColumn = $hoja->getHighestColumn();$arr_fechas = array();$importadas = 0;$i=0;for($col = 'B'; $col != $highestColumn; $col++){$i++;$arr_fechas[$i] = $hoja->getCellByColumnAndRow($i, 1)->getFormattedValue();}for ($row = 2; $row <= $highestRow; ++$row) {$codigo = $hoja->getCellByColumnAndRow(0, $row)->getValue();$farmacia = $em->getRepository(Farmacia::class)->findOneByCodLocal($codigo);if($farmacia) {$ik=0;for($col = 'B'; $col != $highestColumn; $col++){$ik++;$valor = $hoja->getCellByColumnAndRow($ik, $row)->getValue();if($valor>0) {$RAW_QUERY = "insert into venta (farmacia_id, delegado_id, plataforma, producto, fecha_compra, cajas_blister, created_at, created_by, updated_at, updated_by) ";$RAW_QUERY.=" values(";$RAW_QUERY.=$farmacia->getId().",".$farmacia->getDelegado()->getId().",'".$farmacia->getPlataforma()."','BL',";$fecha = \DateTime::createFromFormat("m/d/Y", $arr_fechas[$ik]);$RAW_QUERY.="'".$fecha->format("Y-m-d")."',";$RAW_QUERY.=$valor.",";$RAW_QUERY.="NOW(),1,NOW(),1);";$statement = $em->getConnection()->prepare($RAW_QUERY);$statement->execute();$importadas++;}}}}die("Importadas:".$importadas);}/*** @Route("/api/importa/facturacion", name="api_importa_facturacion")*/public function importaFacturacionAction(EntityManagerInterface $em, Request $request){set_time_limit ( 180 );$phpExcelObject = $this->get('phpexcel')->createPHPExcelObject('D:/work/cinfa/medical-dispenser/docs/facturacion_16_20.xlsx');$hoja = $phpExcelObject->getActiveSheet();$highestRow = $hoja->getHighestRow();$highestColumn = $hoja->getHighestColumn();$arr_fechas = array();$importadas = 0;$i=0;for($col = 'C'; $col != $highestColumn; $col++){$i++;$arr_fechas[$i] = $hoja->getCellByColumnAndRow($i, 1)->getValue();}for ($row = 2; $row <= $highestRow; ++$row) {$codigo = $hoja->getCellByColumnAndRow(0, $row)->getValue();$farmacia = $em->getRepository(Farmacia::class)->findOneByCodLocal($codigo);if($farmacia) {$ik=0;for($col = 'C'; $col != $highestColumn; $col++){$ik++;$valor = $hoja->getCellByColumnAndRow($ik, $row)->getValue();if($valor>0) {$RAW_QUERY = "insert into facturacion (farmacia_id, delegado_id, plataforma, anyo, cantidad, created_at, created_by, updated_at, updated_by) ";$RAW_QUERY.=" values(";$RAW_QUERY.=$farmacia->getId().",".$farmacia->getDelegado()->getId().",'".$farmacia->getPlataforma()."',";$RAW_QUERY.=$arr_fechas[$ik].",";$RAW_QUERY.=$valor.",";$RAW_QUERY.="NOW(),1,NOW(),1);";$statement = $em->getConnection()->prepare($RAW_QUERY);$statement->execute();$importadas++;}}}}die("Importadas:".$importadas);}/*** @Route("/api/ext/getFarmaciasDelegado", name="ext_get_farmacias_from_delegado")* @Method({"POST", "GET"})*/public function getFarmaciasDelegadoAction(EntityManagerInterface $em, Request $request){$delegado = $em->getRepository(Delegado::class)->findOneByEmail($request->get("email"));$arr_resultado = array();if($delegado) {foreach($delegado->getFarmacias() as $farmacia) {if($farmacia->getCodCliente()!='') {$arr_resultado[$farmacia->getId()] = $farmacia->getCodCliente()." - ".$farmacia->getNombre();} else {$arr_resultado[$farmacia->getId()] = $farmacia->getNombre();}}}return new JsonResponse($arr_resultado);}/*** @Route("/api/ext/getDatosFarmacia", name="ext_get_datos_farmacia")* @Method({"POST"})*/public function getExtDatosFarmaciaAction(EntityManagerInterface $em, Request $request){return $this->getDatosFarmaciaAction($em, $request);}/*** @Route("/api/incidencia/tipo/hijos", name="get_tipo_incidencia_hijos")*/public function getTipoIncidenciaHijosAction(EntityManagerInterface $em, Request $request){$tipo_incidencia = $em->getRepository(TipoIncidencia::class)->find($request->get("id"));$arr_resultado = array();$arr_resultado['datos'] = array();$arr_resultado['resultado'] = -1;if($tipo_incidencia) {foreach($tipo_incidencia->getHijos() as $hijo) {$arr_resultado['datos'][$hijo->getId()] = $hijo->getNombre();$arr_resultado['resultado'] = 1;}}return new JsonResponse($arr_resultado);}/*** @Route("/api/ext/farmacia/verify", name="verificar_farmacia")* @Method({"GET"})*/public function verificarFarmaciaAction(EntityManagerInterface $em, Request $request){$farmacia = $em->getRepository(Farmacia::class)->findOneBy(array("codCliente"=>$request->get("cod_cliente"), "nif"=>$request->get("nif"), "activa"=>1));$arr_resultado = array();if($farmacia) {$arr_resultado["resultado"]=$farmacia->getId();} else {$arr_resultado["resultado"]=0;}$response = new JsonResponse($arr_resultado);$response->headers->set('Content-Type', 'application/json');$response->headers->set('Access-Control-Allow-Origin', '*');return $response;}/*** @Route("/api/ext/medical/log/set", name="landing_log_new")* @Method({"GET","POST"})*/public function newLandingLogAction(EntityManagerInterface $em, Request $request){$log = new LandingLog();$log->setCodCliente($request->get('cod_cliente'));$log->setCif($request->get("cif"));$log->setNombre($request->get("nombre"));$log->setTelefono($request->get("telefono"));$log->setAceptacionLegal($request->get("aceptacion"));$log->setEmail($request->get("email"));$log->setFecha(new \DateTime());$log->setAccion($request->get("accion"));$log->setRespuesta($request->get("respuesta"));$log->setUserAgent($request->get("user_agent"));$log->setRemoteIp($request->get("remote_ip"));$log->setOrigen($request->get('org'));$em->persist($log);$em->flush();$arr_resultado = array();$arr_resultado["resultado"]="ok";$response = new JsonResponse($arr_resultado);$response->headers->set('Content-Type', 'application/json');$response->headers->set('Access-Control-Allow-Origin', '*');return $response;}public static function getSubscribedServices(): array{return parent::getSubscribedServices();}}