init
This commit is contained in:
commit
72a26edcff
22092 changed files with 2101903 additions and 0 deletions
|
|
@ -0,0 +1,122 @@
|
|||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheet\Calculation\Financial;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\DateTimeExcel;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Exception;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Financial\Constants as FinancialConstants;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Information\ExcelError;
|
||||
|
||||
class FinancialValidations
|
||||
{
|
||||
public static function validateDate(mixed $date): float
|
||||
{
|
||||
return DateTimeExcel\Helpers::getDateValue($date);
|
||||
}
|
||||
|
||||
public static function validateSettlementDate(mixed $settlement): float
|
||||
{
|
||||
return self::validateDate($settlement);
|
||||
}
|
||||
|
||||
public static function validateMaturityDate(mixed $maturity): float
|
||||
{
|
||||
return self::validateDate($maturity);
|
||||
}
|
||||
|
||||
public static function validateFloat(mixed $value): float
|
||||
{
|
||||
if (!is_numeric($value)) {
|
||||
throw new Exception(ExcelError::VALUE());
|
||||
}
|
||||
|
||||
return (float) $value;
|
||||
}
|
||||
|
||||
public static function validateInt(mixed $value): int
|
||||
{
|
||||
if (!is_numeric($value)) {
|
||||
throw new Exception(ExcelError::VALUE());
|
||||
}
|
||||
|
||||
return (int) floor((float) $value);
|
||||
}
|
||||
|
||||
public static function validateRate(mixed $rate): float
|
||||
{
|
||||
$rate = self::validateFloat($rate);
|
||||
if ($rate < 0.0) {
|
||||
throw new Exception(ExcelError::NAN());
|
||||
}
|
||||
|
||||
return $rate;
|
||||
}
|
||||
|
||||
public static function validateFrequency(mixed $frequency): int
|
||||
{
|
||||
$frequency = self::validateInt($frequency);
|
||||
if (
|
||||
($frequency !== FinancialConstants::FREQUENCY_ANNUAL)
|
||||
&& ($frequency !== FinancialConstants::FREQUENCY_SEMI_ANNUAL)
|
||||
&& ($frequency !== FinancialConstants::FREQUENCY_QUARTERLY)
|
||||
) {
|
||||
throw new Exception(ExcelError::NAN());
|
||||
}
|
||||
|
||||
return $frequency;
|
||||
}
|
||||
|
||||
public static function validateBasis(mixed $basis): int
|
||||
{
|
||||
if (!is_numeric($basis)) {
|
||||
throw new Exception(ExcelError::VALUE());
|
||||
}
|
||||
|
||||
$basis = (int) $basis;
|
||||
if (($basis < 0) || ($basis > 4)) {
|
||||
throw new Exception(ExcelError::NAN());
|
||||
}
|
||||
|
||||
return $basis;
|
||||
}
|
||||
|
||||
public static function validatePrice(mixed $price): float
|
||||
{
|
||||
$price = self::validateFloat($price);
|
||||
if ($price < 0.0) {
|
||||
throw new Exception(ExcelError::NAN());
|
||||
}
|
||||
|
||||
return $price;
|
||||
}
|
||||
|
||||
public static function validateParValue(mixed $parValue): float
|
||||
{
|
||||
$parValue = self::validateFloat($parValue);
|
||||
if ($parValue < 0.0) {
|
||||
throw new Exception(ExcelError::NAN());
|
||||
}
|
||||
|
||||
return $parValue;
|
||||
}
|
||||
|
||||
public static function validateYield(mixed $yield): float
|
||||
{
|
||||
$yield = self::validateFloat($yield);
|
||||
if ($yield < 0.0) {
|
||||
throw new Exception(ExcelError::NAN());
|
||||
}
|
||||
|
||||
return $yield;
|
||||
}
|
||||
|
||||
public static function validateDiscount(mixed $discount): float
|
||||
{
|
||||
$discount = self::validateFloat($discount);
|
||||
if ($discount <= 0.0) {
|
||||
throw new Exception(ExcelError::NAN());
|
||||
}
|
||||
|
||||
return $discount;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue