Es de vital importancia tener los catálogos en una base de datos para de esta manera poder hacer las facturas/complementos, y también mantenerlo actualizado
Para ello se ha hecho este script para descargar en una base de datos SQLite
Se reviso y descarga todo lo necesario como por ejemplo códigos postales, clave de unidad, clave de producto / servicio, catálogos de la carta porte 3.0, catálogos de nomina, monedas, usos de CFDI , paises, monedas.
Para crear el archivo de base de datos solo creamos el siguiente archivo
<?php
if(file_exists ( 'sat.db' )){
unlink('sat.db' );
}
$sat = new SQLite3('sat.db');
$list = "https://raw.githubusercontent.com/phpcfdi/resources-sat-catalogs/master/database/tables.list";
$schema = "https://raw.githubusercontent.com/phpcfdi/resources-sat-catalogs/master/database/schemas/";
$data = "https://raw.githubusercontent.com/phpcfdi/resources-sat-catalogs/master/database/data/";
$listaText = file_get_contents($list);
$lines = array_filter(array_map('trim',explode("\n", $listaText)));
foreach ($lines as $line) {
echo "\x1b[33m" . $line . "\x1b[0m \n";
$schemaText = file_get_contents($schema . $line . ".sql");
echo $schemaText . "\n";
$sat->exec($schemaText);
$dataText = file_get_contents($data . $line . ".sql");
$dataLines = array_filter(array_map('trim',explode("\n", $dataText)));
foreach ($dataLines as $dataLine) {
echo "\x1b[2m" . $dataLine . "\x1b[0m \n";
$sat->exec($dataLine);
}
echo "\x1b[32m data done\n \x1b[0m \n";
}
En nuestro caso dejamos el archivo en d:\catalogosSAT\

En la CMD o Terminal ya posicionado en la carpeta ejecutamos el comando php descargarCatalogos.php para que empiece a crear el archivo .db
php descargarCatalogos.php

Ya ya se empezara a descargar y a crear el archivo de la base de datos

Una vez creado podemos acceder a el a con el programa dbeaver

Igual podemos usarlo el PHP y Codeigniter, en nuestro caso lo ponemos en la carpeta writable\database
1 pingback