keepr 0.3.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +14 -10
  3. data/Gemfile +2 -0
  4. data/LICENSE.txt +1 -1
  5. data/README.md +3 -3
  6. data/Rakefile +3 -1
  7. data/ci/Gemfile-rails-4-2 +4 -4
  8. data/ci/Gemfile-rails-5-0 +4 -4
  9. data/ci/Gemfile-rails-5-1 +12 -0
  10. data/ci/Gemfile-rails-5-2 +12 -0
  11. data/ci/{Gemfile-rails-4-1 → Gemfile-rails-6-0} +4 -4
  12. data/keepr.gemspec +15 -14
  13. data/lib/generators/keepr/migration/migration_generator.rb +5 -3
  14. data/lib/generators/keepr/migration/templates/migration.rb +27 -25
  15. data/lib/keepr.rb +8 -0
  16. data/lib/keepr/account.rb +66 -61
  17. data/lib/keepr/account_export.rb +10 -14
  18. data/lib/keepr/active_record_extension.rb +10 -8
  19. data/lib/keepr/contact_export.rb +6 -7
  20. data/lib/keepr/cost_center.rb +3 -1
  21. data/lib/keepr/group.rb +25 -16
  22. data/lib/keepr/groups_creator.rb +11 -11
  23. data/lib/keepr/journal.rb +19 -16
  24. data/lib/keepr/journal_export.rb +10 -7
  25. data/lib/keepr/posting.rb +26 -21
  26. data/lib/keepr/tax.rb +4 -2
  27. data/lib/keepr/version.rb +3 -1
  28. data/spec/factories/account.rb +6 -4
  29. data/spec/factories/cost_center.rb +5 -3
  30. data/spec/factories/group.rb +5 -3
  31. data/spec/factories/tax.rb +7 -5
  32. data/spec/keepr/account_export_spec.rb +30 -27
  33. data/spec/keepr/account_spec.rb +92 -87
  34. data/spec/keepr/active_record_extension_spec.rb +38 -36
  35. data/spec/keepr/contact_export_spec.rb +20 -17
  36. data/spec/keepr/cost_center_spec.rb +9 -7
  37. data/spec/keepr/group_spec.rb +53 -49
  38. data/spec/keepr/groups_creator_spec.rb +7 -4
  39. data/spec/keepr/journal_export_spec.rb +76 -75
  40. data/spec/keepr/journal_spec.rb +48 -46
  41. data/spec/keepr/posting_spec.rb +25 -23
  42. data/spec/keepr/tax_spec.rb +21 -14
  43. data/spec/spec_helper.rb +13 -11
  44. data/spec/support/contact.rb +2 -0
  45. data/spec/support/document.rb +2 -0
  46. data/spec/support/ledger.rb +2 -0
  47. data/spec/support/spec_migration.rb +3 -1
  48. metadata +23 -22
@@ -1,22 +1,25 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Keepr::ContactExport do
4
- let!(:account_1000) { FactoryGirl.create :account, :kind => :asset, :number => 1000, :name => 'Kasse' }
5
- let!(:account_10000) { FactoryGirl.create :account, :kind => :creditor, :number => 10000, :name => 'Meyer GmbH' }
6
- let!(:account_70000) { FactoryGirl.create :account, :kind => :debtor, :number => 70000, :name => 'Schulze AG' }
6
+ let!(:account_1000) { FactoryBot.create :account, kind: :asset, number: 1000, name: 'Kasse' }
7
+ let!(:account_10000) { FactoryBot.create :account, kind: :creditor, number: 10_000, name: 'Meyer GmbH' }
8
+ let!(:account_70000) { FactoryBot.create :account, kind: :debtor, number: 70_000, name: 'Schulze AG' }
7
9
 
8
10
  let(:scope) { Keepr::Account.all }
9
11
 
10
- let(:export) {
11
- Keepr::ContactExport.new(scope,
12
- 'Berater' => 1234567,
13
- 'Mandant' => 78901,
14
- 'WJ-Beginn' => Date.new(2016,1,1),
12
+ let(:export) do
13
+ Keepr::ContactExport.new(
14
+ scope,
15
+ 'Berater' => 1_234_567,
16
+ 'Mandant' => 78_901,
17
+ 'WJ-Beginn' => Date.new(2016, 1, 1),
15
18
  'Bezeichnung' => 'Keepr-Kontakte'
16
19
  ) do |account|
17
20
  { 'Kurzbezeichnung' => account.name }
18
21
  end
19
- }
22
+ end
20
23
 
21
24
  describe :to_s do
22
25
  subject { export.to_s }
@@ -25,31 +28,31 @@ describe Keepr::ContactExport do
25
28
  subject.lines[2..-1]
26
29
  end
27
30
 
28
- it "should return CSV lines" do
31
+ it 'should return CSV lines' do
29
32
  subject.lines.each { |line| expect(line).to include(';') }
30
33
  end
31
34
 
32
- it "should include header data" do
35
+ it 'should include header data' do
33
36
  expect(subject.lines[0]).to include('1234567;')
34
37
  expect(subject.lines[0]).to include('78901;')
35
- expect(subject.lines[0]).to include('Keepr-Kontakte;')
38
+ expect(subject.lines[0]).to include('"Keepr-Kontakte";')
36
39
  end
37
40
 
38
- it "should include debtor/creditor accounts only" do
41
+ it 'should include debtor/creditor accounts only' do
39
42
  expect(account_lines.count).to eq(2)
40
43
 
41
44
  expect(account_lines[0]).to include('10000;')
42
45
  expect(account_lines[1]).to include('70000;')
43
46
  end
44
47
 
45
- it "should include data from block" do
46
- expect(account_lines[0]).to include('Meyer GmbH;')
47
- expect(account_lines[1]).to include('Schulze AG;')
48
+ it 'should include data from block' do
49
+ expect(account_lines[0]).to include('"Meyer GmbH";')
50
+ expect(account_lines[1]).to include('"Schulze AG";')
48
51
  end
49
52
  end
50
53
 
51
54
  describe :to_file do
52
- it "should create CSV file" do
55
+ it 'should create CSV file' do
53
56
  Dir.mktmpdir do |dir|
54
57
  filename = "#{dir}/EXTF_Stammdaten.csv"
55
58
  export.to_file(filename)
@@ -1,15 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Keepr::CostCenter do
4
- let(:cost_center) { FactoryGirl.create(:cost_center) }
5
- let(:account) { FactoryGirl.create(:account, :number => 8400, :kind => :revenue) }
6
+ let(:cost_center) { FactoryBot.create(:cost_center) }
7
+ let(:account) { FactoryBot.create(:account, number: 8400, kind: :revenue) }
6
8
 
7
9
  it 'should have postings' do
8
- posting = Keepr::Posting.create! :amount => 10,
9
- :side => 'debit',
10
- :keepr_account => account,
11
- :keepr_cost_center => cost_center,
12
- :keepr_journal_id => 42
10
+ posting = Keepr::Posting.create! amount: 10,
11
+ side: 'debit',
12
+ keepr_account: account,
13
+ keepr_cost_center: cost_center,
14
+ keepr_journal_id: 42
13
15
 
14
16
  expect(cost_center.keepr_postings).to eq([posting])
15
17
  end
@@ -1,25 +1,27 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Keepr::Group do
4
6
  describe 'validations' do
5
- it "should allow is_result for liability" do
6
- group = Keepr::Group.new(:is_result => true, :target => :liability, :name => 'foo')
7
+ it 'should allow is_result for liability' do
8
+ group = Keepr::Group.new(is_result: true, target: :liability, name: 'foo')
7
9
  expect(group).to be_valid
8
10
  end
9
11
 
10
- [ :asset, :profit_and_loss ].each do |target|
12
+ %i[asset profit_and_loss].each do |target|
11
13
  it "should not allow is_result for #{target}" do
12
- group = Keepr::Group.new(:is_result => true, :target => target, :name => 'foo')
14
+ group = Keepr::Group.new(is_result: true, target: target, name: 'foo')
13
15
  expect(group).not_to be_valid
14
- expect(group.errors.added? :base, :liability_needed_for_result).to eq(true)
16
+ expect(group.errors.added?(:base, :liability_needed_for_result)).to eq(true)
15
17
  end
16
18
  end
17
19
  end
18
20
 
19
21
  describe :get_from_parent do
20
22
  it 'should preset parent' do
21
- root = FactoryGirl.create :group, :target => :asset
22
- child = root.children.create! :name => 'Bar'
23
+ root = FactoryBot.create :group, target: :asset
24
+ child = root.children.create! name: 'Bar'
23
25
 
24
26
  expect(child.target).to eq('asset')
25
27
  end
@@ -27,16 +29,16 @@ describe Keepr::Group do
27
29
 
28
30
  describe :keepr_accounts do
29
31
  it 'should not destroy if there are accounts' do
30
- group = FactoryGirl.create :group
31
- account = FactoryGirl.create :account, :number => 1000, :keepr_group => group
32
+ group = FactoryBot.create :group
33
+ FactoryBot.create :account, number: 1000, keepr_group: group
32
34
 
33
- expect { group.destroy }.to_not change { Keepr::Group.count }
35
+ expect { group.destroy }.to_not change(Keepr::Group, :count)
34
36
  expect(group.destroy).to eq(false)
35
37
  expect(group.reload).to eq(group)
36
38
  end
37
39
 
38
40
  it 'should destroy if there are no accounts' do
39
- group = FactoryGirl.create :group
41
+ group = FactoryBot.create :group
40
42
 
41
43
  expect { group.destroy }.to change { Keepr::Group.count }.by(-1)
42
44
  end
@@ -44,58 +46,60 @@ describe Keepr::Group do
44
46
 
45
47
  describe :keepr_postings do
46
48
  # Simple asset group hierarchy
47
- let(:group_1) { FactoryGirl.create :group, :target => :asset }
48
- let(:group_1_1) { FactoryGirl.create :group, :target => :asset, :parent => group_1 }
49
- let(:group_1_1_1) { FactoryGirl.create :group, :target => :asset, :parent => group_1_1 }
49
+ let(:group_1) { FactoryBot.create :group, target: :asset }
50
+ let(:group_1_1) { FactoryBot.create :group, target: :asset, parent: group_1 }
51
+ let(:group_1_1_1) { FactoryBot.create :group, target: :asset, parent: group_1_1 }
50
52
 
51
53
  # Group for P&L accounts
52
- let(:group_2) { FactoryGirl.create :group, :target => :profit_and_loss }
54
+ let(:group_2) { FactoryBot.create :group, target: :profit_and_loss }
53
55
 
54
56
  # Group for balance result
55
- let(:group_result){ FactoryGirl.create :group, :target => :liability, :is_result => true }
57
+ let(:group_result) { FactoryBot.create :group, target: :liability, is_result: true }
56
58
 
57
59
  # Accounts
58
- let(:account_1a) { FactoryGirl.create :account, :number => '0001', :keepr_group => group_1_1_1 }
59
- let(:account_1b) { FactoryGirl.create :account, :number => '0011', :keepr_group => group_1_1_1 }
60
- let(:account_1c) { FactoryGirl.create :account, :number => '0111', :keepr_group => group_1_1_1 }
60
+ let(:account_1a) { FactoryBot.create :account, number: '0001', keepr_group: group_1_1_1 }
61
+ let(:account_1b) { FactoryBot.create :account, number: '0011', keepr_group: group_1_1_1 }
62
+ let(:account_1c) { FactoryBot.create :account, number: '0111', keepr_group: group_1_1_1 }
61
63
 
62
- let(:account_2) { FactoryGirl.create :account, :number => '8400', :keepr_group => group_2, :kind => :revenue }
64
+ let(:account_2) { FactoryBot.create :account, number: '8400', keepr_group: group_2, kind: :revenue }
63
65
 
64
66
  # Journals
65
- let!(:journal1) { Keepr::Journal.create! :keepr_postings_attributes => [
66
- { :keepr_account => account_1a, :amount => 100.99, :side => 'debit' },
67
- { :keepr_account => account_2, :amount => 100.99, :side => 'credit' }
68
- ]
69
- }
70
- let!(:journal2) { Keepr::Journal.create! :keepr_postings_attributes => [
71
- { :keepr_account => account_1b, :amount => 100.99, :side => 'debit' },
72
- { :keepr_account => account_2, :amount => 100.99, :side => 'credit' }
73
- ]
74
- }
75
- let!(:journal3) { Keepr::Journal.create! :keepr_postings_attributes => [
76
- { :keepr_account => account_1c, :amount => 100.99, :side => 'debit' },
77
- { :keepr_account => account_2, :amount => 100.99, :side => 'credit' }
78
- ]
79
- }
67
+ let!(:journal1) do
68
+ Keepr::Journal.create! keepr_postings_attributes: [
69
+ { keepr_account: account_1a, amount: 100.99, side: 'debit' },
70
+ { keepr_account: account_2, amount: 100.99, side: 'credit' }
71
+ ]
72
+ end
73
+ let!(:journal2) do
74
+ Keepr::Journal.create! keepr_postings_attributes: [
75
+ { keepr_account: account_1b, amount: 100.99, side: 'debit' },
76
+ { keepr_account: account_2, amount: 100.99, side: 'credit' }
77
+ ]
78
+ end
79
+ let!(:journal3) do
80
+ Keepr::Journal.create! keepr_postings_attributes: [
81
+ { keepr_account: account_1c, amount: 100.99, side: 'debit' },
82
+ { keepr_account: account_2, amount: 100.99, side: 'credit' }
83
+ ]
84
+ end
80
85
 
81
86
  context 'for normal groups' do
82
- it "should return postings of all accounts within the group" do
83
- postings_1 = [journal1.debit_postings.first, journal2.debit_postings.first, journal3.debit_postings.first]
84
- expect(group_1.keepr_postings).to eq(postings_1)
85
- expect(group_1_1.keepr_postings).to eq(postings_1)
86
- expect(group_1_1_1.keepr_postings).to eq(postings_1)
87
-
88
- postings_2 = [journal1.credit_postings.first, journal2.credit_postings.first, journal3.credit_postings.first]
89
- expect(group_2.keepr_postings).to eq(postings_2)
87
+ it 'should return postings of all accounts within the group' do
88
+ postings1 = [journal1.debit_postings.first, journal2.debit_postings.first, journal3.debit_postings.first]
89
+ expect(group_1.keepr_postings).to eq(postings1)
90
+ expect(group_1_1.keepr_postings).to eq(postings1)
91
+ expect(group_1_1_1.keepr_postings).to eq(postings1)
92
+
93
+ postings2 = [journal1.credit_postings.first, journal2.credit_postings.first, journal3.credit_postings.first]
94
+ expect(group_2.keepr_postings).to eq(postings2)
90
95
  end
91
96
  end
92
97
 
93
- context "for result group" do
94
- it "should return postings for P&L accounts" do
95
- result_postings = [ journal1.credit_postings.first,
96
- journal2.credit_postings.first,
97
- journal3.credit_postings.first
98
- ]
98
+ context 'for result group' do
99
+ it 'should return postings for P&L accounts' do
100
+ result_postings = [journal1.credit_postings.first,
101
+ journal2.credit_postings.first,
102
+ journal3.credit_postings.first]
99
103
 
100
104
  expect(group_result.keepr_postings).to eq(result_postings)
101
105
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Keepr::GroupsCreator do
@@ -6,7 +8,7 @@ describe Keepr::GroupsCreator do
6
8
  Keepr::GroupsCreator.new(:balance).run
7
9
  end
8
10
 
9
- it "should create groups" do
11
+ it 'should create groups' do
10
12
  expect(Keepr::Group.count).to eq(64)
11
13
  expect(Keepr::Group.asset.count).to eq(36)
12
14
  expect(Keepr::Group.liability.count).to eq(28)
@@ -15,7 +17,7 @@ describe Keepr::GroupsCreator do
15
17
  compare_with_source(Keepr::Group.liability, 'liability.txt')
16
18
  end
17
19
 
18
- it "should create result group" do
20
+ it 'should create result group' do
19
21
  expect(Keepr::Group.result).to be_a(Keepr::Group)
20
22
  end
21
23
  end
@@ -25,7 +27,7 @@ describe Keepr::GroupsCreator do
25
27
  Keepr::GroupsCreator.new(:profit_and_loss).run
26
28
  end
27
29
 
28
- it "should create profit & loss groups" do
30
+ it 'should create profit & loss groups' do
29
31
  expect(Keepr::Group.count).to eq(31)
30
32
  expect(Keepr::Group.profit_and_loss.count).to eq(31)
31
33
 
@@ -33,7 +35,8 @@ describe Keepr::GroupsCreator do
33
35
  end
34
36
  end
35
37
 
36
- private
38
+ private
39
+
37
40
  def compare_with_source(scope, filename)
38
41
  full_filename = File.join(File.dirname(__FILE__), "../../lib/keepr/groups_creator/#{filename}")
39
42
  source = File.read(full_filename)
@@ -1,34 +1,35 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Keepr::JournalExport do
4
- let(:ust) { Keepr::Tax.create! :name => 'USt19', :value => 19.0, :keepr_account => account_1776 }
5
- let(:vst) { Keepr::Tax.create! :name => 'VSt19', :value => 19.0, :keepr_account => account_1576 }
6
+ let(:ust) { Keepr::Tax.create! name: 'USt19', value: 19.0, keepr_account: account_1776 }
7
+ let(:vst) { Keepr::Tax.create! name: 'VSt19', value: 19.0, keepr_account: account_1576 }
6
8
 
7
- let(:account_1000) { FactoryGirl.create :account, :number => 1000, :kind => :asset }
8
- let(:account_1200) { FactoryGirl.create :account, :number => 1200, :kind => :asset }
9
- let(:account_1576) { FactoryGirl.create :account, :number => 1576, :kind => :asset }
10
- let(:account_1776) { FactoryGirl.create :account, :number => 1776, :kind => :liability }
11
- let(:account_1600) { FactoryGirl.create :account, :number => 1600, :kind => :liability }
12
- let(:account_1718) { FactoryGirl.create :account, :number => 1718, :kind => :liability, :keepr_tax => ust }
13
- let(:account_4920) { FactoryGirl.create :account, :number => 4920, :kind => :expense, :keepr_tax => vst }
14
- let(:account_8400) { FactoryGirl.create :account, :number => 8400, :kind => :revenue, :keepr_tax => ust }
9
+ let(:account_1000) { FactoryBot.create :account, number: 1000, kind: :asset }
10
+ let(:account_1200) { FactoryBot.create :account, number: 1200, kind: :asset }
11
+ let(:account_1576) { FactoryBot.create :account, number: 1576, kind: :asset }
12
+ let(:account_1776) { FactoryBot.create :account, number: 1776, kind: :liability }
13
+ let(:account_1600) { FactoryBot.create :account, number: 1600, kind: :liability }
14
+ let(:account_1718) { FactoryBot.create :account, number: 1718, kind: :liability, keepr_tax: ust }
15
+ let(:account_4920) { FactoryBot.create :account, number: 4920, kind: :expense, keepr_tax: vst }
16
+ let(:account_8400) { FactoryBot.create :account, number: 8400, kind: :revenue, keepr_tax: ust }
15
17
 
16
- let(:account_10000) { FactoryGirl.create :account, :number => 10000, :kind => :debtor }
18
+ let(:account_10000) { FactoryBot.create :account, number: 10_000, kind: :debtor }
17
19
 
18
20
  let(:scope) { Keepr::Journal.reorder(:number) }
19
21
 
20
- let(:export) {
22
+ let(:export) do
21
23
  Keepr::JournalExport.new(scope,
22
- 'Berater' => 1234567,
23
- 'Mandant' => 78901,
24
- 'Datum vom' => Date.new(2016,6,1),
25
- 'Datum bis' => Date.new(2016,6,30),
26
- 'WJ-Beginn' => Date.new(2016,1,1),
27
- 'Bezeichnung' => 'Keepr-Buchungen'
28
- ) do |posting|
24
+ 'Berater' => 1_234_567,
25
+ 'Mandant' => 78_901,
26
+ 'Datum vom' => Date.new(2016, 6, 1),
27
+ 'Datum bis' => Date.new(2016, 6, 30),
28
+ 'WJ-Beginn' => Date.new(2016, 1, 1),
29
+ 'Bezeichnung' => 'Keepr-Buchungen') do |posting|
29
30
  { 'Identifikationsnummer' => "ID:#{posting.id}" }
30
31
  end
31
- }
32
+ end
32
33
 
33
34
  describe :to_s do
34
35
  subject { export.to_s }
@@ -37,127 +38,127 @@ describe Keepr::JournalExport do
37
38
  subject.lines[2..-1]
38
39
  end
39
40
 
40
- it "should return CSV lines" do
41
+ it 'should return CSV lines' do
41
42
  expect(subject.lines.count).to eq(2)
42
43
  subject.lines.each { |line| expect(line).to include(';') }
43
44
  end
44
45
 
45
- it "should include header data" do
46
+ it 'should include header data' do
46
47
  expect(subject.lines[0]).to include('1234567;')
47
48
  expect(subject.lines[0]).to include('78901;')
48
49
  expect(subject.lines[0]).to include('20160601;20160630;')
49
- expect(subject.lines[0]).to include('Keepr-Buchungen;')
50
+ expect(subject.lines[0]).to include('"Keepr-Buchungen";')
50
51
  end
51
52
 
52
- context "Journal without tax" do
53
+ context 'Journal without tax' do
53
54
  let!(:journal_without_tax) do
54
- Keepr::Journal.create! :number => 'BELEG-1',
55
- :subject => 'Geldautomat',
56
- :date => Date.new(2016,06,23),
57
- :keepr_postings_attributes => [
58
- { :keepr_account => account_1000, :amount => 105, :side => 'debit' },
59
- { :keepr_account => account_1200, :amount => 105, :side => 'credit' }
55
+ Keepr::Journal.create! number: 'BELEG-1',
56
+ subject: 'Geldautomat',
57
+ date: Date.new(2016, 0o6, 23),
58
+ keepr_postings_attributes: [
59
+ { keepr_account: account_1000, amount: 105, side: 'debit' },
60
+ { keepr_account: account_1200, amount: 105, side: 'credit' }
60
61
  ]
61
62
  end
62
63
 
63
- it "should include data" do
64
+ it 'should include data' do
64
65
  expect(booking_lines.count).to eq(1)
65
66
 
66
- expect(booking_lines[0]).to include('Geldautomat;')
67
+ expect(booking_lines[0]).to include('"Geldautomat";')
67
68
  expect(booking_lines[0]).to include('1000;1200;')
68
69
  expect(booking_lines[0]).to include('105,00;')
69
- expect(booking_lines[0]).to include(';S;')
70
+ expect(booking_lines[0]).to include(';"S";')
70
71
  expect(booking_lines[0]).to include('2306;')
71
- expect(booking_lines[0]).to include('BELEG-1;')
72
+ expect(booking_lines[0]).to include('"BELEG-1";')
72
73
  expect(booking_lines[0]).to include(';0;')
73
74
  end
74
75
  end
75
76
 
76
- context "Journal with tax" do
77
+ context 'Journal with tax' do
77
78
  let!(:journal_with_tax) do
78
- Keepr::Journal.create! :number => 'BELEG-2',
79
- :subject => 'Telefonrechnung',
80
- :date => Date.new(2016,06,24),
81
- :keepr_postings_attributes => [
82
- { :keepr_account => account_4920, :amount => 8.40, :side => 'debit' },
83
- { :keepr_account => account_1576, :amount => 1.60, :side => 'debit' },
84
- { :keepr_account => account_1600, :amount => 10.00, :side => 'credit' }
79
+ Keepr::Journal.create! number: 'BELEG-2',
80
+ subject: 'Telefonrechnung',
81
+ date: Date.new(2016, 0o6, 24),
82
+ keepr_postings_attributes: [
83
+ { keepr_account: account_4920, amount: 8.40, side: 'debit' },
84
+ { keepr_account: account_1576, amount: 1.60, side: 'debit' },
85
+ { keepr_account: account_1600, amount: 10.00, side: 'credit' }
85
86
  ]
86
87
  end
87
88
 
88
- it "should include data" do
89
+ it 'should include data' do
89
90
  expect(booking_lines.count).to eq(2)
90
91
 
91
- expect(booking_lines[0]).to include('Telefonrechnung;')
92
+ expect(booking_lines[0]).to include('"Telefonrechnung";')
92
93
  expect(booking_lines[0]).to include('4920;1600;')
93
94
  expect(booking_lines[0]).to include('8,40;')
94
- expect(booking_lines[0]).to include(';S;')
95
+ expect(booking_lines[0]).to include(';"S";')
95
96
  expect(booking_lines[0]).to include('2406;')
96
- expect(booking_lines[0]).to include('BELEG-2;')
97
+ expect(booking_lines[0]).to include('"BELEG-2";')
97
98
  expect(booking_lines[0]).to include(';0;')
98
99
 
99
- expect(booking_lines[1]).to include('Telefonrechnung;')
100
+ expect(booking_lines[1]).to include('"Telefonrechnung";')
100
101
  expect(booking_lines[1]).to include('1576;1600;')
101
102
  expect(booking_lines[1]).to include('1,60;')
102
- expect(booking_lines[1]).to include(';S;')
103
+ expect(booking_lines[1]).to include(';"S";')
103
104
  expect(booking_lines[1]).to include('2406;')
104
- expect(booking_lines[1]).to include('BELEG-2;')
105
+ expect(booking_lines[1]).to include('"BELEG-2";')
105
106
  expect(booking_lines[1]).to include(';0;')
106
107
  end
107
108
  end
108
109
 
109
- context "Journal with debtor" do
110
+ context 'Journal with debtor' do
110
111
  let!(:journal_with_debtor) do
111
- Keepr::Journal.create! :number => 'BELEG-3',
112
- :subject => 'Warenverkauf mit Anzahlung',
113
- :date => Date.new(2016,06,25),
114
- :keepr_postings_attributes => [
115
- { :keepr_account => account_10000, :amount => 4760.00, :side => 'debit' },
116
- { :keepr_account => account_1718, :amount => 1000.00, :side => 'debit' },
117
- { :keepr_account => account_1776, :amount => 190.00, :side => 'debit' },
118
-
119
- { :keepr_account => account_8400, :amount => 5000.00, :side => 'credit' },
120
- { :keepr_account => account_1776, :amount => 950.00, :side => 'credit' }
112
+ Keepr::Journal.create! number: 'BELEG-3',
113
+ subject: 'Warenverkauf mit Anzahlung',
114
+ date: Date.new(2016, 0o6, 25),
115
+ keepr_postings_attributes: [
116
+ { keepr_account: account_10000, amount: 4760.00, side: 'debit' },
117
+ { keepr_account: account_1718, amount: 1000.00, side: 'debit' },
118
+ { keepr_account: account_1776, amount: 190.00, side: 'debit' },
119
+
120
+ { keepr_account: account_8400, amount: 5000.00, side: 'credit' },
121
+ { keepr_account: account_1776, amount: 950.00, side: 'credit' }
121
122
  ]
122
123
  end
123
124
 
124
- it "should include data" do
125
+ it 'should include data' do
125
126
  expect(booking_lines.count).to eq(4)
126
127
 
127
- expect(booking_lines[0]).to include('Warenverkauf mit Anzahlung;')
128
+ expect(booking_lines[0]).to include('"Warenverkauf mit Anzahlung";')
128
129
  expect(booking_lines[0]).to include('10000;8400;')
129
130
  expect(booking_lines[0]).to include('5000,00;')
130
- expect(booking_lines[0]).to include(';S;')
131
+ expect(booking_lines[0]).to include(';"S";')
131
132
  expect(booking_lines[0]).to include('2506;')
132
- expect(booking_lines[0]).to include('BELEG-3;')
133
+ expect(booking_lines[0]).to include('"BELEG-3";')
133
134
  expect(booking_lines[0]).to include(';0;')
134
135
 
135
- expect(booking_lines[1]).to include('Warenverkauf mit Anzahlung;')
136
+ expect(booking_lines[1]).to include('"Warenverkauf mit Anzahlung";')
136
137
  expect(booking_lines[1]).to include('10000;1776;')
137
138
  expect(booking_lines[1]).to include('950,00;')
138
- expect(booking_lines[1]).to include(';S;')
139
+ expect(booking_lines[1]).to include(';"S";')
139
140
  expect(booking_lines[1]).to include('2506;')
140
- expect(booking_lines[1]).to include('BELEG-3;')
141
+ expect(booking_lines[1]).to include('"BELEG-3";')
141
142
  expect(booking_lines[1]).to include(';0;')
142
143
 
143
- expect(booking_lines[2]).to include('Warenverkauf mit Anzahlung;')
144
+ expect(booking_lines[2]).to include('"Warenverkauf mit Anzahlung";')
144
145
  expect(booking_lines[2]).to include('1718;10000;')
145
146
  expect(booking_lines[2]).to include('1000,00;')
146
- expect(booking_lines[2]).to include(';S;')
147
+ expect(booking_lines[2]).to include(';"S";')
147
148
  expect(booking_lines[2]).to include('2506;')
148
- expect(booking_lines[2]).to include('BELEG-3;')
149
+ expect(booking_lines[2]).to include('"BELEG-3";')
149
150
  expect(booking_lines[2]).to include(';0;')
150
151
 
151
- expect(booking_lines[3]).to include('Warenverkauf mit Anzahlung;')
152
+ expect(booking_lines[3]).to include('"Warenverkauf mit Anzahlung";')
152
153
  expect(booking_lines[3]).to include('1776;10000;')
153
154
  expect(booking_lines[3]).to include('190,00;')
154
- expect(booking_lines[3]).to include(';S;')
155
+ expect(booking_lines[3]).to include(';"S";')
155
156
  expect(booking_lines[3]).to include('2506;')
156
- expect(booking_lines[3]).to include('BELEG-3;')
157
+ expect(booking_lines[3]).to include('"BELEG-3";')
157
158
  expect(booking_lines[3]).to include(';0;')
158
159
  end
159
160
 
160
- it "should include data from block" do
161
+ it 'should include data from block' do
161
162
  expect(booking_lines[0]).to include('ID:')
162
163
  expect(booking_lines[1]).to include('ID:')
163
164
  end
@@ -165,7 +166,7 @@ describe Keepr::JournalExport do
165
166
  end
166
167
 
167
168
  describe :to_file do
168
- it "should create CSV file" do
169
+ it 'should create CSV file' do
169
170
  Dir.mktmpdir do |dir|
170
171
  filename = "#{dir}/EXTF_Buchungsstapel.csv"
171
172
  export.to_file(filename)