zsolt148 / szamlazzhu
这是我的包 szamlazzhu
v1.1.1
2023-12-01 15:59 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^10.0
- spatie/laravel-package-tools: ^1.14.0
- zoparga/laravel-szamlazzhu: ^1.4
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
README
基于 https://github.com/zoparga/laravel-szamlazzhu Laravel szamlazzhu 简单 Facade 构建。
安装
您可以通过 composer 安装此包
composer require zsolt148/szamlazzhu
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="szamlazzhu-migrations"
php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="szamlazzhu-config"
这是已发布配置文件的内容
return [ /** * Global disabled/enable function */ 'enabled' => env('SZAMLAZZ_HU_ENABLED', false), /** * Global discount disabled/enable function */ 'discount_enabled' => env('SZAMLAZZ_HU_DISCOUNT_ENABLED', false), /** * Send invoice/receipt notifications */ 'send_notifications' => env('SZAMLAZZ_HU_SEND_NOTIFICATIONS', true), /** * Create/cancel invoice/receipt routes */ 'route' => [ 'prefix' => 'szamlazzhu', 'name' => 'szamlazzhu.', 'middleware' => ['web'], ], /* * These merchant details will be used by default. * You can override these values. * */ 'merchant' => [ 'bank_name' => env('SZAMLAZZ_HU_MERCHANT_BANK_NAME'), 'bank_account_number' => env('SZAMLAZZ_HU_MERCHANT_BANK_ACCOUNT_NUMBER'), 'reply_email' => env('SZAMLAZZ_HU_MERCHANT_REPLY_EMAIL'), ], /* * Invoice/Receipt prefix */ 'prefix' => env('SZAMLAZZ_HU_PREFIX', 'PRE'), /* * API Client settings */ 'client' => [ /* * Authentication credentials. * */ 'credentials' => [ 'api_key' => env('SZAMLAZZ_HU_API_KEY'), 'username' => env('SZAMLAZZ_HU_USERNAME'), 'password' => env('SZAMLAZZ_HU_PASSWORD'), ], /* * You can enable the certificate based communication. * You do not need to provide password if you'll use szamlazz.hu's own certificate * */ 'certificate' => [ 'enabled' => false, 'disk' => 'local', 'path' => 'szamlazzhu/cacert.pem', // Relative to disk root ], /* * HTTP request timeout (in seconds) */ 'timeout' => 30, /* * Base URI used to reach API * */ 'base_uri' => env('SZAMLAZZ_HU_BASE_URI', 'https://www.szamlazz.hu/'), /* * Client can automatically save / update invoice PDF files if enabled * */ 'storage' => [ 'auto_save' => true, 'disk' => 'public', 'path' => 'invoices', ], ],
用法
使用全局助手
// Access the invoice service szamlazzhu()->invoice(); szamlazzhu('invoice'); // Access the receipt service szamlazzhu()->receipt(); szamlazzhu('receipt'); // Create invoice/receipt - dispatches an event szamlazzhu()->invoice()->create($invoiceable); szamlazzhu()->receipt()->create($invoiceable); // Create now szamlazzhu()->invoice()->createNow($invoiceable); szamlazzhu()->receipt()->createNow($invoiceable); // Cancel invoice/receipt szamlazzhu()->invoice()->cancel($invoice); szamlazzhu()->receipt()->cancel($receipt);
使用外观
use Zsolt148\Szamlazzhu\Facades\Szamlazzhu; // Access the invoice service Szamlazzhu::invoice(); // Access the receipt service Szamlazzhu::receipt(); // Create invoice/receipt - dispatches an event Szamlazzhu::invoice()->create($invoiceable); Szamlazzhu::receipt()->create($invoiceable); // Create now Szamlazzhu::invoice()->createNow($invoiceable); Szamlazzhu::receipt()->createNow($invoiceable); // Cancel invoice/receipt Szamlazzhu::invoice()->cancel($invoice); Szamlazzhu::receipt()->cancel($receipt);
您希望作为发票/收据项的模型应该实现 Invoiceable/Receiptable 接口,以及 HasInvoice/HasReceipt 特性。
use Zsolt148\Szamlazzhu\Interfaces\Invoiceable; use Zsolt148\Szamlazzhu\Traits\HasInvoices; class Order implements Invoiceable { use HasInvoices; ... }
您希望作为发票/收据项的模型应该实现 ArrayableItem
如果模型只有一个项,它也可以是 Order 模型。
use zoparga\SzamlazzHu\Contracts\ArrayableItem; class OrderItem implements ArrayableItem { ... }
使用默认路由,它应该接收一个类字符串和一个 ID。
返回一个 JSON 响应
await axios.post(route('szamlazzhu.create-receipt'), { class: this.model.class, id: this.model.id, }).then(resp => { console.log(resp.data) })
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全漏洞
有关如何报告安全漏洞的详细信息,请审查 我们的安全策略。
致谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。