Subversion Repositories SmartDukaan

Rev

Rev 34798 | Rev 35268 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
34480 tejus.loha 1
<div class="modal-header ">
2
    <button type="button" class="close" data-dismiss="modal">&times;</button>
3
    <h4 class="modal-title">Edit Scratch Offer</h4>
4
</div>
5
<div class="modal-body">
6
    <form id="editofferForm">
7
        <input type="hidden" name="id" value="$!offer.id">
8
        <div class="row">
9
            <div class="col-md-6">
10
                <div class="form-group">
11
                    <label>Offer Name *</label>
12
                    <input type="text" class="form-control" name="name"
13
                           value="$!offer.name" required>
14
                </div>
15
                <div class="form-group">
16
                    <label>Description</label>
17
                    <textarea class="form-control" name="description"
18
                              rows="3">$!offer.description</textarea>
19
                </div>
20
                <div class="form-group">
21
                    <label>Offer Images *</label>
22
                    <div class="offer-images-container" style="display: flex; align-items: center">
23
                        #foreach($imageId in $offer.offerImage.split(","))
24
                            <div class="offer-image-entry " style="margin-right: 10px">
25
                                ##                                <input type="file" class="form-control offer-image-file"
26
                                ##                                       accept="image/*" required>
27
                                ##                                <input type="hidden" class="offer-image-id"
28
                                ##                                       name="offerImageIds[]" value="$imageId">
29
                                <img src="/document/$imageId" width="50"
30
                                     class="mt-2 existing-image">
31
                            </div>
32
                        #end
33
                    </div>
34
                    ##                    <button type="button" class="btn btn-xs btn-success add-offer-image">
35
                    ##                        <i class="fa fa-plus"></i> Add Another Image
36
                    ##                    </button>
37
                </div>
38
            </div>
39
            <div class="col-md-6">
40
                <div class="form-group">
41
                    <label>Offer Period *</label>
42
                    <div class="input-daterange input-group">
43
                        <input type="date" class="form-control date-picker"
44
                               name="start_date" value="$!offer.startDate" required>
45
                        <span class="input-group-addon">to</span>
46
                        <input type="date" class="form-control date-picker"
47
                               name="end_date" value="$!offer.endDate" required>
48
                    </div>
49
                </div>
50
                <div class="form-group">
51
                    <label>Product Category *</label>
52
                    <select class="form-control productCategory" name="productCategory" multiple required>
53
                        #foreach($category in $categoryList)
54
                            #set($categoryIdString = $category.id.toString())
55
                            #set($selectedCategories = $offer.productCategory.split(","))
56
                            <option value="$category.id"
57
                                #if($selectedCategories.contains($categoryIdString))
58
                                    selected="selected"
59
                                #end>
60
                                $category.displayName
61
                            </option>
62
                        #end
63
                    </select>
64
                </div>
65
                <div class="form-group">
34798 ranu 66
                    $offer.paymentMethod
67
                    <label>Payment Method <span class="text-danger">*</span></label>
68
                    <select class="form-control paymentMethod" name="paymentMethod" required multiple>
69
                        #foreach($paymentMethod in $paymentMethods)
70
                            #set($paymentMethod = $paymentMethod.toString())
71
                            <option value="$paymentMethod"
72
                                #if($paymentMethod.contains($paymentMethod))
73
                                    selected="selected"
74
                                #end
75
                            >$paymentMethod</option>
76
                        #end
34480 tejus.loha 77
                    </select>
78
                </div>
34798 ranu 79
 
34480 tejus.loha 80
                <div class="form-group">
81
                    <label>Offer Classification <span class="text-danger">*</span></label>
82
                    <select class="form-control classification" name="classification" required>
83
                        <option value="">Select Classification</option>
84
                        #foreach($classification in $classifications)
85
                            #set($classification = $classification.toString())
86
                            <option value="$classification"
87
                                #if($offer.classification == $classification)
88
                                    selected="selected"
89
                                #end>$classification</option>
90
                        #end
91
                    </select>
92
                </div>
93
 
94
            </div>
95
        </div>
96
        <div class="row">
97
            <div class="col-md-6">
98
                <div class="form-group">
99
                    <label>User Limit</label>
100
                    <input type="number" class="form-control" name="userLimit"
101
                           value="$!offer.userLimit">
102
                </div>
103
            </div>
104
            <div class="col-md-6">
105
                <div class="form-group">
106
                    <label>Scratch Validity (Days)</label>
107
                    <input type="number" class="form-control" name="scratchValidity"
108
                           value="$!offer.scratchValidity">
109
                </div>
110
            </div>
111
        </div>
112
        <div class="table-responsive">
113
            <table class="table dynamic-table" id="giftsContainer">
114
                <thead>
115
                <tr>
116
                    <th colspan="2">Gift Configuration</th>
117
                    <th colspan="3" class="text-end">
118
                        <button type="button" class="btn btn-sm btn-success add-gift">
119
                            <i class="fa fa-plus"></i> Add Gift
120
                        </button>
121
                    </th>
122
                </tr>
123
                <tr>
124
                    <th colspan="2">Basic Information</th>
125
                    <th colspan="3">Additional Details</th>
126
                </tr>
127
                </thead>
128
                <tbody>
129
                    #foreach($gift in $giftList)
130
                    <tr class="gift-row">
131
                        <!-- Basic Information Column -->
132
                        <td colspan="2">
133
                            <div class="row">
134
                                <div class="mb-3 col-md-12">
135
                                    <label>Gift Name <span class="text-danger">*</span></label>
136
                                    <input type="text" class="form-control gift-name"
137
                                           name="gifts[].name" value="$gift.name" required>
138
                                    <input type="hidden" name="gifts[].id" value="$gift.id">
139
                                </div>
140
                            </div>
141
                            <div class="row">
142
                                <div class="col-md-6 mb-3">
143
                                    <label>Min Cart Value <span class="text-danger">*</span></label>
144
                                    <input type="number" step="0.01" class="form-control gift-min-cart"
145
                                           name="gifts[].minCartValue" value="$gift.minCartValue" required>
146
                                </div>
147
                                <div class="col-md-6 mb-3">
148
                                    <label>Max Cart Value <span class="text-danger">*</span></label>
149
                                    <input type="number" step="0.01" class="form-control gift-max-cart"
150
                                           name="gifts[].maxCartValue" value="$gift.maxCartValue" required>
151
                                </div>
152
                            </div>
153
                            <div class="row">
154
                                <div class="col-md-6 mb-3">
155
                                    <label>Gift Quantity <span class="text-danger">*</span></label>
156
                                    <input type="number" class="form-control gift-redemptions"
157
                                           name="gifts[].maxRedemptions" value="$gift.maxRedemptions" required>
158
                                </div>
159
                                <div class="mb-3 col-md-6">
160
                                    <label> Select Fofo Store OR <span class="text-danger">*</span></label>
161
                                    <select class="form-control fofo-store-id mb-2 partnerInfo" name="partnerInfo"
162
                                            multiple
163
                                            required>
164
                                        #foreach($retailer in $retailerInfo)
165
                                            #set($retailerIdString = $retailer.getPartnerId().toString())
166
                                            #set($selectedPartner = $gift.fofoStore.split(","))
167
                                            <option value="$retailer.getPartnerId()"
168
                                                #if($selectedPartner.contains($retailerIdString))
169
                                                    selected="selected"
170
                                                #end>
171
                                                $retailer.getBusinessName()
172
                                            </option>
173
                                        #end
174
                                    </select>
175
                                </div>
176
                            </div>
177
                        </td>
178
 
179
                        <!-- Additional Details Column -->
180
                        <td colspan="3">
181
                            <div class="mb-3">
182
                                <label>Gift Image <span class="text-danger">*</span></label>
183
                                <input type="file" class="form-control gift-thumbnail-file" accept="image/*">
184
                                <input type="hidden" class="gift-thumbnail-id"
185
                                       name="gifts[].thumbnailDocumentId" value="$gift.thumbnailUrl">
186
                                <img src="/document/$gift.thumbnailUrl" width="50"
187
                                     class="mt-2 existing-thumbnail">
188
                            </div>
189
 
190
                            <div class="mb-3">
191
                                <label>Product Category <span class="text-danger">*</span></label>
192
                                <select class="form-control gift-product-category" name="GiftProductCategory" multiple
193
                                        required>
194
                                    #foreach($category in $categoryList)
195
                                        #set($categoryIdString = $category.id.toString())
196
                                        #set($selectedCategories = $gift.productCategory.split(","))
197
                                        <option value="$category.id"
198
                                            #if($selectedCategories.contains($categoryIdString))
199
                                                selected="selected"
200
                                            #end>
201
                                            $category.displayName
202
                                        </option>
203
                                    #end
204
                                </select>
205
                            </div>
206
                            <div class="mb-3">
207
                                <label> Upload CSV<span class="text-danger">*</span></label>
208
                                <input type="file" class="form-control fofo-store-file" accept=".csv">
209
                                <input type="hidden" class="fofo-store-id"
210
                                       name="gifts[].fofoStore" value="$gift.fofoStore">
211
                                <small class="text-muted">CSV format: S.No,Partner Name,FofoId,Code</small>
212
                                #if($gift.fofoStoreId)
213
                                    <div class="mt-1">
214
                                        <small class="text-success">Existing CSV uploaded</small>
215
                                    </div>
216
                                #end
217
                            </div>
218
                            <div class="text-end">
219
                                <button type="button" class="btn btn-sm btn-danger delete-gift"
220
                                        value="$gift.id">
221
                                    <i class="fa fa-times"></i> Delete Gift
222
                                </button>
223
                            </div>
224
                        </td>
225
                    </tr>
226
                    #end
227
                </tbody>
228
            </table>
229
        </div>
230
        <div class="form-group">
231
            <label>Terms & Conditions</label>
232
            <textarea class="form-control" name="termsCondition"
233
                      rows="3">$!offer.termsCondition</textarea>
234
        </div>
235
    </form>
236
</div>
237
<div class="modal-footer">
238
    <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
239
    <button type="button" class="btn btn-primary update-offer" value="$offer.id" data-offer-id="$offer.id">Update
240
        Offer
241
    </button>
242
</div>
243
 
244
<script>
245
    $(function () {
246
        initMultiselect('.productCategory', 'Categories')
247
        initMultiselect('.gift-product-category', 'Categories')
248
        initMultiselect('.paymentMethod', 'Payment method')
249
        initMultiselect('.partnerInfo', 'Partner')
250
    })
35104 vikas 251
 
252
    // Function to toggle CSV based on partner selection
253
    function toggleCsvOnPartnerChange(row) {
254
        const partnerSelect = row.find('.partnerInfo');
255
        const csvInput = row.find('.fofo-store-file');
256
 
257
        if (partnerSelect.val() && partnerSelect.val().length > 0) {
258
            csvInput.prop('disabled', true).val('');
259
        } else {
260
            csvInput.prop('disabled', false);
261
        }
262
    }
263
 
264
    // On partner dropdown change
265
    $(document).on('change', '.partnerInfo', function () {
266
        const row = $(this).closest('tr.gift-row');
267
        toggleCsvOnPartnerChange(row);
268
    });
269
 
270
    // Run check on modal open (for pre-filled values)
271
    $('#editOfferModal').on('shown.bs.modal', function () {
272
        $(this).find('tr.gift-row').each(function () {
273
            toggleCsvOnPartnerChange($(this));
274
        });
275
    });
276
 
34480 tejus.loha 277
</script>