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.

http://localhost/siat/demo

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
Sintic Bolivia Contacto whatsapp