assimtech/money

This package is abandoned and no longer maintained. The author suggests using the assimtech/fiat package instead.

Money, Currency and Accounting

1.1.3 2016-10-19 09:45 UTC

This package is auto-updated.

Last update: 2019-04-10 02:46:48 UTC


README

Build Status Scrutinizer Code Quality Code Coverage

Provides models for representing Money and an Accountant performing arithmetic on Money without causing rounding errors

THIS REPOSITORY HAS BEEN MOVED TO Assimtech\Fiat

The last version of Assimtech\Money is 1.1.3, Assimtech\Fiat follows on from 2.0.0. The move is due to the naming of Assimtech\Money\Money.

The Models

Currency

$usd = new Assimtech\Money\Currency('USD');
echo (string)$usd; // Outputs USD
echo $usd->getFractionDigits(); // Outputs 2

$jpy = new Assimtech\Money\Currency('JPY');
echo $jpy->getFractionDigits(); // Outputs 0

$iqd = new Assimtech\Money\Currency('IQD');
echo $iqd->getFractionDigits(); // Outputs 3

Money

// assuming Locale is en-US
$money = new Money(pi(), $usd);
echo (string)$money; // Outputs 3.14 USD
echo $money->getFormattedAmount(); // Outputs 3.14
echo $money->getFormattedAmount('de-DE'); // Outputs 3,14

The Accountant

$accountant = new Assimtech\Money\Accountant();

$threeUSD = $accountant->add($oneUSD, $twoUSD);

$sixUSD = $accountant->subtract($tenUSD, $fourUSD);

$eightUSD = $accountant->multiply($fourUSD, 2);

$threeUSD = $accountant->divide($nineUSD, 3);

$sixUSD = $accountant->sum(array(
    $oneUSD,
    $twoUSD,
    $threeUSD,
));

Twig extension

The accountant is also exposed as a Twig extension

{{ add_money(money1, money2) }}

{{ subtract_money(money1, money2) }}

{{ multiply_money(money, fraction) }}

{{ divide_money(money, fraction) }}

{{ sum_money([ money1, money2, money3 ]) }}

Frameworks

Please see MoneyBundle for integration with Symfony 2