PHP library for Mexican SAT Electronic Accounting 1.3

Overview

phpcfdi/ceutils

Source Code Latest Version Software License Build Status Scrutinizer Coverage Status Total Downloads

Librería de PHP para trabajar con contabilidad electrónica.

🇺🇸 The documentation of this project is in spanish as this is the natural language for the intended audience.

Acerca de

En México, las personas físicas o morales requieren generar su contabilidad electrónica.

Esta librería permite generar, sellar y validar los XML para contabilidad electrónica 1.3.

Instalación

Usa composer

composer require phpcfdi/ceutils

Ejemplo básico de uso 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();

Ejemplo básico de uso 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();

Ejemplo básico de uso 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();

Ejemplo básico de uso 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();

Ejemplo básico de uso 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();

Ejemplo básico de validación

Los objetos creadores tienen oportunidad de validar el documento que están creando.

<?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;
}

Soporte

Puedes obtener soporte abriendo un ticker en Github.

Adicionalmente, esta librería pertenece a la comunidad PhpCfdi, así que puedes usar los mismos canales de comunicación para obtener ayuda de algún miembro de la comunidad.

Compatibilidad

Esta librería se mantendrá compatible con al menos la versión con soporte activo de PHP más reciente.

También utilizamos Versionado Semántico 2.0.0 por lo que puedes usar esta librería sin temor a romper tu aplicación.

Contribuciones

Las contribuciones con bienvenidas. Por favor lee CONTRIBUTING para más detalles y recuerda revisar el archivo de tareas pendientes TODO y el archivo CHANGELOG.

Copyright and License

The phpcfdi/ceutils library is copyright © PhpCfdi and licensed for use under the MIT License (MIT). Please see LICENSE for more information.

You might also like...
Small convention based CQRS library for PHP

LiteCQRS for PHP Small naming-convention based CQRS library for PHP (loosely based on LiteCQRS for C#) that relies on the MessageBus, Command, EventSo

Experimental library for forking PHP

Spork: PHP on a Fork ?php $manager = new Spork\ProcessManager(); $manager-fork(function() { // do something in another process! return 'Hel

Collection pipeline library for PHP

Knapsack Collection pipeline library for PHP Knapsack is a collection library for PHP = 5.6 that implements most of the sequence operations proposed

A PHP library to play with the Raspberry PI's GPIO pins
A PHP library to play with the Raspberry PI's GPIO pins

php-gpio php-gpio is a simple PHP library to play with the Raspberry PI's GPIO pins. It provides simple tools such as reading & writing to pins. [UPDA

PHP library for dealing with European VAT

ibericode/vat This is a simple PHP library to help you deal with Europe's VAT rules. Fetch VAT rates for any EU member state using ibericode/vat-rates

iOS passbook library for PHP 5.4+

PHP PASSBOOK LIBRARY What is Passbook? Passbook is an application in iOS that allows users to store coupons, boarding passes, event tickets, store car

Sslurp is a simple library which aims to make properly dealing with SSL in PHP suck less.

Sslurp v1.0 by Evan Coury Introduction Dealing with SSL properly in PHP is a pain in the ass and completely insecure by default. Sslurp aims to make i

A framework agnostic PHP library to build chat bots
A framework agnostic PHP library to build chat bots

BotMan If you want to learn how to create reusable PHP packages yourself, take a look at my upcoming PHP Package Development video course. About BotMa

Lock library to provide serialized execution of PHP code.

Requirements | Installation | Usage | License and authors | Donations php-lock/lock This library helps executing critical code in concurrent situation

Comments
  • Mantenimiento 2022-06-15 (versión 0.2.1)

    Mantenimiento 2022-06-15 (versión 0.2.1)

    Esta PR corrige el proceso de integración continua, modifica el código fuente del proyecto y mejora el paquete redistribuible, aunque no contiene ningún cambio de funcionamiento.

    Cambios al código público:

    • Se actualiza la licencia a 2022.
    • Se actualiza el código para seguir el estilo actualizado.
    • Se permite la ejecución del plugin ergebnis/composer-normalize.
    • Se ignora .phive/ del paquete de distribución.

    Cambios en entorno de desarrollo:

    • Se actualizan las herramientas de desarrollo y el archivo de configuración de php-cs-fixer.
    • Se agrega la revisión de compatiblidad de PHP 8.1.
    • Se dividen los pasos de construcción completa en pequeños trabajos independientes.
    • Se corrige el grupo de mantenedores del proyecto.
    opened by eclipxe13 1
Releases(v0.2.2)
  • v0.2.2(Sep 28, 2022)

    Se actualizan las dependencias:

    • eclipxe/cfdiutils: ^2.15.1.
    • eclipxe/xmlschemavalidator": "^3.0.2.

    Cambios en el entorno de desarrollo:

    • Se actualizan las versiones de las herramientas de desarrollo.
    • Se nombra correctamente el test BaseUniquePolizaNumberTest.
    Source code(tar.gz)
    Source code(zip)
  • v0.2.1(Jul 18, 2022)

    Esta liberación corrige el proceso de integración continua, modifica el código fuente del proyecto y mejora el paquete redistribuible, aunque no contiene ningún cambio de funcionamiento.

    Cambios al contenido público:

    • Se actualiza la licencia a 2022.
    • Se actualiza el código para seguir el estilo actualizado.
    • Se permite la ejecución del plugin ergebnis/composer-normalize.
    • Se ignora .phive/ del paquete de distribución.

    Cambios en entorno de desarrollo:

    • Se actualizan las herramientas de desarrollo y el archivo de configuración de php-cs-fixer.
    • Se agrega la revisión de compatiblidad de PHP 8.1.
    • Se dividen los pasos de construcción completa en pequeños trabajos independientes.
    • Se corrige el grupo de mantenedores del proyecto.
    • Se ignora tests/_files de la detección lingüística del proyecto.
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Sep 12, 2021)

    • Primera versión del proyecto.
    • Este proyecto se ha adoptado por la organización @phpcfdi, proviene del esfuerzo de César Aguilera. Gracias @blacktrue.
    Source code(tar.gz)
    Source code(zip)
Owner
phpCfdi
PHP Tools and utilities for Mexican CFDI
phpCfdi
BTCUSDT Binance Otomatik Al-Sat yazılımı, RSI indikatörüne göre.

Robin Hood Binance Otomatik Al-Sat yapan yardımcı yazılımdır. Kurulum: git clone https://github.com/burakerenel/robinhood cd robinhood && composer ins

Burak Erenel 4 Oct 15, 2021
All the basic features of accounting sotware

Anzarkhan.com Invoice Anzarkhan.com Invoice is an open source accounting and invoicing solution built with PHP. For more information, visit http://www

Anzar Khan 7 Jul 1, 2022
Dobren Dragojević 6 Jun 11, 2023
Easy to use utility functions for everyday PHP projects. This is a port of the Lodash JS library to PHP

Lodash-PHP Lodash-PHP is a port of the Lodash JS library to PHP. It is a set of easy to use utility functions for everyday PHP projects. Lodash-PHP tr

Lodash PHP 474 Dec 31, 2022
PHP Text Analysis is a library for performing Information Retrieval (IR) and Natural Language Processing (NLP) tasks using the PHP language

php-text-analysis PHP Text Analysis is a library for performing Information Retrieval (IR) and Natural Language Processing (NLP) tasks using the PHP l

null 464 Dec 28, 2022
php-echarts is a php library for the echarts 5.0.

php-echarts 一款支持Apache EChart5.0+图表的php开发库 优先ThinkPHP5/6的开发及测试。 Apache EChart5.0已经最新发布,在视觉效果、动画效果和大数据展示方面已经远超之前的版本; 故不考虑EChart5.0之前版本的兼容问题;建议直接尝试5.0+

youyiio 5 Aug 15, 2022
Minimalist PHP frame for Core-Library, for Developing PHP application that gives you the full control of your application.

LazyPHP lightweight Pre-Made Frame for Core-library Install Run the below command in your terminal $ composer create-project ryzen/lazyphp my-first-pr

Ry-Zen 7 Aug 21, 2022
Gettext is a PHP (^7.2) library to import/export/edit gettext from PO, MO, PHP, JS files, etc.

Gettext Note: this is the documentation of the new 5.x version. Go to 4.x branch if you're looking for the old 4.x version Created by Oscar Otero http

Gettext 651 Dec 29, 2022
Columnar analytics for PHP - a pure PHP library to read and write simple columnar files in a performant way.

Columnar Analytics (in pure PHP) On GitHub: https://github.com/envoymediagroup/columna About the project What does it do? This library allows you to w

Envoy Media Group 2 Sep 26, 2022
:date: The VObject library for PHP allows you to easily parse and manipulate iCalendar and vCard objects

sabre/vobject The VObject library allows you to easily parse and manipulate iCalendar and vCard objects using PHP. The goal of the VObject library is

sabre.io 532 Dec 25, 2022