Subversion Repositories SmartDukaan

Rev

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