File manager - Edit - /var/www/html/transparencia/database/seeders/BeneficioFiscalMobiliarioSeeder.php
Back
<?php namespace Database\Seeders; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use App\Models\BeneficioFiscalMobiliario; use Illuminate\Database\Seeder; use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Shared\Date; use Illuminate\Support\Facades\DB; class BeneficioFiscalMobiliarioSeeder extends Seeder { public function run(): void { BeneficioFiscalMobiliario::truncate(); $path = base_path('temp/beneficios-ficais-mobiliario.xlsx'); if (!file_exists($path)) { $this->command->error("Arquivo não encontrado: {$path}"); return; } $spreadsheet = IOFactory::load($path); $sheet = $spreadsheet->getActiveSheet(); $rows = []; $isHeader = true; foreach ($sheet->getRowIterator() as $row) { if ($isHeader) { $isHeader = false; continue; } $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); $data = []; foreach ($cellIterator as $cell) { $data[] = $cell->getValue(); } if (empty(array_filter($data))) { continue; } $cpfCnpj = trim((string) ($data[1] ?? '')); if (str_starts_with($cpfCnpj, '="') && str_ends_with($cpfCnpj, '"')) { $cpfCnpj = substr($cpfCnpj, 2, -1); } $cpfCnpj = preg_replace('/\D/', '', $cpfCnpj); $dataInicio = null; if (!empty($data[7])) { if (is_numeric($data[7])) { $dataInicio = Date::excelToDateTimeObject($data[7]); } else { $dataInicio = \Carbon\Carbon::createFromFormat('d/m/Y', $data[7]); } } $dataFim = null; if (!empty($data[8])) { if (is_numeric($data[8])) { $dataFim = Date::excelToDateTimeObject($data[8]); } else { $dataFim = \Carbon\Carbon::createFromFormat('d/m/Y', $data[8]); } } $rows[] = [ 'inscricao_mobiliaria' => trim((string) ($data[0] ?? '')), 'cpf_cnpj' => $cpfCnpj, 'nome_razao_social' => trim((string) ($data[2] ?? '')), 'nome_fantasia' => trim((string) ($data[3] ?? '')), 'descricao' => trim((string) ($data[4] ?? '')), 'percentual_reducao' => trim((string) ($data[5] ?? '')), 'percentual_reducao_taxa' => trim((string) ($data[6] ?? '')), 'data_inicio' => $dataInicio ? $dataInicio->format('Y-m-d') : null, 'data_fim' => $dataFim ? $dataFim->format('Y-m-d') : null, 'created_at' => now(), 'updated_at' => now(), ]; if (count($rows) >= 500) { DB::table('beneficios_fiscais_mobiliarios')->insert($rows); $rows = []; } } if (count($rows) > 0) { DB::table('beneficios_fiscais_mobiliarios')->insert($rows); } $this->command->info('Seeder BeneficioFiscalMobiliarioSeeder executado com sucesso!'); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings