84 lines
2.1 KiB
PHP

<?php
namespace Modules\Admin\Database\seeders;
use Modules\Admin\App\Imports\SatCatalogsImport;
use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\File;
use Modules\Admin\App\Models\Sat\Banco;
class SATCatalogsSeeder extends Seeder
{
protected $console;
public function __construct($console = null)
{
$this->console = $console;
}
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this->importCatCFDIV4(base_path("modules/Admin/Database/data/catCFDI_V_4_20241121.xls"));
$this->importCatBancos(base_path('modules/Admin/Database/data/catalog-sat_bancos.json'));
}
private function importCatCFDIV4($file_path)
{
$import = new SatCatalogsImport($this->console);
$sheets = [
'c_FormaPago',
'c_Moneda',
'c_CodigoPostal_Parte_1',
'c_CodigoPostal_Parte_2',
'c_RegimenFiscal',
'c_Pais',
'c_UsoCFDI',
'C_Colonia_1',
'C_Colonia_2',
'C_Colonia_3',
'c_Estado',
'C_Localidad',
'C_Municipio',
];
$this->command->getOutput()->progressStart(count($sheets));
foreach ($sheets as $sheet) {
$import = new SatCatalogsImport();
$import->onlySheets($sheet);
Excel::import($import, $file_path);
$this->command->getOutput()->progressAdvance();
}
$this->command->getOutput()->progressFinish();
}
private function importCatBancos($file_path)
{
$json = File::get($file_path);
// Convierte el contenido JSON a un array asociativo
$bancos = json_decode($json, true);
// Inserta cada banco en la base de datos
foreach ($bancos as $banco) {
Banco::create([
'c_banco' => $banco['c_banco'],
'descripcion' => $banco['descripcion'],
'razon_social' => $banco['razon_social'],
'rfc' => null,
'status' => Banco::STATUS_ENABLED,
]);
}
}
}