Ejemplo n.º 1
0
						<td><small><a href='index.php?r=citas/view&id=<?php 
        echo $las_citas->id;
        ?>
'>[Ver]</a></small></td>
					</tr>
				<?php 
    }
    ?>
					
				</table>
			</div>
		</div>

		<?php 
    //Buscar Historial de actualizaciones
    $historialActualizacion = CitasActualizacion::model()->findAll("cita_id = {$model->id}");
    if ($historialActualizacion) {
        ?>
				<div class="row">
				<div class="span12">
					<h3 class="text-center">Historial de Actualizaciones</h3>
					<table class="table table-striped">
						<tr>
							<th>Fecha</th>
							<th>Profesional</th>
							<th>Contrato</th>
							<th>Servicio</th>
							<th>Comentario</th>
							<th>Inicio</th>
							<th>Fin</th>
							<th>Comentario Actualizacion</th>
 /**
  * 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';
     //$model->setScenario('update');
     // 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->save();
         //$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->save()) {
                 //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));
 }