stockor-core 0.2

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 (221) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/Gemfile +6 -0
  4. data/Guardfile +13 -0
  5. data/LICENSE.txt +674 -0
  6. data/README.md +88 -0
  7. data/Rakefile +58 -0
  8. data/config/database.yml +9 -0
  9. data/db/migrate/20120110142845_create_skr_sequential_ids.rb +35 -0
  10. data/db/migrate/20140202185309_create_skr_gl_accounts.rb +15 -0
  11. data/db/migrate/20140202193316_create_skr_gl_periods.rb +16 -0
  12. data/db/migrate/20140202193318_create_skr_gl_transactions.rb +14 -0
  13. data/db/migrate/20140202193319_create_skr_gl_postings.rb +16 -0
  14. data/db/migrate/20140202193700_create_skr_gl_manual_entries.rb +13 -0
  15. data/db/migrate/20140213040608_create_skr_payment_terms.rb +16 -0
  16. data/db/migrate/20140220031700_create_skr_addresses.rb +19 -0
  17. data/db/migrate/20140220031800_create_skr_locations.rb +19 -0
  18. data/db/migrate/20140220190836_create_skr_vendors.rb +22 -0
  19. data/db/migrate/20140220203029_create_skr_customers.rb +22 -0
  20. data/db/migrate/20140224034759_create_skr_skus.rb +22 -0
  21. data/db/migrate/20140225032853_create_skr_sku_locs.rb +21 -0
  22. data/db/migrate/20140320030501_create_skr_uoms.rb +19 -0
  23. data/db/migrate/20140321031604_create_skr_sku_vendors.rb +18 -0
  24. data/db/migrate/20140322012143_create_skr_ia_reasons.rb +14 -0
  25. data/db/migrate/20140322014401_create_skr_inventory_adjustments.rb +16 -0
  26. data/db/migrate/20140322023453_create_skr_ia_lines.rb +18 -0
  27. data/db/migrate/20140322035024_create_skr_sku_trans.rb +21 -0
  28. data/db/migrate/20140322223912_create_skr_sales_orders.rb +27 -0
  29. data/db/migrate/20140322223920_create_skr_so_lines.rb +25 -0
  30. data/db/migrate/20140323001446_create_so_details_view.rb +81 -0
  31. data/db/migrate/20140327202102_create_skr_purchase_orders.rb +20 -0
  32. data/db/migrate/20140327202107_create_skr_po_lines.rb +25 -0
  33. data/db/migrate/20140327202207_create_skr_pick_tickets.rb +16 -0
  34. data/db/migrate/20140327202209_create_skr_pt_lines.rb +23 -0
  35. data/db/migrate/20140327224000_create_skr_invoices.rb +25 -0
  36. data/db/migrate/20140327224002_create_skr_inv_lines.rb +23 -0
  37. data/db/migrate/20140330232808_create_skr_sku_loc_details_view.rb +31 -0
  38. data/db/migrate/20140330232810_create_skr_sku_qty_details_view.rb +48 -0
  39. data/db/migrate/20140400164729_create_skr_vouchers.rb +22 -0
  40. data/db/migrate/20140400164733_create_skr_vo_lines.rb +21 -0
  41. data/db/migrate/20140401164729_create_skr_po_receipt.rb +16 -0
  42. data/db/migrate/20140401164740_create_skr_por_line.rb +21 -0
  43. data/db/migrate/20140422024010_create_skr_inv_details_view.rb +42 -0
  44. data/lib/generators/stockor/migrations/install_generator.rb +42 -0
  45. data/lib/skr/address.rb +97 -0
  46. data/lib/skr/business_entity.rb +25 -0
  47. data/lib/skr/concerns/acts_as_uom.rb +47 -0
  48. data/lib/skr/concerns/all.rb +30 -0
  49. data/lib/skr/concerns/association_extensions.rb +85 -0
  50. data/lib/skr/concerns/attr_accessor_with_default.rb +54 -0
  51. data/lib/skr/concerns/code_identifier.rb +43 -0
  52. data/lib/skr/concerns/export_associations.rb +52 -0
  53. data/lib/skr/concerns/export_join_tables.rb +39 -0
  54. data/lib/skr/concerns/export_methods.rb +104 -0
  55. data/lib/skr/concerns/export_scope.rb +66 -0
  56. data/lib/skr/concerns/exported_limit_evaluator.rb +17 -0
  57. data/lib/skr/concerns/gl_tran_extensions.rb +18 -0
  58. data/lib/skr/concerns/has_gl_transaction.rb +67 -0
  59. data/lib/skr/concerns/has_sku_loc_lines.rb +47 -0
  60. data/lib/skr/concerns/immutable_model.rb +32 -0
  61. data/lib/skr/concerns/inv_extensions.rb +24 -0
  62. data/lib/skr/concerns/is_order_like.rb +47 -0
  63. data/lib/skr/concerns/is_sku_loc_line.rb +65 -0
  64. data/lib/skr/concerns/json_attribute_access.rb +55 -0
  65. data/lib/skr/concerns/locked_fields.rb +84 -0
  66. data/lib/skr/concerns/pt_extensions.rb +22 -0
  67. data/lib/skr/concerns/pub_sub.rb +105 -0
  68. data/lib/skr/concerns/queries.rb +20 -0
  69. data/lib/skr/concerns/random_hash_code.rb +40 -0
  70. data/lib/skr/concerns/sanitize_json.rb +49 -0
  71. data/lib/skr/concerns/sku_extensions.rb +52 -0
  72. data/lib/skr/concerns/so_extensions.rb +30 -0
  73. data/lib/skr/concerns/state_machine.rb +62 -0
  74. data/lib/skr/concerns/track_modifications.rb +48 -0
  75. data/lib/skr/concerns/visible_id_identifier.rb +53 -0
  76. data/lib/skr/core.rb +30 -0
  77. data/lib/skr/core/configuration.rb +87 -0
  78. data/lib/skr/core/db.rb +82 -0
  79. data/lib/skr/core/db/migration_helpers.rb +178 -0
  80. data/lib/skr/core/db/migrations.rb +15 -0
  81. data/lib/skr/core/db/seed.rb +46 -0
  82. data/lib/skr/core/db/seed/chart_of_accounts.yml +168 -0
  83. data/lib/skr/core/db/seed/payment_terms.yml +60 -0
  84. data/lib/skr/core/logger.rb +36 -0
  85. data/lib/skr/core/numbers.rb +71 -0
  86. data/lib/skr/core/rails_engine.rb +5 -0
  87. data/lib/skr/core/standard_pricing_provider.rb +15 -0
  88. data/lib/skr/core/strings.rb +57 -0
  89. data/lib/skr/core/testing.rb +11 -0
  90. data/lib/skr/core/testing/assertions.rb +44 -0
  91. data/lib/skr/core/testing/fixtures.rb +25 -0
  92. data/lib/skr/core/testing/fixtures/skr/addresses.yml +53 -0
  93. data/lib/skr/core/testing/fixtures/skr/customers.yml +43 -0
  94. data/lib/skr/core/testing/fixtures/skr/gl_accounts.yml +86 -0
  95. data/lib/skr/core/testing/fixtures/skr/gl_manual_entries.yml +4 -0
  96. data/lib/skr/core/testing/fixtures/skr/gl_periods.yml +26 -0
  97. data/lib/skr/core/testing/fixtures/skr/gl_postings.yml +88 -0
  98. data/lib/skr/core/testing/fixtures/skr/gl_transactions.yml +35 -0
  99. data/lib/skr/core/testing/fixtures/skr/ia_lines.yml +7 -0
  100. data/lib/skr/core/testing/fixtures/skr/ia_reasons.yml +15 -0
  101. data/lib/skr/core/testing/fixtures/skr/inv_lines.yml +22 -0
  102. data/lib/skr/core/testing/fixtures/skr/inventory_adjustments.yml +6 -0
  103. data/lib/skr/core/testing/fixtures/skr/invoices.yml +10 -0
  104. data/lib/skr/core/testing/fixtures/skr/locations.yml +24 -0
  105. data/lib/skr/core/testing/fixtures/skr/payment_terms.yml +42 -0
  106. data/lib/skr/core/testing/fixtures/skr/pick_tickets.yml +4 -0
  107. data/lib/skr/core/testing/fixtures/skr/po_lines.yml +44 -0
  108. data/lib/skr/core/testing/fixtures/skr/po_receipts.yml +5 -0
  109. data/lib/skr/core/testing/fixtures/skr/por_lines.yml +13 -0
  110. data/lib/skr/core/testing/fixtures/skr/pt_lines.yml +12 -0
  111. data/lib/skr/core/testing/fixtures/skr/purchase_orders.yml +16 -0
  112. data/lib/skr/core/testing/fixtures/skr/sales_orders.yml +32 -0
  113. data/lib/skr/core/testing/fixtures/skr/sku_locs.yml +78 -0
  114. data/lib/skr/core/testing/fixtures/skr/sku_trans.yml +9 -0
  115. data/lib/skr/core/testing/fixtures/skr/sku_vendors.yml +35 -0
  116. data/lib/skr/core/testing/fixtures/skr/skus.yml +50 -0
  117. data/lib/skr/core/testing/fixtures/skr/so_lines.yml +71 -0
  118. data/lib/skr/core/testing/fixtures/skr/uoms.yml +61 -0
  119. data/lib/skr/core/testing/fixtures/skr/vendors.yml +48 -0
  120. data/lib/skr/core/testing/fixtures/skr/vo_lines.yml +12 -0
  121. data/lib/skr/core/testing/fixtures/skr/vouchers.yml +8 -0
  122. data/lib/skr/core/testing/helper.rb +18 -0
  123. data/lib/skr/core/testing/test_case.rb +17 -0
  124. data/lib/skr/core/version.rb +5 -0
  125. data/lib/skr/customer.rb +34 -0
  126. data/lib/skr/gl_account.rb +56 -0
  127. data/lib/skr/gl_manual_entry.rb +31 -0
  128. data/lib/skr/gl_period.rb +13 -0
  129. data/lib/skr/gl_posting.rb +54 -0
  130. data/lib/skr/gl_transaction.rb +174 -0
  131. data/lib/skr/ia_line.rb +129 -0
  132. data/lib/skr/ia_reason.rb +16 -0
  133. data/lib/skr/inv_line.rb +90 -0
  134. data/lib/skr/inventory_adjustment.rb +60 -0
  135. data/lib/skr/invoice.rb +159 -0
  136. data/lib/skr/location.rb +31 -0
  137. data/lib/skr/model.rb +37 -0
  138. data/lib/skr/null_user.rb +30 -0
  139. data/lib/skr/payment_term.rb +30 -0
  140. data/lib/skr/pick_ticket.rb +71 -0
  141. data/lib/skr/po_line.rb +69 -0
  142. data/lib/skr/po_receipt.rb +51 -0
  143. data/lib/skr/por_line.rb +80 -0
  144. data/lib/skr/pt_line.rb +74 -0
  145. data/lib/skr/purchase_order.rb +112 -0
  146. data/lib/skr/sales_order.rb +159 -0
  147. data/lib/skr/sequential_id.rb +23 -0
  148. data/lib/skr/sku.rb +99 -0
  149. data/lib/skr/sku_loc.rb +94 -0
  150. data/lib/skr/sku_tran.rb +111 -0
  151. data/lib/skr/sku_vendor.rb +26 -0
  152. data/lib/skr/so_line.rb +159 -0
  153. data/lib/skr/uom.rb +63 -0
  154. data/lib/skr/user_proxy.rb +60 -0
  155. data/lib/skr/validators/all.rb +2 -0
  156. data/lib/skr/validators/email.rb +17 -0
  157. data/lib/skr/validators/set.rb +18 -0
  158. data/lib/skr/vendor.rb +33 -0
  159. data/lib/skr/vo_line.rb +35 -0
  160. data/lib/skr/voucher.rb +119 -0
  161. data/lib/stockor/core.rb +9 -0
  162. data/stockor-core.gemspec +37 -0
  163. data/tasks/migrations.rake +23 -0
  164. data/tasks/publish.rake +8 -0
  165. data/test/address_test.rb +57 -0
  166. data/test/concerns/attr_with_default_test.rb +45 -0
  167. data/test/concerns/code_identifier_test.rb +46 -0
  168. data/test/concerns/export_associations_test.rb +7 -0
  169. data/test/concerns/export_methods_test.rb +31 -0
  170. data/test/concerns/export_scope_test.rb +16 -0
  171. data/test/concerns/exported_limits_test.rb +47 -0
  172. data/test/concerns/json_attribute_access_test.rb +27 -0
  173. data/test/concerns/pub_sub_test.rb +83 -0
  174. data/test/concerns/sanitize_json_test.rb +47 -0
  175. data/test/core/configuration_test.rb +24 -0
  176. data/test/core/numbers_test.rb +26 -0
  177. data/test/core/strings_test.rb +41 -0
  178. data/test/customer_test.rb +34 -0
  179. data/test/gl_account_test.rb +23 -0
  180. data/test/gl_manual_entry_test.rb +17 -0
  181. data/test/gl_period_test.rb +12 -0
  182. data/test/gl_posting_test.rb +39 -0
  183. data/test/gl_transaction_test.rb +58 -0
  184. data/test/ia_line_test.rb +68 -0
  185. data/test/ia_reason_test.rb +11 -0
  186. data/test/inv_line_test.rb +58 -0
  187. data/test/inventory_adjustment_test.rb +72 -0
  188. data/test/invoice_test.rb +63 -0
  189. data/test/location_test.rb +10 -0
  190. data/test/payment_term_test.rb +25 -0
  191. data/test/pick_ticket_test.rb +27 -0
  192. data/test/po_line_test.rb +36 -0
  193. data/test/po_receipt_test.rb +93 -0
  194. data/test/por_line_test.rb +79 -0
  195. data/test/pt_line_test.rb +29 -0
  196. data/test/purchase_order_test.rb +44 -0
  197. data/test/sales_order_test.rb +74 -0
  198. data/test/sku_loc_test.rb +50 -0
  199. data/test/sku_test.rb +45 -0
  200. data/test/sku_tran_test.rb +21 -0
  201. data/test/sku_vendor_test.rb +13 -0
  202. data/test/so_line_test.rb +89 -0
  203. data/test/test_helper.rb +1 -0
  204. data/test/uom_test.rb +14 -0
  205. data/test/vendor_test.rb +35 -0
  206. data/test/vo_line_test.rb +20 -0
  207. data/test/voucher_test.rb +35 -0
  208. data/yard_ext/all.rb +9 -0
  209. data/yard_ext/code_identifier_handler.rb +33 -0
  210. data/yard_ext/concern_meta_methods.rb +60 -0
  211. data/yard_ext/config_options.rb +27 -0
  212. data/yard_ext/exported_scope.rb +4 -0
  213. data/yard_ext/immutable_handler.rb +17 -0
  214. data/yard_ext/json_attr_accessor.rb +22 -0
  215. data/yard_ext/locked_fields_handler.rb +21 -0
  216. data/yard_ext/templates/default/layout/html/layout.erb +20 -0
  217. data/yard_ext/templates/default/method_details/html/github_link.erb +1 -0
  218. data/yard_ext/templates/default/method_details/setup.rb +3 -0
  219. data/yard_ext/validators.rb +1 -0
  220. data/yard_ext/visible_id_handler.rb +38 -0
  221. metadata +448 -0
data/README.md ADDED
@@ -0,0 +1,88 @@
1
+ # Stockor Core
2
+
3
+ Stockor is a ERP system that contains all the tools you'll need to run a small to medium sized business on the internet.
4
+
5
+ The core gem records business activity for a company to include:
6
+
7
+ * Invoicing
8
+ * Sales Orders
9
+ * Purchase Orders
10
+ * SKUs
11
+ * Multi-Location Inventory management
12
+ * Customers
13
+ * Vendors
14
+ * General Ledger chart of accounts
15
+
16
+ ## Read more at [stockor.org](http://stockor.org/)
17
+
18
+ ## Installation
19
+
20
+ Add this line to your application's Gemfile:
21
+
22
+ gem 'stockor-core'
23
+
24
+ And then execute:
25
+
26
+ $ bundle
27
+
28
+ Or install it yourself as:
29
+
30
+ $ gem install stockor-core
31
+
32
+ Usage
33
+ ------------------------------
34
+
35
+ ##### Creating a GL posting
36
+
37
+ require 'skr/core'
38
+ customer = Customer.find_by_code "MONEYBAGS"
39
+ GlTransaction.record( source: invoice, description: "Invoice Example" ) do | transaction |
40
+ transaction.location = Location.default # <- could also specify in record's options
41
+ Sku.where( code: ['HAT','STRING'] ).each do | sku |
42
+ transaction.add_posting( amount: sku.default_price,
43
+ debit: sku.gl_asset_account,
44
+ credit: customer.gl_receivables_account )
45
+ end
46
+ end
47
+
48
+ ##### Create a SalesOrder
49
+
50
+ customer = Customer.find_by_code "VIP1"
51
+ so = SalesOrder.new( customer: customer )
52
+ Sku.where( code: ['HAT','STRING'] ).each do | sku |
53
+ so.lines.build(
54
+ sku_loc: sku.sku_locs.default
55
+ )
56
+ end
57
+ so.save
58
+
59
+ ##### Create a PurchaseOrder
60
+
61
+ vendor = Vendor.find_by_code "BIGCO"
62
+ po = PurchaseOrder.new( vendor: vendor )
63
+ Sku.where( code: ['HAT','STRING'] ).each do | sku |
64
+ po.lines.build(
65
+ sku_vendor: sku.sku_vendors.for_vendor( vendor )
66
+ )
67
+ end
68
+ po.save
69
+
70
+ #### Create an Invoice
71
+
72
+ invoice = Invoice.new( customer: Customer.find_by_code("ACME")
73
+ invoice.lines.build({ sku: Sku.find_by_code('LABOR'), qty: 1, price: 8.27 })
74
+ invoice.save
75
+
76
+
77
+ ## Contributing
78
+
79
+ The standard instructions are always good:
80
+
81
+ 1. Fork it ( http://github.com/argosity/stockor-core/fork )
82
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
83
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
84
+ 4. Push to the branch (`git push origin my-new-feature`)
85
+ 5. Create new Pull Request
86
+
87
+
88
+ Really though, if you've got a feature you've added we're glad to work with you. Get us the code however you're able to and we can figure it out.
data/Rakefile ADDED
@@ -0,0 +1,58 @@
1
+ require 'bundler/setup'
2
+ require "bundler/gem_tasks"
3
+ require 'rake/testtask'
4
+ require 'yard'
5
+ require 'yard-activerecord'
6
+ require_relative 'yard_ext/all'
7
+ require 'guard'
8
+
9
+ Dir.glob('tasks/*.rake').each { |r| load r}
10
+
11
+
12
+ Rake::TestTask.new do |t|
13
+ t.libs << 'test'
14
+ t.pattern = "test/*_test.rb"
15
+ end
16
+
17
+
18
+ YARD::Rake::YardocTask.new do |t|
19
+ t.files = ['lib/skr/concerns/*.rb','lib/**/*.rb','db/schema.rb']
20
+ t.options = ["--title=Stockor Core Documentation",
21
+ "--markup=markdown",
22
+ "--template-path=yard_ext/templates",
23
+ "--readme=README.md"]
24
+ end
25
+
26
+
27
+ desc "Open an irb session preloaded with skr-core"
28
+ task :console do
29
+ require 'irb'
30
+ require 'irb/completion'
31
+ require 'pp'
32
+ require 'skr/core'
33
+ include Skr
34
+ Skr::Core::DB.establish_connection
35
+ ActiveRecord::Base.logger = Logger.new STDOUT
36
+ ARGV.clear
37
+ IRB.start
38
+ end
39
+
40
+
41
+ task :doc => 'db:environment' do
42
+ env = ENV['RAILS_ENV'] || 'development'
43
+ ENV['SCHEMA'] = 'db/schema.rb'
44
+ ENV['DB_STRUCTURE'] = 'db/schema.rb'
45
+ Rake::Task["db:schema:dump"].invoke
46
+ Rake::Task["yard"].invoke
47
+ end
48
+
49
+
50
+ task :guard => [ 'db:migrate', 'db:test:clone_structure' ] do
51
+ # NAS: I've never figured out how to run Guard from a rake task
52
+ # Guard.setup
53
+ # Guard.run_all
54
+ # ^ this will work but only runs the task once
55
+ # and doesn't listen for changes. Which kinda defeats the purpose
56
+ # For now just shell out until I can figure it out
57
+ sh "bundle exec guard"
58
+ end
@@ -0,0 +1,9 @@
1
+ development:
2
+ adapter: postgresql
3
+ database: skr_dev
4
+ host: /tmp
5
+
6
+ test:
7
+ adapter: postgresql
8
+ database: skr_test
9
+ host: /tmp
@@ -0,0 +1,35 @@
1
+ require 'skr/core/db/migration_helpers'
2
+
3
+ class CreateSkrSequentialIds < ActiveRecord::Migration
4
+ def up
5
+ # rails can suck it here, there's no reason to have a id(int)
6
+ create_skr_table :sequential_ids, :id=>false do |t|
7
+ t.string :name, :null=>false
8
+ t.integer :current_value, :null=>false, :default=>0
9
+ end
10
+
11
+ execute "alter table #{Skr::Core.config.table_prefix}sequential_ids add primary key (name)"
12
+ execute <<-EOS
13
+ create or replace function #{Skr::Core.config.table_prefix}next_sequential_id( varchar )
14
+ returns integer AS '
15
+ declare
16
+ next_id integer;
17
+ begin
18
+ select current_value into next_id from skr_sequential_ids where name = $1 for update;
19
+ if not found then
20
+ insert into skr_sequential_ids ( name, current_value ) values ( $1, 1 );
21
+ return 1;
22
+ else
23
+ update skr_sequential_ids set current_value = next_id+1 where name = $1;
24
+ return next_id+1;
25
+ end if;
26
+ end;
27
+ ' language plpgsql;
28
+ EOS
29
+ end
30
+
31
+ def down
32
+ drop_skr_table :sequential_ids
33
+ execute "drop function #{Skr::Core.config.table_prefix}next_sequential_id(varchar)"
34
+ end
35
+ end
@@ -0,0 +1,15 @@
1
+ require 'skr/core/db/migration_helpers'
2
+
3
+ class CreateSkrGlAccounts < ActiveRecord::Migration
4
+ def change
5
+
6
+ create_skr_table "gl_accounts" do |t|
7
+ t.string "number", null: false
8
+ t.string "name", null: false
9
+ t.text "description", null: false
10
+ t.boolean "is_active", default: true, null: false
11
+ t.skr_track_modifications
12
+ end
13
+
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ require 'skr/core/db/migration_helpers'
2
+
3
+ class CreateSkrGlPeriods < ActiveRecord::Migration
4
+
5
+ def change
6
+
7
+ create_skr_table "gl_periods" do |t|
8
+ t.integer "year", limit: 2, null: false
9
+ t.integer "period", limit: 2, null: false
10
+ t.boolean "is_locked", default: false, null: false
11
+ t.skr_track_modifications
12
+ end
13
+
14
+ end
15
+
16
+ end
@@ -0,0 +1,14 @@
1
+ require 'skr/core/db/migration_helpers'
2
+
3
+ class CreateSkrGlTransactions < ActiveRecord::Migration
4
+ def change
5
+
6
+ create_skr_table "gl_transactions" do |t|
7
+ t.skr_reference "period", to_table: 'gl_periods'
8
+ t.belongs_to "source", polymorphic: true
9
+ t.text "description", null: false
10
+ t.skr_track_modifications create_only: true # since it can't be updated
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ require 'skr/core/db/migration_helpers'
2
+
3
+ class CreateSkrGlPostings < ActiveRecord::Migration
4
+ def change
5
+ create_skr_table "gl_postings" do |t|
6
+ t.skr_reference :gl_transaction, single: true
7
+ t.string "account_number", null: false
8
+ t.skr_currency "amount", null: false
9
+ t.boolean "is_debit", null: false
10
+ t.integer "year", null: false, limit: 2
11
+ t.integer "period", null: false, limit: 2
12
+ t.skr_track_modifications create_only: true # since it can't be updated
13
+ end
14
+ skr_add_index :gl_postings, [:period,:year,:account_number]
15
+ end
16
+ end
@@ -0,0 +1,13 @@
1
+ require 'skr/core/db/migration_helpers'
2
+
3
+ class CreateSkrGlManualEntries < ActiveRecord::Migration
4
+ def change
5
+
6
+ create_skr_table "gl_manual_entries" do |t|
7
+ t.skr_visible_id
8
+ t.text "notes"
9
+ t.skr_track_modifications
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,16 @@
1
+ require 'skr/core/db/migration_helpers'
2
+
3
+ class CreateSkrPaymentTerms < ActiveRecord::Migration
4
+ def change
5
+
6
+ create_skr_table "payment_terms" do |t|
7
+ t.skr_code_identifier
8
+ t.integer "days", null: false, :default=>0
9
+ t.string "description", null: false
10
+ t.integer "discount_days"
11
+ t.string "discount_amount"
12
+ t.skr_track_modifications
13
+ end
14
+
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ require 'skr/core/db/migration_helpers'
2
+
3
+ class CreateSkrAddresses < ActiveRecord::Migration
4
+ def change
5
+
6
+ create_skr_table "addresses" do |t|
7
+ t.string "name"
8
+ t.string "email"
9
+ t.string "phone"
10
+ t.string "line1"
11
+ t.string "line2"
12
+ t.string "city"
13
+ t.string "state"
14
+ t.string "postal_code"
15
+ t.skr_track_modifications
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ require 'skr/core/db/migration_helpers'
2
+
3
+ class CreateSkrLocations < ActiveRecord::Migration
4
+ def change
5
+
6
+ create_skr_table "locations" do |t|
7
+ t.skr_code_identifier
8
+ t.string "name", null: false
9
+ t.skr_reference :address, null: false, single: true
10
+ t.boolean "is_active", null: false, default: true
11
+ t.string "gl_branch_code",
12
+ default: Skr::Core.config.default_branch_code,
13
+ null: false,
14
+ limit: 2
15
+ t.skr_track_modifications
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,22 @@
1
+ require 'skr/core/db/migration_helpers'
2
+
3
+ class CreateSkrVendors < ActiveRecord::Migration
4
+ def change
5
+
6
+ create_skr_table "vendors" do |t|
7
+ t.skr_reference :billing_address, null: false, to_table: :addresses
8
+ t.skr_reference :shipping_address, null: false, to_table: :addresses
9
+ t.skr_reference :terms, null: false, to_table: :payment_terms
10
+ t.skr_reference :gl_payables_account, null: false, to_table: :gl_accounts
11
+ t.skr_reference :gl_freight_account, null: false, to_table: :gl_accounts
12
+ t.string "code", null: false
13
+ t.string "hash_code", null: false
14
+ t.string "name", null: false
15
+ t.text "notes"
16
+ t.string "account_code"
17
+ t.string "website"
18
+ t.skr_track_modifications
19
+ end
20
+
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ require 'skr/core/db/migration_helpers'
2
+
3
+ class CreateSkrCustomers < ActiveRecord::Migration
4
+ def change
5
+
6
+ create_skr_table "customers" do |t|
7
+ t.skr_code_identifier
8
+ t.skr_reference :billing_address, null: false, to_table: :addresses
9
+ t.skr_reference :shipping_address, null: false, to_table: :addresses
10
+ t.skr_reference :terms, null: false, to_table: :payment_terms
11
+ t.skr_reference :gl_receivables_account, null: false, to_table: :gl_accounts
12
+ t.skr_currency :credit_limit, default: 0.0
13
+ t.skr_currency :open_balance, default: 0.0
14
+ t.string "hash_code", null: false
15
+ t.string "name", null: false
16
+ t.text "notes"
17
+ t.text "website"
18
+ t.hstore "options", default: {}
19
+ t.skr_track_modifications
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ require 'skr/core/db/migration_helpers'
2
+
3
+ class CreateSkrSkus < ActiveRecord::Migration
4
+
5
+ def change
6
+
7
+ create_skr_table "skus" do |t|
8
+ t.skr_reference "default_vendor", null: false, to_table: 'vendors'
9
+ t.skr_reference "gl_asset_account", null: false, to_table: 'gl_accounts'
10
+ t.string "default_uom_code", null: false
11
+ t.string "code", null: false
12
+ t.string "description", null: false
13
+ t.boolean "is_other_charge", null: false, default: false
14
+ t.boolean "does_track_inventory", null: false, default: false
15
+ t.boolean "can_backorder", null: false, default: false
16
+ t.skr_track_modifications
17
+ end
18
+
19
+ #skr_add_index :
20
+ end
21
+
22
+ end
@@ -0,0 +1,21 @@
1
+ require 'skr/core/db/migration_helpers'
2
+
3
+ class CreateSkrSkuLocs < ActiveRecord::Migration
4
+
5
+ def change
6
+
7
+ create_skr_table "sku_locs" do |t|
8
+ t.skr_reference :sku, null: false, single: true
9
+ t.skr_reference :location, null: false, single: true
10
+ t.decimal "mac", precision: 15, scale: 4, default: 0.0, null: false
11
+ t.integer "qty", default: 0, null: false
12
+ t.integer "qty_allocated", default: 0, null: false
13
+ t.integer "qty_picking", default: 0, null: false
14
+ t.integer "qty_reserved", default: 0, null: false
15
+ t.string "bin"
16
+ t.skr_track_modifications
17
+ end
18
+
19
+
20
+ end
21
+ end
@@ -0,0 +1,19 @@
1
+ require 'skr/core/db/migration_helpers'
2
+
3
+ class CreateSkrUoms < ActiveRecord::Migration
4
+ def change
5
+
6
+ create_skr_table "uoms" do |t|
7
+ t.skr_reference :sku, null: false, single: true
8
+ t.skr_currency "price", null: false, precision: 15, scale: 2
9
+ t.integer "size", null: false, default: 1, limit: 2
10
+ t.string "code", null: false, default: "EA"
11
+ t.decimal "weight", precision: 6, scale: 1
12
+ t.decimal "height", precision: 6, scale: 1
13
+ t.decimal "width", precision: 6, scale: 1
14
+ t.decimal "depth", precision: 6, scale: 1
15
+ t.skr_track_modifications
16
+ end
17
+
18
+ end
19
+ end