vyapari 0.1.4 → 0.1.5dev

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 (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