Esempio n. 1
0
 public function beforeAction($action)
 {
     if (!parent::beforeAction($action)) {
         return false;
     }
     if (isset(Yii::app()->user->usIdent)) {
         // Obtiene la clasificación de los equipos
         $clasificacion = Clasificacion::model()->with('equipos')->findAll(array('order' => 'posicion ASC'));
         Yii::app()->setParams(array('clasificacion' => $clasificacion));
         // Obtiene la información del usuario
         $usuario = Usuarios::model()->with('recursos')->findByPK(Yii::app()->user->usIdent);
         Yii::app()->setParams(array('usuario' => $usuario));
         // Obtiene la información de la mensajeria
         //Saca la lista de los emails recibidos por el usuario y que ademas no los haya leido
         $mensajeria = Emails::model()->findAllByAttributes(array('id_usuario_to' => Yii::app()->user->usIdent, 'leido' => 0));
         $countmens = count($mensajeria);
         Yii::app()->setParams(array('countmens' => $countmens));
         // Obtiene la información de las notificaciones
         //Saca la lista de las notinicaciones recibidas por el usuario y que ademas no haya leido
         $notificaciones = Usrnotif::model()->findAllByAttributes(array('usuarios_id_usuario' => Yii::app()->user->usIdent, 'leido' => 0));
         $countnot = count($notificaciones);
         Yii::app()->setParams(array('countnot' => $countnot));
     }
     Yii::app()->setParams(array('bgclass' => 'bg-estadio-fuera'));
     return true;
 }
Esempio n. 2
0
 /**
  * Muestra la clasificacion de todos los equipos
  *
  * @route jugadorNum12/equipos
  * @return void
  */
 public function actionIndex()
 {
     /* Actualizar datos de usuario (recuros,individuales y grupales) */
     Usuarios::model()->actualizaDatos(Yii::app()->user->usIdent);
     /* Fin de actualización */
     $modeloClasificacion = Clasificacion::model()->findAll(array('order' => 'posicion ASC'));
     if ($modeloClasificacion === null) {
         Yii::app()->user->setFlash('clasificacion', 'Clasificacion incorrecta. (actionIndex, EquiposController).');
     }
     $this->render('index', array('modeloC' => $modeloClasificacion));
 }
Esempio n. 3
0
 private function actualizaClasificacion()
 {
     try {
         $local = Clasificacion::model()->findByAttributes(array('equipos_id_equipo' => $this->id_local));
         $visit = Clasificacion::model()->findByAttributes(array('equipos_id_equipo' => $this->id_visitante));
         //Miro quien ha ganado el partido
         //Sumo los puntos y los goles a favor y en contra de cada equipo
         if ($this->goles_local > $this->goles_visitante) {
             $puntosLocal = $local->puntos;
             $puntosLocal = $puntosLocal + 3;
             $ganadosLocal = $local->ganados;
             $perdidosVisit = $visit->perdidos;
             $local->setAttributes(array('puntos' => $puntosLocal));
             $local->setAttributes(array('ganados' => $ganadosLocal + 1));
             $visit->setAttributes(array('perdidos' => $perdidosVisit + 1));
         } else {
             if ($this->goles_local < $this->goles_visitante) {
                 $puntosVisitante = $visit->puntos;
                 $puntosVisitante = $puntosVisitante + 3;
                 $ganadosVisit = $visit->ganados;
                 $perdidosLocal = $local->perdidos;
                 $local->setAttributes(array('perdidos' => $perdidosLocal + 1));
                 $visit->setAttributes(array('ganados' => $ganadosVisit + 1));
                 $visit->setAttributes(array('puntos' => $puntosVisitante));
             } else {
                 $puntosLocal = $local->puntos;
                 $puntosLocal = $puntosLocal + 1;
                 $puntosVisitante = $visit->puntos;
                 $puntosVisitante = $puntosVisitante + 1;
                 $empatadosVisit = $visit->empatados;
                 $empatadosLocal = $local->empatados;
                 $local->setAttributes(array('empatados' => $empatadosLocal + 1));
                 $visit->setAttributes(array('empatados' => $empatadosVisit + 1));
                 $local->setAttributes(array('puntos' => $puntosLocal));
                 $visit->setAttributes(array('puntos' => $puntosVisitante));
             }
         }
         //una vez actualizado los puntos, toca actualizar las diferencia de goles
         $difPartidoLocal = $this->goles_local - $this->goles_visitante;
         $difPartidoVisit = $this->goles_visitante - $this->goles_local;
         $difTablaLocal = $local->diferencia_goles;
         $difTablaVisit = $visit->diferencia_goles;
         $local->setAttributes(array('diferencia_goles' => $difTablaLocal + $difPartidoLocal));
         $visit->setAttributes(array('diferencia_goles' => $difTablaVisit + $difPartidoVisit));
         $visit->save();
         $local->save();
         //Una vez hecho esto,voy a la clasificacion y recalculo las posiciones
         //Para ello voy a coger ahora todos los registros de clasificacion
         //Y utilizando ORDER BY en la consulta voy a ir colocando las posiciones
         //Con respecto a los puntos y a la diferencia de goles
         $criteria = new CDbCriteria();
         $criteria->order = 'puntos DESC,diferencia_goles DESC';
         /*Otra opcion puede ser esta
         		$Puestos = Clasificacion::model()->findAll(
         		array('order'=>'puntos ASC,diferencia_goles DESC'));*/
         $puestos = Clasificacion::model()->findAll($criteria);
         $i = 1;
         foreach ($puestos as $puesto) {
             $puesto->posicion = $i;
             $i++;
             $puesto->save();
         }
     } catch (Exception $exc) {
         throw new Exception("Error al recalcular la clasificación", 1);
     }
 }
Esempio n. 4
0
echo $form->errorSummary($model);
?>

	<?php 
echo $form->textFieldRow($model, 'nombre', array('class' => 'span5', 'maxlength' => 100));
?>

	<?php 
echo $form->textAreaRow($model, 'sinopsis', array('rows' => 6, 'cols' => 50, 'class' => 'span8'));
?>

	<?php 
echo $form->dropDownListRow($model, 'categoria_id', CHtml::listData(Categoria::model()->findAll(), 'id', 'nombre'), array('prompt' => 'Seleccione una Categoria', 'class' => 'span5'));
?>

	<?php 
echo $form->dropDownListRow($model, 'clasificacion_id', CHtml::listData(Clasificacion::model()->findAll(), 'id', 'nombre'), array('prompt' => 'Seleccione una Clasificacion', 'class' => 'span5'));
?>

	<?php 
echo $form->dropDownListRow($model, 'estado', array('1' => 'Activo', '0' => 'Desactivado'), array('class' => 'span5', 'prompt' => 'Seleccione una Estado'));
?>

	<div class="form-actions">
		<?php 
$this->widget('bootstrap.widgets.TbButton', array('buttonType' => 'submit', 'type' => 'primary', 'label' => $model->isNewRecord ? 'Creaar' : 'Guardar'));
?>
	</div>

<?php 
$this->endWidget();
Esempio n. 5
0
 /**
  * Crea los emparejamientos para los equipos dados por parametro
  *
  * Dada una lista de id_equipos, genera unos emparejamientos con el codigo se sam.
  * Ej : calendario(array(1,2,6,7,8)); -> emaprejamientos para los equipos_id = 1,2,3,6,7,8 (deja fuera al 4 y 5)
  * Si no se pasan paritcipantes, coje todos los equipos que haya en la tabla Clasificacion.
  *
  * @param int[] $participantes   id de los equipos participantes
  * @return int[][]
  */
 private function calendario($participantes = null)
 {
     if ($participantes === null) {
         //devolver una lista con todos los id_equipo
         $i = 0;
         $participantes = array();
         $consulta = Clasificacion::model()->findAll();
         foreach ($consulta as $row) {
             $participantes[$i++] = (int) $row['equipos_id_equipo'];
         }
     }
     $N = count($participantes);
     $calendario = array();
     //https://github.com/samuelmgalan/CalendarioLiga/blob/master/src/src/Calendario.java
     $cont = 0;
     $cont2 = $N - 2;
     for ($i = 0; $i < $N - 1; $i++) {
         for ($j = 0; $j < $N / 2; $j++) {
             $eq0 = $participantes[$cont++];
             if ($cont == $N - 1) {
                 $cont = 0;
             }
             if ($j == 0) {
                 $eq1 = $participantes[$N - 1];
             } else {
                 $eq1 = $participantes[$cont2--];
                 if ($cont2 < 0) {
                     $cont2 = $N - 2;
                 }
             }
             //Elaboro la matriz final de enfrentamientos por jornada
             if ($j == 0 && $i % 2 == 0) {
                 //primera vuelta
                 $calendario[$i][$j][0] = $eq1;
                 $calendario[$i][$j][1] = $eq0;
                 //segunda vuelta
                 $calendario[$i + $N - 1][$j][0] = $eq0;
                 $calendario[$i + $N - 1][$j][1] = $eq1;
             } else {
                 //primera vuelta
                 $calendario[$i][$j][0] = $eq0;
                 $calendario[$i][$j][1] = $eq1;
                 //segunda vuelta
                 $calendario[$i + $N - 1][$j][0] = $eq1;
                 $calendario[$i + $N - 1][$j][1] = $eq0;
             }
         }
     }
     return $calendario;
 }
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer the ID of the model to be loaded
  */
 public function loadModel($id)
 {
     $model = Clasificacion::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }