vyapari 0.1.4 → 0.1.5dev

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/vyapari/sample_stock_bundle.csv +1 -0
  3. data/app/controllers/vyapari/admin/base_controller.rb +10 -0
  4. data/app/controllers/vyapari/admin/brands_controller.rb +99 -0
  5. data/app/controllers/vyapari/admin/categories_controller.rb +115 -0
  6. data/app/controllers/vyapari/admin/countries_controller.rb +2 -2
  7. data/app/controllers/vyapari/admin/dashboard_controller.rb +3 -1
  8. data/app/controllers/vyapari/admin/exchange_rates_controller.rb +2 -2
  9. data/app/controllers/vyapari/admin/products_controller.rb +79 -0
  10. data/app/controllers/vyapari/admin/regions_controller.rb +1 -1
  11. data/app/controllers/vyapari/admin/resource_controller.rb +1 -0
  12. data/app/controllers/vyapari/admin/stores_controller.rb +67 -0
  13. data/app/controllers/vyapari/admin/suppliers_controller.rb +67 -0
  14. data/app/controllers/vyapari/admin/terminals_controller.rb +150 -0
  15. data/app/controllers/vyapari/application_controller.rb +12 -0
  16. data/app/controllers/vyapari/store_manager/base_controller.rb +28 -0
  17. data/app/controllers/vyapari/store_manager/dashboard_controller.rb +30 -0
  18. data/app/controllers/vyapari/store_manager/resource_controller.rb +17 -0
  19. data/app/controllers/vyapari/store_manager/stock_bundles_controller.rb +206 -0
  20. data/app/controllers/vyapari/store_manager/stock_entries_controller.rb +161 -0
  21. data/app/controllers/vyapari/terminal_staff/base_controller.rb +29 -0
  22. data/app/controllers/vyapari/terminal_staff/dashboard_controller.rb +29 -0
  23. data/app/controllers/vyapari/terminal_staff/invoices_controller.rb +138 -0
  24. data/app/controllers/vyapari/terminal_staff/line_items_controller.rb +123 -0
  25. data/app/controllers/vyapari/terminal_staff/resource_controller.rb +17 -0
  26. data/app/controllers/vyapari/user_dashboard_controller.rb +31 -0
  27. data/app/models/brand.rb +63 -10
  28. data/app/models/category.rb +60 -16
  29. data/app/models/country.rb +27 -5
  30. data/app/models/exchange_rate.rb +31 -6
  31. data/app/models/image/brand_image.rb +3 -0
  32. data/app/models/image/category_image.rb +3 -0
  33. data/app/models/image/product_image.rb +3 -0
  34. data/app/models/invoice.rb +223 -0
  35. data/app/models/line_item.rb +206 -0
  36. data/app/models/product.rb +67 -13
  37. data/app/models/region.rb +26 -3
  38. data/app/models/stock_bundle.rb +249 -0
  39. data/app/models/stock_entry.rb +271 -0
  40. data/app/models/store.rb +216 -0
  41. data/app/models/supplier.rb +85 -0
  42. data/app/models/terminal.rb +158 -0
  43. data/app/models/vyapari/application_record.rb +4 -0
  44. data/app/uploaders/brand_image_uploader.rb +14 -0
  45. data/app/uploaders/category_image_uploader.rb +14 -0
  46. data/app/uploaders/product_image_uploader.rb +14 -0
  47. data/app/uploaders/stock_bundle_uploader.rb +10 -0
  48. data/app/views/layouts/kuppayam/_footer.html.erb +1 -1
  49. data/app/views/layouts/kuppayam/_sidebar.html.erb +45 -44
  50. data/app/views/layouts/vyapari/_store_manager_menu.html.erb +107 -0
  51. data/app/views/layouts/vyapari/_terminal_staff_menu.html.erb +103 -0
  52. data/app/views/layouts/vyapari/store_manager.html.erb +112 -0
  53. data/app/views/layouts/vyapari/terminal_staff.html.erb +116 -0
  54. data/app/views/vyapari/admin/brands/_form.html.erb +23 -0
  55. data/app/views/vyapari/admin/brands/_index.html.erb +89 -0
  56. data/app/views/vyapari/admin/brands/_row.html.erb +63 -0
  57. data/app/views/vyapari/admin/brands/_show.html.erb +104 -0
  58. data/app/views/vyapari/admin/brands/index.html.erb +48 -0
  59. data/app/views/vyapari/admin/categories/_form.html.erb +28 -0
  60. data/app/views/vyapari/admin/categories/_index.html.erb +101 -0
  61. data/app/views/vyapari/admin/categories/_row.html.erb +69 -0
  62. data/app/views/vyapari/admin/categories/_show.html.erb +115 -0
  63. data/app/views/vyapari/admin/{users → categories}/index.html.erb +8 -24
  64. data/app/views/vyapari/admin/countries/_index.html.erb +1 -1
  65. data/app/views/vyapari/admin/countries/index.html.erb +19 -3
  66. data/app/views/vyapari/admin/exchange_rates/_form.html.erb +3 -4
  67. data/app/views/vyapari/admin/exchange_rates/_index.html.erb +7 -7
  68. data/app/views/vyapari/admin/exchange_rates/_row.html.erb +3 -3
  69. data/app/views/vyapari/admin/exchange_rates/_show.html.erb +1 -0
  70. data/app/views/vyapari/admin/exchange_rates/index.html.erb +19 -3
  71. data/app/views/vyapari/admin/products/_form.html.erb +32 -0
  72. data/app/views/vyapari/admin/products/_index.html.erb +58 -0
  73. data/app/views/vyapari/admin/products/_row.html.erb +30 -0
  74. data/app/views/vyapari/admin/products/_show.html.erb +81 -0
  75. data/app/views/vyapari/admin/products/index.html.erb +48 -0
  76. data/app/views/vyapari/admin/regions/_index.html.erb +1 -1
  77. data/app/views/vyapari/admin/regions/index.html.erb +19 -3
  78. data/app/views/vyapari/admin/stores/_form.html.erb +37 -0
  79. data/app/views/vyapari/admin/stores/_index.html.erb +84 -0
  80. data/app/views/vyapari/admin/stores/_row.html.erb +55 -0
  81. data/app/views/vyapari/admin/stores/_show.html.erb +110 -0
  82. data/app/views/vyapari/admin/stores/index.html.erb +48 -0
  83. data/app/views/vyapari/admin/suppliers/_form.html.erb +32 -0
  84. data/app/views/vyapari/admin/suppliers/_index.html.erb +58 -0
  85. data/app/views/vyapari/admin/suppliers/_row.html.erb +30 -0
  86. data/app/views/vyapari/admin/suppliers/_show.html.erb +81 -0
  87. data/app/views/vyapari/admin/suppliers/index.html.erb +48 -0
  88. data/app/views/vyapari/admin/terminals/_form.html.erb +24 -0
  89. data/app/views/vyapari/admin/terminals/_index.html.erb +75 -0
  90. data/app/views/vyapari/admin/terminals/_row.html.erb +49 -0
  91. data/app/views/vyapari/admin/terminals/_show.html.erb +74 -0
  92. data/app/views/vyapari/store_manager/dashboard/index.html.erb +93 -0
  93. data/app/views/vyapari/store_manager/stock_bundles/_form.html.erb +99 -0
  94. data/app/views/vyapari/store_manager/stock_bundles/_index.html.erb +74 -0
  95. data/app/views/vyapari/store_manager/stock_bundles/_row.html.erb +44 -0
  96. data/app/views/vyapari/store_manager/stock_bundles/_show.html.erb +110 -0
  97. data/app/views/vyapari/store_manager/stock_bundles/create.html.erb +57 -0
  98. data/app/views/vyapari/store_manager/stock_bundles/index.html.erb +36 -0
  99. data/app/views/vyapari/store_manager/stock_bundles/update.html.erb +57 -0
  100. data/app/views/vyapari/store_manager/stock_entries/_form.html.erb +50 -0
  101. data/app/views/vyapari/store_manager/stock_entries/_index.html.erb +80 -0
  102. data/app/views/vyapari/store_manager/stock_entries/_row.html.erb +33 -0
  103. data/app/views/vyapari/store_manager/stock_entries/_show.html.erb +110 -0
  104. data/app/views/vyapari/store_manager/stock_entries/_stock_bundle.html.erb +61 -0
  105. data/app/views/vyapari/store_manager/stock_entries/index.html.erb +45 -0
  106. data/app/views/vyapari/terminal_staff/dashboard/_counts.html.erb +88 -0
  107. data/app/views/vyapari/terminal_staff/dashboard/_invoices.html.erb +37 -0
  108. data/app/views/vyapari/terminal_staff/dashboard/index.html.erb +36 -0
  109. data/app/views/vyapari/terminal_staff/invoices/_draft.html.erb +62 -0
  110. data/app/views/vyapari/terminal_staff/invoices/_form.html.erb +120 -0
  111. data/app/views/vyapari/terminal_staff/invoices/_index.html.erb +64 -0
  112. data/app/views/vyapari/terminal_staff/invoices/_row.html.erb +33 -0
  113. data/app/views/vyapari/terminal_staff/invoices/_show.html.erb +171 -0
  114. data/app/views/vyapari/terminal_staff/invoices/index.html.erb +37 -0
  115. data/app/views/vyapari/terminal_staff/invoices/new.js.erb +13 -0
  116. data/app/views/vyapari/terminal_staff/invoices/show.html.erb +1 -0
  117. data/app/views/vyapari/terminal_staff/line_items/_form.html.erb +40 -0
  118. data/app/views/vyapari/terminal_staff/line_items/_index.html.erb +94 -0
  119. data/app/views/vyapari/terminal_staff/line_items/create.js.erb +34 -0
  120. data/app/views/vyapari/terminal_staff/line_items/destroy.js.erb +25 -0
  121. data/app/views/vyapari/terminal_staff/stores/index.html.erb +24 -0
  122. data/app/views/vyapari/user_dashboard/index.html.erb +51 -0
  123. data/config/routes.rb +62 -5
  124. data/db/import_data/brands.csv +7 -0
  125. data/db/import_data/categories.csv +12 -0
  126. data/db/import_data/countries.csv +1 -0
  127. data/db/import_data/dummy/brands.csv +7 -0
  128. data/db/import_data/dummy/categories.csv +12 -0
  129. data/db/import_data/dummy/countries.csv +1 -0
  130. data/db/import_data/dummy/exchange_rates.csv +5 -0
  131. data/db/import_data/dummy/products-copy.csv +1 -0
  132. data/db/import_data/dummy/products.csv +1 -0
  133. data/db/import_data/dummy/products.xlsx +0 -0
  134. data/db/import_data/dummy/regions.csv +13 -0
  135. data/db/import_data/dummy/stores.csv +10 -0
  136. data/db/import_data/dummy/suppliers.csv +14 -0
  137. data/db/import_data/dummy/terminals.csv +11 -0
  138. data/db/import_data/exchange_rates.csv +5 -0
  139. data/db/import_data/regions.csv +13 -0
  140. data/db/import_data/stores.csv +3 -0
  141. data/db/import_data/suppliers.csv +14 -0
  142. data/db/import_data/terminals.csv +3 -0
  143. data/db/migrate/20170000000200_create_exchange_rates.rb +3 -2
  144. data/db/migrate/20170000000203_create_contacts.rb +22 -0
  145. data/db/migrate/20170000000204_create_bank_accounts.rb +21 -0
  146. data/db/migrate/20170000000205_create_suppliers.rb +18 -0
  147. data/db/migrate/20170000000206_create_stores.rb +21 -0
  148. data/db/migrate/20170000000207_create_terminals.rb +18 -0
  149. data/db/migrate/20170000000210_create_brands.rb +14 -0
  150. data/db/migrate/20170000000211_create_categories.rb +22 -0
  151. data/db/migrate/20170000000212_create_products.rb +29 -0
  152. data/db/migrate/20170000000213_create_invoices.rb +58 -0
  153. data/db/migrate/20170000000215_create_stock_bundles.rb +17 -0
  154. data/db/migrate/20170000000216_create_stock_entries.rb +20 -0
  155. data/db/sample_reports/products.xlsx +0 -0
  156. data/lib/tasks/vyapari/all.rake +73 -0
  157. data/lib/vyapari/version.rb +1 -1
  158. metadata +150 -15
  159. data/app/controllers/vyapari/admin/users_controller.rb +0 -130
  160. data/app/views/vyapari/admin/users/_form.html.erb +0 -39
  161. data/app/views/vyapari/admin/users/_index.html.erb +0 -101
  162. data/app/views/vyapari/admin/users/_row.html.erb +0 -72
  163. data/app/views/vyapari/admin/users/_show.html.erb +0 -199
  164. data/lib/tasks/vyapari_tasks.rake +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ff49d7316d3e4913bcbbdcfbaf634637d27e606a
4
- data.tar.gz: 2f2498f59290f1d26bde8259e5ffbf2763f540bf
3
+ metadata.gz: 56fe1df91f52bb3ed89982d4cb830559e644e533
4
+ data.tar.gz: aab510fe1843cdbc11a1f11ef3484fbb6a0aa1e3
5
5
  SHA512:
6
- metadata.gz: 0a42b57dd2b8a9be9d8281ed2f72439e064f78058586c469b8157557ce710fc30fa72b904b2f94379fa6f68e4d2b52b3b4f5273e5a23658e38fd72837c7b89b2
7
- data.tar.gz: 5caea6cc945a71ff2e5fb2570f5d174b81b61d13740dd6b4873f75fc4175bcc55bc96b10dc8acf2fb4fc6b9d11fda9cbfe7641a4d97ac657e502e491f762280e
6
+ metadata.gz: 88d2f8f5a3f5cafa70451be2803b671f66d8c6329eb3496d1391b349c831bc22367fb7c0d34bef82b0aa99013283a63513ac03b3d1e1d8aa4000cbc60be08f67
7
+ data.tar.gz: 599c9c17dd2ede4b63ba96e7cc567be98d11f3d6643403800f534adad16e913dde080c65158100b43e0eed6e91e98d22db81d11ad776b2afb909ee5712b465b9
@@ -0,0 +1 @@
1
+ name ean_sku reference_number one_liner description brand category purchased_price landing_price selling_price retail_price quantity
@@ -5,12 +5,22 @@ module Vyapari
5
5
  layout 'kuppayam/admin'
6
6
 
7
7
  before_action :require_user
8
+ before_action :require_site_admin
8
9
 
9
10
  private
10
11
 
11
12
  def set_default_title
12
13
  set_title("Vyapari Admin | Vyapari Stock Management Module")
13
14
  end
15
+
16
+ def require_site_admin
17
+ unless @current_user.has_role?("Site Admin")
18
+ text = "#{I18n.t("authentication.permission_denied.heading")}: #{I18n.t("authentication.permission_denied.message")}"
19
+ set_flash_message(text, :error, false) if defined?(flash) && flash
20
+ redirect_to default_redirect_url_after_sign_in
21
+ end
22
+ #binding.pry
23
+ end
14
24
 
15
25
  end
16
26
  end
@@ -0,0 +1,99 @@
1
+ module Vyapari
2
+ module Admin
3
+ class BrandsController < ResourceController
4
+
5
+ def mark_as_featured
6
+ @brand = @r_object = Brand.find(params[:id])
7
+ if @brand
8
+ @brand.featured = true
9
+ if @brand.valid?
10
+ @brand.save
11
+ set_notification(true, I18n.t('status.success'), I18n.t('state.changed', item: default_item_name.titleize, new_state: "featured"))
12
+ else
13
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @brand.errors.full_messages.join("<br>"))
14
+ end
15
+ else
16
+ set_notification(false, I18n.t('status.not_found'), I18n.t('status.not_found', item: default_item_name.titleize))
17
+ end
18
+ render_row
19
+ end
20
+
21
+ def remove_from_featured
22
+ @brand = @r_object = Brand.find(params[:id])
23
+ if @brand
24
+ @brand.featured = false
25
+ if @brand.valid?
26
+ @brand.save
27
+ set_notification(true, I18n.t('status.success'), I18n.t('state.changed', item: default_item_name.titleize, new_state: "featured"))
28
+ else
29
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @brand.errors.full_messages.join("<br>"))
30
+ end
31
+ else
32
+ set_notification(false, I18n.t('status.not_found'), I18n.t('status.not_found', item: default_item_name.titleize))
33
+ end
34
+ render_row
35
+ end
36
+
37
+ private
38
+
39
+ def get_collections
40
+ @relation = Brand.where("")
41
+
42
+ parse_filters
43
+ apply_filters
44
+
45
+ @brands = @r_objects = @relation.page(@current_page).per(@per_page)
46
+
47
+ return true
48
+ end
49
+
50
+ def apply_filters
51
+ @relation = @relation.search(@query) if @query
52
+
53
+ @order_by = "priority DESC, name ASC" unless @order_by
54
+ @relation = @relation.order(@order_by)
55
+ end
56
+
57
+ def configure_filter_settings
58
+ @filter_settings = {
59
+ string_filters: [
60
+ { filter_name: :query }
61
+ ],
62
+ boolean_filters: [],
63
+ reference_filters: [],
64
+ variable_filters: [],
65
+ }
66
+ end
67
+
68
+ def configure_filter_ui_settings
69
+ @filter_ui_settings = {}
70
+ end
71
+
72
+ def resource_controller_configuration
73
+ {
74
+ page_title: "Brands",
75
+ js_view_path: "/kuppayam/workflows/parrot",
76
+ view_path: "/vyapari/admin/brands"
77
+ }
78
+ end
79
+
80
+ def breadcrumbs_configuration
81
+ {
82
+ heading: "Manage Brands",
83
+ description: "Listing all Brands",
84
+ links: [{name: "Home", link: admin_dashboard_path, icon: 'fa-home'},
85
+ {name: "Manage Brands", link: admin_brands_path, icon: 'fa-calendar', active: true}]
86
+ }
87
+ end
88
+
89
+ def permitted_params
90
+ params.require(:brand).permit(:name, :featured, :status)
91
+ end
92
+
93
+ def set_navs
94
+ set_nav("admin/brands")
95
+ end
96
+
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,115 @@
1
+ module Vyapari
2
+ module Admin
3
+ class CategoriesController < ResourceController
4
+
5
+ def make_parent
6
+ @category = @r_object = Category.find(params[:id])
7
+ if @category
8
+ @category.parent = nil
9
+ if @category.valid?
10
+ @category.save
11
+ set_notification(true, I18n.t('status.success'), I18n.t('state.changed', item: default_item_name.titleize, new_state: "made as parent"))
12
+ else
13
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @category.errors.full_messages.join("<br>"))
14
+ end
15
+ else
16
+ set_notification(false, I18n.t('status.not_found'), I18n.t('status.not_found', item: default_item_name.titleize))
17
+ end
18
+ render_row
19
+ end
20
+
21
+ def mark_as_featured
22
+ @category = @r_object = Category.find(params[:id])
23
+ if @category
24
+ @category.featured = true
25
+ if @category.valid?
26
+ @category.save
27
+ set_notification(true, I18n.t('status.success'), I18n.t('state.changed', item: default_item_name.titleize, new_state: "featured"))
28
+ else
29
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @category.errors.full_messages.join("<br>"))
30
+ end
31
+ else
32
+ set_notification(false, I18n.t('status.not_found'), I18n.t('status.not_found', item: default_item_name.titleize))
33
+ end
34
+ render_row
35
+ end
36
+
37
+ def remove_from_featured
38
+ @category = @r_object = Brand.find(params[:id])
39
+ if @category
40
+ @category.featured = false
41
+ if @category.valid?
42
+ @category.save
43
+ set_notification(true, I18n.t('status.success'), I18n.t('state.changed', item: default_item_name.titleize, new_state: "featured"))
44
+ else
45
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @category.errors.full_messages.join("<br>"))
46
+ end
47
+ else
48
+ set_notification(false, I18n.t('status.not_found'), I18n.t('status.not_found', item: default_item_name.titleize))
49
+ end
50
+ render_row
51
+ end
52
+
53
+ private
54
+
55
+ def get_collections
56
+ @relation = Category.includes(:parent).where("")
57
+
58
+ parse_filters
59
+ apply_filters
60
+
61
+ @categories = @r_objects = @relation.page(@current_page).per(@per_page)
62
+
63
+ return true
64
+ end
65
+
66
+ def apply_filters
67
+ @relation = @relation.search(@query) if @query
68
+
69
+ @order_by = "parent_id ASC, priority DESC, name ASC" unless @order_by
70
+ @relation = @relation.order(@order_by)
71
+ end
72
+
73
+ def configure_filter_settings
74
+ @filter_settings = {
75
+ string_filters: [
76
+ { filter_name: :query }
77
+ ],
78
+ boolean_filters: [],
79
+ reference_filters: [],
80
+ variable_filters: [],
81
+ }
82
+ end
83
+
84
+ def configure_filter_ui_settings
85
+ @filter_ui_settings = {}
86
+ end
87
+
88
+ def resource_controller_configuration
89
+ {
90
+ page_title: "Categories",
91
+ js_view_path: "/kuppayam/workflows/parrot",
92
+ view_path: "/vyapari/admin/categories"
93
+ }
94
+ end
95
+
96
+ def breadcrumbs_configuration
97
+ {
98
+ heading: "Manage Categories",
99
+ description: "Listing all Categories",
100
+ links: [{name: "Home", link: admin_dashboard_path, icon: 'fa-home'},
101
+ {name: "Manage Categories", link: admin_categories_path, icon: 'fa-calendar', active: true}]
102
+ }
103
+ end
104
+
105
+ def permitted_params
106
+ params.require(:category).permit(:name, :one_liner, :parent_id, :status, :featured)
107
+ end
108
+
109
+ def set_navs
110
+ set_nav("admin/categories")
111
+ end
112
+
113
+ end
114
+ end
115
+ end
@@ -18,7 +18,7 @@ module Vyapari
18
18
  def apply_filters
19
19
  @relation = @relation.search(@query) if @query
20
20
 
21
- @order_by = "created_at desc" unless @order_by
21
+ @order_by = "name ASC" unless @order_by
22
22
  @relation = @relation.order(@order_by)
23
23
  end
24
24
 
@@ -39,7 +39,7 @@ module Vyapari
39
39
 
40
40
  def resource_controller_configuration
41
41
  {
42
- page_title: "Manage Countries",
42
+ page_title: "Countries",
43
43
  current_nav: "admin/countries",
44
44
  js_view_path: "/kuppayam/workflows/parrot",
45
45
  view_path: "/vyapari/admin/countries"
@@ -2,6 +2,8 @@ module Vyapari
2
2
  module Admin
3
3
  class DashboardController < Vyapari::Admin::BaseController
4
4
 
5
+ before_action :require_site_admin
6
+
5
7
  # GET /dashboard
6
8
  def index
7
9
  end
@@ -10,7 +12,7 @@ module Vyapari
10
12
 
11
13
  def breadcrumbs_configuration
12
14
  {
13
- heading: "Stock Dashboard",
15
+ heading: "Admin Dashboard",
14
16
  description: "A Quick view of stocks",
15
17
  links: [{name: "Dashboard", link: admin_dashboard_path, icon: 'fa-dashboard'}]
16
18
  }
@@ -39,7 +39,7 @@ module Vyapari
39
39
 
40
40
  def resource_controller_configuration
41
41
  {
42
- page_title: "Manage Countries",
42
+ page_title: "Exchange Rates",
43
43
  collection_name: :exchange_rates,
44
44
  item_name: :exchange_rate,
45
45
  class: ExchangeRate,
@@ -58,7 +58,7 @@ module Vyapari
58
58
  end
59
59
 
60
60
  def permitted_params
61
- params.require(:exchange_rate).permit(:currency_name, :value, :effective_date, :country_id)
61
+ params.require(:exchange_rate).permit(:base_currency, :counter_currency, :value, :effective_date)
62
62
  end
63
63
 
64
64
  def set_navs
@@ -0,0 +1,79 @@
1
+ module Vyapari
2
+ module Admin
3
+ class ProductsController < ResourceController
4
+
5
+ def mark_as_featured
6
+ @product = @r_object = Product.find(params[:id])
7
+ @product.update_attribute(:featured, true) if @product.published?
8
+ render_row
9
+ end
10
+
11
+ def remove_from_featured
12
+ @product = @r_object = Product.find(params[:id])
13
+ @product.update_attribute(:featured, false) if @product.featured?
14
+ render_row
15
+ end
16
+
17
+ private
18
+
19
+ def get_collections
20
+ @relation = Product.where("")
21
+
22
+ parse_filters
23
+ apply_filters
24
+
25
+ @products = @r_objects = @relation.page(@current_page).per(@per_page)
26
+
27
+ return true
28
+ end
29
+
30
+ def apply_filters
31
+ @relation = @relation.search(@query) if @query
32
+
33
+ @order_by = "priority DESC, name ASC" unless @order_by
34
+ @relation = @relation.order(@order_by)
35
+ end
36
+
37
+ def configure_filter_settings
38
+ @filter_settings = {
39
+ string_filters: [
40
+ { filter_name: :query }
41
+ ],
42
+ boolean_filters: [],
43
+ reference_filters: [],
44
+ variable_filters: [],
45
+ }
46
+ end
47
+
48
+ def configure_filter_ui_settings
49
+ @filter_ui_settings = {}
50
+ end
51
+
52
+ def resource_controller_configuration
53
+ {
54
+ page_title: "Products",
55
+ js_view_path: "/kuppayam/workflows/parrot",
56
+ view_path: "/vyapari/admin/products"
57
+ }
58
+ end
59
+
60
+ def breadcrumbs_configuration
61
+ {
62
+ heading: "Manage Products",
63
+ description: "Listing all Products",
64
+ links: [{name: "Home", link: admin_dashboard_path, icon: 'fa-home'},
65
+ {name: "Manage Products", link: admin_products_path, icon: 'fa-calendar', active: true}]
66
+ }
67
+ end
68
+
69
+ def permitted_params
70
+ params.require(:product).permit(:name, :one_liner, :ean_sku, :reference_number, :brand_id, :category_id, :status, :featured)
71
+ end
72
+
73
+ def set_navs
74
+ set_nav("admin/products")
75
+ end
76
+
77
+ end
78
+ end
79
+ end
@@ -39,7 +39,7 @@ module Vyapari
39
39
 
40
40
  def resource_controller_configuration
41
41
  {
42
- page_title: "Manage Countries",
42
+ page_title: "Regions",
43
43
  js_view_path: "/kuppayam/workflows/parrot",
44
44
  view_path: "/vyapari/admin/regions"
45
45
  }
@@ -4,6 +4,7 @@ module Vyapari
4
4
 
5
5
  include ResourceHelper
6
6
 
7
+ before_action :require_site_admin
7
8
  before_action :configure_resource_controller
8
9
 
9
10
  def resource_url(obj)
@@ -0,0 +1,67 @@
1
+ module Vyapari
2
+ module Admin
3
+ class StoresController < ResourceController
4
+
5
+ private
6
+
7
+ def get_collections
8
+ @relation = Store.where("")
9
+
10
+ parse_filters
11
+ apply_filters
12
+
13
+ @stores = @r_objects = @relation.page(@current_page).per(@per_page)
14
+
15
+ return true
16
+ end
17
+
18
+ def apply_filters
19
+ @relation = @relation.search(@query) if @query
20
+
21
+ @order_by = "created_at desc" unless @order_by
22
+ @relation = @relation.order(@order_by)
23
+ end
24
+
25
+ def configure_filter_settings
26
+ @filter_settings = {
27
+ string_filters: [
28
+ { filter_name: :query }
29
+ ],
30
+ boolean_filters: [],
31
+ reference_filters: [],
32
+ variable_filters: [],
33
+ }
34
+ end
35
+
36
+ def configure_filter_ui_settings
37
+ @filter_ui_settings = {}
38
+ end
39
+
40
+ def resource_controller_configuration
41
+ {
42
+ page_title: "Stores",
43
+ js_view_path: "/kuppayam/workflows/peacock",
44
+ view_path: "/vyapari/admin/stores"
45
+ }
46
+ end
47
+
48
+ def breadcrumbs_configuration
49
+ {
50
+ heading: "Manage Stores",
51
+ description: "Listing all Stores",
52
+ links: [{name: "Home", link: admin_dashboard_path, icon: 'fa-home'},
53
+ {name: "Manage Stores", link: admin_stores_path, icon: 'fa-calendar', active: true}]
54
+ }
55
+ end
56
+
57
+ def permitted_params
58
+ params.require(:store).permit(:name, :code, :store_type, :region_id, :country_id)
59
+ end
60
+
61
+ def set_navs
62
+ set_nav("admin/stores")
63
+ end
64
+
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,67 @@
1
+ module Vyapari
2
+ module Admin
3
+ class SuppliersController < ResourceController
4
+
5
+ private
6
+
7
+ def get_collections
8
+ @relation = Supplier.where("")
9
+
10
+ parse_filters
11
+ apply_filters
12
+
13
+ @suppliers = @r_objects = @relation.page(@current_page).per(@per_page)
14
+
15
+ return true
16
+ end
17
+
18
+ def apply_filters
19
+ @relation = @relation.search(@query) if @query
20
+
21
+ @order_by = "created_at desc" unless @order_by
22
+ @relation = @relation.order(@order_by)
23
+ end
24
+
25
+ def configure_filter_settings
26
+ @filter_settings = {
27
+ string_filters: [
28
+ { filter_name: :query }
29
+ ],
30
+ boolean_filters: [],
31
+ reference_filters: [],
32
+ variable_filters: [],
33
+ }
34
+ end
35
+
36
+ def configure_filter_ui_settings
37
+ @filter_ui_settings = {}
38
+ end
39
+
40
+ def resource_controller_configuration
41
+ {
42
+ page_title: "Suppliers",
43
+ js_view_path: "/kuppayam/workflows/parrot",
44
+ view_path: "/vyapari/admin/suppliers"
45
+ }
46
+ end
47
+
48
+ def breadcrumbs_configuration
49
+ {
50
+ heading: "Manage Suppliers",
51
+ description: "Listing all Suppliers",
52
+ links: [{name: "Home", link: admin_dashboard_path, icon: 'fa-home'},
53
+ {name: "Manage Suppliers", link: admin_suppliers_path, icon: 'fa-calendar', active: true}]
54
+ }
55
+ end
56
+
57
+ def permitted_params
58
+ params.require(:supplier).permit(:name, :code, :address, :city, :country_id)
59
+ end
60
+
61
+ def set_navs
62
+ set_nav("admin/suppliers")
63
+ end
64
+
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,150 @@
1
+ module Vyapari
2
+ module Admin
3
+ class TerminalsController < ResourceController
4
+
5
+ before_action :get_store
6
+
7
+ def index
8
+ get_collections
9
+ respond_to do |format|
10
+ format.html {}
11
+ format.js {
12
+ js_view_path = @resource_options && @resource_options[:js_view_path] ? "#{@resource_options[:js_view_path]}/index" : :index
13
+ render js_view_path
14
+ }
15
+ end
16
+ end
17
+
18
+ def show
19
+ @terminal = @r_object = @resource_options[:class].find_by_id(params[:id])
20
+ set_notification(false, I18n.t('status.error'), I18n.t('status.not_found', item: default_item_name.titleize)) unless @r_object
21
+ render_accordingly
22
+ end
23
+
24
+ def new
25
+ @terminal = @r_object = @resource_options[:class].new(store: @store)
26
+ render_accordingly
27
+ end
28
+
29
+ def edit
30
+ @terminal = @r_object = @resource_options[:class].find_by_id(params[:id])
31
+ set_notification(false, I18n.t('status.error'), I18n.t('status.not_found', item: default_item_name.titleize)) unless @r_object
32
+ render_accordingly
33
+ end
34
+
35
+ def create
36
+ @terminal = @r_object = @resource_options[:class].new(store: @store)
37
+ @r_object.assign_attributes(permitted_params)
38
+ save_resource
39
+ end
40
+
41
+ def update
42
+ @terminal =@r_object = @resource_options[:class].find_by_id(params[:id])
43
+ if @r_object
44
+ @r_object.assign_attributes(permitted_params)
45
+ save_resource
46
+ else
47
+ set_notification(false, I18n.t('status.error'), I18n.t('status.not_found', item: default_item_name.titleize))
48
+ end
49
+ end
50
+
51
+ def destroy
52
+ @terminal = @r_object = @resource_options[:class].find_by_id(params[:id])
53
+ if @r_object
54
+ if @r_object.can_be_deleted?
55
+ @r_object.destroy
56
+ get_collections
57
+ set_flash_message(I18n.t('success.deleted'), :success)
58
+ set_notification(false, I18n.t('status.success'), I18n.t('success.deleted', item: default_item_name.titleize))
59
+ @destroyed = true
60
+ else
61
+ message = I18n.t('errors.failed_to_delete', item: default_item_name.titleize)
62
+ set_flash_message(message, :failure)
63
+ set_notification(false, I18n.t('status.error'), message)
64
+ @destroyed = false
65
+ end
66
+ else
67
+ set_notification(false, I18n.t('status.error'), I18n.t('status.not_found', item: default_item_name.titleize))
68
+ end
69
+
70
+ respond_to do |format|
71
+ format.html {}
72
+ format.js {
73
+ js_view_path = @resource_options && @resource_options[:js_view_path] ? "#{@resource_options[:js_view_path]}/destroy" : :destroy
74
+ render js_view_path
75
+ }
76
+ end
77
+
78
+ end
79
+
80
+ private
81
+
82
+ def get_store
83
+ @store = Store.find_by_id(params[:store_id])
84
+ end
85
+
86
+ def get_collections
87
+ @relation = @store.terminals.where("")
88
+
89
+ parse_filters
90
+ apply_filters
91
+
92
+ @terminals = @r_objects = @relation.page(@current_page).per(@per_page)
93
+
94
+ return true
95
+ end
96
+
97
+ def apply_filters
98
+ @relation = @relation.search(@query) if @query
99
+
100
+ @order_by = "created_at desc" unless @order_by
101
+ @relation = @relation.order(@order_by)
102
+ end
103
+
104
+ def configure_filter_settings
105
+ @filter_settings = {
106
+ string_filters: [
107
+ { filter_name: :query }
108
+ ],
109
+ boolean_filters: [],
110
+ reference_filters: [],
111
+ variable_filters: [],
112
+ }
113
+ end
114
+
115
+ def configure_filter_ui_settings
116
+ @filter_ui_settings = {}
117
+ end
118
+
119
+ def resource_url(obj)
120
+ url_for([:admin, obj.store, obj])
121
+ end
122
+
123
+ def resource_controller_configuration
124
+ {
125
+ page_title: "Terminals",
126
+ js_view_path: "/kuppayam/workflows/parrot",
127
+ view_path: "/vyapari/admin/terminals"
128
+ }
129
+ end
130
+
131
+ def breadcrumbs_configuration
132
+ {
133
+ heading: "Manage Terminals",
134
+ description: "Listing all Terminals",
135
+ links: [{name: "Home", link: admin_dashboard_path, icon: 'fa-home'},
136
+ {name: "Manage Stores", link: admin_stores_path, icon: 'fa-calendar', active: true}]
137
+ }
138
+ end
139
+
140
+ def permitted_params
141
+ params.require(:terminal).permit(:name, :code)
142
+ end
143
+
144
+ def set_navs
145
+ set_nav("admin/terminals")
146
+ end
147
+
148
+ end
149
+ end
150
+ end