tax_jp 0.3.8 → 0.3.9
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 +4 -4
- data/HISTORY.md +6 -0
- data/data//345/212/264/345/203/215/344/277/235/351/231/272/schema_employment_insurances.sql +10 -0
- data/data//345/212/264/345/203/215/344/277/235/351/231/272//351/233/207/347/224/250/344/277/235/351/231/272.tsv +4 -0
- data/data//351/233/207/347/224/250/344/277/235/351/231/272/346/226/231.db +0 -0
- data/lib/build_tasks/build.rake +9 -1
- data/lib/tax_jp/db_builder.rb +30 -0
- data/lib/tax_jp/labor_insurance.rb +9 -0
- data/lib/tax_jp/labor_insurances/employment_insurance.rb +55 -0
- data/lib/tax_jp/labor_insurances/employment_insurance_db_builder.rb +40 -0
- data/lib/tax_jp/social_insurances/db_builder.rb +6 -18
- data/lib/tax_jp/version.rb +1 -1
- data/lib/tax_jp.rb +4 -1
- metadata +10 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 632197e7a4ca68adc85f5689770b5774bcb178378a86a37a76624b9e89d37c59
|
4
|
+
data.tar.gz: b4d2f57719978e42d0072cca1583d838e0d49ef48db453fc96e6978376caebe5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a7dfdc637abb213879c09688c5686444b7e46711d913d6f8c309cf64361738d44862ff7c781f29bcf7149c61eff0bfdc72cd57e0b21355e263e175686c811fa
|
7
|
+
data.tar.gz: c98001b6d618aff6620ef7d7b51204446f6121833198261cc04aa916e33c1fb0399ee17a8914684ea8a2ac76a40bf6db482a179577c582ec82683de2b43ddfc3
|
data/HISTORY.md
CHANGED
@@ -0,0 +1,10 @@
|
|
1
|
+
create table employment_insurances (
|
2
|
+
valid_from date not null,
|
3
|
+
valid_until date not null,
|
4
|
+
employee_general decimal(1,5) not null,
|
5
|
+
employer_general decimal(1,5) not null,
|
6
|
+
employee_agric decimal(1,5) not null,
|
7
|
+
employer_agric decimal(1,5) not null,
|
8
|
+
employee_const decimal(1,5) not null,
|
9
|
+
employer_const decimal(1,5) not null
|
10
|
+
);
|
data/lib/build_tasks/build.rake
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'tax_jp'
|
3
|
+
require 'tax_jp/db_builder'
|
3
4
|
require 'tax_jp/addresses/db_builder'
|
4
5
|
require 'tax_jp/corporate_taxes/db_builder'
|
5
6
|
require 'tax_jp/depreciation_rates/db_builder'
|
7
|
+
require 'tax_jp/labor_insurances/employment_insurance_db_builder'
|
6
8
|
require 'tax_jp/social_insurances/db_builder'
|
7
9
|
require 'tax_jp/withheld_taxes/db_builder'
|
8
10
|
|
@@ -28,12 +30,18 @@ namespace :taxjp do
|
|
28
30
|
TaxJp::DepreciationRates::DbBuilder.new.run
|
29
31
|
end
|
30
32
|
|
31
|
-
desc '
|
33
|
+
desc '社会保険DBを構築します。'
|
32
34
|
task :social_insurance do
|
33
35
|
puts '社会保険料'
|
34
36
|
TaxJp::SocialInsurances::DbBuilder.new.run
|
35
37
|
end
|
36
38
|
|
39
|
+
desc '労働保険DBを構築します。'
|
40
|
+
task :labor_insurance do
|
41
|
+
puts '雇用保険料'
|
42
|
+
TaxJp::LaborInsurances::EmploymentInsuranceDbBuilder.new.run
|
43
|
+
end
|
44
|
+
|
37
45
|
desc '源泉徴収税DBを構築します。'
|
38
46
|
task :withheld_tax do
|
39
47
|
puts '源泉徴収税'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module TaxJp
|
2
|
+
class DbBuilder
|
3
|
+
|
4
|
+
attr_reader :db_path
|
5
|
+
|
6
|
+
def initialize(db_path)
|
7
|
+
@db_path = db_path
|
8
|
+
end
|
9
|
+
|
10
|
+
protected
|
11
|
+
|
12
|
+
def with_database(options = {})
|
13
|
+
recreate = options.fetch(:recreate, true)
|
14
|
+
|
15
|
+
FileUtils.rm_f(db_path) if recreate
|
16
|
+
db = SQLite3::Database.new(db_path)
|
17
|
+
recreate_schema(db) if recreate
|
18
|
+
|
19
|
+
begin
|
20
|
+
yield db
|
21
|
+
ensure
|
22
|
+
db.close
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def recreate_schema(db)
|
27
|
+
raise 'サブクラスでオーバライド'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# 雇用保健
|
2
|
+
class TaxJp::LaborInsurances::EmploymentInsurance
|
3
|
+
DB_PATH = File.join(TaxJp::Utils.data_dir, '雇用保険料.db')
|
4
|
+
|
5
|
+
attr_reader :valid_from # 適用開始日
|
6
|
+
attr_reader :valid_until # 適用終了日
|
7
|
+
attr_reader :employee_general # 労働者負担(一般)
|
8
|
+
attr_reader :employer_general # 事業主負担(一般)
|
9
|
+
attr_reader :employee_agric # 労働者負担(農林水産・清酒製造)
|
10
|
+
attr_reader :employer_agric # 事業主負担(農林水産・清酒製造)
|
11
|
+
attr_reader :employee_const # 労働者負担(建設)
|
12
|
+
attr_reader :employer_const # 事業主負担(建設)
|
13
|
+
|
14
|
+
def initialize(row)
|
15
|
+
@valid_from = row[0]
|
16
|
+
@valid_until = row[1]
|
17
|
+
@employee_general = row[2]
|
18
|
+
@employer_general = row[3]
|
19
|
+
@employee_agric = row[4]
|
20
|
+
@employer_agric = row[5]
|
21
|
+
@employee_const = row[6]
|
22
|
+
@employer_const = row[7]
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.find_all
|
26
|
+
TaxJp::Utils.with_database(DB_PATH) do |db|
|
27
|
+
sql = 'select * from employment_insurances order by valid_from desc'
|
28
|
+
|
29
|
+
ret = []
|
30
|
+
db.execute(sql) do |row|
|
31
|
+
ret << self.new(row)
|
32
|
+
end
|
33
|
+
ret
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.find_by_date(date)
|
38
|
+
date = TaxJp::Utils.convert_to_date(date)
|
39
|
+
|
40
|
+
TaxJp::Utils.with_database(DB_PATH) do |db|
|
41
|
+
sql = 'select * from employment_insurances where valid_from <= ? and valid_until >= ?'
|
42
|
+
|
43
|
+
ret = nil
|
44
|
+
db.execute(sql, [date, date]) do |row|
|
45
|
+
if ret
|
46
|
+
raise "雇用保険料が重複して登録されています。date=#{date}"
|
47
|
+
else
|
48
|
+
ret = self.new(row)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
ret
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'csv'
|
2
|
+
require 'date'
|
3
|
+
|
4
|
+
class TaxJp::LaborInsurances::EmploymentInsuranceDbBuilder < TaxJp::DbBuilder
|
5
|
+
|
6
|
+
def initialize(db_path = nil)
|
7
|
+
super(db_path || TaxJp::LaborInsurances::EmploymentInsurance::DB_PATH)
|
8
|
+
end
|
9
|
+
|
10
|
+
def run(options = {})
|
11
|
+
with_database(options) do |db|
|
12
|
+
header = true
|
13
|
+
CSV.foreach(File.join(TaxJp::Utils.data_dir, '労働保険', '雇用保険.tsv'), col_sep: "\t", skip_blanks: true) do |row|
|
14
|
+
if header
|
15
|
+
header = false
|
16
|
+
next
|
17
|
+
end
|
18
|
+
db.execute(insert_sql, row)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def recreate_schema(db)
|
26
|
+
db.execute(TaxJp::Utils.load_file(File.join('労働保険', 'schema_employment_insurances.sql')))
|
27
|
+
end
|
28
|
+
|
29
|
+
def insert_sql
|
30
|
+
columns = %w{valid_from valid_until employee_general employer_general employee_agric employer_agric employee_const employer_const}
|
31
|
+
|
32
|
+
ret = 'insert into employment_insurances ( '
|
33
|
+
ret << columns.join(',')
|
34
|
+
ret << ') values ('
|
35
|
+
ret << columns.map{|c| '?' }.join(',')
|
36
|
+
ret << ')'
|
37
|
+
ret
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'csv'
|
2
2
|
require 'date'
|
3
3
|
|
4
|
-
class TaxJp::SocialInsurances::DbBuilder
|
4
|
+
class TaxJp::SocialInsurances::DbBuilder < TaxJp::DbBuilder
|
5
5
|
|
6
6
|
def initialize(db_path = nil)
|
7
|
-
|
7
|
+
super(db_path || TaxJp::SocialInsurance::DB_PATH)
|
8
8
|
end
|
9
9
|
|
10
10
|
def run(options = {})
|
@@ -66,22 +66,10 @@ class TaxJp::SocialInsurances::DbBuilder
|
|
66
66
|
|
67
67
|
private
|
68
68
|
|
69
|
-
def
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
db.execute(TaxJp::Utils.load_file(File.join('社会保険料', 'schema_grades.sql')))
|
74
|
-
db.execute(TaxJp::Utils.load_file(File.join('社会保険料', 'schema_health_insurances.sql')))
|
75
|
-
db.execute(TaxJp::Utils.load_file(File.join('社会保険料', 'schema_welfare_pensions.sql')))
|
76
|
-
else
|
77
|
-
db = SQLite3::Database.new(@db_path)
|
78
|
-
end
|
79
|
-
|
80
|
-
begin
|
81
|
-
yield db
|
82
|
-
ensure
|
83
|
-
db.close
|
84
|
-
end
|
69
|
+
def recreate_schema(db)
|
70
|
+
db.execute(TaxJp::Utils.load_file(File.join('社会保険料', 'schema_grades.sql')))
|
71
|
+
db.execute(TaxJp::Utils.load_file(File.join('社会保険料', 'schema_health_insurances.sql')))
|
72
|
+
db.execute(TaxJp::Utils.load_file(File.join('社会保険料', 'schema_welfare_pensions.sql')))
|
85
73
|
end
|
86
74
|
|
87
75
|
def insert_sql_grade
|
data/lib/tax_jp/version.rb
CHANGED
data/lib/tax_jp.rb
CHANGED
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.3.
|
4
|
+
version: 0.3.9
|
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
|
+
date: 2018-03-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sqlite3
|
@@ -122,6 +122,8 @@ files:
|
|
122
122
|
- data/住所/addresses.csv
|
123
123
|
- data/住所/schema_addresses.sql
|
124
124
|
- data/元号.yml
|
125
|
+
- data/労働保険/schema_employment_insurances.sql
|
126
|
+
- data/労働保険/雇用保険.tsv
|
125
127
|
- data/区分番号.db
|
126
128
|
- data/法人税/schema_applicable_items.sql
|
127
129
|
- data/法人税/区分番号-20171001-20991231.tsv
|
@@ -155,6 +157,7 @@ files:
|
|
155
157
|
- data/社会保険料/等級-20160401-20160930.tsv
|
156
158
|
- data/社会保険料/等級-20161001-20991231.tsv
|
157
159
|
- data/都道府県.yml
|
160
|
+
- data/雇用保険料.db
|
158
161
|
- features/.gitignore
|
159
162
|
- features/01.都道府県.feature
|
160
163
|
- features/02.消費税.feature
|
@@ -174,9 +177,13 @@ files:
|
|
174
177
|
- lib/tax_jp/consumption_tax.rb
|
175
178
|
- lib/tax_jp/corporate_tax.rb
|
176
179
|
- lib/tax_jp/corporate_taxes/db_builder.rb
|
180
|
+
- lib/tax_jp/db_builder.rb
|
177
181
|
- lib/tax_jp/depreciation_rate.rb
|
178
182
|
- lib/tax_jp/depreciation_rates/db_builder.rb
|
179
183
|
- lib/tax_jp/gengou.rb
|
184
|
+
- lib/tax_jp/labor_insurance.rb
|
185
|
+
- lib/tax_jp/labor_insurances/employment_insurance.rb
|
186
|
+
- lib/tax_jp/labor_insurances/employment_insurance_db_builder.rb
|
180
187
|
- lib/tax_jp/prefecture.rb
|
181
188
|
- lib/tax_jp/rails/engine.rb
|
182
189
|
- lib/tax_jp/rails/railtie.rb
|
@@ -212,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
212
219
|
version: '0'
|
213
220
|
requirements: []
|
214
221
|
rubyforge_project:
|
215
|
-
rubygems_version: 2.7.
|
222
|
+
rubygems_version: 2.7.6
|
216
223
|
signing_key:
|
217
224
|
specification_version: 4
|
218
225
|
summary: 税金計算ライブラリ
|