Subversion Repositories SmartDukaan

Rev

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