Subversion Repositories SmartDukaan

Rev

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

Rev 31855 Rev 32327
Line 1... Line 1...
1
var customerId;
1
var customerId;
2
 
2
 
3
function formLoaded() {
3
function formLoaded() {
4
	$("form#cd input").each(function() {
4
    $("form#cd input").each(function () {
5
		$(this).attr('autocomplete', 'off');
5
        $(this).attr('autocomplete', 'off');
6
	});
6
    });
7
	$('form#cd').validate({
7
    $('form#cd').validate({
8
		rules: {
8
        rules: {
9
			name: {
9
            name: {
10
				required: true
10
                required: true
11
			},
11
            },
12
			email: {
12
            email: {
13
				required: true,
13
                required: true,
14
				email: true
14
                email: true
15
			},
15
            },
16
			line1: {
16
            line1: {
17
				required: true
17
                required: true
18
			},
18
            },
19
			state: {
19
            state: {
20
				required: true
20
                required: true
21
			},
21
            },
22
			city: {
22
            city: {
23
				required: true
23
                required: true
24
			},
24
            },
25
			pincode: {
25
            pincode: {
26
				required: true,
26
                required: true,
27
				digits: true,
27
                digits: true,
28
				minlength: 6,
28
                minlength: 6,
29
				maxlength: 6,
29
                maxlength: 6,
30
			},
30
            },
31
			phone: {
31
            phone: {
32
				required: true,
32
                required: true,
33
				minlength: 10,
33
                minlength: 10,
34
				maxlength: 10,
34
                maxlength: 10,
35
				digits: true
35
                digits: true
36
			},
36
            },
37
		},
37
        },
38
		messages: {
38
        messages: {
39
			name: {
39
            name: {
40
				required: "Required"
40
                required: "Required"
41
			},
41
            },
42
			line1: {
42
            line1: {
43
				required: "Required"
43
                required: "Required"
44
			},
44
            },
45
			state: {
45
            state: {
46
				required: "State required"
46
                required: "State required"
47
			},
47
            },
48
			city: {
48
            city: {
49
				required: "City required"
49
                required: "City required"
50
			},
50
            },
51
			email: {
51
            email: {
52
				require: "Required"
52
                require: "Required"
53
			},
53
            },
54
			pincode: {
54
            pincode: {
55
				required: "Required",
55
                required: "Required",
56
				digits: "Invalid pin"
56
                digits: "Invalid pin"
57
			},
57
            },
58
			phone: {
58
            phone: {
59
				required: "Required",
59
                required: "Required",
60
				digits: "Invalid number",
60
                digits: "Invalid number",
61
				minlength: "Number should be of 10 digits"
61
                minlength: "Number should be of 10 digits"
62
			}
62
            }
63
		},
63
        },
64
		submitHandler: function(form, event) {
64
        submitHandler: function (form, event) {
65
			event.preventDefault();
65
            event.preventDefault();
66
			var payload = orderDetailsPayload();
66
            var payload = orderDetailsPayload();
67
			if (!validateOrderDetails()) {
67
            if (!validateOrderDetails()) {
68
				alert("Please fix highlighted errors");
68
                alert("Please fix highlighted errors");
69
				return false;
69
                return false;
70
			}
70
            }
71
			doPostAjaxRequestWithJsonHandler(context + "/create-order", payload, function(response) {
71
            doPostAjaxRequestWithJsonHandler(context + "/create-order", payload, function (response) {
72
				emptyBag();
72
                emptyBag();
73
				$('#main-content').html(response);
73
                $('#main-content').html(response);
74
			});
74
            });
75
			return false; // required to block normal submit since you used
75
            return false; // required to block normal submit since you used
76
			// ajax
76
            // ajax
77
		}
77
        }
78
 
78
 
79
	});
79
    });
80
 
80
 
81
	$('form#newaddress').validate({
81
    $('form#newaddress').validate({
82
		rules: {
82
        rules: {
83
			firstName: {
83
            firstName: {
84
				required: true
84
                required: true
85
			},
85
            },
86
			line1: {
86
            line1: {
87
				required: true
87
                required: true
88
			},
88
            },
89
			state: {
89
            state: {
90
				required: true
90
                required: true
91
			},
91
            },
92
			city: {
92
            city: {
93
				required: true
93
                required: true
94
			},
94
            },
95
			pinCode: {
95
            pinCode: {
96
				required: true,
96
                required: true,
97
				digits: true,
97
                digits: true,
98
				minlength: 6,
98
                minlength: 6,
99
				maxlength: 6,
99
                maxlength: 6,
100
			},
100
            },
101
			alternatePhone: {
101
            alternatePhone: {
102
				required: true,
102
                required: true,
103
				minlength: 10,
103
                minlength: 10,
104
				maxlength: 10,
104
                maxlength: 10,
105
				digits: true
105
                digits: true
106
			},
106
            },
107
		},
107
        },
108
		messages: {
108
        messages: {
109
			firstName: {
109
            firstName: {
110
				required: "Required"
110
                required: "Required"
111
			},
111
            },
112
			line1: {
112
            line1: {
113
				required: "Required"
113
                required: "Required"
114
			},
114
            },
115
			state: {
115
            state: {
116
				required: "State required"
116
                required: "State required"
117
			},
117
            },
118
			city: {
118
            city: {
119
				required: "City required"
119
                required: "City required"
120
			},
120
            },
121
			pinCode: {
121
            pinCode: {
122
				required: "Required",
122
                required: "Required",
123
				digits: "Invalid pin"
123
                digits: "Invalid pin"
124
			},
124
            },
125
			alternatePhone: {
125
            alternatePhone: {
126
				required: "Required",
126
                required: "Required",
127
				digits: "Invalid number",
127
                digits: "Invalid number",
128
				minlength: "Number should be of 10 digits"
128
                minlength: "Number should be of 10 digits"
129
			}
129
            }
130
		},
130
        },
131
		submitHandler: function(form, event) {
131
        submitHandler: function (form, event) {
132
			event.preventDefault();
132
            event.preventDefault();
133
			let customerAddress = {};
133
            let customerAddress = {};
134
			customerAddress['name'] = $("#firstName").val();
134
            customerAddress['name'] = $("#firstName").val();
135
			customerAddress['lastName'] = $("#lastName").val();
135
            customerAddress['lastName'] = $("#lastName").val();
136
			customerAddress['line1'] = $("#line1").val();
136
            customerAddress['line1'] = $("#line1").val();
137
			customerAddress['line2'] = $("#line2").val();
137
            customerAddress['line2'] = $("#line2").val();
138
			customerAddress['landmark'] = $("#landmark").val();
138
            customerAddress['landmark'] = $("#landmark").val();
139
			customerAddress['city'] = $("#city").val();
139
            customerAddress['city'] = $("#city").val();
140
			customerAddress['state'] = $('select[name=state] option:selected').val();
140
            customerAddress['state'] = $('select[name=state] option:selected').val();
141
			customerAddress['pinCode'] = $("#pinCode").val();
141
            customerAddress['pinCode'] = $("#pinCode").val();
142
			customerAddress['phoneNumber'] = $("#alternatePhone").val();
142
            customerAddress['phoneNumber'] = $("#alternatePhone").val();
143
			customerAddress['country'] = "India";
143
            customerAddress['country'] = "India";
144
			doPostAjaxRequestWithJsonHandler(`${context}/customer/address?customerId=${customerId}`, JSON.stringify(customerAddress), function(response) {
144
            doPostAjaxRequestWithJsonHandler(`${context}/customer/address?customerId=${customerId}`, JSON.stringify(customerAddress), function (response) {
145
				$("#address-body").prepend(getAddressTr(response.response));
145
                $("#address-body").prepend(getAddressTr(response.response));
146
				$('#newaddressModal').modal('toggle');
146
                $('#newaddressModal').modal('toggle');
147
				$("#address-body").find('a.select-address').click();
147
                $("#address-body").find('a.select-address').click();
148
			});
148
            });
149
		}
149
        }
150
 
150
 
151
	});
151
    });
152
 
152
 
153
	$("input.unitPrice").on('change', function() {
153
    $("input.unitPrice").on('change', function () {
154
		var $element = $(this);
154
        var $element = $(this);
155
		var unitPrice = parseFloat($element.val());
155
        var unitPrice = parseFloat($element.val());
156
		if (!isNaN(unitPrice)) {
156
        if (!isNaN(unitPrice)) {
157
			var itemType = parseFloat($(this).closest('tr').find('.serialNumber').attr("itemType"));
157
            var itemType = parseFloat($(this).closest('tr').find('.serialNumber').attr("itemType"));
158
			var mopPrice = parseFloat($(this).attr('mopPrice'));
158
            var mopPrice = parseFloat($(this).attr('mopPrice'));
159
			var isMop = JSON.parse($(this).attr('isMop'));
159
            var isMop = JSON.parse($(this).attr('isMop'));
160
			var dp = parseFloat($(this).attr('dp'));
160
            var dp = parseFloat($(this).attr('dp'));
161
			var mrp = parseFloat($(this).attr('mrp'));
161
            var mrp = parseFloat($(this).attr('mrp'));
162
			if (mrp != 0 && unitPrice > mrp) {
162
            if (mrp != 0 && unitPrice > mrp) {
163
				alert("Selling Price should not be greater than MRP");
163
                alert("Selling Price should not be greater than MRP");
164
				$element.addClass("border-highlight");
164
                $element.addClass("border-highlight");
165
			} else if (!accessoriesDeals && unitPrice < mopPrice) {
165
            } else if (!accessoriesDeals && unitPrice < mopPrice) {
166
				alert("Selling Price must be greater than equal to MOP");
166
                alert("Selling Price must be greater than equal to MOP");
167
				$element.addClass("border-highlight");
167
                $element.addClass("border-highlight");
168
			} else if (itemType == 'SERIALIZED' && unitPrice < mopPrice) {
168
            } else if (itemType == 'SERIALIZED' && unitPrice < mopPrice) {
169
				if (isMop) {
169
                if (isMop) {
170
					alert("Selling Price must be greater than equal to MOP");
170
                    alert("Selling Price must be greater than equal to MOP");
171
					$element.addClass("border-highlight");
171
                    $element.addClass("border-highlight");
172
				}
172
                }
173
			} else if (itemType == 'NON_SERIALIZED' && unitPrice < dp) {
173
            } else if (itemType == 'NON_SERIALIZED' && unitPrice < dp) {
174
				alert("Selling Price must be greater than equal to DP");
174
                alert("Selling Price must be greater than equal to DP");
175
				$element.addClass("border-highlight");
175
                $element.addClass("border-highlight");
176
			} else {
176
            } else {
177
				$element.removeClass("border-highlight");
177
                $element.removeClass("border-highlight");
178
			}
178
            }
179
			// Clear insurance values if price changes
179
            // Clear insurance values if price changes
180
			$(this).closest('tr').find('.insuranceid').val("");
180
            $(this).closest('tr').find('.insuranceid').val("");
181
			$(this).closest('tr').find('.insuranceamount').val("0");
181
            $(this).closest('tr').find('.insuranceamount').val("0");
182
		}
182
        }
183
		calculateTotalAmount();
183
        calculateTotalAmount();
184
	});
184
    });
185
	customerInfo = $("div.customerinfo").html();
185
    customerInfo = $("div.customerinfo").html();
186
	billingInfo = $("div.billinginfo").html();
186
    billingInfo = $("div.billinginfo").html();
187
 
187
 
188
	$("input.search-phone").change(function() {
188
    $("input.search-phone").change(function () {
189
		resetInputs();
189
        resetInputs();
190
		var mobileNumber = $(this).val();
190
        var mobileNumber = $(this).val();
191
		console.log(mobileNumber)
191
        console.log(mobileNumber)
192
		if (mobileNumber.length < 10 || mobileNumber.length > 10) {
192
        if (mobileNumber.length < 10 || mobileNumber.length > 10) {
193
			alert("Mobile Number is must be 10 digits");
193
            alert("Mobile Number is must be 10 digits");
194
			return false;
194
            return false;
195
		} else {
195
        } else {
196
			writeOldCustomerDetailsByMobileNumber(mobileNumber);
196
            writeOldCustomerDetailsByMobileNumber(mobileNumber);
197
		}
197
        }
198
	});
198
    });
199
 
199
 
200
	$(document).on('click', 'button.new-address-btn', function() {
200
    $(document).on('click', 'button.new-address-btn', function () {
201
		$('#newaddressModal').modal({ show: true });
201
        $('#newaddressModal').modal({show: true});
202
	});
202
    });
203
 
203
 
204
	$(document).on('click', 'button.mk_add_email', function() {
204
    $(document).on('click', 'button.mk_add_email', function () {
205
		let customerObj = {};
205
        let customerObj = {};
206
		customerObj['customerId'] = customerId;
206
        customerObj['customerId'] = customerId;
207
		customerObj['emailId'] = $("#emailId").val();
207
        customerObj['emailId'] = $("#emailId").val();
208
		if (validateEmail(customerObj['emailId'])) {
208
        if (validateEmail(customerObj['emailId'])) {
209
			doPostAjaxRequestWithJsonHandler(`${context}/customer/add-email`, JSON.stringify(customerObj), function(response) {
209
            doPostAjaxRequestWithJsonHandler(`${context}/customer/add-email`, JSON.stringify(customerObj), function (response) {
210
				alert("Email added");
210
                alert("Email added");
211
				$("input.search-phone").val(customerObj['mobileNumber']).change();
211
                $("input.search-phone").val(customerObj['mobileNumber']).change();
212
			});
212
            });
213
		} else {
213
        } else {
214
			alert("Invalid email id");
214
            alert("Invalid email id");
215
		}
215
        }
216
 
216
 
217
	});
217
    });
218
	$(document).on('click', 'button.mk_add_customer', function() {
218
    $(document).on('click', 'button.mk_add_customer', function () {
219
		customerObj = {}
219
        customerObj = {}
220
		if ($("input.firstName").val().length == 0) {
220
        if ($("input.firstName").val().length == 0) {
221
			alert("First Name is required");
221
            alert("First Name is required");
222
			return false;
222
            return false;
223
		}
223
        }
224
		customerObj['firstName'] = $("input.firstName").val();
224
        customerObj['firstName'] = $("input.firstName").val();
225
		customerObj['lastName'] = $("input.lastName").val();
225
        customerObj['lastName'] = $("input.lastName").val();
226
		customerObj['emailId'] = $("#emailId").val();
226
        customerObj['emailId'] = $("#emailId").val();
227
 
227
 
228
		console.log(customerObj['emailId']);
228
        console.log(customerObj['emailId']);
229
		customerObj['mobileNumber'] = $("input.phone").val();
229
        customerObj['mobileNumber'] = $("input.phone").val();
230
 
230
 
231
		if (customerObj['emailId']) {
231
        if (customerObj['emailId']) {
232
			if (!validateEmail(customerObj['emailId'])) {
232
            if (!validateEmail(customerObj['emailId'])) {
233
				alert("Invalid email id");
233
                alert("Invalid email id");
234
				return false;
234
                return false;
235
			}
235
            }
236
		}
236
        }
237
 
237
 
238
 
238
 
239
 
239
        doPostAjaxRequestWithJsonHandler(`${context}/customer/add`, JSON.stringify(customerObj), function (response) {
240
		doPostAjaxRequestWithJsonHandler(`${context}/customer/add`, JSON.stringify(customerObj), function(response) {
240
            alert("Customer added");
241
			alert("Customer added");
241
            $("input.search-phone").change();
242
			$("input.search-phone").change();
242
        });
243
		});
243
 
244
 
244
 
245
 
245
    });
246
	});
246
    $(document).on('click', 'a.select-address', function () {
247
	$(document).on('click', 'a.select-address', function() {
247
        $(this).closest('table').data("addressselected", "true").find('td').css("font-weight", "normal");
248
		$(this).closest('table').data("addressselected", "true").find('td').css("font-weight", "normal");
248
        $(this).closest('tr').find('td').css("font-weight", "bold");
249
		$(this).closest('tr').find('td').css("font-weight", "bold");
249
        selectedAddressId = $(this).data("addressid");
250
		selectedAddressId = $(this).data("addressid");
250
    });
251
	});
251
    $(document).on('click', 'button.btn-add-address', function () {
252
	$(document).on('click', 'button.btn-add-address', function() {
252
        $("form#newaddress").submit();
253
		$("form#newaddress").submit();
253
    });
254
	});
-
 
255
 
254
 
256
}
255
}
-
 
256
 
257
function validateOrderDetails() {
257
function validateOrderDetails() {
258
	var sNumbers = [];
258
    var sNumbers = [];
259
	var error = false;
259
    var error = false;
260
	$("form#cd input.serialNumber").each(function() {
260
    $("form#cd input.serialNumber").each(function () {
261
		var input = $(this).val().trim();
261
        var input = $(this).val().trim();
262
		var itemType = $(this).attr("itemType");
262
        var itemType = $(this).attr("itemType");
263
		$(this).removeClass("border-highlight");
263
        $(this).removeClass("border-highlight");
264
		if (sNumbers.indexOf(input) != -1 || (itemType === 'SERIALIZED' && !input)) {
264
        if (sNumbers.indexOf(input) != -1 || (itemType === 'SERIALIZED' && !input)) {
265
			error = true;
265
            error = true;
266
			$(this).addClass("border-highlight");
266
            $(this).addClass("border-highlight");
267
		}
267
        }
268
		sNumbers.push(input);
268
        sNumbers.push(input);
269
	});
269
    });
270
 
270
 
271
	$("form#cd input.unitPrice").each(function() {
271
    $("form#cd input.unitPrice").each(function () {
272
		var input = $(this).val().trim();
272
        var input = $(this).val().trim();
273
		$(this).removeClass("border-highlight");
273
        $(this).removeClass("border-highlight");
274
		if (!input || parseInt(input) <= 0 || isNaN(input)) {
274
        if (!input || parseInt(input) <= 0 || isNaN(input)) {
275
			error = true;
275
            error = true;
276
			$(this).addClass("border-highlight");
276
            $(this).addClass("border-highlight");
277
		}
277
        }
278
	});
278
    });
279
 
279
 
280
	var gstNumber = $("form#cd input[name=gstNumber]").val();
280
    var gstNumber = $("form#cd input[name=gstNumber]").val();
281
	$("form#cd input[name=gstNumber]").removeClass("border-highlight");
281
    $("form#cd input[name=gstNumber]").removeClass("border-highlight");
282
	if (gstNumber.length > 0 && gstNumber.length != 15) {
282
    if (gstNumber.length > 0 && gstNumber.length != 15) {
283
		alert("Please provide valid gstNumber");
283
        alert("Please provide valid gstNumber");
284
		error = true;
284
        error = true;
285
		$("form#cd input[name=gstNumber]").addClass("border-highlight");
285
        $("form#cd input[name=gstNumber]").addClass("border-highlight");
286
	}
286
    }
287
 
287
 
288
	var amount = 0;
288
    var amount = 0;
289
	var netPayableAmount = parseFloat($("form#cd input.netPayableAmount").val());
289
    var netPayableAmount = parseFloat($("form#cd input.netPayableAmount").val());
290
	$("form#cd input.amount").each(function() {
290
    $("form#cd input.amount").each(function () {
291
		if ($(this).val() == "") {
291
        if ($(this).val() == "") {
292
			$(this).val(0);
292
            $(this).val(0);
293
		}
293
        }
294
		var tmpAmount = parseFloat($(this).val());
294
        var tmpAmount = parseFloat($(this).val());
295
		amount = amount + tmpAmount;
295
        amount = amount + tmpAmount;
296
	});
296
    });
297
 
297
 
298
	console.log(amount);
298
    console.log(amount);
299
	console.log(netPayableAmount);
299
    console.log(netPayableAmount);
300
 
300
 
301
	if (amount != netPayableAmount) {
301
    if (amount != netPayableAmount) {
302
		if (amount < netPayableAmount) {
302
        if (amount < netPayableAmount) {
303
			alert("[" + (netPayableAmount - amount) + "] is more required to complete the payment");
303
            alert("[" + (netPayableAmount - amount) + "] is more required to complete the payment");
304
		} else {
304
        } else {
305
			alert("[" + (amount - netPayableAmount) + "] is extra amount, please reduce the amount");
305
            alert("[" + (amount - netPayableAmount) + "] is extra amount, please reduce the amount");
306
		}
306
        }
307
		$("form#cd input.netPayableAmount").each(function() {
307
        $("form#cd input.netPayableAmount").each(function () {
308
			$(this).addClass("border-highlight");
308
            $(this).addClass("border-highlight");
309
		});
309
        });
310
		error = true;
310
        error = true;
311
	}
311
    }
312
 
312
 
313
	if (error) {
313
    if (error) {
314
		return false;
314
        return false;
315
	}
315
    }
316
	return true;
316
    return true;
317
 
317
 
318
}
318
}
319
 
319
 
320
 
320
 
321
function getSerialNumbersFromOrder($el) {
321
function getSerialNumbersFromOrder($el) {
322
	var $serialNumberElement = $el.find('.serialNumber');
322
    var $serialNumberElement = $el.find('.serialNumber');
323
	if ($serialNumberElement.val() == '') {
323
    if ($serialNumberElement.val() == '') {
324
		return null;
324
        return null;
325
	}
325
    }
326
	var insuranceAmount = parseFloat($el.find('.insuranceamount').val());
326
    var insuranceAmount = parseFloat($el.find('.insuranceamount').val());
327
	if (insuranceAmount > 0) {
327
    if (insuranceAmount > 0) {
328
		insurance = true;
328
        insurance = true;
329
		globalInsurace = true;
329
        globalInsurace = true;
330
	} else {
330
    } else {
331
		insurance = false;
331
        insurance = false;
332
	}
332
    }
333
	return { 'serialNumber': $serialNumberElement.val(), 'insurance': insurance, 'amount': insuranceAmount }
333
    return {'serialNumber': $serialNumberElement.val(), 'insurance': insurance, 'amount': insuranceAmount}
334
}
334
}
335
 
335
 
336
function orderDetailsPayload() {
336
function orderDetailsPayload() {
337
	var orderObj = {};
337
    var priceQtyArray = [];
338
	var priceQtyArray = [];
338
    var customerObj = {};
339
	var customerObj = {};
339
    var paymentOptionIdAmount = [];
340
	var paymentOptionIdAmount = [];
340
    var globalInsurance = false;
341
	var globalInsurance = false;
341
 
342
 
342
    $("#order-items").find("tr:not(:first-child)").each(function (index, el) {
343
	$("form#cd input.serialNumber").each(function() {
343
        // console.log(el);
344
		var itemId = parseInt($(this).attr("itemId"));
344
        // console.log(index);
345
		if (orderObj.hasOwnProperty('fofoOrderItems')) {
345
        var $el = $(el);
346
			var itemDetails = orderObj['fofoOrderItems'];
346
        var $unitPriceElement = $el.find('.unitPrice');
347
			if (itemDetails.hasOwnProperty(itemId)) {
347
        var itemId = parseInt($unitPriceElement.attr("itemId"));
348
				var serialNumbers = itemDetails[itemId];
348
        var found = false;
349
				serialNumbers.push($(this).val());
349
        let tmpObj;
350
				itemDetails[itemId] = serialNumbers;
350
        let filteredList = priceQtyArray.filter(x => x.itemId === itemId);
351
			} else {
351
        if (filteredList.length === 0) {
352
				var serialNumbers = [];
352
            var $discountElement = $el.find('.discount');
353
				serialNumbers.push($(this).val());
353
            var unitPrice = parseFloat($unitPriceElement.val());
354
				itemDetails[itemId] = serialNumbers;
354
            var discount = parseFloat($discountElement.val());
355
			}
355
            if (isNaN(discount)) {
356
		} else {
356
                discount = 0;
357
			var serialNumbers = [];
357
            }
358
			serialNumbers.push($(this).val());
358
            var qty = parseInt($unitPriceElement.attr("quantity"));
359
			var tmp = {};
359
            tmpObj = {
360
			tmp[itemId] = serialNumbers;
360
                itemId: itemId,
361
			orderObj['fofoOrderItems'] = tmp;
361
                sellingPrice: unitPrice - discount,
362
		}
362
                quantity: qty,
363
	});
363
                discountAmount: discount,
364
	console.log(JSON.stringify(orderObj));
364
                serialNumberDetails: []
365
	$("#order-items").find("tr:not(:first-child)").each(function(index, el) {
365
            };
366
		// console.log(el);
366
            priceQtyArray.push(tmpObj);
367
		// console.log(index);
367
        } else {
368
		var $el = $(el);
368
            tmpObj = filteredList[0];
369
		var $unitPriceElement = $el.find('.unitPrice');
369
        }
370
		var $discountElement = $el.find('.discount');
370
 
371
 
371
        var $serialNumberElement = $(el).find('.serialNumber');
372
		var itemId = parseInt($unitPriceElement.attr("itemId"));
372
        var insuranceEle = $(el).find('.insuranceamount');
373
		var unitPrice = parseFloat($unitPriceElement.val());
373
        var insuranceAmount = 0;
374
		var discount = parseFloat($discountElement.val());
374
        if (insuranceEle.length > 0) {
375
		if (isNaN(discount)) {
375
            insuranceAmount = parseFloat(insuranceEle.val());
376
			discount = 0;
376
        }
377
		}
377
        var insuranceId = "";
378
		var qty = parseInt($unitPriceElement.attr("quantity"));
378
        if (insuranceAmount > 0) {
379
		var tmpObj = {
379
            insuranceId = $(el).find('.insuranceid').val();
380
			'itemId': itemId,
380
        }
381
			'sellingPrice': unitPrice - discount,
381
        var ram = $(el).find('.ram').val();
382
			'quantity': qty,
382
        var memory = $(el).find('.memory').val();
383
			'discountAmount': discount
383
        var mfgdate = $(el).find('.mfgdate').val();
384
		};
384
        var serialNumberDetail = {
385
 
385
            'serialNumber': $serialNumberElement.val(), 'insurance': insuranceId, 'amount': insuranceAmount,
386
		if (orderObj['fofoOrderItems'][itemId] === undefined) {
386
            'ram': ram, 'memory': memory, 'mfgDate': mfgdate
387
			tmpObj['serialNumberDetails'] = [];
387
        };
388
		} else {
388
        tmpObj.serialNumberDetails.push(serialNumberDetail);
389
			// tmpObj['serialNumbers'] = orderObj['fofoLineItems'][itemId];
389
 
390
			tmpObj['serialNumberDetails'] = [];
390
    });
391
		}
391
 
392
		var found = false;
392
 
393
		for (var i = 0; i < priceQtyArray.length; i++) {
393
    customerObj['gstNumber'] = $("form#cd input[name=gstNumber]").val();
394
			if (priceQtyArray[i]["itemId"] == itemId) {
394
    if (customerId == undefined) {
395
				priceQtyArray[i]["quantity"] = priceQtyArray[i]["quantity"] + 1;
395
        alert("Please choose customer");
396
				found = true;
396
        return false;
397
				break;
397
    }
398
			}
398
    if ($("#customer-address").data("addressselected") == "true") {
399
		}
399
        alert("Please select address");
400
		if (!found) {
400
        return false;
401
			priceQtyArray.push(tmpObj);
401
    }
402
		}
402
    customerObj['customerId'] = customerId;
403
	});
403
    customerObj['customerAddressId'] = selectedAddressId;
404
 
404
    customerObj['gender'] = $("#gender").val();
405
	$("#order-items").find("tr:not(:first-child)").each(function(index, el) {
405
    customerObj['dateOfBirth'] = getDatesFromPicker("#dateOfBirth").startDate;
406
		// console.log(el);
406
 
407
		// console.log(index);
407
 
408
		var $serialNumberElement = $(el).find('.serialNumber');
408
    var paymentOptionSize = parseInt($('#payment-option-id-amount-container').attr("paymentOptionSize"));
409
		var itemId = parseInt($serialNumberElement.attr("itemId"));
409
    // console.log("paymentOptionSize = "+paymentOptionSize);
410
		var insuranceEle = $(el).find('.insuranceamount');
410
    for (var index = 0; index < paymentOptionSize; index++) {
411
		var insuranceAmount = 0;
411
        var paymentOptionAmount = 0.0;
412
		if (insuranceEle.length > 0) {
412
        if ($('#paymentOptionIdAmount' + index).val() != "") {
413
			insuranceAmount = parseFloat(insuranceEle.val());
413
            paymentOptionAmount = parseFloat($('#paymentOptionIdAmount' + index).val());
414
		}
414
        }
415
		var insuranceId = "";
415
        var paymentOptionId = $('#paymentOptionIdAmount' + index).attr("paymentOptionId");
416
		if (insuranceAmount > 0) {
416
        var paymentOptionIdAmountObject = {};
417
			insuranceId = $(el).find('.insuranceid').val();
417
        paymentOptionIdAmountObject['paymentOptionId'] = paymentOptionId;
418
		}
418
        paymentOptionIdAmountObject['amount'] = paymentOptionAmount;
419
		var ram = $(el).find('.ram').val();
419
        paymentOptionIdAmount.push(paymentOptionIdAmountObject);
420
		var memory = $(el).find('.memory').val();
420
    }
421
		debugger;
421
    var retObj = {};
422
		var mfgdate = $(el).find('.mfgdate').val();
422
    retObj['fofoOrderItems'] = (priceQtyArray);
423
		var serialNumberDetails = {
423
    retObj['customer'] = (customerObj);
424
			'serialNumber': $serialNumberElement.val(), 'insurance': insuranceId, 'amount': insuranceAmount,
424
    retObj['paymentOptions'] = (paymentOptionIdAmount);
425
			'ram': ram, 'memory': memory, 'mfgDate': mfgdate
425
    retObj['poId'] = $('#poid').val();
426
		};
-
 
427
		priceQtyArray[index]['serialNumberDetails'].push(serialNumberDetails);
-
 
428
 
-
 
429
	});
-
 
430
 
-
 
431
	customerObj['gstNumber'] = $("form#cd input[name=gstNumber]").val();
-
 
432
	if (customerId == undefined) {
-
 
433
		alert("Please choose customer");
-
 
434
		return false;
-
 
435
	}
-
 
436
	if ($("#customer-address").data("addressselected") == "true") {
-
 
437
		alert("Please select address");
-
 
438
		return false;
-
 
439
	}
-
 
440
	customerObj['customerId'] = customerId;
-
 
441
	customerObj['customerAddressId'] = selectedAddressId;
-
 
442
	customerObj['gender'] = $("#gender").val();
-
 
443
	customerObj['dateOfBirth'] = getDatesFromPicker("#dateOfBirth").startDate;
-
 
444
 
-
 
445
 
-
 
446
	var paymentOptionSize = parseInt($('#payment-option-id-amount-container').attr("paymentOptionSize"));
-
 
447
	// console.log("paymentOptionSize = "+paymentOptionSize);
-
 
448
	for (var index = 0; index < paymentOptionSize; index++) {
-
 
449
		var paymentOptionAmount = 0.0;
-
 
450
		if ($('#paymentOptionIdAmount' + index).val() != "") {
-
 
451
			paymentOptionAmount = parseFloat($('#paymentOptionIdAmount' + index).val());
-
 
452
		}
-
 
453
		var paymentOptionId = $('#paymentOptionIdAmount' + index).attr("paymentOptionId");
-
 
454
		var paymentOptionIdAmountObject = {};
-
 
455
		paymentOptionIdAmountObject['paymentOptionId'] = paymentOptionId;
-
 
456
		paymentOptionIdAmountObject['amount'] = paymentOptionAmount;
-
 
457
		paymentOptionIdAmount.push(paymentOptionIdAmountObject);
-
 
458
	}
-
 
459
	var retObj = {};
-
 
460
	retObj['fofoOrderItems'] = (priceQtyArray);
-
 
461
	retObj['customer'] = (customerObj);
-
 
462
	retObj['paymentOptions'] = (paymentOptionIdAmount);
-
 
463
	retObj['poId'] = $('#poid').val();
-
 
464
 
426
 
465
	retObj['poItemId'] = $('#poItemId').val();
427
    retObj['poItemId'] = $('#poItemId').val();
466
 
428
 
467
	console.log(retObj);
429
    console.log(retObj);
468
	return JSON.stringify(retObj);
430
    return JSON.stringify(retObj);
469
}
431
}
470
 
432
 
471
function resetInputs() {
433
function resetInputs() {
472
	$("div.customerinfo").html(customerInfo);
434
    $("div.customerinfo").html(customerInfo);
473
	$("div.billinginfo").html(billingInfo).hide();
435
    $("div.billinginfo").html(billingInfo).hide();
474
}
436
}
475
 
437
 
476
function writeOldCustomerDetailsByMobileNumber(mobileNumber) {
438
function writeOldCustomerDetailsByMobileNumber(mobileNumber) {
477
	doAjaxRequestHandler(context + "/customer/mobileNumber?mobileNumber=" + mobileNumber, "GET", function(response) {
439
    doAjaxRequestHandler(context + "/customer/mobileNumber?mobileNumber=" + mobileNumber, "GET", function (response) {
478
		if (response.response == '') {
440
        if (response.response == '') {
479
			return;
441
            return;
480
		}
442
        }
481
		var customer = response.response;
443
        var customer = response.response;
482
		if (customer == null) {
444
        if (customer == null) {
483
			$('input.phone').attr('value', mobileNumber).attr('readonly', true);
445
            $('input.phone').attr('value', mobileNumber).attr('readonly', true);
484
			$('button.mk_add_customer').show();
446
            $('button.mk_add_customer').show();
485
 
447
 
486
			return;
448
            return;
487
		}
449
        }
488
		$('input.firstName').attr('value', customer.firstName).attr('readonly', true);
450
        $('input.firstName').attr('value', customer.firstName).attr('readonly', true);
489
		$('input.lastName').attr('value', customer.lastName).attr('readonly', true);
451
        $('input.lastName').attr('value', customer.lastName).attr('readonly', true);
490
		$('input.phone').attr('value', customer.mobileNumber).attr('readonly', true);
452
        $('input.phone').attr('value', customer.mobileNumber).attr('readonly', true);
491
		if (customer.emailId != null && customer.emailId != '') {
453
        if (customer.emailId != null && customer.emailId != '') {
492
			$('#emailId').attr('value', customer.emailId).attr('readonly', true);
454
            $('#emailId').attr('value', customer.emailId).attr('readonly', true);
493
			console.log('helo');
455
            console.log('helo');
494
		} else {
456
        } else {
495
			$('button.mk_add_email').show();
457
            $('button.mk_add_email').show();
496
		}
458
        }
497
		$('#firstName').val(customer.firstName);
459
        $('#firstName').val(customer.firstName);
498
		$('#lastName').val(customer.lastName);
460
        $('#lastName').val(customer.lastName);
499
		$('#alternatePhone').val(customer.mobileNumber);
461
        $('#alternatePhone').val(customer.mobileNumber);
500
		customerId = customer.customerId;
462
        customerId = customer.customerId;
501
		$("div.billinginfo").show();
463
        $("div.billinginfo").show();
502
		trs = [];
464
        trs = [];
503
		if (customer.addresses != null) {
465
        if (customer.addresses != null) {
504
			for (address of customer.addresses) {
466
            for (address of customer.addresses) {
505
				if (pendingPO != null) {
467
                if (pendingPO != null) {
506
 
468
 
507
					if (pendingPO.customerAddressId == address.id) {
469
                    if (pendingPO.customerAddressId == address.id) {
508
						trs.push(getAddressTr(address));
470
                        trs.push(getAddressTr(address));
509
					}
471
                    }
510
				} else {
472
                } else {
511
					trs.push(getAddressTr(address));
473
                    trs.push(getAddressTr(address));
512
				}
474
                }
513
			}
475
            }
514
		}
476
        }
515
		$("#address-body").html(trs.join(""));
477
        $("#address-body").html(trs.join(""));
516
 
478
 
517
	});
479
    });
518
}
480
}
519
 
481
 
520
function getAddressTr(address) {
482
function getAddressTr(address) {
521
	var tr = [];
483
    var tr = [];
522
	tr.push(`<tr><td>${address.name} ${address.lastName}</td>`);
484
    tr.push(`<tr><td>${address.name} ${address.lastName}</td>`);
523
	tr.push(`<td>${address.line1}, ${address.line2}</td>`);
485
    tr.push(`<td>${address.line1}, ${address.line2}</td>`);
524
	tr.push(`<td>${address.city}</td>`);
486
    tr.push(`<td>${address.city}</td>`);
525
	tr.push(`<td>${address.state}</td>`);
487
    tr.push(`<td>${address.state}</td>`);
526
	tr.push(`<td>${address.pinCode}</td>`);
488
    tr.push(`<td>${address.pinCode}</td>`);
527
	tr.push(`<td>${address.phoneNumber}</td>`);
489
    tr.push(`<td>${address.phoneNumber}</td>`);
528
	tr.push(`<td><a class="select-address" href="javascript:void(0);" data-addressid="${address.id}">Select address</a></td></tr>`);
490
    tr.push(`<td><a class="select-address" href="javascript:void(0);" data-addressid="${address.id}">Select address</a></td></tr>`);
529
	return tr.join("");
491
    return tr.join("");
530
}
492
}
531
 
493
 
532
function validateEmail(email) {
494
function validateEmail(email) {
533
	const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
495
    const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
534
	return re.test(String(email).toLowerCase());
496
    return re.test(String(email).toLowerCase());
535
}
497
}