tax_jp 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c9e2cab9304a1a1473c7f935bb22bd3161a2786614d02e9182892a8caa561f2
4
- data.tar.gz: 1e80555ca7fb62868bc442416431a52e73ee87703c27230bd8e1ade3637fd237
3
+ metadata.gz: 7c8e52e6f79044209616f7921a3db5250a8f8f4224e2fd587fbddad30f7fa42d
4
+ data.tar.gz: 7adf190fa90f122387c5c9ede46bafd619a2f58f8e88027a009790778be73d18
5
5
  SHA512:
6
- metadata.gz: 6947dad826bcf7d274906b320c220627358058f1ab62dc0bd566b40caf12cbbc46ba119f015a83e21a39e3e7257e4967dffe694279c1a2d07c5e6e1216eec556
7
- data.tar.gz: 457dc98a3f9676a12f9a5d082e0d733588e992efff487fe3caf5b490a57dc51956aa380e619222f59f4e82b9d8c3926d96cda104195a1e49f7177b9ad466cc3c
6
+ metadata.gz: edcd1ffb0bab205a6d892329488e438054177c446be121cbabbb1a4dcdf1c9d02400dd143ce23fb357f8e18661c9161f007cf6feac8e5f8cb7f0f5db3e677076
7
+ data.tar.gz: 72f22efea37271474f920a4ff4db992546cd82cc89e757676cd63bc77fd80656b5fda1088a1c040a5df8ba0a6746535d1754204d99ce23ed672475c60efdda04
@@ -66,7 +66,7 @@ module TaxJp
66
66
  date = TaxJp::Utils.convert_to_date(date)
67
67
  prefecture_code = convert_to_prefecture_code(prefecture)
68
68
 
69
- with_database do |db|
69
+ TaxJp::Utils.with_database(DB_PATH) do |db|
70
70
  sql, params = base_query(date, prefecture_code)
71
71
 
72
72
  sql << 'where g.valid_from <= ? and g.valid_until >= ? '
@@ -87,7 +87,7 @@ module TaxJp
87
87
 
88
88
  ret = nil
89
89
 
90
- with_database do |db|
90
+ TaxJp::Utils.with_database(DB_PATH) do |db|
91
91
  sql, params = base_query(date, prefecture_code)
92
92
 
93
93
  sql << 'where g.valid_from <= ? and g.valid_until >= ? and g.salary_from <= ? and g.salary_to > ? '
@@ -105,7 +105,7 @@ module TaxJp
105
105
  date = TaxJp::Utils.convert_to_date(date)
106
106
  prefecture_code = convert_to_prefecture_code(prefecture)
107
107
 
108
- with_database do |db|
108
+ TaxJp::Utils.with_database(DB_PATH) do |db|
109
109
  sql, params = base_query(date, prefecture_code)
110
110
 
111
111
  sql << 'where g.valid_from <= ? and g.valid_until >= ? and g.pension_grade = ? '
@@ -119,6 +119,41 @@ module TaxJp
119
119
  end
120
120
  end
121
121
 
122
+ def self.find_health_insurance_by_date_and_prefecture_and_salary(date, prefecture, salary)
123
+ date = TaxJp::Utils.convert_to_date(date)
124
+ prefecture_code = convert_to_prefecture_code(prefecture)
125
+
126
+ TaxJp::Utils.with_database(DB_PATH) do |db|
127
+ sql = 'select * from health_insurances '
128
+ sql << 'where valid_from <= ? and valid_until >= ? and (prefecture_code = ? or prefecture_code is null) '
129
+ params = [date, date, prefecture_code]
130
+
131
+ ret = nil
132
+ db.execute(sql, params) do |row|
133
+ ret = TaxJp::SocialInsurances::HealthInsurance.new(row)
134
+ ret.salary = salary
135
+ end
136
+ ret
137
+ end
138
+ end
139
+
140
+ def self.find_welfare_pension_by_date_and_salary(date, salary)
141
+ date = TaxJp::Utils.convert_to_date(date)
142
+
143
+ TaxJp::Utils.with_database(DB_PATH) do |db|
144
+ sql = 'select * from welfare_pensions '
145
+ sql << 'where valid_from <= ? and valid_until >= ? '
146
+ params = [date, date]
147
+
148
+ ret = nil
149
+ db.execute(sql, params) do |row|
150
+ ret = TaxJp::SocialInsurances::WelfarePension.new(row)
151
+ ret.salary = salary
152
+ end
153
+ ret
154
+ end
155
+ end
156
+
122
157
  def self.base_query(date, prefecture_code)
123
158
  sql = 'select g.*, hi.*, wp.* from grades g '
124
159
  sql << 'inner join health_insurances hi on (hi.valid_from <= ? and hi.valid_until >= ? and (hi.prefecture_code = ? or hi.prefecture_code is null)) '
@@ -130,16 +165,6 @@ module TaxJp
130
165
  end
131
166
  private_class_method :base_query
132
167
 
133
- def self.with_database
134
- db = SQLite3::Database.new(DB_PATH)
135
- begin
136
- yield db
137
- ensure
138
- db.close
139
- end
140
- end
141
- private_class_method :with_database
142
-
143
168
  end
144
169
 
145
170
  end
@@ -5,20 +5,32 @@ class TaxJp::SocialInsurances::HealthInsurance
5
5
  attr_reader :prefecture
6
6
  attr_reader :general, :care
7
7
  attr_reader :particular, :basic
8
-
9
- def initialize(attrs = {})
10
- @grade = attrs[:grade]
11
- @valid_from = attrs[:valid_from]
12
- @valid_until = attrs[:valid_until]
13
- @prefecture = attrs[:prefecture]
14
- @general= attrs[:general]
15
- @care = attrs[:care]
16
- @particular= attrs[:particular]
17
- @basic = attrs[:basic]
8
+
9
+ attr_accessor :salary
10
+
11
+ def initialize(attrs)
12
+ if attrs.is_a?(Hash)
13
+ @grade = attrs[:grade]
14
+ @valid_from = attrs[:valid_from]
15
+ @valid_until = attrs[:valid_until]
16
+ @prefecture = attrs[:prefecture]
17
+ @general= attrs[:general]
18
+ @care = attrs[:care]
19
+ @particular= attrs[:particular]
20
+ @basic = attrs[:basic]
21
+ elsif attrs.is_a?(Array)
22
+ @valid_from = attrs[0]
23
+ @valid_until = attrs[1]
24
+ @prefecture = attrs[2]
25
+ @general= attrs[3]
26
+ @care = attrs[4]
27
+ @particular= attrs[5]
28
+ @basic = attrs[6]
29
+ end
18
30
  end
19
31
 
20
32
  def general_amount
21
- (monthly_standard * general).round(1)
33
+ (salary * general).round(1)
22
34
  end
23
35
 
24
36
  def general_amount_half
@@ -26,16 +38,21 @@ class TaxJp::SocialInsurances::HealthInsurance
26
38
  end
27
39
 
28
40
  def general_amount_care
29
- (monthly_standard * (general + care)).round(1)
41
+ (salary * (general + care)).round(1)
30
42
  end
31
43
 
32
44
  def general_amount_care_half
33
45
  floor_amount(general_amount_care / 2)
34
46
  end
35
47
 
48
+ def salary
49
+ @salary || monthly_standard
50
+ end
51
+
36
52
  private
37
53
 
38
54
  def monthly_standard
55
+ raise '等級が指定されていません' unless grade
39
56
  grade.grade > 0 ? grade.monthly_standard : 0
40
57
  end
41
58
 
@@ -5,17 +5,27 @@ class TaxJp::SocialInsurances::WelfarePension
5
5
  attr_reader :general, :particular
6
6
  attr_reader :child_support
7
7
 
8
- def initialize(attrs = {})
9
- @grade = attrs[:grade]
10
- @valid_from = attrs[:valid_from]
11
- @valid_until = attrs[:valid_until]
12
- @general= attrs[:general]
13
- @particular= attrs[:particular]
14
- @child_support = attrs[:child_support]
8
+ attr_accessor :salary
9
+
10
+ def initialize(attrs)
11
+ if attrs.is_a?(Hash)
12
+ @grade = attrs[:grade]
13
+ @valid_from = attrs[:valid_from]
14
+ @valid_until = attrs[:valid_until]
15
+ @general= attrs[:general]
16
+ @particular= attrs[:particular]
17
+ @child_support = attrs[:child_support]
18
+ elsif attrs.is_a?(Array)
19
+ @valid_from = attrs[0]
20
+ @valid_until = attrs[1]
21
+ @general= attrs[2]
22
+ @particular= attrs[3]
23
+ @child_support = attrs[4]
24
+ end
15
25
  end
16
26
 
17
27
  def general_amount
18
- (monthly_standard * general).round(2)
28
+ (salary * general).round(2)
19
29
  end
20
30
 
21
31
  def general_amount_half
@@ -23,22 +33,28 @@ class TaxJp::SocialInsurances::WelfarePension
23
33
  end
24
34
 
25
35
  def particular_amount
26
- (monthly_standard * particular).round(2)
36
+ (salary * particular).round(2)
27
37
  end
28
38
 
29
39
  def particular_amount_half
30
40
  floor_amount(particular_amount / 2)
31
41
  end
42
+
43
+ def salary
44
+ @salary || monthly_standard
45
+ end
32
46
 
33
47
  private
34
48
 
35
49
  def monthly_standard
50
+ raise '等級が指定されていません' unless grade
36
51
  return 0 if grade.pension_grade == 0
37
52
  return 0 if grade.pension_grade > 99
38
53
  grade.monthly_standard
39
54
  end
40
55
 
41
56
  def daily_standard
57
+ raise '等級が指定されていません' unless grade
42
58
  return 0 if grade.pension_grade == 0
43
59
  return 0 if grade.pension_grade > 99
44
60
  grade.daily_standard
@@ -1,3 +1,3 @@
1
1
  module TaxJp
2
- VERSION = '0.5.2'
2
+ VERSION = '0.5.3'
3
3
  end
@@ -58,14 +58,14 @@ module TaxJp
58
58
  end
59
59
  end
60
60
 
61
- def self.find_by_date_and_dependent_and_salary(date, dependent, salary)
61
+ def self.find_by_date_and_salary_and_dependant(date, salary, dependent)
62
62
  date = date.strftime('%Y-%m-%d') if date.is_a?(Date)
63
63
  dependent = dependent.to_i
64
64
 
65
65
  TaxJp::Utils.with_database(DB_PATH) do |db|
66
66
  sql = "select * from bonus_withheld_taxes "
67
67
  sql << "where valid_from <= ? and valid_until >= ? "
68
- sql << " and dependent_#{dependent}_salary_from >= ? and dependent_#{dependent}_salary_to < ?"
68
+ sql << " and dependent_#{dependent}_salary_from <= ? and dependent_#{dependent}_salary_to > ?"
69
69
 
70
70
  ret = nil
71
71
  db.execute(sql, [date, date, salary, salary]) do |row|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tax_jp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ichylinux
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-12-02 00:00:00.000000000 Z
12
+ date: 2018-12-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bootstrap