has_accounts 0.1.1 → 0.2.0
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/has_accounts.rb +3 -1
- data/lib/has_accounts.rb~ +1 -0
- data/lib/has_accounts/model.rb +56 -0
- metadata +6 -4
data/lib/has_accounts.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
require 'has_accounts/railtie' if defined?(::Rails::Railtie)
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module HasAccounts
|
2
|
+
module Model
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
class_inheritable_accessor :direct_account
|
7
|
+
|
8
|
+
has_many :bookings, :as => :reference, :dependent => :destroy do
|
9
|
+
# TODO: duplicated in Booking (without parameter)
|
10
|
+
def direct_balance(value_date = nil, direct_account = nil)
|
11
|
+
return BigDecimal.new('0') unless proxy_owner.direct_account
|
12
|
+
|
13
|
+
direct_account ||= proxy_owner.direct_account
|
14
|
+
balance = BigDecimal.new('0')
|
15
|
+
|
16
|
+
direct_bookings = scoped
|
17
|
+
direct_bookings = direct_bookings.where("value_date <= ?", value_date) if value_date
|
18
|
+
|
19
|
+
for booking in direct_bookings.all
|
20
|
+
balance += booking.accounted_amount(direct_account)
|
21
|
+
end
|
22
|
+
|
23
|
+
balance
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
module ClassMethods
|
29
|
+
def sidebar(options = true)
|
30
|
+
if options.is_a? TrueClass
|
31
|
+
self.sidebars = ["#{controller_name}/sidebar"]
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
module InstanceMethods
|
37
|
+
# Delegate to class
|
38
|
+
def direct_account
|
39
|
+
self.class.direct_account
|
40
|
+
end
|
41
|
+
|
42
|
+
def build_booking
|
43
|
+
booking_template = BookingTemplate.find_by_code(self.class.to_s.underscore + ':invoice')
|
44
|
+
|
45
|
+
booking = booking_template.build_booking(:value_date => value_date, :amount => amount)
|
46
|
+
bookings << booking
|
47
|
+
|
48
|
+
booking
|
49
|
+
end
|
50
|
+
|
51
|
+
def balance(value_date = nil)
|
52
|
+
bookings.direct_balance(value_date)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_accounts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Simon H\xC3\xBCrlimann (CyT)"
|
@@ -38,6 +38,8 @@ files:
|
|
38
38
|
- lib/has_accounts/railtie.rb
|
39
39
|
- lib/has_accounts/class_methods.rb
|
40
40
|
- lib/has_accounts/core_ext/rounding.rb
|
41
|
+
- lib/has_accounts/model.rb
|
42
|
+
- lib/has_accounts.rb~
|
41
43
|
- lib/has_accounts.rb
|
42
44
|
- MIT-LICENSE
|
43
45
|
- Rakefile
|