public function actionLineaServicio()
 {
     $model = new EquiposLineaServicio();
     $model->equipo_id = $_GET['idEquipo'];
     $model->linea_servicio_id = $_POST['EquiposLineaServicio']['linea_servicio_id'];
     //Nombre de equipo
     $nombreEquipo = Equipos::model()->findByPk($model->equipo_id);
     //Buscar linea de servicio en otro equipo
     $conteo = 0;
     $ListadoEquipos = Equipos::model()->findAll("nombre != '" . $nombreEquipo->nombre . "'");
     foreach ($ListadoEquipos as $listado_equipos) {
         $temporal = EquiposLineaServicio::model()->findAll("equipo_id=" . $listado_equipos->id . " and linea_servicio_id = " . $model->linea_servicio_id);
         if ($temporal) {
             $conteo = $conteo + 1;
         }
     }
     if ($conteo > 0) {
         Yii::app()->user->setFlash('error', "Esta linea de servicio ya esta vinculada a otro equipo.");
         $this->redirect(array('view', 'id' => $model->equipo_id));
     }
     //Buscar si ya hay linea de Servicio Vinculada al equipo
     $hayLineaServicio = EquiposLineaServicio::model()->findAll("equipo_id=" . $model->equipo_id . " and linea_servicio_id = " . $model->linea_servicio_id);
     if ($hayLineaServicio) {
         Yii::app()->user->setFlash('error', "Esta linea de servicio ya esta vinculada al equipo.");
         $this->redirect(array('view', 'id' => $model->equipo_id));
     } else {
         if ($model->save()) {
             $this->redirect(array('view', 'id' => $model->equipo_id));
         }
     }
 }
 /**
  * Updates a particular model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id the ID of the model to be updated
  */
 public function actionUpdate($id)
 {
     $model = $this->loadModel($id);
     $model->scenario = 'nueva';
     // Uncomment the following line if AJAX validation is needed
     $this->performAjaxValidation($model);
     if (isset($_POST['Citas'])) {
         //Limpiar Datos de citas equipo para evitar problemas
         $agendaEquiposDelete = CitasEquipo::model()->findByPk($_GET['id']);
         if ($agendaEquiposDelete) {
             $agendaEquiposDelete->delete();
         }
         $fechaCita = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['Citas']['fecha_cita']);
         //Copiar datos a tabla de actualizaciones
         $citaAnterior = new CitasActualizacion();
         $citaAnterior->cita_id = $model->id;
         $citaAnterior->fecha = $model->fecha_cita;
         $citaAnterior->personal = $model->personal->nombreCompleto;
         $citaAnterior->contrato = $model->contrato_id;
         $citaAnterior->servicio = $model->lineaServicio->nombre;
         $citaAnterior->comentario = $model->comentario;
         $citaAnterior->inicio = $model->hora_inicio;
         $citaAnterior->fin = $model->hora_fin_mostrar;
         $citaAnterior->actualizacion = $_POST['Citas']['actualizacion'];
         $citaAnterior->usuario = Yii::app()->user->name;
         //$citaAnterior->usuario 			= $model->usuario->nombreCompleto;
         $model->attributes = $_POST['Citas'];
         $model->fecha_cita = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['Citas']['fecha_cita']);
         $model->hora_fin = $_POST['Citas']['hora_fin'] - 1;
         $model->hora_fin_mostrar = $_POST['Citas']['hora_fin'];
         $model->contrato_id = $_POST['elContrato'];
         //$model->usuario_id = Yii::app()->user->usuarioId;
         $model->actualizacion = $_POST['Citas']['actualizacion'];
         //$model->equipo_adicional = $_POST['Citas']['equipo_adicional'];
         //$fechaCita = Yii::app()->dateformatter->format("yyyy-MM-dd",$_POST['Citas']['fecha_cita']);
         $horadeFin = $_POST['Citas']['hora_fin'];
         $horadeInicio = $_POST['Citas']['hora_inicio'];
         $laLineaServicio = $_POST['Citas']['linea_servicio_id'];
         /////Actualizar equipo a reserva
         //Buscar equipo de la linea de servicio seleccionada.
         $equiposDisponibles = EquiposLineaServicio::model()->findAll("linea_servicio_id = {$laLineaServicio}");
         if ($equiposDisponibles) {
             $sihayDisponible = 0;
             $lasuperllave = 0;
             $laInsidencia = 0;
             $lallave = 0;
             $conteoEquipo = 0;
             $hayuno = 0;
             //Consultar en agenda de equipos reservados //Buscar equipo que tenga esa linea de servicio
             //Contar cuantos equipos hay
             // $agendaEquipos = CitasEquipo::model()->findAll("fecha = '$fechaCita' and linea_servicio_id = $laLineaServicio");
             foreach ($equiposDisponibles as $equipos_disponibles) {
                 //Verificar si hay mas de 1 equipo desponible
                 $agendaEquipos = CitasEquipo::model()->findAll("fecha = '{$fechaCita}' and equipo_id = {$equipos_disponibles->equipo_id}");
                 if ($agendaEquipos) {
                     $conteoEquipo = 1;
                 } else {
                     $numerodeEquipo = $equipos_disponibles->equipo_id;
                 }
             }
             if ($conteoEquipo == 1) {
                 //Verificar equipo en la agenda
                 $agendaEquipos = CitasEquipo::model()->findAll("fecha = '{$fechaCita}'");
                 foreach ($equiposDisponibles as $equipos_disponibles) {
                     $lallave = 0;
                     $laInsidencia = 0;
                     foreach ($agendaEquipos as $agenda_equipos) {
                         if ($equipos_disponibles->equipo_id == $agenda_equipos->equipo_id) {
                             $lallave = 1;
                             //Si hay uno
                             if ($horadeInicio >= $agenda_equipos->hora_inicio and $horadeInicio <= $agenda_equipos->hora_fin and $agenda_equipos->fecha == $fechaCita and $agenda_equipos->equipo_id == $equipos_disponibles->equipo_id) {
                                 $laInsidencia = 1;
                             }
                             if ($horadeFin >= $agenda_equipos->hora_inicio and $horadeFin <= $agenda_equipos->hora_fin and $agenda_equipos->fecha == $fechaCita and $agenda_equipos->equipo_id == $equipos_disponibles->equipo_id) {
                                 $laInsidencia = 1;
                             }
                         }
                         //Si hay
                         if ($laInsidencia == 0) {
                             $hayuno = $equipos_disponibles->equipo_id;
                         }
                     }
                     if ($hayuno > 0) {
                         $laInsidencia = 0;
                         $equipos_disponibles->equipo_id = $hayuno;
                     }
                     if ($laInsidencia == 0 and $lallave == 1) {
                         $numerodeEquipo = $equipos_disponibles->equipo_id;
                     }
                     //Comienza ingreso de equipo a reserva
                     if ($laInsidencia == 0) {
                         if ($lasuperllave == 0) {
                             $lasuperllave = 1;
                             $lallave = 2;
                             //Guardo
                             $reservaEquipos = new CitasEquipo();
                             $reservaEquipos->fecha = $fechaCita;
                             //$reservaEquipos->equipo_id = $equipos_disponibles->equipo_id;
                             $reservaEquipos->equipo_id = $numerodeEquipo;
                             $reservaEquipos->linea_servicio_id = $laLineaServicio;
                         }
                     }
                     //Evaluar llave
                     if ($lallave == 0) {
                         if ($sihayDisponible == 0) {
                             $numerodeEquipo = $equipos_disponibles->equipo_id;
                             //$sihayDisponible = 1; EVALUAR
                         }
                     }
                 }
             } else {
                 $unEquipo = EquiposLineaServicio::model()->find("linea_servicio_id = {$laLineaServicio}");
                 //Es este :D
                 $reservaEquipos = new CitasEquipo();
                 $reservaEquipos->fecha = $fechaCita;
                 $reservaEquipos->equipo_id = $numerodeEquipo;
                 $reservaEquipos->linea_servicio_id = $laLineaServicio;
                 //Yii::app()->user->setFlash('error',"No debe de hacerlo aqui".$unEquipo->id);
             }
             if ($sihayDisponible == 1) {
                 $reservaEquipos = new CitasEquipo();
                 $reservaEquipos->fecha = $fechaCita;
                 $reservaEquipos->equipo_id = $numerodeEquipo;
                 $reservaEquipos->linea_servicio_id = $laLineaServicio;
                 //Yii::app()->user->setFlash('error',"Esta es una maravilla".$equipos_disponibles->id);
             }
         } else {
             $reservaEquipos = new CitasEquipo();
             $laInsidencia = 0;
             //Ojo con esto
         }
         if ($laInsidencia == 1) {
             Yii::app()->user->setFlash('error', "No hay equipos disponibles para esta cita");
             $this->redirect(array('citas/create&hora=1&idpaciente=' . $model->paciente_id . '&medico=' . $model->personal_id . '&fecha=' . $model->fecha_cita));
         } else {
             if ($model->update()) {
                 //Actualizar estado de Detalle de Contrato
                 if ($model->contrato_id != NULL) {
                     //Buscar Detalle
                     $detalleContrato = ContratoDetalle::model()->findAll("contrato_id = {$model->contrato_id} and estado = 'Activo'");
                     foreach ($detalleContrato as $detalle_contrato) {
                         if ($model->linea_servicio_id == $detalle_contrato->linea_servicio_id) {
                             $paraActualizar = ContratoDetalle::model()->findByPk($detalle_contrato->id);
                             $paraActualizar->estado = "Programada";
                             $paraActualizar->save();
                         }
                     }
                 }
                 //Terminar consulta de reserva de equipo
                 $reservaEquipos->hora_inicio = $model->hora_inicio;
                 $reservaEquipos->hora_fin = $model->hora_fin;
                 $reservaEquipos->hora_fin_mostrar = $model->hora_fin + 1;
                 $reservaEquipos->cita_id = $model->id;
                 $reservaEquipos->save();
                 //Envio de Correo
                 if ($model->correo == "Si") {
                     $this->actionEnvioCorreo($model->id);
                 }
                 $this->redirect(array('view', 'id' => $model->id));
             }
         }
     }
     $this->render('update', array('model' => $model));
 }
 public function validarHoraFin($attribute, $params)
 {
     $lafecha = Yii::app()->dateformatter->format("yyyy-MM-dd", $this->fecha_cita);
     $fechaCita = Citas::model()->findAll("fecha_cita = '{$lafecha}' and personal_id = '{$this->personal_id}' and estado != 'Cancelada'");
     if (count($fechaCita) > 0) {
         foreach ($fechaCita as $fecha_cita) {
             if ($this->hora_fin >= $fecha_cita->hora_inicio and $this->hora_inicio <= $fecha_cita->hora_fin) {
                 if ($this->paciente_id != $fecha_cita->paciente_id) {
                     $this->addError('hora_fin', "Ya hay paciente a esta Hora");
                 }
             }
         }
     }
     //Validar uso de equipo
     //$equiposDisponibles = Equipos::model()->findAll("linea_servicio_id = $this->linea_servicio_id and estado = 'Activo'");
     $equiposDisponibles = EquiposLineaServicio::model()->findAll("linea_servicio_id = {$this->linea_servicio_id}");
     if ($equiposDisponibles) {
         $agendaEquipos = CitasEquipo::model()->findAll("fecha = '{$lafecha}' and linea_servicio_id = {$this->linea_servicio_id}");
         if ($agendaEquipos) {
             //Verificar si hay mas de un equipo
             if (count($equiposDisponibles) > 1) {
                 $numero_reservas = count($equiposDisponibles);
                 $numero_reservas_comparar = 0;
                 foreach ($agendaEquipos as $agenda_equipos) {
                     if ($this->hora_fin >= $agenda_equipos->hora_inicio and $this->hora_inicio <= $agenda_equipos->hora_fin) {
                         $numero_reservas_comparar = $numero_reservas_comparar + 1;
                     }
                     if ($numero_reservas == $numero_reservas_comparar) {
                         $this->addError('hora_fin', "No hay equipo disponible a esta Hora");
                     }
                 }
             } else {
                 //Es solo un equipo
                 foreach ($agendaEquipos as $agenda_equipos) {
                     if ($this->hora_fin >= $agenda_equipos->hora_inicio and $this->hora_inicio <= $agenda_equipos->hora_fin and $this->id != $agenda_equipos->cita_id) {
                         $this->addError('hora_fin', "El equipo esta reservado a esta Hora");
                     }
                 }
             }
         }
     }
 }
<div class="row">
	<div class="span12 text-center">
		<a href="#cambio" role="button" data-toggle="modal" class="btn btn-warning"><i class="icon-plus-sign icon-white"></i> Cambiar estado de Equipo</a>
		<a href="#linea" role="button" data-toggle="modal" class="btn btn-success"> Vincular Linea de Servicio</a>
	</div>
</div>

<div class="row"><div class="span12"></div></div>

<?php 
//Verificar si hay observaciones
$nObservaciones = EquiposObservaciones::model()->count("equipo_id=" . $model->id);
$lasObservaciones = EquiposObservaciones::model()->findAll("equipo_id=" . $model->id);
$nLineaServicio = EquiposLineaServicio::model()->count("equipo_id=" . $model->id);
$lasLineasServicio = EquiposLineaServicio::model()->findAll("equipo_id=" . $model->id);
?>

<div class="row">
	<div class="span12">
		<?php 
if ($nObservaciones > 0) {
    ?>
			<h3 class="text-center">Historial de Observaciones</h3>		
	</div>
</div>

<div class="row">
	<div class="span2"></div>
	<div class="span8">
	<table class="table">