pacioli 0.0.8 → 0.0.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.
- data/lib/pacioli/account.rb +14 -0
- data/lib/pacioli/company.rb +4 -0
- data/lib/pacioli/credit.rb +4 -0
- data/lib/pacioli/debit.rb +4 -0
- data/lib/pacioli/transaction.rb +8 -0
- data/lib/pacioli/version.rb +1 -1
- data/spec/lib/pacioli/journal_entry_spec.rb +7 -1
- metadata +9 -9
data/lib/pacioli/account.rb
CHANGED
@@ -37,5 +37,19 @@ module Pacioli
|
|
37
37
|
def balance
|
38
38
|
debits.sum(&:amount) - credits.sum(&:amount)
|
39
39
|
end
|
40
|
+
|
41
|
+
def credited_with_source_document?(source)
|
42
|
+
# has this account recorded a credit entry for the source document
|
43
|
+
self.transactions.select(&:credit?).map(&:journal_entry).select {|je| je.source == source}.any?
|
44
|
+
end
|
45
|
+
|
46
|
+
def debited_with_source_document?(source)
|
47
|
+
# has this account recorded a debit entry for the source document
|
48
|
+
self.transactions.select(&:debit?).map(&:journal_entry).select {|je| je.source == source}.any?
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.for(name)
|
52
|
+
where(name: name)
|
53
|
+
end
|
40
54
|
end
|
41
55
|
end
|
data/lib/pacioli/company.rb
CHANGED
data/lib/pacioli/credit.rb
CHANGED
data/lib/pacioli/debit.rb
CHANGED
data/lib/pacioli/transaction.rb
CHANGED
@@ -3,5 +3,13 @@ module Pacioli
|
|
3
3
|
belongs_to :journal_entry, foreign_key: :pacioli_journal_entry_id
|
4
4
|
belongs_to :account, foreign_key: :pacioli_account_id
|
5
5
|
belongs_to :customer, foreign_key: :pacioli_customer_id
|
6
|
+
|
7
|
+
def debit?
|
8
|
+
false
|
9
|
+
end
|
10
|
+
|
11
|
+
def credit?
|
12
|
+
false
|
13
|
+
end
|
6
14
|
end
|
7
15
|
end
|
data/lib/pacioli/version.rb
CHANGED
@@ -201,7 +201,7 @@ describe Pacioli::Account do
|
|
201
201
|
end
|
202
202
|
end
|
203
203
|
|
204
|
-
context "Recording against a customer" do
|
204
|
+
context "Recording against a customer with a source document" do
|
205
205
|
before(:each) do
|
206
206
|
@customer = @company.register_customer do
|
207
207
|
with_name "Leonardo da Vinci"
|
@@ -214,6 +214,7 @@ describe Pacioli::Account do
|
|
214
214
|
|
215
215
|
@company.record_journal_entry do
|
216
216
|
with_description "Invoice 123 for November Rent"
|
217
|
+
with_source_document customer # source should be the invoice!
|
217
218
|
debit account: "Accounts Receivable", amount: 4500.00, against_customer: customer
|
218
219
|
credit account: "Sales", amount: 4500.00
|
219
220
|
end
|
@@ -223,6 +224,11 @@ describe Pacioli::Account do
|
|
223
224
|
@customer.balance.should == 4500.00
|
224
225
|
end
|
225
226
|
|
227
|
+
it "should have a recorded a debit entry against Accounts Receivable for the source document" do
|
228
|
+
@company.fetch_account("Accounts Receivable").debited_with_source_document?(@customer).should be_true
|
229
|
+
@company.fetch_account("Accounts Receivable").credited_with_source_document?(@customer).should be_false
|
230
|
+
end
|
231
|
+
|
226
232
|
context "Customer makes a payment against the invoice" do
|
227
233
|
before(:each) do
|
228
234
|
customer = @customer
|
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.
|
4
|
+
version: 0.0.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2013-01-18 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &70268710502900 !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: *
|
24
|
+
version_requirements: *70268710502900
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activerecord
|
27
|
-
requirement: &
|
27
|
+
requirement: &70268710502400 !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: *
|
35
|
+
version_requirements: *70268710502400
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: i18n
|
38
|
-
requirement: &
|
38
|
+
requirement: &70268710501980 !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: *
|
46
|
+
version_requirements: *70268710501980
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: combustion
|
49
|
-
requirement: &
|
49
|
+
requirement: &70268710501440 !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: *
|
57
|
+
version_requirements: *70268710501440
|
58
58
|
description: A double-entry bookkeeping system for Ruby on Rails
|
59
59
|
email:
|
60
60
|
- jeffmess@gmail.com
|