phpcfdi/ceutils

PHP 用于墨西哥SAT电子会计1.3的库

v0.2.3 2023-12-18 22:58 UTC

This package is auto-updated.

Last update: 2024-09-19 00:42:01 UTC


README

Source Code Packagist PHP Version Support Discord Latest Version Software License Build Status Reliability Maintainability Code Coverage Violations Total Downloads

用于处理电子会计的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以获取更多详细信息,并请记住检查待办事项TODOCHANGELOG文件。

版权和许可

phpcfdi/ceutils库版权所有 © PhpCfdi,并根据MIT许可证(MIT)授权使用。请参阅LICENSE获取更多信息。