tax_jp 0.3.7 → 0.3.8

Sign up to get free protection for your applications and to get access to all the features.
Binary file
@@ -0,0 +1,8 @@
1
+ create table applicable_items (
2
+ valid_from date not null,
3
+ valid_until date not null,
4
+ measure_name varchar(255) not null,
5
+ item_name varchar(255) not null,
6
+ item_no varchar(5) not null,
7
+ applicable_to varchar(255) not null
8
+ );
@@ -0,0 +1,7 @@
1
+ 法人税関係特別措置 租税特別措置法の条項 区分番号 適用額
2
+ 中小企業者等の法人税率の特例 第42条の3の2第1項の表の第1号 380 別表一(一)次葉「48」の欄の金額又は別表一の三次葉「44」及び「57」の欄の金額の合計額
3
+ 中小企業者等の法人税率の特例 第42条の3の2第1項の表の第2号 381 別表一(一)次葉「48」の欄の金額
4
+ 中小企業者等の法人税率の特例 第42条の3の2第1項の表の第3号 382 別表一(二)次葉「39」の欄の金額
5
+ 中小企業者等の法人税率の特例 第42条の3の2第1項の表の第4号 383 別表一(三)次葉「40」の欄の金額
6
+ 中小企業者等の法人税率の特例 第42条の3の2第2項 384 別表一(二)次葉「35」の欄の金額
7
+ 中小企業者等の少額減価償却資産の取得価額の損金算入の特例 第67条の5第1項 277 法規別表十六(七)「8」の欄の金額
@@ -0,0 +1,12 @@
1
+ # language: ja
2
+
3
+ 機能: 事業年度分の適用額明細書
4
+
5
+  平成22年度税制改正において、「租税特別措置の適用状況の透明化等に関する法律」が
6
+ 制定され、租税特別措置の適用の実態を把握するための調査を行うことが規定されました。
7
+ このため、法人税関係特別措置のうち税額又は所得の金額を減少させる規定等を適用する場
8
+ 合には、その法人が提出する法人税申告書に「適用額明細書」を添付し、税務署に提出する
9
+ 必要があります。
10
+
11
+ シナリオ: 平成29年10月1日以後終了事業年度に使用する区分番号一覧表(単体法人)
12
+ * 区分番号一覧表は以下の通り
@@ -0,0 +1,3 @@
1
+ もし /^区分番号一覧表は以下の通り$/ do
2
+
3
+ end
@@ -1,20 +1,12 @@
1
1
  require 'rake'
2
2
  require 'tax_jp'
3
3
  require 'tax_jp/addresses/db_builder'
4
+ require 'tax_jp/corporate_taxes/db_builder'
4
5
  require 'tax_jp/depreciation_rates/db_builder'
5
6
  require 'tax_jp/social_insurances/db_builder'
6
7
  require 'tax_jp/withheld_taxes/db_builder'
7
8
 
8
9
  namespace :taxjp do
9
- task :build do
10
- Rake::Task["taxjp:build:consumption_tax"].invoke
11
- Rake::Task["taxjp:build:depreciation_rate"].invoke
12
- Rake::Task["taxjp:build:social_insurance"].invoke
13
- Rake::Task["taxjp:build:withheld_tax"].invoke
14
-
15
- Rake::Task["taxjp:build:address"].invoke
16
- end
17
-
18
10
  namespace :build do
19
11
 
20
12
  desc '住所DBを構築します。'
@@ -48,5 +40,10 @@ namespace :taxjp do
48
40
  TaxJp::WithheldTaxes::DbBuilder.new.run
49
41
  end
50
42
 
43
+ desc '法人税-区分番号DBを構築します。'
44
+ task :corporate_tax do
45
+ puts '法人税-区分番号'
46
+ TaxJp::CorporateTaxes::DbBuilder.new.run
47
+ end
51
48
  end
52
49
  end
@@ -0,0 +1,9 @@
1
+ module TaxJp
2
+ module CorporateTaxes
3
+ end
4
+
5
+ class CorporateTax
6
+ DB_PATH = File.join(TaxJp::Utils.data_dir, '区分番号.db')
7
+ end
8
+
9
+ end
@@ -0,0 +1,60 @@
1
+ require 'csv'
2
+ require 'date'
3
+
4
+ class TaxJp::CorporateTaxes::DbBuilder
5
+
6
+ def initialize(db_path = nil)
7
+ @db_path = db_path || TaxJp::CorporateTax::DB_PATH
8
+ end
9
+
10
+ def run(options = {})
11
+ with_database(options) do |db|
12
+ Dir.glob(File.join(TaxJp::Utils.data_dir, '法人税', '区分番号-*.tsv')).each do |filename|
13
+ valid_from, valid_until = TaxJp::Utils.filename_to_date(filename)
14
+
15
+ CSV.foreach(filename, :col_sep => "\t", :headers => true) do |row|
16
+ next if row[0].to_s.strip.empty?
17
+
18
+ values = []
19
+ values << valid_from
20
+ values << valid_until
21
+ values << row[0].strip
22
+ values << row[1].strip
23
+ values << row[2].strip
24
+ values << row[3].strip
25
+ db.execute(insert_sql_applicable_item, values)
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ private
32
+
33
+ def with_database(options = {})
34
+ if options.fetch(:recreate, true)
35
+ FileUtils.rm_f(@db_path)
36
+ db = SQLite3::Database.new(@db_path)
37
+ db.execute(TaxJp::Utils.load_file(File.join('法人税', 'schema_applicable_items.sql')))
38
+ else
39
+ db = SQLite3::Database.new(@db_path)
40
+ end
41
+
42
+ begin
43
+ yield db
44
+ ensure
45
+ db.close
46
+ end
47
+ end
48
+
49
+ def insert_sql_applicable_item
50
+ columns = %w{valid_from valid_until measure_name item_name item_no applicable_to}
51
+
52
+ ret = 'insert into applicable_items ( '
53
+ ret << columns.join(',')
54
+ ret << ') values ('
55
+ ret << columns.map{|c| '?' }.join(',')
56
+ ret << ')'
57
+ ret
58
+ end
59
+
60
+ end
data/lib/tax_jp/utils.rb CHANGED
@@ -62,6 +62,13 @@ module TaxJp
62
62
  ret
63
63
  end
64
64
 
65
+ def filename_to_date(filename)
66
+ title, valid_from, valid_until = File.basename(filename).split('.').first.split('-')
67
+ valid_from = Date.strptime(valid_from, '%Y%m%d')
68
+ valid_until = Date.strptime(valid_until, '%Y%m%d')
69
+ [valid_from.strftime('%Y-%m-%d'), valid_until.strftime('%Y-%m-%d')]
70
+ end
71
+
65
72
  end
66
73
  end
67
74
  end
@@ -1,3 +1,3 @@
1
1
  module TaxJp
2
- VERSION = '0.3.7'
2
+ VERSION = '0.3.8'
3
3
  end
data/lib/tax_jp.rb CHANGED
@@ -21,6 +21,9 @@ module TaxJp
21
21
  require 'tax_jp/consumption_tax'
22
22
  extend TaxJp::ConsumptionTax
23
23
 
24
+ # 法人税-区分番号
25
+ require 'tax_jp/corporate_tax'
26
+
24
27
  # 減価償却率
25
28
  require 'tax_jp/depreciation_rate'
26
29
 
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.7
4
+ version: 0.3.8
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: 2017-05-19 00:00:00.000000000 Z
12
+ date: 2018-02-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sqlite3
@@ -122,6 +122,9 @@ files:
122
122
  - data/住所/addresses.csv
123
123
  - data/住所/schema_addresses.sql
124
124
  - data/元号.yml
125
+ - data/区分番号.db
126
+ - data/法人税/schema_applicable_items.sql
127
+ - data/法人税/区分番号-20171001-20991231.tsv
125
128
  - data/消費税.yml
126
129
  - data/減価償却率.db
127
130
  - data/減価償却率/schema_depreciation_rates.sql
@@ -131,7 +134,7 @@ files:
131
134
  - data/源泉徴収税/20070101-20121231.tsv
132
135
  - data/源泉徴収税/20130101-20151231.tsv
133
136
  - data/源泉徴収税/20160101-20161231.tsv
134
- - data/源泉徴収税/20170101-20171231.tsv
137
+ - data/源泉徴収税/20170101-20181231.tsv
135
138
  - data/源泉徴収税/schema.sql
136
139
  - data/社会保険料.db
137
140
  - data/社会保険料/schema_grades.sql
@@ -157,7 +160,9 @@ files:
157
160
  - features/02.消費税.feature
158
161
  - features/03.源泉徴収税.feature
159
162
  - features/04.社会保健.feature
163
+ - features/05.法人税/事業年度分の適用額明細書.feature
160
164
  - features/step_definitions/consumption_tax.rb
165
+ - features/step_definitions/corporate_tax.rb
161
166
  - features/step_definitions/prefectures.rb
162
167
  - features/support/env.rb
163
168
  - lib/build_tasks/build.rake
@@ -167,6 +172,8 @@ files:
167
172
  - lib/tax_jp/addresses/db_builder.rb
168
173
  - lib/tax_jp/const.rb
169
174
  - lib/tax_jp/consumption_tax.rb
175
+ - lib/tax_jp/corporate_tax.rb
176
+ - lib/tax_jp/corporate_taxes/db_builder.rb
170
177
  - lib/tax_jp/depreciation_rate.rb
171
178
  - lib/tax_jp/depreciation_rates/db_builder.rb
172
179
  - lib/tax_jp/gengou.rb
@@ -205,7 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
205
212
  version: '0'
206
213
  requirements: []
207
214
  rubyforge_project:
208
- rubygems_version: 2.6.11
215
+ rubygems_version: 2.7.3
209
216
  signing_key:
210
217
  specification_version: 4
211
218
  summary: 税金計算ライブラリ
@@ -215,6 +222,8 @@ test_files:
215
222
  - features/02.消費税.feature
216
223
  - features/03.源泉徴収税.feature
217
224
  - features/04.社会保健.feature
225
+ - features/05.法人税/事業年度分の適用額明細書.feature
218
226
  - features/step_definitions/consumption_tax.rb
227
+ - features/step_definitions/corporate_tax.rb
219
228
  - features/step_definitions/prefectures.rb
220
229
  - features/support/env.rb