Subversion Repositories SmartDukaan

Rev

Rev 27754 | Rev 28382 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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