Subversion Repositories SmartDukaan

Rev

Rev 35268 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<div class="modal-header ">
    <button type="button" class="close" data-dismiss="modal">&times;</button>
    <h4 class="modal-title">Edit Scratch Offer</h4>
</div>
<div class="modal-body">
    <form id="editofferForm">
        <input type="hidden" name="id" value="$!offer.id">
        <div class="row">
            <div class="col-md-6">
                <div class="form-group">
                    <label>Offer Name *</label>
                    <input type="text" class="form-control" name="name"
                           value="$!offer.name" required>
                </div>
                <div class="form-group">
                    <label>Description</label>
                    <textarea class="form-control" name="description"
                              rows="3">$!offer.description</textarea>
                </div>
                <div class="form-group">
                    <label>Offer Images *</label>
                    <div class="offer-images-container" style="display: flex; align-items: center">
                        #foreach($imageId in $offer.offerImage.split(","))
                            <div class="offer-image-entry " style="margin-right: 10px">
                                ##                                <input type="file" class="form-control offer-image-file"
                                ##                                       accept="image/*" required>
                                ##                                <input type="hidden" class="offer-image-id"
                                ##                                       name="offerImageIds[]" value="$imageId">
                                <img src="/document/$imageId" width="50"
                                     class="mt-2 existing-image">
                            </div>
                        #end
                    </div>
                    ##                    <button type="button" class="btn btn-xs btn-success add-offer-image">
                    ##                        <i class="fa fa-plus"></i> Add Another Image
                    ##                    </button>
                </div>
            </div>
            <div class="col-md-6">
                <div class="form-group">
                    <label>Offer Period *</label>
                    <div class="input-daterange input-group">
                        <input type="date" class="form-control date-picker"
                               name="start_date" value="$!offer.startDate" required>
                        <span class="input-group-addon">to</span>
                        <input type="date" class="form-control date-picker"
                               name="end_date" value="$!offer.endDate" required>
                    </div>
                </div>
                <div class="form-group">
                    <label>Product Category *</label>
                    <select class="form-control productCategory" name="productCategory" multiple required>
                        #foreach($category in $categoryList)
                            #set($categoryIdString = $category.id.toString())
                            #set($selectedCategories = $offer.productCategory.split(","))
                            <option value="$category.id"
                                #if($selectedCategories.contains($categoryIdString))
                                    selected="selected"
                                #end>
                                $category.displayName
                            </option>
                        #end
                    </select>
                </div>
                <div class="form-group">
                    $offer.paymentMethod
                    <label>Payment Method <span class="text-danger">*</span></label>
                    <select class="form-control paymentMethod" name="paymentMethod" required multiple>
                        #foreach($paymentMethod in $paymentMethods)
                            #set($paymentMethod = $paymentMethod.toString())
                            <option value="$paymentMethod"
                                #if($paymentMethod.contains($paymentMethod))
                                    selected="selected"
                                #end
                            >$paymentMethod</option>
                        #end
                    </select>
                </div>

                <div class="form-group">
                    <label>Offer Classification <span class="text-danger">*</span></label>
                    <select class="form-control classification" name="classification" required>
                        <option value="">Select Classification</option>
                        #foreach($classification in $classifications)
                            #set($classification = $classification.toString())
                            <option value="$classification"
                                #if($offer.classification == $classification)
                                    selected="selected"
                                #end>$classification</option>
                        #end
                    </select>
                </div>

            </div>
        </div>
        <div class="row">
            <div class="col-md-6">
                <div class="form-group">
                    <label>User Limit</label>
                    <input type="number" class="form-control" name="userLimit"
                           value="$!offer.userLimit">
                </div>
            </div>
            <div class="col-md-6">
                <div class="form-group">
                    <label>Scratch Validity (Days)</label>
                    <input type="number" class="form-control" name="scratchValidity"
                           value="$!offer.scratchValidity">
                </div>
            </div>
        </div>
        <div class="table-responsive">
            <table class="table dynamic-table" id="giftsContainer">
                <thead>
                <tr>
                    <th colspan="2">Gift Configuration</th>
                    <th colspan="3" class="text-end">
                        <button type="button" class="btn btn-sm btn-success add-gift">
                            <i class="fa fa-plus"></i> Add Gift
                        </button>
                    </th>
                </tr>
                <tr>
                    <th colspan="2">Basic Information</th>
                    <th colspan="3">Additional Details</th>
                </tr>
                </thead>
                <tbody>
                    #foreach($gift in $giftList)
                    <tr class="gift-row">
                        <!-- Basic Information Column -->
                        <td colspan="2">
                            <div class="mb-3">
                                <label class="fw-bold"> <strong class="text-black">Default</strong></label>
                                <input type="radio" name="defaultGift" class="default-gift-radio"  #if($gift.default)
                                       checked #end>
                            </div>
                            <div class="row">
                                <div class="mb-3 col-md-12">
                                    <label>Gift Name <span class="text-danger">*</span></label>
                                    <input type="text" class="form-control gift-name"
                                           name="gifts[].name" value="$gift.name" required>
                                    <input type="hidden" name="gifts[].id" value="$gift.id">
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-md-6 mb-3">
                                    <label>Min Cart Value <span class="text-danger">*</span></label>
                                    <input type="number" step="0.01" class="form-control gift-min-cart"
                                           name="gifts[].minCartValue" value="$gift.minCartValue" required>
                                </div>
                                <div class="col-md-6 mb-3">
                                    <label>Max Cart Value <span class="text-danger">*</span></label>
                                    <input type="number" step="0.01" class="form-control gift-max-cart"
                                           name="gifts[].maxCartValue" value="$gift.maxCartValue" required>
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-md-6 mb-3">
                                    <label>Gift Quantity <span class="text-danger">*</span></label>
                                    <input type="number" class="form-control gift-redemptions"
                                           name="gifts[].maxRedemptions" value="$gift.maxRedemptions" required>
                                </div>
                                <div class="mb-3 col-md-6">
                                    <label> Select Partner Store OR <span class="text-danger">*</span></label>
                                    <select class="form-control fofo-store-id mb-2 partnerInfo" name="partnerInfo"
                                            multiple
                                            required>
                                        #foreach($retailer in $retailerInfo)
                                            #set($retailerIdString = $retailer.getPartnerId().toString())
                                            #set($selectedPartner = $gift.fofoStore.split(","))
                                            <option value="$retailer.getPartnerId()"
                                                #if($selectedPartner.contains($retailerIdString))
                                                    selected="selected"
                                                #end>
                                                $retailer.getBusinessName()
                                            </option>
                                        #end
                                    </select>
                                </div>
                            </div>
                        </td>

                        <!-- Additional Details Column -->
                        <td colspan="3">
                            <div class="mb-3">
                                <label>Gift Image <span class="text-danger">*</span></label>
                                <input type="file" class="form-control gift-thumbnail-file" accept="image/*">
                                <input type="hidden" class="gift-thumbnail-id"
                                       name="gifts[].thumbnailDocumentId" value="$gift.thumbnailUrl">
                                <img src="/document/$gift.thumbnailUrl" width="50"
                                     class="mt-2 existing-thumbnail">
                            </div>

                            <div class="mb-3">
                                <label>Product Category <span class="text-danger">*</span></label>
                                <select class="form-control gift-product-category" name="GiftProductCategory" multiple
                                        required>
                                    #foreach($category in $categoryList)
                                        #set($categoryIdString = $category.id.toString())
                                        #set($selectedCategories = $gift.productCategory.split(","))
                                        <option value="$category.id"
                                            #if($selectedCategories.contains($categoryIdString))
                                                selected="selected"
                                            #end>
                                            $category.displayName
                                        </option>
                                    #end
                                </select>
                            </div>
                            <div class="mb-3">
                                <label> Upload CSV<span class="text-danger">*</span></label>
                                <input type="file" class="form-control fofo-store-file" accept=".csv">
                                <input type="hidden" class="fofo-store-id"
                                       name="gifts[].fofoStore" value="$gift.fofoStore">
                                <small class="text-muted">CSV format: S.No,Partner Name,FofoId,Code</small>
                                #if($gift.fofoStoreId)
                                    <div class="mt-1">
                                        <small class="text-success">Existing CSV uploaded</small>
                                    </div>
                                #end
                            </div>
                            <div class="text-end">
                                <button type="button" class="btn btn-sm btn-danger delete-gift"
                                        value="$gift.id">
                                    <i class="fa fa-times"></i> Delete Gift
                                </button>
                            </div>
                        </td>
                    </tr>
                    #end
                </tbody>
            </table>
        </div>
        <div class="form-group">
            <label>Terms & Conditions</label>
            <textarea class="form-control" name="termsCondition"
                      rows="3">$!offer.termsCondition</textarea>
        </div>
    </form>
</div>
<div class="modal-footer">
    <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
    <button type="button" class="btn btn-primary update-offer" value="$offer.id" data-offer-id="$offer.id">Update
        Offer
    </button>
</div>

<script>
    $(function () {
        initMultiselect('.productCategory', 'Categories')
        initMultiselect('.gift-product-category', 'Categories')
        initMultiselect('.paymentMethod', 'Payment method')
        initMultiselect('.partnerInfo', 'Partner')
    })


    function toggleCsvOnPartnerChange(row) {
        const partnerSelect = row.find('.partnerInfo');
        const csvInput = row.find('.fofo-store-file');

        if (partnerSelect.val() && partnerSelect.val().length > 0) {
            csvInput.prop('disabled', true).val('');
        } else {
            csvInput.prop('disabled', false);
        }
    }


    $(document).on('change', '.partnerInfo', function () {
        const row = $(this).closest('tr.gift-row');
        toggleCsvOnPartnerChange(row);
    });


    $('#editOfferModal').on('shown.bs.modal', function () {
        $(this).find('tr.gift-row').each(function () {
            toggleCsvOnPartnerChange($(this));
        });
    });
    $(document).on('change', '.default-gift-radio', function () {
        if ($(this).is(':checked')) {
            $('.default-gift-radio').not(this).prop('checked', false);
        }
    });
</script>