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.
- checksums.yaml +4 -4
- data/app/assets/images/vyapari/sample_stock_bundle.csv +1 -0
- data/app/controllers/vyapari/admin/base_controller.rb +10 -0
- data/app/controllers/vyapari/admin/brands_controller.rb +99 -0
- data/app/controllers/vyapari/admin/categories_controller.rb +115 -0
- data/app/controllers/vyapari/admin/countries_controller.rb +2 -2
- data/app/controllers/vyapari/admin/dashboard_controller.rb +3 -1
- data/app/controllers/vyapari/admin/exchange_rates_controller.rb +2 -2
- data/app/controllers/vyapari/admin/products_controller.rb +79 -0
- data/app/controllers/vyapari/admin/regions_controller.rb +1 -1
- data/app/controllers/vyapari/admin/resource_controller.rb +1 -0
- data/app/controllers/vyapari/admin/stores_controller.rb +67 -0
- data/app/controllers/vyapari/admin/suppliers_controller.rb +67 -0
- data/app/controllers/vyapari/admin/terminals_controller.rb +150 -0
- data/app/controllers/vyapari/application_controller.rb +12 -0
- data/app/controllers/vyapari/store_manager/base_controller.rb +28 -0
- data/app/controllers/vyapari/store_manager/dashboard_controller.rb +30 -0
- data/app/controllers/vyapari/store_manager/resource_controller.rb +17 -0
- data/app/controllers/vyapari/store_manager/stock_bundles_controller.rb +206 -0
- data/app/controllers/vyapari/store_manager/stock_entries_controller.rb +161 -0
- data/app/controllers/vyapari/terminal_staff/base_controller.rb +29 -0
- data/app/controllers/vyapari/terminal_staff/dashboard_controller.rb +29 -0
- data/app/controllers/vyapari/terminal_staff/invoices_controller.rb +138 -0
- data/app/controllers/vyapari/terminal_staff/line_items_controller.rb +123 -0
- data/app/controllers/vyapari/terminal_staff/resource_controller.rb +17 -0
- data/app/controllers/vyapari/user_dashboard_controller.rb +31 -0
- data/app/models/brand.rb +63 -10
- data/app/models/category.rb +60 -16
- data/app/models/country.rb +27 -5
- data/app/models/exchange_rate.rb +31 -6
- data/app/models/image/brand_image.rb +3 -0
- data/app/models/image/category_image.rb +3 -0
- data/app/models/image/product_image.rb +3 -0
- data/app/models/invoice.rb +223 -0
- data/app/models/line_item.rb +206 -0
- data/app/models/product.rb +67 -13
- data/app/models/region.rb +26 -3
- data/app/models/stock_bundle.rb +249 -0
- data/app/models/stock_entry.rb +271 -0
- data/app/models/store.rb +216 -0
- data/app/models/supplier.rb +85 -0
- data/app/models/terminal.rb +158 -0
- data/app/models/vyapari/application_record.rb +4 -0
- data/app/uploaders/brand_image_uploader.rb +14 -0
- data/app/uploaders/category_image_uploader.rb +14 -0
- data/app/uploaders/product_image_uploader.rb +14 -0
- data/app/uploaders/stock_bundle_uploader.rb +10 -0
- data/app/views/layouts/kuppayam/_footer.html.erb +1 -1
- data/app/views/layouts/kuppayam/_sidebar.html.erb +45 -44
- data/app/views/layouts/vyapari/_store_manager_menu.html.erb +107 -0
- data/app/views/layouts/vyapari/_terminal_staff_menu.html.erb +103 -0
- data/app/views/layouts/vyapari/store_manager.html.erb +112 -0
- data/app/views/layouts/vyapari/terminal_staff.html.erb +116 -0
- data/app/views/vyapari/admin/brands/_form.html.erb +23 -0
- data/app/views/vyapari/admin/brands/_index.html.erb +89 -0
- data/app/views/vyapari/admin/brands/_row.html.erb +63 -0
- data/app/views/vyapari/admin/brands/_show.html.erb +104 -0
- data/app/views/vyapari/admin/brands/index.html.erb +48 -0
- data/app/views/vyapari/admin/categories/_form.html.erb +28 -0
- data/app/views/vyapari/admin/categories/_index.html.erb +101 -0
- data/app/views/vyapari/admin/categories/_row.html.erb +69 -0
- data/app/views/vyapari/admin/categories/_show.html.erb +115 -0
- data/app/views/vyapari/admin/{users → categories}/index.html.erb +8 -24
- data/app/views/vyapari/admin/countries/_index.html.erb +1 -1
- data/app/views/vyapari/admin/countries/index.html.erb +19 -3
- data/app/views/vyapari/admin/exchange_rates/_form.html.erb +3 -4
- data/app/views/vyapari/admin/exchange_rates/_index.html.erb +7 -7
- data/app/views/vyapari/admin/exchange_rates/_row.html.erb +3 -3
- data/app/views/vyapari/admin/exchange_rates/_show.html.erb +1 -0
- data/app/views/vyapari/admin/exchange_rates/index.html.erb +19 -3
- data/app/views/vyapari/admin/products/_form.html.erb +32 -0
- data/app/views/vyapari/admin/products/_index.html.erb +58 -0
- data/app/views/vyapari/admin/products/_row.html.erb +30 -0
- data/app/views/vyapari/admin/products/_show.html.erb +81 -0
- data/app/views/vyapari/admin/products/index.html.erb +48 -0
- data/app/views/vyapari/admin/regions/_index.html.erb +1 -1
- data/app/views/vyapari/admin/regions/index.html.erb +19 -3
- data/app/views/vyapari/admin/stores/_form.html.erb +37 -0
- data/app/views/vyapari/admin/stores/_index.html.erb +84 -0
- data/app/views/vyapari/admin/stores/_row.html.erb +55 -0
- data/app/views/vyapari/admin/stores/_show.html.erb +110 -0
- data/app/views/vyapari/admin/stores/index.html.erb +48 -0
- data/app/views/vyapari/admin/suppliers/_form.html.erb +32 -0
- data/app/views/vyapari/admin/suppliers/_index.html.erb +58 -0
- data/app/views/vyapari/admin/suppliers/_row.html.erb +30 -0
- data/app/views/vyapari/admin/suppliers/_show.html.erb +81 -0
- data/app/views/vyapari/admin/suppliers/index.html.erb +48 -0
- data/app/views/vyapari/admin/terminals/_form.html.erb +24 -0
- data/app/views/vyapari/admin/terminals/_index.html.erb +75 -0
- data/app/views/vyapari/admin/terminals/_row.html.erb +49 -0
- data/app/views/vyapari/admin/terminals/_show.html.erb +74 -0
- data/app/views/vyapari/store_manager/dashboard/index.html.erb +93 -0
- data/app/views/vyapari/store_manager/stock_bundles/_form.html.erb +99 -0
- data/app/views/vyapari/store_manager/stock_bundles/_index.html.erb +74 -0
- data/app/views/vyapari/store_manager/stock_bundles/_row.html.erb +44 -0
- data/app/views/vyapari/store_manager/stock_bundles/_show.html.erb +110 -0
- data/app/views/vyapari/store_manager/stock_bundles/create.html.erb +57 -0
- data/app/views/vyapari/store_manager/stock_bundles/index.html.erb +36 -0
- data/app/views/vyapari/store_manager/stock_bundles/update.html.erb +57 -0
- data/app/views/vyapari/store_manager/stock_entries/_form.html.erb +50 -0
- data/app/views/vyapari/store_manager/stock_entries/_index.html.erb +80 -0
- data/app/views/vyapari/store_manager/stock_entries/_row.html.erb +33 -0
- data/app/views/vyapari/store_manager/stock_entries/_show.html.erb +110 -0
- data/app/views/vyapari/store_manager/stock_entries/_stock_bundle.html.erb +61 -0
- data/app/views/vyapari/store_manager/stock_entries/index.html.erb +45 -0
- data/app/views/vyapari/terminal_staff/dashboard/_counts.html.erb +88 -0
- data/app/views/vyapari/terminal_staff/dashboard/_invoices.html.erb +37 -0
- data/app/views/vyapari/terminal_staff/dashboard/index.html.erb +36 -0
- data/app/views/vyapari/terminal_staff/invoices/_draft.html.erb +62 -0
- data/app/views/vyapari/terminal_staff/invoices/_form.html.erb +120 -0
- data/app/views/vyapari/terminal_staff/invoices/_index.html.erb +64 -0
- data/app/views/vyapari/terminal_staff/invoices/_row.html.erb +33 -0
- data/app/views/vyapari/terminal_staff/invoices/_show.html.erb +171 -0
- data/app/views/vyapari/terminal_staff/invoices/index.html.erb +37 -0
- data/app/views/vyapari/terminal_staff/invoices/new.js.erb +13 -0
- data/app/views/vyapari/terminal_staff/invoices/show.html.erb +1 -0
- data/app/views/vyapari/terminal_staff/line_items/_form.html.erb +40 -0
- data/app/views/vyapari/terminal_staff/line_items/_index.html.erb +94 -0
- data/app/views/vyapari/terminal_staff/line_items/create.js.erb +34 -0
- data/app/views/vyapari/terminal_staff/line_items/destroy.js.erb +25 -0
- data/app/views/vyapari/terminal_staff/stores/index.html.erb +24 -0
- data/app/views/vyapari/user_dashboard/index.html.erb +51 -0
- data/config/routes.rb +62 -5
- data/db/import_data/brands.csv +7 -0
- data/db/import_data/categories.csv +12 -0
- data/db/import_data/countries.csv +1 -0
- data/db/import_data/dummy/brands.csv +7 -0
- data/db/import_data/dummy/categories.csv +12 -0
- data/db/import_data/dummy/countries.csv +1 -0
- data/db/import_data/dummy/exchange_rates.csv +5 -0
- data/db/import_data/dummy/products-copy.csv +1 -0
- data/db/import_data/dummy/products.csv +1 -0
- data/db/import_data/dummy/products.xlsx +0 -0
- data/db/import_data/dummy/regions.csv +13 -0
- data/db/import_data/dummy/stores.csv +10 -0
- data/db/import_data/dummy/suppliers.csv +14 -0
- data/db/import_data/dummy/terminals.csv +11 -0
- data/db/import_data/exchange_rates.csv +5 -0
- data/db/import_data/regions.csv +13 -0
- data/db/import_data/stores.csv +3 -0
- data/db/import_data/suppliers.csv +14 -0
- data/db/import_data/terminals.csv +3 -0
- data/db/migrate/20170000000200_create_exchange_rates.rb +3 -2
- data/db/migrate/20170000000203_create_contacts.rb +22 -0
- data/db/migrate/20170000000204_create_bank_accounts.rb +21 -0
- data/db/migrate/20170000000205_create_suppliers.rb +18 -0
- data/db/migrate/20170000000206_create_stores.rb +21 -0
- data/db/migrate/20170000000207_create_terminals.rb +18 -0
- data/db/migrate/20170000000210_create_brands.rb +14 -0
- data/db/migrate/20170000000211_create_categories.rb +22 -0
- data/db/migrate/20170000000212_create_products.rb +29 -0
- data/db/migrate/20170000000213_create_invoices.rb +58 -0
- data/db/migrate/20170000000215_create_stock_bundles.rb +17 -0
- data/db/migrate/20170000000216_create_stock_entries.rb +20 -0
- data/db/sample_reports/products.xlsx +0 -0
- data/lib/tasks/vyapari/all.rake +73 -0
- data/lib/vyapari/version.rb +1 -1
- metadata +150 -15
- data/app/controllers/vyapari/admin/users_controller.rb +0 -130
- data/app/views/vyapari/admin/users/_form.html.erb +0 -39
- data/app/views/vyapari/admin/users/_index.html.erb +0 -101
- data/app/views/vyapari/admin/users/_row.html.erb +0 -72
- data/app/views/vyapari/admin/users/_show.html.erb +0 -199
- data/lib/tasks/vyapari_tasks.rake +0 -4
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
<div class="panel panel-default">
|
|
2
|
+
<div class="panel-heading hidden-print">Invoice</div>
|
|
3
|
+
<div class="panel-body">
|
|
4
|
+
|
|
5
|
+
<section class="invoice-env">
|
|
6
|
+
|
|
7
|
+
<!-- Invoice header -->
|
|
8
|
+
<div class="invoice-header">
|
|
9
|
+
|
|
10
|
+
<!-- Invoice Options Buttons -->
|
|
11
|
+
<div class="invoice-options hidden-print">
|
|
12
|
+
<a href="#" class="btn btn-block btn-gray btn-icon btn-icon-standalone btn-icon-standalone-right text-left">
|
|
13
|
+
<i class="fa-envelope-o"></i>
|
|
14
|
+
<span>Send</span>
|
|
15
|
+
</a>
|
|
16
|
+
|
|
17
|
+
<a href="#" class="btn btn-block btn-secondary btn-icon btn-icon-standalone btn-icon-standalone-right btn-single text-left">
|
|
18
|
+
<i class="fa-print"></i>
|
|
19
|
+
<span>Print</span>
|
|
20
|
+
</a>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<!-- Invoice Data Header -->
|
|
24
|
+
<div class="invoice-logo">
|
|
25
|
+
|
|
26
|
+
<a href="#" class="logo">
|
|
27
|
+
<img src="assets/images/logo-white-bg.png" class="img-responsive" />
|
|
28
|
+
</a>
|
|
29
|
+
|
|
30
|
+
<ul class="list-unstyled">
|
|
31
|
+
<li class="upper">Invoice No. <strong>#5652256</strong></li>
|
|
32
|
+
<li>06 December 14</li>
|
|
33
|
+
<li>Prishtinë, Kosovo</li>
|
|
34
|
+
</ul>
|
|
35
|
+
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
<!-- Client and Payment Details -->
|
|
42
|
+
<div class="invoice-details">
|
|
43
|
+
|
|
44
|
+
<div class="invoice-client-info">
|
|
45
|
+
<strong>Client</strong>
|
|
46
|
+
|
|
47
|
+
<ul class="list-unstyled">
|
|
48
|
+
<li>John Doe </li>
|
|
49
|
+
<li>Mr Nilson Otto </li>
|
|
50
|
+
<li>FoodMaster Ltd</li>
|
|
51
|
+
</ul>
|
|
52
|
+
|
|
53
|
+
<ul class="list-unstyled">
|
|
54
|
+
<li>1982 OOP </li>
|
|
55
|
+
<li>Madrid, Spain </li>
|
|
56
|
+
<li>+1 (151) 225-4183</li>
|
|
57
|
+
</ul>
|
|
58
|
+
</div>
|
|
59
|
+
|
|
60
|
+
<div class="invoice-payment-info">
|
|
61
|
+
<strong>Payment Details</strong>
|
|
62
|
+
|
|
63
|
+
<ul class="list-unstyled">
|
|
64
|
+
<li>V.A.T Reg #: <strong>542554(DEMO)78</strong></li>
|
|
65
|
+
<li>Account Name: <strong>FoodMaster Ltd</strong> </li>
|
|
66
|
+
<li>SWIFT code: <strong>45454DEMO545DEMO</strong></li>
|
|
67
|
+
</ul>
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
</div>
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
<!-- Invoice Entries -->
|
|
74
|
+
<table class="table table-bordered">
|
|
75
|
+
<thead>
|
|
76
|
+
<tr class="no-borders">
|
|
77
|
+
<th class="text-center hidden-xs">#</th>
|
|
78
|
+
<th width="60%" class="text-center">Product</th>
|
|
79
|
+
<th class="text-center hidden-xs">Quantity</th>
|
|
80
|
+
<th class="text-center">Price</th>
|
|
81
|
+
</tr>
|
|
82
|
+
</thead>
|
|
83
|
+
|
|
84
|
+
<tbody>
|
|
85
|
+
<tr>
|
|
86
|
+
<td class="text-center hidden-xs">1</td>
|
|
87
|
+
<td>On am we offices expense thought</td>
|
|
88
|
+
<td class="text-center hidden-xs">1</td>
|
|
89
|
+
<td class="text-right text-primary text-bold">$1,290</td>
|
|
90
|
+
</tr>
|
|
91
|
+
|
|
92
|
+
<tr>
|
|
93
|
+
<td class="text-center hidden-xs">2</td>
|
|
94
|
+
<td>Up do view time they shot</td>
|
|
95
|
+
<td class="text-center hidden-xs">1</td>
|
|
96
|
+
<td class="text-right text-primary text-bold">$400</td>
|
|
97
|
+
</tr>
|
|
98
|
+
|
|
99
|
+
<tr>
|
|
100
|
+
<td class="text-center hidden-xs">3</td>
|
|
101
|
+
<td>Way ham unwilling not breakfast</td>
|
|
102
|
+
<td class="text-center hidden-xs">1</td>
|
|
103
|
+
<td class="text-right text-primary text-bold">$550</td>
|
|
104
|
+
</tr>
|
|
105
|
+
|
|
106
|
+
<tr>
|
|
107
|
+
<td class="text-center hidden-xs">4</td>
|
|
108
|
+
<td>Songs to an blush woman be sorry</td>
|
|
109
|
+
<td class="text-center hidden-xs">1</td>
|
|
110
|
+
<td class="text-right text-primary text-bold">$4020</td>
|
|
111
|
+
</tr>
|
|
112
|
+
|
|
113
|
+
<tr>
|
|
114
|
+
<td class="text-center hidden-xs">5</td>
|
|
115
|
+
<td>Luckily offered article led lasting</td>
|
|
116
|
+
<td class="text-center hidden-xs">1</td>
|
|
117
|
+
<td class="text-right text-primary text-bold">$87</td>
|
|
118
|
+
</tr>
|
|
119
|
+
|
|
120
|
+
<tr>
|
|
121
|
+
<td class="text-center hidden-xs">6</td>
|
|
122
|
+
<td>Of as by belonging therefore suspicion</td>
|
|
123
|
+
<td class="text-center hidden-xs">1</td>
|
|
124
|
+
<td class="text-right text-primary text-bold">$140</td>
|
|
125
|
+
</tr>
|
|
126
|
+
</tbody>
|
|
127
|
+
</table>
|
|
128
|
+
|
|
129
|
+
<!-- Invoice Subtotals and Totals -->
|
|
130
|
+
<div class="invoice-totals">
|
|
131
|
+
|
|
132
|
+
<div class="invoice-subtotals-totals">
|
|
133
|
+
<span>
|
|
134
|
+
Sub - Total amount:
|
|
135
|
+
<strong>$6,487</strong>
|
|
136
|
+
</span>
|
|
137
|
+
|
|
138
|
+
<span>
|
|
139
|
+
VAT:
|
|
140
|
+
<strong>12.9%</strong>
|
|
141
|
+
</span>
|
|
142
|
+
|
|
143
|
+
<span>
|
|
144
|
+
Discount:
|
|
145
|
+
<strong>-----</strong>
|
|
146
|
+
</span>
|
|
147
|
+
|
|
148
|
+
<hr />
|
|
149
|
+
|
|
150
|
+
<span>
|
|
151
|
+
Grand Total:
|
|
152
|
+
<strong>$7,304</strong>
|
|
153
|
+
</span>
|
|
154
|
+
</div>
|
|
155
|
+
|
|
156
|
+
<div class="invoice-bill-info">
|
|
157
|
+
<address>
|
|
158
|
+
795 Park Ave, Suite 120<br />
|
|
159
|
+
San Francisco, CA 94107<br />
|
|
160
|
+
P: (234) 145-1810 <br />
|
|
161
|
+
Full Name <br />
|
|
162
|
+
<a href="#">first.last@email.com</a>
|
|
163
|
+
</address>
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
</div>
|
|
167
|
+
|
|
168
|
+
</section>
|
|
169
|
+
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<div class="row">
|
|
2
|
+
|
|
3
|
+
<div class="col-md-12">
|
|
4
|
+
|
|
5
|
+
<ul class="nav nav-tabs">
|
|
6
|
+
</ul>
|
|
7
|
+
|
|
8
|
+
<div class="tab-content">
|
|
9
|
+
<div class="tab-pane active">
|
|
10
|
+
|
|
11
|
+
<div id="div_invoice_action_buttons">
|
|
12
|
+
<div class="row">
|
|
13
|
+
<div class="col-md-6">
|
|
14
|
+
|
|
15
|
+
<%= theme_button('Create Invoice', 'plus', terminal_staff_invoices_path(@terminal), remote: false, classes: "pull-left", btn_type: "success") %>
|
|
16
|
+
|
|
17
|
+
<%= theme_button('Refresh', 'refresh', terminal_staff_invoices_path(@terminal), classes: "pull-left ml-10", btn_type: "white") %>
|
|
18
|
+
|
|
19
|
+
</div>
|
|
20
|
+
<div class="col-md-6">
|
|
21
|
+
<%= search_form_kuppayam(Invoice, terminal_staff_invoices_path(@terminal), text: @filters[:query]) %>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
<%= clear_tag(10) %>
|
|
26
|
+
|
|
27
|
+
<div id="div_invoice_index">
|
|
28
|
+
<%= render :partial=>"vyapari/terminal_staff/invoices/index" %>
|
|
29
|
+
</div>
|
|
30
|
+
<%= clear_tag(10) %>
|
|
31
|
+
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
</div>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<% if @invoice %>
|
|
2
|
+
|
|
3
|
+
// Show the details in the large modal
|
|
4
|
+
var heading = "Create Invoice";
|
|
5
|
+
var bodyContent = "<%= escape_javascript(render(:partial=>"#{@resource_options[:view_path]}/draft")) %>";
|
|
6
|
+
showLargeModal(heading, bodyContent, false);
|
|
7
|
+
|
|
8
|
+
<% else %>
|
|
9
|
+
|
|
10
|
+
// Showing Growl Like Message
|
|
11
|
+
notifyError("<%= escape_javascript(@notification[:title]) %>", "<%= escape_javascript(raw(@notification[:message])) %>");
|
|
12
|
+
|
|
13
|
+
<% end %>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= render :partial=>"vyapari/terminal_staff/invoices/show" %>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<%
|
|
2
|
+
|
|
3
|
+
url = url_for([:terminal_staff, @invoice, line_item, { terminal_id: @invoice.terminal_id}])
|
|
4
|
+
|
|
5
|
+
if line_item.new_record?
|
|
6
|
+
http_method = :post
|
|
7
|
+
else
|
|
8
|
+
http_method = :put
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
%>
|
|
12
|
+
|
|
13
|
+
<%= form_for(line_item, :url => url, :method => http_method, :html => {:id=>"form_line_item", :class=>"mb-0 form-horizontal", :role => "form", :method => (line_item.new_record? ? :post : :put), :remote=>true}) do |f| %>
|
|
14
|
+
|
|
15
|
+
<div class="row ili">
|
|
16
|
+
|
|
17
|
+
<div class="col-md-1 li-form li-sl li-center" style="height:52px;"> </div>
|
|
18
|
+
|
|
19
|
+
<div class="col-md-4 li-form li-item-name li-center"><%= f.text_field(:product_id, style: "text-align: left") %></div>
|
|
20
|
+
|
|
21
|
+
<div class="col-md-2 li-form li-quantity li-center"><%= f.text_field(:quantity, style: "text-align: center") %></div>
|
|
22
|
+
|
|
23
|
+
<div class="col-md-2 li-action li-form"><%= submit_tag("Save", :class=>"btn btn-primary btn-xs btn-block", style: "margin:0px;") %></div>
|
|
24
|
+
|
|
25
|
+
<div class="col-md-3"></div>
|
|
26
|
+
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<% end %>
|
|
30
|
+
|
|
31
|
+
<script type="text/javascript">
|
|
32
|
+
$( "#div_line_item_form .li-item-name input").focus();
|
|
33
|
+
|
|
34
|
+
$('#div_line_item_form input').keydown(function (e) {
|
|
35
|
+
if (e.which === 13) {
|
|
36
|
+
var index = $('#div_line_item_form input').index(this) + 1;
|
|
37
|
+
$('#div_line_item_form input').eq(index).focus();
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
</script>
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<style type="text/css">
|
|
2
|
+
.ili .li-heading {
|
|
3
|
+
background-color: #4b4b4b;
|
|
4
|
+
color: #fff;
|
|
5
|
+
border: 1px solid #FFF;
|
|
6
|
+
padding: 10px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.ili .li-display {
|
|
10
|
+
background-color: #f1f1f1;
|
|
11
|
+
color: #4b4b4b;
|
|
12
|
+
border: 1px solid #FFF;
|
|
13
|
+
padding: 10px;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.ili .li-form {
|
|
17
|
+
background-color: #f1f1f1;
|
|
18
|
+
color: #4b4b4b;
|
|
19
|
+
border: 1px solid #FFF;
|
|
20
|
+
padding: 10px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.ili .li-form input {
|
|
24
|
+
width:95%;
|
|
25
|
+
height: 30px;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.ili .li-center {text-align: center;}
|
|
29
|
+
.ili .li-left {text-align: left;}
|
|
30
|
+
.ili .li-right {text-align: right;}
|
|
31
|
+
|
|
32
|
+
/*.ili .li-sl {width: 10%;}
|
|
33
|
+
.ili .li-item-name {}
|
|
34
|
+
.ili .li-quantity {width: 10%;}
|
|
35
|
+
.ili .li-rate {width: 10%;}
|
|
36
|
+
.ili .li-action {width: 10%;}*/
|
|
37
|
+
|
|
38
|
+
</style>
|
|
39
|
+
|
|
40
|
+
<div class="row ili" id="div_line_item_header">
|
|
41
|
+
<div class="col-md-1 li-heading li-sl li-center">#</div>
|
|
42
|
+
<div class="col-md-4 li-heading li-item-name li-left">Item</div>
|
|
43
|
+
<div class="col-md-2 li-heading li-quantity li-center">Quantity</div>
|
|
44
|
+
<div class="col-md-2 li-rate li-heading li-right">Rate</div>
|
|
45
|
+
<div class="col-md-2 li-rate li-heading li-right">Total</div>
|
|
46
|
+
<div class="col-md-1 li-action li-heading li-center"> </div>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<% @invoice.line_items.each_with_index do |line_item, i| %>
|
|
50
|
+
|
|
51
|
+
<div class="row ili" id="div_line_item_<%= line_item.id %>">
|
|
52
|
+
|
|
53
|
+
<%# edit_link = edit_terminal_staff_invoice_line_item_path(@invoice, line_item, terminal_id: @terminal.id) %>
|
|
54
|
+
|
|
55
|
+
<% delete_link = terminal_staff_invoice_line_item_path(@invoice, line_item, terminal_id: @terminal.id) %>
|
|
56
|
+
|
|
57
|
+
<div class="col-md-1 li-sl li-display">
|
|
58
|
+
<% if i < 0 %>
|
|
59
|
+
<i class="fa fa-check text-success"></i>
|
|
60
|
+
<% else %>
|
|
61
|
+
<%= i + 1 + (@per_page.to_i * (@current_page.to_i - 1)) %>
|
|
62
|
+
<% end %>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<div class="col-md-4 li-item-name li-display li-left"><%= line_item.display_name %></div>
|
|
66
|
+
|
|
67
|
+
<div class="col-md-2 li-quantity li-display li-center"><%= line_item.quantity %></div>
|
|
68
|
+
|
|
69
|
+
<div class="col-md-2 li-rate li-display li-right"><%= number_to_currency line_item.rate, unit: "" %></div>
|
|
70
|
+
|
|
71
|
+
<div class="col-md-2 li-rate li-display li-right"><%= number_to_currency (line_item.total_amount) , unit: "" %></div>
|
|
72
|
+
|
|
73
|
+
<div class="col-md-1 li-action li-display">
|
|
74
|
+
<%#= link_to raw("<i class=\"linecons-pencil\"></i>"), edit_link, :remote=>true, class: "edit" %>
|
|
75
|
+
|
|
76
|
+
<%= link_to raw("<i class=\"linecons-trash\"></i>"), delete_link, method: :delete, line_item: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" %>
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
<% end %>
|
|
82
|
+
|
|
83
|
+
<div id="div_line_item_form">
|
|
84
|
+
<%= render :partial=>"vyapari/terminal_staff/line_items/form", locals: {line_item: LineItem.new(quantity: 1) } %>
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
<div class="row mt-10 mb-10" style="font-weight: bold;">
|
|
88
|
+
<div class="col-md-2 col-md-offset-7">Gross Total:</div>
|
|
89
|
+
<div class="col-md-2" style="text-align: right">
|
|
90
|
+
<%= number_to_currency @invoice.total_amount, unit: "" %>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
|
|
94
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<% if @line_item.errors.blank? %>
|
|
2
|
+
|
|
3
|
+
// Refreshing the line items and invoice form
|
|
4
|
+
$("#div_line_item_index").html("<%= escape_javascript(render(:partial=>"/vyapari/terminal_staff/line_items/index")) %>");
|
|
5
|
+
$("#div_invoice_form").html("<%= escape_javascript(render(:partial=>"/vyapari/terminal_staff/invoices/form")) %>");
|
|
6
|
+
|
|
7
|
+
// Highlighting the newly saved line item
|
|
8
|
+
$("#div_line_item_<%= @line_item.id %>").css("background-color", "#fffddd");
|
|
9
|
+
|
|
10
|
+
// Hide errors
|
|
11
|
+
$("#invoice_form_error").hide();
|
|
12
|
+
|
|
13
|
+
// Showing Growl Like Message
|
|
14
|
+
notifySuccess("<%= escape_javascript(@notification[:title]) %>", "<%= escape_javascript(@notification[:message]) %>");
|
|
15
|
+
|
|
16
|
+
<% else %>
|
|
17
|
+
|
|
18
|
+
// Highlighting the line item in the table in red color
|
|
19
|
+
$("#div_line_item_<%= @line_item.id %>").css("background-color", "red");
|
|
20
|
+
|
|
21
|
+
// Show Main Error Message on the form
|
|
22
|
+
<% error_message = content_tag(:div, raw(@notification[:message]), class: "alert alert-danger mt-20") %>
|
|
23
|
+
$("#invoice_form_error").html("<%= escape_javascript(error_message) %>");
|
|
24
|
+
$("#invoice_form_error").show();
|
|
25
|
+
|
|
26
|
+
// Set the mouse focus on the EAN input field
|
|
27
|
+
$( "#div_line_item_form .li-item-name input").focus().select();
|
|
28
|
+
|
|
29
|
+
// Showing Growl Like Message
|
|
30
|
+
notifyError("<%= escape_javascript(@notification[:title]) %>", "<%= escape_javascript(raw(@notification[:message])) %>");
|
|
31
|
+
|
|
32
|
+
<% end %>
|
|
33
|
+
|
|
34
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<% if @destroyed %>
|
|
2
|
+
|
|
3
|
+
// Removing the item from the list
|
|
4
|
+
$('#div_<%= @resource_options[:item_name] %>_<%= @r_object.id %>').remove();
|
|
5
|
+
$("#div_invoice_form").html("<%= escape_javascript(render(:partial=>"/vyapari/terminal_staff/invoices/form")) %>");
|
|
6
|
+
|
|
7
|
+
// Hide errors
|
|
8
|
+
$("#invoice_form_error").hide();
|
|
9
|
+
|
|
10
|
+
// Showing Growl Like Message
|
|
11
|
+
notifySuccess("<%= escape_javascript(@notification[:title]) %>", "<%= escape_javascript(@notification[:message]) %>");
|
|
12
|
+
|
|
13
|
+
<% else %>
|
|
14
|
+
|
|
15
|
+
// Show Main Error Message on the form
|
|
16
|
+
<% error_message = content_tag(:div, raw(@notification[:message]), class: "alert alert-danger mt-20") %>
|
|
17
|
+
$("#invoice_form_error").html("<%= escape_javascript(error_message) %>");
|
|
18
|
+
$("#invoice_form_error").show();
|
|
19
|
+
|
|
20
|
+
// Showing Growl Like Message
|
|
21
|
+
notifyError("<%= escape_javascript(@notification[:title]) %>", "<%= escape_javascript(@notification[:message]) %>");
|
|
22
|
+
|
|
23
|
+
<% end %>
|
|
24
|
+
|
|
25
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<div class="row">
|
|
2
|
+
|
|
3
|
+
<% @stores.each do |store| %>
|
|
4
|
+
<div class="col-sm-4">
|
|
5
|
+
<div class="xe-widget xe-counter xe-counter-info" style="min-height:160px;max-height: 160px;overflow:hidden;">
|
|
6
|
+
<div class="xe-icon">
|
|
7
|
+
<i class="fa fa-building-o"></i>
|
|
8
|
+
</div>
|
|
9
|
+
<div class="xe-label">
|
|
10
|
+
<strong class="num"><%= store.code %></strong>
|
|
11
|
+
<span><%= store.name %></span>
|
|
12
|
+
<hr>
|
|
13
|
+
<div class="mt-10"></div>
|
|
14
|
+
<%= link_to "Dashboard", store_manager_dashboard_path(store) %>
|
|
15
|
+
<!-- <div class="mt-5"></div> -->
|
|
16
|
+
<%#= link_to "Manage Stock", store_manager_stock_entries_path(store) %>
|
|
17
|
+
<div class="mt-5"></div>
|
|
18
|
+
<%= link_to "Upload new Stock", store_manager_stock_bundles_path(store) %>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
<% end %>
|
|
23
|
+
|
|
24
|
+
</div>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<% @stores = Store.active_and_inactive.all + Store.active_and_inactive.all %>
|
|
2
|
+
|
|
3
|
+
<h1 class="mb-40" style="text-align:center;color:#4b4b4b;">Welcome <strong><%= @current_user.name %></strong></h1>
|
|
4
|
+
|
|
5
|
+
<div class="col-md-12">
|
|
6
|
+
<% @stores.each do |store| %>
|
|
7
|
+
<div class="col-md-4 panel panel-default panel-border">
|
|
8
|
+
|
|
9
|
+
<div class="panel-body" style="height:300px;overflow-y: auto">
|
|
10
|
+
|
|
11
|
+
<div class="xe-widget xe-counter xe-counter-info">
|
|
12
|
+
<div class="xe-icon">
|
|
13
|
+
<i class="fa fa-building-o"></i>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="xe-label">
|
|
16
|
+
<%= link_to store_manager_dashboard_path(store) do %>
|
|
17
|
+
<strong class="num"><%= store.name %></strong>
|
|
18
|
+
<% end %>
|
|
19
|
+
<span style="font-size:20px;"><%= store.code %></span>
|
|
20
|
+
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
<% store.terminals.active_and_inactive.each do |terminal| %>
|
|
26
|
+
|
|
27
|
+
<div class="col-sm-8">
|
|
28
|
+
<span style="font-size:14px;"><%= terminal.name %></span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<div class="col-sm-4">
|
|
32
|
+
<%= link_to "Log In", terminal_staff_dashboard_path(terminal), class: "btn btn-secondary btn-xs" %>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<% end %>
|
|
36
|
+
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
<% if @current_user.has_role?("POS Sales Manager") || @current_user.has_role?("Warehouse Manager") %>
|
|
40
|
+
<div class="panel-footer">
|
|
41
|
+
<%= link_to "Manage", store_manager_dashboard_path(store), class: "btn btn-white btn-lg btn-block mt-30" %>
|
|
42
|
+
</div>
|
|
43
|
+
<% end %>
|
|
44
|
+
|
|
45
|
+
</div>
|
|
46
|
+
<% end %>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<%= clear_tag(30) %>
|
|
50
|
+
|
|
51
|
+
|
data/config/routes.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
Vyapari::Engine.routes.draw do
|
|
2
2
|
|
|
3
|
-
mount Usman::Engine => "/"
|
|
4
|
-
|
|
5
3
|
namespace :admin do
|
|
6
4
|
|
|
7
5
|
get '/dashboard', to: "dashboard#index", as: :dashboard
|
|
@@ -13,16 +11,75 @@ Vyapari::Engine.routes.draw do
|
|
|
13
11
|
|
|
14
12
|
# Stock Management Routes
|
|
15
13
|
resources :suppliers
|
|
16
|
-
resources :stores
|
|
17
|
-
|
|
14
|
+
resources :stores do
|
|
15
|
+
|
|
16
|
+
member do
|
|
17
|
+
put :update_status, as: :update_status
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
resources :terminals do
|
|
21
|
+
member do
|
|
22
|
+
put :update_status, as: :update_status
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
18
26
|
|
|
27
|
+
resources :brands do
|
|
28
|
+
member do
|
|
29
|
+
put :update_status, as: :update_status
|
|
30
|
+
put :mark_as_featured, as: :mark_as_featured
|
|
31
|
+
put :remove_from_featured, as: :remove_from_featured
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
19
35
|
resources :categories do
|
|
20
36
|
member do
|
|
21
37
|
put :update_status, as: :update_status
|
|
38
|
+
put :mark_as_featured, as: :mark_as_featured
|
|
39
|
+
put :remove_from_featured, as: :remove_from_featured
|
|
40
|
+
put :make_parent, as: :make_parent
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
resources :products do
|
|
45
|
+
member do
|
|
46
|
+
put :update_status, as: :update_status
|
|
47
|
+
put :mark_as_featured, as: :mark_as_featured
|
|
48
|
+
put :remove_from_featured, as: :remove_from_featured
|
|
22
49
|
end
|
|
23
50
|
end
|
|
24
51
|
|
|
25
|
-
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
get '/users/dashboard', to: "user_dashboard#index", as: :user_dashboard
|
|
55
|
+
|
|
56
|
+
namespace :store_manager do
|
|
57
|
+
|
|
58
|
+
scope '/:store_id' do
|
|
59
|
+
get 'dashboard', to: "dashboard#index", as: :dashboard
|
|
60
|
+
resources :terminals
|
|
61
|
+
resources :stock_entries
|
|
62
|
+
resources :stock_bundles do
|
|
63
|
+
member do
|
|
64
|
+
get :download_original_file, as: :download_original_file
|
|
65
|
+
get :download_error_file, as: :download_error_file
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
26
69
|
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
namespace :terminal_staff do
|
|
73
|
+
|
|
74
|
+
scope '/:terminal_id' do
|
|
75
|
+
get '/dashboard', to: "dashboard#index", as: :dashboard
|
|
76
|
+
resources :invoices do
|
|
77
|
+
resources :line_items
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
mount Usman::Engine => "/"
|
|
27
84
|
|
|
28
85
|
end
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
name,code,permalink ,featured,status
|
|
2
|
+
Titan ,TTN,titan,FALSE,published
|
|
3
|
+
SAMSUNG ,SMNG,samsung,FALSE,published
|
|
4
|
+
MAX FASHIONS,MXFNS,max.fsn,FALSE,unpublished
|
|
5
|
+
NOKIA,NKA,nokia,TRUE,unpublished
|
|
6
|
+
JOSCO INTERNATIONAL JWELLERS ,JIJS,josco.in.jwr,TRUE,published
|
|
7
|
+
REDBULL ENERGY DRINK,RED,redbull.dr,FALSE ,published
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
NAME,PARENT ,CODE,STATUS,FEATURED,PRIORITY,ONELINER ,
|
|
2
|
+
TITAL,WATCHES,TTN,published ,FALSE,2,wrist watch from tata group,
|
|
3
|
+
SAMSUNG MOBILE ,MOBILES ,SMGM,unpublished ,TRUE,3,smart phone from korian brand samsung ,
|
|
4
|
+
RED BULL ZERO ,BEVERAGE ,RBZ,published ,FALSE,5,zero sugar energy drint from redbull,
|
|
5
|
+
REDBULL SODA,BEVERAGE ,RBSO,published ,FALSE ,8,soda from redbull brand ,
|
|
6
|
+
SHIRT ,TEXTILES ,SHRT,unpublished ,FALSE ,8,Mens fashio shirts from MAX ,
|
|
7
|
+
BANGLES ,JWELLERS ,BNGL,published ,TRUE,11,Diomand plated bangles for wedding ,
|
|
8
|
+
WEDDING RING,JWELLERS ,WRNG,published ,TRUE,12,Wedding ring for her.,
|
|
9
|
+
LED TV- 50 INCH,ELECTRONICS,LTV,published ,TRUE,14,LED TV for home ,
|
|
10
|
+
,,,,,,,
|
|
11
|
+
,,,,,,,
|
|
12
|
+
,,,,,,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
name,code
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
name,code,permalink ,featured,status
|
|
2
|
+
Titan ,TTN,titan,FALSE,published
|
|
3
|
+
SAMSUNG ,SMNG,samsung,FALSE,published
|
|
4
|
+
MAX FASHIONS,MXFNS,max.fsn,FALSE,unpublished
|
|
5
|
+
NOKIA,NKA,nokia,TRUE,unpublished
|
|
6
|
+
JOSCO INTERNATIONAL JWELLERS ,JIJS,josco.in.jwr,TRUE,published
|
|
7
|
+
REDBULL ENERGY DRINK,RED,redbull.dr,FALSE ,published
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
NAME,PARENT ,CODE,STATUS,FEATURED,PRIORITY,ONELINER ,
|
|
2
|
+
TITAL,WATCHES,TTN,published ,FALSE,2,wrist watch from tata group,
|
|
3
|
+
SAMSUNG MOBILE ,MOBILES ,SMGM,unpublished ,TRUE,3,smart phone from korian brand samsung ,
|
|
4
|
+
RED BULL ZERO ,BEVERAGE ,RBZ,published ,FALSE,5,zero sugar energy drint from redbull,
|
|
5
|
+
REDBULL SODA,BEVERAGE ,RBSO,published ,FALSE ,8,soda from redbull brand ,
|
|
6
|
+
SHIRT ,TEXTILES ,SHRT,unpublished ,FALSE ,8,Mens fashio shirts from MAX ,
|
|
7
|
+
BANGLES ,JWELLERS ,BNGL,published ,TRUE,11,Diomand plated bangles for wedding ,
|
|
8
|
+
WEDDING RING,JWELLERS ,WRNG,published ,TRUE,12,Wedding ring for her.,
|
|
9
|
+
LED TV- 50 INCH,ELECTRONICS,LTV,published ,TRUE,14,LED TV for home ,
|
|
10
|
+
,,,,,,,
|
|
11
|
+
,,,,,,,
|
|
12
|
+
,,,,,,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
name,code
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
name,ean_sku,reference_number,description,brand,category,purchased_price,landing_price,selling_price,retail_price,quantity
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
name,ean_sku,reference_number,description,brand,category,purchased_price,landing_price,selling_price,retail_price,quantity
|
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
name,code,country
|
|
2
|
+
BUR DUBAI,DXBBD,AE
|
|
3
|
+
DEIRA,DXBDR,AE
|
|
4
|
+
SHARHAJ Al Nahda,SHJNAH,AE
|
|
5
|
+
AL AIN ,AUHALN,AE
|
|
6
|
+
FUJAIRAH Colony,FJHCOL,AE
|
|
7
|
+
ABU DHABI Mohammad Street,AUHMHD,AE
|
|
8
|
+
JUMAIRAH LAKE TOWERS ,DXBJLT,AE
|
|
9
|
+
JABIL ALI,DXBJBL,AE
|
|
10
|
+
Ajman Place,AJMPLC,AE
|
|
11
|
+
Al QUOZ,DXBALQ,AE
|
|
12
|
+
Sheikh Zayed Road,DXBSZR,AE
|
|
13
|
+
Al Barsha,DXBALB,AE
|