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
@@ -0,0 +1,110 @@
1
+ <% @terminals = @stock_entry.terminals.page(@current_page).per(@per_page) %>
2
+
3
+ <div id="div_stock_entry_show">
4
+
5
+ <div class="row">
6
+
7
+ <div class="col-md-9 col-sm-12 col-xs-12" style="border-right:1px solid #f1f1f1;">
8
+
9
+ <div class="visible-sm visible-xs mt-50"></div>
10
+
11
+ <%= theme_panel_heading(@stock_entry.display_name) %>
12
+ <%= theme_panel_sub_heading(@stock_entry.code, "#") %>
13
+ <%= theme_panel_sub_heading(@stock_entry.stock_entry_type, "#") %>
14
+ <%= theme_panel_description(@stock_entry.region.name) if @stock_entry.region %>
15
+ <%= theme_panel_description(@stock_entry.country.name) if @stock_entry.country %>
16
+
17
+ <%= clear_tag(10) %>
18
+
19
+ <div class="visible-sm visible-xs mb-50"></div>
20
+
21
+ </div>
22
+
23
+ <div class="col-md-3 col-sm-12 col-xs-12">
24
+
25
+ <% edit_link = edit_store_manager_stock_entries_path_stock_entry_path(@store, @stock_entry) %>
26
+
27
+ <% delete_link = store_manager_stock_entries_path_stock_entry_path(@store, @stock_entry) %>
28
+
29
+ <%= link_to raw("<i class=\"linecons-pencil\"></i> Edit Stock Entry"), edit_link, :remote=>true, class: "btn btn-block btn-success" if @stock_entry.can_be_edited? %>
30
+
31
+ <%= link_to raw("<i class=\"linecons-trash\"></i> Delete"), delete_link, method: :delete, stock_entry: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "btn btn-block btn-danger btn-only-hover" if @stock_entry.can_be_deleted? %>
32
+
33
+ <div class="visible-sm visible-xs mb-50"></div>
34
+
35
+ </div>
36
+
37
+ </div>
38
+
39
+ <%= clear_tag(50) %>
40
+
41
+ <ul class="nav nav-pills">
42
+ <li class="active">
43
+ <a href="#terminals" data-toggle="tab" aria-expanded="false">
44
+ <span class="visible-xs"><i class="fa-database"></i></span>
45
+ <span class="hidden-xs">Terminals</span>
46
+ </a>
47
+ </li>
48
+
49
+ <li class="">
50
+ <a href="#technical_details" data-toggle="tab" aria-expanded="false">
51
+ <span class="visible-xs"><i class="fa-database"></i></span>
52
+ <span class="hidden-xs">Technical Details</span>
53
+ </a>
54
+ </li>
55
+ </ul>
56
+
57
+ <div class="tab-content">
58
+ <div class="tab-pane active" id="terminals" style="border: 1px solid #000;min-height:200px;padding:20px;margin-bottom:20px;max-height: 400px;overflow-y: auto;">
59
+
60
+ <%= clear_tag(20) %>
61
+
62
+ <div id="div_terminal_action_buttons">
63
+ <div class="row">
64
+ <div class="col-md-6">
65
+
66
+ <%= theme_button('Add a Terminal', 'plus', new_store_manager_stock_entry_ath(@stock_entry), classes: "pull-left", btn_type: "success") %>
67
+
68
+ <%= theme_button('Refresh', 'refresh', store_manager_stock_entry_path(@stock_entry), classes: "pull-left ml-10", btn_type: "white") %>
69
+ </div>
70
+ <div class="col-md-6">
71
+ <%= search_form_kuppayam(Terminal, store_manager_stock_entry_path(@stock_entry), text: "") %>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ <%= clear_tag(10) %>
76
+
77
+ <div id="div_terminal_index">
78
+ <%= render :partial=>"vyapari/store_manager/terminals/index" %>
79
+ </div>
80
+
81
+ </div>
82
+ <div class="tab-pane" id="technical_details">
83
+
84
+ <%= clear_tag(20) %>
85
+
86
+ <div class="table-responsive">
87
+ <table class="table table-striped table-condensed table-bordered mb-30">
88
+ <tbody>
89
+
90
+ <tr>
91
+ <th>ID</th><td colspan="3"><%= @stock_entry.id %></td>
92
+ </tr>
93
+
94
+ <tr>
95
+ <th>Created At</th><td><%= @stock_entry.created_at.strftime("%m/%d/%Y - %H:%M:%S") if @stock_entry.created_at %></td>
96
+ <th>Updated At</th><td><%= @stock_entry.updated_at.strftime("%m/%d/%Y - %H:%M:%S") if @stock_entry.updated_at %></td>
97
+ </tr>
98
+
99
+ </tbody>
100
+ </table>
101
+
102
+ </div>
103
+
104
+ </div>
105
+ </div>
106
+
107
+ <%= link_to "Close", "#", onclick: "closeLargeModal();", class: "btn btn-primary pull-right" %>
108
+
109
+ <%= clear_tag %>
110
+ </div>
@@ -0,0 +1,61 @@
1
+ <%
2
+ stock_entries_count = @stock_bundle.stock_entries.count
3
+
4
+ if @stock_bundle.error_summary.blank?
5
+ widget_class = "xe-counter-green"
6
+ widget_icon = "fa-check"
7
+ panel_heading = "Uploaded Successfully"
8
+ panel_class = "panel-success"
9
+ else
10
+ widget_class = "xe-counter-red"
11
+ widget_icon = "fa-exclamation-triangle"
12
+ panel_heading = "Parse Error"
13
+ panel_class = "panel-red"
14
+ end
15
+ %>
16
+
17
+ <div class="row">
18
+
19
+ <div class="col-md-3 col-sm-4 col-xs-12" style="border-right:1px solid #f1f1f1;">
20
+
21
+ <div class="visible-sm visible-xs mt-50"></div>
22
+
23
+ <div class="xe-widget xe-vertical-counter xe-vertical-counter-primary" data-count=".num" data-from="0" data-to="442" data-suffix=" TB" data-duration="5">
24
+ <div class="xe-icon">
25
+ <i class="linecons-truck"></i>
26
+ </div>
27
+
28
+ <div class="xe-label">
29
+ <strong class="num"><%= stock_entries_count %></strong>
30
+ <span>Product Items</span>
31
+ </div>
32
+ </div>
33
+
34
+ <%= clear_tag(10) %>
35
+
36
+ <div class="visible-sm visible-xs mb-50"></div>
37
+
38
+ </div>
39
+
40
+ <div class="col-md-9 col-sm-8 col-xs-12" style="border-right:1px solid #f1f1f1;">
41
+
42
+ <div class="visible-sm visible-xs mt-50"></div>
43
+
44
+ <div class="xe-widget xe-counter <%= widget_class %>" data-count=".num" data-from="0" data-to="57" data-prefix="-," data-suffix="%" data-duration="5" data-easing="true" data-delay="1">
45
+ <div class="xe-icon">
46
+ <i class="<%= widget_icon %>"></i>
47
+ </div>
48
+ <div class="xe-label">
49
+ <strong class="num"><%= @stock_bundle.display_name %></strong>
50
+ <span><strong style="font-size:16px;"><%= @stock_bundle.store.try(:name) %></strong></span>
51
+ <span>Uploaded By: <%= @stock_bundle.uploader.try(:name) %></span>
52
+ </div>
53
+ </div>
54
+
55
+ <%= clear_tag(10) %>
56
+
57
+ <div class="visible-sm visible-xs mb-50"></div>
58
+
59
+ </div>
60
+
61
+ </div>
@@ -0,0 +1,45 @@
1
+ <div class="row">
2
+
3
+ <div class="col-md-12">
4
+
5
+ <div id="div_stock_bundle_show">
6
+ <% if @stock_bundle %>
7
+ <%= render :partial=>"vyapari/store_manager/stock_entries/stock_bundle" %>
8
+ <% end %>
9
+ </div>
10
+
11
+ <ul class="nav nav-tabs">
12
+ </ul>
13
+
14
+ <div class="tab-content">
15
+ <div class="tab-pane active">
16
+
17
+ <div id="div_stock_entry_action_buttons">
18
+ <div class="row">
19
+ <div class="col-md-6">
20
+
21
+ <%= theme_button('Import / Update Stock', 'plus', store_manager_stock_bundles_path(@store), remote: false, classes: "pull-left", btn_type: "success") %>
22
+
23
+ <%#= theme_button('Add a Single Item', 'check', new_store_manager_stock_entry_path(@store, overwrite: true), classes: "pull-left", btn_type: "success") %>
24
+
25
+ <%= theme_button('Refresh', 'refresh', store_manager_stock_entries_path(@store), classes: "pull-left ml-10", btn_type: "white") %>
26
+
27
+ </div>
28
+ <div class="col-md-6">
29
+ <%= search_form_kuppayam(StockEntry, store_manager_stock_entries_path(@store), text: @filters[:query]) %>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ <%= clear_tag(10) %>
34
+
35
+ <div id="div_stock_entry_index">
36
+ <%= render :partial=>"vyapari/store_manager/stock_entries/index" %>
37
+ </div>
38
+ <%= clear_tag(10) %>
39
+
40
+ </div>
41
+ </div>
42
+
43
+ </div>
44
+
45
+ </div>
@@ -0,0 +1,88 @@
1
+ <%
2
+ active_invoices = @terminal.invoices.active.count
3
+ draft_invoices = @terminal.invoices.draft.count
4
+ active_amount = @terminal.invoices.active.sum(:total_amount)
5
+ draft_amount = @terminal.invoices.draft.sum(:total_amount)
6
+ cash_invoices = @terminal.invoices.active.where(payment_method: :cash).count
7
+ cash_in_hand = 100
8
+ total_sales = 100
9
+ %>
10
+
11
+ <div class="row">
12
+ <div class="col-sm-3">
13
+ <%= link_to raw("<i class=\"fa-book mr-10\"></i> Create Invoice"), new_terminal_staff_invoice_path(@store), remote: true, class: "btn btn-success btn-lg btn-block", style: "height:50px" %>
14
+
15
+ <%= link_to raw("<i class=\"fa-book mr-10\"></i> Manage Invoice"), terminal_staff_invoices_path, class: "btn btn-primary btn-only-hover btn-lg btn-block", style: "height:50px" %>
16
+ </div>
17
+
18
+ <div class="col-sm-3">
19
+
20
+ <div class="xe-widget xe-counter-block xe-counter-block-white" data-suffix="k" data-count=".num" data-from="0" data-to="310" data-duration="4" data-easing="false">
21
+ <div class="xe-upper">
22
+
23
+ <div class="xe-icon">
24
+ <i class="fa-money"></i>
25
+ </div>
26
+ <div class="xe-label">
27
+ <strong class="num"><%= number_to_currency cash_in_hand, unit: "AED " %></strong>
28
+ <span>Cash In Hand</span>
29
+ </div>
30
+
31
+ </div>
32
+ <div class="xe-lower">
33
+ <div class="border"></div>
34
+
35
+ <span>Total Cash Invoices</span>
36
+ <strong><%= cash_invoices %></strong>
37
+ </div>
38
+ </div>
39
+ </div>
40
+
41
+ <div class="col-sm-3">
42
+
43
+ <div class="xe-widget xe-counter-block xe-counter-block-white" data-suffix="k" data-count=".num" data-from="0" data-to="310" data-duration="4" data-easing="false">
44
+ <div class="xe-upper">
45
+
46
+ <div class="xe-icon">
47
+ <i class="fa-floppy-o"></i>
48
+ </div>
49
+ <div class="xe-label">
50
+ <strong class="num"><%= active_invoices %></strong>
51
+ <span>Invoices Created</span>
52
+ </div>
53
+
54
+ </div>
55
+ <div class="xe-lower">
56
+ <div class="border"></div>
57
+
58
+ <span>Total Amount Billed</span>
59
+ <strong><%= number_to_currency active_amount, unit: "AED " %></strong>
60
+ </div>
61
+ </div>
62
+ </div>
63
+
64
+ <div class="col-sm-3">
65
+
66
+ <div class="xe-widget xe-counter-block xe-counter-block-gray" data-suffix="k" data-count=".num" data-from="0" data-to="310" data-duration="4" data-easing="false">
67
+ <div class="xe-upper">
68
+
69
+ <div class="xe-icon">
70
+ <i class="fa-pencil-square-o"></i>
71
+ </div>
72
+ <div class="xe-label">
73
+ <strong class="num"><%= draft_invoices %></strong>
74
+ <span>Draft Invoices</span>
75
+ </div>
76
+
77
+ </div>
78
+ <div class="xe-lower">
79
+ <div class="border"></div>
80
+
81
+ <span>Total Amount Un-Billed</span>
82
+ <strong><%= number_to_currency draft_amount, unit: "AED " %></strong>
83
+ </div>
84
+ </div>
85
+ </div>
86
+
87
+
88
+ </div>
@@ -0,0 +1,37 @@
1
+ <div class="table-responsive">
2
+ <table class="table table-hover members-table middle-align">
3
+ <thead>
4
+ <tr>
5
+ <th>Invoice Number</th>
6
+ <th>Customer</th>
7
+ <th>Date</th>
8
+ <th style="text-align: right;">Total Amount</th>
9
+ </tr>
10
+ </thead>
11
+
12
+ <tbody>
13
+ <% invoices.each_with_index do |invoice, i| %>
14
+
15
+ <tr id="tr_invoice_<%= invoice.id %>">
16
+
17
+ <td class="invoice-name"><%= link_to invoice.invoice_number, terminal_staff_invoice_path(@terminal, invoice), remote: true %></td>
18
+
19
+ <% customer_name = invoice.customer_name || "CUST-#{invoice.id}" %>
20
+ <td class="invoice-name"><%= link_to customer_name, terminal_staff_invoice_path(@terminal, invoice), remote: true %></td>
21
+
22
+ <td class="invoice-name" style="text-align: center;"><%= invoice.invoice_date.strftime("%m/%d/%Y") if invoice.invoice_date %></td>
23
+
24
+ <td class="invoice-name" style="text-align: center;"><%= number_to_currency invoice.total_amount, unit: "" %></td>
25
+
26
+ </tr>
27
+ <% end %>
28
+ </tbody>
29
+ </table>
30
+ </div>
31
+
32
+ <div class="row">
33
+ <div class="col-sm-12">
34
+ <%= paginate_kuppayam(invoices) %>
35
+ </div>
36
+ </div>
37
+
@@ -0,0 +1,36 @@
1
+ <%= render :partial=>"vyapari/terminal_staff/dashboard/counts" -%>
2
+
3
+ <div class="row">
4
+ <div class="col-md-6">
5
+ <div class="panel panel-color panel-blue">
6
+
7
+ <div class="panel-heading">
8
+ <h3 class="panel-title">Saved Invoices</h3>
9
+ </div>
10
+
11
+ <div class="panel-body">
12
+ <!-- Active Invoices -->
13
+ <% active_invoices = @terminal.invoices.active.order("created_at DESC").page(1).per(10) %>
14
+ <%= render :partial=>"vyapari/terminal_staff/dashboard/invoices", locals: { invoices: active_invoices } -%>
15
+ </div>
16
+ </div>
17
+ </div>
18
+
19
+ <div class="col-md-6">
20
+ <div class="panel panel-color panel-gray">
21
+
22
+ <div class="panel-heading">
23
+ <h3 class="panel-title">Draft Invoices</h3>
24
+ </div>
25
+
26
+ <div class="panel-body">
27
+ <!-- Draft Invoices -->
28
+ <% draft_invoices = @terminal.invoices.draft.order("created_at DESC").page(1).per(10) %>
29
+ <%= render :partial=>"vyapari/terminal_staff/dashboard/invoices", locals: { invoices: draft_invoices } -%>
30
+ </div>
31
+
32
+ </div>
33
+ </div>
34
+ </div>
35
+
36
+ <%= clear_tag(60) %>
@@ -0,0 +1,62 @@
1
+ <% status_hash = {draft: "default", active: "success", cancelled: "danger"} %>
2
+
3
+ <div id="div_invoice_show">
4
+
5
+ <div class="row">
6
+
7
+ <div class="col-md-9 col-sm-12 col-xs-12" style="border-right:1px solid #f1f1f1;">
8
+
9
+ <div class="visible-sm visible-xs mt-50"></div>
10
+
11
+ <%= theme_panel_heading(@invoice.invoice_number) %>
12
+ <%= clear_tag(5) %>
13
+ <span class="mt-15 label label-lg label-<%= status_hash[@invoice.status.to_sym] %>" style="font-size:14px;"><%= @invoice.status.titleize %></span>
14
+ <%= clear_tag(10) %>
15
+
16
+ <%= theme_panel_sub_heading(@invoice.terminal.try(:name), "#") %>
17
+
18
+ <%= theme_panel_sub_heading(@invoice.store.try(:name), "#") %>
19
+
20
+ <%= theme_panel_description(@invoice.invoice_date.strftime("%m/%d/%Y - %H:%M:%S")) %>
21
+
22
+ <%= theme_panel_description(@invoice.user.name) %>
23
+
24
+ <%= clear_tag(10) %>
25
+
26
+ <div class="visible-sm visible-xs mb-50"></div>
27
+
28
+ </div>
29
+
30
+ <div class="col-md-3 col-sm-12 col-xs-12">
31
+
32
+ <% print_link = edit_terminal_staff_invoice_path(@terminal, @invoice) %>
33
+
34
+ <% delete_link = terminal_staff_invoice_path(@terminal, @invoice) %>
35
+
36
+ <%= link_to raw("<i class=\"fa-print\"></i> Print Invoice"), print_link, :remote=>true, class: "btn btn-block btn-white" if @invoice.active? %>
37
+
38
+ <%= link_to raw("<i class=\"linecons-trash\"></i> Delete"), delete_link, method: :delete, invoice: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "btn btn-block btn-danger btn-only-hover" if @invoice.can_be_deleted? %>
39
+
40
+ <div class="visible-sm visible-xs mb-50"></div>
41
+
42
+ </div>
43
+
44
+ </div>
45
+
46
+ <%= clear_tag(50) %>
47
+
48
+ <div id="invoice_form_error">
49
+ <%= @invoice.errors[:base].to_sentence %>
50
+ <%= @line_item.errors[:base].to_sentence if @line_item %>
51
+ </div>
52
+
53
+ <div id="div_line_item_index" class="col-md-12" style="border: 1px solid #f1f1f1;">
54
+ <%= render :partial=>"vyapari/terminal_staff/line_items/index" %>
55
+ </div>
56
+
57
+ <div id="div_invoice_form" class="col-md-12 mb-10">
58
+ <%= render :partial=>"vyapari/terminal_staff/invoices/form" %>
59
+ </div>
60
+
61
+ <%= clear_tag %>
62
+ </div>
@@ -0,0 +1,120 @@
1
+ <%
2
+
3
+ url = url_for([:terminal_staff, @invoice, { terminal_id: @invoice.terminal_id}])
4
+
5
+ if @invoice.new_record?
6
+ http_method = :post
7
+ else
8
+ http_method = :put
9
+ end
10
+
11
+ %>
12
+
13
+ <%= form_for(@invoice, :url => url, :method => http_method, :html => {:id=>"form_invoice", :class=>"mb-0 form-horizontal", :invoice => "form", :method => (@invoice.new_record? ? :post : :put), :remote=>true}) do |f| %>
14
+
15
+ <div class="row">
16
+ <div class="col-md-6">
17
+
18
+ <div class="row mt-10 mb-10">
19
+ <div class="col-md-4">Customer Name:</div>
20
+ <div class="col-md-8">
21
+ <%= f.text_field(:customer_name, style: "width:100%;") %>
22
+ </div>
23
+ </div>
24
+
25
+ <div class="row mt-10 mb-10">
26
+ <div class="col-md-4">Customer Address:</div>
27
+ <div class="col-md-8">
28
+ <%= f.text_field(:customer_address, style: "width:100%;") %>
29
+ </div>
30
+ </div>
31
+
32
+ <div class="row mt-10 mb-10">
33
+ <div class="col-md-4">Payment Method:</div>
34
+ <div class="col-md-8">
35
+ <!-- Radio Button for Cash -->
36
+ <%= f.radio_button :payment_method, 'cash', class: "mr-5", :checked => true %>
37
+ <%= label :payment_method_cash, 'CASH', class: "mr-10" %>
38
+
39
+ <!-- Radio Button for Credit Card -->
40
+ <%= f.radio_button :payment_method, 'credit_card', class: "mr-5" %>
41
+ <%= label :payment_method_credit_card, 'CREDIT CARD', class: "mr-10" %>
42
+
43
+ <!-- Radio Button for Credit -->
44
+ <%= f.radio_button :payment_method, 'credit', class: "mr-5" %>
45
+ <%= label :payment_method_credit, 'CREDIT', class: "mr-10" %>
46
+
47
+ <!-- Radio Button for Cheque -->
48
+ <%= f.radio_button :payment_method, 'cheque', class: "mr-5" %>
49
+ <%= label :payment_method_cheque, 'CHEQUE', class: "mr-10" %>
50
+ </div>
51
+ </div>
52
+
53
+ <div class="row mt-10 mb-10">
54
+ <div class="col-md-4">Credit Card Number:</div>
55
+ <div class="col-md-8">
56
+ <%= f.text_field(:customer_name, style: ";width:100%;") %>
57
+ </div>
58
+ </div>
59
+
60
+ <div class="row mt-10 mb-10">
61
+ <div class="col-md-4">Notes:</div>
62
+ <div class="col-md-8">
63
+
64
+ <%= f.text_area(:notes, style: "width:100%;height:80px;") %>
65
+
66
+ <%#= theme_form_field(@invoice, :notes, required: true, form_style: "top-bottom", html_options: {type: :textarea, style: "height: 100px;"}) %>
67
+
68
+ <!-- <div class="form-group "><label class=" control-label mb-20"><b>Notes</b><span class="text-color-red ml-10 mr-5 pull-right">*</span></label><div><textarea name="invoice[notes]" id="inp_notes" type="textarea" style="height: 100px;" class="text input form-control" place_holder=""></textarea></div></div> -->
69
+ </div>
70
+ </div>
71
+
72
+ </div>
73
+
74
+ <div class="col-md-6">
75
+
76
+ <div class="row mt-10 mb-10">
77
+ <div class="col-md-4 col-md-offset-2">Discount:</div>
78
+ <div class="col-md-4">
79
+ <%= f.text_field(:discount, style: "text-align: right;width:100%;") %>
80
+ </div>
81
+ </div>
82
+
83
+ <div class="row mt-10 mb-10" style="font-weight: bold;">
84
+ <div class="col-md-4 col-md-offset-2">Net Total:</div>
85
+ <div class="col-md-4" style="text-align: right">
86
+ <%= number_to_currency @invoice.net_total_amount, unit: "AED " %>
87
+ </div>
88
+ </div>
89
+
90
+ <div class="row mt-10 mb-10">
91
+ <div class="col-md-4 col-md-offset-2">Money Taken:</div>
92
+ <div class="col-md-4">
93
+ <%= f.text_field(:money_taken, style: "text-align: right;width:100%;") %>
94
+ </div>
95
+ </div>
96
+
97
+ <div class="row mt-10 mb-10">
98
+ <div class="col-md-4 col-md-offset-2">Customer Balance:</div>
99
+ <div class="col-md-4" style="text-align: right">
100
+ <%= number_to_currency @invoice.balance_to_give, unit: "AED " %>
101
+ </div>
102
+ </div>
103
+
104
+ </div>
105
+
106
+ </div>
107
+
108
+ <div class="form-group ">
109
+
110
+ <%= submit_tag("Save", :class=>"btn btn-info btn-lg pull-right ml-10", style: "width: 300px;") %>
111
+
112
+ <%= link_to "Close", "#", onclick: "closeLargeModal();", class: "btn btn-gray btn-lg pull-right", style: "width: 100px;" %>
113
+
114
+ </div>
115
+ <%= clear_tag(10) %>
116
+
117
+ </div>
118
+
119
+ <% end %>
120
+
@@ -0,0 +1,64 @@
1
+ <div class="table-responsive">
2
+ <table class="table table-hover members-table middle-align">
3
+ <thead>
4
+ <tr>
5
+ <th style="text-align: center;width:60px">#</th>
6
+ <th>Invoice Number</th>
7
+ <th style="width:15%;text-align: center;">Date</th>
8
+ <th style="text-align: left;">User</th>
9
+ <th style="text-align: center;">Payment Method</th>
10
+ <th style="text-align: right;">Total Amount</th>
11
+ <th>Status</th>
12
+ <th style="text-align: center;">Actions</th>
13
+ </tr>
14
+ </thead>
15
+
16
+ <tbody>
17
+ <% @invoices.each_with_index do |invoice, i| %>
18
+
19
+ <% edit_link = edit_terminal_staff_invoice_path(@terminal, invoice) %>
20
+
21
+ <% delete_link = terminal_staff_invoices_path(@terminal, invoice) %>
22
+
23
+ <tr id="tr_invoice_<%= invoice.id %>">
24
+
25
+ <th scope="row" style="text-align: center;">
26
+ <% if i < 0 %>
27
+ <i class="fa fa-check text-success"></i>
28
+ <% else %>
29
+ <%= i + 1 + (@per_page.to_i * (@current_page.to_i - 1)) %>
30
+ <% end %>
31
+ </th>
32
+
33
+ <td class="invoice-name"><%= link_to invoice.invoice_number, terminal_staff_invoice_path(@terminal, invoice), remote: true %></td>
34
+
35
+ <td class="invoice-name" style="text-align: center;"><%= invoice.invoice_date.strftime("%m/%d/%Y") if invoice.invoice_date %></td>
36
+
37
+ <td class="invoice-name" style="text-align: center;"><%= invoice.user.display_name if invoice.user %></td>
38
+
39
+ <td class="invoice-name" style="text-align: center;"><%= invoice.display_payment_method %></td>
40
+
41
+ <td class="invoice-name" style="text-align: center;"><%= number_to_currency invoice.total_amount, unit: "" %></td>
42
+
43
+ <td class="invoice-name" style="text-align: center;"><%= invoice.display_status %></td>
44
+
45
+ <td class="action-links" style="width:10%">
46
+
47
+ <%= link_to raw("<i class=\"linecons-pencil\"></i> Edit"), edit_link, :remote=>true, class: "edit" %>
48
+
49
+ <%= link_to raw("<i class=\"linecons-trash\"></i> Delete"), delete_link, method: :delete, invoice: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" %>
50
+
51
+ </td>
52
+
53
+ </tr>
54
+ <% end %>
55
+ </tbody>
56
+ </table>
57
+ </div>
58
+
59
+ <div class="row">
60
+ <div class="col-sm-12">
61
+ <%= paginate_kuppayam(@invoices) %>
62
+ </div>
63
+ </div>
64
+
@@ -0,0 +1,33 @@
1
+ <% edit_link = edit_terminal_staff_invoice_path(@terminal, invoice) %>
2
+
3
+ <% delete_link = terminal_staff_invoices_path(@terminal, invoice) %>
4
+
5
+ <tr id="tr_stock_entry_<%= stock_entry.id %>">
6
+
7
+ <th scope="row" style="text-align: center;">
8
+ <% if i < 0 %>
9
+ <i class="fa fa-check text-success"></i>
10
+ <% else %>
11
+ <%= i + 1 + (@per_page.to_i * (@current_page.to_i - 1)) %>
12
+ <% end %>
13
+ </th>
14
+
15
+ <td class="invoice-name"><%= link_to invoice.invoice_number, terminal_staff_invoice_path(@terminal, invoice), remote: true %></td>
16
+
17
+ <td class="invoice-name" style="text-align: center;"><%= @invoice.invoice_date.strftime("%m/%d/%Y - %H:%M:%S") if @invoice.invoice_date %></td>
18
+
19
+ <td class="invoice-name" style="text-align: center;"><%= @invoice.user.display_payment_method %></td>
20
+
21
+ <td class="invoice-name" style="text-align: center;"><%= number_to_currency invoice.total_amount, unit: "" %></td>
22
+
23
+ <td class="invoice-name"><%= invoice.display_status %></td>
24
+
25
+ <td class="action-links" style="width:10%">
26
+
27
+ <%= link_to raw("<i class=\"linecons-pencil\"></i> Edit"), edit_link, :remote=>true, class: "edit" %>
28
+
29
+ <%= link_to raw("<i class=\"linecons-trash\"></i> Delete"), delete_link, method: :delete, invoice: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" %>
30
+
31
+ </td>
32
+
33
+ </tr>