You are here

public static function PHPExcel_Calculation_Financial::AMORLINC in Loft Data Grids 6.2

Same name and namespace in other branches
  1. 7.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Financial.php \PHPExcel_Calculation_Financial::AMORLINC()

* AMORLINC * * Returns the depreciation for each accounting period. * This function is provided for the French accounting system. If an asset is purchased in * the middle of the accounting period, the prorated depreciation is taken into account. * * Excel Function: * AMORLINC(cost,purchased,firstPeriod,salvage,period,rate[,basis]) * * @access public * @category Financial Functions *

Parameters

float cost The cost of the asset.: * @param mixed purchased Date of the purchase of the asset. * @param mixed firstPeriod Date of the end of the first period. * @param mixed salvage The salvage value at the end of the life of the asset. * @param float period The period. * @param float rate Rate of depreciation. * @param integer basis The type of day count to use. * 0 or omitted US (NASD) 30/360 * 1 Actual/actual * 2 Actual/360 * 3 Actual/365 * 4 European 30/360 * @return float

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Calculation/Financial.php, line 385

Class

PHPExcel_Calculation_Financial
PHPExcel_Calculation_Financial

Code

public static function AMORLINC($cost, $purchased, $firstPeriod, $salvage, $period, $rate, $basis = 0) {
  $cost = PHPExcel_Calculation_Functions::flattenSingleValue($cost);
  $purchased = PHPExcel_Calculation_Functions::flattenSingleValue($purchased);
  $firstPeriod = PHPExcel_Calculation_Functions::flattenSingleValue($firstPeriod);
  $salvage = PHPExcel_Calculation_Functions::flattenSingleValue($salvage);
  $period = PHPExcel_Calculation_Functions::flattenSingleValue($period);
  $rate = PHPExcel_Calculation_Functions::flattenSingleValue($rate);
  $basis = is_null($basis) ? 0 : (int) PHPExcel_Calculation_Functions::flattenSingleValue($basis);
  $fOneRate = $cost * $rate;
  $fCostDelta = $cost - $salvage;

  //	Note, quirky variation for leap years on the YEARFRAC for this function
  $purchasedYear = PHPExcel_Calculation_DateTime::YEAR($purchased);
  $yearFrac = PHPExcel_Calculation_DateTime::YEARFRAC($purchased, $firstPeriod, $basis);
  if ($basis == 1 && $yearFrac < 1 && PHPExcel_Calculation_DateTime::_isLeapYear($purchasedYear)) {
    $yearFrac *= 365 / 366;
  }
  $f0Rate = $yearFrac * $rate * $cost;
  $nNumOfFullPeriods = intval(($cost - $salvage - $f0Rate) / $fOneRate);
  if ($period == 0) {
    return $f0Rate;
  }
  elseif ($period <= $nNumOfFullPeriods) {
    return $fOneRate;
  }
  elseif ($period == $nNumOfFullPeriods + 1) {
    return $fCostDelta - $fOneRate * $nNumOfFullPeriods - $f0Rate;
  }
  else {
    return 0.0;
  }
}