/**
  * 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'));
 }
예제 #2
0
 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));
 }
예제 #4
0
 /**
  * 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;
 }
예제 #5
0
 /**
  * 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;
     }
 }
예제 #6
0
 /**
  * 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));
 }
예제 #7
0
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;
예제 #8
0
				<?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>
예제 #9
0
 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";
     }
 }
예제 #10
0
 /**
  * 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);
     }
 }
예제 #11
0
 /**
  * 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;
 }
예제 #12
0
 /** 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;
     }
 }
예제 #13
0
 /**
  *
  * 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();
         }
     }
 }
예제 #14
0
 /**
  * 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;
     }
 }
예제 #15
0
 /**
  * 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&oacute;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();
     }
 }
예제 #16
0
/* @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>
예제 #17
0
 /**
  * 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;
 }
예제 #18
0
 /** 
  * 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));
 }
예제 #19
0
 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;
 }
예제 #20
0
/* @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');
예제 #21
0
<?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("????"));
예제 #22
0
 /**
  * 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;
 }
예제 #23
0
 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');
 }
예제 #24
0
/**
 * 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 */
}