Code Duplication    Length = 24-24 lines in 2 locations

src/PhpSpreadsheet/Calculation/Financial.php 2 locations

@@ 1753-1776 (lines=24) @@
1750
     *
1751
     * @return float
1752
     */
1753
    public static function PRICEDISC($settlement, $maturity, $discount, $redemption, $basis = 0)
1754
    {
1755
        $settlement = Functions::flattenSingleValue($settlement);
1756
        $maturity = Functions::flattenSingleValue($maturity);
1757
        $discount = (float) Functions::flattenSingleValue($discount);
1758
        $redemption = (float) Functions::flattenSingleValue($redemption);
1759
        $basis = (int) Functions::flattenSingleValue($basis);
1760
1761
        //    Validate
1762
        if ((is_numeric($discount)) && (is_numeric($redemption)) && (is_numeric($basis))) {
1763
            if (($discount <= 0) || ($redemption <= 0)) {
1764
                return Functions::NAN();
1765
            }
1766
            $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity, $basis);
1767
            if (!is_numeric($daysBetweenSettlementAndMaturity)) {
1768
                //    return date error
1769
                return $daysBetweenSettlementAndMaturity;
1770
            }
1771
1772
            return $redemption * (1 - $discount * $daysBetweenSettlementAndMaturity);
1773
        }
1774
1775
        return Functions::VALUE();
1776
    }
1777
1778
    /**
1779
     * PRICEMAT.
@@ 1990-2013 (lines=24) @@
1987
     *
1988
     * @return float
1989
     */
1990
    public static function RECEIVED($settlement, $maturity, $investment, $discount, $basis = 0)
1991
    {
1992
        $settlement = Functions::flattenSingleValue($settlement);
1993
        $maturity = Functions::flattenSingleValue($maturity);
1994
        $investment = (float) Functions::flattenSingleValue($investment);
1995
        $discount = (float) Functions::flattenSingleValue($discount);
1996
        $basis = (int) Functions::flattenSingleValue($basis);
1997
1998
        //    Validate
1999
        if ((is_numeric($investment)) && (is_numeric($discount)) && (is_numeric($basis))) {
2000
            if (($investment <= 0) || ($discount <= 0)) {
2001
                return Functions::NAN();
2002
            }
2003
            $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity, $basis);
2004
            if (!is_numeric($daysBetweenSettlementAndMaturity)) {
2005
                //    return date error
2006
                return $daysBetweenSettlementAndMaturity;
2007
            }
2008
2009
            return $investment / (1 - ($discount * $daysBetweenSettlementAndMaturity));
2010
        }
2011
2012
        return Functions::VALUE();
2013
    }
2014
2015
    /**
2016
     * SLN.