
<?php $__env->startSection('title'); ?> Mileage Summary <?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">
		<label>Transporter</label>
		<select class="form-control transporter chosen-select" multiple name="transporter"></select>
		<label><input type="checkbox" class="filter" value="transporter"> All Transporters</label>
	</div>
</div>
<div class="row">
	<div class="form-group col-md-3">
		<label>Vehicle</label>
		<select class="form-control vehicle chosen-select" multiple name="vehicle"></select>
		<label><input type="checkbox" class="filter" value="vehicle"> All Vehicles</label>
	</div>
	<div class="form-group col-md-3">
		<label>Delivery Type</label>
		<select class="form-control type chosen-select" multiple name="type">
			<option value="GT">GT</option>
			<option value="MT">MT</option>
			<option value="GT-MT">GT-MT</option>
			<option value="Other">Other</option>
		</select>
		<label><input type="checkbox" class="filter" value="type"> All Types</label>
	</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-6">
		<div class="table-responsive">
			<table class="table table-bordered table-condensed">
				<tbody>
					<tr>
						<th></th>
						<th>KMs</th>
						<th>TRIPS</th>
					</tr>
					<tr>
						<th>TOTAL</th>
						<td class="distance">0.00</td>
						<td class="trips">0</td>
					</tr>
				</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});
		$('.chosen-select').chosen({search_contains:true});
		
		$(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()) );
				transporters(function(){
					vehicles();
				});
			}
		});
		
		$(".toDate").datepicker({
			dateFormat: "yy-mm-dd",
			onSelect: function(){
				$(".fromDate").datepicker( "option", "maxDate", new Date($('.toDate').val()) );
				transporters(function(){
					vehicles();
				});
			}
		});


		$(".transporter").change(function(){
			vehicles();
		});

		$(".filter[value='transporter']").change(function(){
			vehicles();
		});

		$(".export").click(function(){
			exportReport();
		});

		$(".generate").click(function(){
			generate();
		});

		transporters(function(){
			vehicles();
		});

		function transporters(callback){
			var $select = $(".transporter");

			var data = {
	            fromDate : $(".fromDate").val(),
	            toDate: $(".toDate").val()
	        };
			$.post("<?php echo e(url('/report15/transporters')); ?>", {_token: _token, data: data}, function(e){
				var dom = '';
				if(typeof(e) == 'object' && Object.keys(e).length > 0){
					$.each(e, function(i, k){
						dom += '<option value="'+ k.id +'">'+ k.name +'</option>';
					});
				}else{
					dom = '<option value="">No transporters found.</option>';
				}
				$select.html(dom);
				$('.chosen-select').trigger('chosen:updated');
				
				if(typeof(callback) == "function"){
					callback();
				}
			}, 'json');
		}

		function vehicles(){
			var $select = $(".vehicle");
			
			var data = {
	            fromDate : $(".fromDate").val(),
	            toDate: $(".toDate").val(),
	            transporter_ids: $(".transporter").val(),
	            filters: $(".filter:checked").map(function(){
					return $(this).val();
				}).get()
	        };

			$.post("<?php echo e(url('/report15/vehicles')); ?>", {_token: _token, data: data}, function(e){
				var dom = '';
				if(typeof(e) == 'object' && Object.keys(e).length > 0){
					$.each(e, function(i, k){
						dom += '<option value="'+ k.id +'">'+ k.number +'</option>';
					});
				}else{
					dom = '<option value="">No vehicles found.</option>';
				}
				$select.html(dom);
				$('.chosen-select').trigger('chosen:updated');
			}, 'json');
		}

		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 exportReport(){
			var data = {
	            fromDate : $(".fromDate").val(),
	            toDate: $(".toDate").val(),
	            transporter_ids: $(".transporter").val(),
	            vehicle_ids: $(".vehicle").val(),
	            types: $(".type").val(),
	            filters: $(".filter:checked").map(function(){
					return $(this).val();
				}).get()
	        };
	        
			var dom = '<input type="hidden" name="_token" value="'+ _token +'"/>';
			$.each(data, function(k, v){
				if(v == null){
					v = '';
				}
				if(typeof(v) == "object"){
					$.each(v, function(i, j){
						dom += '<input type="hidden" name="'+ k +'['+ i +']" value="'+ j +'"/>';
					});
				}else{
					dom += '<input type="hidden" name="'+ k +'" value="'+ v +'"/>';
				}
			});
			$('<form action="<?php echo e(url("/report15/export")); ?>" method="post">'+ dom +'</form>').appendTo('body').submit();
			
			$.clearHighlights();
		}

		function generate(){

			var data = {
	            fromDate : $(".fromDate").val(),
	            toDate: $(".toDate").val(),
	            transporter_ids: $(".transporter").val(),
	            vehicle_ids: $(".vehicle").val(),
	            types: $(".type").val(),
	            filters: $(".filter:checked").map(function(){
					return $(this).val();
				}).get()
	        };

			$.post("<?php echo e(url('/report15/generate')); ?>", {_token: _token, data: data}, function(e){

				highlightOrThrow(e, function(){
					report(e);
				});
				
			}, 'json');
		}

		function report(e){
			if(e != undefined && typeof(e) == "object"){
				$(".distance").html( (e.distance).toFixed(2) );
				$(".trips").html( Object.keys(e.trips).length );
			}
		}

	});
</script>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('layouts.master', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>