mrgenis/sat-cadenaoriginal

Generar la cadena original de un CFDI v3.3

v1.2 2022-04-12 21:59 UTC

This package is not auto-updated.

Last update: 2024-05-08 09:14:02 UTC


README

Latest Version Build Status

Clase para generar la cadena original de un CFDI v3.3

Instalar

Puedes instalar este paquete via composer.

composer require mrgenis/sat-cadenaoriginal

Usar

Se envia la cadena de texto del CFDI XML 3.3 y 4.0

// Versión de CFDI 3.3
MrGenis\Sat\CadenaOriginal33::default_xslt_directory('/absolute-directory/to-store-xslt-files');
MrGenis\Sat\CadenaOriginal33::cadenaOriginal($xml);

// Versión de CFDI 4.0
MrGenis\Sat\CadenaOriginal40::default_xslt_directory('/absolute-directory/to-store-xslt-files');
MrGenis\Sat\CadenaOriginal40::cadenaOriginal($xml);

Xml como texto

$xml = <<< EOF
<?xml version="1.0" encoding="utf-8" ?>
<cfdi:Comprobante xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd"
      Version="3.3" Folio="FOL123456" Fecha="2017-05-04T09:36:11"
      FormaPago="01"
      Sello=""
      NoCertificado=""
      Certificado=""
      CondicionesDePago="CondicionesDePago" SubTotal="1000.00" Descuento="100.00" Moneda="MXN"
      TipoCambio="1" Total="900.00" TipoDeComprobante="I" MetodoPago="PUE" LugarExpedicion="72000"
      xmlns:cfdi="http://www.sat.gob.mx/cfd/3">
      
  <cfdi:Emisor Rfc="TEST010204002" Nombre="ETHAN HUNT" RegimenFiscal="601"/>
  <cfdi:Receptor Rfc="TEST010203001" Nombre="JAMES BOND 007" UsoCFDI="G02"/>
  <cfdi:Conceptos>
  ...
EOF;

use MrGenis\Sat\CadenaOriginal33;
$cadena = CadenaOriginal33::cadenaOriginal($xml);

DOMDocument

$dom = new \DOMDocument();
$dom->load('documento.xml');

use MrGenis\Sat\CadenaOriginal33;
$cadena = CadenaOriginal33::cadenaOriginal($dom);

SimpleXml

$dom = simplexml_load_file('documento.xml');

use MrGenis\Sat\CadenaOriginal33;
$cadena = CadenaOriginal33::cadenaOriginal($dom);

Test

docker run --rm -it \
  -v "$PWD":/usr/src/app \
  thecodingmachine/php:7.4-v4-cli bash -c \
  "composer install && ./vendor/bin/phpunit --configuration test/phpunit.xml"

Licencia

MIT License (MIT). Ver archivo de licencia para mas información.