带条纹的Laravel收银员:发票号码

时间:2017-04-13 08:42:13

标签: laravel laravel-5 stripe-payments laravel-5.4 laravel-cashier

不确定其他地方是否相同,但在我的国家/地区,发票号码必须是公司服务的连续编号。

我的Laravel应用程序通过订阅销售服务。它必须生成包含序号(abcdef-0001abcdef-0002等)的发票。我使用Laravel Cashier和Stripe,因为它们都很容易配置。现在我要生成发票。但Laravel Cashier的发票没有任何序列号。我可以访问一个用户"发票"用:

$invoices = $user->invoices();

但它似乎不是真正的发票,只是来自Stripe的付款信息。为每个用户调用此函数以获取发票总数,然后计算序号不是一个选项。

如何在不破坏Laravel Cashier(+ Stripe)构建的简单模型的情况下轻松处理发票的序号?有没有正确的方法来做这种事情?或者我是否需要为这种需求重新开发一个完整的系统?

2 个答案:

答案 0 :(得分:1)

只需创建自己的模型BizInvoice,给它一个字段invoiceID(就像你喜欢它..你可以查询最后一个发票...获取id ...用自定义逻辑增加1或只使用默认的id字段)并与用户模型和Laravel出纳支付模式建立关系。

这样您就可以通过用户或/和付款访问唯一(真实)发票编号(ID)

答案 1 :(得分:0)

Invoices in Laravel Cashier 实际上是对 Stripe invoice objects 的抽象。虽然 Stripe 提供了一个连续的发票编号,但 Cashier 出于某种原因并没有公开它,但有一个逃生口:通过在发票对象上调用 asStripeInvoice(),您可以检索底层的 Stripe 对象。

$lastInvoice = $billable->invoices()->last();

// A sequential invoice number as provided by Stripe, 
// something like "6EEE0995-0001"
$invoiceNumber = $lastInvoice->asStripeInvoice()->number;