robier / sylius-croatian-fiscalization-plugin
允许向克罗地亚FINA发送数据的插件
Requires
- php: ^8.0
- robier/fiscalization: dev-master
- sylius/sylius: ~1.9.0 || ~1.10.0@alpha
- symfony/lock: ^5.3
Requires (Dev)
- behat/behat: ^3.6.1
- behat/mink-selenium2-driver: ^1.4
- dmore/behat-chrome-extension: ^1.3
- dmore/chrome-mink-driver: ^2.7
- friends-of-behat/mink: ^1.8
- friends-of-behat/mink-browserkit-driver: ^1.4
- friends-of-behat/mink-debug-extension: ^2.0.0
- friends-of-behat/mink-extension: ^2.4
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.0
- friends-of-behat/symfony-extension: ^2.1
- friends-of-behat/variadic-extension: ^1.3
- friendsofsymfony/oauth-server-bundle: ^1.6 || >2.0.0-alpha.0 ^2.0@dev
- phpspec/phpspec: ^7.0
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: 0.12.85
- phpstan/phpstan-doctrine: 0.12.33
- phpstan/phpstan-strict-rules: ^0.12.0
- phpstan/phpstan-webmozart-assert: 0.12.12
- phpunit/phpunit: ^9.5
- sensiolabs/security-checker: ^6.0
- sylius-labs/coding-standard: ^4.0
- symfony/browser-kit: ^4.4 || ^5.2
- symfony/debug-bundle: ^4.4 || ^5.2
- symfony/dotenv: ^4.4 || ^5.2
- symfony/intl: ^4.4 || ^5.2
- symfony/web-profiler-bundle: ^4.4 || ^5.2
- vimeo/psalm: 4.7.1
This package is auto-updated.
Last update: 2024-09-04 16:29:45 UTC
README
注意:此包仍在开发中
使您的商店在客户购买时能够与克罗地亚FINA通信。
如果客户进行线下购买(银行转账或货到付款),则不需要向FINA发送数据。这可以通过插件配置进行设置。
每个订单都将获得其账单序列号、账单唯一标识符和发行者安全码,符合FINA标准。您将在订单详细信息视图(在管理员内部)中看到这些数据。如果由于任何原因这些数据无法进行税务化,您将看到错误日志。您可以尝试通过点击错误日志下的按钮重新发送数据。
配置
在设置配置之前,您需要以下三项
- 根证书
- 个人证书
- 个人证书密码短语
您可以从FINA获得这些。您可以在这里找到更多信息。
robier_sylius_croatian_fiscalization: environment: demo # 'demo' or 'production' disable_on_payment_codes: - bank_transfer - cash_on_delivery # depends on your configuration, by default it will be applied to all payment types resending: max_attempts: 3 certificate: demo: root_path: '%kernel.project_dir%/var/certificates/demo/root.txt' private_path: '%kernel.project_dir%/var/certificates/demo/FISKAL_1.p12' passphrase: '**********' production: root_path: '%kernel.project_dir%/var/certificates/production/root.txt' private_path: '%kernel.project_dir%/var/certificates/production/FISKAL_1.p12' passphrase: '**********' company: oib: 76915349123 inside_tax_registry: true operator: oib: 28841868149 # if null (~), company.oib will be used instead
安装
通过composer安装应用程序
composer require robier/sylius-croatian-fiscalization-plugin
在您的sylius实例中启用捆绑包
<?php return [ # ..., Robier\SyliusCroatianFiscalizationPlugin\RobierSyliusCroatianFiscalizationPlugin::class => ['all' => true], # ..., ];
将配置复制到您的项目中
# config/packages/robier_sylius_croatian_fiscalization.yaml imports: - { resource: "@RobierSyliusCroatianFiscalizationPlugin/Resources/config/config.yaml" } robier_sylius_croatian_fiscalization: environment: demo # 'demo' or 'production' disable_on_payment_codes: - bank_transfer - cash_on_delivery # depends on your configuration, by default it will be applied to all payment types resending: max_attempts: 3 certificate: demo: root_path: '%kernel.project_dir%/var/certificates/demo/root.txt' private_path: '%kernel.project_dir%/var/certificates/demo/FISKAL_1.p12' passphrase: '**********' production: root_path: '%kernel.project_dir%/var/certificates/production/root.txt' private_path: '%kernel.project_dir%/var/certificates/production/FISKAL_1.p12' passphrase: '**********' company: oib: 76915349123 inside_tax_registry: true operator: oib: 28841868149 # if null (~), company.oib will be used instead
将证书放置在git管辖范围之外的位置,并更改包配置文件中的路径
certificate.demo.*
certificate.production.*
导入路由
# config/routes/robier_sylius_croatian_fiscalization_plugin.yaml robier_sylius_croatian_fiscalization_plugin: resource: "@RobierSyliusCroatianFiscalizationPlugin/Resources/config/routing.yaml"
向数据库添加新表
bin/console doctrine:schema:update --dump-sql
# and if you are satisfied with updates then run
bin/console doctrine:schema:update --force
替换默认订单号序列生成器,以便发票号将按照克罗地亚FINA标准生成。
# config/services.yaml sylius.sequential_order_number_generator: alias: robier_sylius_croatian_fiscalization_plugin.order.number_generator
运行命令创建起始账单序列
bin/console robier:croatian-fiscalization:set-bill-sequence 1/POS1/1
序列应由公司内部文件规定,但这个库目前只支持这样的数字,即这是一个单独的通行费设备。第一个数字随着每个发送到FINA的账单的增加而增加。
清除您的应用程序缓存
bin/console clear:cache
在您的管理员中设置税务。如果您想将其应用于发送到FINA的账单,则需要创建代码为vat
的税务。运输作为免税税务添加,因为运输公司将在其账单上应用税务。
本地开发(Docker)
使用以下命令启动项目
docker/env dev on
进入容器
docker/enter dev:php # or docker/run dev:node # or docker/enter dev:mysql
停止项目
docker/env dev off
删除所有容器和卷
docker/env dev down -v -t0
当Docker环境启动时,您可以在浏览器中通过https://:8889打开您的项目。
您可以通过添加docker/.env
并覆盖值来更改nginx端口,例如。
# docker/.env file NGINX_HTTP_PORT=8888
您可以通过这种方式覆盖存在于docker/.env.dist
中的任何值。
默认mysql凭据是
MYSQL_USER=sylius MYSQL_PASSWORD=nopassword MYSQL_DATABASE=sylius
待办事项
[]添加测试[]添加更好的文档[]添加Docker安装脚本[]设置数据库[]设置固件[]设置完成后在浏览器中打开项目
文档
有关Sylius插件开发的全面指南,请参阅Sylius文档,在那里您将找到插件开发指南,其中充满了示例。
快速安装
-
运行
composer create-project sylius/plugin-skeleton ProjectName
。 -
从插件骨架根目录,运行以下命令
$ (cd tests/Application && yarn install) $ (cd tests/Application && yarn build) $ (cd tests/Application && APP_ENV=test bin/console assets:install public) $ (cd tests/Application && APP_ENV=test bin/console doctrine:database:create) $ (cd tests/Application && APP_ENV=test bin/console doctrine:schema:create)
要设置插件的数据库,请记住在tests/Application/.env
和tests/Application/.env.test
中配置您的数据库凭据。
用法
运行插件测试
-
PHPUnit
vendor/bin/phpunit
-
PHPSpec
vendor/bin/phpspec run
-
Behat(非JS场景)
vendor/bin/behat --strict --tags="~@javascript"
-
Behat(JS场景)
-
启动无头Chrome
google-chrome-stable --enable-automation --disable-background-networking --no-default-browser-check --no-first-run --disable-popup-blocking --disable-default-apps --allow-insecure-localhost --disable-translate --disable-extensions --no-sandbox --enable-features=Metal --headless --remote-debugging-port=9222 --window-size=2880,1800 --proxy-server='direct://' --proxy-bypass-list='*' http://127.0.0.1
- 安装SSL证书(仅需一次)并在
127.0.0.1:8080
上运行测试应用的web服务器
symfony server:ca:install APP_ENV=test symfony server:start --port=8080 --dir=tests/Application/public --daemon
- 运行Behat
vendor/bin/behat --strict --tags="@javascript"
-
静态分析
-
Psalm
vendor/bin/psalm
-
PHPStan
vendor/bin/phpstan analyse -c phpstan.neon -l max src/
-
-
编码标准
vendor/bin/ecs check src
使用您的插件打开Sylius
-
使用
test
环境(cd tests/Application && APP_ENV=test bin/console sylius:fixtures:load) (cd tests/Application && APP_ENV=test bin/console server:run -d public)
-
使用
dev
环境(cd tests/Application && APP_ENV=dev bin/console sylius:fixtures:load) (cd tests/Application && APP_ENV=dev bin/console server:run -d public)