Subversion Repositories SmartDukaan

Rev

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