Subversion Repositories SmartDukaan

Rev

Rev 37823 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
37823 amit 1
<section class="wrapper seller-setup">
2
    <div class="row">
3
        <div class="col-lg-12">
4
            <h3 class="page-header"><i class="icon_document_alt"></i>Sellers &amp; Warehouses</h3>
5
            <ol class="breadcrumb">
6
                <li><i class="fa fa-home"></i><a href="${rc.contextPath}/dashboard">Home</a></li>
7
                <li><i class="icon_document_alt"></i> Sellers &amp; Warehouses</li>
8
            </ol>
9
        </div>
10
    </div>
28300 tejbeer 11
 
37846 amit 12
    ## Warehouses: every physical warehouse across sellers, with its status and what still ties it to operations
13
    <div class="panel panel-default warehouse-overview">
14
        <div class="panel-heading clearfix">
15
            <strong>Warehouses</strong>
16
            <div class="btn-group btn-group-xs warehouse-status-filter" style="margin-left: 12px;">
17
                <button type="button" class="btn btn-default active" data-status="">All ($warehouses.size())</button>
18
                #foreach($status in $statuses)
19
                    <button type="button" class="btn btn-default" data-status="$status">$status.name().substring(0,1)$status.name().substring(1).toLowerCase() ($statusCounts.get($status))</button>
20
                #end
21
            </div>
22
            <button type="button" class="btn btn-default btn-sm pull-right warehouse-stock-alert"
23
                    title="Mails logistics, finance and leadership the stock still lying in suspended or inactive warehouses">
24
                Mail stock alert now
25
            </button>
26
        </div>
27
        <div class="panel-body small text-muted" style="padding: 6px 15px;">
28
            <span class="label label-success">ACTIVE</span> dashboards, warehouse screens and new orders &nbsp;&middot;&nbsp;
29
            <span class="label label-warning">SUSPENDED</span> off dashboards and new orders, still in warehouse screens to clear stock and returns &nbsp;&middot;&nbsp;
30
            <span class="label label-default">INACTIVE</span> closed for good; only its name shows on old records
31
        </div>
32
        <table class="table table-condensed table-hover">
33
            <thead>
34
            <tr>
35
                <th>Id</th>
36
                <th>Label</th>
37
                <th>Seller</th>
38
                <th>Branch code</th>
39
                <th style="width: 140px;">Status</th>
40
                <th class="text-right">Stock</th>
41
                <th class="text-right" title="Billing from it, not yet shipped">Unshipped orders</th>
42
                <th class="text-right" title="Active franchise stores ordering into it">Franchise stores</th>
43
                <th class="text-right" title="Brand region mapping rows routing through it">Brand mapping</th>
44
            </tr>
45
            </thead>
46
            <tbody>
47
                #foreach($warehouse in $warehouses)
48
                    #set($usage = $warehouse.getUsage())
49
                    #set($isActive = $warehouse.getStatus().name() == "ACTIVE")
50
                <tr data-status="$warehouse.getStatus()" #if($warehouse.getStatus().name() == "INACTIVE") class="text-muted" #end>
51
                    <td>$warehouse.getWarehouseId()</td>
52
                    <td>
53
                        <strong>#if($warehouse.getDisplayName())$warehouse.getDisplayName()#end</strong>
54
                        <button type="button" class="btn btn-link btn-xs warehouse-rename" title="Rename"
55
                                data-warehouse-id="$warehouse.getWarehouseId()"
56
                                data-display-name="#if($warehouse.getDisplayName())$warehouse.getDisplayName()#end">
57
                            <i class="fa fa-pencil"></i></button>
58
                        #if($warehouse.getName())<br><small class="text-muted">$warehouse.getName()</small>#end
59
                    </td>
60
                    <td>
61
                        <a href="javascript:void(0)" class="seller-open" data-seller-id="$warehouse.getSellerId()">#if($warehouse.getSellerLabel())$warehouse.getSellerLabel()#{else}$warehouse.getSellerId()#end</a>
62
                    </td>
63
                    <td>$warehouse.getPrefix()</td>
64
                    <td>
65
                        <select class="form-control input-sm warehouse-status" data-warehouse-id="$warehouse.getWarehouseId()"
66
                                data-current="$warehouse.getStatus()">
67
                            #foreach($status in $statuses)
68
                                <option value="$status" #if($status == $warehouse.getStatus()) selected #end>$status</option>
69
                            #end
70
                        </select>
71
                    </td>
72
                    <td class="text-right">
73
                        #if($usage.getStockUnits() > 0)
74
                            $usage.getStockUnits() units<br>
75
                            <small>Rs. <span class="inr">$usage.getStockValue()</span>#if($usage.getUncostedUnits() > 0) &middot; $usage.getUncostedUnits() without cost#end</small>
76
                            #if(!$isActive)<br><span class="label label-warning">needs clearing</span>#end
77
                        #else
78
                            <span class="text-muted">-</span>
79
                        #end
80
                    </td>
81
                    <td class="text-right">#if($usage.getOpenOrders() > 0)$usage.getOpenOrders()#{else}<span class="text-muted">-</span>#end</td>
82
                    <td class="text-right">
83
                        #if($usage.getFranchiseStores() > 0)
84
                            #if($isActive)$usage.getFranchiseStores()#{else}<span class="label label-danger">$usage.getFranchiseStores()</span>#end
85
                        #else<span class="text-muted">-</span>#end
86
                    </td>
87
                    <td class="text-right">
88
                        #if($usage.getBrandMappingRows() > 0)
89
                            #if($isActive)$usage.getBrandMappingRows()#{else}<span class="label label-danger">$usage.getBrandMappingRows()</span>#end
90
                        #else<span class="text-muted">-</span>#end
91
                    </td>
92
                </tr>
93
                #end
94
            </tbody>
95
        </table>
96
    </div>
97
 
37823 amit 98
    ## Sellers: one row per GST registration
99
    <div class="panel panel-default">
100
        <div class="panel-heading clearfix">
101
            <strong>Sellers</strong>
102
            <button type="button" class="btn btn-primary btn-sm pull-right" data-toggle="modal"
103
                    data-target="#new-seller-modal">New Seller
104
            </button>
105
        </div>
106
        <table class="table table-striped table-condensed">
107
            <thead>
108
            <tr>
109
                <th>Label</th>
110
                <th>GSTIN</th>
111
                <th>State</th>
112
                <th>Warehouses</th>
113
                <th></th>
114
            </tr>
115
            </thead>
116
            <tbody>
117
                #foreach($seller in $sellers)
118
                <tr>
119
                    <td>$seller.getLabel()</td>
120
                    <td>#if($seller.getGstin())$seller.getGstin()#end</td>
121
                    <td>#if($stateNames.get($seller.getStateId()))$stateNames.get($seller.getStateId())#end</td>
122
                    <td>#if($warehouseCounts.get($seller.getId()))$warehouseCounts.get($seller.getId())#else 0#end</td>
123
                    <td class="text-right">
124
                        <button type="button" class="btn btn-default btn-xs seller-open"
125
                                data-seller-id="$seller.getId()">Warehouses
126
                        </button>
127
                    </td>
128
                </tr>
129
                #end
130
            </tbody>
131
        </table>
132
    </div>
133
 
134
    <div class="warehouse-container"></div>
135
 
136
    ## Address masters: what a warehouse prints as the seller address
137
    <div class="panel panel-default">
138
        <div class="panel-heading clearfix">
139
            <strong>Addresses</strong>
140
            <small class="text-muted">&nbsp;Only active addresses can be assigned to a warehouse</small>
141
            <button type="button" class="btn btn-primary btn-sm pull-right" data-toggle="modal"
142
                    data-target="#new-address-modal">New Address
143
            </button>
144
        </div>
145
        <table class="table table-striped table-condensed">
146
            <thead>
147
            <tr>
148
                <th>#</th>
149
                <th>Address</th>
150
                <th>City</th>
151
                <th>Pin</th>
152
                <th>State</th>
153
                <th>Contact</th>
154
                <th>Used by</th>
155
                <th>Status</th>
156
            </tr>
157
            </thead>
158
            <tbody>
159
                #foreach($address in $addresses)
160
                <tr #if(!$address.isActive()) class="text-muted" #end>
161
                    <td>$address.getId()</td>
162
                    <td>$address.getAddress()</td>
163
                    <td>#if($address.getCity())$address.getCity()#end</td>
164
                    <td>$address.getPin()</td>
165
                    <td>#if($address.getStateName())$address.getStateName()#end</td>
166
                    <td>#if($address.getContactPerson())$address.getContactPerson()#end
167
                        #if($address.getContactNumber())<br><small>$address.getContactNumber()</small>#end</td>
168
                    <td>#foreach($warehouseId in $address.getUsedByWarehouseIds())$warehouseId#if($foreach.hasNext), #end#end</td>
169
                    <td>
170
                        <button type="button"
171
                                class="btn btn-xs address-active-toggle #if($address.isActive()) btn-success #else btn-default #end"
172
                                data-address-id="$address.getId()" data-active="$address.isActive()">
173
                            #if($address.isActive())Active#else Inactive#end
174
                        </button>
175
                    </td>
176
                </tr>
177
                #end
178
            </tbody>
179
        </table>
180
    </div>
181
 
182
    ## New seller
183
    <div id="new-seller-modal" class="modal fade" role="dialog">
184
        <div class="modal-dialog">
185
            <div class="modal-content">
186
                <div class="modal-header">
187
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
188
                    <h4 class="modal-title">New Seller</h4>
28300 tejbeer 189
                </div>
37823 amit 190
                <div class="modal-body">
191
                    <form id="new-seller-form" autocomplete="off">
192
                        <div class="form-group">
193
                            <label for="new-seller-label">Label</label>
194
                            <input type="text" class="form-control" id="new-seller-label" maxlength="31"
195
                                   placeholder="e.g. NSSPL-HR-GGN">
196
                        </div>
197
                        <div class="form-group">
198
                            <label for="new-seller-gstin">GSTIN</label>
199
                            <input type="text" class="form-control text-uppercase" id="new-seller-gstin" maxlength="15"
200
                                   placeholder="15 characters">
201
                            <p class="help-block" id="new-seller-gstin-hint">State and PAN are read from the GSTIN.</p>
202
                        </div>
203
                        <div class="form-group">
204
                            <label for="new-seller-address">Registered address</label>
205
                            <input type="text" class="form-control" id="new-seller-address" maxlength="255">
206
                        </div>
207
                    </form>
208
                </div>
209
                <div class="modal-footer">
210
                    <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
211
                    <button type="button" class="btn btn-primary" id="new-seller-submit">Create seller</button>
212
                </div>
28300 tejbeer 213
            </div>
214
        </div>
215
    </div>
37823 amit 216
 
217
    ## New address
218
    <div id="new-address-modal" class="modal fade" role="dialog">
219
        <div class="modal-dialog">
220
            <div class="modal-content">
221
                <div class="modal-header">
222
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
223
                    <h4 class="modal-title">New Address</h4>
28300 tejbeer 224
                </div>
37823 amit 225
                <div class="modal-body">
226
                    <form id="new-address-form" autocomplete="off">
227
                        <div class="form-group">
228
                            <label for="new-address-address">Address</label>
229
                            <input type="text" class="form-control address-preview-source" id="new-address-address"
230
                                   maxlength="230" placeholder="Building, plot, street, area">
231
                        </div>
232
                        <div class="row">
233
                            <div class="form-group col-sm-6">
234
                                <label for="new-address-city">City</label>
235
                                <input type="text" class="form-control address-preview-source" id="new-address-city"
236
                                       maxlength="50" placeholder="Printed as the city on invoices">
237
                            </div>
238
                            <div class="form-group col-sm-6">
239
                                <label for="new-address-pin">Pin</label>
240
                                <input type="text" class="form-control address-preview-source" id="new-address-pin"
241
                                       maxlength="6" inputmode="numeric" placeholder="6 digits">
242
                            </div>
243
                        </div>
244
                        <div class="row">
245
                            <div class="form-group col-sm-6">
246
                                <label for="new-address-state">State</label>
247
                                <select class="form-control address-preview-source" id="new-address-state">
248
                                    <option value="" selected disabled>Select state</option>
249
                                    #foreach($state in $states)
250
                                        <option value="$state.getId()">$state.getName()</option>
251
                                    #end
252
                                </select>
253
                            </div>
254
                        </div>
255
                        <div class="row">
256
                            <div class="form-group col-sm-6">
257
                                <label for="new-address-contact-person">Contact person</label>
258
                                <input type="text" class="form-control" id="new-address-contact-person" maxlength="127">
259
                            </div>
260
                            <div class="form-group col-sm-6">
261
                                <label for="new-address-contact-number">Contact number</label>
262
                                <input type="text" class="form-control" id="new-address-contact-number" maxlength="15"
263
                                       inputmode="numeric" placeholder="10 to 15 digits, one number">
264
                            </div>
265
                        </div>
266
                        <div class="well well-sm">
267
                            <small class="text-muted">Invoice will print</small>
268
                            <div id="new-address-preview" class="text-muted">-</div>
269
                        </div>
270
                    </form>
271
                </div>
272
                <div class="modal-footer">
273
                    <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
274
                    <button type="button" class="btn btn-primary" id="new-address-submit">Create address</button>
275
                </div>
28300 tejbeer 276
            </div>
277
        </div>
37823 amit 278
    </div>
28300 tejbeer 279
</section>