Przeglądaj źródła

creacion del crud concepto obra, como tambien cambiar las reglas de descripcion en la tabla en incidente

Jogibeda 6 miesięcy temu
rodzic
commit
3285f76dff

+ 42 - 0
migrations/m241014_174716_Descripcion_posiblemente_null_en_Incidente.php

@@ -0,0 +1,42 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m241014_174716_Descripcion_posiblemente_null_en_Incidente
+ */
+class m241014_174716_Descripcion_posiblemente_null_en_Incidente extends Migration
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function safeUp()
+    {
+        $this->alterColumn('Incidente', 'descripcion', $this->string()->null());
+
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function safeDown()
+    {
+        $this->alterColumn('Incidente', 'descripcion', $this->string()->notNull());
+
+    }
+
+    /*
+    // Use up()/down() to run migration code without a transaction.
+    public function up()
+    {
+
+    }
+
+    public function down()
+    {
+        echo "m241014_174716_Descripcion_posiblemente_null_en_Incidente cannot be reverted.\n";
+
+        return false;
+    }
+    */
+}

+ 53 - 0
migrations/m241015_210755_Tabla_Conceptos_Obra.php

@@ -0,0 +1,53 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m241015_210755_Tabla_Conceptos_Obra
+ */
+class m241015_210755_Tabla_Conceptos_Obra extends Migration
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function safeUp()
+    {
+        $this->createTable('ConceptoObra', [
+            "id" => $this->string(36),
+            "idPartida" => $this->string(36),
+            "concepto" => $this->string(100),
+            "descripcion" => $this->string(100),
+            "estatus"=>$this->string(36),
+            "creado" => $this->timestamp()->append(" with time zone"),
+            "modificado" => $this->timestamp()->append(" with time zone"),
+            "eliminado" => $this->timestamp()->append(" with time zone"),
+        ]);
+        $this->addForeignKey("ConceptoObraPartidaFK", "ConceptoObra", "idPartida", "Partida", "id");
+
+        $this->addPrimaryKey('ConceptoObraPK', 'ConceptoObra', 'id');
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function safeDown()
+    {
+        $this->dropForeignKey("ConceptoObraPartidaFK", "ConceptoObra");
+        $this->dropTable('ConceptoObra');
+    }
+
+    /*
+    // Use up()/down() to run migration code without a transaction.
+    public function up()
+    {
+
+    }
+
+    public function down()
+    {
+        echo "m241015_210755_Tabla_Conceptos_Obra cannot be reverted.\n";
+
+        return false;
+    }
+    */
+}

+ 58 - 0
models/ConceptosObra.php

@@ -0,0 +1,58 @@
+<?php
+
+namespace app\models;
+
+use Yii;
+
+/**
+ * This is the model class for table "ConceptosObra".
+ *
+ * @property string $id
+ * @property string $idPartida
+ * @property string|null $concepto
+ * @property string|null $descripcion
+ * @property string $estatus
+
+ * 
+ */
+class ConceptosObra extends ModeloBase
+{
+    /**
+     * {@inheritdoc}
+     */
+    public static function tableName()
+    {
+        return 'ConceptoObra';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function rules()
+    {
+        return [
+            [['id','concepto'], 'required'],
+            [['creado', 'modificado', 'eliminado'], 'safe'],
+            [['id', 'idPartida','estatus'], 'string', 'max' => 36],
+            [[ 'concepto','descripcion'], 'string', 'max' => 100],
+           
+        ];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function attributeLabels()
+    {
+        return [
+            'id' => 'ID',
+            'idPartida' => 'ID de la Partida',
+            'concepto' => 'Concepto',
+            'descripcion' => 'Descripcion',
+            'estatus' => 'Estatus',
+            'creado' => 'Creado',
+            'modificado' => 'Modificado',
+            'eliminado' => 'Eliminado',
+        ];
+    }
+}

+ 88 - 0
modules/v1/controllers/ConceptosObraController.php

@@ -0,0 +1,88 @@
+<?php
+
+namespace v1\controllers;
+
+use common\data\Respuesta;
+use common\rest\AuthController;
+use yii\db\Expression;
+
+class ConceptosObraController extends AuthController
+{
+
+  public $modelClass = "v1\models\ConceptosObra";
+
+  public function actionIndex()
+  {
+    $id = trim($this->req->get("id", ""));
+    $buscar = trim($this->req->get("q", ""));
+
+    $query = $this->queryInicial;
+
+
+    if ($id !== "") {
+      $query->andWhere(["id" => $id]);
+    }
+
+    if ($buscar) {
+
+      $query->andWhere([
+        "OR",
+        ["ilike", "concepto", $buscar]
+      ]);
+    }
+
+    return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);
+  }
+
+  public function actionGuardar()
+  {
+    $id = trim($this->req->getBodyParam("id", ""));
+    $modelo = null;
+
+    if ($id !== "") {
+      $modelo = $this->modelClass::findOne($id);
+    }
+    if ($modelo === null) {
+      $modelo = new $this->modelClass();
+      $modelo->uuid();
+      $modelo->creado = new Expression('now()');
+    } else {
+      $modelo->modificado = new Expression('now()');
+    }
+    $modelo->load($this->req->getBodyParams(), '');
+
+   
+    $modelo->load($this->req->getBodyParams(), '');
+    if (!$modelo->save()) {
+      return (new Respuesta($modelo))
+        ->mensaje("Hubo un problema al guardar el concepto");
+    }
+
+    $modelo->refresh();
+    return (new Respuesta($modelo))
+      ->mensaje("Concepto guardado");
+  }
+
+  public function actionEliminar()
+  {
+    $id = trim($this->req->getBodyParam("id", ""));
+    $modelo = null;
+
+    if ($id !== "") {
+      $modelo = $this->modelClass::findOne(["id" => $id]);
+    }
+    if ($modelo === null) {
+      return (new Respuesta())
+        ->esError()
+        ->mensaje("Concepto no encontrado");
+    }
+    $modelo->eliminado = new Expression('now()');
+    if (!$modelo->save()) {
+      return (new Respuesta($modelo))
+        ->mensaje("No se pudo eliminar el concepto");
+    }
+
+    return (new Respuesta())
+      ->mensaje("Concepto eliminado");
+  }
+}

+ 2 - 2
modules/v1/controllers/ObraController.php

@@ -22,7 +22,7 @@ class ObraController extends AuthController {
     $rangoF = trim($this->req->get("rfin", ""));
     $query = $this->queryInicial;
 
-    if ($id > 0) {
+    if ($id!=="") {
       $query->andWhere(["id" => $id]);
     }
 
@@ -65,7 +65,7 @@ class ObraController extends AuthController {
       $modelo->load($this->req->getBodyParams(), '');
 
       $clave = $modelo->clave;
-      $existeClave = $this->modelClass::find()->where(['clave' => $clave])->andWhere(['<>', 'id', $id])->exists();
+      $existeClave = $this->modelClass::find()->andwhere(['clave' => $clave])->andWhere(['<>', 'id', $id])->andWhere(['eliminado'=>null])->exists();
 
       if ($existeClave) {
         return (new Respuesta())

+ 32 - 0
modules/v1/models/ConceptosObra.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace v1\models;
+
+use app\models\ConceptosObra as ModeloConceptosObra;
+
+class ConceptosObra extends ModeloConceptosObra
+{
+
+    public function fields()
+    {
+        return [
+            'id',
+            'idPartida',
+            'concepto',
+            'estatus',
+            'descripcion',
+            'creado',
+            'modificado',
+
+        ];
+    }
+    public function extraFields() {
+        return [
+            'partida',
+        ];
+    }
+    public function getPartida()
+    {
+        return $this->hasOne(Partida::class, ['id' => 'idPartida']);
+    }
+}

+ 0 - 1
modules/v1/models/Usuario.php

@@ -15,7 +15,6 @@ class Usuario extends ModeloUsuario {
       'telefono',
       'foto',
       'rol',
-      'login',
       'creado',
       'modificado',
     ];