Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
23343 ashik.ali 1
$(function() {
2
 
3
	$(".schemes").live('click', function() {
4
		console.log("Active Schemes Button Clicked...")
5
		schemes("main-content");
6
	});
7
 
8
	$(".schemes-download-page").live('click', function() {
9
		console.log("Schemes Download Clicked...")
10
		loadSchemesDownloadPage("main-content");
11
	});
12
 
13
	$(".create-scheme").live('click', function() {
14
		loadScheme("main-content");
15
	});
16
 
17
 
18
	$('#brands li a').live('click', function(){
19
		$('#brand-value').text($(this).text());
20
		loadItemsDescriptionByBrand("items-description-container", $(this).text());
21
	    console.log($(this).text());
22
	});
23
 
24
	$("#schemes-paginated .next").live('click', function() {
25
		var start = $( "#schemes-paginated .start" ).text();
26
		var end = $( "#schemes-paginated .end" ).text();
27
		getSchemesNextItems(start, end);
28
		$("#schemes-paginated .next").blur();
29
    });
30
 
31
	$("#schemes-paginated .previous").live('click', function() {
32
		var start = $( "#schemes-paginated .start" ).text();
33
		var end =  $( "#schemes-paginated .end" ).text();
34
		var pre = end - 20;
35
		getSchemesPreviousItems(start, end, pre);
36
		$("#schemes-paginated .previous").blur();
37
    });
38
 
39
	$(".scheme-details").live('click',function(){
40
		var schemeId = $(this).attr('data');
41
		console.log("schemeId = "+schemeId);
42
		loadSchemeDetails(schemeId, "scheme-details-container");
43
	});
44
 
45
 
46
	$(".active-scheme").live('click',function(){
47
		var schemeId = $(this).attr('data');
48
		console.log("active-scheme id : "+schemeId);
49
		var start = $( "#schemes-paginated .start" ).text();
50
		//var end = $( "#schemes-paginated .end" ).text();
51
		var offset = start - 1;
52
		if(confirm("Are you sure you want to Active Scheme!") == true){
53
			activeScheme(schemeId, offset, "schemes-table");
54
		}
55
	});
56
 
57
	$(".expire-scheme").live('click',function(){
58
		var schemeId = $(this).attr('data');
59
		console.log("expire-scheme id : "+schemeId);
60
		var start = $( "#schemes-paginated .start" ).text();
61
		//var end = $( "#schemes-paginated .end" ).text();
62
		var offset = start - 1;
63
		if(confirm("Are you sure you want to Expire Scheme!") == true){
64
			expireScheme(schemeId, offset, "schemes-table");
65
		}
66
	});
67
 
68
 
69
});
70
 
22860 ashik.ali 71
$().ready(function() {
72
	$("form#create-scheme-form input").each(function(){
73
		$(this).attr('autocomplete', 'off');
74
	});
75
});
76
$().ready(function() {
77
        // validate the comment form when it is submitted
78
        $('#create-scheme-form').validate({
79
		rules:{
80
			schemeName:{
81
				required:true
82
			},
83
			schemeType:{
84
				required:true
85
			},
86
			amountType:{
87
				required:true
88
			},
89
			schemeAmount:{
90
				required:true
91
			},
92
			startDate:{
93
				required:true
94
			},
95
			endDate:{
96
				required:true
97
			},
23026 ashik.ali 98
			itemIdsDescription:{
22860 ashik.ali 99
				required:true
100
			},
101
			retailerIds:{
102
				required:true
103
			}
104
		},
105
		messages:{
106
			name:{
107
				required:"Please enter the name"
108
			},
109
			schemeType:{
110
				required:"Please choose type"
111
			},
112
			amountType:{
113
				required: "Please choose amount type"
114
			},
115
			schemeAmount:{
116
				required: "Please enter the amount"
117
			},
118
			startDate:{
119
				require: "Please choose start date"
120
			},
121
			endDate:{
122
				require: "Please choose end date"
123
			},
23026 ashik.ali 124
			itemIdsDescription:{
125
				required: "Please choose items"
22860 ashik.ali 126
			},
127
			retailerIds:{
128
				required: "Please enter retailer ids"
129
			}
130
		},
131
		submitHandler: function (form, event) {
132
			event.preventDefault();
133
			if(validateSchemeDetails()){
134
				alert("Please fix errors");
135
				return false;
136
			}
137
			var json = schemeDetailsJson();
138
			console.log("schemeJson = " + json);
139
			if(confirm("Are you sure you want to create Scheme!") == true){
140
	             $.ajax({
141
	                 type: "POST",
142
	                 url: "createScheme",
143
	                 data: json,
144
	                 contentType:'application/json',
145
					async: false,
146
					success: function (data) {
147
						$('#main-content').html(data);
148
					},
149
					cache: false,
150
					processData: false
151
	             });
152
	             return false; // required to block normal submit since you used ajax
153
			}
154
         }
155
	});
156
 
157
});
158
 
23343 ashik.ali 159
function validateSchemeDetails(){
160
	console.log("validating Scheme Details...");
161
	var error = false;
162
	var name = $("form#create-scheme-form input[name=schemeName]").val();
163
	console.log("schemeName = " + name);
164
	$("#schemeName").removeClass("border-highlight");
165
	if(name ==""){
166
		alert("Name is required");
167
		$("#schemeName").addClass("border-highlight");
168
		error = true;
169
		return error;
170
	}
171
	var schemeType = $("#schemeType option:selected").val();
172
	console.log("schemeType = " + schemeType);
173
	$("#schemeType").removeClass("border-highlight");
174
	if(schemeType == ""){
175
		alert("Please choose Scheme Type");
176
		$("#schemeType").addClass("border-highlight");
177
		error = true;
178
		return error;
179
	}
180
	var amountType = $("#amountType option:selected").val();
181
	console.log("amountType = " + amountType);
182
	$("#amountType").removeClass("border-highlight");
183
	if(amountType == ""){
184
		alert("Please choose Amount Type");
185
		$("#amountType").addClass("border-highlight");
186
		error = true;
187
		return error;
188
	}
189
	var amount = $("form#create-scheme-form input[name=schemeAmount]").val();
190
	console.log("amount = " + amount);
191
	$("#schemeAmount").removeClass("border-highlight");
192
	if (amount == ""){
193
		$("form#create-scheme-form input[name=schemeAmount]").val(0);
194
	}else if(amount <= 0){
195
		alert("Amount should be greater than 0");
196
		$("#schemeAmount").addClass("border-highlight");
197
		error = true;
198
		return error;
199
	}
200
 
201
 
202
	var startDateTimeString = $("form#create-scheme-form input[name=startDateTime]").val();
203
	var endDateTimeString = $("form#create-scheme-form input[name=endDateTime]").val();
204
	$("#startDateTime").removeClass("border-highlight");
205
	$("#endDateTime").removeClass("border-highlight");
206
 
207
 
208
	if(Date.parse(endDateTimeString) < Date.parse(startDateTimeString)){
209
		alert("End date Time [" + endDateTimeString + "] can not be greater than equal to Start date Time [" + startDateTimeString + "]");
210
		$("#startDateTime").addClass("border-highlight");
211
		$("#endDateTime").addClass("border-highlight");
212
		error = true;
213
		return error;
214
	}
215
 
216
	//$('#brand-value').text($(this).text());
217
	$("#brand-value").removeClass("border-highlight");
218
	if($("#brand-value").text() == "Brands"){
219
		alert("Please choose Brand");
220
		$("#brand-value").addClass("border-highlight");
221
		error = true;
222
		return error;
223
	}
224
 
225
	$("#itemsDescription").removeClass("border-hightlight");
226
	var itemIdsString = $("#itemsDescription").val();
227
	if(itemIdsString == null){
228
		alert("Please choose items");
229
		$("#itemsDescription").addClass("border-highlight");
230
		error = true;
231
		return error;
232
	}
233
 
234
	var retailerIdsString = $("#retailerIds").val();
235
	if(retailerIdsString != undefined){
236
		var retailerIdsPattern = "^[0-9]{1,10}(?:,[0-9]{1,10})*$";
237
		if(retailerIdsString.match(retailerIdsPattern) == null){
238
			alert("Invalid retailerIds["+retailerIdsString+"] pattern");
239
			$("#retailerIds").addClass("border-highlight");
240
			error = true;
241
			return error;
242
		}
243
	}
244
 
245
	console.log("validation scheme error = " + error);
246
	return error;
247
}
248
 
249
function schemeDetailsJson(){
250
	console.log("schemeDetailsJson")
251
	var schemeObject = {};
252
	schemeObject['name'] = $("form#create-scheme-form input[name=schemeName]").val();
253
	schemeObject['description'] = $("form#create-scheme-form input[name=description]").val();
254
	schemeObject['type'] = $("#schemeType option:selected").val();
255
	schemeObject['amountType'] = $("#amountType option:selected").val();
256
	schemeObject['amount'] = $('#schemeAmount').val();
257
	//var startEndDateTime = $("form#create-scheme-form input[name=startEndDateTime]").val().split("-");
258
	var startDateTimeString = $("form#create-scheme-form input[name=startDateTime]").val();
259
	console.log("startDateTimeString : "+startDateTimeString);
260
	var endDateTimeString = $("form#create-scheme-form input[name=endDateTime]").val();
261
	console.log("endDateTimeString : "+endDateTimeString);
262
 
263
	schemeObject['startDateTimeString'] = startDateTimeString;
264
	schemeObject['endDateTimeString'] = endDateTimeString;
265
	schemeObject['itemIds'] = [];
266
	var itemIds = $("#itemsDescription").val();
267
	//var itemIds = itemIdsString.substring(1, itemIdsString.length - 1).split(",");
268
	for(var i = 0; i < itemIds.length; i++){
269
		schemeObject['itemIds'].push(parseInt(itemIds[i]));
270
	}
271
	schemeObject['retailerAll'] = $("form#create-scheme-form input[name=retailerAll]").val();
272
	if($("#retailerAll").val() == 'true'){
273
		schemeObject['retailerIds'] = [];
274
	}else{
275
		schemeObject['retailerIds'] = []
276
		var retailerIds = $("#retailerIds").val().split(",");
277
		for(var retailerId of retailerIds){
278
			schemeObject['retailerIds'].push(parseInt(retailerId));
279
		}
280
	}
281
	return JSON.stringify(schemeObject);
282
}
283
 
22860 ashik.ali 284
$('#retailerAll').on('change', function() { 
285
    if (this.checked) {
286
    	$('#retailerAll').val('true');
287
    	$('#retailer-ids').html('');
288
    }else{
289
    	$('#retailerAll').val('false');
290
    	$('#retailer-ids').html('<input placeholder="Retailer Ids" id="retailerIds" name="retailerIds" type="text" value="" pattern="^[0-9]{1,10}(?:,[0-9]{1,10})*$" title="Comma Seperated Positive Integer Retailer Ids" class="form-control input-sm">');
291
    }
23343 ashik.ali 292
});
293
 
294
 
295
function schemesDownload(){
296
 
297
	console.log("downloadItemLedgerReport Button clicked")
298
 
299
	var startEndDateTime = $('input[name="startEndDateTime"]').val().split("-");
300
	var startDateTime = $.trim(startEndDateTime[0]);
301
	console.log("startDateTime : "+startDateTime);
302
	var endDateTime = $.trim(startEndDateTime[1]);
303
	console.log("endDateTime : "+endDateTime);
304
	doAjaxGetDownload(context+"/schemes/download?startDateTime="+startDateTime+"&endDateTime="+endDateTime,
305
			 "SchemesReport.xlsx");
306
}
307
 
308
function getSchemesNextItems(start, end){
309
	console.log(start);
310
	console.log(end);
311
	console.log(+end + +10);
312
	console.log(+start + +10);
313
	doAjaxRequestHandler(context+"/getPaginatedSchemes?offset="+end, "GET", function(response){
314
		$( "#schemes-paginated .end" ).text(+end + +10);
315
		$( "#schemes-paginated .start" ).text(+start + +10);
316
		var last = $( "#schemes-paginated .end" ).text();
317
		var temp = $( "#schemes-paginated .size" ).text();
318
		if (parseInt(last) >= parseInt(temp)){
319
			$("#schemes-paginated .next").prop('disabled', true);
320
			//$( "#good-inventory-paginated .end" ).text(temp);
321
		}
322
	    $('#schemes-table').html(response);
323
	    $('#scheme-details-container').html('');
324
	    $("#schemes-paginated .previous").prop('disabled', false);
325
	});
326
 
327
 
328
}
329
 
330
 
331
function getSchemesPreviousItems(start, end, pre){
332
 
333
	doAjaxRequestHandler(context+"/getPaginatedSchemes/?offset="+pre, "GET", function(response){
334
		$( "#schemes-paginated .end" ).text(+end - +10);
335
		$( "#schemes-paginated .start" ).text(+start - +10);
336
		$('#schemes-table').html(response);
337
		$('#scheme-details-container').html('');
338
		$("#schemes-paginated .next").prop('disabled', false);
339
		if (parseInt(pre)==0)
340
		{
341
			$("#schemes-paginated .previous").prop('disabled', true);
342
		}
343
	});
344
 
345
}
346
 
347
function loadSchemeDetails(schemeId, domId){
348
	doAjaxRequestHandler(context+"/getSchemeById?schemeId="+schemeId, "GET", function(response){
349
		$('#' + domId).html(response);
350
		window.dispatchEvent(new Event('resize'));
351
	});
352
}
353
 
354
function activeScheme(schemeId, offset, domId){
355
	doAjaxRequestHandler(context+"/activeSchemeById?schemeId="+schemeId
356
	        +"&offset="+offset, "PUT", function(response){
357
		$('#' + domId).html(response);
358
		$('#scheme-details-container').html('');
359
	});
360
}
361
 
362
function expireScheme(schemeId, offset, domId){
363
	doAjaxRequestHandler(context+"/expireSchemeById?schemeId="+schemeId
364
	        +"&offset="+offset, "PUT", function(response){
365
		$('#' + domId).html(response);
366
		$('#scheme-details-container').html('');
367
	});
368
 
369
}
370
 
371
function loadScheme(domId){
372
	doAjaxRequestHandler(context+"/createScheme", "GET", function(response){
373
		$('#' + domId).html(response);
374
	});
375
}
376
 
377
function loadItemsDescriptionByBrand(domId, brand){
378
	doAjaxRequestHandler(context+"/getItemsByBrand?brand="+brand, "GET", function(response){
379
		$('#' + domId).html(response);
380
		configureItemsDescriptionDropDown();
381
	});
382
 
383
}
384
 
385
function configureItemsDescriptionDropDown(){
386
	$(document).ready(function() {
387
        $('#itemsDescription').multiselect({
388
        	includeSelectAllOption: true,
389
        	maxHeight: 200,
390
        	buttonWidth: '180px',
391
        	numberDisplayed: 1,
392
        	nonSelectedText: 'Items',
393
        	nSelectedText: ' - Items Selected',
394
        	allSelectedText: 'All Items Selected',
395
        	enableFiltering: true
396
        });
397
    });
398
}
399
 
400
function schemes(domId){
401
	doAjaxRequestHandler(context+"/getSchemes", "GET", function(response){
402
		$('#' + domId).html(response);
403
	});
404
}
405
 
406
function loadSchemesDownloadPage(domId){
407
	doAjaxRequestHandler(context+"/schemes/downloadPage", "GET", function(response){
408
		$('#' + domId).html(response);
409
	});
410
}