Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
17804 manish.sha 1
function loadCartPageDetails(){
17947 manish.sha 2
	var input = $('input#refresh').val();
3
	if(input == 'yes'){
18633 manish.sha 4
		$('#cartLoadingModal').modal('show');
17881 manish.sha 5
		var cart_details = localStorage.getItem('cart_details');
17911 manish.sha 6
		if(cart_details!=undefined){
17947 manish.sha 7
			var cartDetailsObj = JSON.parse(cart_details);
8
			$.each(cartDetailsObj.cartItems, function(key,val) {
9
				$("div.number-spinner button[data-id='"+key+"']").closest('.number-spinner').find('input').val(val.quantity);
10
				$("span.lineitemqty[data-id='"+key+"']").text(val.quantity);
18007 manish.sha 11
				$("span.packQuantity[data-id='"+key+"']").text(val.quantity*$("span.packQuantity[data-id='"+key+"']").data('pack'));
17947 manish.sha 12
				$("span.lineitemtotal[data-id='"+key+"']").text(' ₹ '+ (parseInt(val.quantity)*parseInt(val.unitprice)).toString());
13
			});
20988 amit.gupta 14
			renderCartDerivedValues();
18633 manish.sha 15
			$('#cartLoadingModal').modal('hide');
17956 manish.sha 16
		}else{
17
			window.location.href = apihost + 'cartdetails/?user_id='+me;
17911 manish.sha 18
		}
17881 manish.sha 19
	}else{
17947 manish.sha 20
		$('input#refresh').val('yes');
21
		var estimateString = $('div.popover-markup').data('str');
20988 amit.gupta 22
		var cart_details = localStorage.getItem('cart_details');
23
		if(cart_details!=undefined){
24
			loadCartDetails();
25
		}
26
		if(estimateString=="Can't ship here"){
17947 manish.sha 27
			$('div.cartdetailscard').find('div, input, textarea, button, select').each(function () {
20988 amit.gupta 28
					$(this).prop('disabled', true);
17947 manish.sha 29
			});
17919 manish.sha 30
		}
17881 manish.sha 31
	}
17953 manish.sha 32
	if(!$('div.cartitemstotal').hasClass('hidden')){
18299 manish.sha 33
		$('div.scroll').attr('style', 'margin-bottom: 176px');
17953 manish.sha 34
	}else{
35
		$('div.scroll').attr('style', 'margin-bottom: 100px');
36
	}
17804 manish.sha 37
}
38
 
39
$(function(){
40
	loadCartPageDetails();
41
});
42
 
43
$(document).on('click','.number-spinner button',function(){
44
	btn = $(this);
45
    input = btn.closest('.number-spinner').find('input');
46
    oldValue = btn.closest('.number-spinner').find('input').val().trim(),
47
	newVal = 0;
48
    btn.closest('.number-spinner').find('button').prop("disabled", false);
49
    var inc = 0;
50
    var dec = 0;
51
    var sku = btn.data('id');
52
    var unitPrice = btn.data('price');
18007 manish.sha 53
    var prodname = btn.data('name');
54
    var brandname = btn.data('brand');
55
    var catalogItemId = btn.data('identifier');
18433 naman 56
    var minBuyQuantity = btn.data('minquantity');
57
    if(minBuyQuantity == "" || minBuyQuantity == undefined){
58
    	minBuyQuantity =1;
59
    }
60
    var quantityStep = btn.data('quantitystep');
61
    if(quantityStep == "" || quantityStep == undefined){
62
    	quantityStep =1;
63
    }
64
    var bulkpricing = btn.data('bulkpricing');
18684 naman 65
    var maxquantflag = false;
17804 manish.sha 66
    if (btn.attr('data-dir') == 'up') {
67
		if ( input.attr('max') == undefined || parseInt(input.val()) < parseInt(input.attr('max')) ) {
18433 naman 68
			if((parseInt(input.val())== 0 || parseInt(input.val())< minBuyQuantity) && (parseInt(input.attr('max')) >= minBuyQuantity)){	
69
				inc = minBuyQuantity - parseInt(input.val());
17804 manish.sha 70
				newVal = parseInt(oldValue) + inc;
18433 naman 71
			}
72
			else{
18684 naman 73
				inc = quantityStep;
74
				if(parseInt(oldValue)< minBuyQuantity+(quantityStep*4)){
17804 manish.sha 75
					newVal = parseInt(oldValue) + inc;
76
				}
18684 naman 77
				else if(parseInt(oldValue)< minBuyQuantity+(quantityStep*28)){
78
					var minqty = minBuyQuantity;
79
					if((parseInt(oldValue)+quantityStep) % quantityStep == 0 ){minqty = 0;}
80
					if(parseInt(oldValue) % (quantityStep*5) == 0){
18701 naman 81
						inc = (5*quantityStep)+minqty;
18684 naman 82
						newVal = parseInt(oldValue)+ (5*quantityStep)+minqty;
83
					}
84
					else{
18701 naman 85
						inc = minqty+ (5*quantityStep) - (parseInt(oldValue) % (5*quantityStep));
18684 naman 86
						newVal =minqty+ 5*quantityStep+ parseInt(oldValue) - (parseInt(oldValue) % (5*quantityStep));
87
					}
88
				}
89
				else{
90
					var minqty = minBuyQuantity;
91
					if((parseInt(oldValue)+quantityStep) % quantityStep == 0){minqty = 0;}
92
					if(parseInt(oldValue) % (quantityStep*10) == 0){
18701 naman 93
						inc = (10*quantityStep)+minqty;
18684 naman 94
						newVal = parseInt(oldValue)+ (10*quantityStep)+minqty;
95
					}
96
					else{
18701 naman 97
						inc = (10*quantityStep)  - (parseInt(oldValue) % (10*quantityStep)) +minqty;
18684 naman 98
						newVal =10*quantityStep + parseInt(oldValue) - (parseInt(oldValue) % (10*quantityStep)) +minqty;
99
					}
100
				}
101
 
102
 
103
				if(newVal>parseInt(input.attr('max'))){
104
					var minqty = minBuyQuantity;
105
					if((parseInt(oldValue)+quantityStep) % quantityStep == 0){minqty = 0;}
106
					newVal = parseInt(input.attr('max')) - (newVal - parseInt(input.attr('max'))) % (minqty +quantityStep);
18701 naman 107
					inc = newVal - parseInt(oldValue);
18684 naman 108
					maxquantflag = true
109
				}
17804 manish.sha 110
			}
111
		}else{
112
			newVal = parseInt(oldValue);
113
			btn.prop("disabled", true);
114
		}
18684 naman 115
		if(newVal==parseInt(input.attr('max')) || maxquantflag == true){
17905 manish.sha 116
			input.attr('style', 'border: 2px solid #ff0000');
117
		}else{
118
			input.attr('style', 'border: 1px solid #CCCCCC');
119
		}
17804 manish.sha 120
	} else {
121
		if ( input.attr('min') == undefined || parseInt(input.val()) > parseInt(input.attr('min')) ) {
18433 naman 122
			dec = quantityStep;
17804 manish.sha 123
			newVal = parseInt(oldValue) - dec;
18433 naman 124
			var minBuyQtyDiff = parseInt(oldValue) - minBuyQuantity;
125
			if(minBuyQtyDiff ==0){
126
				dec = minBuyQuantity;
127
				newVal = parseInt(oldValue) - dec;
128
			}else if(dec>minBuyQtyDiff){
129
				dec = minBuyQtyDiff;
130
				newVal = parseInt(oldValue) - dec;
131
			}
17804 manish.sha 132
		}else{
133
			btn.prop("disabled", true);
134
		}
17905 manish.sha 135
		if(newVal==parseInt(input.attr('min'))){
136
			input.attr('style', 'border: 2px solid #5bc0de');
137
		}else{
138
			input.attr('style', 'border: 1px solid #CCCCCC');
139
		}
17804 manish.sha 140
	}
17905 manish.sha 141
    $("span.lineitemqty[data-id='"+sku+"']").text(newVal);
17804 manish.sha 142
	btn.closest('.number-spinner').find('input').val(newVal);
18433 naman 143
 
144
 
20988 amit.gupta 145
	if (bulkpricing != undefined && bulkpricing.length != 0){		
18433 naman 146
    	for(var i=0;i<bulkpricing.length;i++)
147
    		{
148
    			if(newVal<bulkpricing[i]['quantity']){
149
    				break;
150
    			}
151
    			else{
152
 
153
    				unitPrice = bulkpricing[i]['price'];
154
    			}
155
    		}
156
    }
157
	$("span.lineitemprice[data-id='"+sku+"']").text(unitPrice);
158
 
159
 
18007 manish.sha 160
	$("span.packQuantity[data-id='"+sku+"']").text(newVal*$("span.packQuantity[data-id='"+sku+"']").data('pack'));
17947 manish.sha 161
	$("span.lineitemtotal[data-id='"+sku+"']").text(' ₹ '+ (parseInt(newVal)*parseInt(unitPrice)).toString());
20988 amit.gupta 162
	loadCartDetails();
163
	renderCartDerivedValues();
17804 manish.sha 164
});
165
 
166
function numberWithCommas(x) {
167
    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
168
}
169
 
18298 manish.sha 170
function handleCheckout(){
171
	var cart_details = localStorage.getItem('cart_details');
172
	var shippingCharges = 0;
173
	if(cart_details!=undefined){
174
    	var cartDetailsObj = JSON.parse(cart_details);
175
    	shippingCharges = cartDetailsObj.shippingCharges;
176
    }
177
 
178
	if(shippingCharges>0){
179
		var totalCartValue = cartDetailsObj.totalCartValue;
20655 amit.gupta 180
		cartDetailsObj.totalCartQuantity
18298 manish.sha 181
		var additionalAmount = 1000.0-totalCartValue;
182
		additionalAmount = additionalAmount.toFixed();
18302 manish.sha 183
		window.history.pushState('forward', null, './?user_id='+me);
20655 amit.gupta 184
		if(shippingCharges/cartDetailsObj.totalCartQuantity>50){
185
			$('p#shippingText').html("<span>You are paying ₹60 per item for shipping.<br>To pay ₹30 per item for shipping.<br> Add upto five items.</span><hr style='margin-top: 5px;margin-bottom: 5px;'>"
186
					+"<span>आप शिपिंग के लिए  ₹60 प्रति आइटम का भुगतान कर रहे हैं। <br> प्रति आइटम शिपिंग ₹30 के लिए। <br> पाँच आइटम तक जोड़ें।</span>");
187
		} else {
188
			$('p#shippingText').html("<span>You are paying ₹ "+ shippingCharges.toFixed() 
189
					+" for shipping.<br>"
190
					+"<span>आप शिपिंग के लिए  ₹ "+ shippingCharges.toFixed() 
191
					+" का भुगतान कर रहे हैं।")
192
			$("#addItems").find("strong").html("Cancel<br>(रद्द करें)");
193
		}
18298 manish.sha 194
		$('#myModal').modal('show');
195
	}else{
196
		$('#cartLoadingModal').modal('show');
197
		var url = apihost + 'shippings/';
198
	    var newForm = $('<form>', {
199
	        'action': url,
200
	        'method':'post'
201
	    }).append($('<input>', {
202
	        'name': 'cart_details',
203
	        'value': localStorage.getItem('cart_details'),
204
	        'type': 'hidden'
205
	    }));
20972 amit.gupta 206
	    newForm.appendTo($('body'));
18298 manish.sha 207
	    newForm.submit();
208
	}
209
}
210
 
211
$(document).on('click','button#addItems',function(){
212
	$('#myModal').modal('hide');
213
	$("#cartloader").removeClass('hidden');
18312 manish.sha 214
	history.addItem="yes";
20969 amit.gupta 215
	history.back();
18298 manish.sha 216
});
217
 
218
$(document).on('click','button#continueCheckout',function(){
219
	$('#myModal').modal('hide');
220
	$("#cartloader").removeClass('hidden');
221
	var url = apihost + 'shippings/';
222
    var newForm = $('<form>', {
223
        'action': url,
224
        'method':'post'
225
    }).append($('<input>', {
226
        'name': 'cart_details',
227
        'value': localStorage.getItem('cart_details'),
228
        'type': 'hidden'
229
    }));
20971 amit.gupta 230
    newForm.appendTo($('body'));
18302 manish.sha 231
    history.form=newForm;
20969 amit.gupta 232
    history.back();
18298 manish.sha 233
});
234
 
17804 manish.sha 235
$(document).on('click','.changepincode',function(){
17919 manish.sha 236
	$('#cartLoadingModal').modal('show');
17881 manish.sha 237
	var pincode = "pin_"+$('.pincodeval').val();
17804 manish.sha 238
	var url = apihost + 'cartdetails/?user_id='+me;
239
    var newForm = $('<form>', {
240
        'action': url,
241
        'method':'post'
242
    }).append($('<input>', {
243
        'name': 'cart_details',
244
        'value': localStorage.getItem('cart_details'),
245
        'type': 'hidden'
246
    })).append($('<input>', {
247
        'name': 'pincode',
248
        'value': pincode,
249
        'type': 'hidden'
250
    }));
20971 amit.gupta 251
    newForm.appendTo($('body'));
17804 manish.sha 252
    newForm.submit();
253
});
254
 
18019 manish.sha 255
$(document).on('click','a.addMoreItems',function(){
256
	$('#cartLoadingModal').modal('show');
257
});
258
 
18298 manish.sha 259
$(document).on('click','.checkoutbtn',function(){		
260
	handleCheckout();
17822 manish.sha 261
});
262
$(document).on('click','.backtodeals',function(){
17919 manish.sha 263
	$('#cartLoadingModal').modal('show');
20655 amit.gupta 264
	window.location.href = apihost + 'categories/linkdeal/3?filtertype=exclusive';
19286 manish.sha 265
});
266
 
267
$(document).on('click','span.clearCart',function(){
268
	$("#cartloader").removeClass('hidden');
269
	$('#clearCartModel').modal('show');
270
	$("#cartloader").addClass('hidden');
271
});
272
 
273
$(document).on('click','button#abortClearCartBtn',function(){
274
	$('#clearCartModel').modal('hide');
275
});
276
 
277
function clearCart(){
278
	$('#clearCartModel').modal('hide');
279
	$("#cartloader").removeClass('hidden');
280
	var cart_details = localStorage.getItem('cart_details');
281
	if(cart_details!=undefined){
282
		var cartDetailsObj = JSON.parse(cart_details);
283
		$.each(cartDetailsObj.cartItems, function(key,val) {
284
			cartDetailsObj.cartItems[key].quantity = 0;
285
		});
286
		cartDetailsObj.totalCartQuantity = 0;
287
		cartDetailsObj.totalCartValue = 0;
288
		cartDetailsObj.shippingCharges = 0;
289
		cartDetailsObj.totalSkus = 0;
290
		localStorage.setItem('cart_details',JSON.stringify(cartDetailsObj));
291
	}
292
	$('div.card').addClass('hidden');
293
	$('span.cartheader').text('');
294
	$('span.cartheader').attr('style', 'font-size: 12pt;padding-left: 30px;');
295
	$('span.cartheader').text('Cart Details');
296
	$('div.cartgrandtotal span.pull-right').text('₹ '+numberWithCommas(0));
297
	$('div.cartitemstotal').addClass('hidden');
298
	$('button.checkoutbtn').prop( "disabled", true );
299
	$('div.emptyCart').removeClass('hidden');
300
	$('div.popover-markup').addClass('hidden');
301
	$("#cartloader").addClass('hidden');
302
}
303
 
304
$(document).on('click','button#clearCartBtn',function(){
19299 manish.sha 305
	clearCart();
19300 manish.sha 306
	$("span.clearCart").removeClass('clearCart');
19286 manish.sha 307
});
308
 
309
$(document).on('click','span.clearItem',function(){
310
	var itemId = $(this).attr('sku');
311
	var cart_details = localStorage.getItem('cart_details');
312
	if(cart_details!=undefined){
313
		var cartDetailsObj = JSON.parse(cart_details);
20988 amit.gupta 314
		var item = cartDetailsObj.cartItems[itemId];
315
		$("div.card[sku='"+itemId+"']").addClass("hidden");
316
		$(this).next().find('input').val(0);
317
		$(this).next().find("button[data-dir='up']").data('estimate', '');
318
		$("span.packQuantity[data-id='"+itemId+"']").text(0);
319
		$("span.lineitemtotal[data-id='"+itemId+"']").text(' ₹ '+ 0);
320
		if($('div.card:visible').length==0){
321
			clearCart();
322
			$("span.clearCart").removeClass('clearCart');
19286 manish.sha 323
		}else{
20988 amit.gupta 324
			loadCartDetails();
325
			renderCartDerivedValues();
19286 manish.sha 326
		}
327
	}
20988 amit.gupta 328
});
329
 
330
function loadCartDetails(){
331
	cartItems = {};
332
	oldCartItems = JSON.parse(localStorage.getItem('cart_details')).cartItems;
333
	$('.number-spinner').each(function (index, val) {
334
		var element = $(val);
335
		var quantity = element.find("input").val();
336
 
337
		var dataElement = element.find("button[data-dir='up']")
338
		var estimate = dataElement.data('estimate');
339
		var catalogItemId = dataElement.data('identifier');
340
		var sku = dataElement.data('id');
341
		var price = dataElement.data('price');
342
		var bulkpricing = dataElement.data('bulkpricing');
343
		var prodname = dataElement.data('name');
344
		var brandname = dataElement.data('brand');
345
 
346
		if (bulkpricing != undefined && bulkpricing.length != 0){
347
	    	for(var i=0;i<bulkpricing.length;i++)
348
	    		{
349
	    			if(val.quantity<bulkpricing[i]['quantity']){
350
	    				break;
351
	    			}
352
	    			else{
353
	    				price = bulkpricing[i]['price'];
354
	    			}
355
	    		}
356
	    }
357
		itemDetail = {};
358
		if (estimate=="-1") {			
359
			itemDetail['quantity']=oldCartItems[sku.toString()].quantity
360
		} else {
361
			itemDetail['quantity']=parseInt(quantity);
362
		}
363
		itemDetail['unitprice']=parseInt(price);
364
		itemDetail['productname']=prodname;
365
		itemDetail['brand']=brandname;
366
		itemDetail['catalogItemId'] = catalogItemId.toString();
367
		itemDetail['category'] = dataElement.data('category');
368
		cartItems[sku.toString()] = itemDetail;
369
	});
370
	setCartDetails(cartItems);
371
}
372
 
373
function setCartDetails(cartItems) {
374
	var cartDetailsObj = {};
375
	cartDetailsObj.totalCartQuantity = 0; 
376
	cartDetailsObj.totalCartValue = 0;
377
	cartDetailsObj.mobileCount = 0;
378
	cartDetailsObj.totalSkus = 0;
379
	cartDetailsObj.shippingCharges = 0;
380
	cartDetailsObj.accessoryShippingCharges = 0;
381
	cartDetailsObj.cartItems = cartItems;
382
	cartDetailsObj.mobileCount = 0;
383
	for(itemId in cartItems) {
384
		item = cartItems[itemId];
385
		if(item.quantity > 0){
386
			cartDetailsObj.totalCartQuantity += item.quantity;
387
			cartDetailsObj.totalSkus += 1;
388
		}
389
		cartDetailsObj.totalCartValue += item.quantity*item.unitprice;
390
		if(item.category=='Mobile Phone' || item.category=='Tablet') {
391
			cartDetailsObj.mobileCount += item.quantity;
392
		} else {
393
			cartDetailsObj.accessoryShippingCharges = 100;
394
		}
395
	}
396
	if(cartDetailsObj.mobileCount<5){
397
		cartDetailsObj.shippingCharges = cartDetailsObj.accessoryShippingCharges + 60*cartDetailsObj.mobileCount;
398
	} else {
399
		cartDetailsObj.shippingCharges = cartDetailsObj.accessoryShippingCharges + 30*cartDetailsObj.mobileCount;
400
	}
401
	localStorage.setItem('cart_details',JSON.stringify(cartDetailsObj));
402
}
403
 
404
function renderCartDerivedValues(){
405
	var cart_details = localStorage.getItem('cart_details');
406
	var cartDetailsObj = JSON.parse(cart_details);
407
	var totalCartValue = cartDetailsObj.totalCartValue;
408
	var totalCartQuantity = cartDetailsObj.totalCartQuantity;
409
	var cartItems = cartDetailsObj.cartItems;
410
	var shippingCharges =cartDetailsObj.shippingCharges;
411
	var totalSkus = cartDetailsObj.totalSkus;
412
 
413
	$('div.cartitemstotal span.itemstotal').text('₹ '+numberWithCommas(totalCartValue));
414
	$('div.cartitemstotal span.shippingval').text('₹ '+numberWithCommas(shippingCharges));
415
	var payable = 0;
416
	if(shippingCharges>0){
417
		if(totalCartValue>0){
418
			$('.cartitemstotal').removeClass('hidden');
419
			payable = parseInt(shippingCharges)+parseInt(totalCartValue);
420
		}else{
421
			payable = 0;
422
		}
423
	}else{
424
			payable = parseInt(totalCartValue);
425
			$('.cartitemstotal').addClass('hidden');
426
	}
427
	$('div.cartgrandtotal span.pull-right').text('₹ '+numberWithCommas(payable));
428
 
429
	if(payable>0){
430
		$('button.checkoutbtn').prop( "disabled", false );
431
	}else{
432
		$('button.checkoutbtn').prop( "disabled", true );
433
	}
434
	var estimateString = $('div.popover-markup').data('str');
435
	if(estimateString!="Can't ship here"){
436
		$('div.cartdetailscard').find('div, input, textarea, button, select').each(function () {
437
			$(this).prop('disabled', false);
438
		});
439
	}else{
440
		$('div.cartdetailscard').find('div, input, textarea, button, select').each(function () {
441
			$(this).prop('disabled', true);
442
		});
443
	}
444
}