Passed
Push — developer ( 5a7d78...6a35f4 )
by Radosław
17:06
created

Vtiger_Double_InventoryField::getDisplayValue()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
ccs 0
cts 1
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 3
crap 2
1
<?php
2
3
/**
4
 * Inventory Double Field Class.
5
 *
6
 * @package   InventoryField
7
 *
8
 * @copyright YetiForce S.A.
9
 * @license   YetiForce Public License 5.0 (licenses/LicenseEN.txt or yetiforce.com)
10
 * @author    Mariusz Krzaczkowski <[email protected]>
11
 * @author    Radosław Skrzypczak <[email protected]>
12
 */
13
class Vtiger_Double_InventoryField extends Vtiger_Basic_InventoryField
14
{
15
	protected $type = 'Double';
16
	protected $defaultLabel = 'LBL_DOUBLE';
17
	protected $columnName = 'double';
18
	protected $dbType = [\yii\db\Schema::TYPE_DECIMAL, '28,8'];
19
	protected $onlyOne = false;
20
	protected $maximumLength = '99999999999999999999';
21
	protected $purifyType = \App\Purifier::NUMBER;
22
23
	/** {@inheritdoc} */
24
	public function getDisplayValue($value, array $rowData = [], bool $rawText = false)
25
	{
26
		return \App\Fields\Double::formatToDisplay($value);
27
	}
28
29
	/** {@inheritdoc} */
30
	public function getDBValue($value, ?string $name = '')
31
	{
32
		if (!isset($this->dbValue["{$value}"])) {
33
			$this->dbValue["{$value}"] = App\Fields\Double::formatToDb($value);
0 ignored issues
show
Bug Best Practice introduced by
The property dbValue does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
34
		}
35
		return $this->dbValue["{$value}"];
36
	}
37
38
	/** {@inheritdoc} */
39
	public function validate($value, string $columnName, bool $isUserFormat, $originalValue = null)
40
	{
41
		if ($isUserFormat) {
42
			$value = $this->getDBValue($value, $columnName);
43
		}
44
		$moduleName = $this->getModuleName();
45
		if (!is_numeric($value)) {
46
			throw new \App\Exceptions\Security("ERR_ILLEGAL_FIELD_VALUE||$columnName||$moduleName||$value", 406);
47
		}
48
		if ($this->maximumLength < $value || -$this->maximumLength > $value) {
49
			throw new \App\Exceptions\Security("ERR_VALUE_IS_TOO_LONG||$columnName||$moduleName||$value", 406);
50
		}
51
	}
52
53
	/** {@inheritdoc} */
54
	public function compare($value, $prevValue, string $column): bool
55
	{
56
		return \App\Validator::floatIsEqual((float) $value, (float) $prevValue, 8);
57
	}
58
}
59