From ff00f91eed8edaabc501b1f927e401d16c7020c4 Mon Sep 17 00:00:00 2001 From: Felipe Date: Sat, 21 Oct 2023 16:42:20 -0500 Subject: [PATCH] importar usuarios desde excel --- app/Http/Livewire/Import.php | 9 +-- app/Http/Livewire/ShowPlanes.php | 11 ---- app/Http/Livewire/ShowPromociones.php | 1 + app/Imports/UsersImport.php | 61 ++++++++++++------ resources/views/livewire/import.blade.php | 57 +++++++++------- ...rksOENQ8jCQPkjZ-metaQ1VFTlRBUy54bHN4-.xlsx | Bin 0 -> 17932 bytes 6 files changed, 82 insertions(+), 57 deletions(-) create mode 100644 storage/app/livewire-tmp/TKzit0ihbTnQsi1rksOENQ8jCQPkjZ-metaQ1VFTlRBUy54bHN4-.xlsx diff --git a/app/Http/Livewire/Import.php b/app/Http/Livewire/Import.php index 8a2aa25..a66ea08 100644 --- a/app/Http/Livewire/Import.php +++ b/app/Http/Livewire/Import.php @@ -1,6 +1,7 @@ photo); - $this->photo=null; + $data = Excel::import(new UsersImport, $this->photo); + $this->photo = null; $this->importado = 'true'; // aquí se puede procesar los datos obtenidos } diff --git a/app/Http/Livewire/ShowPlanes.php b/app/Http/Livewire/ShowPlanes.php index d3034b0..46edcbb 100644 --- a/app/Http/Livewire/ShowPlanes.php +++ b/app/Http/Livewire/ShowPlanes.php @@ -222,17 +222,6 @@ class ShowPlanes extends Component /* ------------- CREAR ------------- */ public function createNewCuenta() { - // $this->validate([ - // 'servicio_newCuenta' => 'required', - // 'usuario_newCuenta' => 'required', - // 'password_newCuenta' => 'required', - // 'fecha_inicial' => 'required', - // 'fecha_final' => 'required', - // 'estado' => 'required', - // ]); - - - if ($consulta_cuenta = Cuentas::where('correo', $this->usuario_newCuenta)->exists()) { $this->alert('warning', 'La cuenta ya existe', [ 'position' => 'top' diff --git a/app/Http/Livewire/ShowPromociones.php b/app/Http/Livewire/ShowPromociones.php index 39736ff..4b312bf 100644 --- a/app/Http/Livewire/ShowPromociones.php +++ b/app/Http/Livewire/ShowPromociones.php @@ -289,6 +289,7 @@ class ShowPromociones extends Component ]); } $cuenta = null; + $this->modalComprarPromo = false; } } if (count($this->f) > 0) { diff --git a/app/Imports/UsersImport.php b/app/Imports/UsersImport.php index 3184239..0b47e57 100644 --- a/app/Imports/UsersImport.php +++ b/app/Imports/UsersImport.php @@ -1,53 +1,74 @@ $row[0], - 'password'=> $row[1], - 'estado'=> $row[2], - 'inicio'=> \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row[3]), - 'vencimiento'=> \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row[4]), - 'servicio_id'=> $row[5], - + $cuenta = new Cuentas([ + 'correo' => $row[0], + 'password' => $row[1], + 'estado' => $row[2], + 'inicio' => \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row[3]), + 'vencimiento' => \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row[4]), + 'servicio_id' => $row[5], ]); - + + $cuenta->save(); + + // Aquí realizamos operaciones similares a las cuentas manuales + if ($row[2] === 'activo') { + $servicioPantallas = Servicio::find($row[5])->pantallas; + + $cuentasPendientes = Pendientes::where('estado', 'pendiente') + ->where('servicio_id', $row[5]) + ->take($servicioPantallas) + ->get(); + + foreach ($cuentasPendientes as $i => $cuentaPendiente) { + $historial_cuenta = new Historial_cuenta(); + $historial_cuenta->historial_id = $cuentaPendiente->historial_id; + $historial_cuenta->cuenta_id = $cuenta->id; + $historial_cuenta->perfil = $i + 1; + $historial_cuenta->save(); + $cuentaPendiente->update(['estado' => 'cerrado']); + } + } + + return $cuenta; } public function headingRow(): int { return 1; } - + public function batchSize(): int { return 1000; } - + public function chunkSize(): int { return 1000; } - + public function getDateFormats(): array { return [ - 'Y-m-d', - ]; } } diff --git a/resources/views/livewire/import.blade.php b/resources/views/livewire/import.blade.php index 065ac5d..6b4eda1 100644 --- a/resources/views/livewire/import.blade.php +++ b/resources/views/livewire/import.blade.php @@ -1,27 +1,40 @@
-
-
- Añadir cuentas por volumen -
-
+
+
+
+ +

Cargando

+
+
+
-
- -
- - @error('photo') {{ $message }} @enderror - - @if ($photo) - - -

Archivo cargado

- - @endif +
+
+ Añadir cuentas por volumen +
+ - @if ($importado== 'true') -
Cuentas importadas correctamente!!
- @endif - -
+
+ +
+ + @error('photo') + {{ $message }} + @enderror + + @if ($photo) + +

Archivo cargado

+ + @endif + + @if ($importado == 'true') +
Cuentas importadas correctamente!!
+ @endif + +
diff --git a/storage/app/livewire-tmp/TKzit0ihbTnQsi1rksOENQ8jCQPkjZ-metaQ1VFTlRBUy54bHN4-.xlsx b/storage/app/livewire-tmp/TKzit0ihbTnQsi1rksOENQ8jCQPkjZ-metaQ1VFTlRBUy54bHN4-.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2c1b0e51fbd6644928b2efe62234371d9b1dc338 GIT binary patch literal 17932 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 O@Q(`6ct8;HzyAkgoe0zb literal 0 HcmV?d00001