var tabla;

$("#montopago").change(actualizarpago);

//funcion que se ejecuta al inicio
function init(){
   mostrarform(false);
   listardeuda();
	 buscarTasaDeCambio();

   $("#btnGuardar").on("click",function(e){
	/* Evitamos el envío real del formulario */
		e.preventDefault(); 
		validar();
		var val = $("#validado").val();
		console.log(val);
		if (val==1){  
			var total_pago	=	document.getElementById('total_pago').value;
			var diferencia	=	document.getElementById('diferencia').value;
			if (diferencia<=0){	
				if (total_pago!=0) {  
					bootbox.confirm("¿Esta seguro que quiere guardar los dato?", function(result){
						if (result) {
							modificarValoresAnumerico();
							guardaryeditar(e);	
						}
					})  
				}else{
					bootbox.alert("No hay documento seleccionado para pagar");
				}
			}else{
				bootbox.alert("Tiene una diferencia por favor abono a otro documento");
			} 
		}
   });
		

    //cargamos los items al select Forma de Pago
	$.post("controladores/formapagosControlador.php?op=selectformapago", function(f){
		$("#idformapago").html(f);
		$('#idformapago').selectpicker('refresh');
   });

   //cargamos los items al select Tipo de Pagos
	$.post("controladores/tipopagosControlador.php?op=selecttipopagos", function(t){
		$("#idtipopagos").html(t);
		$('#idtipopagos').selectpicker('refresh');
   });

   //cargamos los items al select Cuenta de Banco
	$.post("controladores/cuentabancoControlador.php?op=selectCuentabanco1", function(c){
		$("#idbancocuenta").html(c);
		$('#idbancocuenta').selectpicker('refresh');
   });

	//Actualizamos el monto de pago y formateo el valor del monto del pago
	$("#montopago").keyup(function(event) {
		// skip for arrow keys
			if(event.which >= 37 && event.which <= 40){
					event.preventDefault();
				}
				var value  = $(this).val();
			$(this).val(decimal(value));
			let valor = numero($(this).val())*numero($("#tasacambioventa").val());
			$("#montopagob").val(number_format(valor,2))

		//	chequeardocumentos();
	});
			
	//Actualizamos el monto de pago y formateo el valor del monto del pago
	$("#montopagob").keyup(function(event) {
		// skip for arrow keys
			if(event.which >= 37 && event.which <= 40){
					event.preventDefault();
				}
				var value  = $(this).val();
			$(this).val(decimal(value));
			let valor = numero($(this).val())/numero($("#tasacambioventa").val())
			$("#montopago").val(number_format(valor,2))
		//	chequeardocumentos();
	});
		
	//Actualizamos el monto de pago y formateo el valor del monto del pago
	$("#tasacambioventa").keyup(function(event) {
			// skip for arrow keys
				if(event.which >= 37 && event.which <= 40){
						event.preventDefault();
					}
				var value  = $(this).val();
				$(this).val(decimal(value));
				
				
			//	chequeardocumentos();
	});
		
	//se verifica si cambia los campos del formulario
	$("#idbancocuenta").change(function(){
		$("#montopago").val("0,00");
		$("#montopagob").val("0,00");
		let valor = $("#idbancocuenta").val().split("-");
		let montopago 	= document.getElementById("montopago");
		let montopagob 	= document.getElementById("montopagob");
		montopagob.style.backgroundColor = "#a9aab0";
		montopago.style.backgroundColor = "#a9aab0";
		
		if (valor[1]=='Dollar'){
			$("#montopago").attr("readonly", false); 
			montopago.style.backgroundColor = "#bdf59a";
			$("#montopagob").attr("readonly", true);
			montopagob.style.backgroundColor = "#dfe0e6";
		}else{
			$("#montopagob").attr("readonly", false); 
			montopagob.style.backgroundColor = "#bdf59a";
			$("#montopago").attr("readonly", true);
			montopago.style.backgroundColor = "#dfe0e6";
		}
		//console.log('valor[0] :'+valor[0]);
		//console.log('valor[1] :'+valor[1]);
	});
		
	
	var typingTimer;                //timer identifier
	var doneTypingInterval = 4000;  //time in ms, 1 second for example
	//var doneTypingInterval = 1500;  //time in ms, 1 second for example
	//detalles
	$('#detalles').on('keyup paste', ':input', function() { 
		var value  = $(this).val(); //obtiene el valor actual del input.
		var name   = $(this).prop('name');
	
		if (name=='abono[]'){
			$(this).val(decimal(value));
			//alert('cambio abono y valor es: '+value+' Indice : '+indice);
			//evaluar(value);
		}
		
		clearTimeout(typingTimer);
		typingTimer = setTimeout(doneTyping, doneTypingInterval);
	});

	//Se limpia el contador cuando deja de escribir
	$('#detalles').on('keydown', function () {
		clearTimeout(typingTimer);
	});
	


}

function buscarTasaDeCambio(){
	idempresa_venta=$("#idempresa_venta").val();
	//alert ('idempresa_venta: '+idempresa_venta);
	$.post("controladores/empresaControlador.php?op=buscarTasaDeCambio",{idempresa_venta : idempresa_venta},
		function(data,status)
		{
			//alert ('estatus: '+status);
			data1=JSON.parse(data);
			//console.log('tasa de cambiobd: '+data1.tasa_dollar);
			//$("#tasa_dollar").val(number_format(data1.tasa_dollar),2);
			$("#tasacambioventa").val(number_format(data1.tasa_dollar,2));
			console.log('tasa de cambio:'+$("#tasacambioventa").val());
		//	console.log('#tasacambioventa:'+$("#tasa_dollar").val());
			//$("#tasa_euro").val(number_format(data1.tasa_euro),2);
		//	$("#tasa_euro").val(data1.tasa_euro);
	//		alert ('Control: '+data1.nrocontrol+' Factura: '+data1.nrofactura);
		});
}

//funcion para guardaryeditar
function modificarValoresAnumerico(){
	var cant	=	document.getElementsByName("montod[]");
	var cant1	=	document.getElementsByName("montodd[]");
	var prec	=	document.getElementsByName("abono[]");
	var prev	=	document.getElementsByName("pendiente[]");
	var total_pago1			=	$('#total_pago').val();
	var total_pago2			=	$('#total_pagob').val();
	var diferencia1			=	$('#diferencia').val();
	var montopago1 			=	$('#montopago').val();
	var montopagob1 		=	$('#montopagob').val();
	var tasacambioventa	=	$("#tasacambioventa").val();
	let idbancocuenta 	= $("#idbancocuenta").val().split("-");
	total_pago1					=	numero(total_pago1);
	total_pago2					=	numero(total_pago2)
	diferencia1 				=	numero(diferencia1);
	montopago1 					=	numero(montopago1);
	tasacambioventa			= numero(tasacambioventa);
	montopagob1					= numero(montopagob1);
	$('#total_pago').val(total_pago1);
	$('#total_pagob').val(total_pago2);
	$('#diferencia').val(diferencia1);
	$('#montopago').val(montopago1);
	$("#tasacambioventa").val(tasacambioventa);
	$("#montopagob").val(montopagob1);
	$("#idbancocuentap").val(idbancocuenta[0]);
	for (var i = 0; i < cant.length; i++) {
		var Cmod	=	cant[i];
		var Cmod1	=	cant1[i];
		var Pcmod	=	prec[i];
		var Pvmod	=	prev[i];
		console.log('Pago en $ antes: '+Cmod.value)
		Cmod.value	=	numero(Cmod.value);
		Cmod1.value	=	numero(Cmod1.value);
		Pcmod.value	=	numero(Pcmod.value);
		Pvmod.value	=	numero(Pvmod.value);
		console.log('Pago en bs: '+Cmod1.value);
		console.log('Pago en $: '+Cmod.value)

	}
}

//funcion para guardaryeditar
function guardaryeditar(e){
	e.preventDefault();//no se activara la accion predeterminada 
	$("#btnGuardar").prop("disabled",true);
	var formData=new FormData($("#formulario")[0]);
	$.ajax({
		url: "controladores/pagoproveedorControlador.php?op=guardaryeditaro",
		type: "POST",
		data: formData,
		contentType: false,
		processData: false,

		success: function(datos){
			bootbox.alert(datos);
			mostrarform(false);
			tabla.ajax.reload();
		}
	});
	limpiar();
}

//funcion limpiar
function validarmonto(){

	alert("validando");
	return false
}


//funcion limpiar
function limpiar(){
	$('#formulario').data('bootstrapValidator').resetForm(true);
	$("#nombre").val("");
	$("#idpagocliente").val("");
	$("#idpagocliente").val("");
	$("#tipo_persona").val("");
	$("#idformapago").val("");
	$("#idtipopagos").val("");
	$("#idreferencia").val("");
	$("#montopago").val("0,00");
	buscarTasaDeCambio();
	$("#total_pago").val("0,00");
	$("#total_pagob").val("0,00");
	$("#diferencia").val("0,00");
	// Fecha
	var today   = new Date();
	today		= FechaHoy();
	$(fecha_hora).val(today);
}

//funcion mostrar formulario 
function mostrarform(flag){
	limpiar();
	if(flag){
		$("#listadoregistros").hide();
		$("#formularioregistros").show();
		$("#formularioregistros1").show();
		$("#btnGuardar").prop("disabled",false);
		$("#btnagregar").hide();
	}else{
		$("#listadoregistros").show();
		$("#formularioregistros").hide();
		$("#formularioregistros1").hide();
		$("#btnagregar").show();
	}
}

//funcion listar
function listardeuda(){
	tabla=$('#tbllistado').dataTable({
		"aProcessing": true,//activamos el procedimiento del datatable
		"aServerSide": true,//paginacion y filrado realizados por el server
		dom: 'Bfrtip',//definimos los elementos del control de la tabla
		buttons: [
                  'copyHtml5',
                  'excelHtml5',
                  'csvHtml5',
                  'pdf'
		],
		"ajax":
		{
			url:'controladores/estadocuentaproveedorControlador.php?op=listardeudao',
			type: "get",
			dataType : "json",
			error:function(e){
				console.log(e.responseText);
			}
		},
		"drawCallback":function(){
			//alert("La tabla se está recargando"); 
			var api 	= this.api();
			var data2	= api.column(3, {page:'current'}).data();
			var saldo	=	0;
		
			for (var i = 0; i < data2.length; i++) {
				saldo 	= saldo+numero(data2[i]);
			}
			saldo		= number_format(saldo,2);
			$(api.column(0).footer()).html('Total:');
			$(api.column(3).footer()).html(saldo);
					
	  	}, 
		"bDestroy":true,
		"iDisplayLength":-1,//paginacion
		"order":[[0,"desc"]]//ordenar (columna, orden)
	}).DataTable();
}


function mostrar(idpersona){
	$.post("controladores/personaControlador.php?op=mostrar",{idpersona : idpersona},
		function(data,status)
		{
			data=JSON.parse(data);
			mostrarform(true);
			$("#nombre").val(data.nombre);
			$("#agenteretencion").val(data.agenteretencion);
			$("#idpersona").val(data.idpersona);
			//console.log('ide de persona: '+$("#idpersona").val());
		});
	$.post("controladores/estadocuentaproveedorControlador.php?op=listarDetallepagoo&id="+idpersona,function(r){
			$("#detalles").html(r);
		});
}


//funcion para desactivar
function eliminar(idpersona){
	bootbox.confirm("¿Esta seguro de eliminar este dato?", function(result){
		if (result) {

			$.post("controladores/personaControlador.php?op=eliminar", {idpersona : idpersona }, function(e){
				bootbox.alert(e);
				tabla.ajax.reload();
			});
		}
	})
}

//cancelar form
function cancelarform(){
	limpiar();
	mostrarform(false);
}


// Funcion para verificar el monto del pago
function actualizarpago() {
    var total_pago	=	document.getElementById('total_pago').value;
	var diferencia	=	document.getElementById('diferencia').value;
	var montopago	=	document.getElementById('montopago').value;
	
	// Convertir a numerico para hacer los calculo
	total_pago 		= 	numero(total_pago);
	diferencia 		= 	numero(diferencia);
	montopago 		= 	numero(montopago);

	diferencia 		=	montopago - total_pago;	

	// formatear numero para la vista.
	diferencia 		= 	number_format(diferencia,2);
	document.getElementById('diferencia').style.color='blue';
	$("#diferencia").val(diferencia);
}

/* // Funcion para verificar cuales facturas estan selecionada y actualizar
function chequeardocumentos() {
	var total_pago			=	document.getElementById("total_pago").value;
	var diferencia			=	document.getElementById("diferencia").value;
	var montopago			=	document.getElementById("montopago").value;
	
	//var	chequeado			= 	0;
	//Se buscan todos los documento marcados y se limpian
	$("input:checkbox:checked").each(function() {
		//alert($(this).val());
		// Se debe buscar el documento para verificar si tiene un abono
		var abono 		= 0;
		var pendiente 	= 0;
		desmarcado($(this).val(),abono,pendiente,'Pendiente','red');
		this.checked	= false
		console.log('valor: '+$(this).val()+' y this: '+this);
		//chequeado = 1;
	});
	total_pago 	= 	0;
	diferencia 	= 	numero(montopago);
	total_pago 	=	number_format(total_pago,2);
	diferencia 	= 	number_format(diferencia,2);
	$("#total_pago").val(total_pago);
	$("#diferencia").val(diferencia);
} */

function change_checkbox(id,el){
	var monto1				=	document.getElementsByName("montodd[]");
	var abono1				=	document.getElementsByName("abono[]");
	var pendiente1		=	document.getElementsByName("pendiente[]");
	var tasa_dollar1	=	document.getElementsByName("tasa_dollar[]");
	var abono11				=	document.getElementsByName("abono1[]");
	var pendiente11		=	document.getElementsByName("pendiente1[]");
	var total_pago		=	document.getElementById("total_pago").value;
	var total_pagob		=	document.getElementById("total_pagob").value;
	var diferencia		=	document.getElementById("diferencia").value;
	var montopago			=	document.getElementById("montopago").value;
	var montof 				= monto1[id].value;
	var totalf				=	0;
	var abono					= 0;
	var pendiente			=	0;

	if (total_pago==""){
		total_pago 	= 	0;
	}
	// Se verifica si la variable seleccion de documento no esta definida y se le asigna un valor
	if (typeof seleccion === 'undefined') {
		seleccion = 'si';
	}
	// Se verifica si la variable seleccion de documento no esta definida y se le asigna un valor
	if (typeof idparcial === 'undefined') {
		idparcial = -1;
	}
	/* Convertir a numerico para hacer los calculo*/
	total_pago 			= 	numero(total_pago);
	diferencia 			= 	numero(diferencia);
	montopago 			= 	numero(montopago);
	montof					=		numero(montof);
	abono 					= 	numero(abono1[id].value);
	pendiente 			= 	numero(pendiente1[id].value);
	tasa_dollar			= 	(tasa_dollar1[id].value)*1;
	totalf 					= 	montof;
	console.log('Antes tp: '+total_pago+' dif: '+diferencia+' montof: '+montof);
	if (el.checked){
		console.log('montopago: '+montopago+' dif: '+diferencia+' montof: '+montof);
		if ((montopago>0)&&(diferencia>0)){
			abonoid				= 0;
			pendienteid		= 0;
			estado 				= 'Pagada'
			if (abono>0) {
				if (montof - abono>0) {
					pendiente 			= montof - abono;
					totalf 					= abono;
					estado					= 'Parcial'
				} else {
					pendiente 			= 0;
					abono 					= 0;
					estado					= 'Pagada'
				}
			} else {
				if (diferencia>=montof){
					abono 					= 0;
					pendiente 			= 0;
				}else{
					pendiente 			= montof - diferencia;
					abono			 			= montof - pendiente;
					totalf 					= abono;
					estado					= 'Parcial'	
				}
			}

			marcado(id,abono,pendiente,estado,'blue');
			total_pago 	= total_pago + totalf;
			total_pagob = (total_pago*tasa_dollar);
			console.log('total_pago: '+total_pago+' total_pagob: '+total_pagob+' tasa_dollar: '+tasa_dollar);
		}else{
			if ((total_pago>=montopago)&&(montopago>0)){
				bootbox.alert("Ya excedio el monto de pago y no puede seleccionar mas documentos");
				el.checked		=	false;
			}else{
				bootbox.alert("Debe Colocar el Monto de Pago");
				el.checked		=	false;
			}
		}
	}else{
		if (abono>0){
			totalf = abono;
		}  
		abono 			= 0;
		pendiente 		= 0;
		desmarcado(id,abono,pendiente,'Pendiente','red');
		total_pago 	= total_pago - totalf;
		total_pagob = (total_pago*tasa_dollar);
		console.log('total_pago: '+total_pago+' total_pagob: '+total_pago*tasa_dollar+' tasa_dollar: '+tasa_dollar);
	}
	diferencia		=	montopago - total_pago;
	if (diferencia<0){
		$("#montopagod").val(0);
		document.getElementById('diferencia').style.color	=	'red';
		document.getElementById('montopagod').style.color	=	'blue';
	}else{
		document.getElementById('diferencia').style.color	=	'blue';
		document.getElementById('montopagod').style.color	=	'red';
	}
	console.log('Despues tp: '+total_pago+' dif: '+diferencia+' montof: '+montof);
	total_pago 		= 	number_format(total_pago,2);
	total_pagob 	= 	number_format(total_pagob,2);
	diferencia 		= 	number_format(diferencia,2);
	console.log('Despues formato tp: '+total_pago+' dif: '+diferencia+' montof: '+montof);
	$("#total_pago").val(total_pago);
	$("#total_pagob").val(total_pagob);
	$("#diferencia").val(diferencia);
	$("#montopagod").val(diferencia);
}


function marcado(id,abonoo,pendientee,estadoo,colorr) {
	var num_comprobante		=	document.getElementsByName("num_comprobante[]");
	var tipo_comprobante	=	document.getElementsByName("tipo_comprobante[]");
	var estado				=	document.getElementsByName("estado[]");
	var abono				=	document.getElementsByName("abono[]");
	var pendiente			=	document.getElementsByName("pendiente[]");

	num_comprobante[id].style.textDecoration	=	'line-through';
	tipo_comprobante[id].style.textDecoration	=	'line-through';
	abono[id].value								=	number_format(abonoo,2);
	pendiente[id].value							=	number_format(pendientee,2);
	estado[id].value							=	estadoo;
	estado[id].style.color						=	colorr;
}

function desmarcado(id,abonoo,pendientee,estadoo,colorr) {
	var num_comprobante		=	document.getElementsByName("num_comprobante[]");
	var tipo_comprobante	=	document.getElementsByName("tipo_comprobante[]");
	var estado				=	document.getElementsByName("estado[]");
	var abono				=	document.getElementsByName("abono[]");
	var pendiente			=	document.getElementsByName("pendiente[]");

	num_comprobante[id].style.textDecoration	=	'';
	tipo_comprobante[id].style.textDecoration	=	'';
	abono[id].value								=	number_format(abonoo,2);
	pendiente[id].value							=	number_format(pendientee,2);
	estado[id].value							=	estadoo;
	estado[id].style.color						=	colorr;
}




init();