Subversion Repositories SmartDukaan

Rev

Rev 35459 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
23343 ashik.ali 1
$(function() {
35459 amit 2
	callback = function(value) {
24203 amit.gupta 3
		removeItemFromLocalStorage(giftItemId);
28339 tejbeer 4
		if (isNaN(value)) {
35459 amit 5
			bootbox("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
		}
35459 amit 10
	}
27754 amit.gupta 11
	$(document).on('click', ".cart_icon_header", function() {
35459 amit 12
		if (typeof hasGift == "undefined") {
25738 amit.gupta 13
			hasGift = false;
14
		}
28339 tejbeer 15
		if (hasGift) {
35459 amit 16
			bootBoxObj = {
28339 tejbeer 17
				size: "medium",
18
				title: "Add Number of Watch as Gift",
35459 amit 19
				callback: callback,
28339 tejbeer 20
				inputType: 'number'
21
			};
35459 amit 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() {
35459 amit 35
		added = false;
23405 amit.gupta 36
		$('#catalogModalBody').hide();
27658 tejbeer 37
		var itemId = $(this).closest('tr').attr('data');
28339 tejbeer 38
 
39
		var poItemId = $(this).closest('tr').find("#poItemId").val();
40
 
32639 ranu 41
 
28339 tejbeer 42
		var poId = $(this).closest('tr').find("#poId").val();
43
 
32639 ranu 44
 
23343 ashik.ali 45
		$("#bagModel .itemId").val(itemId);
32639 ranu 46
 
23343 ashik.ali 47
		$("#bagModel .quantity").val(0);
32639 ranu 48
 
28339 tejbeer 49
		doGetAjaxRequestHandler(context + "/checkItemAvailability/?itemId=" + itemId, function(response) {
23347 ashik.ali 50
			var obj = JSON.parse(response);
32639 ranu 51
 
23347 ashik.ali 52
			$(".modal-body h4.bagModalProductInfo.modelHeaderCustom > span").text(obj.displayName);
32639 ranu 53
 
23347 ashik.ali 54
			$(".modal-body h4.bagModalAvailability.modelHeaderCustom > span").text(obj.availability);
23405 amit.gupta 55
			inputEle = [];
32639 ranu 56
 
37025 amit 57
			var earlyImeis = ("earlyImeis" in obj && obj.earlyImeis) ? obj.earlyImeis : [];
58
			var disabledImeis = ("disabledImeis" in obj && obj.disabledImeis) ? obj.disabledImeis : {};
59
			var disabledKeys = Object.keys(disabledImeis);
32639 ranu 60
 
37025 amit 61
			if (earlyImeis.length > 0 || disabledKeys.length > 0) {
62
 
63
				for (var i in earlyImeis) {
23405 amit.gupta 64
					inputEle.push('<span class="input-group-addon">');
37025 amit 65
					inputEle.push('<input type="checkbox" aria-label="..." name="interest" value="' + earlyImeis[i] + '" id="' + earlyImeis[i] + '"/>');
66
					inputEle.push('<label for="' + earlyImeis[i] + '">' + earlyImeis[i] + '</label>');
23405 amit.gupta 67
					inputEle.push('</span>');
28339 tejbeer 68
					if (i % 3 == 2) {
23967 amit.gupta 69
						inputEle.push('</br>');
70
					}
23405 amit.gupta 71
				}
37025 amit 72
 
73
				for (var j = 0; j < disabledKeys.length; j++) {
74
					var dImei = disabledKeys[j];
75
					inputEle.push('<span class="input-group-addon" style="opacity:0.6;">');
76
					inputEle.push('<input type="checkbox" aria-label="..." name="interest" value="' + dImei + '" id="' + dImei + '" disabled/>');
77
					inputEle.push('<label for="' + dImei + '" style="color:#999;">' + dImei + ' <small>(Sellable from ' + disabledImeis[dImei] + ')</small></label>');
78
					inputEle.push('</span>');
79
					inputEle.push('</br>');
80
				}
81
 
30366 amit.gupta 82
				$(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom > span").html(inputEle.join(''));
24440 amit.gupta 83
				$(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom").show();
84
				$(".modal-body h4.bagModalQuantity.modelHeaderCustom").hide();
23405 amit.gupta 85
			} else {
32639 ranu 86
				$(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom > span").html("");
24440 amit.gupta 87
				$(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom").hide();
88
				$(".modal-body h4.bagModalQuantity.modelHeaderCustom").show();
32639 ranu 89
			}
23405 amit.gupta 90
 
23347 ashik.ali 91
			$("#bagModel .availability").val(obj.availability);
28339 tejbeer 92
 
93
			$("#bagModel .poitemId").val(poItemId);
94
			$("#bagModel .poId").val(poId);
95
 
23405 amit.gupta 96
			$('#catalogModalBody').show();
23347 ashik.ali 97
		});
23343 ashik.ali 98
	});
28339 tejbeer 99
 
35459 amit 100
	// addToBagButton
101
 
102
	$(document).on('click', "#addToBagButton", function() {
23343 ashik.ali 103
		var itemId = $("#bagModel .itemId").val();
28339 tejbeer 104
		var poitemId = $("#bagModel .poitemId").val();
105
		var poId = $("#bagModel .poId").val();
35459 amit 106
 
107
		var tempAvailability = $("#bagModel .availability").val();
35458 amit 108
		var quantity = $("#bagModel .quantity").val();
35459 amit 109
		imeiCount = $('h4.bagModalEarlyImeis').find('input').length;
28339 tejbeer 110
		if (imeiCount > 0) {
24440 amit.gupta 111
			quantity = $('h4.bagModalEarlyImeis').find('input:checked').length;
35459 amit 112
			if (quantity == 0) {
23405 amit.gupta 113
				alert("Please check one of the imei(s)");
114
				return;
115
			}
35459 amit 116
		} else if (!quantity || parseInt(quantity) <= 0 || isNaN(parseInt(quantity)) || quantity.indexOf('.') != -1) {
23343 ashik.ali 117
			alert("Please enter valid quantity");
118
			return;
119
		}
28339 tejbeer 120
 
121
		doGetAjaxRequestHandler(context + "/checkItemAvailability/?itemId=" + itemId, function(response) {
35459 amit 122
			var obj = JSON.parse(response);
123
			console.log(obj);
124
			if (obj.availability < parseInt(quantity) || obj.availability == 0) {
23500 ashik.ali 125
				alert("You don't have enough inventory of this item");
126
				return;
127
			}
35459 amit 128
			var obj = { 'itemId': obj.itemId, 'displayName': obj.displayName, 'quantity': parseInt(quantity), 'iconUrl': obj.iconUrl, 'poItemId': poitemId, 'poId': poId };
28339 tejbeer 129
			if (imeiCount > 0) {
35459 amit 130
				obj['imeis'] = [];
28339 tejbeer 131
				$('h4.bagModalEarlyImeis').find('input:checked').each(function(index, ele) {
35459 amit 132
					obj['imeis'].push(ele.value);
23500 ashik.ali 133
				});
134
			}
35459 amit 135
			console.log(obj);
136
			addItemInLocalStorage(obj);
137
			//alert("Item added to bag successfully");
138
			showToast("Item, Item added to bag successfully!");
23500 ashik.ali 139
			$('#bagModel').modal('hide');
35459 amit 140
 
28339 tejbeer 141
		});
142
 
23343 ashik.ali 143
	});
28339 tejbeer 144
 
35459 amit 145
	// add to bag with cart page
146
 
147
	$(document).on('click', "#addToBagButtonwithCart", function () {
148
		var itemId = $("#bagModel .itemId").val();
149
		var poitemId = $("#bagModel .poitemId").val();
150
		var poId = $("#bagModel .poId").val();
151
		console.log(poitemId)
152
		console.log(poId)
153
 
154
		var tempAvailability = $("#bagModel .availability").val();
155
		var quantity = $("#bagModel .quantity").val();
156
		imeiCount = $('h4.bagModalEarlyImeis').find('input').length;
157
		if (imeiCount > 0) {
158
			quantity = $('h4.bagModalEarlyImeis').find('input:checked').length;
159
			if (quantity == 0) {
160
				alert("Please check one of the imei(s)");
161
				return;
162
			}
163
		} else if (!quantity || parseInt(quantity) <= 0 || isNaN(parseInt(quantity)) || quantity.indexOf('.') != -1) {
164
			alert("Please enter valid quantity");
165
			return;
166
		}
167
 
168
		doGetAjaxRequestHandler(context + "/checkItemAvailability/?itemId=" + itemId, function (response) {
169
			var obj = JSON.parse(response);
170
			console.log(obj);
171
			if (obj.availability < parseInt(quantity) || obj.availability == 0) {
172
				alert("You don't have enough inventory of this item");
173
				return;
174
			}
175
			var obj = {
176
				'itemId': obj.itemId,
177
				'displayName': obj.displayName,
178
				'quantity': parseInt(quantity),
179
				'iconUrl': obj.iconUrl,
180
				'poItemId': poitemId,
181
				'poId': poId
182
			};
183
			if (imeiCount > 0) {
184
				obj['imeis'] = [];
185
				$('h4.bagModalEarlyImeis').find('input:checked').each(function (index, ele) {
186
					obj['imeis'].push(ele.value);
187
				});
188
			}
189
			console.log(obj);
190
			addItemInLocalStorage(obj);
191
			//alert("Item added to bag successfully");
192
			showToast("Item, Item added to bag successfully!");
193
			$('#bagModel').modal('hide');
194
			// Trigger the click event for the cart icon
32639 ranu 195
			$(".cart_icon_header").trigger('click');
35459 amit 196
 
32639 ranu 197
		});
35459 amit 198
 
32639 ranu 199
	});
200
 
35459 amit 201
	// direct go billing page skip checkout page
202
	$(document).on('click', "#addToBagButtonwithBillingpage", function () {
203
		var itemId = $("#bagModel .itemId").val();
204
		var poitemId = $("#bagModel .poitemId").val();
205
		var poId = $("#bagModel .poId").val();
206
		console.log(poitemId)
207
		console.log(poId)
208
 
209
		var tempAvailability = $("#bagModel .availability").val();
210
		var quantity = $("#bagModel .quantity").val();
211
		imeiCount = $('h4.bagModalEarlyImeis').find('input').length;
212
		if (imeiCount > 0) {
213
			quantity = $('h4.bagModalEarlyImeis').find('input:checked').length;
214
			if (quantity == 0) {
215
				alert("Please check one of the imei(s)");
216
				return;
217
			}
218
		} else if (!quantity || parseInt(quantity) <= 0 || isNaN(parseInt(quantity)) || quantity.indexOf('.') != -1) {
219
			alert("Please enter valid quantity");
220
			return;
221
		}
222
 
223
		doGetAjaxRequestHandler(context + "/checkItemAvailability/?itemId=" + itemId, function (response) {
224
			var obj = JSON.parse(response);
225
			console.log(obj);
226
			if (obj.availability < parseInt(quantity) || obj.availability == 0) {
227
				alert("You don't have enough inventory of this item");
228
				return;
229
			}
230
			var obj = {
231
				'itemId': obj.itemId,
232
				'displayName': obj.displayName,
233
				'quantity': parseInt(quantity),
234
				'iconUrl': obj.iconUrl,
235
				'poItemId': poitemId,
236
				'poId': poId
237
			};
238
			if (imeiCount > 0) {
239
				obj['imeis'] = [];
240
				$('h4.bagModalEarlyImeis').find('input:checked').each(function (index, ele) {
241
					obj['imeis'].push(ele.value);
242
				});
243
			}
244
			console.log(obj);
245
			addItemInLocalStorage(obj);
246
			//alert("Item added to bag successfully");
247
			showToast("Item, Item added to bag successfully!");
248
			$('#bagModel').modal('hide');
249
			// Trigger the click event for the cart icon
32653 ranu 250
			$(".cart-checkout").trigger('click');
35459 amit 251
 
32653 ranu 252
		});
35459 amit 253
 
32653 ranu 254
	});
255
 
28339 tejbeer 256
	$(document).on('click', ".cart-trash", function() {
23343 ashik.ali 257
		var itemId = $(this).attr('data');
258
		removeItemFromLocalStorage(itemId);
259
		$('div[itemId="' + itemId + '"]').remove();
28339 tejbeer 260
		if ($('#cart-details').html().trim() == "") {
23343 ashik.ali 261
			$('#cart-details-empty').show();
262
			$('#cart-checkout').hide();
263
		}
264
	});
28339 tejbeer 265
 
266
 
30596 tejbeer 267
	$(document).on('click', ".web-offer-submit", function() {
268
		let catalogId = $(this).data("catalogid");
269
		console.log(catalogId)
270
 
271
		doGetAjaxRequestHandler(context + "/getWebOfferByCatalogId?catalogItemId="
272
			+ catalogId, function(response) {
273
 
274
				$('#todayOfferModal .modal-content').html(response);
275
 
276
			});
277
 
278
	});
279
 
280
 
28339 tejbeer 281
	$(document).on('click', ".bill-now", function() {
26263 amit.gupta 282
		emptyBag();
28339 tejbeer 283
 
26263 amit.gupta 284
		var itemId = $(this).data('itemid');
285
		var imei = $(this).data('imei');
28339 tejbeer 286
		var bagObj = { itemId: itemId, displayName: "", quantity: 1, imeis: [imei] }
26263 amit.gupta 287
		addItemInLocalStorage(bagObj);
288
		checkout('main-content');
289
	});
28339 tejbeer 290
 
27754 amit.gupta 291
	$(document).on('change', ".cart-qty", function() {
23343 ashik.ali 292
		var itemId = $(this).attr('data');
293
		var maxQty = $(this).attr('max');
294
		var qty = $(this).val();
28339 tejbeer 295
		if (!qty) {
23343 ashik.ali 296
			qty = 0;
297
		}
28339 tejbeer 298
		if (parseInt(qty) < 0) {
23343 ashik.ali 299
			alert("Invalid quantity");
300
			$(this).val(0);
301
			qty = 0;
302
		}
28339 tejbeer 303
		if (parseInt(qty) > parseInt(maxQty)) {
304
			alert("You don't have availability of " + qty);
23343 ashik.ali 305
			$(this).val(maxQty);
306
			qty = maxQty;
307
		}
308
		changeQuantityInLocalStorage(itemId, qty);
309
	});
310
});
311
 
312
 
35459 amit 313
function emptyBag() {
314
	delete localStorage.getItem("bag");
315
}
316
 
28339 tejbeer 317
function addItemInLocalStorage(bagObj) {
35459 amit 318
	if (localStorage.getItem("bag") != null) {
319
		var bag = JSON.parse(localStorage.getItem("bag"));
320
		bag[bagObj.itemId] = bagObj
321
		localStorage.setItem("bag", JSON.stringify(bag));
322
		bag = localStorage.getItem("bag")
323
		$("#cart_bar").find('span').text(Object.keys(JSON.parse(bag)).length);
324
	}
325
	else {
326
		var tempObj = {};
327
		tempObj[bagObj.itemId] = bagObj
328
		localStorage.setItem("bag", JSON.stringify(tempObj));
329
		var bag = localStorage.getItem("bag")
330
		$("#cart_bar").find('span').text(Object.keys(JSON.parse(bag)).length);
331
	}
23343 ashik.ali 332
}
333
 
334
 
28339 tejbeer 335
function changeQuantityInLocalStorage(itemId, newQuantity) {
35459 amit 336
	var bag = JSON.parse(localStorage.getItem("bag"));
337
	if (typeof bag[itemId] == "undefined") {
338
		bag[itemId] = {};
339
		bag[itemId].itemId = itemId;
340
		bag[itemId].displayName = "SmartDukaan Gift Watch";
341
		bag[itemId].iconUrl = "";
24203 amit.gupta 342
		delete bag["giftQty"];
35459 amit 343
 
24202 amit.gupta 344
	}
23343 ashik.ali 345
	bag[itemId].quantity = newQuantity;
28339 tejbeer 346
	localStorage.setItem("bag", JSON.stringify(bag));
23343 ashik.ali 347
}
348
 
28339 tejbeer 349
function removeItemFromLocalStorage(itemId) {
35459 amit 350
	if (localStorage.getItem("bag") != null) {
351
		var bag = JSON.parse(localStorage.getItem("bag"));
23343 ashik.ali 352
		delete bag[itemId];
28339 tejbeer 353
		localStorage.setItem("bag", JSON.stringify(bag));
23343 ashik.ali 354
		$("#cart_bar").find('span').text(Object.keys(bag).length);
355
	}
356
}
357
 
24202 amit.gupta 358
function addGiftQty(giftQty) {
35459 amit 359
	if (localStorage.getItem("bag") != null) {
360
		var bag = JSON.parse(localStorage.getItem("bag"));
24202 amit.gupta 361
		bag["giftQty"] = giftQty;
28339 tejbeer 362
		localStorage.setItem("bag", JSON.stringify(bag));
24202 amit.gupta 363
	}
364
}
24207 amit.gupta 365
function removeGiftQty() {
35459 amit 366
	if (localStorage.getItem("bag") != null) {
367
		var bag = JSON.parse(localStorage.getItem("bag"));
24207 amit.gupta 368
		delete bag["giftQty"];
28339 tejbeer 369
		localStorage.setItem("bag", JSON.stringify(bag));
24207 amit.gupta 370
	}
371
}
24202 amit.gupta 372
 
24440 amit.gupta 373
function saveBag(bagObj) {
374
	localStorage.setItem("bag", JSON.stringify(bagObj));
375
}
376
 
28339 tejbeer 377
function emptyBag() {
378
	localStorage.setItem("bag", JSON.stringify({}));
23343 ashik.ali 379
	$("#cart_bar").find('span').text(0);
380
}
381
 
28339 tejbeer 382
function loadCart(domId, giftQty) {
24202 amit.gupta 383
	addGiftQty(giftQty);
23343 ashik.ali 384
	var params = {
28339 tejbeer 385
		"cartData": localStorage.getItem("bag")
386
	}
387
	doPostAjaxRequestWithParamsHandler(context + "/cart", params, function(response) {
23343 ashik.ali 388
		$('#' + domId).html(response);
24207 amit.gupta 389
		removeGiftQty();
23343 ashik.ali 390
	});
391
}
392
 
28339 tejbeer 393
function checkout(domId) {
23343 ashik.ali 394
	var params = {
28339 tejbeer 395
		"cartData": localStorage.getItem("bag")
396
	}
28382 tejbeer 397
 
398
 
399
	bootbox.alert({
400
		title: "<div class = 'disclosurehindata'> <img src='resources/images/alert-icon.png' style='width:10%'></div>",
401
		message: "<div class = 'disclosurehindata'> <img src='resources/images/activation-alert.png' style='width:100%'> </div>"
402
		,
403
		buttons: {
404
			ok: {
405
				label: 'Agree',
406
				className: 'btn-success'
407
			},
408
 
409
		},
410
		callback: function() {
411
			doPostAjaxRequestWithParamsHandler(context + "/validate-cart", params, function(response) {
412
				$('#' + domId).html(response);
413
				var obj = JSON.parse(response);
414
				redirectCart(obj.redirectUrl, obj.params, "main-content");
415
				$('#main-content').html(response);
416
			});
417
 
418
		}
23343 ashik.ali 419
	});
28382 tejbeer 420
 
23343 ashik.ali 421
}
422
 
26817 amit.gupta 423
//On checkout we are also setting imeis why?
28339 tejbeer 424
function redirectCart(url, cartData, domId) {
23500 ashik.ali 425
	var params = {
28339 tejbeer 426
		"cartData": cartData
23500 ashik.ali 427
	}
28339 tejbeer 428
	doPostAjaxRequestWithParamsHandler(context + url, params, function(response) {
429
		$('#' + domId).html(response);
430
		cartData = JSON.parse(cartData);
431
		for (itemId in cartData) {
432
			if ('imeis' in cartData[itemId]) {
433
				$('#order-details').find('input[name="serialNumber"][itemId="' + itemId + '"]').each(function(i, e) {
434
					if ($(e).attr("itemtype") == "SERIALIZED") {
435
						e.value = cartData[itemId].imeis[i];
436
					} else {
437
						cartData[itemId].imeis = [];
438
 
439
					}
440
				});
441
			}
442
		}
443
		saveBag(cartData);
444
		window.dispatchEvent(new Event('resize'));
445
	});
23343 ashik.ali 446
}