Subversion Repositories SmartDukaan

Rev

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

Rev 21082 Rev 22212
Line -... Line 1...
-
 
1
//MOHIT-This code is called when user lands on cartdetails page either through using back button or clicking on cart from deals page 
1
function loadCartPageDetails(){
2
function loadCartPageDetails(){
2
	var input = $('input#refresh').val();
3
	var input = $('input#refresh').val();
-
 
4
	//MOHIT-If user comes through front/back navigation 
3
	if(input == 'yes'){
5
	if(input == 'yes'){
4
		$('#cartLoadingModal').modal('show');
6
		$('#cartLoadingModal').modal('show');
5
		var cart_details = localStorage.getItem('cart_details');
7
		var cart_details = localStorage.getItem('cart_details');
6
		if(cart_details!=undefined){
8
		if(cart_details!=undefined){
7
			var cartDetailsObj = JSON.parse(cart_details);
9
			var cartDetailsObj = JSON.parse(cart_details);
Line 14... Line 16...
14
			renderCartDerivedValues();
16
			renderCartDerivedValues();
15
			$('#cartLoadingModal').modal('hide');
17
			$('#cartLoadingModal').modal('hide');
16
		}else{
18
		}else{
17
			window.location.href = apihost + 'cartdetails/?user_id='+me;
19
			window.location.href = apihost + 'cartdetails/?user_id='+me;
18
		}
20
		}
-
 
21
	}
-
 
22
	//MOHIT-if user comes through link navigation.
19
	}else{
23
	else{
20
		$('input#refresh').val('yes');
24
		$('input#refresh').val('yes');
21
		var estimateString = $('div.popover-markup').data('str');
25
		var estimateString = $('div.popover-markup').data('str');
22
		var cart_details = localStorage.getItem('cart_details');
-
 
23
		if(cart_details!=undefined){
-
 
24
			loadCartDetails();
26
		loadCartDetails();
25
		}
-
 
26
		if(estimateString=="Can't ship here"){
27
		if(estimateString=="Can't ship here"){
27
			$('button.checkoutbtn').prop( "disabled", true);
28
			$('button.checkoutbtn').prop( "disabled", true);
28
			$('div.cartdetailscard').find('div, input, textarea, button, select').each(function () {
29
			$('div.cartdetailscard').find('div, input, textarea, button, select').each(function () {
29
					$(this).prop('disabled', true);
30
					$(this).prop('disabled', true);
30
			});
31
			});
Line 168... Line 169...
168
    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
169
    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
169
}
170
}
170
 
171
 
171
function handleCheckout(){
172
function handleCheckout(){
172
	var cart_details = localStorage.getItem('cart_details');
173
	var cart_details = localStorage.getItem('cart_details');
173
	var shippingCharges = 0;
-
 
174
	if(cart_details!=undefined){
174
	if(cart_details!=undefined){
175
    	var cartDetailsObj = JSON.parse(cart_details);
175
    	var cartDetailsObj = JSON.parse(cart_details);
176
    	nonAccessoryShippingCharge = cartDetailsObj.shippingCharges - cartDetailsObj.accessoryShippingCharges;
176
    	//nonAccessoryShippingCharge = cartDetailsObj.shippingCharges - cartDetailsObj.accessoryShippingCharges;
177
    }
-
 
178
	
177
	
179
	if(nonAccessoryShippingCharge>0){
178
    	if(cartDetailsObj.shippingCharges > 0){
180
		window.history.pushState('forward', null, './?user_id='+me);
179
			window.history.pushState('forward', null, './?user_id='+me);
181
		if(nonAccessoryShippingCharge/cartDetailsObj.totalCartQuantity>50){
-
 
182
			$('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;'>"
-
 
183
					+"<span>आप शिपिंग के लिए  ₹60 प्रति आइटम का भुगतान कर रहे हैं। <br> प्रति आइटम शिपिंग ₹30 के लिए। <br> पाँच आइटम तक जोड़ें।</span>");
180
			$('p#shippingText').html("<span>You are paying ₹50 for shipping.<br>To avail free shipping, cart value should be more than ₹999</span><hr style='margin-top: 5px;margin-bottom: 5px;'>"
184
		} else {
-
 
185
			$('p#shippingText').html("<span>You are paying ₹ "+ nonAccessoryShippingCharge.toFixed() 
-
 
186
					+" for shipping.<br>"
-
 
187
					+"<span>आप शिपिंग के लिए  ₹ "+ nonAccessoryShippingCharge.toFixed() 
-
 
188
					+" का भुगतान कर रहे हैं।")
181
			+"<span>आप शिपिंग के लिए ₹50 का भुगतान कर रहे हैं।<br> फ्री शिपिंग के लिए कार्ट राशि ₹999 से अधिक की होनी चाहिए।</span>");
189
			$("#addItems").find("strong").html("Cancel<br>(रद्द करें)");
-
 
190
		}
-
 
191
		$('#myModal').modal('show');
182
			$('#myModal').modal('show');
192
	}else{
183
		} else{
193
		$('#cartLoadingModal').modal('show');
184
			$('#cartLoadingModal').modal('show');
194
		var url = apihost + 'shippings/';
185
			var url = apihost + 'shippings/';
195
	    var newForm = $('<form>', {
186
		    var newForm = $('<form>', {
196
	        'action': url,
187
		        'action': url,
197
	        'method':'post'
188
		        'method':'post'
198
	    }).append($('<input>', {
189
		    }).append($('<input>', {
199
	        'name': 'cart_details',
190
		        'name': 'cart_details',
200
	        'value': localStorage.getItem('cart_details'),
191
		        'value': localStorage.getItem('cart_details'),
201
	        'type': 'hidden'
192
		        'type': 'hidden'
202
	    }));
193
		    }));
203
	    newForm.appendTo($('body'));
194
	    newForm.appendTo($('body'));
204
	    newForm.submit();
195
	    newForm.submit();
205
	}
196
	}
206
}
197
}
207
 
198
 
Line 269... Line 260...
269
 
260
 
270
$(document).on('click','button#abortClearCartBtn',function(){
261
$(document).on('click','button#abortClearCartBtn',function(){
271
	$('#clearCartModel').modal('hide');
262
	$('#clearCartModel').modal('hide');
272
});
263
});
273
 
264
 
-
 
265
//TODO:Mohit Clear cart removes everything in the cart
274
function clearCart(){
266
function clearCart(){
275
	$('#clearCartModel').modal('hide');
267
	$('#clearCartModel').modal('hide');
276
	$("#cartloader").removeClass('hidden');
268
	$("#cartloader").removeClass('hidden');
277
	var cart_details = localStorage.getItem('cart_details');
269
	var cart_details = localStorage.getItem('cart_details');
278
	if(cart_details!=undefined){
270
	if(cart_details!=undefined){
Line 322... Line 314...
322
			renderCartDerivedValues();
314
			renderCartDerivedValues();
323
		}
315
		}
324
	}
316
	}
325
});
317
});
326
 
318
 
-
 
319
//TODO:MOHIT Cart info comes from html docuemnt with each cart item element
-
 
320
//New synced cart cache is being populated from that cart.
-
 
321
//This code is called when user comes to cart details page.
327
function loadCartDetails(){
322
function loadCartDetails(){
328
	cartItems = {};
323
	cartItems = {};
329
	oldCartItems = JSON.parse(localStorage.getItem('cart_details')).cartItems;
324
	oldCartItems = JSON.parse(localStorage.getItem('cart_details')).cartItems;
330
	$('.number-spinner').each(function (index, val) {
325
	$('.number-spinner').each(function (index, val) {
331
		var element = $(val);
326
		var element = $(val);
Line 365... Line 360...
365
		cartItems[sku.toString()] = itemDetail;
360
		cartItems[sku.toString()] = itemDetail;
366
	});
361
	});
367
	setCartDetails(cartItems);
362
	setCartDetails(cartItems);
368
}
363
}
369
 
364
 
-
 
365
 
-
 
366
//TODO: MOHIT. This peice of code is used to sync server side cart validation response during successful handling
-
 
367
//in scenarios where 
370
function setCartDetails(cartItems) {
368
function setCartDetails(cartItems) {
371
	var cartDetailsObj = {};
369
	var cartDetailsObj = {};
372
	cartDetailsObj.totalCartQuantity = 0; 
370
	cartDetailsObj.totalCartQuantity = 0; 
373
	cartDetailsObj.totalCartValue = 0;
371
	cartDetailsObj.totalCartValue = 0;
374
	cartDetailsObj.mobileCount = 0;
372
	cartDetailsObj.mobileCount = 0;
375
	cartDetailsObj.totalSkus = 0;
373
	cartDetailsObj.totalSkus = 0;
376
	cartDetailsObj.shippingCharges = 0;
374
	cartDetailsObj.shippingCharges = 0;
377
	cartDetailsObj.accessoryShippingCharges = 0;
375
	//cartDetailsObj.accessoryShippingCharges = 0;
378
	cartDetailsObj.cartItems = cartItems;
376
	cartDetailsObj.cartItems = cartItems;
379
	for(itemId in cartItems) {
377
	for(itemId in cartItems) {
380
		item = cartItems[itemId];
378
		item = cartItems[itemId];
381
		if(item.quantity > 0){
379
		if(item.quantity > 0){
382
			cartDetailsObj.totalCartQuantity += item.quantity;
380
			cartDetailsObj.totalCartQuantity += item.quantity;
383
			cartDetailsObj.totalSkus += 1;
381
			cartDetailsObj.totalSkus += 1;
384
		}
382
		}
385
		cartDetailsObj.totalCartValue += item.quantity*item.unitprice;
383
		cartDetailsObj.totalCartValue += item.quantity*item.unitprice;
386
		if(item.category=='Mobile Phone' || item.category=='Tablet') {
384
		/*if(item.category=='Mobile Phone' || item.category=='Tablet') {
387
			cartDetailsObj.mobileCount += item.quantity;
385
			cartDetailsObj.mobileCount += item.quantity;
388
		} else {
386
		} else {
389
			cartDetailsObj.accessoryShippingCharges = 0;
387
			cartDetailsObj.accessoryShippingCharges = 0;
390
		}
388
		}*/
391
	}
389
	}
392
	if(cartDetailsObj.totalCartQuantity<5){
390
	/*if(cartDetailsObj.totalCartQuantity<5){
393
		cartDetailsObj.shippingCharges = cartDetailsObj.accessoryShippingCharges + 60*cartDetailsObj.totalCartQuantity;
391
		cartDetailsObj.shippingCharges = cartDetailsObj.accessoryShippingCharges + 60*cartDetailsObj.totalCartQuantity;
394
	} else {
392
	} else {
395
		cartDetailsObj.shippingCharges = cartDetailsObj.accessoryShippingCharges + 30*cartDetailsObj.totalCartQuantity;
393
		cartDetailsObj.shippingCharges = cartDetailsObj.accessoryShippingCharges + 30*cartDetailsObj.totalCartQuantity;
-
 
394
	}*/
-
 
395
	if(cartDetailsObj.totalCartValue < 1000){
-
 
396
		cartDetailsObj.shippingCharges = 50;
396
	}
397
	}
-
 
398
	cartDetailsObj.shippingCharges = 
397
	localStorage.setItem('cart_details',JSON.stringify(cartDetailsObj));
399
	localStorage.setItem('cart_details',JSON.stringify(cartDetailsObj));
398
}
400
}
399
 
401
 
-
 
402
//TODO MOHIT this logic will tell you about what all values that need to be derived from local cart storage for display
-
 
403
//purpose in cart page
400
function renderCartDerivedValues(){
404
function renderCartDerivedValues(){
401
	var cart_details = localStorage.getItem('cart_details');
405
	var cart_details = localStorage.getItem('cart_details');
402
	var cartDetailsObj = JSON.parse(cart_details);
406
	var cartDetailsObj = JSON.parse(cart_details);
403
	var totalCartValue = cartDetailsObj.totalCartValue;
407
	var totalCartValue = cartDetailsObj.totalCartValue;
404
	var totalCartQuantity = cartDetailsObj.totalCartQuantity;
408
	var totalCartQuantity = cartDetailsObj.totalCartQuantity;