Documentación Siat Laravel
Contenido del modulo
Instalación del modulo de Facturacion Electrónica SIAT
Crear una carpeta llamada "Modules" dentro de la carpeta "app" de Laravel.
Copiar todo el contenido del archivo zip, dentro de la carpeta "app/Modules".
Ejecución de Migraciones
php artisan migrate --path=app/Modules/Siat/database/migrations
Instalación de Dependencias
composer require dompdf/dompdf
composer require milon/barcode
Adicionar el Provider a la aplicación
Este paso es el que se encarga de cargar toda la funcionalidad del módulo y tenerlo listo para poder utilizarlo
En el archivo config/app.php se debe agregar la siguiente linea, dentro del indice "providers" del arreglo
return [
'name' => env('APP_NAME', 'Sistema Facturacion'),
...
'providers' => [
IlluminateAuthAuthServiceProvider::class,
...
//##modules
AppModulesSiatSiatProvider::class,
]
]
Mostrar el menu SIAT
Para poder mostrat el menu SIAT en su aplicación, debe incluir la vista
@includeIf('Siat::menu.siat')
Asignar Configuración de Facturación SIAT (versiones 1.0.10 e inferiores)
Abrie el archivo Siat/Models/SiatModel.php, y dentro del método "getConfig", asignar los datos proporcionados por impuestos.
public function getConfig()
{
$config = new SiatConfig([
'nombreSistema' => 'sistema XX',
'codigoSistema' => '725CA6BE34325436543546F140756',
'nit' => 176614027,
'razonSocial' => 'razon social',
'modalidad' => ServicioSiat::MOD_COMPUTARIZADA_ENLINEA,
'ambiente' => ServicioSiat::AMBIENTE_PRUEBAS,
'tokenDelegado' => 'sdfkjn45kjn',
'pubCert' => MOD_SIAT_DIR . SB_DS . 'certs' . SB_DS . 'ruta' . SB_DS . 'certificado.pem',
'privCert' => MOD_SIAT_DIR . SB_DS . 'certs' . SB_DS . 'ruta' . SB_DS . 'llave_privada.pem',
'telefono' => '34345435',
'ciudad' => 'POTOSI'
]);
return $config;
}
Publicar javascript del modulo
Para que los archos js del modulo, sean accesibles, deben estar dentro de la carpeta public de la aplicación.
mkdir -p public/js/modules
Crear enlace simbolico a la carpeta js del modulo
cd public/js/modules
ln -s ../../../app/Modules/Siat/js siat
Habilitar la seguridad de las rutas (Se necesita un mecanismo de validacion de sesiones)
Quitar el comentario del archivo de rutas
Dentro del archivo: routes/web.php
Linea: 20
$middlewares[] = 'auth:users';
Llamar el servicio de facturacion desde otros Controladores, Modelos o Servicios
//##cargar clases necesarias
use App\Modules\Siat\Models\InvoiceModel;
use App\Modules\Siat\Entities\Invoice;
use App\Modules\Siat\Entities\InvoiceItem;
//##construir la factura
$invoice = new Invoice();
$invoice->codigo_documento_sector = 1; //compra venta
$invoice->nit_ruc_nit = '45458123';
$invoice->customer_id = 1; //identificador del cliente si existe
$invoice->customer = 'SinticBolivia';
$invoice->tipo_documento_identidad = 1; //CI
//##crear items de la factura
$item = new InvoiceItem();
$item->product_code = '';
$item->product_name = '';
$item->quantity = '';
$item->price = 145.4;
$item->codigo_actividad = '345345';
$item->unidad_medida = 58;
$item->codigo_producto_sin = 45678;
//##adicionar items a la factura
$invoice->saveItems([$item]);
$model = new InvoiceModel();
try
{
$model->create($invoice);
print_r($invoice);
}
catch(Exception $e)
{
print $e->getMessage();
}
Acceso a la Demo del modulo
El modulo trae una demo integrada para poder probar todas las funcionalidades de la facturación.
Asignar vistas a plantilla Blade
Dentro del archivo Settings.php, puede asignar la plantilla principal para mostrar las vistas
protected $layout = 'Siat::demo.index';
Reinicio de Catalogos, Parametricas y CUIS
Para poder reiniciar, sincronizar desde cero o realizar un cambio de NIT, se deben borrar todos los archivos JSON de la siguiente carpeta
/storage/siat/
rm -fv /storage/siat/*.json
Integración con UltimatePOS
Editar el siguiente archivo para poder capturar las ventas
Archivo: app/Http/Controllers/SellPosController.php
Linea: 563 (DB::commit();)
Adicionar la siguiente linea de codigo despues de "DB::commit();"
//## START SIAT
event(new TransactionComplete($transaction));
//##END SIAT