erp_txns_and_accts 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/GPL-3-LICENSE +674 -0
  2. data/README.rdoc +2 -0
  3. data/Rakefile +30 -0
  4. data/app/assets/javascripts/erp_txns_and_accts/application.js +9 -0
  5. data/app/assets/stylesheets/erp_txns_and_accts/application.css +7 -0
  6. data/app/controllers/erp_txns_and_accts/application_controller.rb +4 -0
  7. data/app/helpers/erp_txns_and_accts/application_helper.rb +4 -0
  8. data/app/models/base_txn_context.rb +6 -0
  9. data/app/models/biz_acct_txn_task.rb +3 -0
  10. data/app/models/biz_txn_acct_party_role.rb +23 -0
  11. data/app/models/biz_txn_acct_pty_rtype.rb +3 -0
  12. data/app/models/biz_txn_acct_rel_type.rb +3 -0
  13. data/app/models/biz_txn_acct_relationship.rb +8 -0
  14. data/app/models/biz_txn_acct_root.rb +21 -0
  15. data/app/models/biz_txn_acct_status.rb +3 -0
  16. data/app/models/biz_txn_acct_status_type.rb +3 -0
  17. data/app/models/biz_txn_acct_type.rb +4 -0
  18. data/app/models/biz_txn_agreement_role.rb +7 -0
  19. data/app/models/biz_txn_agreement_role_type.rb +4 -0
  20. data/app/models/biz_txn_event.rb +61 -0
  21. data/app/models/biz_txn_event_desc.rb +5 -0
  22. data/app/models/biz_txn_party_role.rb +7 -0
  23. data/app/models/biz_txn_party_role_type.rb +4 -0
  24. data/app/models/biz_txn_rel_type.rb +4 -0
  25. data/app/models/biz_txn_relationship.rb +8 -0
  26. data/app/models/biz_txn_status.rb +3 -0
  27. data/app/models/biz_txn_task.rb +3 -0
  28. data/app/models/biz_txn_task_type.rb +3 -0
  29. data/app/models/biz_txn_type.rb +36 -0
  30. data/app/models/extensions/charge_line.rb +8 -0
  31. data/app/models/extensions/charge_line_payment_txn.rb +3 -0
  32. data/app/models/extensions/money.rb +6 -0
  33. data/app/models/extensions/party.rb +27 -0
  34. data/app/models/financial_txn.rb +71 -0
  35. data/app/models/financial_txn_account.rb +71 -0
  36. data/app/views/layouts/erp_txns_and_accts/application.html.erb +14 -0
  37. data/config/routes.rb +2 -0
  38. data/db/data_migrations/20101014142230_financial_txn_types.rb +15 -0
  39. data/db/migrate/20080805000030_base_txns_and_accts.rb +360 -0
  40. data/db/migrate/20110609230152_update_financial_txns.rb +21 -0
  41. data/lib/erp_txns_and_accts.rb +6 -0
  42. data/lib/erp_txns_and_accts/delayed_jobs/payment_gateway_job.rb +24 -0
  43. data/lib/erp_txns_and_accts/engine.rb +12 -0
  44. data/lib/erp_txns_and_accts/extensions.rb +3 -0
  45. data/lib/erp_txns_and_accts/extensions/active_record/acts_as_biz_txn_account.rb +63 -0
  46. data/lib/erp_txns_and_accts/extensions/active_record/acts_as_biz_txn_event.rb +72 -0
  47. data/lib/erp_txns_and_accts/extensions/active_record/acts_as_financial_txn_account.rb +70 -0
  48. data/lib/erp_txns_and_accts/version.rb +3 -0
  49. data/lib/tasks/erp_txns_and_accts_tasks.rake +4 -0
  50. metadata +144 -0
@@ -0,0 +1,21 @@
1
+ class UpdateFinancialTxns < ActiveRecord::Migration
2
+ def self.up
3
+ if columns(:financial_txns).collect {|c| c.name}.include?('payment_type')
4
+ remove_column :financial_txns, :payment_type
5
+ end
6
+
7
+ if columns(:financial_txns).collect {|c| c.name}.include?('amount_id')
8
+ rename_column :financial_txns, :amount_id, :money_id
9
+ end
10
+ end
11
+
12
+ def self.down
13
+ unless columns(:financial_txns).collect {|c| c.name}.include?('payment_type')
14
+ add_column :financial_txns, :payment_type, :string
15
+ end
16
+
17
+ if columns(:financial_txns).collect {|c| c.name}.include?('money_id')
18
+ rename_column :financial_txns, :money_id, :amount_id
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,6 @@
1
+ require "erp_txns_and_accts/delayed_jobs/payment_gateway_job"
2
+ require "erp_txns_and_accts/extensions"
3
+ require "erp_txns_and_accts/engine"
4
+
5
+ module ErpTxnsAndAccts
6
+ end
@@ -0,0 +1,24 @@
1
+ module ErpTxnsAndAccts
2
+ module DelayedJobs
3
+ class PaymentGatewayJob
4
+ def self.start(financial_txn, gateway, gateway_action, gateway_options, credit_card)
5
+ job_object = ErpTxnsAndAccts::DelayedJobs::PaymentGatewayJob.new(financial_txn.id, gateway.name.to_s, gateway_action, gateway_options, credit_card)
6
+ Delayed::Job.enqueue(job_object, 50, 1.seconds.from_now)
7
+ end
8
+
9
+ def initialize(financial_txn_id, gateway_klass, gateway_action, gateway_options, credit_card)
10
+ @financial_txn_id = financial_txn_id
11
+ @gateway_klass = gateway_klass
12
+ @gateway_action = gateway_action
13
+ @gateway_options = gateway_options
14
+ @credit_card = credit_card
15
+ end
16
+
17
+ def perform
18
+ gateway = @gateway_klass.constantize
19
+ financial_txn = FinancialTxn.find(@financial_txn_id)
20
+ financial_txn.send(@gateway_action, @credit_card, gateway, @gateway_options)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,12 @@
1
+ module ErpTxnsAndAccts
2
+ class Engine < Rails::Engine
3
+ isolate_namespace ErpTxnsAndAccts
4
+
5
+ ActiveSupport.on_load(:active_record) do
6
+ include ErpTxnsAndAccts::Extensions::ActiveRecord::ActsAsBizTxnAccount
7
+ include ErpTxnsAndAccts::Extensions::ActiveRecord::ActsAsBizTxnEvent
8
+ include ErpTxnsAndAccts::Extensions::ActiveRecord::ActsAsFinancialTxnAccount
9
+ end
10
+
11
+ end
12
+ end
@@ -0,0 +1,3 @@
1
+ require 'erp_txns_and_accts/extensions/active_record/acts_as_biz_txn_account'
2
+ require 'erp_txns_and_accts/extensions/active_record/acts_as_biz_txn_event'
3
+ require 'erp_txns_and_accts/extensions/active_record/acts_as_financial_txn_account'
@@ -0,0 +1,63 @@
1
+ module ErpTxnsAndAccts
2
+ module Extensions
3
+ module ActiveRecord
4
+ module ActsAsBizTxnAccount
5
+
6
+ def self.included(base)
7
+ base.extend(ClassMethods)
8
+ end
9
+
10
+ module ClassMethods
11
+ def acts_as_biz_txn_account
12
+ extend ActsAsBizTxnAccount::SingletonMethods
13
+ include ActsAsBizTxnAccount::InstanceMethods
14
+
15
+ after_initialize :initialize_biz_txn_account
16
+ after_create :save_biz_txn_account
17
+ after_update :save_biz_txn_account
18
+ after_destroy :destroy_biz_txn_account
19
+
20
+ has_one :biz_txn_acct_root, :as => :biz_txn_acct
21
+
22
+ [
23
+ :biz_txn_acct_type,
24
+ :biz_txn_events,
25
+ :biz_txn_acct_party_roles,
26
+ :txn_events,
27
+ :description,:description=,
28
+ :txns,
29
+ :account_type
30
+ ].each do |m| delegate m, :to => :biz_txn_acct_root end
31
+
32
+ end
33
+ end
34
+
35
+ module InstanceMethods
36
+ def account_root
37
+ biz_txn_acct_root
38
+ end
39
+
40
+ def initialize_biz_txn_account
41
+ if (self.biz_txn_acct_root.nil?)
42
+ t = BizTxnAcctRoot.new
43
+ self.biz_txn_acct_root = t
44
+ t.biz_txn_acct = self
45
+ end
46
+ end
47
+
48
+ def save_biz_txn_account
49
+ self.biz_txn_acct_root.save
50
+ end
51
+
52
+ def destroy_biz_txn_account
53
+ self.biz_txn_acct_root.destroy if (self.biz_txn_acct_root && !self.biz_txn_acct_root.frozen?)
54
+ end
55
+ end
56
+
57
+ module SingletonMethods
58
+ end
59
+
60
+ end#ActsAsBizTxnAccount
61
+ end#ActiveRecord
62
+ end#Extensions
63
+ end#ErpTxnsAndAccts
@@ -0,0 +1,72 @@
1
+ module ErpTxnsAndAccts
2
+ module Extensions
3
+ module ActiveRecord
4
+ module ActsAsBizTxnEvent
5
+
6
+ def self.included(base)
7
+ base.extend(ClassMethods)
8
+ end
9
+
10
+ module ClassMethods
11
+ def acts_as_biz_txn_event
12
+ extend ActsAsBizTxnEvent::SingletonMethods
13
+ include ActsAsBizTxnEvent::InstanceMethods
14
+
15
+ after_initialize :initialize_biz_txn_event
16
+ after_create :save_biz_txn_event
17
+ after_update :save_biz_txn_event
18
+ after_destroy :destroy_biz_txn_event
19
+
20
+ has_one :biz_txn_event, :as => :biz_txn_record
21
+ belongs_to :biz_txn_acct_root
22
+
23
+ #from BizTxnEvent
24
+ [:txn_type,:txn_type=,
25
+ :txn_type_iid,:txn_type_iid=,
26
+ :description,:description=,
27
+ :post_date,:post_date=,
28
+ :created_at,:created_at=,
29
+ :updated_at,:updated_at=,
30
+ :create_dependent_txns,:account].each { |m| delegate m, :to => :biz_txn_event }
31
+ end
32
+ end
33
+
34
+ module SingletonMethods
35
+ end
36
+
37
+ module InstanceMethods
38
+ def root_txn
39
+ self.biz_txn_event
40
+ end
41
+
42
+ #allow for a client to pass either an account root or a polymorphic subclass of
43
+ #account root, but always set the account to the root
44
+ def account=(acct)
45
+ if acct.instance_of?(BizTxnAcctRoot)
46
+ self.biz_txn_event.biz_txn_acct_root = (acct)
47
+ else
48
+ self.biz_txn_event.biz_txn_acct_root = (acct.biz_txn_acct_root)
49
+ end
50
+ end
51
+
52
+ def save_biz_txn_event
53
+ self.biz_txn_event.save
54
+ end
55
+
56
+ def initialize_biz_txn_event
57
+ if (self.biz_txn_event.nil?)
58
+ t = BizTxnEvent.new
59
+ self.biz_txn_event = t
60
+ t.biz_txn_record = self
61
+ end
62
+ end
63
+
64
+ def destroy_biz_txn_account
65
+ self.biz_txn_event.destroy if (self.biz_txn_event && !self.biz_txn_event.frozen?)
66
+ end
67
+ end
68
+
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,70 @@
1
+ module ErpTxnsAndAccts
2
+ module Extensions
3
+ module ActiveRecord
4
+ module ActsAsFinancialTxnAccount
5
+
6
+ def self.included(base)
7
+ base.extend(ClassMethods)
8
+ end
9
+
10
+ module ClassMethods
11
+ def acts_as_financial_txn_account
12
+ extend ActsAsBizTxnAccount::SingletonMethods
13
+ include ActsAsBizTxnAccount::InstanceMethods
14
+
15
+ after_initialize :initialize_financial_txn_account
16
+ after_create :save_financial_txn_account
17
+ after_update :save_financial_txn_account
18
+ after_destroy :destroy_financial_txn_account
19
+
20
+ has_one :financial_txn_account, :as => :financial_account
21
+
22
+ [
23
+ :biz_txn_acct_type,
24
+ :biz_txn_events,
25
+ :biz_txn_acct_party_roles,
26
+ :txn_events,
27
+ :txns,
28
+ :biz_txn_acct_root,:biz_txn_acct_root=,
29
+ :account_type,
30
+ :agreement,:agreement=,
31
+ :balance,:balance=,
32
+ :account_number,:account_number=,
33
+ :due_date,:due_date=,
34
+ :created_at,:updated_at,
35
+ :payment_due,:payment_due=,
36
+ :description,:description=,
37
+ :account_delinquent?,:financial_txns,
38
+ :authorize_payment_txn,:finalize_payment_txn,:rollback_last_txn,
39
+ :financial_txns,:financial_txns=
40
+ ].each do |m| delegate m, :to => :financial_txn_account end
41
+ end
42
+ end
43
+
44
+ module InstanceMethods
45
+
46
+ def initialize_financial_txn_account
47
+ if (self.financial_txn_account.nil?)
48
+ f = FinancialTxnAccount.new
49
+ self.financial_txn_account = f
50
+ f.financial_account = self
51
+ end
52
+ end
53
+
54
+ def save_financial_txn_account
55
+ self.financial_txn_account.save
56
+ end
57
+
58
+ def destroy_financial_txn_account
59
+ self.financial_txn_account.destroy if (self.financial_txn_account && !self.financial_txn_account.frozen?)
60
+ end
61
+
62
+ end
63
+
64
+ module SingletonMethods
65
+ end
66
+
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,3 @@
1
+ module ErpTxnsAndAccts
2
+ VERSION = "3.0.0"
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :erp_txns_and_accts do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,144 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: erp_txns_and_accts
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Rick Koloski, Russell Holmes
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-06 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: erp_app
16
+ requirement: &2157012800 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2157012800
25
+ - !ruby/object:Gem::Dependency
26
+ name: erp_agreements
27
+ requirement: &2157012260 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2157012260
36
+ - !ruby/object:Gem::Dependency
37
+ name: erp_orders
38
+ requirement: &2157011580 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *2157011580
47
+ - !ruby/object:Gem::Dependency
48
+ name: erp_dev_svcs
49
+ requirement: &2157010900 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *2157010900
58
+ description: ! 'The Transactions and Accounts Engine implements the root classes for
59
+ adding business transactions and accounts to parties. The key marker interface classes
60
+ here are BizTxnEvent, which represents a common interface for all manner of management
61
+ accounting transactions, and BixTxnAcctRoot, which is the root class for the accounting
62
+ of transactions. CompassAE uses separate structures for management and financial
63
+ accounting. '
64
+ email:
65
+ - russonrails@gmail.com
66
+ executables: []
67
+ extensions: []
68
+ extra_rdoc_files: []
69
+ files:
70
+ - app/assets/javascripts/erp_txns_and_accts/application.js
71
+ - app/assets/stylesheets/erp_txns_and_accts/application.css
72
+ - app/controllers/erp_txns_and_accts/application_controller.rb
73
+ - app/helpers/erp_txns_and_accts/application_helper.rb
74
+ - app/models/base_txn_context.rb
75
+ - app/models/biz_acct_txn_task.rb
76
+ - app/models/biz_txn_acct_party_role.rb
77
+ - app/models/biz_txn_acct_pty_rtype.rb
78
+ - app/models/biz_txn_acct_rel_type.rb
79
+ - app/models/biz_txn_acct_relationship.rb
80
+ - app/models/biz_txn_acct_root.rb
81
+ - app/models/biz_txn_acct_status.rb
82
+ - app/models/biz_txn_acct_status_type.rb
83
+ - app/models/biz_txn_acct_type.rb
84
+ - app/models/biz_txn_agreement_role.rb
85
+ - app/models/biz_txn_agreement_role_type.rb
86
+ - app/models/biz_txn_event.rb
87
+ - app/models/biz_txn_event_desc.rb
88
+ - app/models/biz_txn_party_role.rb
89
+ - app/models/biz_txn_party_role_type.rb
90
+ - app/models/biz_txn_rel_type.rb
91
+ - app/models/biz_txn_relationship.rb
92
+ - app/models/biz_txn_status.rb
93
+ - app/models/biz_txn_task.rb
94
+ - app/models/biz_txn_task_type.rb
95
+ - app/models/biz_txn_type.rb
96
+ - app/models/extensions/charge_line.rb
97
+ - app/models/extensions/charge_line_payment_txn.rb
98
+ - app/models/extensions/money.rb
99
+ - app/models/extensions/party.rb
100
+ - app/models/financial_txn.rb
101
+ - app/models/financial_txn_account.rb
102
+ - app/views/layouts/erp_txns_and_accts/application.html.erb
103
+ - config/routes.rb
104
+ - db/data_migrations/20101014142230_financial_txn_types.rb
105
+ - db/migrate/20080805000030_base_txns_and_accts.rb
106
+ - db/migrate/20110609230152_update_financial_txns.rb
107
+ - lib/erp_txns_and_accts/delayed_jobs/payment_gateway_job.rb
108
+ - lib/erp_txns_and_accts/engine.rb
109
+ - lib/erp_txns_and_accts/extensions/active_record/acts_as_biz_txn_account.rb
110
+ - lib/erp_txns_and_accts/extensions/active_record/acts_as_biz_txn_event.rb
111
+ - lib/erp_txns_and_accts/extensions/active_record/acts_as_financial_txn_account.rb
112
+ - lib/erp_txns_and_accts/extensions.rb
113
+ - lib/erp_txns_and_accts/version.rb
114
+ - lib/erp_txns_and_accts.rb
115
+ - lib/tasks/erp_txns_and_accts_tasks.rake
116
+ - GPL-3-LICENSE
117
+ - Rakefile
118
+ - README.rdoc
119
+ homepage: http://development.compassagile.com
120
+ licenses: []
121
+ post_install_message:
122
+ rdoc_options: []
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ none: false
127
+ requirements:
128
+ - - ! '>='
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ required_rubygems_version: !ruby/object:Gem::Requirement
132
+ none: false
133
+ requirements:
134
+ - - ! '>='
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ requirements: []
138
+ rubyforge_project:
139
+ rubygems_version: 1.8.10
140
+ signing_key:
141
+ specification_version: 3
142
+ summary: The Transactions and Accounts Engine implements the root classes for adding
143
+ business transactions and accounts to parties.
144
+ test_files: []