Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
34387 vikas.jang 1
<style>
2
    .select2-container .select2-selection--single {
3
        box-sizing: border-box;
4
        cursor: pointer;
5
        display: block;
6
        height: 35px;
7
        padding: 3px;
8
        user-select: none;
9
        -webkit-user-select: none;
10
    }
11
 
12
    .modal-body {
13
        overflow-y: auto;
14
        max-height: calc(100vh - 200px);
34405 vikas.jang 15
        min-height: 41vh;
34387 vikas.jang 16
    }
17
</style>
18
<section class="wrapper">
19
    <div class="row">
20
        <div class="col-lg-12">
34475 vikas.jang 21
            <h3 class="page-header"><i class="icon_document_alt"></i>Bids</h3>
34387 vikas.jang 22
            <ol class="breadcrumb">
23
                <li><i class="fa fa-home"></i><a href="${rc.contextPath}/dashboard">Dashboard</a></li>
34475 vikas.jang 24
                <li><i class="icon_document_alt"></i>Bids</li>
34387 vikas.jang 25
                <li class="pull-right">
34546 vikas.jang 26
                    <button class="btn btn-success map-catalog" type="button" data-toggle="modal" data-target="#publishLiquidationModal">
27
                        <i class="icon_document_alt"></i> Publish</button>
28
                </li>
29
                <li class="pull-right">
34387 vikas.jang 30
                    <button class="btn btn-primary map-catalog" type="button" data-toggle="modal" data-target="#manageLiquidationModal">
31
                    <i class="icon_document_alt"></i> Create New</button>
32
                </li>
33
            </ol>
34
        </div>
35
    </div>
36
    <div class="table-responsive">
37
        <table class="table table-bordered" id="liquidation-table">
38
            <thead class="table-light">
39
            <tr>
34593 vikas.jang 40
                <th>#</th>
34387 vikas.jang 41
                <th>Catalog</th>
42
                <th>Start Price</th>
34493 vikas.jang 43
                <th>No of Bids</th>
34387 vikas.jang 44
                <th>Start - End</th>
45
                <th>Status</th>
46
                <th>Actions</th>
47
            </tr>
48
            </thead>
49
            <tbody>
50
                #foreach($item in $liquidations)
51
                    <tr>
34593 vikas.jang 52
                        <td>$item.getId()</td>
34638 vikas.jang 53
                        <td>$saholicStockMap.get($item.catalogId).get(0).getBrand() $saholicStockMap.get($item.catalogId).get(0).getModelNumber()</td>
34387 vikas.jang 54
                        <td>$item.price</td>
34568 vikas.jang 55
                        <td>#if($bidsMap.get($item.getId()).size() > 0)
34638 vikas.jang 56
                            <a role="button" onclick="viewBids($item.getId(), `$saholicStockMap.get($item.catalogId).get(0).getBrand() $saholicStockMap.get($item.catalogId).get(0).getModelNumber()`)">
34568 vikas.jang 57
                                $bidsMap.get($item.getId()).size()
58
                            </a>
59
                            #else 0 #end
60
                        </td>
34493 vikas.jang 61
                        <td>$item.startDate.format($dateTimeFormatter) - $item.endDate.format($dateTimeFormatter)</td>
34387 vikas.jang 62
                        <td>$item.status</td>
63
                        <td>
34643 vikas.jang 64
                            #if($item.status == "CLOSED")
65
                                <a role="button" onclick="viewBids($item.getId(), `$saholicStockMap.get($item.catalogId).get(0).getBrand() $saholicStockMap.get($item.catalogId).get(0).getModelNumber()`)" class="btn btn-sm btn-primary"><i class="fa fa-info"></i> History</a>
66
                            #else
67
                                <a role="button" onclick="editLiquidation($item.id)" class="btn btn-sm btn-info"><i class="fa fa-eye"></i> View</a>
68
                            #end
34387 vikas.jang 69
                        </td>
70
                    </tr>
71
                #end
72
            </tbody>
73
        </table>
74
    </div>
75
</section>
76
 
77
<div id="manageLiquidationModal" class="modal" role="dialog">
78
    <div class="modal-dialog">
79
        <div class="modal-content">
80
            <div class="modal-header">
81
                <button type="button" class="close" data-dismiss="modal">&times;</button>
34475 vikas.jang 82
                <h4 class="modal-title">Manage Bid</h4>
34387 vikas.jang 83
            </div>
84
            <div class="modal-body" id="manageLiquidationModalBody">
85
                <form id="biddingForm" action="$formActionUrl" method="post" class="row g-3 mb-4">
34405 vikas.jang 86
                    <input type="hidden" name="id" id="id">
34445 vikas.jang 87
                    <input type="hidden" name="quantity" id="quantity">
34405 vikas.jang 88
 
89
                    <div class="col-md-7">
34387 vikas.jang 90
                        <div class="form-group">
34546 vikas.jang 91
                            <label class="form-label" for="catalogId">Catalog <span class="text-danger">*</span></label>
34405 vikas.jang 92
                            <span class="pull-right"><input name="restricted" value="true" id="restricted" type="checkbox"> Restricted?</span>
34445 vikas.jang 93
                            <select name="catalogId" id="catalogId" class="form-select catalogId" required>
34387 vikas.jang 94
                                <option value="">Select</option>
34405 vikas.jang 95
                                #foreach($entry in $catalogs)
34445 vikas.jang 96
                                    <option value="$entry.catalogId" data-qty="$entry.shaholicNetAvailability">$entry.brand $entry.modelNumber ($entry.shaholicNetAvailability)</option>
34387 vikas.jang 97
                                #end
98
                            </select>
99
                        </div>
100
                    </div>
101
 
34405 vikas.jang 102
                    <div class="col-md-5">
34387 vikas.jang 103
                        <div class="form-group">
34546 vikas.jang 104
                            <label for="price" class="form-label">Bidding Price <span class="text-danger">*</span></label>
34405 vikas.jang 105
                            <input type="number" name="price" id="price" class="form-control" required>
34387 vikas.jang 106
                        </div>
107
                    </div>
108
 
34493 vikas.jang 109
                    <div class="col-md-3">
34387 vikas.jang 110
                        <div class="form-group">
34546 vikas.jang 111
                            <label for="incrementStep" class="form-label">Increment Step <span class="text-danger">*</span></label>
34493 vikas.jang 112
                            <input type="number" name="incrementStep" id="incrementStep" class="form-control" required value="10">
113
                        </div>
114
                    </div>
34546 vikas.jang 115
                    <div class="col-md-7">
116
                        <div class="row">
117
                            <div class="col-md-6">
118
                                <div class="form-group">
119
                                    <label for="startDate" class="form-label">Start Date <span class="text-danger">*</span></label>
120
                                    <input type="datetime-local" name="startDate" id="startDate" class="form-control" required>
121
                                </div>
122
                            </div>
34493 vikas.jang 123
 
34546 vikas.jang 124
                            <div class="col-md-6">
125
                                <div class="form-group">
126
                                    <label for="endDate" class="form-label">End Date <span class="text-danger">*</span></label>
127
                                    <input type="datetime-local" name="endDate" id="endDate" class="form-control" required>
128
                                </div>
129
                            </div>
34387 vikas.jang 130
                        </div>
131
                    </div>
34546 vikas.jang 132
                    <div class="col-md-2">
34387 vikas.jang 133
                        <div class="form-group">
34546 vikas.jang 134
                            <label for="status" class="form-label">Status <span class="text-danger">*</span></label>
34387 vikas.jang 135
                            <select name="status" id="status" class="form-select">
34445 vikas.jang 136
                                <option value="ACTIVE">Active</option>
137
                                <option value="INACTIVE">Inactive</option>
138
                                <option value="CLOSED">Closed</option>
34387 vikas.jang 139
                            </select>
140
                        </div>
141
                    </div>
34546 vikas.jang 142
                    <input type="file" id="real-file" style="display: none;">
143
                    <input type="hidden" name="mediaId" id="mediaId" value="0">
34387 vikas.jang 144
                </form>
145
            </div>
146
            <div class="modal-footer">
34546 vikas.jang 147
                <div class="row">
148
                    <div class="col-md-6">
149
                        <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
150
                        <button type="button" class="btn btn-primary save-liquidation">Save</button>
151
                    </div>
152
                </div>
153
            </div>
154
        </div>
155
    </div>
156
</div>
157
 
158
<div id="publishLiquidationModal" class="modal" role="dialog">
159
    <div class="modal-dialog">
160
        <div class="modal-content modal-lg">
161
            <div class="modal-header">
162
                <button type="button" class="close" data-dismiss="modal">&times;</button>
163
                <h4 class="modal-title">Publish Bids</h4>
164
            </div>
165
            <div class="modal-body" id="manageLiquidationModalBody">
166
                <div class="col-md-12">
167
                    <div class="row">
168
                        <div class="col-md-3"></div>
169
                        <div class="col-md-6 text-center">
170
                            <input type="file" accept="image/*" id="real-file" style="display: none;">
171
                            <input type="hidden" id="mediaId">
172
                            <button class="btn btn-success" id="add-media">Choose file</button>
173
                            <br>
174
                            <span id="file-name"></span>
175
                            <img src="" alt="" id="imgPreview" width="100%">
176
                        </div>
177
                    </div>
178
                </div>
179
                <table class="table table-bordered" id="liquidation-table">
180
                        <thead class="table-light">
181
                            <tr>
182
                                <th></th>
183
                                <th>Catalog</th>
184
                                <th>Start Price</th>
185
                                <th>Start - End</th>
186
                                <th>Status</th>
187
                            </tr>
188
                        </thead>
189
                        <tbody>
190
                            #foreach($item in $liquidations)
191
                                #if($item.status == "ACTIVE")
192
                                    <tr>
193
                                        <td><input type="checkbox" class="selectLiquidations" value="$item.getId()"></td>
34638 vikas.jang 194
                                        <td>$saholicStockMap.get($item.catalogId).get(0).getBrand() $saholicStockMap.get($item.catalogId).get(0).getModelNumber()</td>
34546 vikas.jang 195
                                        <td>$item.price</td>
196
                                        <td>$item.startDate.format($dateTimeFormatter) - $item.endDate.format($dateTimeFormatter)</td>
197
                                        <td>$item.status</td>
198
                                    </tr>
199
                                #end
200
                            #end
201
                        </tbody>
202
                    </table>
203
            </div>
204
            <div class="modal-footer">
34387 vikas.jang 205
                <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
34546 vikas.jang 206
                <button type="button" class="btn btn-primary publish-liquidation">Publish</button>
34387 vikas.jang 207
            </div>
208
        </div>
209
    </div>
34546 vikas.jang 210
</div>
211
 
34568 vikas.jang 212
<div id="biddingListModal" class="modal" role="dialog">
213
    <div class="modal-dialog">
214
        <div class="modal-content modal-lg">
215
            <div class="modal-header">
216
                <button type="button" class="close" data-dismiss="modal">&times;</button>
217
                <h4 class="modal-title"><span id="catalogName"></span></h4>
218
            </div>
219
            <div class="modal-body" id="bidListModalBody">
220
                <table class="table table-bordered" id="bids-table">
221
                    <thead class="table-light">
222
                        <tr>
223
                            <th></th>
224
                            <th>Retailer</th>
225
                            <th>Bid Quantity</th>
226
                            <th>Bid Price</th>
227
                            <th>Bid Time</th>
228
                            <th>Status</th>
229
                        </tr>
230
                    </thead>
231
                    <tbody id="bidsList"></tbody>
232
                </table>
233
            </div>
234
            <div class="modal-footer">
235
                <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
236
            </div>
237
        </div>
238
    </div>
239
</div>
240
 
34546 vikas.jang 241
<script>
242
    $(function() {
243
        const realFileInput = $("#real-file");
244
        const addMedia = $("#add-media");
245
        const fileNameDisplay = $("#file-name");
246
        addMedia.click(function(){
247
            realFileInput.click();
248
        });
249
 
250
        realFileInput.change(function(event) {
251
            const files = event.target.files;
252
            console.log("change triggered", files);
253
            if (files.length > 0) {
254
                var output = document.getElementById('imgPreview');
255
                output.src = URL.createObjectURL(event.target.files[0]);
256
                output.onload = function() {
257
                    URL.revokeObjectURL(output.src)
258
                }
259
                fileNameDisplay.text(files[0].name);
260
                uploadDocument(files[0], function (documentId) {
261
                    $('#mediaId').val(documentId);
262
                });
263
            } else {
264
                fileNameDisplay.text("No file chosen");
265
            }
266
        });
267
    });
34568 vikas.jang 268
 
269
    function viewBids(liquidationId, catalogName){
270
        const bidsMap = $!bidsMapJson;
271
        const retailerMap = $!retailersJson;
272
        let html = '';
273
        console.log("bidsMap[liquidationId]",bidsMap[liquidationId])
274
        if (bidsMap.hasOwnProperty(liquidationId) && bidsMap[liquidationId].length) {
275
            bidsMap[liquidationId].forEach((bid, index) => {
276
                html += `<tr>
277
                <td>${(index+1)}</td>
278
                <td>${(retailerMap[bid.fofoId].displayName)}</td>
279
                <td>${bid.quantity}</td>
280
                <td>${(bid.biddingAmount.toLocaleString())}</td>
281
                <td>${(bid.createdAt.split('T')).join(" ")}</td>
282
                <td>${bid.status}</td>
283
            </tr>`;
284
            });
285
            $('#catalogName').text(catalogName);
286
            $('#bidsList').html(html);
287
            $('#biddingListModal').modal('show');
288
        } else {
289
            alert(`No Bids found for ${catalogName}`);
290
        }
291
    }
34546 vikas.jang 292
</script>