Procházet zdrojové kódy

Insertar un nivel a un municipios por estado

ElPoteito před 9 měsíci
rodič
revize
5421b480df
1 změnil soubory, kde provedl 56 přidání a 0 odebrání
  1. 56 0
      commands/InsertController.php

+ 56 - 0
commands/InsertController.php

@@ -0,0 +1,56 @@
+<?php
+
+namespace app\commands;
+
+use app\models\Nivel;
+use app\models\NivelMunicipio;
+use yii\console\Controller;
+use yii\db\Expression;
+use yii\db\Query;
+use yii\helpers\Json;
+
+class InsertController extends Controller {
+
+  public function actionNivelMunicipio() {
+
+    $municipios = (new Query())
+      ->select([
+        '{{Municipio}}.id as id',
+        '{{Municipio}}.nombre as nombre'
+      ])
+      ->from('Municipio')
+      ->innerJoin('Estado', '{{Municipio}}.[[idEstado]] = {{Estado}}.id')
+      ->andWhere(['{{Municipio}}.eliminado' => null])
+      ->andWhere(['{{Estado}}.eliminado' => null])
+      ->andWhere(['{{Estado}}.nombre' => 'TAMAULIPAS']);
+
+    $nivel = Nivel::find()
+      ->andWhere(['eliminado' => null])
+      ->andWhere(['clave' => '4-A'])
+      ->one();
+      
+      foreach($municipios->each() as $municipio) {
+      $this->stdout("Procesando {$municipio['nombre']}\n");
+      $existe = NivelMunicipio::find()
+        ->andWhere(['[[idMunicipio]]' => $municipio['id']])
+        ->andWhere(['eliminado' => null])
+        ->exists();
+      
+      if ($existe) {
+        continue;
+      }
+
+      $nivelMunicipio = new NivelMunicipio();
+
+      $nivelMunicipio->uuid();
+      $nivelMunicipio->idMunicipio = $municipio['id'];
+      $nivelMunicipio->idNivel = $nivel->id;
+      $nivelMunicipio->creado = new Expression('now()');
+
+      if (!$nivelMunicipio->save()) {
+        $errores = Json::encode($nivelMunicipio->getFirstErrors());
+        $this->stdout("Ocurrió un error con el municipio {$municipio['nombre']}: {$errores}\n");
+      }
+    }
+  }
+}