/**
  * Creates a new SesionVentaTratamiento entity.
  *
  * @Route("/create/{id}", name="admin_sesionventatratamiento_create")
  * @Method("POST")
  * @Template("DGPlusbelleBundle:SesionVentaTratamiento:new.html.twig")
  */
 public function createAction(Request $request, $id)
 {
     $entity = new SesionVentaTratamiento();
     $seguimiento1 = new ImagenTratamiento();
     $form = $this->createCreateForm($entity, $id);
     $form->handleRequest($request);
     $entity->setFechaSesion(new \DateTime('now'));
     if ($form->isValid()) {
         $em = $this->getDoctrine()->getManager();
         $em->persist($entity);
         $em->flush();
         $id2 = $entity->getId();
         //die();
         $entity2 = $em->getRepository('DGPlusbelleBundle:SesionVentaTratamiento')->find($id2);
         $seguimiento1->setSesionVentaTratamiento($entity2);
         /*      
                  if($entity->getFileAntes()!=null){
                         $path = $this->container->getParameter('photo.paciente');
         
                         $fecha = date('Y-m-d His');
                         $extension = $entity->getFileAntes()->getClientOriginalExtension();
                         $nombreArchivo = $entity->getId()."-"."Antes"."-".$fecha.".".$extension;
                         $em->persist($entity);
                         $em->flush();
                         //var_dump($path.$nombreArchivo);
         
                         $seguimiento1->setFotoAntes($nombreArchivo);
                         $entity->getFileAntes()->move($path,$nombreArchivo);
                         $em->persist($seguimiento1);
                         $em->flush();
                     }  
                     
                      if($entity->getFileDespues()!=null){
                         $path = $this->container->getParameter('photo.paciente');
         
                         $fecha = date('Y-m-d His');
                         $extension = $entity->getFileDespues()->getClientOriginalExtension();
                         $nombreArchivo = $entity->getId()."-"."Despues"."-".$fecha.".".$extension;
                         $em->persist($entity);
                         $em->flush();
                         //var_dump($path.$nombreArchivo);
         
                         $seguimiento1->setFotoDespues($nombreArchivo);  
                         $entity->getFileDespues()->move($path,$nombreArchivo);
                         $em->persist($seguimiento1);
                         $em->flush();
                     } */
         foreach ($entity->getPlacas() as $row) {
             //var_dump($row->getFileAntes());
             //var_dump($entity->getPlacas());
             // die();
             if ($row->getFileAntes() != null) {
                 $path = $this->container->getParameter('photo.paciente');
                 $fecha = date('Y-m-d His');
                 $extension = $row->getFileAntes()->getClientOriginalExtension();
                 $nombreArchivo = $row->getId() . "-" . "Antes" . "-" . $fecha . "." . $extension;
                 //$seguimiento->setFotoAntes($nombreArchivo);
                 $row->setFotoAntes($nombreArchivo);
                 $row->getFileAntes()->move($path, $nombreArchivo);
                 //$em->merge($seguimiento);
                 // $em->merge($seguimiento1);
                 $em->persist($row);
                 $em->flush();
             }
         }
         $parameters = $request->request->all();
         $recetaid = $parameters['dgplusbellebundle_sesionventatratamiento']['sesiontratamiento'];
         var_dump($parameters);
         //die();
         $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 ($parametros2 as $p) {
             $dataReporte2 = new HistorialConsulta();
             $detalle = $em->getRepository('DGPlusbelleBundle:DetallePlantilla')->find($p['id']);
             $dataReporte2->setDetallePlantilla($detalle);
             $dataReporte2->setSesionVentaTratamientoReceta($entity);
             $dataReporte2->setConsulta(null);
             $nparam = explode(" ", $p['nombre']);
             //var_dump(count($nparam));
             $lon = count($nparam);
             if ($lon > 1) {
                 $pnombre = $nparam[0];
                 foreach ($nparam as $key => $par) {
                     //var_dump($key);
                     if ($key + 1 != $lon) {
                         //var_dump($lon);
                         $pnombre .= '_' . $nparam[$key + 1];
                     }
                 }
                 $dataReporte2->setValorDetalle($parameters[$pnombre . "2"]);
             } else {
                 $dataReporte2->setValorDetalle($parameters[$p['nombre'] . "2"]);
             }
             //var_dump($p['nombre']);
             $em->persist($dataReporte2);
             $em->flush();
         }
         $seguimiento = $em->getRepository('DGPlusbelleBundle:SeguimientoTratamiento')->findOneBy(array('idPersonaTratamiento' => $id));
         $seguimiento->setNumSesion($seguimiento->getNumSesion() + 1);
         $em->merge($seguimiento);
         $em->flush();
         $paciente = $em->getRepository('DGPlusbelleBundle:Paciente')->findOneBy(array('persona' => $entity->getPersonaTratamiento()->getPaciente()->getId()));
         return $this->redirect($this->generateUrl('admin_historial_consulta', array('id' => 'P' . $paciente->getId())));
     }
     return array('entity' => $entity, 'form' => $form->createView());
 }
 /**
  * Edits an existing Consulta entity.
  *
  * @Route("/{id}", name="admin_consulta_update")
  * @Method("PUT")
  * @Template("DGPlusbelleBundle:Consulta:editconpaciente.html.twig")
  */
 public function updateAction(Request $request, $id)
 {
     $em = $this->getDoctrine()->getManager();
     $entity = $em->getRepository('DGPlusbelleBundle:Consulta')->find($id);
     if (!$entity) {
         throw $this->createNotFoundException('Unable to find Consulta entity.');
     }
     $originalTags = array();
     // Create an array of the current Tag objects in the database
     foreach ($entity->getPlacas() as $tag) {
         $originalTags[] = $tag;
     }
     $deleteForm = $this->createDeleteForm($id);
     $editForm = $this->createEditForm($entity, 2);
     $editForm->handleRequest($request);
     $parameters = $request->request->all();
     if ($editForm->isValid()) {
         // filter $originalTags to contain tags no longer present
         foreach ($entity->getPlacas() as $tag) {
             foreach ($originalTags as $key => $toDel) {
                 if ($toDel->getId() === $tag->getId()) {
                     //echo $originalTags[$key];
                     unset($originalTags[$key]);
                 }
             }
         }
         // remove the relationship between the tag and the Task
         foreach ($originalTags as $tag) {
             // if you wanted to delete the Tag entirely, you can also do that
             $em->remove($tag);
             //$em->persist($tag);
         }
         $em->flush();
         $plantillaid = $parameters['dgplusbellebundle_consulta']['plantilla'];
         //var_dump($plantillaid);
         $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();
         $query = $em->createQuery('SELECT hc
                            FROM DGPlusbelleBundle:HistorialConsulta hc
                            JOIN hc.consulta c
                           WHERE c.id = :consulta
                        ORDER BY c.id ASC')->setParameter('consulta', $id);
         $detalleP = $query->getResult();
         foreach ($detalleP as $key1 => $det) {
             $historialConsulta = $em->getRepository('DGPlusbelleBundle:HistorialConsulta')->find($det->getId());
             if (!$historialConsulta) {
                 throw $this->createNotFoundException('Unable to find HistorialConsulta entity.');
             }
             $em->remove($historialConsulta);
             $em->flush();
         }
         //$o = $e;
         foreach ($parametros as $key => $p) {
             $dataReporte = new HistorialConsulta();
             $detalle = $em->getRepository('DGPlusbelleBundle:DetallePlantilla')->find($p['id']);
             $dataReporte->setDetallePlantilla($detalle);
             $dataReporte->setConsulta($entity);
             $nparam = explode(" ", $p['nombre']);
             //var_dump(count($nparam));
             $lon = count($nparam);
             if ($lon > 1) {
                 $pnombre = $nparam[0];
                 foreach ($nparam as $key => $par) {
                     //var_dump($key);
                     if ($key + 1 != $lon) {
                         //var_dump($lon);
                         $pnombre .= '_' . $nparam[$key + 1];
                     }
                 }
                 $dataReporte->setValorDetalle($parameters[$pnombre]);
             } else {
                 $dataReporte->setValorDetalle($parameters[$p['nombre']]);
             }
             //$dataReporte->setValorDetalle($parameters[$p['nombre']]);
             $em->persist($dataReporte);
             $em->flush();
         }
         $usuario = $this->get('security.token_storage')->getToken()->getUser();
         $this->get('bitacora')->escribirbitacora("Se actualizo una consulta", $usuario->getId());
         return $this->redirect($this->generateUrl('admin_consulta'));
     }
     return array('entity' => $entity, 'edit_form' => $editForm->createView(), 'delete_form' => $deleteForm->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;
 }