tax-util 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/tax_util.rb +0 -26
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98ab2a679bb263b3cc8adb5dc784fffcd4317aa8
|
4
|
+
data.tar.gz: 2e5fbe0703939e77ec4ad0ce71a7cd52f0420ce2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64bbc15560d5b05ce3ebc8dc23ec6a5e07cebd3516e2d09e133c489d280847c3fbe8192df81f503fa889a6c648707f0840e54f20ee3e99a2591efc540a53b274
|
7
|
+
data.tar.gz: 36c05ac505216e5ea8303f96717d9ab4421381444ef45a3af4bc8889403015b01b37257ccfc2d11e2b1cc6119542723b6e8f029dacf532f19a47328354923aca
|
data/lib/tax_util.rb
CHANGED
@@ -5,33 +5,7 @@ class TaxUtil
|
|
5
5
|
self.const_get(classify(calc_method[:method])).new(gross_amount).calculate
|
6
6
|
end
|
7
7
|
|
8
|
-
def self.tax_for(amount, tax_scale, taxes=0)
|
9
|
-
range = TAX_SCALE.keys[tax_scale]
|
10
|
-
tax = TAX_SCALE.fetch(range)
|
11
|
-
max_of_scale = (range.last - range.first) + 1
|
12
|
-
|
13
|
-
if((current_amount = amount - max_of_scale) >= 0)
|
14
|
-
taxes += max_of_scale * tax
|
15
|
-
tax_for(current_amount, tax_scale+1, taxes.floor)
|
16
|
-
else
|
17
|
-
(taxes += (amount * tax)).floor
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.tax_correction?(amount)
|
22
|
-
TAX_SCALE.select{|a| a === amount}.values.first == 0
|
23
|
-
end
|
24
|
-
|
25
8
|
private
|
26
|
-
TAX_SCALE = {
|
27
|
-
(0..19822) => 0.365,
|
28
|
-
(19823..33589) => 0.42,
|
29
|
-
(33590..57585) => 0.42,
|
30
|
-
(57586..Float::INFINITY) => 0.52
|
31
|
-
}
|
32
|
-
|
33
|
-
SCALE_ONE = 0
|
34
|
-
|
35
9
|
def self.classify(symbol_name)
|
36
10
|
"CalcMethod::#{symbol_name.to_s.split('_').map{|name_part| (name_part[0] = name_part[0].upcase!) ; name_part }.join('')}"
|
37
11
|
end
|