kostikpenzin/credit-calc 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

kostikpenzin/credit-calc

最新稳定版本:v0.1.2

Composer 安装命令:

composer require kostikpenzin/credit-calc

包简介

Calculator for calculating the loan repayment schedule using annuity/differentiated repayment methods. You can specify partial early repayment, as well as take into account one-time/periodic commissions. The package is easily expanded with our own algorithms for calculating the repayment schedule.

README 文档

README

Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads

Calculation of the loan repayment schedule with the possibility of specifying early repayment payments. Both the annuity repayment order and the differentiated one are supported.

All monetary values in the package are integers and represent the sum with cents.

Installation

Сomposer: composer require kostikpenzin/credit-calc

Using

require __DIR__ . '/../vendor/autoload.php';

use CreditCalc\Calculator;
use CreditCalc\CreditParams;
use CreditCalc\UnexpectedPayment;
use CreditCalc\RepaymentSchedule;

$params = new CreditParams(new DateTime('2023-10-31 00:00:00'), 100000000, 990, 12, CreditParams::DURATION_MONTH);
$unexpectedPayments = [
    new UnexpectedPayment(10000000, new DateTime('2023-12-15 00:00:00'), UnexpectedPayment::LESS_PAYMENT),
    new UnexpectedPayment(3565411, new DateTime('2023-01-13 00:00:00'), UnexpectedPayment::LESS_LOAN_PERIOD),
    new UnexpectedPayment(15000000, new DateTime('2023-02-29 00:00:00'), UnexpectedPayment::LESS_LOAN_PERIOD),
];

$calculator = new Calculator;

// we consider the repayment schedule with annuity payments
// So that there are differentiated payments, we specify Calculator::TYPE_DIFFERENTIAL as the third parameter

/** @var RepaymentSchedule $schedule Payment schedule */
$schedule = $calculator->calculate($params, $unexpectedPayments, Calculator::TYPE_ANNUITY);
foreach ($schedule as $repayment) {
    /** @var DateTime $date Date of the next payment period */
    $date = $repayment->getDate()->format('d.m.Y');

    /** @var int $payment The amount of the next payment */
    $payment = $repayment->getPayment();

    /** @var int $percents Interest on the next payment */
    $percents = $repayment->getPercents();

    /** @var int $body The body of the loan for the next payment */
    $body = $repayment->getBody();

    /** @var int $body Loan balance after payment */
    $balance = $repayment->getBalance();
}

/** @var int $total Get the amount of all loan payments */
$total = $schedule->calculateTotalPayments();

/** @var int $overpayment Get the amount of overpayment on the loan */
$overpayment = $schedule->calculateOverpayment();

/** @var int $requestedSum Get the loan amount */
$requestedSum = $schedule->getCreditParams()->getRequestedSum();

/** @var string psk The full cost of the loan as a percentage per annum with rounding up to 3 digits */
$psk = $schedule->calculateTotalCost();

统计信息

  • 总下载量: 1.25k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-04-19