定制 byrokrat/billing 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

byrokrat/billing

最新稳定版本:2.1.0

Composer 安装命令:

composer require byrokrat/billing

包简介

Data types for creating and formatting invoices

README 文档

README

ABANDONED! This package is discontinued and will not be updated.

Billing

Packagist Version Build Status Quality Score Scrutinizer Coverage

Data types for creating and formatting invoices.

Installation

composer require byrokrat/billing

Usage

Invoices are created using the InvoiceBuilder:

namespace byrokrat\billing;

use byrokrat\amount\Currency\EUR;

// 1 unit of a 100 EUR item with 25% VAT
$item = new Item('Description', new EUR('100'), 1, .25);

$invoice = (new InvoiceBuilder)
    ->setSerial('1')
    ->setSeller(new Agent('Company X'))
    ->setBuyer(new Agent('Mrs Y'))
    ->generateOcr()
    ->addItem($item)
    ->setAttribute('message', 'custom invoice message')
    ->buildInvoice();

// prints 125 (100 EUR plus 25% VAT)
echo $invoice->getInvoiceTotal();

Implementing your own billables and agents

Billing uses an interface centered design:

Item and Agent offers simple implementations of these interfaces, but you may of course provide your own implementations and extend the interfaces as needed.

API

InvoiceBuilder

Method signature description
setSerial(string $serial): self Set invoice serial number
setSeller(AgentInterface $seller): self Set seller
setBuyer(AgentInterface $buyer): self Set buyer
setOcr(string $ocr): self Set invoice reference number
generateOcr(): self Generate invoice reference number from serial number
addItem(Billable $billable): self Add billable to invoice
setBillDate(DateTimeInterface $date): self Set date of invoice creation
setExpiresAfter(int $nrOfDays): self Set number of days before invoice expires
setDeduction(Amount $deduction): self Set deduction (amount prepaid)
setAttribute(string $key, $value): self Set attribute defined by key
buildInvoice(): Invoice Build invoice

Invoice

Method signature description
getSerial(): string Get invoice serial number
getSeller(): AgentInterface Get registered seller
getBuyer(): AgentInterface Get registered buyer
getOcr(): string Get invoice reference number
getItems(): ItemBasket Get item basket
getInvoiceTotal(): Amount Get charged amount (VAT included)
getBillDate(): DateTimeInterface Get date of invoice creation
getExpiresAfter(): int Get number of days before invoice expires
getExpirationDate(): DateTimeInterface Get date when invoice expires
getDeduction(): Amount Get deducted prepaid amound
getAttribute(string $key, $default = ''): mixed Get attribute or default if attribute is not set
getAttributes(): array Get all loaded attributes

ItemBasket

Method signature description
getIterator(): Traversable Iterate over ItemEnvelope objects
getNrOfItems(): int Get number of items in basket
getNrOfUnits(): int Get number of units in basket (each item may contain multiple units)
getTotalUnitCost(): Amount Get total cost of all items (VAT excluded)
getTotalVatCost(): Amount Get total VAT cost for all items
getTotalCost(): Amount Get total cost of all items (VAT included)
getVatRates(): array Get unit and vat totals for non-zero vat rates

统计信息

  • 总下载量: 24
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 6
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 6
  • Watchers: 3
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: Unlicense
  • 更新时间: 2015-02-11