/** * Constructor * @param {integer} $prueba Prueba ID * @param {integer} $jornada Jormada ID * @param {integer} $manga Manga ID * @throws Exception */ function __construct($prueba, $jornada) { parent::__construct('Portrait', "print_equiposByJornada", $prueba, $jornada); if ($prueba <= 0 || $jornada <= 0) { $this->errormsg = "print_teamsByJornada: either prueba or jornada data are invalid"; throw new Exception($this->errormsg); } // comprobamos que estamos en una jornada por equipos $flag = intval($this->jornada->Equipos3) + intval($this->jornada->Equipos4); if ($flag == 0) { $this->errormsg = "print_teamsByJornada: Jornada {$jornada} has no Team competition declared"; throw new Exception($this->errormsg); } // Datos de equipos de la jornada $m = new Equipos("print_teamsByJornada", $prueba, $jornada); $teams = $m->getTeamsByJornada(); // reindexamos por ID y anyadimos un campo extra "Perros" con los perros del equipo $this->equipos = array(); foreach ($teams as &$equipo) { $equipo['Perros'] = $m->getPerrosByTeam($equipo['ID']); $this->equipos[$equipo['ID']] = $equipo; } // Datos de los participantes (indexados por ID de perro) $m = new DBObject("print_teamsByJornada"); $r = $m->__select("*", "Resultados", "(Jornada={$jornada})", "", ""); $this->perros = array(); foreach ($r['rows'] as $item) { $this->perros[intval($item['Perro'])] = $item; } // finalmente internacionalizamos cabeceras $this->cellHeader = array(_('Dorsal'), _('Name'), _('Breed'), _('Lic'), _('Category'), _('Handler'), $this->strClub, _('Heat'), _('Comments')); }
public function getDevice() { $nodoObj = Nodes::select('Caption')->where('NodeId', '=', intval(Input::get('nodeId')))->first(); $deviceObj = Equipos::with('Fabricante')->with('Ubicacion')->with('Tipo')->where('name', '=', $nodoObj->Caption)->first(); $datos = json_encode($deviceObj->toArray()); return $datos; }
/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new EquiposObservaciones(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['EquiposObservaciones'])) { $idActivo = $_GET["idActivo"]; $elEstado = Equipos::model()->findByPk($idActivo); if ($elEstado->Estado == "Activo") { $nuevoEstado = "Inactivo"; } else { $nuevoEstado = "Activo"; } $model->attributes = $_POST['EquiposObservaciones']; $model->fecha = date("Y-m-d"); $model->equipo_id = $idActivo; $model->estado = $nuevoEstado; $model->personal_id = 1; if ($model->save()) { //Actualizar Activo $elEstado->Estado = $nuevoEstado; } $elEstado->save(); //$this->redirect(array('view','id'=>$model->id)); $this->redirect('index.php?r=equipos/view&id=' . $idActivo); } $this->render('create', array('model' => $model)); }
/** * Ejecutar la accion * * @param int $id_usuario id del usuario que realiza la accion * @throws \Exception usuario no encontrado * @return int 0 si completada con exito ; -1 en caso contrario */ public function ejecutar($id_accion) { // TODO $ret = 0; //COmpruebo si la accion existe $accGrup = AccionesGrupales::model()->findByPk($id_accion); if ($accGrup === null) { throw new Exception("Accion grupal inexistente.", 404); } $creador = $accGrup->usuarios; $equipo = $creador->equipos; $sigPartido = $equipo->sigPartido; //1.- Añadir bonificación al partido $ret = min($ret, Equipos::aumentar_recursos_equipo($equipo->id_equipo, "aforo_base", Efectos::$datos_acciones['FinanciarPelicula']['aforo_base'])); $ret = min($ret, Partidos::aumentar_factores($sigPartido->id_partido, $equipo->id_equipo, "nivel", Efectos::$datos_acciones['FinanciarPelicula']['nivel_equipo'])); //2.- Dar bonificación al creador $ret = min($ret, Recursos::aumentar_recursos($creador->id_usuario, "animo_gen", Efectos::$datos_acciones['FinanciarPelicula']['bonus_creador']['animo_gen'])); $ret = min($ret, Recursos::aumentar_recursos($creador->id_usuario, "dinero_gen", Efectos::$datos_acciones['FinanciarPelicula']['bonus_creador']['dinero_gen'])); //3.- Devolver influencias $participantes = $accGrup->participaciones; foreach ($participantes as $participacion) { $infAportadas = $participacion->influencias_aportadas; $usuario = $participacion->usuarios_id_usuario; //if (Recursos::aumentar_recursos($usuario,"influencias",$infAportadas) == 0) { if (Recursos::disminuir_influencias_bloqueadas($usuario, $infAportadas) == 0) { $ret = min($ret, 0); } else { $ret = -1; } } //4.- Finalizar funciónK return $ret; }
/** * Constructor * @param {integer} $prueba Prueba ID * @param {integer} $jornada Jormada ID * @param {integer} $manga Manga ID * @throws Exception */ function __construct($prueba, $jornada, $manga) { parent::__construct('Portrait', "print_ordenDeSalida", $prueba, $jornada); if ($prueba <= 0 || $jornada <= 0 || $manga <= 0) { $this->errormsg = "printOrdenDeSalida: either prueba/jornada/ manga/orden data are invalid"; throw new Exception($this->errormsg); } // Datos de la manga $m = new Mangas("printOrdenDeSalida", $jornada); $this->manga = $m->selectByID($manga); // Datos del orden de salida $o = new OrdenSalida("printOrdenDeSalida", $manga); $os = $o->getData(); $this->orden = $os['rows']; $this->categoria = "L"; $this->cellHeader = array(_('Order'), _('Dorsal'), _('Name'), _('Breed'), _('Lic'), _('Handler'), $this->strClub, _('Heat'), _('Comments')); // obtenemos los datos de equipos de la jornada indexados por el ID del equipo $eq = new Equipos("print_ordenDeSalida", $prueba, $jornada); $this->teams = array(); foreach ($eq->getTeamsByJornada() as $team) { $this->teams[$team['ID']] = $team; } }
/** * Muestra el timeline principal de la pagina * * Informacion a mostrar * - Equipo del usuario * - Enlace al proximo partido del jugador * - Enlace a crear una nueva habilidad grupal * - Acciones grupales activas del equipo del usuario * * @route jugadorNum12/usuarios/index * @return void */ public function actionIndex() { // 1) recogemos id de la sesion $idUsuario = Yii::app()->user->usIdent; $idEquipo = Yii::app()->user->usAfic; // 2) actualizar datos de usuario Usuarios::model()->actualizaDatos($idUsuario); // 3) obtenemos las acciones grupales del equipo del usuario $modeloEquipo = Equipos::model()->with('accionesGrupales'); $equipo = $modeloEquipo->findByPK($idEquipo); // 4) obtenemos el proximo partido Yii::import('application.components.Partido'); $equipoUsuario = Equipos::model()->findByPk($idEquipo); $proximoPartido = $equipoUsuario->sigPartido; $primerTurno = Partido::PRIMER_TURNO; $ultimoTurno = Partido::ULTIMO_TURNO; // *) renderizar la vista $this->render('index', array('equipo' => $equipo, 'proximoPartido' => $proximoPartido, 'primerTurno' => $primerTurno, 'ultimoTurno' => $ultimoTurno)); }
require_once __DIR__ . "/../tools.php"; require_once __DIR__ . "/../logging.php"; require_once __DIR__ . "/../auth/AuthManager.php"; require_once __DIR__ . "/classes/Equipos.php"; $prueba = http_request("Prueba", "i", 0); $jornada = http_request("Jornada", "i", 0); $operation = http_request("Operation", "s", null); $perro = http_request("Perro", "i", 0); $equipo = http_request("ID", "i", 0); // used on update/delete $f = http_request("From", "i", 0); $t = http_request("To", "i", 0); $w = http_request("Where", "i", 0); try { $result = null; $equipos = new Equipos("equiposFunctions", $prueba, $jornada); $am = new AuthManager("equiposFunctions"); if ($operation === null) { throw new Exception("Call to inscripcionFunctions without 'Operation' requested"); } switch ($operation) { case "insert": $am->access(PERMS_OPERATOR); $result = $equipos->insert(); break; // nuevo equipo // nuevo equipo case "update": $am->access(PERMS_OPERATOR); $result = $equipos->update($equipo); break;
<?php echo $form->dropDownList($model, 'restringido', array('SI' => 'SI', 'NO' => 'NO'), array('class' => 'input-small')); ?> <?php echo $form->error($model, 'restringido'); ?> </div> </div> <div class="span6"> <div class="row"> <?php echo $form->labelEx($model, 'equipo_id'); ?> <?php echo $form->dropDownList($model, 'equipo_id', CHtml::listData(Equipos::model()->findAll(), 'id', 'nombre'), array('class' => 'input-xlarge', 'empty' => '')); ?> <a href="index.php?r=equipos/create" class="btn btn-small btn-primary"><i class="icon-plus-sign icon-white"></i> Agregar</a> <?php echo $form->error($model, 'equipo_id'); ?> </div> </div> </div> <div class="row buttons"> <?php echo CHtml::submitButton($model->isNewRecord ? 'Crear' : 'Guardar', array('class' => 'btn btn-info')); ?> </div>
public function jugarse() { switch ($this->turno) { case self::PRIMER_TURNO: //Turno inicial (preparar partido) $this->inicializaEncuentro(); $this->generaCronicaBase(); $this->guardaEstado(); break; case self::TURNO_DESCANSO: $this->generaEstadoDescanso(); $this->generaCronicaDescanso(); $this->guardaEstado(); break; case $this->turno > self::PRIMER_TURNO && $this->turno < self::ULTIMO_TURNO && $this->turno != self::TURNO_DESCANSO: //Este apartado incluye el descanso del partido! //Turnos de partido $this->generar_estado(); $this->guardaEstado(); break; case self::ULTIMO_TURNO: //Turno para generar el estado y crónica finales $this->generar_estado(); $this->generaCronicaUltimoTurno(); /****/ $this->finalizaEncuentro(); /****/ $this->guardaEstado(); /****/ $this->actualizaSiguientePartido($this->id_local); $this->actualizaSiguientePartido($this->id_visitante); $this->rellenaSiguientePartido($this->id_local); $this->rellenaSiguientePartido($this->id_visitante); $this->eliminaGrupales($this->id_local); $this->eliminaGrupales($this->id_visitante); //Creamos una notificación de fin de partido $notificacion = new Notificaciones(); $notificacion->fecha = time(); $notificacion->mensaje = Equipos::model()->findByPk($this->id_local)->nombre . " " . $this->goles_local . " - " . $this->goles_visitante . " " . Equipos::model()->findByPk($this->id_visitante)->nombre; $notificacion->imagen = "images/iconos/notificaciones/partido_terminado.png"; $notificacion->save(); //Enviamos la notificación a los interesados $componentes = Usuarios::model()->findAllByAttributes(array('equipos_id_equipo' => $this->id_local)); foreach ($componentes as $componente) { $usrnotif = new Usrnotif(); $usrnotif->notificaciones_id_notificacion = $notificacion->id_notificacion; $usrnotif->usuarios_id_usuario = $componente->id_usuario; $usrnotif->save(); //Devuelvo la influencia a los participantes7 $componente->recursos->influencias_partido_bloqueadas = 0; $componente->recursos->save(); } $componentes = Usuarios::model()->findAllByAttributes(array('equipos_id_equipo' => $this->id_visitante)); foreach ($componentes as $componente) { $usrnotif = new Usrnotif(); $usrnotif->notificaciones_id_notificacion = $notificacion->id_notificacion; $usrnotif->usuarios_id_usuario = $componente->id_usuario; $usrnotif->save(); //Devuelvo la influencia a los participantes $componente->recursos->influencias_partido_bloqueadas = 0; $componente->recursos->save(); } /****/ break; /*case self::ULTIMO_TURNO: //Turno para permitir visualizar el fin de partido durante un tiempo extra //y cambiar los datos del siguiente partido $this->finalizaEncuentro(); $this->guardaEstado(); $this->actualizaSiguientePartido($this->id_local); $this->actualizaSiguientePartido($this->id_visitante); $this->rellenaSiguientePartido($this->id_local); $this->rellenaSiguientePartido($this->id_visitante); $this->eliminaGrupales($this->id_local); $this->eliminaGrupales($this->id_visitante); //Creamos una notificación de fin de partido $notificacion = new Notificaciones; $notificacion->fecha = time(); $notificacion->mensaje = Equipos::model()->findByPk($this->id_local)->nombre . "(local)" . " vs " . Equipos::model()->findByPk($this->id_visitante)->nombre . "(visitante)"; $notificacion->imagen = "images/iconos/notificaciones/partido_terminado.png"; $notificacion->save(); //Enviamos la notificación a los interesados $componentes = Usuarios::model()->findAllByAttributes(array('equipos_id_equipo'=>$this->id_local)); foreach ($componentes as $componente){ $usrnotif = new Usrnotif; $usrnotif->notificaciones_id_notificacion = $notificacion->id_notificacion; $usrnotif->usuarios_id_usuario = $componente->id_usuario; $usrnotif->save(); } $componentes = Usuarios::model()->findAllByAttributes(array('equipos_id_equipo'=>$this->id_visitante)); foreach ($componentes as $componente){ $usrnotif = new Usrnotif; $usrnotif->notificaciones_id_notificacion = $notificacion->id_notificacion; $usrnotif->usuarios_id_usuario = $componente->id_usuario; $usrnotif->save(); } break;*/ /*case self::ULTIMO_TURNO: //Turno para permitir visualizar el fin de partido durante un tiempo extra //y cambiar los datos del siguiente partido $this->finalizaEncuentro(); $this->guardaEstado(); $this->actualizaSiguientePartido($this->id_local); $this->actualizaSiguientePartido($this->id_visitante); $this->rellenaSiguientePartido($this->id_local); $this->rellenaSiguientePartido($this->id_visitante); $this->eliminaGrupales($this->id_local); $this->eliminaGrupales($this->id_visitante); //Creamos una notificación de fin de partido $notificacion = new Notificaciones; $notificacion->fecha = time(); $notificacion->mensaje = Equipos::model()->findByPk($this->id_local)->nombre . "(local)" . " vs " . Equipos::model()->findByPk($this->id_visitante)->nombre . "(visitante)"; $notificacion->imagen = "images/iconos/notificaciones/partido_terminado.png"; $notificacion->save(); //Enviamos la notificación a los interesados $componentes = Usuarios::model()->findAllByAttributes(array('equipos_id_equipo'=>$this->id_local)); foreach ($componentes as $componente){ $usrnotif = new Usrnotif; $usrnotif->notificaciones_id_notificacion = $notificacion->id_notificacion; $usrnotif->usuarios_id_usuario = $componente->id_usuario; $usrnotif->save(); } $componentes = Usuarios::model()->findAllByAttributes(array('equipos_id_equipo'=>$this->id_visitante)); foreach ($componentes as $componente){ $usrnotif = new Usrnotif; $usrnotif->notificaciones_id_notificacion = $notificacion->id_notificacion; $usrnotif->usuarios_id_usuario = $componente->id_usuario; $usrnotif->save(); } break;*/ default: // No debería llegar aquí echo "Jodimos algo"; } }
/** * Pagina de resultados de la jornada ordenados por grado/categoría/puesto * @param {array} $jornada datos de la jornada * @param {object} $insc objeto de tipo Inscripcion con las inscripciones de la prueba */ function createJornadaDataPage($jornada, $insc) { // create Excel sheet $jdatapage = $this->myWriter->addNewSheetAndMakeItCurrent(); $name = $this->normalizeSheetName("Data " . $jornada['Nombre']); $jdatapage->setName($name); // write table header $this->writeTableHeader(); $rondas = Jornadas::enumerateRondasByJornada($jornada['ID'])['rows']; // obtenemos los datos "personales" de los perros de la jornada $lista = $insc->inscritosByJornada($jornada['ID'], false)['rows']; $eq = new Equipos("excel_printInscripciones", $this->prueba['ID'], $jornada['ID']); $inscritos = array(); foreach ($lista as $perro) { // add team information $perro['Equipo'] = $eq->getTeamByPerro($perro['Perro'])['Nombre']; // reindexamos las inscripciones por el PerroID $inscritos[$perro['Perro']] = $perro; } // obtenemos todas las clasificaciones de la jornada $clas = new Clasificaciones("excel_Clasificaciones", $this->prueba['ID'], $jornada['ID']); $results = array(); foreach ($rondas as $ronda) { $mangas = array($ronda['Manga1'], $ronda['Manga2']); $clasifRonda = $clas->clasificacionFinal($ronda['Rondas'], $mangas, $ronda['Mode']); $results = array_merge($results, $clasifRonda['rows']); } // OK ya tenemos los datos de toda la jornada; ahora a ordenar por grado,categoría y puesto usort($results, function ($a, $b) { $res = strcmp($a['Grado'], $b['Grado']); if ($res != 0) { return $res; } $res = strcmp($a['Categoria'], $b['Categoria']); if ($res != 0) { return $res; } return $a['Puesto'] > $b['Puesto'] ? 1 : -1; }); // componemos la fila Excel anyiadiendo datos personales // // 'Dorsal', // 'Nombre','NombreLargo','Genero','Raza','Licencia','LOE_RRC','Categoria','Grado','NombreGuia','NombreClub','Pais', // datos del perro // 'Equipo','Celo','Observaciones', // datos de la inscripcion en la jornada // 'F1','R1','E1','N1','Tiempo1','Penal1', // datos de la manga 1 // 'F2','R2','E2','N2','Tiempo2','Penal2', // datos de la manga 2 // // TODO: handle series with more than 2 rounds // 'Tiempo','Penalizacion','Calificacion' foreach ($results as $perro) { $row = array(); // si el perro no esta en la lista de inscritos, marca error e ignora entrada if (!array_key_exists($perro['Perro'], $inscritos)) { $this->myLogger->error("Encontrada Clasificacion para perro no inscrito:" . $perro['Perro']); continue; } $pdata =& $inscritos[$perro['Perro']]; $pdata['Done'] = 1; // mark perro inscrito _and_ with clasification // datos personales $row[] = $perro['Dorsal']; $row[] = $pdata['Nombre']; $row[] = $pdata['NombreLargo']; $row[] = $pdata['Genero']; $row[] = $pdata['Raza']; $row[] = $pdata['Licencia']; $row[] = $pdata['LOE_RRC']; $row[] = $pdata['Categoria']; $row[] = $pdata['Grado']; $row[] = $pdata['NombreGuia']; $row[] = $pdata['NombreClub']; $row[] = $pdata['Pais']; // Datos de la inscripcion $row[] = $pdata['Equipo']; $row[] = $pdata['Celo']; $row[] = $pdata['Observaciones']; // resultados manga 1 $row[] = $perro['F1']; // Manga 1: faltas + tocados $row[] = $perro['R1']; // Manga 1: rehuses $row[] = $perro['E1']; // Manga 1: eliminado $row[] = $perro['N1']; // manga 1: no presentado $row[] = $perro['T1']; // manga 1: tiempo $row[] = $perro['P1']; // manga 1: penalizacion // resultados manga 2 $row[] = $perro['F2']; // Manga 2: faltas + tocados $row[] = $perro['R2']; // Manga 2: rehuses $row[] = $perro['E2']; // Manga 2: eliminado $row[] = $perro['N2']; // manga 2: no presentado $row[] = $perro['T2']; // manga 2: tiempo $row[] = $perro['P2']; // manga 2: penalizacion // datos globales de clasificacion $row[] = $perro['Tiempo']; $row[] = $perro['Penalizacion']; $row[] = $perro['Calificacion']; // !!finaly!! add perro to excel table $this->myWriter->addRow($row); } // por ultimo metemos las inscripciones que no tienen resultado asociado foreach ($inscritos as $pdata) { if (array_key_exists('Done', $pdata)) { continue; } // already done $row = array(); // datos personales $row[] = $pdata['Dorsal']; $row[] = $pdata['Nombre']; $row[] = $pdata['NombreLargo']; $row[] = $pdata['Genero']; $row[] = $pdata['Raza']; $row[] = $pdata['Licencia']; $row[] = $pdata['LOE_RRC']; $row[] = $pdata['Categoria']; $row[] = $pdata['Grado']; $row[] = $pdata['NombreGuia']; $row[] = $pdata['NombreClub']; $row[] = $pdata['Pais']; // add perro without results to excel table $this->myWriter->addRow($row); } }
/** * Devuelve el modelo de datos basado en la clave primaria dada por la variable GET * * > Funcion predeterminada de Yii * * @param int $id id del modelo que se va a cargar * @throws \CHttpException El modelo de datos no se encuentra * @return \AccionesGrupales modelo de datos */ public function loadModel($id) { $model = Equipos::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
/** Funcion auxiliar que modifica la tabla de equipos * * @paremetro equipo al que modificamos sus recursos * @parametro columna sobre la que modificamos (dinero, dinero_gen, ...) * @parametro cantidad de recursos que aumentamos * @devuelve flag de error * @ejemplo Recursos::aumentar_recursos(3, "animo", 30); */ public static function aumentar_recursos_equipo($id_equipo, $columna, $cantidad) { /* ROBER */ /*Recupero el usuario del que voy a aumentar los recursos*/ $equipo = Equipos::model()->findByPK($id_equipo); //Comprobación de seguridad if ($equipo === null) { throw new CHttpException(404, "Equipo no encontrado. (aumentar_recursos_equipo,Helper.php)"); } /*Cojo la columna a modificar del modelo, para modificarla despues*/ $actuales = $equipo->{$columna}; $valor_nuevo = $actuales + $cantidad; /*Debo comprobar que no esta o sobrepasa en su máximo el atributo*/ /*En el caso del animo*/ if ($columna === 'aforo_base' && $valor_nuevo >= $equipo->aforo_max) { $equipo->{$columna} = $equipo->aforo_max; } else { $equipo->{$columna} = $valor_nuevo; } /*Si save() no lanza error entonces se realizo correctamente la actualizacion sino devuelves error*/ if ($equipo->save()) { return 0; } else { return -1; } }
/** * * renderiza el estado completo de un partido * * - marcador * - tiempo * - crónica * * @param int $id_partido id del partido * * @route jugadorNum12/partidos/actPartido/{$id_partido} * @return void */ public function actionActPartido($id_partido) { // FIXME: ¿misma logica que actionAsistir? // Obtener el equipo del usuario $equipoUsuario = Equipos::model()->findByPk(Yii::app()->user->usAfic); // Obtener la informacion restante necesaria $partido = Partidos::model()->findByPk($id_partido); $equipoLocal = Equipos::model()->findByPk($partido->equipos_id_equipo_1); $equipoVisitante = Equipos::model()->findByPk($partido->equipos_id_equipo_2); //Comprobación de datos if ($partido === null || $equipoUsuario === null || $equipoLocal === null || $equipoVisitante === null) { Yii::app()->user->setFlash('datos', 'Datos suministrados incorrectos - partido/equipo/local/visitante -. (actionActPartido).'); } // Un usuario no puede asisitir a un partido en el que su equipo no participa if ($partido->equipos_id_equipo_1 != $equipoUsuario->id_equipo && $partido->equipos_id_equipo_2 != $equipoUsuario->id_equipo) { Yii::app()->user->setFlash('partido', 'No puedes acceder a un partido en el que no participe tu equipo. (actionActPartido).'); //throw new Exception("No puedes acceder a un partido en el que no participe tu equipo. (actionActPartido)", 401); } else { if ($equipoUsuario->partidos_id_partido != $id_partido) { Yii::app()->user->setFlash('partido', 'Este no es el próximo partido de tu equipo. (actionActPartido).'); //throw new Exception("Este no es el próximo partido de tu equipo. (actionActPartido)", 401); } else { //pasar los datos del partido y los equipos $data = array('golesLocal' => (int) $partido->goles_local, 'golesVisit' => (int) $partido->goles_visitante, 'turno' => (int) $partido->turno, 'estado' => (int) $partido->estado, 'tiempo' => (int) $partido->tiempoRestantePartido(), 'tiempoTurno' => (int) $partido->tiempoRestanteTurno(), 'cronica' => (string) $partido->cronica, 'ambiente' => (int) $partido->ambiente, 'nivel_local' => (int) $partido->nivel_local, 'nivel_visitante' => (int) $partido->nivel_visitante, 'ofensivo_local' => (int) $partido->ofensivo_local, 'ofensivo_visitante' => (int) $partido->ofensivo_visitante, 'defensivo_local' => (int) $partido->defensivo_local, 'defensivo_visitante' => (int) $partido->defensivo_visitante, 'aforo_local' => (int) $partido->aforo_local, 'aforo_visitante' => (int) $partido->aforo_visitante, 'moral_local' => (int) $partido->moral_local, 'moral_visitante' => (int) $partido->moral_visitante); echo CJavaScript::jsonEncode($data); Yii::app()->end(); } } }
/** * Añade un nuevo partido entre los equipos indicados en la fecha indicada. * * >ADVERTENCIA: * Los datos (dif_niveles, indOfens, ...) puden cambiar hasta que empiece el partido, * aqui se rellenan (porque se me ha pedido explicitamente), * pero deberían actualizarse en el primer turno de partido. * * >ATENCION los partidos empiezan con sigpartido -> id = 0 !!!! * * @param int $id_local id del equipo local * @param int $id_visitande id del equipo visitante * @param int $time hora del partido * @param int $jornada jornada de la liga * @param bool $generateNewTransaction generar nueva transaccion * * @throws \Exception Los viajes en el tiempo no esta implemetados en esta version del juego. * @throws \Exception excepcion interna * @return void */ public function generaPartido($id_local, $id_visitande, $time, $jornada = 0, $generateNewTransaction = true) { if ($time < time()) { throw new Exception("Los viajes en el tiempo no esta implemetados en esta version del juego."); } if ($generateNewTransaction) { $transaction = Yii::app()->db->beginTransaction(); } $equipo_local = Equipos::model()->findByPk($id_local); $equipo_visitante = Equipos::model()->findByPk($id_visitande); if ($equipo_local === null || $equipo_visitante === null) { return; } try { $partido = new Partidos(); $partido->setAttributes(array('equipos_id_equipo_1' => $id_local, 'equipos_id_equipo_2' => $id_visitande, 'hora' => $time, 'jornada' => $jornada, 'nivel_local' => $equipo_local->nivel_equipo, 'nivel_visitante' => $equipo_visitante->nivel_equipo, 'dif_niveles' => $equipo_local->nivel_equipo - $equipo_visitante->nivel_equipo, 'aforo_local' => $equipo_local->aforo_base, 'aforo_visitante' => $equipo_visitante->aforo_base, 'ofensivo_local' => $equipo_local->factor_ofensivo, 'ofensivo_visitante' => $equipo_visitante->factor_ofensivo, 'defensivo_local' => $equipo_local->factor_defensivo, 'defensivo_visitante' => $equipo_visitante->factor_defensivo)); $partido->save(); if ($equipo_local->partidos_id_partido == 0 || $time < $equipo_local->sigPartido->hora) { $equipo_local->setAttributes(array('partidos_id_partido' => $partido->id_partido)); $equipo_local->save(); } if ($equipo_visitante->partidos_id_partido == 0 || $time < $equipo_visitante->sigPartido->hora) { $equipo_visitante->setAttributes(array('partidos_id_partido' => $partido->id_partido)); $equipo_visitante->save(); } if ($generateNewTransaction) { $transaction->commit(); } } catch (Exception $ex) { if ($generateNewTransaction) { $transaction->rollback(); } throw $ex; } }
/** * Ejecuta la accion de partido pulsada. Este método será llamado por Ajax durante el partido, * de modo que lo único que hará será devolver los datos de éxito o fallo para informar al * usuario. * * Cualquier habilidad resta los recursos iniciales al jugador, además, * * - Por ser una habilidad de partido se ejecuta al momento * * > El id del jugador y la aficion a la que pertence se recogen de la variable de sesion * * - CODIGOS DEVUELTOS - * * 0 -> Habilidad no encontrada * 1 -> Habilidad no desbloqueada * 2 -> Habilidad en cooldown * 3 -> Recursos insuficientes * 4 -> Error de equipo * 5 -> Error de partido, puede ser que no esté en juego o que no sea el siguiente del equipo * 6 -> La acción no es de partido * 7 -> Acción ejecutada con éxito * 8 -> Error general * * @param int $id_accion id de la habilidad que se ejecuta * * @return void */ public function actionUsarPartido($id_accion) { // Actualizar recursos de usuario Recursos::model()->actualizaRecursos(Yii::app()->user->usIdent); //Comenzar transaccion $trans = Yii::app()->db->beginTransaction(); try { // Importar elementos necesarios Yii::import('application.components.Acciones.*'); Yii::import('application.components.Partido'); //Cojo el id_usuario $id_usuario = Yii::app()->user->usIdent; //Obtener modelo de Habilidades $habilidad = Habilidades::model()->findByPk($id_accion); //Habilidad no encontrada if ($habilidad === null) { $trans->rollback(); // Devolver error de acción no encontrada $data = array('ok' => false, 'error' => 'Habilidad incorrecta'); echo CJavaScript::jsonEncode($data); Yii::app()->end(); } //Habilidad encontrada //Obtener modelo de Desbloqueadas $desbloqueada = Desbloqueadas::model()->findByAttributes(array('usuarios_id_usuario' => $id_usuario, 'habilidades_id_habilidad' => $id_accion)); //Si no esta desbloqueada para el usuario, error if ($desbloqueada === null) { $trans->rollback(); // Devolver error de habilidad no desbloqueada $data = array('ok' => false, 'error' => 'Acción no desbloqueada'); echo CJavaScript::jsonEncode($data); Yii::app()->end(); } //Si esta desbloqueada //Comprovar que no esta en cooldown if ($desbloqueada['fin_del_cooldown'] > ($now = time())) { $trans->rollback(); // Devolver error de cooldown $data = array('ok' => false, 'error' => 'Habilidad en cooldown', 'cooldownEnd' => $desbloqueada['fin_del_cooldown']); echo CJavaScript::jsonEncode($data); Yii::app()->end(); } else { //se actualiza el cooldown $desbloqueada['fin_del_cooldown'] = $now + $habilidad['cooldown_fin']; $desbloqueada->save(); } //Si esta disponible //Obtener modelo de Recursos $res = Recursos::model()->findByAttributes(array('usuarios_id_usuario' => $id_usuario)); //Si no son suficientes recursos cancelar transaccion y notificar al usuario if ($res['dinero'] < $habilidad['dinero'] || $res['animo'] < $habilidad['animo'] || $res['influencias'] < $habilidad['influencias']) { $trans->rollback(); // Devolver error de recursos insuficientes $data = array('ok' => false, 'error' => 'Recursos insuficientes'); echo CJavaScript::jsonEncode($data); Yii::app()->end(); } $usuario = Usuarios::model()->findByPk($id_usuario); //Si tenemos suficientes recursos comprobamos el tipo de acción if ($habilidad['tipo'] == Habilidades::TIPO_PARTIDO) { //Sacar id de equipo y partido para poder ejecutar la accion $id_equipo = Yii::app()->user->usAfic; $equipo = Equipos::model()->findByAttributes(array('id_equipo' => $id_equipo)); if ($equipo === null) { $trans->rollback(); // Devolver error de equipo incorrecto $data = array('ok' => false, 'error' => 'Equipo incorrecto'); echo CJavaScript::jsonEncode($data); Yii::app()->end(); } $siguientepartido = $equipo->sigPartido; $id_partido = $siguientepartido->id_partido; // Comprobar si el partido está en juego if ($siguientepartido->turno <= Partido::PRIMER_TURNO || $siguientepartido->turno > Partido::ULTIMO_TURNO) { $trans->rollback(); // Devolver error de partido incorrecto $data = array('ok' => false, 'error' => 'Partido incorrecto'); echo CJavaScript::jsonEncode($data); Yii::app()->end(); } // Todo correcto, ejecutar acción de partido AccionesTurno::usarPartido($id_usuario, $id_equipo, $id_partido, $habilidad, $res); // EXP: sumar experencia al usuario $usuario->sumarExp(Usuarios::MEDIA_EXP); } else { // Tipo inválido $trans->rollback(); // Devolver error de tipo inválido $data = array('ok' => false, 'error' => 'Acción incorrecta'); echo CJavaScript::jsonEncode($data); Yii::app()->end(); } // Finalizar transacción $trans->commit(); // Todo correcto $data = array('ok' => true, 'message' => 'Acción ejecutada correctamente', 'cooldownEnd' => $desbloqueada['fin_del_cooldown']); echo CJavaScript::jsonEncode($data); Yii::app()->end(); } catch (Exception $e) { $trans->rollback(); // Devolver error general $data = array('ok' => false, 'error' => 'Error al ejecutar la acción '); echo CJavaScript::jsonEncode($data); Yii::app()->end(); } }
/* @var $model Equipos */ $this->menu = array(array('label' => 'Listar Equipos', 'url' => array('index')), array('label' => 'Crear Equipo', 'visible' => Yii::app()->user->perfil != 1, 'url' => array('create'))); Yii::app()->clientScript->registerScript('search', "\n\$('.search-button').click(function(){\n\t\$('.search-form').toggle();\n\treturn false;\n});\n\$('.search-form form').submit(function(){\n\t\$('#equipos-grid').yiiGridView('update', {\n\t\tdata: \$(this).serialize()\n\t});\n\treturn false;\n});\n"); ?> <h1>Equipos - <a href="#exportar" class="btn btn-warning" role="button" data-toggle="modal"><i class="icon-share-alt icon-white"></i> Exportar</a></h1> <div class="search-form" style="display:none"> <?php $this->renderPartial('_search', array('model' => $model)); ?> </div><!-- search-form --> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'equipos-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'columns' => array(array('header' => 'ID.', 'name' => 'id', 'value' => '$data->id', 'htmlOptions' => array('width' => '20')), array('header' => 'Nombre', 'name' => 'nombre', 'filter' => CHtml::listData(Equipos::model()->findAll(array('order' => 'nombre ASC')), 'nombre', 'nombre'), 'value' => '$data[\'nombre\']', 'htmlOptions' => array('width' => '250')), 'numero', array('name' => 'Estado', 'filter' => array('Activo' => 'Activo', 'Inactivo' => 'Inactivo'), 'value' => '$data->Estado', 'htmlOptions' => array('width' => '150')), array('class' => 'CButtonColumn', 'template' => '{view}')))); ?> <div id="exportar" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 id="myModalLabel">Exportar a un archivo de Excel </h3> </div> <div class="modal-body"> <p>Seleccione las opciones de Exportar</p> <form id="frmExportar" name="frmExportar" action="index.php?r=equipos/exportar&tipo=<?php $elTipo; ?> " method = "post"> <div class="span5"> <label>Filtro:</label>
/** * Evalua el resultado de una competicion por equipos * @param {array} $r1 datos de la manga 1 * @param {array} $r2 datos de la manga 2 */ function evalFinalEquipos($r1, $r2, $mindogs, $mode) { // Datos de equipos de la jornada $eobj = new Equipos("evalFinalEquipos", $this->prueba->ID, $this->jornada->ID); $tbj = $eobj->getTeamsByJornada(); // reindexamos equipos por ID y aniadimos campos para evaluar clasificacion $teams = array(); foreach ($tbj as $equipo) { if ($equipo['Nombre'] === "-- Sin asignar --") { continue; } // comprobamos la categoria. si no coincide tiramos el equipo $modes = array("L", "M", "S", "MS", "LMS", "T", "LM", "ST", "LMST"); if (!category_match($equipo['Categorias'], $modes[$mode])) { continue; } $r = array_merge($equipo, array('C1' => 0, 'C2' => 0, 'T1' => 0, 'T2' => 0, 'P1' => 0, 'P2' => 0, 'Tiempo' => 0, 'Penalizacion' => 0)); $teams[$equipo['ID']] = $r; } // procesamos manga 1. Se asume que los resultados ya vienen ordenados por puesto, // de manera que se contabilizan solo los mindogs primeros perros de cada equipo if ($r1 != null) { foreach ($r1['rows'] as $resultado) { $eq = $resultado['Equipo']; if (!array_key_exists($eq, $teams)) { $this->myLogger->notice("evalFinalEquipos(): Prueba:{$this->prueba->ID} Jornada:{$this->jornada->ID} Manga:1 Equipo:{$eq} no existe"); continue; } if ($teams[$eq]['C1'] >= $mindogs) { continue; } $teams[$eq]['C1']++; $teams[$eq]['T1'] += $resultado['Tiempo']; $teams[$eq]['P1'] += $resultado['Penalizacion']; $teams[$eq]['Tiempo'] += $resultado['Tiempo']; $teams[$eq]['Penalizacion'] += $resultado['Penalizacion']; } } // procesamos manga 2 if ($r2 != null) { foreach ($r2['rows'] as $resultado) { $eq = $resultado['Equipo']; if (!array_key_exists($eq, $teams)) { $this->myLogger->notice("evalFinalEquipos(): Prueba:{$this->prueba->ID} Jornada:{$this->jornada->ID} Manga:2 Equipo:{$eq} no existe"); continue; } if ($teams[$eq]['C2'] >= $mindogs) { continue; } $teams[$eq]['C2']++; $teams[$eq]['T2'] += $resultado['Tiempo']; $teams[$eq]['P2'] += $resultado['Penalizacion']; $teams[$eq]['Tiempo'] += $resultado['Tiempo']; $teams[$eq]['Penalizacion'] += $resultado['Penalizacion']; } } // rellenamos huecos hasta completar mindogs foreach ($teams as &$team) { // 100:Eliminado 200:NoPresentado 400:Pendiente for ($n = $team['C1']; $n < $mindogs; $n++) { $team['P1'] += 400; $team['Penalizacion'] += 400; } for ($n = $team['C2']; $n < $mindogs; $n++) { $team['P2'] += 400; $team['Penalizacion'] += 400; } } // eliminamos el indice del array $final = array_values($teams); // re-ordenamos los datos en base a la puntuacion usort($final, function ($a, $b) { if ($a['Penalizacion'] == $b['Penalizacion']) { return $a['Tiempo'] > $b['Tiempo'] ? 1 : -1; } return $a['Penalizacion'] > $b['Penalizacion'] ? 1 : -1; }); // retornamos resultado return $final; }
/** * Muestra el segundo formulario para registrarse en la pagina * * Registro - Paso 2 * * - Eleccion del equipo * * > Si hay datos en $_POST procesa el formulario y almacena el nuevo usuario en la tabla <usuarios> * * @param int $id_usuario id del usuario que esta completando el registro * * @route jugadorNum12/registro/equipo/{$id_usuario} * @redirect jugadorNum12/registro/personaje/{$id_usuario} * * @throws \Exception Fallo al actualizar el usuario en la BD * @return void */ public function actionEquipo($id_usuario) { $modelo = Usuarios::model()->findByPk($id_usuario); $modelo->scenario = 'update'; $error = false; $equip = Equipos::model()->findAll(); foreach ($equip as $equipo) { $equipos[$equipo['id_equipo']] = $equipo['nombre']; } $seleccionado = 0; $transaction = Yii::app()->db->beginTransaction(); try { if (isset($_POST['ocup'])) { $seleccionado = $_POST['ocup']; $modelo->setAttributes(array('equipos_id_equipo' => $seleccionado)); if ($modelo->save()) { $transaction->commit(); $this->redirect(array('registro/personaje', 'id_usuario' => $modelo->id_usuario)); } else { $error = true; } } else { $error = true; } } catch (Exception $e) { $transaction->rollback(); } $this->render('equipo', array('error' => $error, 'equipos' => $equipos, 'seleccionado' => $seleccionado)); }
public function generateGraphs() { $serviceid = Input::get('serviceid'); $conn = DB::connection('mysql'); $select = "select on_device as idhost from glpi_networking_ports where name like '%{$serviceid}%'"; $result = $conn->select($select); if (isset($result[0]->idhost)) { $idhost = $result[0]->idhost; } if (isset($idhost)) { $equipo = Equipos::find($idhost); $filetemp = "/usr/local/scripts/cactigraphs/log/log_{$serviceid}_{$idhost}.txt"; // $commando = "perl /usr/local/scripts/cactigraphs/create_graphs.pl {$equipo->ifaddr} {$serviceid} > {$filetemp} 2>&1"; $commando = "perl /usr/local/scripts/cactigraphs/create_graphs.pl {$equipo->ifaddr} {$serviceid}"; // $result = $commando; // $result = system($commando); $result = system($commando); //$result = `cat $filetemp`; } else { $result = "Este servicio no tiene Host relacionado"; } return $result; }
/* @var $this CitasEquipoController */ /* @var $model CitasEquipo */ $this->menu = array(); Yii::app()->clientScript->registerScript('search', "\n\$('.search-button').click(function(){\n\t\$('.search-form').toggle();\n\treturn false;\n});\n\$('.search-form form').submit(function(){\n\t\$('#citas-equipo-grid').yiiGridView('update', {\n\t\tdata: \$(this).serialize()\n\t});\n\treturn false;\n});\n"); ?> <h1>Agenda de Equipos</h1> <div class="search-form" style="display:none"> <?php $this->renderPartial('_search', array('model' => $model)); ?> </div><!-- search-form --> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'citas-equipo-grid', 'dataProvider' => $model->search(), 'afterAjaxUpdate' => 'reinstallDatePicker', 'filter' => $model, 'columns' => array(array('header' => 'Cita', 'name' => 'cita_id', 'value' => '$data->cita_id', 'htmlOptions' => array('width' => '50')), array('header' => 'Fecha', 'name' => 'fecha', 'filter' => $this->widget('zii.widgets.jui.CJuiDatePicker', array('language' => 'es', 'model' => $model, 'attribute' => 'fecha', 'options' => array('showAnim' => 'fold', 'language' => 'es', 'dateFormat' => 'dd-mm-yy', 'changeMonth' => true, 'changeYear' => true, 'yearRange' => '2014:2025'), 'htmlOptions' => array('id' => 'datepicker_for_fecha_cita', 'style' => 'height:20px;width:80px;'), 'defaultOptions' => array('showOn' => 'focus', 'showOtherMonths' => true, 'selectOtherMonths' => true, 'changeMonth' => true, 'changeYear' => true, 'showButtonPanel' => true)), true), 'value' => 'Yii::app()->dateformatter->format("dd-MM-yyyy",$data[\'fecha\']);', 'htmlOptions' => array('width' => '80')), array('name' => 'hora_inicio', 'filter' => CHtml::listData(HorasServicio::model()->findAll(), 'id', 'hora'), 'value' => '$data[\'horaInicio\'][\'hora\']', 'htmlOptions' => array('width' => '85')), array('name' => 'hora_fin_mostrar', 'filter' => CHtml::listData(HorasServicio::model()->findAll(), 'id', 'hora'), 'value' => '$data[\'horaFinMostrar\'][\'hora\']', 'htmlOptions' => array('width' => '85')), array('name' => 'equipo_id', 'filter' => CHtml::listData(Equipos::model()->findAll(array('order' => 'nombre ASC')), 'id', 'nombre'), 'value' => '$data[\'equipo\'][\'nombre\']', 'htmlOptions' => array('width' => '210')), 'equipo.numero', array('name' => 'linea_servicio_id', 'filter' => CHtml::listData(LineaServicio::model()->findAll(array('order' => 'nombre ASC')), 'id', 'nombre'), 'value' => '$data[\'lineaServicio\'][\'nombre\']', 'htmlOptions' => array('width' => '210')), array('name' => 'nombre_paciente', 'filter' => CHtml::listData(Paciente::model()->findAll(array('order' => 'nombre ASC')), 'id', 'nombreCompleto'), 'value' => '$data->cita->paciente->nombreCompleto', 'htmlOptions' => array('width' => '210')), array('name' => 'nombre_asistente', 'filter' => CHtml::listData(Personal::model()->findAll(array('order' => 'nombres ASC')), 'id', 'nombreCompleto'), 'value' => '$data->cita->personal->nombreCompleto', 'htmlOptions' => array('width' => '210')), array('class' => 'CButtonColumn', 'template' => '{view}')))); Yii::app()->clientScript->registerScript('re-install-date-picker', "\nfunction reinstallDatePicker(id, data) {\n //use the same parameters that you had set in your widget else the datepicker will be refreshed by default\n \$('#datepicker_for_fecha_cita').datepicker(jQuery.extend({showMonthAfterYear:false},jQuery.datepicker.regional['es'],{'dateFormat':'dd-mm-yy'}));\n}\n"); ?> <script> $(document).ready(function() { $('body').on('dblclick', '#citas-equipo-grid tbody tr', function(event) { var rowNum = $(this).index(), keys = $('#citas-equipo-grid > div.keys > span'), rowId = keys.eq(rowNum).text(); location.href = '<?php echo Yii::app()->createUrl('citasEquipo/view');
<?php require_once "Equipos.class.php"; $e = new Equipos(); $e->crear(array("id" => 1, "so" => 1, "version" => '1', "imei" => '21423123123', "serial" => '123123123', "centro" => 11, "est" => 11)); //Consulta multiple. $expresion = "WHERE `id`='" . $id . "'"; $db = new MySQL(); $sql = "SELECT * FROM `equipos` " . $expresion . ";"; $consulta = $db->sql_query($sql); while ($fila = $db->sql_fetchrow($consulta)) { //Cada ves que se repita el ciclo obtendre una nueva fila print_r($fila); } $db->sql_close(); //Retorna un vector que contiene vectores y cada vector contenido corresponde a un afila de los resultados. function obtenerTerceros($centro) { $db = new MySQL(); $sql = "SELECT * FROM `rondas`.`personal` WHERE `centro`='" . $centro . "';"; $consulta = $db->sql_query($sql); while ($row = $db->sql_fetchrow($consulta)) { array_push($rows, $row); } $db->sql_close(); return $rows; } print_r(obtenerTerceros("????")); //si es una funcion sola //si esta en una clase seria print_r($clase->obtenerTerceros("????"));
/** * Gestion de resultados en Equipos3/Equipos4 * Agrupa los resultados por equipos y genera una lista de equipos ordenados por resultados * @param {array} resultados de la manga ordenados por participante * @param {int} prueba PruebaID * @param {int} jornada JornadaID * @param {int} $mindogs minimun number of dogs on a team * @return {array} datos de equipos de la manga ordenados por resultados de equipo */ static function getTeamResults($resultados, $prueba, $jornada, $mindogs = 4) { // Datos de equipos de la jornada. obtenemos prueba y jornada del primer elemento del array $m = new Equipos("getTeamResults", $prueba, $jornada); $teams = $m->getTeamsByJornada(); // reindexamos por ID y anyadimos un campos extra Tiempo, penalizacion y el array de resultados del equipo $equipos = array(); foreach ($teams as &$equipo) { $equipo['Resultados'] = array(); $equipo['Tiempo'] = 0.0; $equipo['Penalizacion'] = 0.0; $equipos[$equipo['ID']] = $equipo; } // now fill team members array. // notice that $resultados is already sorted by results foreach ($resultados as &$result) { $teamid = $result['Equipo']; $equipo =& $equipos[$teamid]; array_push($equipo['Resultados'], $result); // suma el tiempo y penalizaciones de los tres/cuatro primeros if (count($equipo['Resultados']) <= $mindogs) { $equipo['Tiempo'] += floatval($result['Tiempo']); $equipo['Penalizacion'] += floatval($result['Penalizacion']); } } // rastrea los equipos con menos de $mindogs participantes y marca los que faltan // no presentados $teams = array(); foreach ($equipos as &$equipo) { switch (count($equipo['Resultados'])) { case 0: continue; // ignore team break; case 1: $equipo['Penalizacion'] += 400.0; // required team member undeclared // no break // required team member undeclared // no break case 2: if ($mindogs == 3) { $equipo['Penalizacion'] += 400.0; } // required team member undeclared // no break; // required team member undeclared // no break; case 3: if ($mindogs == 4) { $equipo['Penalizacion'] += 400.0; } // required team member undeclared // no break; // required team member undeclared // no break; case 4: array_push($teams, $equipo); // add team to result to remove unused/empty teams break; default: $myLogger = new Logger("Resultados::getTreamResults()"); $myLogger->error("Equipo {$equipo['ID']} : '{$equipo['Nombre']}' con exceso de participantes:" . count($equipo['Resultados'])); break; } } // finally sort equipos by result instead of id usort($teams, function ($a, $b) { if ($a['Penalizacion'] == $b['Penalizacion']) { return $a['Tiempo'] > $b['Tiempo'] ? 1 : -1; } return $a['Penalizacion'] > $b['Penalizacion'] ? 1 : -1; }); return $teams; }
public function ActivarEquipo() { $activado = Input::get('activar'); $query = Input::get('queryAc'); $id = Input::get('idAc'); if (isset($activado)) { $existedevice = $this->ValidarDevice(Input::get('nameAc')); $existeip = $this->ValidarIp(Input::get('ipAc')); $mensaje = $existeip ? "La Ip se encuentra asignada a un equipo activo" : ""; $mensaje = $existedevice ? "El nombre de equipo ya existe en un equipo activo" : ""; if ($mensaje == "") { $activar = Equipos::where('ID', '=', $id)->update(array('deleted' => 0)); $mensaje = $activar != 0 ? "Equipo Activado con Éxito" : "Error Activando el Equipo"; } } else { $mensaje = "Error Activando el Equipo"; } Session::flash('query', $query); Session::flash('mensaje', $mensaje); Session::flash('visible2', "true estoy"); return Redirect::route('listaequipos'); }
/** * Comprueba y actualiza las referencias de una inscripcion en una jornada * @param {object} $inscripcion Datos de la inscripcion * @param {object} $jornada Datos de la jornada * @param {object} $perro Datos del perro */ function inscribePerroEnJornada($inscripcion, $jornada, $perro) { $myConfig = Config::getInstance(); $myLogger = new Logger("inscribePerroEnJornada", $myConfig->getEnv("debug_level")); $j = $jornada['ID']; $p = $jornada['Prueba']; $idperro = $inscripcion['Perro']; $g = $perro['Grado']; // buscamos la lista de mangas de esta jornada $mobj = new Mangas("inscribePerroEnJornada", $jornada['ID']); $mangas = $mobj->selectByJornada(); if (!$mangas) { throw new Exception("No hay mangas definidas para la jornada {$j} de la prueba {$p}"); } foreach ($mangas['rows'] as $manga) { $mid = $manga['ID']; $mtype = $manga['Tipo']; $mgrado = $manga['Grado']; $inscribir = false; // comprobamos si el perro tiene que estar en esta manga switch ($mtype) { case 1: // 'Pre Agility Manga 1', 'P.A.' if ($g === 'P.A.') { $inscribir = true; } break; case 2: // 'Pre Agility Manga 2', 'P.A.' if ($g === 'P.A.') { $inscribir = true; } break; case 3: // 'Agility Grado I Manga 1', 'GI' // 'Agility Grado I Manga 1', 'GI' case 4: // 'Agility Grado I Manga 2', 'GI' if ($g === 'GI') { $inscribir = true; } break; case 5: // 'Agility Grado II', 'GII' if ($g === 'GII') { $inscribir = true; } break; case 6: // 'Agility Grado III', 'GIII' if ($g === 'GIII') { $inscribir = true; } break; case 7: // 'Agility Abierta', '-' // 'Agility Abierta', '-' case 8: // 'Agility Equipos (3 mejores)', '-' // 'Agility Equipos (3 mejores)', '-' case 9: // 'Agility Equipos (Conjunta)', '-' $inscribir = true; break; case 10: // 'Jumping Grado II', 'GII' if ($g === 'GII') { $inscribir = true; } break; case 11: // 'Jumping Grado III', 'GIII' if ($g === 'GIII') { $inscribir = true; } break; case 12: // 'Jumping Abierta', '-' // 'Jumping Abierta', '-' case 13: // 'Jumping Equipos (3 mejores)', '-' // 'Jumping Equipos (3 mejores)', '-' case 14: // 'Jumping Equipos (Conjunta)', '-' // 'Jumping Equipos (Conjunta)', '-' case 15: // 'Ronda K.O.', '-' // 'Ronda K.O.', '-' case 16: // 'Manga especial', '-' $inscribir = true; break; default: throw new Exception("Tipo de manga {$mtype} desconocido. Manga:{$mid} Jornada:{$j} Prueba:{$p}"); break; } // Verificamos el orden de salida de la manga $os = new OrdenSalida("inscribePerroEnJornada", $manga['ID']); $orden = $os->getOrden(); $myLogger->info("OrdenDeSalida Prueba:{$p} Jornada:{$j} Manga:{$mid} Tipo:{$mtype} Grado:{$mgrado} es:\n{$orden}"); if ($inscribir == false) { $myLogger->info("Eliminando Perro:{$idperro} Grado:{$g} del orden de salida grado:{$mgrado}"); $os->removeFromList($idperro); } else { $myLogger->info("Insertando Perro:{$idperro} Grado:{$g} en del orden de salida gradp:{$mgrado}"); $os->insertIntoList($idperro); } $orden = $os->getOrden(); $myLogger->info("Nuevo OrdenDeSalidada: \n{$orden}"); // verificamos la tabla de resultados de esta manga $rs = new Resultados("inscribePerroEnJornada::Resultados", $jornada['Prueba'], $mid); if ($inscribir == false) { $myLogger->info("Borrando Perro:{$idperro} Grado:{$g} de Resultados manga:{$mid}"); // borramos entrada del perro en la tabla de resultados de la manga $rs->delete($idperro); } else { $eqobj = new Equipos("inscribePerroEnJornada", $p, $j); // nos aseguramos de que existe una entrada $myLogger->info("Insertando Perro:{$idperro} Grado:{$g} en Resultados manga:{$mid}"); // en la tabla de resultados de esta manga para este perro $res = $rs->insertByData($perro, $inscripcion, $eqobj->getTeamByPerro($idperro)); if ($res !== "") { // esta funcion es in "insert on duplicate key update"... // no deberia fallar si ya existe una entrada en la tabla de resultados $myLogger->error("Failed: Insert into Resultados perro:{$idperro} Prueba:{$p} Jornada:{$j} Manga:{$mid}"); $myLogger->error($res); } } } /* foreach */ }