tax_jp 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
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