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">