Subversion Repositories SmartDukaan

Rev

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

$(function() {
        callback = function(value) {
                removeItemFromLocalStorage(giftItemId);
                if (isNaN(value)) {
                        bootbox("No of watches should be a number. Set '0' specifically");
                        return;
                } else {
                        loadCart("main-content", value);
                }
        }
        $(document).on('click', ".cart_icon_header", function() {
                if (typeof hasGift == "undefined") {
                        hasGift = false;
                }
                if (hasGift) {
                        bootBoxObj = {
                                size: "medium",
                                title: "Add Number of Watch as Gift",
                                callback: callback,
                                inputType: 'number'
                        };

                        bootbox.prompt(bootBoxObj);
                } else {
                        loadCart('main-content', 0);
                }
        });


        $(document).on('click', ".cart-checkout", function() {
                checkout("main-content");
        });

        $(document).on('click', ".add-bag-submit", function() {
                added = false;
                $('#catalogModalBody').hide();
                var itemId = $(this).closest('tr').attr('data');

                var poItemId = $(this).closest('tr').find("#poItemId").val();


                var poId = $(this).closest('tr').find("#poId").val();


                $("#bagModel .itemId").val(itemId);

                $("#bagModel .quantity").val(0);

                doGetAjaxRequestHandler(context + "/checkItemAvailability/?itemId=" + itemId, function(response) {
                        var obj = JSON.parse(response);

                        $(".modal-body h4.bagModalProductInfo.modelHeaderCustom > span").text(obj.displayName);

                        $(".modal-body h4.bagModalAvailability.modelHeaderCustom > span").text(obj.availability);
                        inputEle = [];

                        if ("earlyImeis" in obj && obj.earlyImeis.length > 0) {

                                for (var i in obj.earlyImeis) {
                                        inputEle.push('<span class="input-group-addon">');
                                        inputEle.push('<input type="checkbox" aria-label="..." name="interest" value="' + obj.earlyImeis[i] + '" id="' + obj.earlyImeis[i] + '"/>');
                                        inputEle.push('<label for="' + obj.earlyImeis[i] + '">' + obj.earlyImeis[i] + '</label>');
                                        inputEle.push('</span>');
                                        if (i % 3 == 2) {
                                                inputEle.push('</br>');
                                        }
                                }
                                $(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom > span").html(inputEle.join(''));
                                $(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom").show();
                                $(".modal-body h4.bagModalQuantity.modelHeaderCustom").hide();
                        } else {
                                $(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom > span").html("");
                                $(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom").hide();
                                $(".modal-body h4.bagModalQuantity.modelHeaderCustom").show();
                        }

                        $("#bagModel .availability").val(obj.availability);

                        $("#bagModel .poitemId").val(poItemId);
                        $("#bagModel .poId").val(poId);

                        $('#catalogModalBody').show();
                });
        });

        // addToBagButton

        $(document).on('click', "#addToBagButton", function() {
                var itemId = $("#bagModel .itemId").val();
                var poitemId = $("#bagModel .poitemId").val();
                var poId = $("#bagModel .poId").val();

                var tempAvailability = $("#bagModel .availability").val();
                var quantity = $("#bagModel .quantity").val();
                imeiCount = $('h4.bagModalEarlyImeis').find('input').length;
                if (imeiCount > 0) {
                        quantity = $('h4.bagModalEarlyImeis').find('input:checked').length;
                        if (quantity == 0) {
                                alert("Please check one of the imei(s)");
                                return;
                        }
                } else if (!quantity || parseInt(quantity) <= 0 || isNaN(parseInt(quantity)) || quantity.indexOf('.') != -1) {
                        alert("Please enter valid quantity");
                        return;
                }

                doGetAjaxRequestHandler(context + "/checkItemAvailability/?itemId=" + itemId, function(response) {
                        var obj = JSON.parse(response);
                        console.log(obj);
                        if (obj.availability < parseInt(quantity) || obj.availability == 0) {
                                alert("You don't have enough inventory of this item");
                                return;
                        }
                        var obj = { 'itemId': obj.itemId, 'displayName': obj.displayName, 'quantity': parseInt(quantity), 'iconUrl': obj.iconUrl, 'poItemId': poitemId, 'poId': poId };
                        if (imeiCount > 0) {
                                obj['imeis'] = [];
                                $('h4.bagModalEarlyImeis').find('input:checked').each(function(index, ele) {
                                        obj['imeis'].push(ele.value);
                                });
                        }
                        console.log(obj);
                        addItemInLocalStorage(obj);
                        //alert("Item added to bag successfully");
                        showToast("Item, Item added to bag successfully!");
                        $('#bagModel').modal('hide');

                });

        });

        // add to bag with cart page

        $(document).on('click', "#addToBagButtonwithCart", function () {
                var itemId = $("#bagModel .itemId").val();
                var poitemId = $("#bagModel .poitemId").val();
                var poId = $("#bagModel .poId").val();
                console.log(poitemId)
                console.log(poId)

                var tempAvailability = $("#bagModel .availability").val();
                var quantity = $("#bagModel .quantity").val();
                imeiCount = $('h4.bagModalEarlyImeis').find('input').length;
                if (imeiCount > 0) {
                        quantity = $('h4.bagModalEarlyImeis').find('input:checked').length;
                        if (quantity == 0) {
                                alert("Please check one of the imei(s)");
                                return;
                        }
                } else if (!quantity || parseInt(quantity) <= 0 || isNaN(parseInt(quantity)) || quantity.indexOf('.') != -1) {
                        alert("Please enter valid quantity");
                        return;
                }

                doGetAjaxRequestHandler(context + "/checkItemAvailability/?itemId=" + itemId, function (response) {
                        var obj = JSON.parse(response);
                        console.log(obj);
                        if (obj.availability < parseInt(quantity) || obj.availability == 0) {
                                alert("You don't have enough inventory of this item");
                                return;
                        }
                        var obj = {
                                'itemId': obj.itemId,
                                'displayName': obj.displayName,
                                'quantity': parseInt(quantity),
                                'iconUrl': obj.iconUrl,
                                'poItemId': poitemId,
                                'poId': poId
                        };
                        if (imeiCount > 0) {
                                obj['imeis'] = [];
                                $('h4.bagModalEarlyImeis').find('input:checked').each(function (index, ele) {
                                        obj['imeis'].push(ele.value);
                                });
                        }
                        console.log(obj);
                        addItemInLocalStorage(obj);
                        //alert("Item added to bag successfully");
                        showToast("Item, Item added to bag successfully!");
                        $('#bagModel').modal('hide');
                        // Trigger the click event for the cart icon
                        $(".cart_icon_header").trigger('click');

                });

        });

        // direct go billing page skip checkout page
        $(document).on('click', "#addToBagButtonwithBillingpage", function () {
                var itemId = $("#bagModel .itemId").val();
                var poitemId = $("#bagModel .poitemId").val();
                var poId = $("#bagModel .poId").val();
                console.log(poitemId)
                console.log(poId)

                var tempAvailability = $("#bagModel .availability").val();
                var quantity = $("#bagModel .quantity").val();
                imeiCount = $('h4.bagModalEarlyImeis').find('input').length;
                if (imeiCount > 0) {
                        quantity = $('h4.bagModalEarlyImeis').find('input:checked').length;
                        if (quantity == 0) {
                                alert("Please check one of the imei(s)");
                                return;
                        }
                } else if (!quantity || parseInt(quantity) <= 0 || isNaN(parseInt(quantity)) || quantity.indexOf('.') != -1) {
                        alert("Please enter valid quantity");
                        return;
                }

                doGetAjaxRequestHandler(context + "/checkItemAvailability/?itemId=" + itemId, function (response) {
                        var obj = JSON.parse(response);
                        console.log(obj);
                        if (obj.availability < parseInt(quantity) || obj.availability == 0) {
                                alert("You don't have enough inventory of this item");
                                return;
                        }
                        var obj = {
                                'itemId': obj.itemId,
                                'displayName': obj.displayName,
                                'quantity': parseInt(quantity),
                                'iconUrl': obj.iconUrl,
                                'poItemId': poitemId,
                                'poId': poId
                        };
                        if (imeiCount > 0) {
                                obj['imeis'] = [];
                                $('h4.bagModalEarlyImeis').find('input:checked').each(function (index, ele) {
                                        obj['imeis'].push(ele.value);
                                });
                        }
                        console.log(obj);
                        addItemInLocalStorage(obj);
                        //alert("Item added to bag successfully");
                        showToast("Item, Item added to bag successfully!");
                        $('#bagModel').modal('hide');
                        // Trigger the click event for the cart icon
                        $(".cart-checkout").trigger('click');

                });

        });

        $(document).on('click', ".cart-trash", function() {
                var itemId = $(this).attr('data');
                removeItemFromLocalStorage(itemId);
                $('div[itemId="' + itemId + '"]').remove();
                if ($('#cart-details').html().trim() == "") {
                        $('#cart-details-empty').show();
                        $('#cart-checkout').hide();
                }
        });


        $(document).on('click', ".web-offer-submit", function() {
                let catalogId = $(this).data("catalogid");
                console.log(catalogId)

                doGetAjaxRequestHandler(context + "/getWebOfferByCatalogId?catalogItemId="
                        + catalogId, function(response) {

                                $('#todayOfferModal .modal-content').html(response);

                        });

        });


        $(document).on('click', ".bill-now", function() {
                emptyBag();

                var itemId = $(this).data('itemid');
                var imei = $(this).data('imei');
                var bagObj = { itemId: itemId, displayName: "", quantity: 1, imeis: [imei] }
                addItemInLocalStorage(bagObj);
                checkout('main-content');
        });

        $(document).on('change', ".cart-qty", function() {
                var itemId = $(this).attr('data');
                var maxQty = $(this).attr('max');
                var qty = $(this).val();
                if (!qty) {
                        qty = 0;
                }
                if (parseInt(qty) < 0) {
                        alert("Invalid quantity");
                        $(this).val(0);
                        qty = 0;
                }
                if (parseInt(qty) > parseInt(maxQty)) {
                        alert("You don't have availability of " + qty);
                        $(this).val(maxQty);
                        qty = maxQty;
                }
                changeQuantityInLocalStorage(itemId, qty);
        });
});


function emptyBag() {
        delete localStorage.getItem("bag");
}

function addItemInLocalStorage(bagObj) {
        if (localStorage.getItem("bag") != null) {
                var bag = JSON.parse(localStorage.getItem("bag"));
                bag[bagObj.itemId] = bagObj
                localStorage.setItem("bag", JSON.stringify(bag));
                bag = localStorage.getItem("bag")
                $("#cart_bar").find('span').text(Object.keys(JSON.parse(bag)).length);
        }
        else {
                var tempObj = {};
                tempObj[bagObj.itemId] = bagObj
                localStorage.setItem("bag", JSON.stringify(tempObj));
                var bag = localStorage.getItem("bag")
                $("#cart_bar").find('span').text(Object.keys(JSON.parse(bag)).length);
        }
}


function changeQuantityInLocalStorage(itemId, newQuantity) {
        var bag = JSON.parse(localStorage.getItem("bag"));
        if (typeof bag[itemId] == "undefined") {
                bag[itemId] = {};
                bag[itemId].itemId = itemId;
                bag[itemId].displayName = "SmartDukaan Gift Watch";
                bag[itemId].iconUrl = "";
                delete bag["giftQty"];

        }
        bag[itemId].quantity = newQuantity;
        localStorage.setItem("bag", JSON.stringify(bag));
}

function removeItemFromLocalStorage(itemId) {
        if (localStorage.getItem("bag") != null) {
                var bag = JSON.parse(localStorage.getItem("bag"));
                delete bag[itemId];
                localStorage.setItem("bag", JSON.stringify(bag));
                $("#cart_bar").find('span').text(Object.keys(bag).length);
        }
}

function addGiftQty(giftQty) {
        if (localStorage.getItem("bag") != null) {
                var bag = JSON.parse(localStorage.getItem("bag"));
                bag["giftQty"] = giftQty;
                localStorage.setItem("bag", JSON.stringify(bag));
        }
}
function removeGiftQty() {
        if (localStorage.getItem("bag") != null) {
                var bag = JSON.parse(localStorage.getItem("bag"));
                delete bag["giftQty"];
                localStorage.setItem("bag", JSON.stringify(bag));
        }
}

function saveBag(bagObj) {
        localStorage.setItem("bag", JSON.stringify(bagObj));
}

function emptyBag() {
        localStorage.setItem("bag", JSON.stringify({}));
        $("#cart_bar").find('span').text(0);
}

function loadCart(domId, giftQty) {
        addGiftQty(giftQty);
        var params = {
                "cartData": localStorage.getItem("bag")
        }
        doPostAjaxRequestWithParamsHandler(context + "/cart", params, function(response) {
                $('#' + domId).html(response);
                removeGiftQty();
        });
}

function checkout(domId) {
        var params = {
                "cartData": localStorage.getItem("bag")
        }


        bootbox.alert({
                title: "<div class = 'disclosurehindata'> <img src='resources/images/alert-icon.png' style='width:10%'></div>",
                message: "<div class = 'disclosurehindata'> <img src='resources/images/activation-alert.png' style='width:100%'> </div>"
                ,
                buttons: {
                        ok: {
                                label: 'Agree',
                                className: 'btn-success'
                        },

                },
                callback: function() {
                        doPostAjaxRequestWithParamsHandler(context + "/validate-cart", params, function(response) {
                                $('#' + domId).html(response);
                                var obj = JSON.parse(response);
                                redirectCart(obj.redirectUrl, obj.params, "main-content");
                                $('#main-content').html(response);
                        });

                }
        });

}

//On checkout we are also setting imeis why?
function redirectCart(url, cartData, domId) {
        var params = {
                "cartData": cartData
        }
        doPostAjaxRequestWithParamsHandler(context + url, params, function(response) {
                $('#' + domId).html(response);
                cartData = JSON.parse(cartData);
                for (itemId in cartData) {
                        if ('imeis' in cartData[itemId]) {
                                $('#order-details').find('input[name="serialNumber"][itemId="' + itemId + '"]').each(function(i, e) {
                                        if ($(e).attr("itemtype") == "SERIALIZED") {
                                                e.value = cartData[itemId].imeis[i];
                                        } else {
                                                cartData[itemId].imeis = [];

                                        }
                                });
                        }
                }
                saveBag(cartData);
                window.dispatchEvent(new Event('resize'));
        });
}