arteq/jpk-fa
Composer 安装命令:
composer require arteq/jpk-fa
包简介
README 文档
README
Biblioteka umożliwia generowanie raportów JPK_FA dla urzędów skarbowych. Wygenerowany raport może być opcjonalnie sprawdzony walidatorem, który przetestuje czy:
- struktura pliku jest zgodna ze schematem XSD
- wiersze kontrolne zgadzają się z wprowadzonymi danymi (liczby faktur, wierszy faktur, kwoty)
- daty wystawienia faktur odpowiadają zakresowi dat raportu
- każda faktura ma wiersz danych oraz każdy wiersz danych należy do jakiejś faktury
- numery faktur są unikalne
- dla faktur korzystających ze zwolnienia VAT podano podstawę prawną tego zwolnienia
Instalacja
$ composer require arteq/jpk-fa
Opcjonalnie można przeprowadzić testy:
$ vendor/bin/phpunit
Tworzenie raportu
Kompletny przykład kodu znajduje się w katalogu example:
<?php
use ArteQ\JPK_FA\Types;
use ArteQ\JPK_FA\Report;
use ArteQ\JPK_FA\Company;
use ArteQ\JPK_FA\Invoice;
use ArteQ\JPK_FA\InvoiceRow;
use ArteQ\JPK_FA\Validator;
require __DIR__.'/../vendor/autoload.php';
// pobranie listy urzędów
$offices = Types::getOfficeCodes();
print_r($offices);
// pobranie listy krajów
$countries = Types::getCountryCodes();
print_r($countries);
try
{
// tworzenie nowego raportu dla faktur wystawionych od 2019-01-01 do 2019-02-02
// dla Urzędu Skarbowego o symbolu 0202
$report = new Report('2019-01-01', '2019-02-02', '0202');
// dane firmy przygotowującej raport
$company = new Company('ACME Ltd', '666-555-44-33');
$company->set('REGON', '123123123');
$company->set('Wojewodztwo', 'Mazowieckie');
$company->set('Powiat', 'Warszawa');
$company->set('Gmina', 'Warszawa');
$company->set('Ulica', 'Wiejska');
$company->set('NrDomu', '12');
$company->set('NrLokalu', '34');
$company->set('Miejscowosc', 'Warszawa');
$company->set('KodPocztowy', '01-007');
$company->set('Poczta', 'Warszawa');
$report->setCompany($company);
// dane klienta
$client = new Company('ACME Ltd', '111 22 33 444', 'Pełen adres');
// dane pierwszej faktury z jedną pozycją
$invoice1 = new Invoice($client, '2019/01/01', '2019-01-02', '2019-01-01');
$invoice1->addRow(new InvoiceRow('pozycja 1', 100, 23 ));
$report->addInvoice($invoice1);
// dane drugiej faktury z wieloma pozycjami
$invoice2 = new Invoice($client, '2019/01/02', '2019-01-04', '2019-01-04');
$invoice2->addRow(new InvoiceRow('pozycja 11', 111.11, 23, 1));
$invoice2->addRow(new InvoiceRow('pozycja 22', 222.22, 8, 2));
$invoice2->addRow(new InvoiceRow('pozycja 33', 333.33, 5, 3));
$invoice2->addRow(new InvoiceRow('pozycja 44', 444.44, 0, 4));
$invoice2->addRow(new InvoiceRow('pozycja 55', 555.55, 'zw', 5));
$invoice2->setExcemptLegalBasis('podstawa prawna', 'P_19A');
$report->addInvoice($invoice2);
// generowanie i wyświetlenie raportu
$reportXml = $report->generate();
echo $reportXml;
// sprawdzenie poprawności
$validator = new Validator($reportXml);
if ($validator->isValid())
{
echo "\nRAPORT POPRAWNY\n";
}
else
{
echo "\nRAPORT NIEPOPRAWNY\n";
$errors = $validator->getErrors();
print_r($errors);
}
}
catch (\Exception $e)
{
echo "Błąd: ".$e->getMessage();
}
Walidacja
Poprawność raportu można sprawdzić przy pomocy klasy Validator, która w konstruktorze przyjmuje string z treścią pliku XML. Do sprawdzenia poprawności służą dwie metody: isValid() oraz getErrors().
$reportXml = file_get_contents('raport.xml');
$validator = new Validator($reportXml);
if ($validator->isValid())
echo "raport OK";
else
echo "raport BŁĘDNY";
$errors = $validator->getErrors();
var_dump($errors);
Credits
Biblioteka jest wzorowana na: https://github.com/redgda/jpk
arteq/jpk-fa 适用场景与选型建议
arteq/jpk-fa 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 6.26k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 03 月 06 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「vat」 「jpk-fa」 「faktury」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 arteq/jpk-fa 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 arteq/jpk-fa 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 arteq/jpk-fa 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A VAT number check (Web Service) Plugin for CakePHP
Validate the format of EU vat numbers.
PHP VAT checker based on the European Commission web service
A library to deal with VAT Numbers within Teamleader CRM
Totals, subtotals, linetotals, VAT-calculations and proper rounding for invoices.
KSEF API Client for PHP
统计信息
- 总下载量: 6.26k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 21
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-03-06