ricardokovalski / installments-calculator
Biblioteca para calcular juros em parcelamentos.
Requires
- php: >=5.6
- ext-json: *
- ricardokovalski/interest-calculation: v1.0.2
- ricardokovalski/money-formatter: v1.0.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2024-11-06 19:36:05 UTC
README
Uma biblioteca PHP para calcular juros de parcelamentos.
Sobre
ricardokovalski/installments-calculator é uma biblioteca PHP que serve para calcular juros de parcelamentos.
Instalação
Instale este pacote como uma dependência usando Composer.
composer require ricardokovalski/installments-calculator
Uso básico
InstallmentCalculationConfig
Para obtermos uma coleção com as parcelas calculadas, inicialmente devemos instanciar um objeto InstallmentCalculationConfig. Esse objeto requer um tipo de juros em seu construtor.
Com a classe InterestCalculation, podemos instanciar um tipo de juros qualquer, ou seja, Financial, Compound e Simple.
use RicardoKovalski\InstallmentsCalculator\Adapters\InterestCalculation; use RicardoKovalski\InstallmentsCalculator\InstallmentCalculationConfig; $interest = InterestCalculation::Financial(2.99); $installmentCalculationConfig = new InstallmentCalculationConfig($interest);
Ainda no objeto InstallmentCalculationConfig, podemos modificar algumas configurações padrões, por exemplo:
use RicardoKovalski\InstallmentsCalculator\Adapters\InterestCalculation; use RicardoKovalski\InstallmentsCalculator\InstallmentCalculationConfig; $interest = InterestCalculation::Financial(2.99); $installmentCalculationConfig = new InstallmentCalculationConfig($interest); $interestCompound = InterestCalculation::Compound(1.99); $installmentCalculationConfig->resetInterest($interestCompound);
No exemplo acima, resetamos o tipo de juros para Compound, sendo que inicialmente, InstallmentCalculationConfig havia sido instanciada com o tipo Financial.
Além de resetar o tipo de juros, podemos definir o número máximo de pacelas. Por padrão, esse número máximo de parcelas é 12.
use RicardoKovalski\InstallmentsCalculator\Adapters\InterestCalculation; use RicardoKovalski\InstallmentsCalculator\InstallmentCalculationConfig; $interest = InterestCalculation::Financial(2.99); $installmentCalculationConfig = new InstallmentCalculationConfig($interest); $installmentCalculationConfig->resetNumberMaxInstallments(6);
No exemplo acima, acabamos de resetar o número máximo de pacelas para 6.
Outras opções que temos disponível é de limitar o parcelamento em uma valor mínimo e se este estiver configurado para limitar, podemos definir o valor limite. Por padrão, já está habilitado esse limite no valor de 5.00.
use RicardoKovalski\InstallmentsCalculator\Adapters\InterestCalculation; use RicardoKovalski\InstallmentsCalculator\InstallmentCalculationConfig; $interest = InterestCalculation::Financial(2.99); $installmentCalculationConfig = new InstallmentCalculationConfig($interest); $installmentCalculationConfig->appendLimitValueInstallment(5.00);
No exemplo anterior, adicionamos mais 5.00 ao valor limite, ou seja, agora as parcelas serão calculadas até que a última parcela não seja inferior à 10.00. Caso queira que não se tenha esse limite configurado, basta desativar.
use RicardoKovalski\InstallmentsCalculator\Adapters\InterestCalculation; use RicardoKovalski\InstallmentsCalculator\InstallmentCalculationConfig; $interest = InterestCalculation::Financial(2.99); $installmentCalculationConfig = new InstallmentCalculationConfig($interest); $installmentCalculationConfig->resetLimitInstallments(false);
InstallmentCalculation
Para obter uma coleção de parcelas calculadas.
use RicardoKovalski\InstallmentsCalculator\Adapters\InterestCalculation; use RicardoKovalski\InstallmentsCalculator\InstallmentCalculation; use RicardoKovalski\InstallmentsCalculator\InstallmentCalculationConfig; $interest = InterestCalculation::Financial(2.99); $installmentCalculationConfig = new InstallmentCalculationConfig($interest); $installmentCalculationConfig->resetLimitValueInstallment(10.00); $installmentCalculation = new InstallmentCalculation($installmentCalculationConfig); $installmentCalculation->appendTotalPurchase(343.90); $installmentCalculation->calculate(); $collection = $installmentCalculation->getCollection();
Formatters
MonetaryFormatterConfig
use RicardoKovalski\InstallmentsCalculator\Adapters\MonetaryFormatterConfig; use RicardoKovalski\InstallmentsCalculator\Enums\IsoCodes; use RicardoKovalski\InstallmentsCalculator\Enums\Locale; $formatterConfig = MonetaryFormatterConfig::BRL(Locale::PT_BR); $formatterConfig->resetLocale(Locale::EN_US) ->resetCurrencyIsoCode(IsoCodes::USD) ->resetFractionDigits(3);
MonetaryFormatter
use RicardoKovalski\InstallmentsCalculator\Adapters\MonetaryFormatter; use RicardoKovalski\InstallmentsCalculator\Adapters\MonetaryFormatterConfig; use RicardoKovalski\InstallmentsCalculator\Enums\Locale; $formatterConfig = MonetaryFormatterConfig::BRL(Locale::PT_BR); $decimalFormatter = MonetaryFormatter::toDecimal($formatterConfig); $intlCurrencyFormatter = MonetaryFormatter::toIntlCurrency($formatterConfig); $intlDecimalFormatter = MonetaryFormatter::toIntlDecimal($formatterConfig);
Exemplo completo
use RicardoKovalski\InstallmentsCalculator\Adapters\InterestCalculation; use RicardoKovalski\InstallmentsCalculator\Adapters\MonetaryFormatter; use RicardoKovalski\InstallmentsCalculator\Adapters\MonetaryFormatterConfig; use RicardoKovalski\InstallmentsCalculator\Enums\Locale; use RicardoKovalski\InstallmentsCalculator\InstallmentCalculation; use RicardoKovalski\InstallmentsCalculator\InstallmentCalculationConfig; $interest = InterestCalculation::Financial(2.99); $installmentCalculationConfig = new InstallmentCalculationConfig($interest); $installmentCalculationConfig->resetLimitValueInstallment(10.00); $installmentCalculation = new InstallmentCalculation($installmentCalculationConfig); $installmentCalculation->appendTotalPurchase(343.90); $installmentCalculation->calculate(); $collection = $installmentCalculation->getCollection(); $formatterConfig = MonetaryFormatterConfig::BRL(Locale::PT_BR); $intlCurrencyFormatter = MonetaryFormatter::toIntlCurrency($formatterConfig); foreach ($collection as $installment) { $intlCurrencyFormatter->format($installment->getValueInstallment()); }
Copyright and License
The ricardokovalski/installments-calculator library is copyright © Ricardo Kovalski and licensed for use under the terms of the MIT License (MIT). Please see LICENSE for more information.