Vendor/phpspreadsheet/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Financial.php
public static function AMORLINC($cost, $purchased, $firstPeriod, $salvage, $period, $rate, $basis = 0)
    {
        $cost = Functions::flattenSingleValue($cost);
        $purchased = Functions::flattenSingleValue($purchased);
        $firstPeriod = Functions::flattenSingleValue($firstPeriod);
        $salvage = Functions::flattenSingleValue($salvage);
        $period = Functions::flattenSingleValue($period);
        $rate = Functions::flattenSingleValue($rate);
        $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis);

        $fOneRate = $cost * $rate;
        $fCostDelta = $cost - $salvage;
        //    Note, quirky variation for leap years on the YEARFRAC for this function
        $purchasedYear = DateTime::YEAR($purchased);
        $yearFrac = DateTime::YEARFRAC($purchased, $firstPeriod, $basis);

        if (($basis == 1) && ($yearFrac < 1) && (DateTime::isLeapYear($purchasedYear))) {
            $yearFrac *= 365 / 366;
        }

        $f0Rate = $yearFrac * $rate * $cost;
        $nNumOfFullPeriods = (int) (($cost - $salvage - $f0Rate) / $fOneRate);

        if ($period == 0) {
            return $f0Rate;
        } elseif ($period <= $nNumOfFullPeriods) {
            return $fOneRate;
        } elseif ($period == ($nNumOfFullPeriods + 1)) {
            return $fCostDelta - $fOneRate * $nNumOfFullPeriods - $f0Rate;
        }

        return 0.0;
    }
public static function AMORLINC($cost, $purchased, $firstPeriod, $salvage, $period, $rate, $basis = 0)
    {
        $cost = Functions::flattenSingleValue($cost);
        $purchased = Functions::flattenSingleValue($purchased);
        $firstPeriod = Functions::flattenSingleValue($firstPeriod);
        $salvage = Functions::flattenSingleValue($salvage);
        $period = Functions::flattenSingleValue($period);
        $rate = Functions::flattenSingleValue($rate);
        $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis);

        $fOneRate = $cost * $rate;
        $fCostDelta = $cost - $salvage;
        //    Note, quirky variation for leap years on the YEARFRAC for this function
        $purchasedYear = DateTime::YEAR($purchased);
        $yearFrac = DateTime::YEARFRAC($purchased, $firstPeriod, $basis);

        if (($basis == 1) && ($yearFrac < 1) && (DateTime::isLeapYear($purchasedYear))) {
            $yearFrac *= 365 / 366;
        }

        $f0Rate = $yearFrac * $rate * $cost;
        $nNumOfFullPeriods = (int) (($cost - $salvage - $f0Rate) / $fOneRate);

        if ($period == 0) {
            return $f0Rate;
        } elseif ($period <= $nNumOfFullPeriods) {
            return $fOneRate;
        } elseif ($period == ($nNumOfFullPeriods + 1)) {
            return $fCostDelta - $fOneRate * $nNumOfFullPeriods - $f0Rate;
        }

        return 0.0;
    }
public static function AMORLINC ( $ cost , $ purchased , $ firstPeriod , $ salvage , $ period , $ rate , $ basis = 0 ) { $ cost = Functions :: flattenSingleValue ( $ cost ) ; $ purchased = Functions :: flattenSingleValue ( $ purchased ) ; $ firstPeriod = Functions :: flattenSingleValue ( $ firstPeriod ) ; $ salvage = Functions :: flattenSingleValue ( $ salvage ) ; $ period = Functions :: flattenSingleValue ( $ period ) ; $ rate = Functions :: flattenSingleValue ( $ rate ) ; $ basis = ( $ basis === null ) ? 0 : ( int ) Functions :: flattenSingleValue ( $ basis ) ; $ fOneRate = $ cost * $ rate ; $ fCostDelta = $ cost - $ salvage ; //    Note, quirky variation for leap years on the YEARFRAC for this function $ purchasedYear = DateTime :: YEAR ( $ purchased ) ; $ yearFrac = DateTime :: YEARFRAC ( $ purchased , $ firstPeriod , $ basis ) ; if ( ( $ basis == 1 ) && ( $ yearFrac < 1 ) && ( DateTime :: isLeapYear ( $ purchasedYear ) ) ) { $ yearFrac *= 365 / 366 ; } $ f0Rate = $ yearFrac * $ rate * $ cost ; $ nNumOfFullPeriods = ( int ) ( ( $ cost - $ salvage - $ f0Rate ) / $ fOneRate ) ; if ( $ period == 0 ) { return $ f0Rate ; } elseif ( $ period <= $ nNumOfFullPeriods ) { return $ fOneRate ; } elseif ( $ period == ( $ nNumOfFullPeriods + 1 ) ) { return $ fCostDelta - $ fOneRate * $ nNumOfFullPeriods - $ f0Rate ; } return 0.0 ; }
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])

@category Financial Functions

@param 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 int $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
AMORLINC .