此包已被废弃且不再维护。未建议替代包。

管理发票的简单方法。

2.0.0 2016-01-26 10:25 UTC

This package is auto-updated.

Last update: 2022-02-01 12:44:41 UTC


README

Build Status

此包为您提供管理发票的简单方法。

安装

按照常规,通过Composer安装Invoices。

"require": {
    "quantic-telecom/invoices": "~1.0"
}

合同

发票

发票是一个继承自AbstractInvoice的对象。它包含一个ID、一个客户(由CustomerInterface表示)和两个日期:到期日和创建日期(这两个日期由Carbon实例表示)。

它提供计算总价(含税和不含税)的抽象方法。当前,法国增值税率被硬编码在AbstractInvoice类中($vatRate静态属性),但在未来的版本中将将其提取出来。实现AbstractInvoice的类不必使用此值。增值税金额是根据getIncludingTaxTotalPricegetExcludingTaxTotalPrice抽象方法之间的差值计算得出的。

可以通过设置PaymentInterface来表示已付款的发票(使用isPaid方法)。

容器

发票也是一个项目和项目组的容器。

项目(由ItemInterface表示)是发票的一个简单行(名称、数量、单价和含税、不含税总价)。

项目组容器(由GroupOfItemsInterface表示)有一个名称。作为发票,它也是项目和项目组的容器,并可以递归地包含项目和项目组。

发票生成

可以通过HtmlGeneratorInterface生成HTML格式的发票,或者通过PdfGeneratorInterface生成PDF格式的发票(请注意,我们实现的PdfGeneratorInterface需要一个HtmlGeneratorInterface实现来处理)。

实现

发票

此包提供了两个AbstractInvoice的实现

  • ExcludingTaxInvoice,它将所有项目和不分组项目的不含税价格相加,然后根据该值计算含税价格。
  • IncludingTaxInvoice,它将所有项目和分组项目的含税价格相加,然后根据该值计算不含税价格。

容器

此包还提供了对ItemInterfaceItem)和GroupOfItemsInterfaceGroupOfItems)的基本实现。

生成器

HtmlGeneratorInterface的实现名为HtmlGenerator,并基于Laravel视图。

名为PdfGeneratorPdfGeneratorInterface实现基于PhantomJS(一个JavaScript浏览器)。我们实现的PdfGeneratorInterface需要一个HtmlGeneratorInterface实现来处理。