Subversion Repositories SmartDukaan

Rev

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