pacioli 0.0.6 → 0.0.7

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.
@@ -71,6 +71,25 @@ module Pacioli
71
71
  source_documentable
72
72
  end
73
73
 
74
+ # record
75
+ # Could be used to update a journal entry and affect other accounts
76
+ # eg. a payment into our bank would result in a journal entry but
77
+ # we may not know where it came from. At a later stage we could allocate
78
+ # the payment to a customer/invoice etc.
79
+
80
+ def record(&block)
81
+ self.transaction do
82
+ self.instance_eval(&block)
83
+
84
+ self.execute_posting_rules
85
+
86
+ JournalEntryValidator.for(self).execute
87
+
88
+ self.save!
89
+ self
90
+ end
91
+ end
92
+
74
93
  def self.for(source)
75
94
  where(source_documentable_type: source.class.name, source_documentable_id: source.id)
76
95
  end
@@ -1,3 +1,3 @@
1
1
  module Pacioli
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -87,6 +87,24 @@ describe Pacioli::Account do
87
87
  end
88
88
  end
89
89
 
90
+ context "Recording a journal entry and also updating it at a later stage" do
91
+ before(:each) do
92
+ @journal_entry = @company.record_journal_entry do
93
+ with_description "Invoice 123 for November Rent"
94
+ with_date Date.yesterday
95
+ debit account: "Accounts Receivable", amount: 4500.00
96
+ credit account: "Sales", amount: 4500.00
97
+ end
98
+ end
99
+
100
+ it "should be able affect other accounts with an existing journal entry" do
101
+ @journal_entry.record do
102
+ credit account: "Sales Tax", amount: 100.0
103
+ debit account: "Accounts Receivable", amount: 100.0
104
+ end
105
+ end
106
+ end
107
+
90
108
  context "Recording specific types of journal entries using posting rules" do
91
109
  context "Against 2 accounts" do
92
110
  before(:each) do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pacioli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-17 00:00:00.000000000Z
12
+ date: 2013-01-18 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &70282124011920 !ruby/object:Gem::Requirement
16
+ requirement: &70254949333580 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70282124011920
24
+ version_requirements: *70254949333580
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activerecord
27
- requirement: &70282124011420 !ruby/object:Gem::Requirement
27
+ requirement: &70254949333080 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '3.0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70282124011420
35
+ version_requirements: *70254949333080
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: i18n
38
- requirement: &70282124011000 !ruby/object:Gem::Requirement
38
+ requirement: &70254949332660 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70282124011000
46
+ version_requirements: *70254949332660
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: combustion
49
- requirement: &70282124010460 !ruby/object:Gem::Requirement
49
+ requirement: &70254949332120 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 0.3.1
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70282124010460
57
+ version_requirements: *70254949332120
58
58
  description: A double-entry bookkeeping system for Ruby on Rails
59
59
  email:
60
60
  - jeffmess@gmail.com