<?php $__env->startSection('title'); ?> Invoice Registry <?php $__env->stopSection(); ?>
<?php $__env->startSection('body'); ?>

<div class="row">
	<div class="form-group col-md-3">
		<label class="control-label">From</label>
		<input type="text" class="form-control fromDate" name="fromDate">
	</div>
	<div class="form-group col-md-3">
		<label class="control-label">To</label>
		<input type="text" class="form-control toDate" name="toDate">
	</div>
	<div class="form-group col-md-3">
		<button class="btn btn-primary generate" style="margin-top: 25px;">Generate</button>
		<button class="btn btn-primary export pull-right" style="margin-top: 25px;">Export</button>
	</div>
</div>

<div class="row">
	<div class="col-md-12">

		<div class="table-responsive">

			<table class="table table-bordered table-condensed report">
				<thead>
					<tr>
						<th>DATE</th>
						<th>TIME</th>
						<th>DELIVERY NUMBER</th>
						<th>INVOICE NUMBER</th>
						<th>DISTRIBUTOR NAME</th>
						<th>NUMBER OF CASES</th>
						<th>VOLUME</th>
						<th>WEIGHT</th>
						<th>VALUE</th>
						<th>STATUS ( FULL OR PARTIAL )</th>
						<th>DISABLED</th>
						<th>COMMENT</th>
						<th>TRANSPORTER</th>
						<th>LORRY</th>
						<th>LOADING OFFICER</th>
						<th>LOADING BAY</th>
						<th>DESPATCH DATE</th>
						<th>PLANNED DATE</th>
						<th>LOADING START TIME</th>
						<th>LOADING END TIME</th>
						<th>TMS TRIP NUMBER</th>
						<th>ACCOMPANIED LOCATIONS</th>
						<th>SEAL NUMBER</th>
						<th>FEEDBACK SHEET NUMBER</th>
					</tr>
				</thead>
				<tbody>
					<th colspan="22" class="text-center">Generate Report</th>
				</tbody>
			</table>

		</div>
	</div>
</div>

<?php $__env->stopSection(); ?>
<?php $__env->startSection('script'); ?>
<script type="text/javascript">

$(function(){
	var _token = $('meta[name="_token"]').attr('content');
	var errors = JSON.parse('<?php echo json_encode($errors->toArray()) ?>');
	$('body').highlight({errors: errors.errors});

	$(document).ajaxStart(function () {
        $('button').data('loading-text', '...');
        $('button').button('loading');
    }).ajaxStop(function () {
        $('button').button('reset');
    });
	
	$('.fromDate').datepicker({
		dateFormat: "yy-mm-dd",
		onSelect: function(){
			$(".toDate").datepicker( "option", "minDate", new Date($('.fromDate').val()) );
		}
	});
	$(".toDate").datepicker({
		dateFormat: "yy-mm-dd",
		onSelect: function(){
			$(".fromDate").datepicker( "option", "maxDate", new Date($('.toDate').val()) );
		}
	});

	$(".generate").click(function(){
		generate();
	});

	function highlightOrThrow(e, callback){
		$.clearHighlights();
		if(e != undefined && typeof(e) == 'object'){
			if(e.hasOwnProperty('errors')){
				$.each(e.errors, function(i, k){
					$('.'+i).highlightElement({msg: k});
				});
			}else if(e.hasOwnProperty('ok') && e.hasOwnProperty('msg') && e.ok == 0){
				$.notify.error({msg: e.msg});
			}else if(e.hasOwnProperty('ok') && e.hasOwnProperty('msg')  && e.ok == 1){
				$.notify.success({msg: e.msg});
				if(callback != undefinded && typeof(callback) == 'function'){
					callback();
				}
			}else{
				callback();
			}
		}else{
			console.log('object expected.');
		}
	}

	function generate(){
		var data = {
			fromDate: $('.fromDate').val(),
			toDate: $('.toDate').val()
		};

		$.post("<?php echo e(url('/report5/generate')); ?>", {_token: _token, data: data}, function(e){
			highlightOrThrow(e, function(){
				report(e);
			});
			
		}, 'json');
	}

	$(".export").click(function(){
		exportReport();
	});

	function exportReport(){
		var data = {
			fromDate: $('.fromDate').val(),
			toDate: $('.toDate').val()
		};

		var dom = '<input type="hidden" name="_token" value="'+ _token +'"/>';
		$.each(data, function(k, v){
			if(v == null){
				v = '';
			}
			dom += '<input type="hidden" name="'+ k +'" value="'+ v +'"/>';
		});
		$('<form action="<?php echo e(url("/report5/export")); ?>" method="post">'+ dom +'</form>').appendTo('body').submit();

		$.clearHighlights();
	}

	function report(e){
		var $tbody = $(".report tbody");

		var dom = '';
		if(typeof(e) == "object" && Object.keys(e).length > 0){
			$.each(e, function(i, order){

				var rowspan = order.rowspan > 0 ? 'rowspan="'+ order.rowspan +'"' : '';
				
				// dom += '<tr>';

				dom += '<tr '+ (order.disabled == "Yes" ? "style=\'background-color:#7f8c8d;\' data-toggle=\'tooltip\' title=\'"+ order.comment +"\'" : "") +' >';

				dom += '	<td '+ rowspan +'>'+ order.date +'</td>';
				dom += '	<td '+ rowspan +'>'+ order.time +'</td>';
				dom += '	<td '+ rowspan +'>'+ order.deliveryNumber +'</td>';
				dom += '	<td '+ rowspan +'>'+ order.num +'</td>';
				dom += '	<td '+ rowspan +'>'+ order.distributor +'</td>';
				dom += '	<td '+ rowspan +'>'+ order.cases +'</td>';
				dom += '	<td '+ rowspan +'>'+ order.orderVolume +'</td>';
				dom += '	<td '+ rowspan +'>'+ order.orderWeight +'</td>';
				dom += '	<td '+ rowspan +'>'+ order.value +'</td>';
				dom += '	<td '+ rowspan +'>'+ order.status +'</td>';
				dom += '	<td '+ rowspan +'>'+ order.disabled +'</td>';
				dom += '	<td '+ rowspan +'>'+ order.comment +'</td>';

				if(order.hasOwnProperty("vehicles") && typeof(order.vehicles) == "object" && Object.keys(order.vehicles).length > 0){
					var vehicles = order.vehicles;
					$.each(vehicles, function(j, vehicle){
						
						if(j === 0){

							dom += '<td>'+ vehicle.name +'</td>';
							dom += '<td>'+ vehicle.number +'</td>';
							dom += '<td>'+ vehicle.loading_officer +'</td>';
							dom += '<td>'+ vehicle.loading_bay +'</td>';
							dom += '<td>'+ vehicle.gatepass_date +'</td>';
							dom += '<td>'+ vehicle.takeoff_date +'</td>';
							dom += '<td>'+ vehicle.loading_start +'</td>';
							dom += '<td>'+ vehicle.loading_end +'</td>';
							dom += '<td>'+ vehicle.trip_id +'</td>';

							if(vehicle.hasOwnProperty("points") && vehicle.points.length > 0){
								dom += '	<td>'+ vehicle.points +'</td>';
								dom += '	<td>'+ vehicle.seal_numbers +'</td>';
								dom += '	<td>'+ vehicle.feedback_sheet_numbers +'</td>';
								dom += '</tr>';
							}else{
								dom += '	<td>-</td>';
								dom += '	<td></td>';
								dom += '	<td></td>';
								dom += '</tr>';
							}

						}else{
							dom += '<tr>';
							dom += '	<td>'+ vehicle.name +'</td>';
							dom += '	<td>'+ vehicle.number +'</td>';
							dom += '	<td>'+ vehicle.loading_officer +'</td>';
							dom += '	<td>'+ vehicle.loading_bay +'</td>';
							dom += '	<td>'+ vehicle.gatepass_date +'</td>';
							dom += '	<td>'+ vehicle.takeoff_date +'</td>';
							dom += '	<td>'+ vehicle.loading_start +'</td>';
							dom += '	<td>'+ vehicle.loading_end +'</td>';
							dom += '	<td>'+ vehicle.trip_id +'</td>';
							

							if(vehicle.hasOwnProperty("points") && vehicle.points.length > 0){
								dom += '	<td>'+ vehicle.points +'</td>';
								dom += '	<td></td>';
								dom += '	<td></td>';
								dom += '</tr>';
							}else{
								dom += '	<td>-</td><td></td><td></td>';
								dom += '</tr>';
							}

						}

					});

				}else{
					for(let t = 0; t < 12; t++){
						dom += '<td>-</td>';
					}
					dom += '</tr>';
				}

				if(order.next_order_number != null){
                    if(+order.num < (+order.next_order_number - 1)){
                        var missing = (+order.next_order_number - +order.num) - 1;

                        dom += '<tr style="background-color: #f1c40f;">';
                        if(missing > 1){
                            dom += '<td colspan="24" class="text-center"><b>( ' + (+order.num + 1) + ' - ' + (order.next_order_number - 1) + ' )</b> '+ missing +' invoices missing </td>';
                        }else{
                            dom += '<td colspan="24" class="text-center"><b>( '+ (+order.num + 1) +' )</b> '+ missing +' invoice missing</td>';
                        }
                        dom += '</tr>';
                    }
                }
                
				
			});
		}else{
			dom = '<tr>';
			dom += '		<th colspan="22" class="text-center">Sorry, No results found.</th>';
			dom += '</tr>';
		}
		$tbody.html(dom);
	}
});

</script>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('layouts.master', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>