vyapari 0.1.4 → 0.1.5dev
Sign up to get free protection for your applications and to get access to all the features.
- 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
|