sie 3.0.0 → 3.0.1
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 +5 -13
- data/.rvmrc +1 -1
- data/README.md +5 -0
- data/lib/sie/document.rb +5 -0
- data/lib/sie/version.rb +1 -1
- data/spec/unit/build_entry_spec.rb +4 -3
- data/spec/unit/document_spec.rb +27 -19
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
MWNlN2E5OWE3ZGRmZmZkNmRiZmI0MGVkNGZmMThlMDI3M2EwZjE3Yw==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7d659e5fad2c490c75631273aaff1e3f2f324239
|
4
|
+
data.tar.gz: 58747c9efccbe20629db22c44a7e26828c7845d2
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NTNhODYzZmEwMWQ1ZjExYmU3YTVlMzNmMzAxNDNkNTkzOWQzMThjNGY1OTE2
|
11
|
-
YzQxM2Y1ZGJhZWQ5ZDhiMzljZDk4OWQ0MmVjYjliM2RjYWE0ZGQ=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MTUyMjk5NmMwYzZkZTEyZmU5YTM3MGMwYWQ5YzQ5YzQ1OGFmODU5MmY2ODI5
|
14
|
-
NmVkNTE4ZjcwNDU4YjRjZmVkNTk3MDA3ZWYyOTY0NmEyMmE0OWI1NWQxMTMz
|
15
|
-
NWU3YjhlNWEwMDY5OTNlNzQzYWU3ODYzZjdlN2NhNzY1YzVhOGQ=
|
6
|
+
metadata.gz: aadf37b3489120499c12b7fbb73866dc08912aa5414897709c7ed2af24e44e0c396a28bffd52bc9bba87b35032f0709bfae196f362ac92d165c8542a8fac752e
|
7
|
+
data.tar.gz: f85919e67613b3cabaed4b2e1139d90d6e0d32de24867473462bed7209c7c04b2ada714e511eda4fac663c0139d98cbbb9207342c436e6d08dea747e9539615b
|
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm ruby-
|
1
|
+
rvm ruby-2.0.0-p643@sie --create
|
data/README.md
CHANGED
@@ -159,6 +159,11 @@ Getting the latest code and gems:
|
|
159
159
|
|
160
160
|
script/refresh
|
161
161
|
|
162
|
+
## Resources
|
163
|
+
|
164
|
+
[SIE format specification rev 4B (swedish)](http://www.sie.se/wp-content/uploads/2014/01/SIE_filformat_ver_4B_080930.pdf)
|
165
|
+
|
166
|
+
|
162
167
|
## Contributing
|
163
168
|
|
164
169
|
1. Fork it
|
data/lib/sie/document.rb
CHANGED
@@ -63,6 +63,11 @@ module Sie
|
|
63
63
|
def add_balance_rows(label, year_index, account_numbers, date, &block)
|
64
64
|
account_numbers.each do |account_number|
|
65
65
|
balance = balance_before(account_number, date)
|
66
|
+
|
67
|
+
# Accounts with no balance should not be in the SIE-file.
|
68
|
+
# See paragraph 5.17 in the SIE file format guide (Rev. 4B).
|
69
|
+
next unless balance
|
70
|
+
|
66
71
|
add_line(label, year_index, account_number, balance)
|
67
72
|
end
|
68
73
|
end
|
data/lib/sie/version.rb
CHANGED
@@ -2,15 +2,16 @@ require "spec_helper"
|
|
2
2
|
require "sie/parser/build_entry"
|
3
3
|
require "sie/parser/tokenizer"
|
4
4
|
|
5
|
-
describe Sie::Parser::BuildEntry, "call" do
|
5
|
+
describe Sie::Parser::BuildEntry, ".call" do
|
6
6
|
context "with an unexpected token at start of array" do
|
7
7
|
it "raises InvalidEntryError" do
|
8
8
|
line = '#TRANS 2400 [] -200 20130101 "Foocorp expense"'
|
9
9
|
tokens = Sie::Parser::Tokenizer.new(line).tokenize
|
10
10
|
first_token = tokens.shift
|
11
|
-
build_entry = Sie::Parser::BuildEntry.new(line, first_token, tokens, false)
|
12
11
|
|
13
|
-
expect {
|
12
|
+
expect {
|
13
|
+
Sie::Parser::BuildEntry.call(line, first_token, tokens, false)
|
14
|
+
}.to raise_error(Sie::Parser::BuildEntry::InvalidEntryError)
|
14
15
|
end
|
15
16
|
end
|
16
17
|
end
|
data/spec/unit/document_spec.rb
CHANGED
@@ -78,8 +78,13 @@ describe Sie::Document, "#render" do
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def balance_before(account_number, date)
|
81
|
-
|
82
|
-
|
81
|
+
if account_number == 9999
|
82
|
+
# So we can test empty balances.
|
83
|
+
nil
|
84
|
+
else
|
85
|
+
# Faking a fetch based on date and number.
|
86
|
+
account_number.to_i + (date.mday * 100).to_f
|
87
|
+
end
|
83
88
|
end
|
84
89
|
end
|
85
90
|
|
@@ -92,8 +97,8 @@ describe Sie::Document, "#render" do
|
|
92
97
|
generated_on: generated_on,
|
93
98
|
company_name: "Foocorp",
|
94
99
|
financial_years: financial_years,
|
95
|
-
balance_account_numbers: [ 1500, 2400 ],
|
96
|
-
closing_account_numbers: [ 3100 ],
|
100
|
+
balance_account_numbers: [ 1500, 2400, 9999 ],
|
101
|
+
closing_account_numbers: [ 3100, 9999 ],
|
97
102
|
dimensions: dimensions
|
98
103
|
)
|
99
104
|
Sie::Document.new(data_source)
|
@@ -136,27 +141,30 @@ describe Sie::Document, "#render" do
|
|
136
141
|
end
|
137
142
|
|
138
143
|
it "has balances brought forward (ingående balans)" do
|
139
|
-
expect(indexed_entry_attributes("ib", 0)).
|
140
|
-
expect(indexed_entry_attributes("ib",
|
141
|
-
expect(indexed_entry_attributes("ib",
|
142
|
-
expect(indexed_entry_attributes("ib",
|
143
|
-
expect(indexed_entry_attributes("ib",
|
144
|
-
expect(indexed_entry_attributes("ib",
|
144
|
+
expect(indexed_entry_attributes("ib", 0)).not_to eq("arsnr" => "0", "konto" => "9999", "saldo" => "")
|
145
|
+
expect(indexed_entry_attributes("ib", 0)).to eq("arsnr" => "0", "konto" => "1500", "saldo" => "1600.0")
|
146
|
+
expect(indexed_entry_attributes("ib", 1)).to eq("arsnr" => "0", "konto" => "2400", "saldo" => "2500.0")
|
147
|
+
expect(indexed_entry_attributes("ib", 2)).to eq("arsnr" => "-1", "konto" => "1500", "saldo" => "1600.0")
|
148
|
+
expect(indexed_entry_attributes("ib", 3)).to eq("arsnr" => "-1", "konto" => "2400", "saldo" => "2500.0")
|
149
|
+
expect(indexed_entry_attributes("ib", 4)).to eq("arsnr" => "-2", "konto" => "1500", "saldo" => "1600.0")
|
150
|
+
expect(indexed_entry_attributes("ib", 5)).to eq("arsnr" => "-2", "konto" => "2400", "saldo" => "2500.0")
|
145
151
|
end
|
146
152
|
|
147
153
|
it "has balances carried forward (utgående balans)" do
|
148
|
-
expect(indexed_entry_attributes("ub", 0)).
|
149
|
-
expect(indexed_entry_attributes("ub",
|
150
|
-
expect(indexed_entry_attributes("ub",
|
151
|
-
expect(indexed_entry_attributes("ub",
|
152
|
-
expect(indexed_entry_attributes("ub",
|
153
|
-
expect(indexed_entry_attributes("ub",
|
154
|
+
expect(indexed_entry_attributes("ub", 0)).not_to eq("arsnr" => "0", "konto" => "9999", "saldo" => "")
|
155
|
+
expect(indexed_entry_attributes("ub", 0)).to eq("arsnr" => "0", "konto" => "1500", "saldo" => "4600.0")
|
156
|
+
expect(indexed_entry_attributes("ub", 1)).to eq("arsnr" => "0", "konto" => "2400", "saldo" => "5500.0")
|
157
|
+
expect(indexed_entry_attributes("ub", 2)).to eq("arsnr" => "-1", "konto" => "1500", "saldo" => "4600.0")
|
158
|
+
expect(indexed_entry_attributes("ub", 3)).to eq("arsnr" => "-1", "konto" => "2400", "saldo" => "5500.0")
|
159
|
+
expect(indexed_entry_attributes("ub", 4)).to eq("arsnr" => "-2", "konto" => "1500", "saldo" => "4600.0")
|
160
|
+
expect(indexed_entry_attributes("ub", 5)).to eq("arsnr" => "-2", "konto" => "2400", "saldo" => "5500.0")
|
154
161
|
end
|
155
162
|
|
156
163
|
it "has closing account balances (saldo för resultatkonto)" do
|
157
|
-
expect(indexed_entry_attributes("res", 0)).
|
158
|
-
expect(indexed_entry_attributes("res",
|
159
|
-
expect(indexed_entry_attributes("res",
|
164
|
+
expect(indexed_entry_attributes("res", 0)).not_to eq("ars" => "0", "konto" => "9999", "saldo" => "")
|
165
|
+
expect(indexed_entry_attributes("res", 0)).to eq("ars" => "0", "konto" => "3100", "saldo" => "6200.0")
|
166
|
+
expect(indexed_entry_attributes("res", 1)).to eq("ars" => "-1", "konto" => "3100", "saldo" => "6200.0")
|
167
|
+
expect(indexed_entry_attributes("res", 2)).to eq("ars" => "-2", "konto" => "3100", "saldo" => "6200.0")
|
160
168
|
end
|
161
169
|
|
162
170
|
it "has vouchers" do
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Barsoom AB
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: attr_extras
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
@@ -56,28 +56,28 @@ dependencies:
|
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - '>='
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
description: SIE parser and generator
|
@@ -134,12 +134,12 @@ require_paths:
|
|
134
134
|
- lib
|
135
135
|
required_ruby_version: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
|
-
- -
|
137
|
+
- - '>='
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
140
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
|
-
- -
|
142
|
+
- - '>='
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: '0'
|
145
145
|
requirements: []
|