/** * Creates a new Consulta entity. * * @Route("/create/consulta-estetica", name="admin_consulta_estetica_create") * @Method("POST") * @Template("DGPlusbelleBundle:Consulta:newconpaciente.html.twig") */ public function createConsultaEsteticaAction(Request $request) { $entity = new Consulta(); $em = $this->getDoctrine()->getManager(); //Obtiene el usuario //$id= $request->get('id'); $cadena = $request->get('identidad'); //Obtener del parametro el valor que se debe usar para programar la consulta $accion = $cadena[0]; //Obtener el id del parametro $idEntidad = substr($cadena, 1); //$pac = $em->getRepository('DGPlusbelleBundle:Paciente')->find($idpac); $user = $this->get('security.token_storage')->getToken()->getUser(); //Entidades para insertar en el proceso de la consulta de emergencia $expediente = new Expediente(); //Seteo de valores $expediente->setFechaCreacion(new \DateTime('now')); $expediente->setHoraCreacion(new \DateTime('now')); $expediente->setEstado(true); $entity->setFechaConsulta(new \DateTime('now')); $form = $this->createCreateFormEstetica($entity, 1, $idEntidad); $form->handleRequest($request); $parameters = $request->request->all(); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $tratamiento = null; switch ($accion) { case 'C': $cita = $em->getRepository('DGPlusbelleBundle:Cita')->find($idEntidad); $cita->setEstado("A"); $tratamiento = $cita->getTratamiento(); $entity->setCita($cita); $em->persist($cita); $em->flush(); break; case 'P': //$entity->setCita(null); break; } $paciente = $entity->getPaciente(); $paciente->setEstado(true); $apellido = $paciente->getPersona()->getApellidos(); $nombre = $paciente->getPersona()->getNombres(); $dql = "SELECT p.id, exp.numero FROM DGPlusbelleBundle:Paciente p " . "JOIN p.expediente exp WHERE p.id=:id "; $exp = $em->createQuery($dql)->setParameter('id', $paciente->getId())->getResult(); if (count($exp) == 0) { //Generacion del numero de expediente $numeroExp = $nombre[0] . $apellido[0] . date("Y"); $dql = "SELECT COUNT(exp)+1 FROM DGPlusbelleBundle:Expediente exp WHERE exp.numero LIKE :numero"; $num = $em->createQuery($dql)->setParameter('numero', '%' . $numeroExp . '%')->getResult(); $numString = $num[0]["1"]; switch (strlen($numString)) { case 1: $numeroExp .= "00" . $numString; break; case 2: $numeroExp .= "0" . $numString; break; case 3: $numeroExp .= $numString; break; } $expediente->setNumero($numeroExp); $expediente->setPaciente($paciente); $expediente->setUsuario($user); $em->persist($expediente); } $usuario = $this->get('security.token_storage')->getToken()->getUser(); $empleado = $em->getRepository('DGPlusbelleBundle:Empleado')->findBy(array('persona' => $usuario->getPersona()->getId())); $entity->setEmpleado($empleado[0]); $placas = new ArrayCollection(); $path = $this->container->getParameter('photo.paciente'); $i = 0; foreach ($entity->getPlacas2() as $key => $row) { $imagenConsulta = new ImagenConsulta(); if ($row->getFile() != null) { //echo "vc"; $fecha = date('Y-m-d His'); $extension = $row->getFile()->getClientOriginalExtension(); $nombreArchivo = "consulta - " . $i . " - " . $fecha . "." . $extension; $imagenConsulta->setFoto($nombreArchivo); $row->setFoto($nombreArchivo); $row->getFile()->move($path, $nombreArchivo); $em->persist($row); $i++; } } $em->persist($entity); $em->flush(); $plantillaid = $parameters['dgplusbellebundle_consulta']['plantilla']; $recetaid = $parameters['dgplusbellebundle_consulta']['sesiontratamiento']; var_dump($parameters); //die(); $dql = "SELECT det.id, det.nombre " . "FROM DGPlusbelleBundle:DetallePlantilla det " . "JOIN det.plantilla pla " . "WHERE pla.id = :plantillaid"; $parametros = $em->createQuery($dql)->setParameter('plantillaid', $plantillaid)->getResult(); $dql = "SELECT det.id, det.nombre " . "FROM DGPlusbelleBundle:DetallePlantilla det " . "JOIN det.plantilla pla " . "WHERE pla.id = :plantillaid"; $parametros2 = $em->createQuery($dql)->setParameter('plantillaid', $recetaid)->getResult(); foreach ($parametros as $p) { $dataReporte = new HistorialConsulta(); $detalle = $em->getRepository('DGPlusbelleBundle:DetallePlantilla')->find($p['id']); $dataReporte->setDetallePlantilla($detalle); $dataReporte->setConsulta($entity); $dataReporte->setConsultaReceta(null); $nparam = explode(" ", $p['nombre']); //var_dump(count($nparam)); $lon = count($nparam); if ($lon > 1) { $pnombre = $nparam[0]; foreach ($nparam as $key => $par) { if ($key + 1 != $lon) { $pnombre .= '_' . $nparam[$key + 1]; } } $dataReporte->setValorDetalle($parameters[$pnombre]); } else { $dataReporte->setValorDetalle($parameters[$p['nombre']]); } $em->persist($dataReporte); $em->flush(); } foreach ($parametros2 as $p) { $dataReporte2 = new HistorialConsulta(); $detalle = $em->getRepository('DGPlusbelleBundle:DetallePlantilla')->find($p['id']); $dataReporte2->setDetallePlantilla($detalle); $dataReporte2->setConsulta(null); $dataReporte2->setConsultaReceta($entity); $nparam = explode(" ", $p['nombre']); $lon = count($nparam); if ($lon > 1) { $pnombre = $nparam[0]; foreach ($nparam as $key => $par) { //var_dump($key); if ($key + 1 != $lon) { $pnombre .= '_' . $nparam[$key + 1]; } } $dataReporte2->setValorDetalle($parameters[$pnombre . "2"]); } else { $dataReporte2->setValorDetalle($parameters[$p['nombre'] . "2"]); } $em->persist($dataReporte2); $em->flush(); } $idEmpleado = $usuario->getPersona()->getEmpleado()[0]->getId(); $empleados = $this->verificarComision($idEmpleado, null); if ($empleados[0]['suma'] >= $empleados[0]['meta'] && !$empleados[0]['comisionCompleta']) { $this->get('envio_correo')->sendEmail($empleados[0]['email'], "", "", "", "cumplio su objetivo"); $empComision = $em->getRepository('DGPlusbelleBundle:Empleado')->find($empleado[0]->getId()); $empComision->setComisionCompleta(1); $em->persist($empComision); $em->flush(); } $this->get('bitacora')->escribirbitacora("Se registro una nueva consulta", $usuario->getId()); switch ($accion) { case 'C': return $this->redirect($this->generateUrl('admin_cita')); break; case 'P': return $this->redirect($this->generateUrl('admin_paciente')); break; } } return array('entity' => $entity, 'form' => $form->createView()); }
/** * Creates a new Consulta entity. * * @Route("/edit/insert/plantilla/", name="admin_consulta_edit_plantilla", options={"expose"=true}) * @Method("POST") */ public function editPlantillaAction(Request $request) { $em = $this->getDoctrine()->getManager(); $idConsulta = $request->get('idConsulta'); if ($idConsulta != -1) { $entity = $em->getRepository('DGPlusbelleBundle:Consulta')->find($idConsulta); } $flag = 0; $cadena = $request->get('identidad'); $parameters = $request->request->all(); //Obtener del parametro el valor que se debe usar para programar la consulta $accion = $cadena[0]; //Obtener el id del parametro // $idEntidad = substr($cadena, 1); $tipoPlantilla = $parameters['idEstetica']; if ($tipoPlantilla == 1) { $plantillaid = $parameters['idPlantilla']; $dql = "SELECT det.id, det.nombre " . "FROM DGPlusbelleBundle:DetallePlantilla det " . "JOIN det.plantilla pla " . "WHERE pla.id = :plantillaid"; $parametros = $em->createQuery($dql)->setParameter('plantillaid', $plantillaid)->getResult(); $dataPlantilla = $em->getRepository('DGPlusbelleBundle:HistorialConsulta')->findBy(array('consulta' => $idConsulta)); if ($dataPlantilla) { foreach ($dataPlantilla as $value) { $em->remove($value); $em->flush(); } } foreach ($parametros as $key => $p) { $dataReporte = new HistorialConsulta(); $detalle = $em->getRepository('DGPlusbelleBundle:DetallePlantilla')->find($p['id']); $dataReporte->setDetallePlantilla($detalle); $dataReporte->setConsulta($entity); $dataReporte->setConsultaReceta(null); $nparam = explode(" ", $p['nombre']); //var_dump(count($nparam)); $lon = count($nparam); $dataReporte->setValorDetalle($parameters['valores'][$key]); $em->persist($dataReporte); $em->flush(); } } else { if ($tipoPlantilla == 2) { $esteticaid = 3; } else { if ($tipoPlantilla == 3) { $esteticaid = 1; } else { if ($tipoPlantilla == 4) { $esteticaid = 2; } } } if ($esteticaid != 3) { $dataCheck = $em->getRepository('DGPlusbelleBundle:HistorialEstetica')->findBy(array('consulta' => $idConsulta)); if ($dataCheck) { foreach ($dataCheck as $value) { $em->remove($value); $em->flush(); } } $dql = "SELECT det.id, det.nombre, opc.id opcid, opc.nombre opcnom " . "FROM DGPlusbelleBundle:OpcionesDetalleEstetica opc " . "JOIN opc.detalleEstetica det " . "JOIN det.estetica est " . "WHERE est.id = :esteticaid"; $parametros = $em->createQuery($dql)->setParameter('esteticaid', $esteticaid)->getResult(); foreach ($parametros as $p) { $dataReporte = new \DGPlusbelleBundle\Entity\HistorialEstetica(); $idOpcion = $p['opcid']; $detalle = $em->getRepository('DGPlusbelleBundle:OpcionesDetalleEstetica')->find($p['opcid']); $dataReporte->setdetalleEstetica($detalle); $dataReporte->setConsulta($entity); $nparam = explode(" ", $p['opcnom']); $lon = count($nparam); if ($lon > 1) { $pnombre = $nparam[0]; foreach ($nparam as $key => $par) { if ($key + 1 != $lon) { $pnombre .= '_' . $nparam[$key + 1]; } } if (isset($parameters[$pnombre])) { $dataReporte->setValor($pnombre); $em->persist($dataReporte); $em->flush(); } } else { $claves = array(); foreach ($parameters['valores'] as $key => $reg) { if ($reg == 'true') { array_push($claves, $parameters['idParameters'][$key]); } } //Son las claves con true //var_dump($claves); foreach ($claves as $key => $idrow) { if ($idrow == $idOpcion) { $dataReporte->setValor('-'); $em->persist($dataReporte); $em->flush(); unset($claves[$key]); } } } } } if ($esteticaid == 1) { $estetica = $em->getRepository('DGPlusbelleBundle:Estetica')->find($esteticaid); $compCorporal = $em->getRepository('DGPlusbelleBundle:ComposicionCorporal')->findOneBy(array('consulta' => $entity->getId())); $compCorporal->setPeso($parameters['valores'][0]); $compCorporal->setGrasaCorporal($parameters['valores'][1]); $compCorporal->setAguaCorporal($parameters['valores'][2]); $compCorporal->setMasaMusculo($parameters['valores'][3]); $compCorporal->setValoracionFisica($parameters['valores'][4]); $compCorporal->setDciBmr($parameters['valores'][5]); $compCorporal->setEdadMetabolica($parameters['valores'][6]); $compCorporal->setMasaOsea($parameters['valores'][7]); $compCorporal->setGrasaVisceral($parameters['valores'][8]); $em->merge($compCorporal); $em->flush(); } if ($esteticaid == 3) { $estetica = $em->getRepository('DGPlusbelleBundle:Estetica')->find($esteticaid); $dataBotox = $em->getRepository('DGPlusbelleBundle:ConsultaBotox')->findBy(array('consulta' => $idConsulta)); if ($dataBotox) { foreach ($dataBotox as $value) { $em->remove($value); $em->flush(); } } $botox = new \DGPlusbelleBundle\Entity\ConsultaBotox(); foreach ($parameters['valores'] as $key => $value) { if ($key < 8) { $index = intval($key) % 8; } else { $index = (intval($key) - 1) % 7; } switch ($index) { case 0: $botox->setAreaInyectar($value); break; case 1: $botox->setUnidades($value); break; case 2: $botox->setFechaCaducidad(new \DateTime($value)); break; case 3: $botox->setLote($value); break; case 4: $botox->setMarcaProducto($value); break; case 5: $botox->setNumAplicacion($value); break; case 6: $botox->setValor($value); break; case 7: if (isset($value)) { $botox->setRecomendaciones($value); } break; } if ($key % 7 == 0 && $key != 0 || $key == 7) { $botox->setConsulta($entity); $botox->setEstetica($estetica); $em->persist($botox); $em->flush(); $botox = new \DGPlusbelleBundle\Entity\ConsultaBotox(); } } } } //$f = $gg; /* if($producto){ $this->establecerConsultaProducto($entity, $producto, $indicaciones); } */ $usuario = $this->get('security.token_storage')->getToken()->getUser(); $this->get('bitacora')->escribirbitacora("Se ha editado una plantilla", $usuario->getId()); switch ($accion) { case 'C': return $this->redirect($this->generateUrl('admin_cita')); break; case 'P': return $this->redirect($this->generateUrl('admin_paciente')); break; case 'E': return $this->redirect($this->generateUrl('admin_consultas_paciente')); break; } //} $response = new JsonResponse(); $response->setData(array('query' => 0)); return $response; }