luca-jp 0.20.1 → 0.20.2

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: 86f9348cd5fe742fe66e493c0381f53847681f534757b6b8e708a3e271a5929b
4
- data.tar.gz: 30596a7a821462a685f32ea8ebbccf8db802c68ccad60c11d963417a47c67014
3
+ metadata.gz: a73bee2f25ed4af12e32ccc92d1c0ab5348c2bcac591c8a7607b0fb9a053c7c8
4
+ data.tar.gz: f955ad158c4d83234e838411f9de681318a13dbba546f1b0fe79d6e0cba3cb98
5
5
  SHA512:
6
- metadata.gz: '091a70016c17875a79e917a5c7d5e0001852ab6e64c00e0f1d372a6129f17de2deec91116cdcd73c5f22a6b59ae6eeb6ff9e55799788f0230f28cacf2b69c78e'
7
- data.tar.gz: 41f7c60183071e68a1788f928bd3badf970eecb17da8e7dadba8b1556a6dac64b56e4517d49663579998e8dab637a5a23a23527bc5f45b07ca870e11731eb994
6
+ metadata.gz: 7521797d4b074badbbc3e2c7f6a8e4a9469acb05df1e7a1acacef7e3570fbadbbcf167ce109de06171eb0c18d3a519907a9c233fb3c90a98611e9bd045c65aee
7
+ data.tar.gz: 2aca672676e1fafe39865b4724ff259b99c191cfb049a99bcdc364d7ace00ba85724ad7931d95db4602a0b7fbe80af55f102a6b88f7fcd4c79776f735702ebf9
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Luca
4
4
  module Jp
5
- VERSION = '0.20.1'
5
+ VERSION = '0.20.2'
6
6
  end
7
7
  end
@@ -23,8 +23,11 @@ class InsuranceJP < LucaRecord::Base
23
23
  load_data(File.open(file_path))
24
24
  end
25
25
 
26
- def health_insurance_salary(rank)
27
- round6(select_health_insurance(rank).dig('insurance_elder_salary'))
26
+ def health_insurance_salary(rank, elder)
27
+ return nil if elder.nil?
28
+
29
+ category = elder ? 'insurance_elder_salary' : 'insurance_younger_salary'
30
+ round6(select_health_insurance(rank).dig(category))
28
31
  end
29
32
 
30
33
  def pension_salary(rank)
@@ -21,7 +21,10 @@ class LucaSalary::Jp < LucaSalary::Base
21
21
  扶養控除 = self.class.扶養控除対象者の数(profile['family'], Date.new(date.year, 12, 31))
22
22
  {}.tap do |h|
23
23
  select_code(profile, '1').each { |k, v| h[k] = v }
24
- h['201'] = @insurance.health_insurance_salary(insurance_rank(profile))
24
+ h['201'] = @insurance.health_insurance_salary(
25
+ insurance_rank(profile),
26
+ 介護保険?(profile['birth_date'])
27
+ )
25
28
  h['202'] = @insurance.pension_salary(pension_rank(profile))
26
29
  tax_base = self.class.sum_code(h, '1', income_tax_exception) - h['201'] - h['202']
27
30
  h['203'] = JpNationalTax::IncomeTax.calc_kouran(tax_base, Date.today, 配偶者控除, 扶養控除)
@@ -29,7 +32,7 @@ class LucaSalary::Jp < LucaSalary::Base
29
32
  select_code(profile, '3').each { |k, v| h[k] = v }
30
33
  select_code(profile, '4').each { |k, v| h[k] = v }
31
34
  h.merge!(amount_by_code(h))
32
- h['id'] = profile.dig('id')
35
+ h['id'] = profile.fetch('id')
33
36
  end
34
37
  end
35
38
 
@@ -149,14 +152,32 @@ class LucaSalary::Jp < LucaSalary::Base
149
152
  family.map { |person| 各家族の扶養控除の額(person, date) > 0 ? 1 : 0 }.sum
150
153
  end
151
154
 
152
- def income_tax_exception
153
- %w[116 118 119 11A 11B]
155
+ private
156
+
157
+ # 満40歳に達したときより徴収が始まり、満65歳に達したときより徴収されなくなる
158
+ #
159
+ def 介護保険?(birth_date)
160
+ return nil if birth_date.nil?
161
+
162
+ due_init = birth_date.next_year(40).prev_day
163
+ return false if @date.year < due_init.year
164
+ return false if @date.year == due_init.year && @date.month < due_init.month
165
+
166
+ due_last = birth_date.next_year(65).prev_day
167
+ return false if @date.year > due_last.year
168
+ return false if @date.year == due_last.year && @date.month >= due_last.month
169
+
170
+ true
154
171
  end
155
172
 
156
173
  def insurance_rank(dat)
157
174
  dat.dig('insurance', 'rank')
158
175
  end
159
176
 
177
+ def income_tax_exception
178
+ %w[116 118 119 11A 11B]
179
+ end
180
+
160
181
  def pension_rank(dat)
161
182
  dat.dig('pension', 'rank')
162
183
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: luca-jp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.1
4
+ version: 0.20.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chuma Takahiro
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-04-22 00:00:00.000000000 Z
11
+ date: 2025-04-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lucabook