firebed / aade-mydata
AADE myDATA请求的实现。
v5.1.2
2024-09-28 18:07 UTC
Requires
- php: ^8.1
- ext-dom: *
- ext-libxml: *
- guzzlehttp/guzzle: ^7.0.1
Requires (Dev)
- fakerphp/faker: ^1.23
- phpunit/phpunit: ^10.0
- roave/security-advisories: dev-latest
- symfony/var-dumper: ^6.0
This package is auto-updated.
Last update: 2024-09-28 18:08:43 UTC
README
支持此项目
如果您觉得这个项目有用,可以通过给它一个 ⭐ 来表达您的感谢和支持。您的支持激励我们更加努力工作,制作出更好、更有用的工具!
简介
此包提供了一个表达性强、流畅的接口,用于ΑΑΔΕ myDATA发票REST API。它处理了发送、取消和请求发票的几乎所有样板代码。
官方文档
所有文档可在👉 我们的文档网站上找到
升级指南
如果您是从旧版本升级的,请参阅升级指南。
v5功能
能够“压缩”发票行
电子发票供应商和ERP系统必须强制提供发票行和特性的摘要,而不是详细行。
$invoice->squashInvoiceRows()
有关更多详细信息,请参阅发票行压缩。
能够验证发票
$invoice->validate()
能够预览发票xml
$invoice->toXml()
分类组合
有关更多详细信息,请参阅分类组合。
use Firebed\AadeMyData\Enums\InvoiceType; use Firebed\AadeMyData\Services\Classifications; dump(Classifications::incomeClassifications(InvoiceType::TYPE_1_1));
带有标签的分类组合
use Firebed\AadeMyData\Enums\InvoiceType; use Firebed\AadeMyData\Services\Classifications; dump(Classifications::incomeClassifications(InvoiceType::TYPE_1_1)->toKeyLabel()); dump(Classifications::incomeClassifications(InvoiceType::TYPE_1_1)->toKeyLabels()) dump(Classifications::incomeClassifications(InvoiceType::TYPE_1_1, IncomeClassificationCategory::CATEGORY_1_1)->toKeyLabel())
分类组合验证
use Firebed\AadeMyData\Enums\InvoiceType; use Firebed\AadeMyData\Enums\IncomeClassificationCategory; use Firebed\AadeMyData\Enums\IncomeClassificationType; use Firebed\AadeMyData\Services\Classifications; Classifications::incomeClassificationExists('1.1', 'category1_1', 'E3_561_001'); // or Classifications::incomeClassificationExists(InvoiceType::TYPE_1_1, IncomeClassificationCategory::CATEGORY_1_1, IncomeClassificationType::E3_561_001); // Outputs: true // Same for expense classifications Classifications::expenseClassificationExists('1.1', 'category2_1', 'E3_102_001');
为所有枚举类型添加了标签
use Firebed\AadeMyData\Enums\InvoiceType; use Firebed\AadeMyData\Enums\PaymentMethod; use Firebed\AadeMyData\Enums\VatCategory; use Firebed\AadeMyData\Enums\CountryCode; echo InvoiceType::TYPE_1_1->label(); // Outputs: Τιμολόγιο Πώλησης echo InvoiceType::TYPE_1_2->label(); // Outputs: Τιμολόγιο Πώλησης / Ενδοκοινοτικές Παραδόσεις echo PaymentMethod::METHOD_5->label(); // Outputs: Επί Πιστώσει echo VatCategory::VAT_1->label(); // Outputs: ΦΠΑ συντελεστής 24% echo CountryCode::BE->label(); // Outputs: Βέλγιο
枚举辅助方法
use Firebed\AadeMyData\Enums\InvoiceType; use Firebed\AadeMyData\Enums\CountryCode; use Firebed\AadeMyData\Enums\ExpenseClassificationType; $invoiceType = InvoiceType::TYPE_1_1; $invoiceType->supportsFuelInvoice(); $invoiceType->hasCounterpart(); $invoiceType->supportsDeliveryNote(); $invoiceType->supportsSelfPricing(); $invoiceType->supportsTaxFree(); var_dump(CountryCode::europeanUnionCountries()); // Outputs: All countries in the European Union echo CountryCode::BE->isInEuropeanUnion() // Outputs: true echo CountryCode::US->isInEuropeanUnion() // Outputs: false $type = ExpenseClassificationType::VAT_361; echo $type->isVatClassification(); // true var_dump(ExpenseClassificationType::vatClassifications()); // Array of all vat classifications
新增枚举类型
- CountryCode
- CurrencyCode
能够在构造函数中填充模型属性
use Firebed\AadeMyData\Models\InvoiceDetails; use Firebed\AadeMyData\Enums\RecType; use Firebed\AadeMyData\Enums\IncomeClassificationType; use Firebed\AadeMyData\Enums\IncomeClassificationCategory; new InvoiceDetails([ 'lineNumber' => 1, 'netValue' => 5, 'recType' => RecType::TYPE_2, 'incomeClassification' => [ [ 'classificationType' => IncomeClassificationType::E3_561_001, 'classificationCategory' => IncomeClassificationCategory::CATEGORY_1_1, 'amount' => '5' ] ] ])
流畅的模型设置器(链式)
$invoice->setIssuer(...)->setCounterpart(...)
新方法
- Invoice::setTaxesTotals
- Invoice::setOtherTransportDetails
使用add_
方法将金额增加至
$row->addNetValue(5); $row->addVatAmount(1.2);
实现了电子发票供应商的端点。
需求
- guzzlehttp/guzzle >= 7.0
安装
要通过Composer安装,请运行以下命令
composer require firebed/aade-mydata
文档
官方myDATA网页: AADE myDATA
官方myDATA文档: AADE myDATA REST API v1.0.9
为了使用此包,您首先需要一个用户ID和一个订阅密钥。您可以通过注册mydata rest api来获取这些凭据。
开发: 注册mydata开发API
生产: 注册mydata生产API
设置
一旦您拥有了用户ID和订阅密钥,请使用以下代码来设置环境和凭据
$env = "dev"; // For production use "prod" $user_id = "your-user-id"; $subscription_key = "your-subscription-key"; MyDataRequest::setEnvironment($env); MyDataRequest::setCredentials($user_id, $subscription_key);
如果您不使用https,您可能需要禁用客户端验证
MyDataRequest::verifyClient(false);
可用方法
测试
composer test
贡献
有关详细信息,请参阅CONTRIBUTING。
许可证
AADE myDATA根据MIT许可证授权。
版权 2022 © Okan Giritli