erp_orders 3.1.1 → 4.0.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.
Files changed (79) hide show
  1. checksums.yaml +7 -0
  2. data/app/models/order_line_item.rb +6 -0
  3. data/app/models/order_line_item_pty_role.rb +1 -1
  4. data/app/models/order_txn.rb +6 -3
  5. data/config/routes.rb +0 -10
  6. data/db/migrate/20131005232344_update_order_line_pty_role_indexes.erp_orders.rb +19 -0
  7. data/db/migrate/20131005232611_remove_order_line_specific_rtype.rb +32 -0
  8. data/db/migrate/20140129200040_add_uom_to_order_line_item.rb +13 -0
  9. data/db/migrate/20140930152140_add_custom_fields_to_order_txn.rb +12 -0
  10. data/lib/erp_orders/engine.rb +2 -1
  11. data/lib/erp_orders/extensions/active_record/acts_as_order_line_item.rb +71 -0
  12. data/lib/erp_orders/extensions/active_record/acts_as_order_txn.rb +62 -61
  13. data/lib/erp_orders/extensions.rb +2 -1
  14. data/lib/erp_orders/version.rb +7 -3
  15. metadata +33 -144
  16. data/app/assets/javascripts/erp_orders/application.js +0 -9
  17. data/app/assets/stylesheets/erp_orders/application.css +0 -7
  18. data/app/controllers/erp_orders/erp_app/desktop/order_manager/base_controller.rb +0 -147
  19. data/app/controllers/erp_orders/erp_app/organizer/order_management/base_controller.rb +0 -19
  20. data/app/helpers/erp_orders/application_helper.rb +0 -4
  21. data/app/models/line_item_role_type.rb +0 -6
  22. data/app/views/layouts/erp_orders/application.html.erb +0 -14
  23. data/db/data_migrations/20110728201731_create_desktop_app_order_manager.rb +0 -25
  24. data/db/data_migrations/20110728201732_create_organizer_app_order_management.rb +0 -14
  25. data/db/data_migrations/20120229174343_add_orders_widget.rb +0 -28
  26. data/public/javascripts/erp_app/desktop/applications/order_manager/line_items_grid_panel.js +0 -100
  27. data/public/javascripts/erp_app/desktop/applications/order_manager/module.js +0 -85
  28. data/public/javascripts/erp_app/desktop/applications/order_manager/orders_grid_panel.js +0 -162
  29. data/public/javascripts/erp_app/desktop/applications/order_manager/payments_grid_panel.js +0 -109
  30. data/public/javascripts/erp_app/organizer/applications/order_management/base.js +0 -124
  31. data/public/javascripts/erp_app/organizer/applications/order_management/extensions.js +0 -113
  32. data/public/javascripts/erp_app/organizer/applications/order_management/line_items_grid_panel.js +0 -99
  33. data/public/javascripts/erp_app/organizer/applications/order_management/orders_grid_panel.1.js +0 -209
  34. data/public/javascripts/erp_app/organizer/applications/order_management/payments_grid_panel.js +0 -93
  35. data/spec/dummy/db/data_migrations/20101011152441_payment_gateway_actions.erp_commerce.rb +0 -28
  36. data/spec/dummy/db/data_migrations/20101014142230_financial_txn_types.erp_txns_and_accts.rb +0 -16
  37. data/spec/dummy/db/data_migrations/20110109173616_create_capability_scope_types.erp_tech_svcs.rb +0 -15
  38. data/spec/dummy/db/data_migrations/20110324010232_product_role_types.erp_products.rb +0 -24
  39. data/spec/dummy/db/data_migrations/20110525001935_add_usd_currency.erp_base_erp_svcs.rb +0 -12
  40. data/spec/dummy/db/data_migrations/20110527160807_add_default_prod_avail_types.erp_products.rb +0 -27
  41. data/spec/dummy/db/data_migrations/20110605231556_create_order_party_roles.erp_orders.rb +0 -24
  42. data/spec/dummy/db/data_migrations/20110609150135_add_iso_codes.erp_base_erp_svcs.rb +0 -19
  43. data/spec/dummy/db/data_migrations/20110728201729_erp_app_setup.erp_app.rb +0 -252
  44. data/spec/dummy/db/data_migrations/20110728201730_create_desktop_app_product_manager.erp_products.rb +0 -26
  45. data/spec/dummy/db/data_migrations/20110728201731_create_desktop_app_order_manager.erp_orders.rb +0 -26
  46. data/spec/dummy/db/data_migrations/20110728201732_create_organizer_app_order_management.erp_orders.rb +0 -15
  47. data/spec/dummy/db/data_migrations/20110728201733_update_preferences.erp_app.rb +0 -53
  48. data/spec/dummy/db/data_migrations/20110802200222_schedule_delete_expired_sessions_job.erp_tech_svcs.rb +0 -16
  49. data/spec/dummy/db/data_migrations/20110816161238_create_desktop_app_audit_log_viewer.erp_app.rb +0 -21
  50. data/spec/dummy/db/data_migrations/20110817160743_add_file_manager_application.erp_app.rb +0 -32
  51. data/spec/dummy/db/data_migrations/20110913145838_setup_compass_ae_instance.erp_base_erp_svcs.rb +0 -12
  52. data/spec/dummy/db/data_migrations/20111108183739_add_default_capabilities.erp_app.rb +0 -23
  53. data/spec/dummy/db/data_migrations/20111108183740_add_new_contact_widgets.erp_app.rb +0 -42
  54. data/spec/dummy/db/data_migrations/20111111144706_setup_audit_log_types.erp_tech_svcs.rb +0 -22
  55. data/spec/dummy/db/data_migrations/20120229160222_add_userinfo_widget.erp_app.rb +0 -29
  56. data/spec/dummy/db/data_migrations/20120229174343_add_orders_widget.erp_orders.rb +0 -29
  57. data/spec/dummy/db/data_migrations/20120405193721_create_party_and_role_type_for_communication_events.erp_app.rb +0 -11
  58. data/spec/dummy/db/data_migrations/20120411180756_create_user_management_mobile_application.erp_app.rb +0 -19
  59. data/spec/dummy/db/data_migrations/20120418164215_create_configuration_management_desktop_application.erp_app.rb +0 -23
  60. data/spec/dummy/db/data_migrations/20121116155018_create_group_relationship_and_role_types.erp_tech_svcs.rb +0 -20
  61. data/spec/dummy/db/data_migrations/20121130201859_upgrade_remove_system_mgmt_app.erp_app.rb +0 -16
  62. data/spec/dummy/db/data_migrations/20121130212146_note_capabilities.erp_tech_svcs.rb +0 -24
  63. data/spec/dummy/db/data_migrations/20121218175028_create_security_management_desktop_application.erp_app.rb +0 -23
  64. data/spec/dummy/db/migrate/20130107205931_base_erp_services.erp_base_erp_svcs.rb +0 -461
  65. data/spec/dummy/db/migrate/20130107205932_base_orders.erp_orders.rb +0 -178
  66. data/spec/dummy/db/migrate/20130107205933_base_tech_services.erp_tech_svcs.rb +0 -271
  67. data/spec/dummy/db/migrate/20130107205934_create_has_attribute_tables.erp_tech_svcs.rb +0 -39
  68. data/spec/dummy/db/migrate/20130107205935_create_groups.erp_tech_svcs.rb +0 -19
  69. data/spec/dummy/db/migrate/20130107205936_upgrade_security.erp_tech_svcs.rb +0 -54
  70. data/spec/dummy/db/migrate/20130107205937_upgrade_security2.erp_tech_svcs.rb +0 -270
  71. data/spec/dummy/db/migrate/20130107205938_base_products.erp_products.rb +0 -234
  72. data/spec/dummy/db/migrate/20130107205939_base_products_indexes.erp_products.rb +0 -59
  73. data/spec/dummy/db/migrate/20130107205940_base_txns_and_accts.erp_txns_and_accts.rb +0 -364
  74. data/spec/dummy/db/migrate/20130107205941_agreements_services.erp_agreements.rb +0 -160
  75. data/spec/dummy/db/migrate/20130107205942_agreements_services_indexes.erp_agreements.rb +0 -52
  76. data/spec/dummy/db/migrate/20130107205943_base_app_framework.erp_app.rb +0 -276
  77. data/spec/dummy/db/migrate/20130107205944_erp_commerce_base.erp_commerce.rb +0 -442
  78. data/spec/dummy/db/schema.rb +0 -1821
  79. data/spec/dummy/db/spec.sqlite3 +0 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1e462b6d0534235ea385e6837474e1305e8be2f5
4
+ data.tar.gz: 1d7127f89c3657cb616464755fc125924572908c
5
+ SHA512:
6
+ metadata.gz: 97c4b54627004f27ff46faa7f4cc49472d28426c63e3191cc76872e87b97f0deb27cf6d848d092ee41d16a01fb983dcf41d1692a6565dcd1abd83dccbfc26358
7
+ data.tar.gz: d7db617036bd2dac557a01ad6ed246608d466fc1ae7ef9fddc8e4be88cf4cc7131a1e1e3e3e5168d0483f15c856bde9b5045c7149aab561e6634b7987cd31a6d
@@ -9,6 +9,12 @@ class OrderLineItem < ActiveRecord::Base
9
9
  belongs_to :product_instance
10
10
  belongs_to :product_type
11
11
 
12
+ has_many :order_line_item_pty_roles, :dependent => :destroy
13
+ has_many :role_types, :through => :order_line_item_pty_roles
14
+
15
+ ## Allow for polymorphic subtypes of this class
16
+ belongs_to :order_line_record, :polymorphic => true
17
+
12
18
  def get_total_charges
13
19
  # get all of the charge lines associated with the order_line
14
20
  total_hash = Hash.new
@@ -8,7 +8,7 @@ class OrderLineItemPtyRole < ActiveRecord::Base
8
8
 
9
9
  belongs_to :order_line_item
10
10
  belongs_to :party
11
- belongs_to :line_item_role_type
11
+ belongs_to :role_type
12
12
 
13
13
  #***************************************************************************
14
14
  # The association of a transaction to an account happens in the context of
@@ -1,14 +1,17 @@
1
1
  class OrderTxn < ActiveRecord::Base
2
2
  attr_protected :created_at, :updated_at
3
3
 
4
+ # serialize custom attributes
5
+ is_json :custom_fields
6
+
4
7
  acts_as_biz_txn_event
5
8
 
6
- belongs_to :order_txn_record, :polymorphic => true
9
+ belongs_to :order_txn_record, :polymorphic => true
7
10
  has_many :order_line_items, :dependent => :destroy
8
11
  has_many :charge_lines, :as => :charged_item
9
12
 
10
- alias :line_items :order_line_items
11
-
13
+ alias :line_items :order_line_items
14
+
12
15
  # validation
13
16
  validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :on => :update, :allow_nil => true
14
17
 
data/config/routes.rb CHANGED
@@ -1,14 +1,4 @@
1
1
  ErpOrders::Engine.routes.draw do
2
- #Desktop Applications
3
- #
4
- #order_manager
5
- match '/erp_app/desktop/order_manager(/:action(/:id))' => 'erp_app/desktop/order_manager/base'
6
-
7
-
8
- #Organizer Applications
9
- #
10
- #order_management
11
- match '/erp_app/organizer/order_management(/:action(/:id))' => 'erp_app/organizer/order_management/base'
12
2
  end
13
3
 
14
4
 
@@ -0,0 +1,19 @@
1
+ # This migration comes from erp_orders (originally 20131005232344)
2
+ class UpdateOrderLinePtyRoleIndexes < ActiveRecord::Migration
3
+ def change
4
+
5
+ execute 'DROP INDEX index_order_line_item_pty_roles_on_biz_txn_acct_root_id;'
6
+ execute 'DROP INDEX index_order_line_item_pty_roles_on_order_line_item_id;'
7
+ execute 'DROP INDEX index_order_line_item_pty_roles_on_line_item_role_type_id;'
8
+
9
+ remove_column :order_line_item_pty_roles, :line_item_role_type_id
10
+
11
+ add_column :order_line_item_pty_roles, :role_type_id, :integer
12
+ add_index :order_line_item_pty_roles, :role_type_id, :name => 'order_line_item_pty_role_role_type_idx'
13
+
14
+ add_index :order_line_item_pty_roles, :biz_txn_acct_root_id, :name => 'order_line_item_pty_role_biz_txn_acct_root_idx'
15
+ add_index :order_line_item_pty_roles, :order_line_item_id, :name => 'order_line_item_pty_role_order_line_item_idx'
16
+
17
+ end
18
+
19
+ end
@@ -0,0 +1,32 @@
1
+ class RemoveOrderLineSpecificRtype < ActiveRecord::Migration
2
+ def up
3
+
4
+ #this is being replaced with the standard role types
5
+ if table_exists?(:line_item_role_types)
6
+ drop_table :line_item_role_types
7
+ end
8
+ end
9
+
10
+ def down
11
+
12
+ #Put the old table back on the 'down' migration
13
+
14
+ unless table_exists?(:line_item_role_types)
15
+ create_table :line_item_role_types do |t|
16
+ t.column :parent_id, :integer
17
+ t.column :lft, :integer
18
+ t.column :rgt, :integer
19
+ #custom columns go here
20
+ t.column :description, :string
21
+ t.column :comments, :string
22
+ t.column :internal_identifier, :string
23
+ t.column :external_identifier, :string
24
+ t.column :external_id_source, :string
25
+ t.timestamps
26
+ end
27
+
28
+ add_index :line_item_role_types, :parent_id
29
+ end
30
+
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ class AddUomToOrderLineItem < ActiveRecord::Migration
2
+ def up
3
+ unless columns(:order_line_items).collect {|c| c.name}.include?('unit_of_measurement_id')
4
+ add_column :order_line_items, :unit_of_measurement_id, :integer
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ if columns(:order_line_items).collect {|c| c.name}.include?('unit_of_measurement_id')
10
+ remove_column :order_line_items, :unit_of_measurement_id
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ class AddCustomFieldsToOrderTxn < ActiveRecord::Migration
2
+ def change
3
+ if ::ActiveRecord::Base.connection.instance_values["config"][:adapter] == 'postgresql'
4
+ execute('CREATE EXTENSION IF NOT EXISTS hstore;')
5
+
6
+ add_column :order_txns, :custom_fields, :hstore
7
+ add_hstore_index :order_txns, :custom_fields
8
+ else
9
+ add_column :order_txns, :custom_fields, :text
10
+ end
11
+ end
12
+ end
@@ -3,11 +3,12 @@ module ErpOrders
3
3
  isolate_namespace ErpOrders
4
4
 
5
5
  initializer "erp_orders_assets.merge_public" do |app|
6
- app.middleware.insert_before Rack::Lock, ::ActionDispatch::Static, "#{root}/public"
6
+ app.middleware.insert_before Rack::Runtime, ::ActionDispatch::Static, "#{root}/public"
7
7
  end
8
8
 
9
9
  ActiveSupport.on_load(:active_record) do
10
10
  include ErpOrders::Extensions::ActiveRecord::ActsAsOrderTxn
11
+ include ErpOrders::Extensions::ActiveRecord::ActsAsOrderLineItem
11
12
  end
12
13
 
13
14
  ErpBaseErpSvcs.register_as_compass_ae_engine(config, self)
@@ -0,0 +1,71 @@
1
+ module ErpOrders
2
+ module Extensions
3
+ module ActiveRecord
4
+ module ActsAsOrderLineItem
5
+
6
+ def self.included(base)
7
+ base.extend(ClassMethods)
8
+ end
9
+
10
+ module ClassMethods
11
+ def acts_as_order_line_item
12
+ extend ActsAsOrderLineItem::SingletonMethods
13
+ include ActsAsOrderLineItem::InstanceMethods
14
+
15
+ after_initialize :new_order_line_item
16
+ after_update :save_order_line_item
17
+ after_save :save_order_line_item
18
+ after_destroy :destroy_order_line_item
19
+
20
+ has_one :order_line_item, :as => :order_line_record
21
+
22
+ [ :product_description,
23
+ :product_description=,
24
+ :product_instance,
25
+ :product_instance=,
26
+ :product_instance_description,
27
+ :product_instance_description=,
28
+ :product_type,
29
+ :product_type=,
30
+ :product_type_description,
31
+ :product_type_description=,
32
+ :sold_price,
33
+ :sold_price=,
34
+ :sold_amount,
35
+ :sold_amount=,
36
+ :product_offer,
37
+ :product_offer=,
38
+ :quantity,
39
+ :quantity=,
40
+ :unit_of_measurement,
41
+ :unit_of_measurement=
42
+ ].each do |m|
43
+ delegate m, :to => :order_line_item
44
+ end
45
+ end
46
+ end
47
+
48
+ module SingletonMethods
49
+ end
50
+
51
+ module InstanceMethods
52
+ def save_order_line_item
53
+ self.order_line_item.save
54
+ end
55
+
56
+ def destroy_order_line_item
57
+ self.order_line_item.destroy
58
+ end
59
+
60
+ def new_order_line_item
61
+ if self.new_record? and self.order_line_item.nil?
62
+ order_line_item = OrderLineItem.new
63
+ self.order_line_item = order_line_item
64
+ order_line_item.order_line_record = self
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -2,8 +2,9 @@ module ErpOrders
2
2
  module Extensions
3
3
  module ActiveRecord
4
4
  module ActsAsOrderTxn
5
+
5
6
  def self.included(base)
6
- base.extend(ClassMethods)
7
+ base.extend(ClassMethods)
7
8
  end
8
9
 
9
10
  module ClassMethods
@@ -11,75 +12,75 @@ module ErpOrders
11
12
  def acts_as_order_txn
12
13
  extend ActsAsOrderTxn::SingletonMethods
13
14
  include ActsAsOrderTxn::InstanceMethods
14
-
15
+
15
16
  after_initialize :initialize_order_txn
16
17
  after_create :save_order_txn
17
18
  after_update :save_order_txn
18
19
  after_destroy :destroy_order_txn
19
-
20
+
20
21
  has_one :order_txn, :as => :order_txn_record
21
22
 
22
23
  #from OrderTxn
23
- [ :bill_to_address_line_1,:bill_to_address_line_1=,
24
- :bill_to_city,:bill_to_city=,
25
- :bill_to_country,:bill_to_country=,
26
- :bill_to_country_name,:bill_to_country_name=,
27
- :bill_to_first_name,:bill_to_first_name=,
28
- :bill_to_last_name,:bill_to_last_name=,
29
- :bill_to_postal_code,:bill_to_postal_code=,
30
- :bill_to_state,:bill_to_state=,
31
- :Company,:Company=,
32
- :credit_card_id,:credit_card_id=,
33
- :customer_ip,:customer_ip=,
34
- :email,:email=,
35
- :error_message,:error_message=,
36
- :Fax,:Fax=,
37
- :description,:description=,
38
- :order_number,:order_number=,
39
- :order_txn_type_id,:order_txn_type_id=,
40
- :payment_gateway_txn_id,:payment_gateway_txn_id=,
41
- :Phone2,:Phone2=,
42
- :phone_number,:phone_number=,
43
- :ship_to_phone2, :ship_to_phone2=,
44
- :Salutation,:Salutation=,
45
- :ship_to_company,:ship_to_company=,
46
- :ship_to_address_line_1,:ship_to_address_line_1=,
47
- :ship_to_city,:ship_to_city=,
48
- :ship_to_country,:ship_to_country=,
49
- :ship_to_country_name,:ship_to_country_name=,
50
- :ship_to_salutation,:ship_to_salutation=,
51
- :ship_to_first_name,:ship_to_first_name=,
52
- :ship_to_last_name,:ship_to_last_name=,
53
- :ship_to_postal_code,:ship_to_postal_code=,
54
- :ship_to_state,:ship_to_state=,
55
- :ship_to_fax,:ship_to_fax=,
56
- :state_machine,:state_machine=,
57
- :status,:status=,
58
- :add_line_item,
59
- :line_items,
60
- :order_line_items,
61
- :determine_txn_party_roles,
62
- :determine_charge_elements,
63
- :determine_charge_accounts,
64
- :process,
65
- :set_shipping_info,
66
- :set_billing_info,
67
- :authorize_payments,
68
- :capture_payments,
69
- :rollback_authorizations,
70
- :submit,:get_total_charges
24
+ [:bill_to_address_line_1, :bill_to_address_line_1=,
25
+ :bill_to_city, :bill_to_city=,
26
+ :bill_to_country, :bill_to_country=,
27
+ :bill_to_country_name, :bill_to_country_name=,
28
+ :bill_to_first_name, :bill_to_first_name=,
29
+ :bill_to_last_name, :bill_to_last_name=,
30
+ :bill_to_postal_code, :bill_to_postal_code=,
31
+ :bill_to_state, :bill_to_state=,
32
+ :Company, :Company=,
33
+ :credit_card_id, :credit_card_id=,
34
+ :customer_ip, :customer_ip=,
35
+ :email, :email=,
36
+ :error_message, :error_message=,
37
+ :Fax, :Fax=,
38
+ :description, :description=,
39
+ :order_number, :order_number=,
40
+ :order_txn_type_id, :order_txn_type_id=,
41
+ :payment_gateway_txn_id, :payment_gateway_txn_id=,
42
+ :Phone2, :Phone2=,
43
+ :phone_number, :phone_number=,
44
+ :ship_to_phone2, :ship_to_phone2=,
45
+ :Salutation, :Salutation=,
46
+ :ship_to_company, :ship_to_company=,
47
+ :ship_to_address_line_1, :ship_to_address_line_1=,
48
+ :ship_to_city, :ship_to_city=,
49
+ :ship_to_country, :ship_to_country=,
50
+ :ship_to_country_name, :ship_to_country_name=,
51
+ :ship_to_salutation, :ship_to_salutation=,
52
+ :ship_to_first_name, :ship_to_first_name=,
53
+ :ship_to_last_name, :ship_to_last_name=,
54
+ :ship_to_postal_code, :ship_to_postal_code=,
55
+ :ship_to_state, :ship_to_state=,
56
+ :ship_to_fax, :ship_to_fax=,
57
+ :state_machine, :state_machine=,
58
+ :status, :status=,
59
+ :add_line_item,
60
+ :line_items,
61
+ :order_line_items,
62
+ :determine_txn_party_roles,
63
+ :determine_charge_elements,
64
+ :determine_charge_accounts,
65
+ :process,
66
+ :set_shipping_info,
67
+ :set_billing_info,
68
+ :authorize_payments,
69
+ :capture_payments,
70
+ :rollback_authorizations,
71
+ :submit, :get_total_charges
71
72
  ].each { |m| delegate m, :to => :order_txn }
72
73
 
73
- #from OrderTxn And BizTxnEvent
74
- [:biz_txn,
75
- :biz_txn_event,
76
- :root_txn,
77
- :find_party_by_role,
78
- :txn_type,:txn_type=,
79
- :txn_type_iid,:txn_type_iid=,:create_dependent_txns,
80
- :biz_txn_type_id,:biz_txn_type_id=,
81
- :external_id_source,:external_id_source=,
82
- :account,:account=].each { |m| delegate m, :to => :order_txn }
74
+ #from OrderTxn And BizTxnEvent
75
+ [:biz_txn,
76
+ :biz_txn_event,
77
+ :root_txn,
78
+ :find_party_by_role,
79
+ :txn_type, :txn_type=,
80
+ :txn_type_iid, :txn_type_iid=, :create_dependent_txns,
81
+ :biz_txn_type_id, :biz_txn_type_id=,
82
+ :external_id_source, :external_id_source=,
83
+ :account, :account=].each { |m| delegate m, :to => :order_txn }
83
84
  end
84
85
  end
85
86
 
@@ -1 +1,2 @@
1
- require 'erp_orders/extensions/active_record/acts_as_order_txn'
1
+ require 'erp_orders/extensions/active_record/acts_as_order_txn'
2
+ require 'erp_orders/extensions/active_record/acts_as_order_line_item'
@@ -1,9 +1,13 @@
1
1
  module ErpOrders
2
2
  module VERSION #:nodoc:
3
- MAJOR = 3
4
- MINOR = 1
5
- TINY = 1
3
+ MAJOR = 4
4
+ MINOR = 0
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].compact.join('.')
8
8
  end
9
+
10
+ def self.version
11
+ ErpOrders::VERSION::STRING
12
+ end
9
13
  end