Code Duplication    Length = 24-24 lines in 2 locations

src/PhpSpreadsheet/Calculation/Financial.php 2 locations

@@ 1769-1792 (lines=24) @@
1766
     *
1767
     * @return float
1768
     */
1769
    public static function PRICEDISC($settlement, $maturity, $discount, $redemption, $basis = 0)
1770
    {
1771
        $settlement = Functions::flattenSingleValue($settlement);
1772
        $maturity = Functions::flattenSingleValue($maturity);
1773
        $discount = (float) Functions::flattenSingleValue($discount);
1774
        $redemption = (float) Functions::flattenSingleValue($redemption);
1775
        $basis = (int) Functions::flattenSingleValue($basis);
1776
1777
        //    Validate
1778
        if ((is_numeric($discount)) && (is_numeric($redemption)) && (is_numeric($basis))) {
1779
            if (($discount <= 0) || ($redemption <= 0)) {
1780
                return Functions::NAN();
1781
            }
1782
            $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity, $basis);
1783
            if (!is_numeric($daysBetweenSettlementAndMaturity)) {
1784
                //    return date error
1785
                return $daysBetweenSettlementAndMaturity;
1786
            }
1787
1788
            return $redemption * (1 - $discount * $daysBetweenSettlementAndMaturity);
1789
        }
1790
1791
        return Functions::VALUE();
1792
    }
1793
1794
    /**
1795
     * PRICEMAT.
@@ 2006-2029 (lines=24) @@
2003
     *
2004
     * @return float
2005
     */
2006
    public static function RECEIVED($settlement, $maturity, $investment, $discount, $basis = 0)
2007
    {
2008
        $settlement = Functions::flattenSingleValue($settlement);
2009
        $maturity = Functions::flattenSingleValue($maturity);
2010
        $investment = (float) Functions::flattenSingleValue($investment);
2011
        $discount = (float) Functions::flattenSingleValue($discount);
2012
        $basis = (int) Functions::flattenSingleValue($basis);
2013
2014
        //    Validate
2015
        if ((is_numeric($investment)) && (is_numeric($discount)) && (is_numeric($basis))) {
2016
            if (($investment <= 0) || ($discount <= 0)) {
2017
                return Functions::NAN();
2018
            }
2019
            $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity, $basis);
2020
            if (!is_numeric($daysBetweenSettlementAndMaturity)) {
2021
                //    return date error
2022
                return $daysBetweenSettlementAndMaturity;
2023
            }
2024
2025
            return $investment / (1 - ($discount * $daysBetweenSettlementAndMaturity));
2026
        }
2027
2028
        return Functions::VALUE();
2029
    }
2030
2031
    /**
2032
     * SLN.