我在 Trevidia 中实现循环功能的方式
发布: (2025年12月14日 GMT+8 04:55)
2 min read
原文: Dev.to
Source: Dev.to
Trevidia 中的循环发票
- 将发票设置为 每日、每周、每两周、每月、每季或每年 循环。
- 自动计算下一个发票日期。
- 保持发票之间的关联,便于用户随时间跟踪付款历史。
- 随时编辑或停止循环发票。
- 无需 hack。无重复杂乱。唯一真实来源。
每个循环发票都链接到原始发票数据,因此循环频率和下一个循环日期均来源于该唯一数据源。
实现细节
我创建了一个 Laravel 调度任务,每天运行名为 ProcessRecurringInvoices 的作业。该作业:
- 扫描数据库,查找 下一个循环日期 与当前日期相匹配的发票。
- 从原始发票中复制相关数值。
- 根据前一张发票的编号递增发票号码。
- 将新发票发送至原始发票使用的电子邮件地址,前提是收件人未取消邮件通知订阅。
这种方式确保循环发票能够自动生成,无需手动复制,从而保持数据结构的整洁和一致。