phpcfdi / ceutils
PHP 用于墨西哥SAT电子会计1.3的库
v0.2.3
2023-12-18 22:58 UTC
Requires
- php: >=7.4
- ext-bcmath: *
- ext-dom: *
- ext-openssl: *
- eclipxe/cfdiutils: ^v2.23.3
- eclipxe/xmlresourceretriever: ^1.3.2
- eclipxe/xmlschemavalidator: ^3.0.2
- phpcfdi/credentials: ^1.1.3
Requires (Dev)
- ergebnis/composer-normalize: ^2.15
- phpunit/phpunit: ^9.5
README
用于处理电子会计的PHP库。
🇺🇸 该项目的文档是西班牙语,因为这是目标受众的自然语言。
关于
在墨西哥,个人或法人实体需要生成其电子会计。
此库允许生成、签名和验证电子会计1.3的XML。
安装
使用 composer
composer require phpcfdi/ceutils
基本使用示例 BalanzaCreator13
<?php use PhpCfdi\CeUtils\BalanzaCreator13; use PhpCfdi\Credentials\Credential; $creator = new BalanzaCreator13([ 'Mes' => '01', 'Anio' => '2021', 'TipoEnvio' => 'N', 'FechaModBal' => '2015-01-01', ]); $credential = Credential::openFiles( $this->filePath('fake-csd/EKU9003173C9.cer'), $this->filePath('fake-csd/EKU9003173C9.key'), trim($this->fileContents('fake-csd/EKU9003173C9-password.txt')) ); $creator->addSello($credential); $balanza = $creator->balanza(); $balanza->addCuenta([ 'NumCta' => '602.01.01', 'SaldoIni' => '100.50', 'Debe' => '40', 'Haber' => '40', 'SaldoFin' => '100.50' ]); $balanza->addCuenta([ 'NumCta' => '602.01.02', 'SaldoIni' => '200.00', 'Debe' => '20', 'Haber' => '20', 'SaldoFin' => '200.00' ]); $xml = $creator->asXml();
基本使用示例 CatalogoCreator13
<?php use PhpCfdi\CeUtils\CatalogoCreator13; use PhpCfdi\Credentials\Credential; $creator = new CatalogoCreator13([ 'Mes' => '01', 'Anio' => '2021', 'TipoEnvio' => 'N', 'FechaModBal' => '2015-01-01', ]); /** @var Credential $credential */ $creator->addSello($credential); $catalogo = $creator->catalogo(); $catalogo->addCuenta([ 'CodAgrup' => '602', 'NumCta' => '602.01.01', 'Desc' => 'Account description', 'SubCtaDe' => '602.01', 'Nivel' => '3', 'Natur' => 'A' ]); $catalogo->addCuenta([ 'CodAgrup' => '602', 'NumCta' => '602.01.02', 'Desc' => 'Account description', 'SubCtaDe' => '602.01', 'Nivel' => '3', 'Natur' => 'A' ]); $xml = $creator->asXml();
基本使用示例 AuxiliarFoliosCreator13
<?php use PhpCfdi\CeUtils\AuxiliarFoliosCreator13; use PhpCfdi\Credentials\Credential; $creator = new AuxiliarFoliosCreator13([ 'Mes' => '01', 'Anio' => '2021', 'TipoSolicitud' => 'AF', 'NumTramite' => '123456', ]); /** @var Credential $credential */ $creator->addSello($credential); $reporteAuxiliarFolios = $creator->repAuxFol(); $detalleAuxiliarFolios = $reporteAuxiliarFolios->addDetalleAux([ 'NumUnIdenPol' => '194756', 'Fecha' => '2021-03-25' ]); $detalleAuxiliarFolios->addComprNal([ 'UUID_CFDI' => 'fake uuid', 'MontoTotal' => '100', 'RFC' => 'fake rfc', 'MetPagoAux' => '', 'Moneda' => 'MXN', ]); $xml = $creator->asXml();
基本使用示例 AuxiliarCuentasCreator13
<?php use PhpCfdi\CeUtils\AuxiliarCuentasCreator13; use PhpCfdi\Credentials\Credential; $creator = new AuxiliarCuentasCreator13([ 'Mes' => '01', 'Anio' => '2021', 'TipoSolicitud' => 'AF', 'NumTramite' => '123456', ]); /** @var Credential $crcedential */ $creator->addSello($crcedential); $auxiliarCuentas = $creator->auxiliarCuentas(); $cuenta = $auxiliarCuentas->addCuenta([ 'NumCta' => '602.01.01', 'DesCta' => 'descripción', 'SaldoIni' => '100.00', 'SaldoFin' => '100.00' ]); $cuenta->addDetalleAux([ 'Fecha' => '2021-03-25', 'NumUnIdenPol' => '123456', 'Concepto' => 'concepto 1', 'Debe' => '50', 'Haber' => '0' ]); $xml = $creator->asXml();
基本使用示例 PolizasCreator13
<?php use PhpCfdi\CeUtils\PolizasCreator13; use PhpCfdi\Credentials\Credential; $creator = new PolizasCreator13([ 'Mes' => '01', 'Anio' => '2021', 'TipoSolicitud' => 'AF', 'NumTramite' => '123456', ]); /** @var Credential $credential */ $creator->addSello($credential); $polizas = $creator->polizas(); $poliza = $polizas->addPoliza([ 'NumUnIdenPol' => '123456', 'Fecha' => '2021-03-31', 'Concepto' => 'Concepto póliza' ]); $transaccion = $poliza->addTransaccion([ 'NumCta' => '123', 'DesCta' => 'Descripción cuenta', 'Concepto' => 'Concepto transacción', 'Debe' => '100.00', 'Haber' => '0.00', ]); $transaccion->addCompNal([ 'UUID_CFDI' => 'adf9d1d2-574d-4781-8874-a9fb1e79930a', 'RFC' => 'XAXX010101000', 'MontoTotal' => '100.00', 'Moneda' => 'MXN', ]); $xml = $creator->asXml();
基本验证示例
创建器对象有机会验证正在创建的文档。
<?php use PhpCfdi\CeUtils\BalanzaCreator13; $creator = new BalanzaCreator13([]); $asserts = $creator->validate(); if ($asserts->hasErrors()) { echo 'No se han encontrado errores', PHP_EOL; } else { echo print_r($asserts->errors(), true), PHP_EOL; }
支持
您可以通过在Github上打开一个票据来获取支持。
此外,此库属于PhpCfdi社区,因此您可以使用相同的通信渠道以获取社区成员的帮助。
兼容性
此库将保持与最新的具有PHP活动支持版本的兼容性。
我们还使用了语义版本2.0.0,因此您可以在不破坏应用程序的情况下使用此库。
贡献
欢迎贡献。请阅读CONTRIBUTING以获取更多详细信息,并请记住检查待办事项TODO和CHANGELOG文件。
版权和许可
phpcfdi/ceutils
库版权所有 © PhpCfdi,并根据MIT许可证(MIT)授权使用。请参阅LICENSE获取更多信息。