remp / crm-invoices-module
CRM 发票模块
Requires
- php: ^8.1
- contributte/pdf: ^7.0
- mpdf/mpdf: ^8.0
- dev-master
- 3.4.0
- 3.3.0
- 3.2.0
- 3.1.0
- 3.0.0
- 2.11.0
- 2.10.0
- 2.9.0
- 2.8.0
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.2
- 2.0.1
- 2.0.0
- 1.2.0
- 1.1.0
- 1.0.0
- 1.0.0-beta2
- 1.0.0-beta1
- 0.39.0
- 0.38.0
- 0.37.0
- 0.36.0
- 0.35.0
- 0.34.0
- 0.33.0
- 0.32.0
- 0.31.0
- 0.30.0
- 0.29.0
- 0.28.0
- 0.27.0
- 0.26.0
- 0.25.0
- 0.24.0
- 0.23.0
- 0.22.0
- 0.21.0
- 0.20.0
- 0.18.0
- 0.17.0
- 0.16.0
- 0.15.0
- 0.14.0
- 0.13.0
- 0.12.0
- 0.11.0
- 0.10.0
- 0.9.0
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.0
- 0.6.0
- 0.5.0
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.2
- 0.3.1
- 0.3.0
This package is auto-updated.
Last update: 2024-09-20 12:57:41 UTC
README
发票模块是支付模块的扩展,用于提供已确认支付的发票。您可以根据以下部分自定义发票布局。
要生成发票,用户需要提供发票地址。这将在支付成功页面请求,可以在客户区域随时更改。
发票始终动态生成 - 系统不会存储生成的PDF文件以供以后使用。如果模板更改,旧发票的模板也可能更改。用于生成的发票数据在第一次生成时存储,并且永远不会更改。因此,模板可以更改,但数据不会。
由于欧盟立法,用户只能在支付后15天内的期限内请求生成发票(如果未自动生成)。其他情况需要您和您的会计团队手动处理。
安装模块
我们建议使用Composer进行安装和更新管理。
composer require remp/crm-invoices-module
启用模块
将已安装的扩展添加到您的app/config/config.neon
文件中。
extensions: - Crm\InvoicesModule\DI\InvoicesModuleExtension
计划任务
模块不提供任何需要定期执行的命令。
服务命令
模块可能会提供在部署环境中运行的服务命令。主要处理内部更改并防止直接与数据库交互。您可以通过在运行命令时使用--help
开关来显示所需和可选的参数。
发票模块提供
invoice:send
:根据支付的可变符号手动发送发票。
发票编号
默认情况下,CRM使用月度序列(每年每月都有其自己的序列)并根据服务交付日期(实际上是支付日期)生成发票编号。
您可以通过添加自己的InvoiceNumberInterface
实现并覆盖默认实现来覆盖生成发票编号序列的方式,在您的config.neon
中
services: # ... invoiceNumber: Crm\FooModule\Repository\InvoiceNumber
发票模板
发票生成器使用.latte
模板生成发票PDF。默认情况下,该模块使用我们准备的简单通用布局。您可以看到布局的源代码。
在示例中,您可以看到演示者为您提供了$invoice
变量。发票根据支付和发票的引用存储为payment的invoice_id
属性。发票对支付的引用是variable_symbol
,尽管它是间接的,并不保证(没有外键)。
每张发票都有一个对发票编号的引用,它是一组唯一的字符串标识符列表,保证根据delivery_date
(交货日期)保持顺序,用于会计目的。您可以通过访问$invoice->invoice_number->number
来读取编号。
以下是invoice提供的属性列表
除此之外,应用程序配置允许您设置一些额外的值,这些值可以在发票模板中使用。您始终可以在您的模块种子器中创建自己的配置字段 - 以发票模块的配置种子器为例。
这些配置值是全局的,可以通过$config->get('foo')
获取 - 将foo
替换为以下选项之一
可以通过$invoice->related('invoice_items')
获取发票项目。项目基于在发票首次生成时存在的支付项目生成。从那个点开始,项目被单独保存。以下是每个发票项目提供的属性列表
如果您想使用自己的布局,请使用上述描述的变量准备自己的模板。一旦准备好,将以下片段添加到您的app/config/config.local.neon
文件中(根据需要进行修改)
invoiceGenerator: setup: - setTemplateFile('%appDir%/modules/FooModule/templates/invoices/foo.latte')
该片段告诉发票生成器使用给定路径提供的模板而不是默认模板。
将发票附加到电子邮件通知中
默认情况下,PDF发票将附加到包含支付引用(作为NotificationEvent
中的参数)的每个电子邮件通知中。此外,此通知必须是应用程序处理特定触发器(Hermes消息)的结果。通常,这发生在Hermes消息触发一个场景(有关详细信息,请参阅ScenariosModule)并发出NotificationEvent
(这是通过电子邮件节点完成的)。
为了限制在附加发票时应接受哪些Hermes消息(有关实现细节,请参阅PreNotificationEventHandler
),将以下配置添加到您的config.local.neon
文件中,列出允许的Hermes消息类型
invoicesPreNotificationEventHandler: setup: - enableForNotificationHermesTypes('new-subscription', 'payment-status-change', 'some-other-hermes-message')
组件
DownloadReceiptButton
前端/管理员的下载支付收据按钮。
InvoiceButton
前端/管理员的下载支付发票按钮。
InvoiceLabel
用户详细信息支付列表发票标签。
PaymentSuccessInvoiceWidget
从支付成功页面下载发票的小部件。