/home/dvjjulio/softtrash/public/js/movil/route.js
var latitude;
var longitude;

$(function(){
	if ("geolocation" in navigator){
	    navigator.geolocation.getCurrentPosition(function(position){
	    	 latitude  = position.coords.latitude;
	    	 longitude = position.coords.longitude;
	    	 Route.cliente_select(latitude,longitude);
	    	 //Route.clientesNear(latitude,longitude);
		});
	}else{
	    $.bootstrapGrowl( 'Mensaje: Favor de Activar la Geoloalizacion' , {
                type: "danger",
                delay: 7500,
                allow_dismiss: true
            });
	}
	Route.checkbox();
});
var Route={
	cliente_select:function(latitude,longitude){
		Route.findGeoloation();
		console.log('latitude:'+latitude+' longitude:'+longitude);
		$.ajax({
			data: {
				'latitude':latitude,
				'longitude':longitude
				},
		 	type: 'GET',
		 	dataType: "json",
			cache:false,
            url:main_path+'/movil/clientesNear',
            success: function( response ){

            	if(response.status == true){
	            	$('#cliente-select').html('');
	            	$('#cliente-select').append('<option value="0"> Selecciona </option>');
	            	$.each(response.data, function(i, val){
									console.log(val.id);
	            		$('#cliente-select').append('<option value='+val.id+'>'+val.nombre_comercial+'</option>');
	            	})
	            }else{
	            	$.bootstrapGrowl( 'Mensaje:'+response.message , {
                        type: "danger",
                        delay: 7500,
                        allow_dismiss: true
                    });
	            }
            },
        	fail: function( response ) {
              		$.bootstrapGrowl( 'Mensaje:'+response.message , {
                        type: "danger",
                        delay: 7500,
                        allow_dismiss: true
                    });
            }
		});
	},
	clientes_all:function(){
		$.ajax({
			data: {
				'latitude':latitude,
				'longitude':longitude
				},
		 	type: 'GET',
		 	dataType: "json",
			cache:false,
            url:main_path+'/movil/clientes',
            success: function( response ){

            	if(response.status == true){
	            	$('#cliente-select').html('');
	            	$('#cliente-select').append('<option value="0"> Selecciona </option>');
	            	$.each(response.data, function(i, val){
									console.log(val.id);
	            		$('#cliente-select').append('<option value='+val.id+'>'+val.nombre_comercial+'</option>');
	            	})
	            }else{
	            	$.bootstrapGrowl( 'Mensaje:'+response.message , {
                        type: "danger",
                        delay: 7500,
                        allow_dismiss: true
                    });
	            }
            },
        	fail: function( response ) {
              		$.bootstrapGrowl( 'Mensaje:'+response.message , {
                        type: "danger",
                        delay: 7500,
                        allow_dismiss: true
                    });
            }
		});
	},
	getInicio:function(e){
		Route.findGeoloation();

		var token	 		     = $('#csrf-token').val();
		var user_id		 	   = $(e).data('userid');
		var camion_id 		 = $(e).data('camionid');
		var fecha_    		 = $(e).data('fecha');
		var orden 		     = $('#orden-input').val();
		var cliente_id 		 = $('#cliente-select').val();
		var cliente 		   = $('#cliente-select :selected').text();


		if(orden == '' | orden == null){
			$('#orden-input').css('border','1px solid red');
			$.bootstrapGrowl( 'Mensaje: Ingresa el No. de Orden' , {
                type: "danger",
                delay: 7500,
                allow_dismiss: true
            });
		}
		else if(cliente_id == '0' | cliente_id == null){
			$('#cliente-select').css('border','1px solid red');
			$.bootstrapGrowl( 'Mensaje: Debe seleccionar un Cliente' , {
                type: "danger",
                delay: 7500,
                allow_dismiss: true
            });
		}else if(latitude == '' | latitude==null | latitude == 'undefined'){
			Route.findGeoloation();
		}else if(longitude == '' | longitude==null | longitude == 'undefined'){
			Route.findGeoloation();
		}
		else{

			var data = new FormData();

			data.append('_token'		  ,	token );
			data.append('user_id'		  ,	user_id );
			data.append('camion_id'		  ,	camion_id );
			data.append('orden'		  	  ,	orden );
			data.append('cliente_id'	  ,	cliente_id );
			data.append('cliente'	      ,	cliente );
			data.append('latitude'		  ,	latitude );
			data.append('longitude'		  ,	longitude );
			data.append('fecha_'		    ,	fecha_ );

			/*for(var pair of data.entries()) {
				   console.log(pair[0]+ ', '+ pair[1]);
				}*/
			$('#orden-btn-div').append("<div id='spin'><i class='fa fa-spinner fa-2x fa-spin'></i></div>");
			$("#orden-btn").attr("disabled",true);
			Route.sendRoute(data);
		}
	},
	getTermino:function(e){
		Route.findGeoloation();

		const data = new FormData();

		const giro = $(e).data('giro')
		const token	= $('#csrf-token').val();
		const id = $(e).data('id');
		const observaciones = $('#observaciones-input').val();
		const km = $('#km-input').val();
		const km_inicio	= $(e).data('km');
		const km_dif = (km - km_inicio);

		if(km == '' | km == null){
			$('#km-input').css('border','1px solid red');
			$.bootstrapGrowl( 'Mensaje: Ingresar el kilometraje' , {
                type: "danger",
                delay: 7500,
                allow_dismiss: true
            });
		}
		else if(km < km_inicio | km < 50){
        	$('#km-input').css('border','1px solid red');
			$.bootstrapGrowl( 'Mensaje: El Kilometraje debe de ser mayor al kilometraje pasado' , {
                type: "danger",
                delay: 7500,
                allow_dismiss: true
            });
        }else if(latitude == '' | latitude==null | latitude == 'undefined'){
			Route.findGeoloation();
		}else if(longitude == '' | longitude==null | longitude == 'undefined'){
			Route.findGeoloation();
		}
		else{
			data.append('_token',	token );
			data.append('id',	id );
			data.append('giro', giro);
			data.append('km', km);
			data.append('km_dif',	km_dif );
			data.append('observaciones', observaciones );
			data.append('latitude_termino' , latitude );
			data.append('longitude_termino', longitude );

			console.log('giro', giro)

			if (giro === 'Combustible') {
				Route.checkCombustibleOrden(e, data);
			} else if (giro === 'Vertedero') {
				Route.checkVertederoOrden(e, data);
			}
			else {
				Route.checkOrden(e, data);
			}
			Route.sendRouteTermino(data);
		}
	},
	checkCombustibleOrden: function(e, data) {
		
		const nota = $('#nota-input').val();
		const litros = $('#litros-input').val();
		const hora = $('#hora-input').val();
		const precioLitro = $('#precio-input').val();
		const tipo = $('#tipo-select').val();
		
		if (nota === '' || nota === null) {
			$('#nota-input').css('border','1px solid red');
			$.bootstrapGrowl( 'Mensaje: Debe agregar la Nota' , {
				type: "danger",
				delay: 7500,
				allow_dismiss: true
			});
		} else if (hora === '' || hora === null) {
			$('#litros-input').css('border','1px solid red');
			$.bootstrapGrowl( 'Mensaje: Debe agregar la hora' , {
				type: "danger",
				delay: 7500,
				allow_dismiss: true
			});
		} else if (litros === '' || litros === null) {
			$('#litros-input').css('border','1px solid red');
			$.bootstrapGrowl( 'Mensaje: Debe agregar los Litros' , {
				type: "danger",
				delay: 7500,
				allow_dismiss: true
			});
		} else if (precioLitro === '' || precioLitro === null) {
			$('#precio-input').css('border','1px solid red');
			$.bootstrapGrowl( 'Mensaje: Debe agregar el precio por litro' , {
				type: "danger",
				delay: 7500,
				allow_dismiss: true
			});
		} else if (tipo === '' || tipo === null) {
			$('#tipo-select').css('border','1px solid red');
			$.bootstrapGrowl( 'Mensaje: Debe agregar el tipo' , {
				type: "danger",
				delay: 7500,
				allow_dismiss: true
			});
		} else {
			
			data.append('nota',	nota);
			data.append('hora',	hora);
			data.append('litros',	litros);
			data.append('precio', precioLitro);
			data.append('check_reciclable',	false);

			$('#orden2-btn-div').append("<div id='spin'><i class='fa fa-spinner fa-2x fa-spin'></i></div>");
			$("#orden2-btn").attr("disabled",true);
			return data;
		}
	},
	checkVertederoOrden: function(e, data) {
		const nota = $('#nota-input').val();
		const peso = $('#peso-input').val();
		const hora = $('#hora-input').val();
		const precio = $('#precio-input').val();
		
		if (nota === '' || nota === null) {
			$('#nota-input').css('border','1px solid red');
			$.bootstrapGrowl( 'Mensaje: Debe agregar la Nota' , {
				type: "danger",
				delay: 7500,
				allow_dismiss: true
			});
		} else if (hora === '' || hora === null) {
			$('#litros-input').css('border','1px solid red');
			$.bootstrapGrowl( 'Mensaje: Debe agregar la hora' , {
				type: "danger",
				delay: 7500,
				allow_dismiss: true
			});
		} else if (peso === '' || peso === null) {
			$('#litros-input').css('border','1px solid red');
			$.bootstrapGrowl( 'Mensaje: Debe agregar los Litros' , {
				type: "danger",
				delay: 7500,
				allow_dismiss: true
			});
		} else if (precio === '' || precio === null) {
			$('#precio-input').css('border','1px solid red');
			$.bootstrapGrowl( 'Mensaje: Debe agregar el precio por litro' , {
				type: "danger",
				delay: 7500,
				allow_dismiss: true
			});
		} else {
			
			data.append('nota',	nota);
			data.append('hora',	hora);
			data.append('peso',	peso);
			data.append('precio', precio);
			data.append('check_reciclable',	false);

			$('#orden2-btn-div').append("<div id='spin'><i class='fa fa-spinner fa-2x fa-spin'></i></div>");
			$("#orden2-btn").attr("disabled",true);
			return data;
		}
	},
	checkOrden:function(e, data){
		if($('#reciclable-check').is(':checked') == true){
			var reciclable 	 		= $('#reciclable-select').val();
			var reciclable_cantidad = $('#cantidad-reciclable-input').val();
		}
		const cantidad = $('#cantidad-input').val();

		if($('#reciclable-check').is(':checked') == true){
			if(reciclable == '0' | reciclable == null){
				$('#reciclable-select').css('border','1px solid red');
				$.bootstrapGrowl( 'Mensaje: Debe seleccionar Reciclable' , {
	                type: "danger",
	                delay: 7500,
	                allow_dismiss: true
	            });
			}else if(reciclable_cantidad == '' | reciclable_cantidad == null | reciclable_cantidad > 500){
				$('#cantidad-reciclable-input').css('border','1px solid red');
				$.bootstrapGrowl( 'Mensaje: Debe ingresar Cantidad en Reciclable Correcta' , {
	                type: "danger",
	                delay: 7500,
	                allow_dismiss: true
	            });
			}
		}
		if(cantidad == '' | cantidad == null){
			$('#cantidad-input').css('border','1px solid red');
			$.bootstrapGrowl( 'Mensaje: Ingresa la Cantidad' , {
                type: "danger",
                delay: 7500,
                allow_dismiss: true
            });
		}
		else  {
			if($('#reciclable-check').is(':checked') == true){
				data.append('check_reciclable'	   ,	true );
				data.append('reciclable'		   ,	reciclable );
				data.append('reciclable_cantidad'  ,	reciclable_cantidad );
			}else{
				data.append('check_reciclable'	   ,	false );
			}
			data.append('cantidad'		   ,	cantidad );
			$('#orden2-btn-div').append("<div id='spin'><i class='fa fa-spinner fa-2x fa-spin'></i></div>");
			$("#orden2-btn").attr("disabled",true);
			return data
		}
	},
	sendRoute:function(data){
		$.ajax({
			url:main_path+'/movil/saveRouteInicio',
			data:data,
			cache:false,
			contentType: false,
            processData: false,
            type: 'POST',
            dataType: "json",
            success: function( response ){
            	if(response.status == true ){
                         $.bootstrapGrowl('Inicio de Ruta Guardado!', {
                            type: "success",
                            delay: 6500,
                            allow_dismiss: true
                        });
												$('#spin').html('');
												$("#orden-btn").attr("disabled",false);
                         Route.resetFields();
                         window.location.assign(main_path+'/movil/route');
                }else{
										$('#spin').html('');
										$("#orden-btn").attr("disabled",false);
	                	$.bootstrapGrowl( 'Mensaje:'+response.message , {
	                        type: "danger",
	                        delay: 7500,
	                        allow_dismiss: true
	                    });
                	}
            },
        	fail: function( response ) {
              		$.bootstrapGrowl( 'Mensaje:'+response.message , {
                        type: "danger",
                        delay: 7500,
                        allow_dismiss: true
                    });
            },
            complete:function(){

            }
		});
	},
	sendRouteTermino:function(data){
		$.ajax({
			url:main_path+'/movil/saveRouteTermino',
			data:data,
			cache:false,
			contentType: false,
            processData: false,
            type: 'POST',
            dataType: "json",
            success: function( response ){
            	if(response.status == true ){
								$('#spin').html('');
								$("#orden2-btn").attr("disabled",false);
                         $.bootstrapGrowl('Termino de Ruta Guardado!', {
                            type: "success",
                            delay: 6500,
                            allow_dismiss: true
                        });
                         Route.resetFields();
                         window.location.assign(main_path+'/movil/route');
                }else{
						$('#spin').html('');
						$("#orden2-btn").attr("disabled",false);
	                	$.bootstrapGrowl( 'Mensaje:'+response.message , {
	                        type: "danger",
	                        delay: 7500,
	                        allow_dismiss: true
	                    });
                	}
            },
        	fail: function( response ) {
              		$.bootstrapGrowl( 'Mensaje:'+response.message , {
                        type: "danger",
                        delay: 7500,
                        allow_dismiss: true
                    });
            },
            complete:function(){
            	//window.location.assign(main_path+'/movil/route');
            }
		});
	},
	resetFields:function(){
		$('#orden-input').val('');
		$('#cliente-select').val('0').prop( 'selected', false ).trigger("chosen:updated");
		$('#cantidad-input').val('');
		$('#km-input').val('');
		$('#observaciones-input').val('');
	},
	checkbox:function(e){
		$('#reciclable-check').on('click',function(){
			if($('#reciclable-check').is(':checked')=== true){
				$('#reciclable-div').attr('class','form-group');
			}else{
				$('#reciclable-div').attr('class','form-group hide');
			}
		});
	},
	findGeoloation:function(){
		if ("geolocation" in navigator){
	    	navigator.geolocation.getCurrentPosition(function(position){
	    		latitude  = position.coords.latitude;
	    	 	longitude = position.coords.longitude;
			});
		}else{
		    $.bootstrapGrowl( 'Mensaje: Favor de Activar la Geoloalizacion' , {
                type: "danger",
                delay: 7500,
                allow_dismiss: true
            });
		}
	},
	clientesNear:function(){
		Route.findGeoloation();
		console.log('latitude:'+latitude+' longitude:'+longitude);
		$.ajax({
			data: {
				'latitude':latitude,
				'longitude':longitude
				},
		 	type: 'GET',
		 	dataType: "json",
			cache:false,
            url:main_path+'/movil/clientesNear',
            success: function( response ){

            	if(response.status == true){
	            	$('#cliente-select').html('');
	            	$('#cliente-select').append('<option value="0"> Selecciona </option>');
	            	$.each(response.data, function(i, val){
									console.log(val.id);
	            		$('#cliente-select').append('<option value='+val.id+'>'+val.nombre_comercial+'</option>');
	            	})
	            }else{
	            	$.bootstrapGrowl( 'Mensaje:'+response.message , {
                        type: "danger",
                        delay: 7500,
                        allow_dismiss: true
                    });
	            }
            },
        	fail: function( response ) {
              		$.bootstrapGrowl( 'Mensaje:'+response.message , {
                        type: "danger",
                        delay: 7500,
                        allow_dismiss: true
                    });
            }
		});
	}
}