Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
32145 tejbeer 1
$(function() {
2
	$(document).on('click', ".warehouse-create-purchase-order", function() {
3
		loadCreatePurchase("main-content");
4
	});
5
 
32192 tejbeer 6
	$(document).on('click', ".warehouse-receive-new-invoice", function() {
7
		loadNewReceiveInvoice("main-content");
8
	});
32145 tejbeer 9
 
32192 tejbeer 10
 
32256 tejbeer 11
	$(document).on('click', ".warehouse-grn-request", function() {
12
		loadGrnRequest("main-content");
13
	});
32192 tejbeer 14
 
32300 tejbeer 15
 
32256 tejbeer 16
	$(document).on('click', ".warehouse-debit-note", function() {
17
		loadDebitNote("main-content");
18
	});
32192 tejbeer 19
 
20
 
32256 tejbeer 21
 
32300 tejbeer 22
	$(document).on('click', ".warehouse-invoices", function() {
23
		loadWarehouseInvoices("main-content");
24
	});
25
 
26
 
27
	$(document).on('click', '.dateWiseInvoices', function() {
28
 
29
		var startDate = getDatesFromPicker('input[name="invoice-duration"]').startDate;
30
		var endDate = getDatesFromPicker('input[name="invoice-duration"]').endDate
31
 
32
		var vendorId = $('#vendorId').val();
33
 
34
		doGetAjaxRequestHandler(context + "/getWarehouseInvoicesByVendor?vendorId=" + vendorId + "&startDate=" + startDate + "&endDate=" + endDate, function(response) {
35
			$('.invoicesviewcontainer').html(response);
36
 
37
		});
38
 
39
 
40
	});
41
 
42
 
32192 tejbeer 43
	$(document)
44
		.on(
45
			'input',
46
			'#invoice',
47
			function() {
48
				if (confirm('Document has been selected, Do you want to upload ?')) {
49
					var fileSelector = $('#invoice')[0];
50
					if (fileSelector != undefined
51
						&& fileSelector.files[0] != undefined) {
52
						var url = context + '/document-upload';
53
 
54
						console.log(url);
55
						var file = this.files[0];
56
						doAjaxUploadRequestHandler(
57
							url,
58
							'POST',
59
							file,
60
							function(response) {
61
								console.log(response);
62
								var documentId = response.response.document_id;
63
								console.log("documentId : "
64
									+ documentId);
32296 tejbeer 65
								localStorage.setItem("invoiceDocument",
66
									documentId);
32295 tejbeer 67
 
32300 tejbeer 68
 
32192 tejbeer 69
							});
70
 
71
					}
72
				} else {
73
					// Do nothing!
74
				}
75
			});
76
 
77
	$(document).on('click', ".createReceiveInvoice", function() {
78
 
79
		var invoiceDate = $('#actualDate').val();
80
 
81
		var warehouseId = $('#warehouseMap').val();
82
 
83
		var numItems = $('#numberofItems').val();
84
 
85
		var receivedBy = $('#authUser').val();
86
 
87
		var supplierId = $('#vendorId').val();
88
 
89
		var totalValue = $('#totalValue').val();
90
 
91
		var invoiceNumber = $('#invoiceNumber').val();
92
 
93
 
32296 tejbeer 94
		var invoiceDoc = localStorage
95
			.getItem("invoiceDocument");
32192 tejbeer 96
 
97
 
98
		console.log(invoiceDoc)
99
 
100
 
101
		if (invoiceDate === "" && warehouseId === "" && numItems === "" && receivedBy === "" && supplierId === "" && totalValue === "" && invoiceNumber === "" && invoiceDoc === "") {
102
			alert("Field can't be empty");
103
			return false;
104
		}
105
 
106
 
107
		if (invoiceDate === "") {
108
			alert("please select date");
109
			return false;
110
		}
111
		if (warehouseId === "") {
112
			alert("please choose warehouse");
113
			return false;
114
		}
115
 
116
		if (numItems === "") {
117
			alert("please fill number of items.");
118
			return false;
119
		}
120
		if (receivedBy === "") {
121
			alert("please choose received by  user");
122
			return false;
123
		}
124
 
125
		if (supplierId === "") {
126
			alert("please choose supplier");
127
			return false;
128
		}
129
 
130
 
131
 
132
		if (totalValue === "") {
133
			alert("please fill Total Value.");
134
			return false;
135
		}
136
 
137
		if (invoiceNumber === "") {
138
			alert("please fill Invoice Number.");
139
			return false;
140
		}
141
 
142
 
143
		if (invoiceDoc === "") {
144
			alert("please upload invoice.");
145
			return false;
146
		}
147
		var newReceiveInvoice = {};
148
 
149
		newReceiveInvoice['invoiceDate'] = invoiceDate;
150
		newReceiveInvoice['warehouseId'] = warehouseId
151
		newReceiveInvoice['numItems'] = numItems
152
		newReceiveInvoice['receivedBy'] = receivedBy
153
		newReceiveInvoice['supplierId'] = supplierId
154
		newReceiveInvoice['totalValue'] = totalValue
155
		newReceiveInvoice['invoiceNumber'] = invoiceNumber
156
		newReceiveInvoice['invoiceDoc'] = invoiceDoc
157
 
32295 tejbeer 158
		console.log()
159
 
32192 tejbeer 160
		if (confirm("Are you sure you want to add new Invoice") == true) {
161
 
162
			doPostAjaxRequestWithJsonHandler(context
163
				+ "/newReceiveInvoice", JSON
164
					.stringify(newReceiveInvoice), function(response) {
165
						if (response == 'true') {
166
							alert("successfully added");
32296 tejbeer 167
							localStorage.removeItem("invoiceDocument");
32192 tejbeer 168
							loadNewReceiveInvoice("main-content");
169
						}
170
					});
171
		}
172
 
173
 
174
 
175
 
176
 
177
	});
178
 
179
 
180
 
32145 tejbeer 181
	$(document).on('click', ".purchaseorderitemview", function() {
182
 
183
		var vendorId = $('#vendorId').val();
184
		var warehouseId = $('#warehouseMap').val();
185
 
186
		console.log(warehouseId)
187
 
188
		if (warehouseId == null && vendorId === "") {
189
			alert("Field can't be empty");
190
			return;
191
		}
192
 
193
 
194
		if (warehouseId == null) {
195
			alert("please select warehouse");
196
			return;
197
		}
198
		if (vendorId === "") {
199
			alert("please select vendor");
200
			return;
201
		}
202
		doGetAjaxRequestHandler(context + "/addPurchaseItemView?warehouseId=" + warehouseId + "&vendorId=" + vendorId, function(response) {
203
			$(".createpurchaseordercontainer").html(response);
204
		});
205
	});
206
 
207
 
208
	$(document).on('click', ".addRowInPurchaseOrder", function() {
32192 tejbeer 209
 
210
 
211
		var purchaseItemIds = [];
212
		var totalQty = 0
213
 
214
		$("table > tbody > tr").each(function() {
215
			var itemId = $(this).find(".transferPrice").data('itemid');
216
			var qty = $(this).find(".qty").val();
217
 
218
			console.log(qty)
219
 
220
			if (qty != undefined) {
221
				totalQty += parseInt(qty)
222
			}
223
 
224
			console.log(totalQty)
225
 
226
 
227
			if (itemId != undefined) {
228
				purchaseItemIds.push(itemId)
229
			}
230
		});
231
 
32145 tejbeer 232
		var $html = $('<tr>  <td>  <input type="text" class="form-control typeaheaditem"   autocomplete="off"  placeholder="Search Model"/> </td> <td>  <input type="number" class="form-control qty"  name = "qty" placeholder="Quantity"/> </td><td>  <input type="number" class="form-control transferPrice"  disable placeholder="Transfer Price"/> </td>	<td>  <input type="number" class="form-control totalValue"  disable placeholder="Total Value"/> </td> <td> <input class="form-control btn btn-primary removeInPurchaseOrder" type="button" value="Remove"></td>  </tr> ');
233
 
32195 tejbeer 234
		var vendorId = $('#vendorId').val();
32145 tejbeer 235
 
32192 tejbeer 236
 
32195 tejbeer 237
		getVendorItemAheadOptions($html.find('.typeaheaditem'), vendorId, function(
32145 tejbeer 238
			selectedItem) {
239
			var itemId = selectedItem.itemId;
240
 
32192 tejbeer 241
			if (purchaseItemIds.indexOf(itemId) > -1) {
32145 tejbeer 242
				alert("item already selected");
243
				$html.find('.typeaheaditem').val("")
244
 
245
				return false;
246
			}
247
 
32192 tejbeer 248
			purchaseItemIds.push(itemId)
32145 tejbeer 249
 
250
 
251
 
252
			doGetAjaxRequestHandler(context + "/getPricing?vendorId=" + vendorId + "&itemId=" + itemId, function(response) {
253
				console.log(response)
254
				if (response != "null") {
255
					var jsonObj = JSON.parse(response);
256
 
257
					console.log(jsonObj)
258
					$html.find('.transferPrice').val(jsonObj.transferPrice)
259
 
260
					$html.find('.transferPrice').data('itemid', itemId)
261
				} else {
262
 
263
					console.log(response)
264
					$html.find('.typeaheaditem').val("")
265
 
266
				}
267
			});
268
 
269
		});
270
		$('tbody').append($html);
271
 
272
	});
273
 
274
	$(document).on('click', '.createSendPurchaseOrder', function() {
275
 
276
		createPurchase(true);
277
 
278
	});
279
 
280
 
281
	$(document).on('click', '.createPurchaseOrder', function() {
282
 
283
 
284
		createPurchase(false);
285
	});
286
 
287
 
288
	$(document).on('change', '.qty', function() {
289
 
290
 
291
		var row = $(this).closest("tr");
292
		var qty = $(row).find(".qty").val();
293
		var transferPrice = $(row).find(".transferPrice").val();
294
 
295
		var totalVal = transferPrice * qty;
296
 
297
		var totalValue = $(row).find(".totalValue").val(totalVal);
298
 
299
		var purchaseOrderValue = 0;
300
 
301
		$("table > tbody > tr").each(function() {
302
 
303
			var totalValue = $(this).find(".totalValue").val();
304
			purchaseOrderValue += totalValue
305
 
306
		});
307
 
308
	});
309
 
310
 
311
 
312
 
313
	$(document).on('click', '.warehouse-open-purchase-order', function() {
314
		loadOpenPurchase("main-content");
315
	});
316
 
317
 
318
 
319
	$(document).on('click', '.editViewPurchaseOrder', function() {
320
		var purchaseOrderId = $(this).data('poid');
321
		doGetAjaxRequestHandler(context + "/getEditPOByPurchaseId?purchaseId=" + purchaseOrderId, function(response) {
322
			$('#warehouseEditPurchaseContainer .modal-content').html(response);
323
		});
324
 
325
	});
326
 
327
	$(document).on('click', '.editPurchaseOrder', function() {
328
		var purchaseOrderId = $(this).data('poid');
329
 
32256 tejbeer 330
		editPurchase(false, purchaseOrderId);
32145 tejbeer 331
 
332
	});
333
 
334
 
335
	$(document).on('click', '.editSendPurchaseOrder', function() {
336
		var purchaseOrderId = $(this).data('poid');
337
 
338
 
32256 tejbeer 339
		editPurchase(true, purchaseOrderId);
32145 tejbeer 340
	});
341
 
342
	$(document).on('click', '.closePurchaseOrder', function() {
343
		var purchaseOrderId = $(this).data('poid');
344
		if (confirm("Are you sure you want to close the PO") == true) {
345
			doPostAjaxRequestHandler(context + "/closePuchaseOrder?purchaseId=" + purchaseOrderId,
346
				function(response) {
347
 
348
					console.log(response);
349
					if (response == 'true') {
350
						alert("successfully closed");
351
						loadOpenPurchase("main-content")
352
					}
353
				});
354
		}
355
	});
356
 
357
 
358
	$(document).on('click', '.warehouse-view-purchase-order', function() {
359
		doGetAjaxRequestHandler(context + "/viewPurchaseOrder", function(response) {
360
			$('#' + 'main-content').html(response);
361
		});
362
	});
363
 
364
 
365
 
32192 tejbeer 366
 
367
 
32145 tejbeer 368
	$(document).on('click', '.dateWisePo', function() {
369
 
370
		var startDate = getDatesFromPicker('input[name="duration"]').startDate;
371
		var endDate = getDatesFromPicker('input[name="duration"]').endDate
372
 
373
 
374
		doGetAjaxRequestHandler(context + "/getPurchaseOrders?startDate=" + startDate + "&endDate=" + endDate, function(response) {
375
			$('.purchaseorderviewcontainer').html(response);
376
 
377
		});
378
 
379
 
380
	});
381
 
382
 
383
 
384
	$(document).on('click', '.viewPurchaseOrderlineItem', function() {
385
		var purchaseOrderId = $(this).data('poid');
386
 
387
		doGetAjaxRequestHandler(context + "/getWarehouseLineItemByPurchaseId?purchaseId=" + purchaseOrderId, function(response) {
388
			$('#warehouseLineItem .modal-content').html(response);
389
 
390
		});
391
	});
392
 
393
 
394
 
32192 tejbeer 395
 
396
	$(document).on("click", '.removeInPurchaseOrder', function() {
397
 
398
		var row = $(this).closest("tr");
399
		row.remove();
400
	});
401
 
32256 tejbeer 402
 
32192 tejbeer 403
	$(document).on('click', ".addRowForInvoiceItem", function() {
404
 
405
		var numitems = $(this).data("numitems");
406
		var invoiceId = $(this).data("invoiceid");
407
		var invoiceItemIds = [];
408
		var totalQty = 0
409
 
410
		$("#invoice-order-table > tbody > tr").each(function() {
411
			var itemId = $(this).find(".rate").data('itemid');
412
			var qty = $(this).find(".qty").val();
413
 
414
			if (qty != undefined) {
415
				totalQty += qty
416
			}
417
 
418
			if (itemId != undefined) {
419
				invoiceItemIds.push(itemId)
420
			}
421
		});
422
 
423
		var $html = $('<tr>  <td>  <input type="text" class="form-control typeaheaditem"   autocomplete="off"  placeholder="Search Model"/> </td>' +
424
			'<td>  <input type="number" class="form-control qty"  name = "qty" placeholder="Quantity"/> </td>' +
425
			'<td>  <input type="number" class="form-control rate"  disable placeholder="Rate"/> </td>' +
426
			'<td> <input class="form-control btn btn-primary removeInInvoiceItem" type="button" value="Remove"></td>  </tr> ');
427
 
428
 
429
		getItemAheadOptions($html.find('.typeaheaditem'), true, function(
430
			selectedItem) {
431
			var itemId = selectedItem.itemId;
432
 
433
 
434
			console.log(invoiceItemIds)
435
 
436
			if (invoiceItemIds.indexOf(itemId) > -1) {
437
				alert("item already selected");
438
				$html.find('.typeaheaditem').val("")
439
 
440
				return false;
441
			}
442
			$html.find('.rate').data('itemid', itemId)
443
 
444
			$html.find('.removeInInvoiceItem').data('invoiceid', invoiceId)
445
			$html.find('.removeInInvoiceItem').data('itemid', itemId)
446
 
447
		});
448
 
449
 
450
		if (totalQty < numitems) {
451
 
452
			$('#invoice-order-table tbody').append($html);
453
		}
454
 
455
	});
456
 
457
 
458
 
459
 
460
 
461
	$(document).on('click', '.saveInvoiceDetail', function() {
462
 
463
		var numItems = $(this).data("numitems");
464
		var invoiceId = $(this).data("invoiceid");
465
		var warehouseId = $(this).data("warehouseid");
466
		var supplierId = $(this).data("supplierid");
467
		getInvoiceItemData(numItems, invoiceId, warehouseId, supplierId, false);
468
 
469
	});
470
 
471
 
472
 
473
	$(document).on('click', '.validateInvoiceDetail', function() {
474
		var numItems = $(this).data("numitems");
475
		var invoiceId = $(this).data("invoiceid");
476
		var warehouseId = $(this).data("warehouseid");
477
		var supplierId = $(this).data("supplierid");
478
 
479
		getInvoiceItemData(numItems, invoiceId, warehouseId, supplierId, true);
480
 
481
	});
482
 
483
 
484
	$(document).on("click", '.removeInInvoiceItem', function() {
485
 
486
		var row = $(this).closest("tr");
487
		var invoiceId = $(this).data("invoiceid");
488
		var itemId = $(this).data("itemid");
489
		if (invoiceId != undefined && itemId != undefined) {
490
			doDeleteAjaxRequestHandler(context + "/removeInvoiceItem?invoiceId="
491
				+ invoiceId + "&itemId=" + itemId, function(response) {
492
					if (response == "true") {
493
						alert("Item removed successfully");
494
 
495
					}
496
				});
497
		}
498
 
499
		row.remove();
500
 
501
	});
502
 
503
 
504
	$(document).on('click', '.purchaseGrn', function() {
505
 
506
		var grnItemArray = [];
507
 
508
		var invoiceId = $(this).data("invoiceid");
509
 
510
 
511
		$("#invoice-purchase-validate > tbody > tr").each(function() {
512
			var grnItemJson = {};
513
 
514
			var itemId = $(this).find(".itemId").text();
515
			var qty = $(this).find(".qty").text();
516
			var poId = $(this).find(".purchaseId").text();
32256 tejbeer 517
			var excessQty = $(this).find(".excessQty").text();
32192 tejbeer 518
			var itemType = $(this).find(".itemType").text();
519
 
520
			console.log(itemType);
521
 
522
			if (itemType == "Serialized") {
32256 tejbeer 523
				var serialNumbers = $(this).find(".imeis-to-grn").tagsinput('items');
32192 tejbeer 524
				grnItemJson['serialNumbers'] = serialNumbers
525
 
32256 tejbeer 526
				if (excessQty > 0) {
527
					var returnSerialNumbers = $(this).find(".imeis-to-grn-return").tagsinput('items');
528
					grnItemJson['returnSerialNumbers'] = returnSerialNumbers
529
				}
32192 tejbeer 530
			}
531
			console.log(serialNumbers)
532
			grnItemJson['itemId'] = itemId;
533
			grnItemJson['serialNumbers'] = serialNumbers
534
			grnItemJson['qty'] = qty
535
			grnItemJson['poId'] = poId
536
			grnItemJson['invoiceId'] = invoiceId
32256 tejbeer 537
			grnItemJson['itemType'] = itemType
538
			grnItemJson['excessQty'] = excessQty
539
 
540
			grnItemJson['returnSerialNumbers'] = returnSerialNumbers
541
 
32192 tejbeer 542
			grnItemArray.push(grnItemJson)
543
 
544
			console.log(grnItemArray)
545
 
546
		});
547
 
548
		for (var i = 0; i < grnItemArray.length; i++) {
549
 
550
			var serialNumbers = grnItemArray[i].serialNumbers.length
551
 
32256 tejbeer 552
			var itemType = grnItemArray[i].itemType
32192 tejbeer 553
 
32256 tejbeer 554
 
555
			if (itemType == "Serialized") {
556
				var excessQty = grnItemArray[i].excessQty
557
 
558
 
559
 
32192 tejbeer 560
				var serialNumbers = grnItemArray[i].serialNumbers.length
561
				var qty = grnItemArray[i].qty
562
 
563
				if (serialNumbers != qty) {
564
					alert("serial number is not matched with qty")
565
					return false;
566
				}
32256 tejbeer 567
 
568
				if (excessQty > 0) {
569
 
570
					var returnSerialNumbers = grnItemArray[i].returnSerialNumbers.length
571
 
572
					if (returnSerialNumbers != excessQty) {
573
						alert("Return serial number is not matched with excess qty")
574
						return false;
575
					}
576
 
577
				}
32192 tejbeer 578
			}
579
 
580
		}
581
 
582
 
583
		console.log(JSON.stringify(grnItemArray))
584
		if (confirm("Are you sure you want to grn purchase order") == true) {
585
 
586
			doPostAjaxRequestWithJsonHandler(context
587
				+ "/createGrn", JSON
588
					.stringify(grnItemArray), function(response) {
589
						if (response == 'true') {
32258 tejbeer 590
							alert("successfully done");
591
							loadNewReceiveInvoice("main-content");
32256 tejbeer 592
						}
593
					});
594
		}
595
 
596
 
597
 
598
	});
599
 
600
 
601
 
602
	$(document).on('click', '.grnRequest', function() {
603
 
604
		var grnRequestJson = {};
605
		var grnRequestItemArray = [];
606
 
607
		var invoiceId = $(this).data("invoiceid");
608
 
609
 
610
		$("#invoice-purchase-validate > tbody > tr").each(function() {
611
			var grnItemJson = {};
612
 
613
			var itemId = $.trim($(this).find(".itemId").text());
614
			var poId = $.trim($(this).find(".purchaseId").text());
615
 
616
			var qty = parseInt($(this).find(".qty").text());
617
 
618
			var excessQty = parseInt($(this).find(".excessQty").text());
619
 
620
			var priceMismatch = $.trim($(this).find(".priceMismatch").text());
621
			console.log(priceMismatch)
622
 
623
 
624
			if (priceMismatch != null || excessQty > 0) {
625
				console.log(typeof priceMismatch)
626
				console.log(excessQty)
627
				grnItemJson['itemId'] = itemId;
628
				grnItemJson['qty'] = qty;
629
				grnItemJson['excessQty'] = excessQty
32264 tejbeer 630
				grnItemJson['mismatch'] = priceMismatch
32256 tejbeer 631
				grnItemJson['poId'] = poId
632
 
633
				grnRequestItemArray.push(grnItemJson)
634
			}
635
		});
636
 
637
		console.log(grnRequestItemArray)
638
 
639
 
640
 
641
		grnRequestJson['invoiceId'] = invoiceId;
642
		grnRequestJson['warehousePurchaseModel'] = grnRequestItemArray
643
 
644
		if (confirm("Are you sure you want to raise grn request") == true) {
645
 
646
			doPostAjaxRequestWithJsonHandler(context
647
				+ "/grnRequest", JSON
648
					.stringify(grnRequestJson), function(response) {
649
						if (response == 'true') {
32192 tejbeer 650
							alert("successfully done");
32256 tejbeer 651
							loadNewReceiveInvoice("main-content");
32192 tejbeer 652
						}
653
					});
654
		}
655
 
656
 
657
 
658
	});
659
 
660
 
32256 tejbeer 661
	$(document).on('click', '.resolvedPriceMismatchRequest', function() {
662
		var id = $(this).data("id");
663
 
664
		var invoiceId = $(this).data("invoiceid");
665
 
666
		var requestId = $(this).data("requestid");
667
 
32261 tejbeer 668
		var mismatch = $(this).data("mismatch");
32256 tejbeer 669
 
32261 tejbeer 670
		if (mismatch == "InvoiceMismatch") {
32256 tejbeer 671
			if (confirm("Are you sure you want to resolve invoice mismatch") == true) {
672
 
673
				doGetAjaxRequestHandler(context + "/resolvedMismatchRequest?id=" + id, function(response) {
674
					if (response == 'true') {
675
						getGrnRequestItems(requestId, invoiceId)
676
					}
677
				});
678
 
679
			}
32261 tejbeer 680
		} else if (mismatch == "PoMismatch") {
32256 tejbeer 681
			if (confirm("Are you sure you want to resolve Po Mismatch. Discard the current PoLineItem new Po will generate on the invoice date.") == true) {
682
 
683
				doGetAjaxRequestHandler(context + "/resolvedMismatchRequest?id=" + id, function(response) {
684
					if (response == 'true') {
685
						getGrnRequestItems(requestId, invoiceId)
686
					}
687
				});
688
 
689
			}
690
		}
691
 
692
	});
693
 
694
 
695
 
696
	$(document).on('click', '.resolvedQtyMismatchRequest', function() {
697
		var id = $(this).data("id");
698
 
699
		var invoiceId = $(this).data("invoiceid");
700
 
701
		var requestId = $(this).data("requestid");
702
		var requestId = $(this).data("requestid");
703
 
704
 
32261 tejbeer 705
		var mismatch = $(this).data("mismatch");
32256 tejbeer 706
 
707
		var $row = $(this).closest("tr");
708
		var requiredQty = $row.find(".requiredQty").val();
709
 
710
		console.log(requiredQty);
711
 
32261 tejbeer 712
		if (mismatch == "QtyMismatch") {
32256 tejbeer 713
			if (confirm("Are you sure you want to resolve qty mismatch") == true) {
714
 
715
				doGetAjaxRequestHandler(context + "/resolvedMismatchRequest?id=" + id + "&requiredQty=" + requiredQty, function(response) {
716
					if (response == 'true') {
717
						getGrnRequestItems(requestId, invoiceId)
718
					}
719
				});
720
 
721
			}
722
		}
723
 
724
	});
725
 
726
 
727
 
728
 
729
 
32145 tejbeer 730
});
731
 
732
function loadCreatePurchase(domId) {
733
	doGetAjaxRequestHandler(context + "/warehousePurchaseOrder", function(response) {
734
		$('#' + domId).html(response);
735
	});
736
}
737
 
32192 tejbeer 738
 
739
 
32145 tejbeer 740
function loadOpenPurchase(domId) {
741
 
742
	doGetAjaxRequestHandler(context + "/getOpenPurchaseOrder", function(response) {
743
		$('#' + domId).html(response);
744
	});
745
}
746
 
32192 tejbeer 747
function loadNewReceiveInvoice(domId) {
748
	doGetAjaxRequestHandler(context + "/newReceiveInvoice", function(response) {
749
		$('#' + domId).html(response);
750
	});
751
}
752
 
32256 tejbeer 753
 
754
 
755
function loadGrnRequest(domId) {
756
	doGetAjaxRequestHandler(context + "/grnRequest", function(response) {
757
		$('#' + domId).html(response);
758
	});
759
}
760
 
761
function loadDebitNote(domId) {
762
	doGetAjaxRequestHandler(context + "/getDebitNote", function(response) {
763
		$('#' + domId).html(response);
764
	});
765
}
766
 
32300 tejbeer 767
function loadWarehouseInvoices(domId) {
768
	doGetAjaxRequestHandler(context + "/getWarehouseInvoices", function(response) {
769
		$('#' + domId).html(response);
770
	});
771
}
772
 
32145 tejbeer 773
function createPurchase(sendPo) {
774
	var purchaseOrder = {};
775
 
776
	var vendorId = $('#vendorId').val();
777
 
778
	var warehouseId = $('#warehouseMap').val();
779
 
780
 
781
	var items = []
782
	$("table > tbody > tr").each(function() {
783
		var purchaseOrderJson = {};
784
 
785
		var itemId = $(this).find(".transferPrice").data('itemid');
786
		var qty = $(this).find(".qty").val();
787
		var transferPrice = $(this).find(".transferPrice").val();
788
		var totalValue = $(this).find(".totalValue").val();
789
 
790
 
791
		purchaseOrderJson['itemId'] = itemId;
32256 tejbeer 792
		purchaseOrderJson['amendedQty'] = qty
32145 tejbeer 793
		purchaseOrderJson['totalValue'] = totalValue
794
		purchaseOrderJson['transferPrice'] = transferPrice
795
 
796
		items.push(purchaseOrderJson)
797
	});
798
 
799
 
800
	for (var i = 0; i < items.length; i++) {
801
		console.log(items[i])
802
 
803
		var itemId = items[i].itemId
32261 tejbeer 804
		var qty = items[i].amendedQty
32145 tejbeer 805
		var transferPrice = items[i].transferPrice
806
		var totalValue = items[i].totalValue
807
 
808
		if (itemId === "" && qty === "" && transferPrice === "" && totalValue === "") {
809
			alert("Field can't be empty");
810
			return false;
811
		}
812
 
813
 
814
		if (itemId === "") {
815
			alert("please select item");
816
			return false;
817
		}
818
		if (qty === "") {
819
			alert("please choose qty");
820
			return false;
821
		}
822
 
823
		if (transferPrice === "") {
824
			alert("Transfer Price can't be empty");
825
			return false;
826
		}
827
		if (totalValue === "") {
828
			alert("Total value can't be empty");
829
			return false;
830
		}
831
 
32261 tejbeer 832
		if (qty <= 0) {
833
			alert("Please fill Qty");
834
			return false;
835
		}
32145 tejbeer 836
 
837
 
32261 tejbeer 838
 
32145 tejbeer 839
	}
840
 
841
	purchaseOrder['vendorId'] = vendorId;
842
	purchaseOrder['warehouseId'] = warehouseId
843
	purchaseOrder['sendPo'] = sendPo
844
 
845
	purchaseOrder['items'] = items
846
 
847
	console.log(purchaseOrder)
848
 
849
 
850
 
851
	if (confirm("Are you sure you want to create purchase order") == true) {
852
 
853
		doPostAjaxRequestWithJsonHandler(context
854
			+ "/createPurchaseOrder", JSON
855
				.stringify(purchaseOrder), function(response) {
856
					if (response == 'true') {
857
						alert("successfully created");
32256 tejbeer 858
						loadCreatePurchase("main-content");
32145 tejbeer 859
					}
860
				});
861
	}
862
 
863
}
864
 
865
 
866
function editPurchase(sendPo, poid) {
867
	var editpurchaseOrder = {}
868
	var items = []
869
	$("#purchase-edit-lineitem > tbody > tr").each(function() {
870
		var purchaseOrderJson = {};
871
		var itemId = $(this).find("td:eq(0)").text();
872
 
32256 tejbeer 873
		var qty = $(this).find("td:eq(2)").text();
32145 tejbeer 874
 
32256 tejbeer 875
		var amendedQty = $(this).find(".editqty").val();
876
 
32283 tejbeer 877
		var transferPrice = $.trim($(this).find(".transferPrice").html());
32256 tejbeer 878
 
879
 
32145 tejbeer 880
		purchaseOrderJson['itemId'] = itemId;
32256 tejbeer 881
		purchaseOrderJson['amendedQty'] = parseInt(amendedQty)
882
		purchaseOrderJson['qty'] = parseInt(qty)
32282 tejbeer 883
		purchaseOrderJson['transferPrice'] = transferPrice
32145 tejbeer 884
 
885
		items.push(purchaseOrderJson)
886
	});
887
 
888
 
889
	for (var i = 0; i < items.length; i++) {
890
		console.log(items[i])
891
 
32256 tejbeer 892
		var amendedQty = items[i].amendedQty
32145 tejbeer 893
		var qty = items[i].qty
894
 
32256 tejbeer 895
 
896
		if (amendedQty === "") {
32145 tejbeer 897
			alert("please choose qty");
898
			return false;
899
		}
900
 
32256 tejbeer 901
		if (amendedQty < qty) {
902
			alert("Quantity should be greater than existing qty");
32145 tejbeer 903
			return false;
904
		}
905
 
906
 
907
	}
908
 
909
	editpurchaseOrder['purchaseOrderId'] = poid;
910
	editpurchaseOrder['sendPo'] = sendPo
911
	editpurchaseOrder['items'] = items
912
 
913
 
914
	if (confirm("Are you sure you want to edit purchase order") == true) {
915
 
916
		doPostAjaxRequestWithJsonHandler(context
917
			+ "/editPurchaseOrder", JSON
918
				.stringify(editpurchaseOrder), function(response) {
919
					if (response == 'true') {
920
						alert("successfully created");
32295 tejbeer 921
						$('#warehouseEditPurchaseContainer').modal('hide');
922
						$('.modal-backdrop').remove();
923
 
32256 tejbeer 924
						loadOpenPurchase("main-content")
32145 tejbeer 925
					}
926
				});
927
	}
928
 
929
}
930
 
931
 
32192 tejbeer 932
function getInvoiceItemData(numItems, invoiceId, warehouseId, supplierId, validate) {
933
 
934
	var invoiceJson = {};
935
	console.log(numItems)
936
	var totalQty = 0;
937
	var invoiceItems = []
938
	$("#invoice-order-table > tbody > tr").each(function() {
939
		var invoiceItemJson = {};
940
		var itemId = $(this).find(".rate").data('itemid');
941
		var qty = $(this).find(".qty").val();
942
 
943
		if (qty != undefined) {
944
			totalQty += parseInt(qty)
945
		}
946
		var rate = $(this).find(".rate").val();
947
		invoiceItemJson['itemId'] = itemId;
948
		invoiceItemJson['qty'] = qty
949
		invoiceItemJson['rate'] = rate
950
		invoiceItems.push(invoiceItemJson)
951
	});
952
 
953
 
954
	for (var i = 0; i < invoiceItems.length; i++) {
955
 
956
		var itemId = invoiceItems[i].itemId
957
		var qty = invoiceItems[i].qty
958
		var rate = invoiceItems[i].rate
959
		if (itemId === "" && qty === "" && rate === "") {
960
			alert("Field can't be empty");
961
			return false;
962
		}
963
 
964
		if (itemId === "") {
965
			alert("please select item");
966
			return false;
967
		}
968
		if (qty === "") {
969
			alert("please choose qty");
970
			return false;
971
		}
972
 
973
		if (rate === "") {
974
			alert("Rate can't be empty");
975
			return false;
976
		}
977
 
978
	}
979
 
980
	console.log(totalQty)
981
 
982
	if (totalQty > numItems) {
983
		alert("Qty Should not be more than  Invoice items");
984
		return false;
985
	}
986
 
987
	if (validate) {
988
 
989
		if (totalQty != numItems) {
990
			alert("Qty Should not match with Invoice items");
991
			return false;
992
		}
993
	}
994
 
995
 
996
	invoiceJson['invoiceId'] = invoiceId;
997
	invoiceJson['warehouseId'] = warehouseId;
998
	invoiceJson['supplierId'] = supplierId;
999
	invoiceJson['invoiceItems'] = invoiceItems
1000
	if (validate) {
1001
		validateInvoiceItems(invoiceJson);
1002
	} else {
1003
		saveInvoiceItems(invoiceJson)
1004
	}
1005
}
1006
 
1007
 
1008
function saveInvoiceItems(invoiceJson) {
1009
 
1010
 
1011
	if (confirm("Are you sure you want to save invoice item") == true) {
1012
 
1013
		doPostAjaxRequestWithJsonHandler(context
1014
			+ "/invoiceItemDetail", JSON
1015
				.stringify(invoiceJson), function(response) {
1016
					if (response == 'true') {
1017
						getInvoiceItems(invoiceJson.invoiceId);
1018
					}
1019
				});
1020
	}
1021
 
1022
}
1023
 
1024
 
1025
function validateInvoiceItems(invoiceJson) {
1026
 
1027
 
1028
	if (confirm("Are you sure you want to validate invoice item") == true) {
1029
 
1030
		doPostAjaxRequestWithJsonHandler(context
1031
			+ "/validateInvoiceItemDetail", JSON
1032
				.stringify(invoiceJson), function(response) {
1033
					$('.invoiceadditemcontainer').html(response);
1034
 
1035
				});
1036
	}
1037
 
1038
}
1039
 
1040
function getOpenPOFromWarehouse() {
1041
 
1042
	var warehouseId = $('#warehouseMap').val();
1043
	doGetAjaxRequestHandler(context + "/getOpenPurchaseOrderByWarehouseId?warehouseId=" + warehouseId, function(response) {
1044
		$('#warehouseManagePuchaseContainer').html(response);
1045
	});
1046
 
1047
 
1048
 
1049
}
1050
 
1051
function getPurchaseLineitem(poId) {
1052
 
1053
 
1054
	doGetAjaxRequestHandler(context + "/getPurchaseOrderItemByPoId?poId=" + poId, function(response) {
1055
		$('#warehouseManagePuchaseItemContainer').html(response);
1056
		$('#warehousepurchaseitemgrn').hide()
1057
	});
1058
 
1059
 
1060
}
1061
 
1062
 
1063
function getInvoiceItems(invoiceId) {
1064
 
1065
	doGetAjaxRequestHandler(context + "/getInvoiceItems?invoiceId=" + invoiceId, function(response) {
1066
		$('.invoiceadditemcontainer').html(response);
1067
 
1068
	});
1069
}
1070
 
1071
 
32256 tejbeer 1072
function getGrnRequestItems(requestId, invoiceId) {
1073
 
1074
	doGetAjaxRequestHandler(context + "/grnRequestItem?requestId=" + requestId + "&invoiceId=" + invoiceId, function(response) {
1075
		$('.grnRequestItemContainer').html(response);
1076
 
1077
	});
1078
}
1079
 
1080