定制 josemmo/einvoicing 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

josemmo/einvoicing

最新稳定版本:v0.3.1

Composer 安装命令:

composer require josemmo/einvoicing

包简介

Library for reading and creating European-compliant electronic invoices (EN 16931)

README 文档

README


European Invoicing (eInvoicing)

Build Status Latest Version Supported PHP Versions License Documentation

About

eInvoicing is a PHP library for creating and reading electronic invoices according to the eInvoicing Directive and European standard.

It aims to be 100% compliant with EN 16931 as well as with the most popular CIUS and extensions, such as PEPPOL BIS.

Installation

First of all, make sure your environment meets the following requirements:

Then, you should be able to install this library using Composer:

composer require josemmo/einvoicing

Usage

For a proper quick start guide, visit the documentation website at https://josemmo.github.io/einvoicing/.

Importing invoice documents

use Einvoicing\Exceptions\ValidationException;
use Einvoicing\Readers\UblReader;

$reader = new UblReader();
$document = file_get_contents(__DIR__ . "/example.xml");
$inv = $reader->import($document);
try {
    $inv->validate();
} catch (ValidationException $e) {
    // Invoice is not EN 16931 complaint 
}

Exporting invoice documents

use Einvoicing\Identifier;
use Einvoicing\Invoice;
use Einvoicing\InvoiceLine;
use Einvoicing\Party;
use Einvoicing\Presets;
use Einvoicing\Writers\UblWriter;

// Create PEPPOL invoice instance
$inv = new Invoice(Presets\Peppol::class);
$inv->setNumber('F-202000012')
    ->setIssueDate(new DateTime('2020-11-01'))
    ->setDueDate(new DateTime('2020-11-30'));

// Set seller
$seller = new Party();
$seller->setElectronicAddress(new Identifier('9482348239847239874', '0088'))
    ->setCompanyId(new Identifier('AH88726', '0183'))
    ->setName('Seller Name Ltd.')
    ->setTradingName('Seller Name')
    ->setVatNumber('ESA00000000')
    ->setAddress(['Fake Street 123', 'Apartment Block 2B'])
    ->setCity('Springfield')
    ->setCountry('DE');
$inv->setSeller($seller);

// Set buyer
$buyer = new Party();
$buyer->setElectronicAddress(new Identifier('ES12345', '0002'))
    ->setName('Buyer Name Ltd.')
    ->setCountry('FR');
$inv->setBuyer($buyer);

// Add a product line
$line = new InvoiceLine();
$line->setName('Product Name')
    ->setPrice(100)
    ->setVatRate(16)
    ->setQuantity(1);
$inv->addLine($line);

// Export invoice to a UBL document
header('Content-Type: text/xml');
$writer = new UblWriter();
echo $writer->export($inv);

Roadmap

These are the expected features for the library and how's it going so far:

  • Representation of invoices, parties and invoice lines as objects
  • Compatibility with the most used CIUS and extensions
  • Export invoices to UBL documents
  • Import invoices from UBL documents
  • Export invoices to CII documents
  • Import invoices from CII documents
  • Proper documentation

统计信息

  • 总下载量: 234.48k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 161
  • 点击次数: 1
  • 依赖项目数: 9
  • 推荐数: 0

GitHub 信息

  • Stars: 161
  • Watchers: 15
  • Forks: 39
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-07-21