Explorar o código

Agregado controlador para vista de evento resumen

Isaac Noriega %!s(int64=2) %!d(string=hai) anos
pai
achega
6e63c72de8

+ 2 - 1
config/web.php

@@ -60,7 +60,8 @@ $config = [
             'v1/usuario',
             'v1/reporte-individual',
             'v1/reporte-global',
-            'v1/evento-notificacion'
+            'v1/evento-notificacion',
+            'v1/evento-resumen'
           ],
         ]
       ],

+ 47 - 0
migrations/m230530_233715_tabla_EventoResumen.php

@@ -0,0 +1,47 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m230530_233715_tabla_EventoResumen
+ */
+class m230530_233715_tabla_EventoResumen extends Migration {
+	public function safeUp() {
+		$this->createTable('EventoResumen',[
+			"id"=>$this->primaryKey(),
+			"uuid"=>$this->string(50),
+			"inicio"=>$this->timestamp() . " with time zone",
+			"fin"=>$this->timestamp() . " with time zone",
+			"creado"=>$this->timestamp() . " with time zone",
+			"modificado"=>$this->timestamp() . " with time zone",
+		]);
+
+		$this->createTable('EventoResumenParticipante',[
+			"id"=>$this->primaryKey(),
+			"idEventoResumen"=>$this->integer(),
+			"idDependencia"=>$this->integer(),
+			"nombreDependencia"=>$this->string(250),
+			"idGrupo"=>$this->integer(),
+			"nombreGrupo"=>$this->string(250),
+			"idUsuario"=>$this->integer(),
+			"nombre"=>$this->string(100),
+			"totalEventos"=>$this->integer(),
+			"participacion"=>$this->string()
+		]);
+
+		$this->addForeignKey('EventoResumenPIdResumen_FK','EventoResumenParticipante','idEventoResumen','EventoResumen','id');
+		$this->addForeignKey('EventoResumenPIdDependencia_FK','EventoResumenParticipante','idDependencia','Dependencia','id');
+		$this->addForeignKey('EventoResumenPIdGrupo_FK','EventoResumenParticipante','idGrupo','Grupo','id');
+		$this->addForeignKey('EventoResumenPIdUsuario_FK','EventoResumenParticipante','idUsuario','Usuario','id');
+	}
+	public function safeDown() {
+		$this->dropForeignKey('EventoResumenPIdResumen_FK','EventoResumenParticipante');
+		$this->dropForeignKey('EventoResumenPIdDependencia_FK','EventoResumenParticipante');
+		$this->dropForeignKey('EventoResumenPIdGrupo_FK','EventoResumenParticipante');
+		$this->dropForeignKey('EventoResumenPIdUsuario_FK','EventoResumenParticipante');
+
+		$this->dropTable('EventoResumenParticipante');
+
+		$this->dropTable('EventoResumen');
+	}
+}

+ 27 - 0
migrations/m230531_172644_eventoresumen_dependencia.php

@@ -0,0 +1,27 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m230531_172644_eventoresumen_dependencia
+ */
+class m230531_172644_eventoresumen_dependencia extends Migration {
+  public function safeUp() {
+    $this->createTable('EventoResumenDependencia',[
+      "idEventoResumen"=>$this->integer(),
+      "idDependencia"=>$this->integer(),
+      "clave"=>$this->string(50)
+    ]);
+
+    $this->addForeignKey('idEventoResumenEventoResumenDependencia_FK','EventoResumenDependencia','idEventoResumen','EventoResumen','id');
+    $this->addForeignKey('idDependenciaEventoResumenDependencia_FK','EventoResumenDependencia','idDependencia','Dependencia','id');
+    $this->addPrimaryKey('EventoResumenDependencia_PK','EventoResumenDependencia',['idEventoResumen','idDependencia']);
+  }
+  public function safeDown() {
+    $this->dropForeignKey('idEventoResumenEventoResumenDependencia_FK','EventoResumenDependencia');
+    $this->dropForeignKey('idDependenciaEventoResumenDependencia_FK','EventoResumenDependencia');
+    $this->dropForeignKey('EventoResumenDependencia_PK','EventoResumenDependencia');
+
+    $this->dropTable('EventoResumenDependencia');
+  }
+}

+ 59 - 0
models/EventoResumen.php

@@ -0,0 +1,59 @@
+<?php
+
+namespace app\models;
+
+use Yii;
+
+/**
+ * This is the model class for table "EventoResumen".
+ *
+ * @property int $id
+ * @property string|null $uuid
+ * @property string|null $inicio
+ * @property string|null $fin
+ * @property string|null $creado
+ * @property string|null $modificado
+ *
+ * @property EventoResumenParticipante[] $eventoResumenParticipantes
+ */
+class EventoResumen extends \yii\db\ActiveRecord {
+  /**
+   * {@inheritdoc}
+   */
+  public static function tableName() {
+    return 'EventoResumen';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function rules() {
+    return [
+      [['inicio', 'fin', 'creado', 'modificado'], 'safe'],
+      [['uuid'], 'string', 'max' => 50],
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function attributeLabels() {
+    return [
+      'id' => 'ID',
+      'uuid' => 'Uuid',
+      'inicio' => 'Inicio',
+      'fin' => 'Fin',
+      'creado' => 'Creado',
+      'modificado' => 'Modificado',
+    ];
+  }
+
+  /**
+   * Gets query for [[EventoResumenParticipantes]].
+   *
+   * @return \yii\db\ActiveQuery
+   */
+  public function getEventoResumenParticipantes() {
+    return $this->hasMany(EventoResumenParticipante::class, ['idEventoResumen' => 'id']);
+  }
+}

+ 104 - 0
models/EventoResumenParticipante.php

@@ -0,0 +1,104 @@
+<?php
+
+namespace app\models;
+
+use Yii;
+
+/**
+ * This is the model class for table "EventoResumenParticipante".
+ *
+ * @property int $id
+ * @property int|null $idEventoResumen
+ * @property int|null $idDependencia
+ * @property string|null $nombreDependencia
+ * @property int|null $idGrupo
+ * @property string|null $nombreGrupo
+ * @property int|null $idUsuario
+ * @property string|null $nombre
+ * @property int|null $totalEventos
+ * @property string|null $participacion
+ *
+ * @property Dependencia $Dependencia
+ * @property EventoResumen $EventoResumen
+ * @property Grupo $Grupo
+ * @property Usuario $Usuario
+ */
+class EventoResumenParticipante extends \yii\db\ActiveRecord {
+  /**
+   * {@inheritdoc}
+   */
+  public static function tableName() {
+    return 'EventoResumenParticipante';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function rules() {
+    return [
+      [['idEventoResumen', 'idDependencia', 'idGrupo', 'idUsuario', 'totalEventos'], 'default', 'value' => null],
+      [['idEventoResumen', 'idDependencia', 'idGrupo', 'idUsuario', 'totalEventos'], 'integer'],
+      [['nombreDependencia', 'nombreGrupo'], 'string', 'max' => 250],
+      [['nombre'], 'string', 'max' => 100],
+      [['participacion'], 'string', 'max' => 255],
+      [['idDependencia'], 'exist', 'skipOnError' => true, 'targetClass' => Dependencia::class, 'targetAttribute' => ['idDependencia' => 'id']],
+      [['idEventoResumen'], 'exist', 'skipOnError' => true, 'targetClass' => EventoResumen::class, 'targetAttribute' => ['idEventoResumen' => 'id']],
+      [['idGrupo'], 'exist', 'skipOnError' => true, 'targetClass' => Grupo::class, 'targetAttribute' => ['idGrupo' => 'id']],
+      [['idUsuario'], 'exist', 'skipOnError' => true, 'targetClass' => Usuario::class, 'targetAttribute' => ['idUsuario' => 'id']],
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function attributeLabels() {
+    return [
+      'id' => 'ID',
+      'idEventoResumen' => 'Id Evento Resumen',
+      'idDependencia' => 'Id Dependencia',
+      'nombreDependencia' => 'Nombre Dependencia',
+      'idGrupo' => 'Id Grupo',
+      'nombreGrupo' => 'Nombre Grupo',
+      'idUsuario' => 'Id Usuario',
+      'nombre' => 'Nombre',
+      'totalEventos' => 'Total Eventos',
+      'participacion' => 'Participacion',
+    ];
+  }
+
+  /**
+   * Gets query for [[Dependencia]].
+   *
+   * @return \yii\db\ActiveQuery
+   */
+  public function getDependencia() {
+    return $this->hasOne(Dependencia::class, ['id' => 'idDependencia']);
+  }
+
+  /**
+   * Gets query for [[EventoResumen]].
+   *
+   * @return \yii\db\ActiveQuery
+   */
+  public function getEventoResumen() {
+    return $this->hasOne(EventoResumen::class, ['id' => 'idEventoResumen']);
+  }
+
+  /**
+   * Gets query for [[Grupo]].
+   *
+   * @return \yii\db\ActiveQuery
+   */
+  public function getGrupo() {
+    return $this->hasOne(Grupo::class, ['id' => 'idGrupo']);
+  }
+
+  /**
+   * Gets query for [[Usuario]].
+   *
+   * @return \yii\db\ActiveQuery
+   */
+  public function getUsuario() {
+    return $this->hasOne(Usuario::class, ['id' => 'idUsuario']);
+  }
+}

+ 25 - 0
modules/v1/controllers/EventoResumenController.php

@@ -0,0 +1,25 @@
+<?php
+
+namespace v1\controllers;
+
+use common\data\Respuesta;
+use common\rest\JsonController;
+use yii\db\Expression;
+
+class EventoResumenController extends JsonController {
+
+  public $modelClass = "v1\models\EventoResumenParticipante";
+  public $modelName = "EventoResumen";
+
+  public function actionIndex() {
+    $id = intval($this->req->get("id", ""));
+    $q = trim($this->req->get("q", ""));
+
+    $query = $this->queryInicial;
+
+    if($id > 0) {
+      $query->andWhere(["id" => $id]);
+    }
+    return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);
+  }
+}

+ 29 - 0
modules/v1/models/EventoResumen.php

@@ -0,0 +1,29 @@
+<?php
+
+namespace v1\models;
+
+use app\models\EventoResumen as ModeloEventoResumen;
+
+class EventoResumen extends ModeloEventoResumen {
+
+  public function fields() {
+    return [
+      'id',
+      'uuid',
+      'inicio',
+      'fin',
+      'creado',
+      'modificado'
+    ];
+  }
+
+  public function extraFields() {
+    return [
+      'eventoResumenParticipantes',
+    ];
+  }
+
+  public function getEventoResumenParticipantes() {
+    return $this->hasMany(EventoResumenParticipante::class, ['idEventoResumen' => 'id']);
+  }
+}

+ 45 - 0
modules/v1/models/EventoResumenParticipante.php

@@ -0,0 +1,45 @@
+<?php
+
+namespace v1\models;
+
+use app\models\EventoResumenParticipante as ModeloEventoResumenParticipante;
+
+class EventoResumenParticipante extends ModeloEventoResumenParticipante {
+
+  public function fields() {
+    return [
+      'id',
+      'idEventoResumen',
+      'idDependencia',
+      'nombreDependencia',
+      'idGrupo',
+      'nombreGrupo',
+      'idUsuario',
+      'nombre',
+      'totalEventos',
+      'participacion',
+    ];
+  }
+
+  public function extraFields() {
+    return [
+      'dependencia','eventoResumen','grupo','usuario'
+    ];
+  }
+
+  public function getDependencia() {
+    return $this->hasOne(Dependencia::class, ['id' => 'idDependencia']);
+  }
+
+  public function getEventoResumen() {
+    return $this->hasOne(EventoResumen::class, ['id' => 'idEventoResumen']);
+  }
+
+  public function getGrupo() {
+    return $this->hasOne(Grupo::class, ['id' => 'idGrupo']);
+  }
+
+  public function getUsuario() {
+    return $this->hasOne(Usuario::class, ['id' => 'idUsuario']);
+  }
+}