Subversion Repositories SmartDukaan

Rev

Rev 34317 | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

function createSchemeOnReady() {
    $("form#create-scheme-form input").each(function () {
        $(this).attr('autocomplete', 'off');
    });
    // validate the comment form when it is submitted
    $('#create-scheme-form').validate({
        rules: {
            schemeName: {
                required: true
            },
            schemeType: {
                required: true
            },
            amountType: {
                required: true
            },
            schemeAmount: {
                required: true
            },
            schemeReference: {
                required: true
            },
            startDate: {
                required: true
            },
            endDate: {
                required: true
            },
            itemIdsDescription: {
                required: true
            },
            retailerIds: {
                required: true
            }
        },
        messages: {
            name: {
                required: "Please enter the name"
            },
            schemeType: {
                required: "Please choose type"
            },
            amountType: {
                required: "Please choose amount type"
            },
            schemeAmount: {
                required: "Please enter the amount"
            },
            schemeReference: {
                required: "Please enter a reference"
            },
            startDate: {
                require: "Please choose start date"
            },
            endDate: {
                require: "Please choose end date"
            },
            itemIdsDescription: {
                required: "Please choose items"
            },
            retailerIds: {
                required: "Please enter retailer ids"
            }
        },
        submitHandler: function (form, event) {
            event.preventDefault();
            if (validateSchemeDetails()) {
                alert("Please fix errors");
                return false;
            }
            let json = schemeDetailsJson();
            console.log("schemeJson = " + json);
            if (confirm("Are you sure you want to create Scheme!") === true) {
                doPostAjaxRequestWithJsonHandler(context + "/createScheme", json, function (response) {
                    alert("Scheme created successfully!");
                    $('#main-content').html(response);
                });
                return false; // required to block normal submit since you used ajax
            }
        }
    });

}


$('#retailerAll').on('change', function () {
    if (this.checked) {
        $('#retailerAll').val('true');
        $('#retailer-ids').html('');
    } else {
        $('#retailerAll').val('false');
        $('#retailer-ids').html('<input placeholder="Retailer Ids" id="retailerIds" name="retailerIds" type="text" value="" pattern="^[0-9]{1,10}(?:,[0-9]{1,10})*$" title="Comma Seperated Positive Integer Retailer Ids" class="form-control input-sm">');
    }
});

$(document).on('change', '#schemeType', function () {
    debugger;
    $("#cashbackScheme").prop('checked', false).prop('disabled', true);
    let schemeType = $(this).val();
    console.log("Scheme type " + schemeType);
    if (schemeType === 'ACTIVATION') {
        $("#cashbackScheme").prop('disabled', false);

    }
});

$(document).on('change', ".stockTransactionType, .amountType", function () {
    let stockTransactionType = $(".stockTransactionType").val();
    let amountType = $('.amountType').val();
    if (stockTransactionType !== null && amountType !== null) {


        let options = document.querySelectorAll("#schemeType option");

        Array.from(options).slice(1).forEach(option => {
            let currentStockTransactionType = $(option).data('stocktransactiontype'); // current stock transaction type
            let currentAmountType = $(option).data('amounttype'); // Current amount type
            if (currentAmountType === amountType && currentStockTransactionType === stockTransactionType) {
                option.style.display = "";
            } else {
                option.style.display = "none";
            }
        });
    }
});


function validateSchemeDetails() {
    console.log("validating Scheme Details...");
    var error = false;
    var name = $("form#create-scheme-form input[name=schemeName]").val();
    console.log("schemeName = " + name);
    let regionIds = $('.criteria-regionids').val();
    //console.log(regionIds);
    if (regionIds.length > 1 && regionIds.indexOf('5') > 0) {
        alert("Cant add ALL region with other regions");
        error = true;
        return error;
    }
    if (regionIds.length == 0) {
        alert("Region required");
        error = true;
        return error;
    }
    $("#schemeName").removeClass("border-highlight");
    if (name == "") {
        alert("Name is required");
        $("#schemeName").addClass("border-highlight");
        error = true;
        return error;
    }
    var reference = $("#schemeReference").val();
    $("#schemeReference").removeClass("border-highlight");
    if (reference == "" || reference.trim() === '') {
        alert("Reference is required");
        $("#schemeReference").addClass("border-highlight");
        error = true;
        return error;
    }
    var schemeType = $("#schemeType option:selected").val();
    console.log("schemeType = " + schemeType);
    $("#schemeType").removeClass("border-highlight");
    if (schemeType == "") {
        alert("Please choose Scheme Type");
        $("#schemeType").addClass("border-highlight");
        error = true;
        return error;
    }
    var amountType = $("#amountType option:selected").val();
    console.log("amountType = " + amountType);
    $("#amountType").removeClass("border-highlight");
    if (amountType == "") {
        alert("Please choose Amount Type");
        $("#amountType").addClass("border-highlight");
        error = true;
        return error;
    }
    var amount = $("form#create-scheme-form input[name=schemeAmount]").val();
    console.log("amount = " + amount);
    $("#schemeAmount").removeClass("border-highlight");
    if (amount == "") {
        $("form#create-scheme-form input[name=schemeAmount]").val(0);
    } else if (amount <= 0) {
        alert("Amount should be greater than 0");
        $("#schemeAmount").addClass("border-highlight");
        error = true;
        return error;
    }


    //$('#brand-value').text($(this).text());
    $("#tag-listing-brand-value").removeClass("border-highlight");
    if ($("#tag-listing-brand-value").text() == "Brands") {
        alert("Please choose Brand");
        $("#tag-listing-brand-value").addClass("border-highlight");
        error = true;
        return error;
    }

    $("select.catalogItemsDescription").removeClass("border-hightlight");
    var itemIdsString = $("select.catalogItemsDescription").val();
    debugger;
    if (itemIdsString == null) {
        alert("Please choose items");
        $("select.catalogItemsDescription").addClass("border-highlight");
        error = true;
        return error;
    }

    console.log("validation scheme error = " + error);
    return error;
}

function schemeDetailsJson() {
    var schemeObject = {};
    schemeObject['description'] = $("form#create-scheme-form input[name=schemeName]").val();
    schemeObject['type'] = $("#schemeType option:selected").val();
    schemeObject['name'] = $("#schemeType option:selected").html();
    schemeObject['amountType'] = $("#amountType option:selected").val();
    schemeObject['amount'] = $('#schemeAmount').val();
    schemeObject['partnerType'] = $('#retailerType').val();
    schemeObject['cashback'] = $("#cashbackScheme").is(":checked")
    schemeObject['startDate'] = $("#schemeDuration").data('daterangepicker').startDate.format(moment.HTML5_FMT.DATETIME_LOCAL_SECONDS);
    schemeObject['endDate'] = $("#schemeDuration").data('daterangepicker').endDate.format(moment.HTML5_FMT.DATETIME_LOCAL_SECONDS);
    schemeObject['catalogIds'] = $("select.catalogItemsDescription").val();
    schemeObject['regionIds'] = $("form#create-scheme-form .criteria-regionids").val();
    schemeObject['reference'] = $("#schemeReference").val();
    return JSON.stringify(schemeObject);
}