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
实现来处理。