Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
23343 ashik.ali 1
$(function() {
35458 amit 2
	const giftCallback = function(value) {
24203 amit.gupta 3
		removeItemFromLocalStorage(giftItemId);
28339 tejbeer 4
		if (isNaN(value)) {
35458 amit 5
			bootbox.alert("No of watches should be a number. Set '0' specifically");
24202 amit.gupta 6
			return;
28339 tejbeer 7
		} else {
24202 amit.gupta 8
			loadCart("main-content", value);
9
		}
35458 amit 10
	};
11
 
27754 amit.gupta 12
	$(document).on('click', ".cart_icon_header", function() {
35458 amit 13
		if (typeof hasGift === "undefined") {
25738 amit.gupta 14
			hasGift = false;
15
		}
28339 tejbeer 16
		if (hasGift) {
35458 amit 17
			const bootBoxObj = {
28339 tejbeer 18
				size: "medium",
19
				title: "Add Number of Watch as Gift",
35458 amit 20
				callback: giftCallback,
28339 tejbeer 21
				inputType: 'number'
22
			};
24202 amit.gupta 23
			bootbox.prompt(bootBoxObj);
24
		} else {
28339 tejbeer 25
			loadCart('main-content', 0);
24202 amit.gupta 26
		}
23343 ashik.ali 27
	});
28339 tejbeer 28
 
29
 
27754 amit.gupta 30
	$(document).on('click', ".cart-checkout", function() {
23343 ashik.ali 31
		checkout("main-content");
32
	});
28339 tejbeer 33
 
27754 amit.gupta 34
	$(document).on('click', ".add-bag-submit", function() {
23405 amit.gupta 35
		$('#catalogModalBody').hide();
27658 tejbeer 36
		var itemId = $(this).closest('tr').attr('data');
28339 tejbeer 37
 
38
		var poItemId = $(this).closest('tr').find("#poItemId").val();
39
 
32639 ranu 40
 
28339 tejbeer 41
		var poId = $(this).closest('tr').find("#poId").val();
42
 
32639 ranu 43
 
23343 ashik.ali 44
		$("#bagModel .itemId").val(itemId);
32639 ranu 45
 
23343 ashik.ali 46
		$("#bagModel .quantity").val(0);
32639 ranu 47
 
28339 tejbeer 48
		doGetAjaxRequestHandler(context + "/checkItemAvailability/?itemId=" + itemId, function(response) {
23347 ashik.ali 49
			var obj = JSON.parse(response);
32639 ranu 50
 
23347 ashik.ali 51
			$(".modal-body h4.bagModalProductInfo.modelHeaderCustom > span").text(obj.displayName);
32639 ranu 52
 
23347 ashik.ali 53
			$(".modal-body h4.bagModalAvailability.modelHeaderCustom > span").text(obj.availability);
23405 amit.gupta 54
			inputEle = [];
32639 ranu 55
 
56
			if ("earlyImeis" in obj && obj.earlyImeis.length > 0) {
57
 
58
				for (var i in obj.earlyImeis) {
23405 amit.gupta 59
					inputEle.push('<span class="input-group-addon">');
28339 tejbeer 60
					inputEle.push('<input type="checkbox" aria-label="..." name="interest" value="' + obj.earlyImeis[i] + '" id="' + obj.earlyImeis[i] + '"/>');
61
					inputEle.push('<label for="' + obj.earlyImeis[i] + '">' + obj.earlyImeis[i] + '</label>');
23405 amit.gupta 62
					inputEle.push('</span>');
28339 tejbeer 63
					if (i % 3 == 2) {
23967 amit.gupta 64
						inputEle.push('</br>');
65
					}
23405 amit.gupta 66
				}
30366 amit.gupta 67
				$(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom > span").html(inputEle.join(''));
24440 amit.gupta 68
				$(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom").show();
69
				$(".modal-body h4.bagModalQuantity.modelHeaderCustom").hide();
23405 amit.gupta 70
			} else {
32639 ranu 71
				$(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom > span").html("");
24440 amit.gupta 72
				$(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom").hide();
73
				$(".modal-body h4.bagModalQuantity.modelHeaderCustom").show();
32639 ranu 74
			}
23405 amit.gupta 75
 
23347 ashik.ali 76
			$("#bagModel .availability").val(obj.availability);
28339 tejbeer 77
 
78
			$("#bagModel .poitemId").val(poItemId);
79
			$("#bagModel .poId").val(poId);
80
 
23405 amit.gupta 81
			$('#catalogModalBody').show();
23347 ashik.ali 82
		});
23343 ashik.ali 83
	});
28339 tejbeer 84
 
35458 amit 85
	// Shared function for add to bag operations
86
	function handleAddToBag(afterAddCallback) {
23343 ashik.ali 87
		var itemId = $("#bagModel .itemId").val();
28339 tejbeer 88
		var poitemId = $("#bagModel .poitemId").val();
89
		var poId = $("#bagModel .poId").val();
35458 amit 90
		var quantity = $("#bagModel .quantity").val();
91
		var imeiCount = $('h4.bagModalEarlyImeis').find('input').length;
28339 tejbeer 92
 
93
		if (imeiCount > 0) {
24440 amit.gupta 94
			quantity = $('h4.bagModalEarlyImeis').find('input:checked').length;
35458 amit 95
			if (quantity === 0) {
23405 amit.gupta 96
				alert("Please check one of the imei(s)");
97
				return;
98
			}
35458 amit 99
		} else if (!quantity || parseInt(quantity) <= 0 || isNaN(parseInt(quantity)) || quantity.indexOf('.') !== -1) {
23343 ashik.ali 100
			alert("Please enter valid quantity");
101
			return;
102
		}
28339 tejbeer 103
 
104
		doGetAjaxRequestHandler(context + "/checkItemAvailability/?itemId=" + itemId, function(response) {
35458 amit 105
			var availabilityObj = JSON.parse(response);
106
			if (availabilityObj.availability < parseInt(quantity) || availabilityObj.availability === 0) {
23500 ashik.ali 107
				alert("You don't have enough inventory of this item");
108
				return;
109
			}
35458 amit 110
			var bagItem = {
111
				'itemId': availabilityObj.itemId,
112
				'displayName': availabilityObj.displayName,
113
				'quantity': parseInt(quantity),
114
				'iconUrl': availabilityObj.iconUrl,
115
				'poItemId': poitemId,
116
				'poId': poId
117
			};
28339 tejbeer 118
			if (imeiCount > 0) {
35458 amit 119
				bagItem['imeis'] = [];
28339 tejbeer 120
				$('h4.bagModalEarlyImeis').find('input:checked').each(function(index, ele) {
35458 amit 121
					bagItem['imeis'].push(ele.value);
23500 ashik.ali 122
				});
123
			}
35458 amit 124
			addItemInLocalStorage(bagItem);
125
			showToast("Item added to bag successfully!");
23500 ashik.ali 126
			$('#bagModel').modal('hide');
35458 amit 127
			if (afterAddCallback) {
128
				afterAddCallback();
129
			}
28339 tejbeer 130
		});
35458 amit 131
	}
28339 tejbeer 132
 
35458 amit 133
	$(document).on('click', "#addToBagButton", function() {
134
		handleAddToBag();
23343 ashik.ali 135
	});
28339 tejbeer 136
 
35458 amit 137
	$(document).on('click', "#addToBagButtonwithCart", function() {
138
		handleAddToBag(function() {
32639 ranu 139
			$(".cart_icon_header").trigger('click');
140
		});
141
	});
142
 
35458 amit 143
	$(document).on('click', "#addToBagButtonwithBillingpage", function() {
144
		handleAddToBag(function() {
32653 ranu 145
			$(".cart-checkout").trigger('click');
146
		});
147
	});
148
 
28339 tejbeer 149
	$(document).on('click', ".cart-trash", function() {
23343 ashik.ali 150
		var itemId = $(this).attr('data');
151
		removeItemFromLocalStorage(itemId);
152
		$('div[itemId="' + itemId + '"]').remove();
28339 tejbeer 153
		if ($('#cart-details').html().trim() == "") {
23343 ashik.ali 154
			$('#cart-details-empty').show();
155
			$('#cart-checkout').hide();
156
		}
157
	});
28339 tejbeer 158
 
159
 
30596 tejbeer 160
	$(document).on('click', ".web-offer-submit", function() {
161
		let catalogId = $(this).data("catalogid");
162
		console.log(catalogId)
163
 
164
		doGetAjaxRequestHandler(context + "/getWebOfferByCatalogId?catalogItemId="
165
			+ catalogId, function(response) {
166
 
167
				$('#todayOfferModal .modal-content').html(response);
168
 
169
			});
170
 
171
	});
172
 
173
 
28339 tejbeer 174
	$(document).on('click', ".bill-now", function() {
26263 amit.gupta 175
		emptyBag();
28339 tejbeer 176
 
26263 amit.gupta 177
		var itemId = $(this).data('itemid');
178
		var imei = $(this).data('imei');
28339 tejbeer 179
		var bagObj = { itemId: itemId, displayName: "", quantity: 1, imeis: [imei] }
26263 amit.gupta 180
		addItemInLocalStorage(bagObj);
181
		checkout('main-content');
182
	});
28339 tejbeer 183
 
27754 amit.gupta 184
	$(document).on('change', ".cart-qty", function() {
23343 ashik.ali 185
		var itemId = $(this).attr('data');
186
		var maxQty = $(this).attr('max');
187
		var qty = $(this).val();
28339 tejbeer 188
		if (!qty) {
23343 ashik.ali 189
			qty = 0;
190
		}
28339 tejbeer 191
		if (parseInt(qty) < 0) {
23343 ashik.ali 192
			alert("Invalid quantity");
193
			$(this).val(0);
194
			qty = 0;
195
		}
28339 tejbeer 196
		if (parseInt(qty) > parseInt(maxQty)) {
197
			alert("You don't have availability of " + qty);
23343 ashik.ali 198
			$(this).val(maxQty);
199
			qty = maxQty;
200
		}
201
		changeQuantityInLocalStorage(itemId, qty);
202
	});
203
});
204
 
205
 
28339 tejbeer 206
function addItemInLocalStorage(bagObj) {
35458 amit 207
	var bag = localStorage.getItem("bag");
208
	var bagData = bag ? JSON.parse(bag) : {};
209
	bagData[bagObj.itemId] = bagObj;
210
	localStorage.setItem("bag", JSON.stringify(bagData));
211
	$("#cart_bar").find('span').text(Object.keys(bagData).length);
23343 ashik.ali 212
}
213
 
214
 
28339 tejbeer 215
function changeQuantityInLocalStorage(itemId, newQuantity) {
35458 amit 216
	var bag = JSON.parse(localStorage.getItem("bag") || "{}");
217
	if (typeof bag[itemId] === "undefined") {
218
		bag[itemId] = {
219
			itemId: itemId,
220
			displayName: "SmartDukaan Gift Watch",
221
			iconUrl: ""
222
		};
24203 amit.gupta 223
		delete bag["giftQty"];
24202 amit.gupta 224
	}
23343 ashik.ali 225
	bag[itemId].quantity = newQuantity;
28339 tejbeer 226
	localStorage.setItem("bag", JSON.stringify(bag));
23343 ashik.ali 227
}
228
 
28339 tejbeer 229
function removeItemFromLocalStorage(itemId) {
35458 amit 230
	var bagStr = localStorage.getItem("bag");
231
	if (bagStr) {
232
		var bag = JSON.parse(bagStr);
23343 ashik.ali 233
		delete bag[itemId];
28339 tejbeer 234
		localStorage.setItem("bag", JSON.stringify(bag));
23343 ashik.ali 235
		$("#cart_bar").find('span').text(Object.keys(bag).length);
236
	}
237
}
238
 
24202 amit.gupta 239
function addGiftQty(giftQty) {
35458 amit 240
	var bagStr = localStorage.getItem("bag");
241
	if (bagStr) {
242
		var bag = JSON.parse(bagStr);
24202 amit.gupta 243
		bag["giftQty"] = giftQty;
28339 tejbeer 244
		localStorage.setItem("bag", JSON.stringify(bag));
24202 amit.gupta 245
	}
246
}
35458 amit 247
 
24207 amit.gupta 248
function removeGiftQty() {
35458 amit 249
	var bagStr = localStorage.getItem("bag");
250
	if (bagStr) {
251
		var bag = JSON.parse(bagStr);
24207 amit.gupta 252
		delete bag["giftQty"];
28339 tejbeer 253
		localStorage.setItem("bag", JSON.stringify(bag));
24207 amit.gupta 254
	}
255
}
24202 amit.gupta 256
 
24440 amit.gupta 257
function saveBag(bagObj) {
258
	localStorage.setItem("bag", JSON.stringify(bagObj));
259
}
260
 
28339 tejbeer 261
function emptyBag() {
262
	localStorage.setItem("bag", JSON.stringify({}));
23343 ashik.ali 263
	$("#cart_bar").find('span').text(0);
264
}
265
 
28339 tejbeer 266
function loadCart(domId, giftQty) {
24202 amit.gupta 267
	addGiftQty(giftQty);
23343 ashik.ali 268
	var params = {
28339 tejbeer 269
		"cartData": localStorage.getItem("bag")
270
	}
271
	doPostAjaxRequestWithParamsHandler(context + "/cart", params, function(response) {
23343 ashik.ali 272
		$('#' + domId).html(response);
24207 amit.gupta 273
		removeGiftQty();
23343 ashik.ali 274
	});
275
}
276
 
28339 tejbeer 277
function checkout(domId) {
23343 ashik.ali 278
	var params = {
28339 tejbeer 279
		"cartData": localStorage.getItem("bag")
280
	}
28382 tejbeer 281
 
282
 
283
	bootbox.alert({
284
		title: "<div class = 'disclosurehindata'> <img src='resources/images/alert-icon.png' style='width:10%'></div>",
285
		message: "<div class = 'disclosurehindata'> <img src='resources/images/activation-alert.png' style='width:100%'> </div>"
286
		,
287
		buttons: {
288
			ok: {
289
				label: 'Agree',
290
				className: 'btn-success'
291
			},
292
 
293
		},
294
		callback: function() {
295
			doPostAjaxRequestWithParamsHandler(context + "/validate-cart", params, function(response) {
296
				$('#' + domId).html(response);
297
				var obj = JSON.parse(response);
298
				redirectCart(obj.redirectUrl, obj.params, "main-content");
299
				$('#main-content').html(response);
300
			});
301
 
302
		}
23343 ashik.ali 303
	});
28382 tejbeer 304
 
23343 ashik.ali 305
}
306
 
26817 amit.gupta 307
//On checkout we are also setting imeis why?
28339 tejbeer 308
function redirectCart(url, cartData, domId) {
23500 ashik.ali 309
	var params = {
28339 tejbeer 310
		"cartData": cartData
23500 ashik.ali 311
	}
28339 tejbeer 312
	doPostAjaxRequestWithParamsHandler(context + url, params, function(response) {
313
		$('#' + domId).html(response);
314
		cartData = JSON.parse(cartData);
315
		for (itemId in cartData) {
316
			if ('imeis' in cartData[itemId]) {
317
				$('#order-details').find('input[name="serialNumber"][itemId="' + itemId + '"]').each(function(i, e) {
318
					if ($(e).attr("itemtype") == "SERIALIZED") {
319
						e.value = cartData[itemId].imeis[i];
320
					} else {
321
						cartData[itemId].imeis = [];
322
 
323
					}
324
				});
325
			}
326
		}
327
		saveBag(cartData);
328
		window.dispatchEvent(new Event('resize'));
329
	});
23343 ashik.ali 330
}