jxcodes/f72x

SUNAT 电子发票模块 UBL 2.1

v5.0.2 2024-07-24 10:18 UTC

This package is auto-updated.

Last update: 2024-09-24 10:41:59 UTC


README

Scrutinizer Code Quality Code Coverage Build Status Code Intelligence Status

SUNAT 电子发票模块 UBL 2.1

参考文献

SUNAT 手册 https://cpe.sunat.gob.pe/node/88

安装

composer require jxcodes/f72x

使用

require 'vendor/autoload.php';

use F72X\F72X;
use F72X\Sunat\DocumentGenerator;
use F72X\Sunat\ServiceGateway;

1. 配置模块

// Modo producccion: true, para usar los servicios de producciòn de SUNAT.
$prodMode = false;

/**
 * Repositorio digital:
 * Consta de los diguientes subdirectorios:
 *     - bill      : Documentos electrónicos en XML
 *     - billinput : Data utilizada para generar el documento electrónico
 *     - signedbill: Documentos electrónicos firmados
 *     - zippedbill: Documentos electrónicos comprimidos y listos para ser enviadas a SUNAT
 *     - crd       : Constancias de recepción
 */
$repoPath = __DIR__ . '/tests/edocs';

/**
 * Directorio de configuración del emisor
 * =======================================
 * Consta de los diguientes subdirectorios:
 *     - certs: Certificados
 *     - lists: Listas personalizadas
 *     - tpls: Templates para formatos de impresión
 */
$cfgPath   = __DIR__ . '/tests/companyconfig';

// Nombre del ertificado digital a ser usado para las firmas
$certificate = '20100454523_2018_09_27.pem';
F72X::init([
    'ruc'                   => '20100454523',
    'razonSocial'           => 'Soporte Tecnológicos EIRL',
    'nombreComercial'       => 'Tu Soporte',
    'codigoDomicilioFiscal' => '0000',
    'address'               => 'AV. FCO. BOLOGNESI 854',
    'city'                  => 'LIMA',
    'contactInfo'           => 'Email: ventas@miweb.com',
    'usuarioSol'            => 'MODDATOS',
    'claveSol'              => 'moddatos',
    'cconfigPath'           => $cfgPath,
    'repoPath'              => $repoPath,
    'certificate'           => $certificate,
    'prodMode'              => $prodMode
]);
// Configurar el gateway de servicios
$serviceGateway = new ServiceGateway();

2. 生成文档

发票

// Data
$data = require 'tests/cases/factura.php';
// Procesar Data
$XML = DocumentGenerator::createDocument('FAC', $data);
// Generar Documentos
DocumentGenerator::generateFiles($XML);
// Enviar a SUNAT
$documentName = $xmlFAC->getDocumentName();
$response = $serviceGateway->sendBill($documentName);
// Procesar Respuesta
var_dump($response);

销售凭证

// Data
$data = require 'tests/cases/factura/factura-pago-contado.php';
// Procesar Data
$XML = DocumentGenerator::createDocument('BOL', $data);
// Generar Documentos
DocumentGenerator::generateFiles($XML);
// Enviar a SUNAT
$documentName = $xmlFAC->getDocumentName();
$response = $serviceGateway->sendBill($documentName);
// Procesar Respuesta
var_dump($response);

信用凭证

// Data
$data = require 'tests/cases/factura.php';
// Procesar Data
$XML = DocumentGenerator::createDocument('NCR', $data);
// Generar Documentos
DocumentGenerator::generateFiles($XML);
// Enviar a SUNAT
$documentName = $xmlFAC->getDocumentName();
$response = $serviceGateway->sendBill($documentName);
// Procesar Respuesta
var_dump($response);

借项凭证

// Data
$data = require 'tests/cases/factura.php';
// Procesar Data
$XML = DocumentGenerator::createDocument('NDE', $data);
// Generar Documentos
DocumentGenerator::generateFiles($XML);
// Enviar a SUNAT
$documentName = $xmlFAC->getDocumentName();
$response = $serviceGateway->sendBill($documentName);
// Procesar Respuesta
var_dump($response);