} $lahora = HorasServicio::model()->findByPK($model->hora_fin + 1); $this->widget('zii.widgets.CDetailView', array('data' => $model, 'attributes' => array(array('name' => 'Paciente', 'value' => $model->paciente->nombreCompleto, ''), array('name' => 'Edad', 'value' => $edadpaciente, ''), array('name' => 'Cedula', 'value' => $model->paciente->n_identificacion, ''), array('name' => 'Dirección', 'value' => $model->paciente->direccion, ''), array('name' => 'Celular', 'value' => $model->paciente->celular, ''), array('name' => 'Personal', 'value' => $model->personal->nombreCompleto, ''), 'contrato_id', array('name' => 'Linea de Servicio', 'value' => $model->lineaServicio->nombre, '')))); ?> </div> <div class="span5"> <?php $this->widget('zii.widgets.CDetailView', array('data' => $model, 'attributes' => array('estado', array('name' => 'Agendado por', 'value' => $model->usuario->nombreCompleto, ''), array('name' => 'Fecha de Cita', 'value' => $fecha_cita, ''), array('name' => 'Hora de Inicio', 'value' => $model->horaInicio->hora, ''), array('name' => 'Hora de Fin', 'value' => $lahora->hora, ''), 'correo', 'comentario', 'actualizacion'))); ?> </div> </div> <!-- Los Equipos --> <?php $elEquipo = CitasEquipo::model()->findByPK($model->id); if ($elEquipo) { ?> <div class="text-center"> <h5>Equipo que se usara en la cita: <span class="text-error"><?php echo $elEquipo->equipo->nombre . " - " . $elEquipo->equipo->numero; ?> </span></h5> </div> <?php } ?> <?php if ($model->confirmacion != null) { ?>
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"); } } } } } }
public function actionCancelar() { $elid = $_POST['Citas']['id']; $lacita = Citas::model()->find("id = {$elid} and estado !='Completada'"); if ($lacita) { $lacita->estado = "Cancelada"; $lacita->fecha_accion = date("Y-m-d H:i:s"); $lacita->motivo_cancelacion = $_POST['Citas']['motivo_cancelacion']; $lacita->usuario_estado_id = Yii::app()->user->usuarioId; if ($lacita->update()) { //Cancelar Reservación de Equipo $equipoReservado = CitasEquipo::model()->findByPk($elid); if ($equipoReservado) { $equipoReservado->delete(); } //Actualizar estado de Detalle de Contrato if ($lacita->contrato_id != NULL) { //Buscar Detalle $detalleContrato = ContratoDetalle::model()->find("contrato_id = {$lacita->contrato_id} and estado = 'Programada' and linea_servicio_id = {$lacita->linea_servicio_id}"); if ($detalleContrato) { $detalleContrato->estado = "Activo"; $detalleContrato->update(); } } Yii::app()->user->setFlash('error', "La cita se ha cancelado."); //Redireccionar $dataProvider = new CActiveDataProvider('Citas'); /*$this->render('calendario',array( 'dataProvider'=>$dataProvider, ));*/ if (isset($_GET['irCita'])) { $this->redirect(array('view', 'id' => $lacita->id)); } else { $this->redirect(array('calendario', 'idpersonal' => $lacita->personal->id_perfil, 'fecha' => $lacita->fecha_cita)); } } else { Yii::app()->user->setFlash('error', "No se ha podido cancelar la cita."); if (isset($_GET['irCita'])) { $this->redirect(array('view', 'id' => $lacita->id)); } else { $this->redirect(array('calendario', 'idpersonal' => $lacita->personal->id_perfil, 'fecha' => $lacita->fecha_cita)); } } } else { Yii::app()->user->setFlash('error', "No se ha podido cancelar la cita."); if (isset($_GET['irCita'])) { $this->redirect(array('view', 'id' => $lacita->id)); } else { $this->redirect(array('citas')); } } }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer $id the ID of the model to be loaded * @return CitasEquipo the loaded model * @throws CHttpException */ public function loadModel($id) { $model = CitasEquipo::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }