Subversion Repositories SmartDukaan

Rev

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