quantic-telecom / invoices
管理发票的简单方法。
Requires
- php: >=5.6.0
- illuminate/support: ~5.2.0
- illuminate/view: ~5.2.0
- nesbot/carbon: ~1.0
- symfony/process: ~3.0.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~5.0
- squizlabs/php_codesniffer: ~2.0
This package is auto-updated.
Last update: 2022-02-01 12:44:41 UTC
README
此包为您提供管理发票的简单方法。
安装
按照常规,通过Composer安装Invoices。
"require": { "quantic-telecom/invoices": "~1.0" }
合同
发票
发票是一个继承自AbstractInvoice的对象。它包含一个ID、一个客户(由CustomerInterface表示)和两个日期:到期日和创建日期(这两个日期由Carbon实例表示)。
它提供计算总价(含税和不含税)的抽象方法。当前,法国增值税率被硬编码在AbstractInvoice类中($vatRate静态属性),但在未来的版本中将将其提取出来。实现AbstractInvoice的类不必使用此值。增值税金额是根据getIncludingTaxTotalPrice和getExcludingTaxTotalPrice抽象方法之间的差值计算得出的。
可以通过设置PaymentInterface来表示已付款的发票(使用isPaid方法)。
容器
发票也是一个项目和项目组的容器。
项目(由ItemInterface表示)是发票的一个简单行(名称、数量、单价和含税、不含税总价)。
项目组容器(由GroupOfItemsInterface表示)有一个名称。作为发票,它也是项目和项目组的容器,并可以递归地包含项目和项目组。
发票生成
可以通过HtmlGeneratorInterface生成HTML格式的发票,或者通过PdfGeneratorInterface生成PDF格式的发票(请注意,我们实现的PdfGeneratorInterface需要一个HtmlGeneratorInterface实现来处理)。
实现
发票
此包提供了两个AbstractInvoice的实现
ExcludingTaxInvoice,它将所有项目和不分组项目的不含税价格相加,然后根据该值计算含税价格。IncludingTaxInvoice,它将所有项目和分组项目的含税价格相加,然后根据该值计算不含税价格。
容器
此包还提供了对ItemInterface(Item)和GroupOfItemsInterface(GroupOfItems)的基本实现。
生成器
HtmlGeneratorInterface的实现名为HtmlGenerator,并基于Laravel视图。
名为PdfGenerator的PdfGeneratorInterface实现基于PhantomJS(一个JavaScript浏览器)。我们实现的PdfGeneratorInterface需要一个HtmlGeneratorInterface实现来处理。