Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
30725 amit.gupta 1
$(function () {
2
	$(document).on('click', 'button.mk_plan_select', function () {
25778 amit.gupta 3
		$itemDetails = $('div.itemdetails');
30725 amit.gupta 4
		if ($itemDetails.find('.dgram').val() === '') {
25778 amit.gupta 5
			bootbox.alert('Mobile RAM is required');
6
			return;
7
		}
30725 amit.gupta 8
		if ($itemDetails.find('.dgmemory').val() === '') {
25778 amit.gupta 9
			bootbox.alert('Mobile Memory is required');
10
			return;
11
		}
30725 amit.gupta 12
		if ($itemDetails.find('#dgmfgdate').val() === '') {
25778 amit.gupta 13
			bootbox.alert('Mobile Mfg Date is required');
14
			return;
15
		}
16
		$orderItemRow = $(planCheckedOn).closest('td');
17
		$orderItemRow.find('.insuranceid').val($(this).data('key'));
18
		$orderItemRow.find('.insuranceamount').val($(this).data('amount'));
19
		$orderItemRow.find('.ram').val($itemDetails.find('.dgram').val());
20
		$orderItemRow.find('.memory').val($itemDetails.find('.dgmemory').val());
25813 amit.gupta 21
		$orderItemRow.find('.mfgdate').val(mfgDate);
24440 amit.gupta 22
		$('#mobilePlansModal').modal('hide');
23343 ashik.ali 23
		calculateTotalAmount();
24
	});
24440 amit.gupta 25
 
28395 amit.gupta 26
	//Price change handler
30725 amit.gupta 27
	$(document).on('change', "form#cd input.unitPrice,form#cd input.discount", function () {
28
 
28395 amit.gupta 29
		var unitPrice = parseFloat($('form#cd input.unitPrice').val());
30725 amit.gupta 30
		if (isNaN(unitPrice)) {
23343 ashik.ali 31
			unitPrice = 0;
32
		}
28395 amit.gupta 33
		var discount = parseFloat($('form#cd input.discount').val());
34
		var maxDiscount = parseFloat($('form#cd input.discount').data('maxdiscount'));
30725 amit.gupta 35
		if (isNaN(discount)) {
28395 amit.gupta 36
			discount = 0;
23343 ashik.ali 37
		}
30725 amit.gupta 38
		if (isNaN(maxDiscount)) {
28395 amit.gupta 39
			maxDiscount = 0;
40
		}
30725 amit.gupta 41
		if (discount > maxDiscount) {
28395 amit.gupta 42
			alert("Discount cant be greater than max Discount");
43
			$('form#cd input.discount').val(maxDiscount);
44
			$(this).focus();
45
			return;
46
		}
30725 amit.gupta 47
		if (unitPrice < 0 || (unitPrice > 0 && unitPrice - discount < 0)) {
28395 amit.gupta 48
			alert("Invalid unit/discount price");
49
			$(this).focus();
50
			return;
51
		}
30725 amit.gupta 52
 
23343 ashik.ali 53
		calculateTotalAmount();
30730 amit.gupta 54
		$('.mk_check_plans').trigger('click', ['manual']);
23343 ashik.ali 55
	});
30725 amit.gupta 56
 
57
 
58
	$(document).on('change', "form#cd input.insuranceamount", function () {
23343 ashik.ali 59
		calculateTotalAmount();
60
	});
30725 amit.gupta 61
 
62
	$(document).on('click', ".create-order", function () {
23347 ashik.ali 63
		checkout("main-content");
64
	});
30725 amit.gupta 65
 
30730 amit.gupta 66
	$(document).on('click', ".mk_check_plans", function (event, source) {
25778 amit.gupta 67
		$('div.itemdetails').find('input').val('');
24440 amit.gupta 68
		var mop = parseFloat($(this).data("mop"));
69
		var sellingPrice = $(this).val();
25737 amit.gupta 70
		var itemId = $(this).closest(".input-group").find("input.insuranceamount").attr("itemid");
30725 amit.gupta 71
		if (!isNaN(sellingPrice) && parseFloat(sellingPrice) >= mop) {
28395 amit.gupta 72
			price = parseFloat(sellingPrice);
24440 amit.gupta 73
		} else {
74
			price = mop;
75
		}
28395 amit.gupta 76
		var discount = parseFloat($(this).closest("tr").find("input.discount").val());
30725 amit.gupta 77
		if (!isNaN(discount)) {
28395 amit.gupta 78
			price = price - discount;
79
		}
24440 amit.gupta 80
		that = this;
30725 amit.gupta 81
		doGetAjaxRequestHandler(context + "/checkplans?price=" + price + "&itemId=" + itemId, function (response) {
24440 amit.gupta 82
			var obj = JSON.parse(response);
30725 amit.gupta 83
			if (obj != null) {
84
				getInsurancePlansModal(obj);
85
				planCheckedOn = that;
86
				return;
30730 amit.gupta 87
			} else {
88
				if (typeof source === "undefined") {
89
					alert("Product is not eligible for insurance");
90
				}
30725 amit.gupta 91
			}
24440 amit.gupta 92
		});
93
	});
23343 ashik.ali 94
 
22245 ashik.ali 95
});
23343 ashik.ali 96
 
97
 
24440 amit.gupta 98
function getInsurancePlansModal(insurancePlans) {
99
	var htmlArr = [];
30725 amit.gupta 100
	for (var key in insurancePlans) {
24440 amit.gupta 101
		templateArr = [];
102
		var plansList = insurancePlans[key];
30725 amit.gupta 103
		for (var index in plansList) {
24440 amit.gupta 104
			var plan = plansList[index];
105
			console.log(plan);
30725 amit.gupta 106
			var template =
24440 amit.gupta 107
				`<div class="col-lg-3">
108
					<div class="thumbnail">
25737 amit.gupta 109
						<img class="card-img-top" src="${logosmapping.mobile_insurance_providers[plan.providerId]}" alt="${plan.providerName}">
24440 amit.gupta 110
			      		<div class="caption" style="padding:9px 0 0">
25737 amit.gupta 111
						    <div style="margin:0 0 -2px -2px">
25813 amit.gupta 112
						    	<button class="btn btn-lg btn-default mk_plan_select" style="width:100%" 
25737 amit.gupta 113
						    		data-key="${plan.productId}"
25809 amit.gupta 114
						    		data-amount="${plan.premium}"
29622 amit.gupta 115
						    	>${plan.duration}@ Rs.<span class="currency">${plan.premium}</span>
25737 amit.gupta 116
						    	</button>
117
						    </div>
24440 amit.gupta 118
						</div>
29622 amit.gupta 119
						<div>
120
							Your Landing(DP) - ${plan.dp}
121
						</div>
24440 amit.gupta 122
					</div>
123
				</div>`;
124
			templateArr.push(template);
30725 amit.gupta 125
			if (index % 4 == 3 || +index + 1 == plansList.length) {
25813 amit.gupta 126
				templateArr = [`<div class="row col-lg-12">${templateArr.join('')}</div>`];
24440 amit.gupta 127
			}
128
		}
129
		htmlArr.push(`<div class="row"><h4>${key}</h4>${templateArr.join('')}</div>`);
130
	}
25778 amit.gupta 131
	$('#mobilePlansModal').find('.insurancedetails').html(htmlArr.join(''));
24440 amit.gupta 132
	$('#mobilePlansModal').modal({show: true});
133
 
134
}
135
 
136
 
23343 ashik.ali 137
function calculateTotalAmount() {
138
	var netPayableAmount = 0;
24440 amit.gupta 139
	var totaInsuranceAmount = 0;
30725 amit.gupta 140
	$("#cd").find('tr:gt(0)').each(function (index, el) {
23343 ashik.ali 141
		var rowTotal = 0;
142
		$tr = $(el);
24440 amit.gupta 143
		var insuranceAmount = $tr.find('input.insuranceamount').val();
30725 amit.gupta 144
		if (isNaN(insuranceAmount)) {
23343 ashik.ali 145
			insuranceAmount = 0;
30725 amit.gupta 146
		} else {
23343 ashik.ali 147
			insuranceAmount = parseFloat(insuranceAmount);
148
		}
30725 amit.gupta 149
 
23434 ashik.ali 150
		var quantity = parseFloat($(el).find('.unitPrice').attr('quantity'));
30725 amit.gupta 151
 
23343 ashik.ali 152
		var unitPrice = parseFloat($(el).find('.unitPrice').val());
30725 amit.gupta 153
		if (isNaN(unitPrice)) {
23434 ashik.ali 154
			unitPrice = 0;
155
		}
30725 amit.gupta 156
 
28395 amit.gupta 157
		var discount = $(el).find('.discount').val();
30725 amit.gupta 158
		if (isNaN(discount)) {
28395 amit.gupta 159
			discount = 0;
160
		}
23343 ashik.ali 161
 
30725 amit.gupta 162
		rowTotal = unitPrice - discount + insuranceAmount;
23343 ashik.ali 163
		$tr.find('.totalPrice').val(rowTotal);
164
		netPayableAmount += rowTotal;
24440 amit.gupta 165
		totaInsuranceAmount += insuranceAmount;
23343 ashik.ali 166
	});
30725 amit.gupta 167
	if (totaInsuranceAmount > 0) {
24440 amit.gupta 168
		$(".mk_insurance_row").show();
169
	} else {
170
		$(".mk_insurance_row").hide();
171
	}
23343 ashik.ali 172
	$('#cd').find('input.netPayableAmount').val(netPayableAmount);
173
}