Converter   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
c 1
b 0
f 0
dl 0
loc 21
rs 10
wmc 5

1 Method

Rating   Name   Duplication   Size   Complexity  
A RubToKop() 0 12 5
1
<?php
2
3
namespace alekciy\ofd;
4
5
use InvalidArgumentException;
6
7
trait Converter
8
{
9
	/**
10
	 * Преобразует сумму $sum заданную в рублях в сумму в копейках. В случае задания суммы строкой разделитель дробной
11
	 * части может быть точкой или запятой. Разделитель разрядов не поддерживается, т.е. передавать '2 000,35' нельзя.
12
	 *
13
	 * @param int|float|string $sum
14
	 * @return int
15
	 */
16
	public static function RubToKop($sum): int
17
	{
18
		if (is_integer($sum)) {
19
			return $sum;
20
		} elseif (is_float($sum)) {
21
			return intval($sum * 100);
22
		} elseif (is_string($sum)
23
			&& preg_match('~^\s?[0-9]+[.,]?[0-9]*\s?$~u', $sum) === 1
24
		) {
25
			return intval($sum * 100);
26
		}
27
		throw new InvalidArgumentException('Неправильный денежный формат');
28
	}
29
}