/** * Displays a particular model. * @param integer $id the ID of the model to be displayed */ public function actionView($id) { $laCita = CitasReservadaDetalle::model()->find("cita_id = " . $id); if ($laCita) { $this->redirect(array('CitasReservada/view', 'id' => $laCita->cita_reservada_id)); } else { $this->render('view', array('model' => $this->loadModel($id))); } }
/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new CitasReservada(); // Uncomment the following line if AJAX validation is needed $this->performAjaxValidation($model); if (isset($_POST['CitasReservada'])) { $model->attributes = $_POST['CitasReservada']; //Proceder a crear y guardar cita //Solo 1 dia if ($_POST['opciones'] == "Horas") { //Verificar si hay cita entre el periodo $personal = $_POST['CitasReservada']['personal_id']; $fechainicio = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['CitasReservada']['fecha_inicio']); $horainicio = $_POST['CitasReservada']['hora_inicio']; $horafin = $_POST['CitasReservada']['hora_fin']; $citaVerifica = CitasReservada::model()->findAll("personal_id = {$personal} and estado = 'Activa' and fecha_inicio = '{$fechainicio}' and {$horainicio} >= hora_inicio and {$horafin} <= hora_fin"); $citaAgenda = Citas::model()->findAll("personal_id = {$personal} and estado = 'Programada' and fecha_cita = '{$fechainicio}' and ({$horainicio} >= hora_inicio and {$horafin} <= hora_fin)"); if (count($citaAgenda) > 0) { Yii::app()->user->setFlash('error', "Hay una cita a esa hora. Revise la agenda"); } else { if (count($citaVerifica) > 0) { Yii::app()->user->setFlash('error', "Ya hay un bloqueo a esa hora"); } else { $lacita = new Citas("otra"); $lacita->fecha_cita = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['CitasReservada']['fecha_inicio']); $lacita->hora_fin = $_POST['CitasReservada']['hora_fin']; $lacita->hora_fin_mostrar = $_POST['CitasReservada']['hora_fin']; $lacita->hora_inicio = $_POST['CitasReservada']['hora_inicio']; $lacita->linea_servicio_id = 26; $lacita->estado = "Reservado"; $lacita->correo = "No"; $lacita->comentario = $_POST['CitasReservada']['motivo']; $lacita->personal_id = $_POST['CitasReservada']['personal_id']; $lacita->fecha_creacion = date("Y-m-d"); $lacita->fecha_hora_creacion = date("Y-m-d H:i:s"); $lacita->usuario_id = Yii::app()->user->usuarioId; $lacita->paciente_id = 109; if ($lacita->save()) { $model->scenario = 'horas'; $model->personal_id = $lacita->personal_id; $model->cita_id = $lacita->id; $model->hora_inicio = $lacita->hora_inicio; $model->hora_fin = $lacita->hora_fin_mostrar; $model->fecha_inicio = $lacita->fecha_cita; $model->motivo = $_POST['CitasReservada']['motivo']; $model->observacion = $_POST['CitasReservada']['observacion']; $model->usuario_id = Yii::app()->user->usuarioId; $model->fecha_creado = date("Y-m-d H:i:s"); $model->estado = "Activa"; if ($model->save()) { $lacitadetalle = new CitasReservadaDetalle(); $lacitadetalle->cita_reservada_id = $model->id; $lacitadetalle->cita_id = $model->cita_id; $lacitadetalle->estado = 'Activa'; $lacitadetalle->save(); $this->redirect(array('view', 'id' => $model->id)); } } else { //Yii::app()->user->setFlash('error',"Noooooooooo lo hizo"); $this->render('create', array('model' => $model)); } } } } if ($_POST['opciones'] == "Dias") { //Verificar q no existan bloqueos $personal = $_POST['CitasReservada']['personal_id']; $fechainicio = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['CitasReservada']['fecha_inicio']); $fechafin = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['CitasReservada']['fecha_fin']); $horainicio = $_POST['CitasReservada']['hora_inicio']; $horafin = $_POST['CitasReservada']['hora_fin']; $citaAgenda = Citas::model()->findAll("personal_id = {$personal} and estado = 'Programada' and fecha_cita = '{$fechainicio}' and ('{$fechainicio}' >= fecha_cita)"); if (count($citaAgenda) > 0) { Yii::app()->user->setFlash('error', "Hay una cita programada entre el rango de fechas"); } else { $citaVerifica = CitasReservada::model()->findAll("personal_id = {$personal} and ('{$fechainicio}' >= fecha_inicio and '{$fechainicio}' <= fecha_fin) and estado = 'Activa'"); if (count($citaVerifica) > 0) { Yii::app()->user->setFlash('error', "Ya hay un bloqueo en ese rango de fechas"); } else { //Determinar el numero de dias $datetime1 = date_create($_POST['CitasReservada']['fecha_inicio']); $datetime2 = date_create($_POST['CitasReservada']['fecha_fin']); $interval = date_diff($datetime1, $datetime2); $ndias = $interval->format('%a') + 1; $model = new CitasReservada("dias"); $model->scenario = 'dias'; $model->personal_id = $_POST['CitasReservada']['personal_id']; $model->hora_inicio = 1; $model->hora_fin = 169; $model->fecha_inicio = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['CitasReservada']['fecha_inicio']); $model->fecha_fin = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['CitasReservada']['fecha_fin']); $model->motivo = $_POST['CitasReservada']['motivo']; $model->observacion = $_POST['CitasReservada']['observacion']; $model->usuario_id = Yii::app()->user->usuarioId; $model->fecha_creado = date("Y-m-d H:i:s"); $model->estado = "Activa"; if ($model->save()) { $lafecha = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['CitasReservada']['fecha_inicio']); for ($i = 0; $i < $ndias; $i++) { $lacita = new Citas("otra"); $lacita->fecha_cita = $lafecha; $lacita->hora_fin = 169; $lacita->hora_fin_mostrar = 169; $lacita->hora_inicio = 1; $lacita->linea_servicio_id = 26; $lacita->estado = "Reservado"; $lacita->correo = "No"; $lacita->comentario = $_POST['CitasReservada']['motivo']; $lacita->personal_id = $_POST['CitasReservada']['personal_id']; $lacita->fecha_creacion = date("Y-m-d"); $lacita->fecha_hora_creacion = date("Y-m-d H:i:s"); $lacita->usuario_id = Yii::app()->user->usuarioId; $lacita->paciente_id = 109; $lacita->save(); $lafecha = strtotime('+1 day', strtotime(date($lafecha))); $lafecha = date('Y-m-d', $lafecha); //Guarda en Citas Reservada Detalle $lacitadetalle = new CitasReservadaDetalle(); $lacitadetalle->cita_reservada_id = $model->id; $lacitadetalle->cita_id = $lacita->id; $lacitadetalle->estado = 'Activa'; $lacitadetalle->save(); } $this->redirect(array('view', 'id' => $model->id)); } } } } // if($model->save()) // $this->redirect(array('view','id'=>$model->id)); } $this->render('create', array('model' => $model)); }