PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 4.16.19
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v4.16.19
4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / Membership / Services / Calculator.php
wp-user-avatar / src / Membership / Services Last commit date
EUVATChecker 3 years ago Calculator.php 3 years ago CouponService.php 3 years ago CustomerService.php 3 years ago OrderService.php 4 months ago SubscriptionService.php 4 months ago TaxService.php 3 years ago index.php 3 years ago
Calculator.php
124 lines
1 <?php
2
3 namespace ProfilePress\Core\Membership\Services;
4
5 use ProfilePressVendor\Brick\Math\BigDecimal;
6 use ProfilePressVendor\Brick\Math\RoundingMode;
7
8 class Calculator
9 {
10 /** @var BigDecimal */
11 protected $result;
12
13 protected $scale;
14
15 protected $roundingMode;
16
17 public function __construct($leftOperand, $scale = 8, $roundingMode = RoundingMode::HALF_UP)
18 {
19 $leftOperand = empty($leftOperand) ? '0' : $leftOperand;
20
21 $this->result = BigDecimal::of((string)$leftOperand);
22
23 $this->scale = $scale;
24
25 $this->roundingMode = $roundingMode;
26 }
27
28 public function plus($rightOperand)
29 {
30 $this->result = $this->result->plus($rightOperand);
31
32 return $this;
33 }
34
35 public function minus($rightOperand)
36 {
37 $this->result = $this->result->minus($rightOperand);
38
39 return $this;
40 }
41
42 public function multipliedBy($rightOperand)
43 {
44 $this->result = $this->result->multipliedBy($rightOperand);
45
46 return $this;
47 }
48
49 public function dividedBy($rightOperand)
50 {
51 $this->result = $this->result->dividedBy(
52 $rightOperand,
53 $this->scale,
54 $this->roundingMode
55 );
56
57 return $this;
58 }
59
60 public function isNegativeOrZero()
61 {
62 return $this->result->isNegativeOrZero();
63 }
64
65 public function isNegative()
66 {
67 return $this->result->isNegative();
68 }
69
70 public function isEqualTo($val)
71 {
72 return $this->result->isEqualTo($val);
73 }
74
75 public function isZero()
76 {
77 return $this->result->isZero();
78 }
79
80 public function isGreaterThan($val)
81 {
82 return $this->result->isGreaterThan($val);
83 }
84
85 public function isLessThan($val)
86 {
87 return $this->result->isLessThan($val);
88 }
89
90 public function isGreaterThanZero()
91 {
92 return $this->result->isGreaterThan('0');
93 }
94
95 public function toScale($scale, $roundingMode = null)
96 {
97 $roundingMode = $roundingMode ?? $this->roundingMode;
98
99 $this->result = $this->result->toScale($scale, $roundingMode);
100
101 return $this;
102 }
103
104 /**
105 * @return BigDecimal
106 */
107 public function result()
108 {
109 return $this->result;
110 }
111
112 public function val()
113 {
114 return (string)$this->result;
115 }
116
117 /**
118 * @return self
119 */
120 public static function init($leftOperand)
121 {
122 return new self($leftOperand);
123 }
124 }