var tabla;
var indice = 0;

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

   $("#formulario").on("submit",function(e){
   	guardaryeditar(e);
   });

   	/*Se actualiza el pago */   
	$("#formulariomc").on("submit",function(e){
		/* Evitamos el envío real del formulario */
		e.preventDefault(); 
		//	alert('Vamos aguardar')  
		$('#myModalC').modal('hide');
		modificarValoresAnumerico();
		guardarpago();
	});

   $.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=selectCuentabanco", function(c){
		$("#idbancocuenta").html(c);
		$('#idbancocuenta').selectpicker('refresh');
   });

   
  $("#idbancocuenta").change(function(){
		cambiodecuenta();
		
	});

  //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));
	});


	
	//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));
		
	});

	$("#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));
			calculocambiotasa();
					
			$("#montopago").val(number_format(montopagob/valor,2));
			let montopago 		= numero($("#montopago").val());
			$("#montopagob").val(number_format(montopago*valor,2));
			abono[0].value	=$("#montopago").val();
			abonob[0].value	=$("#montopagob").val();
			pendiente[0].value	= number_format((numero(montod[0].value) - numero(abono[0].value)),2)
			pendienteb[0].value	= number_format((numero(montodb[0].value) - numero(abonob[0].value)),2)
		
	});

  $('#tbdocumentos1').on('keyup paste', ':input', function() { 
		var value 	= $(this).val(); //obtiene el valor actual del input.
		var name 		= $(this).prop('name');
		let tasad 	= numero($("#tasacambioventa").val());
		let valueb	= 0;
		console.log("indice :" +indice);

	 	if (value.length > 0){ //si el campo no esta vacio
			$(this).val(decimal(value));
			if (name=='abono[]'){
				calculod(numero($(this).val()),indice);
			}else{
				calculob(numero($(this).val()),indice);
			}
			
		}
 });

}

//funcion limpiar
function limpiar(){
	$("#nombre").val("");
}

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

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

function posicion(pos) {
	indice = pos;
	console.log("indice :" +indice);
}


function calculod(valor,pos) {
	let abono				=	document.getElementsByName("abono[]");
	let abonob			=	document.getElementsByName("abonob[]");
	let pendiente		=	document.getElementsByName("pendiente[]");
	let pendienteb	=	document.getElementsByName("pendienteb[]");
	let montod			=	document.getElementsByName("montod[]");
	let montodb			=	document.getElementsByName("montodb[]");
	let tasad 			= numero($("#tasacambioventa").val());

	abonob1					=	abonob[pos];
	pendiente1			=	pendiente[pos];
	pendienteb1			=	pendienteb[pos];
	montod1					=	montod[pos];

	abonob1.value			= number_format(valor*tasad,2);
	pendiente1.value	= number_format(numero(montod1.value)-valor,2);
	pendienteb1.value	= number_format((numero(montod1.value)-valor)*tasad,2)
	
	let montot = 0;
	for (var i = 0; i < abono.length; i++) {
		let monto	=	abono[i];
		montot 		= montot + numero(monto.value);
	}
	
	$("#montopago").val(number_format(montot,2));
	$("#montopagob").val(number_format(montot*tasad,2));
  
}

function calculob(valor,pos) {
	let abono				=	document.getElementsByName("abono[]");
	let abonob			=	document.getElementsByName("abonob[]");
	let pendiente		=	document.getElementsByName("pendiente[]");
	let pendienteb	=	document.getElementsByName("pendienteb[]");
	let montod			=	document.getElementsByName("montod[]");
	let montodb			=	document.getElementsByName("montodb[]");
	let tasad 			= numero($("#tasacambioventa").val());

	abono1					=	abono[pos];
	pendiente1			=	pendiente[pos];
	pendienteb1			=	pendienteb[pos];
	montodb1				=	montodb[pos];
	

	abono1.value			= number_format(valor/tasad,2);
	pendiente1.value	= number_format((numero(montodb1.value)-valor)/tasad,2);
	pendienteb1.value	= number_format((numero(montodb1.value)-valor),2)
	
	let montot = 0;
	for (var i = 0; i < abono.length; i++) {
		let monto	=	abono[i];
		montot 		= montot + numero(monto.value);
	}
	
	$("#montopago").val(number_format(montot,2));
	$("#montopagob").val(number_format(montot*tasad,2));
  
}


//funcion listar
function listar(){
	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/movimientobancoControlador.php?op=listarpago',
			type: "get",
			dataType : "json",
			error:function(e){
				console.log(e.responseText);
			}
		},
		"drawCallback":function(){
			var api 	= this.api();
			//var data1	= api.column(2).data();
			var data2	= api.column(3).data();
			var data3	= api.column(4).data();
		//	var total1	=	0;
			var total2	=	0;
			var total3	=	0;

			for (var i = 0; i < data2.length; i++) {
      //	total1 	= total1+numero(data1[i]);
				total2 	= total2+numero(data2[i]);
				total3 	= total3+numero(data3[i]);
				
      }
			//total1		= number_format(total1*1,2);
			total2		= number_format(total2*1,2);
			total3		= number_format(total3*1,2);
			$(api.column(0).footer()).html('Total:');
			//$(api.column(2).footer()).html(total1);
			$(api.column(3).footer()).html(total2);
			$(api.column(4).footer()).html(total3);
			
	  	},
		"bDestroy":true,
		"iDisplayLength":-1,//paginacion
		"order":[[0,"desc"]]//ordenar (columna, orden)
	}).DataTable();
}

function cambiodecuenta() {
	//$("#montopago").val("0,00");
	//$("#montopagob").val("0,00");
	let valor = $("#idbancocuenta").val().split("-");
	let montopago 	= document.getElementById("montopago");
	let montopagob 	= document.getElementById("montopagob");
	let abono						=	document.getElementsByName("abono[]");
	let abonob					=	document.getElementsByName("abonob[]");
	montopagob.style.backgroundColor = "#a9aab0";
	montopago.style.backgroundColor = "#a9aab0";
	
  //document.getElementById('diferencia').style.color	=	'red';
  //num_comprobante[id].style.textDecoration	=	'line-through';
  console.log('valor[1]: '+valor[1]);
	if (valor[1]=='Dollar'){
		$("#montopago").attr("readonly", false); 
		montopago.style.backgroundColor = "#bdf59a";
		$("#montopagob").attr("readonly", true);
		montopagob.style.backgroundColor = "#dfe0e6";
		for (var i = 0; i < abono.length; i++) {
			abono[i].style.backgroundColor = "#bdf59a";
			abonob[i].style.backgroundColor = "#dfe0e6";
			abono[i].readOnly = false;
			abonob[i].readOnly = true;
		}
	}else{
		$("#montopagob").attr("readonly", false); 
		montopagob.style.backgroundColor = "#bdf59a";
		$("#montopago").attr("readonly", true);
		montopago.style.backgroundColor = "#dfe0e6";
		for (var i = 0; i < abono.length; i++) {
			abono[i].style.backgroundColor = "#dfe0e6";
			abonob[i].style.backgroundColor = "#bdf59a";
			abono[i].readOnly = true;
			abonob[i].readOnly = false;
		}
	}
	//console.log('valor[0] :'+valor[0]);
	//console.log('valor[1] :'+valor[1]);
}

function mostrar(idbancocuenta){
	$.post("controladores/movimientobancoControlador.php?op=mostrar",{idbancocuenta : idbancocuenta},
		function(data,status)
		{
			data=JSON.parse(data);
			mostrarform(true);

			$("#nombre").val(data.nombre);
		})
		$.post("controladores/movimientobancoControlador.php?op=listarDetalle&id="+idbancocuenta,function(r){
			$("#detalles").html(r);
		});
}

function mostrarc(idmovimiento){
	//bootbox.alert('mostar idmoviento '+idmovimiento);
	tabla1=$('#tbdocumentos').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: [

		],
		"ajax":
		{
			url:'controladores/movimientobancoControlador.php?op=listarmovimientocobro',
			method: 'get',
			data: {
				idmovimiento : idmovimiento
			},
			dataType : "json",
			error:function(e){
				console.log(e.responseText);
			}
		},
		"drawCallback":function(){
			var api 	= this.api();
			var data1	= api.column(2).data();
			var data2	= api.column(3).data();
			var data3	= api.column(4).data();
			var total1	=	0;
			var total2	=	0;
			var total3	=	0;

			for (var i = 0; i < data1.length; i++) {
      	total1 	= total1+numero(data1[i]);
				total2 	= total2+numero(data2[i]);
				total3 	= total3+numero(data3[i]);
				
      }
			total1		= number_format(total1*1,2);
			total2		= number_format(total2*1,2);
			total3		= number_format(total3*1,2);
			$(api.column(0).footer()).html('Total:');
			$(api.column(2).footer()).html(total1);
			$(api.column(3).footer()).html(total2);
			$(api.column(4).footer()).html(total3);
			
	  	},
		"bDestroy":true,
		"iDisplayLength":-1,//paginacion
		"order":[[0,"desc"]]//ordenar (columna, orden)
	}).DataTable();
	$('#myModalM').modal('show');
}

function mostrarp(idmovimiento){
	//bootbox.alert('mostar idmoviento '+idmovimiento);
  console.log('idpago: '+idmovimiento);
	tabla1=$('#tbdocumentos').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
		responsive: true,
		buttons: [

		],
		"ajax":
		{
			url:'controladores/movimientobancoControlador.php?op=listarmovimientopago',
			method: 'get',
			data: {
				idmovimiento : idmovimiento
			},
			dataType : "json",
			error:function(e){
				console.log(e.responseText);
			}
		},
		"drawCallback":function(){
			var api 	= this.api();
			var data1	= api.column(2).data();
			var data2	= api.column(3).data();
			var data3	= api.column(4).data();
			var total1	=	0;
			var total2	=	0;
			var total3	=	0;

			for (var i = 0; i < data1.length; i++) {
      	total1 	= total1+numero(data1[i]);
				total2 	= total2+numero(data2[i]);
				total3 	= total3+numero(data3[i]);
				
      }
			total1		= number_format(total1*1,2);
			total2		= number_format(total2*1,2);
			total3		= number_format(total3*1,2);
			$(api.column(0).footer()).html('Total:');
			$(api.column(2).footer()).html(total1);
			$(api.column(3).footer()).html(total2);
			$(api.column(4).footer()).html(total3);
			
	  	},
		"bDestroy":true,
		"iDisplayLength":-1,//paginacion
		"order":[[0,"desc"]]//ordenar (columna, orden)
	}).DataTable();
	$('#myModalM').modal('show');
}

function modificar(idpagoproveedor1){
  //$('#myModalC').modal('show');
  $("#idpagocliente").val(idpagoproveedor1);
	$("#idpagoproveedor").val(idpagoproveedor1);
  //console.log('idmovimiento en m: '+idpagoproveedor);
	let idpagoproveedor=idpagoproveedor1;
	$.post("controladores/pagoproveedorControlador.php?op=mostrarcv",{idpagoproveedor : idpagoproveedor},
		function(data,status)
		{
			console.log('data A: '+data);
			data=JSON.parse(data);
			//console.log('data D: '+data);
			//mostrarform(true,false);
			
			$("#idbancocuenta").val(data.idbancocuenta1);
			$("#idbancocuenta").selectpicker('refresh');
			
			$("#idformapago").val(data.idformapago);
			$("#idformapago").selectpicker('refresh');
			$("#idtipopagos").val(data.idtipopagos);
			$("#idtipopagos").selectpicker('refresh');
			$("#referencia").val(data.referencia);
			$("#montopago").val(number_format(data.total_pago,2));
			$("#montopagop").val(number_format(data.total_pago,2));
			$("#tasacambioventa").val(number_format(data.tasacambioventa,2));
     // $("#tasacambioventa").val(number_format(0,2));
			$("#idpersonap").val(data.idproveedor);
			montob = data.total_pago*data.tasacambioventa
			montob = montob.toFixed(2);
			$("#montopagob").val(number_format(montob,2));
			$("#montopagobp").val(number_format(montob,2));
			$(fecha_horap).val(data.fecha);
      tabla1=$('#tbdocumentos1').dataTable({
				"aProcessing": true,//activamos el procedimiento del datatable
				"aServerSide": true,//paginacion y filrado realizados por el server
				"bPaginate": false, //hide pagination
				"bFilter": false, //hide Search bar
				"bInfo": false, // hide showing entries
				dom: 'Bfrtip',//definimos los elementos del control de la tabla
				responsive: true,
				buttons: [
		
				],
				"ajax":
				{
					url:'controladores/pagoproveedorControlador.php?op=listarpagodetalle',
					method: 'post',
					data: {
						idpagoproveedor : idpagoproveedor
					},
					dataType : "json",
					error:function(e){
						console.log(e.responseText);
					}
				
				},
			 	"drawCallback":function(){
						cambiodecuenta();
				}, 
				"bDestroy":true,
				"iDisplayLength":-1,//paginacion
				"order":[[0,"desc"]]//ordenar (columna, orden)
			}).DataTable();
			cambiodecuenta();
			$('#myModalC').modal('show');
	});
}

function modificarValoresAnumerico(){


	let abono						=	document.getElementsByName("abono[]");
	let pendiente				=	document.getElementsByName("pendiente[]");
	
	var tasacambioventa	=	$("#tasacambioventa").val();
	var montopago				=	$("#montopago").val();
	var montopagob			=	$("#montopagob").val();
	let idbancocuenta 	= $("#idbancocuenta").val().split("-");
	
	 console.log('tasacambioventa :'+tasacambioventa);
	console.log('montopago :'+montopago);
	console.log('montopagob :'+montopagob); 
	console.log('idbancocuenta[0] :'+idbancocuenta[0]);
	console.log('idbancocuenta[1] :'+idbancocuenta[1]);

	$("#tasacambioventa").val(numero(tasacambioventa));
	$("#montopago").val(numero(montopago));
	$("#montopagob").val(numero(montopagob));
	$("#idbancocuentap").val(idbancocuenta[0]);

	console.log('tasacambioventa :'+tasacambioventa);
	console.log('$("#montopago").val() :'+$("#montopago").val());
	console.log('$("#montopagob").val() :'+$("#montopagob").val()); 

	for (var i = 0; i < abono.length; i++) {
		var abono1				=	abono[i];
		var pendiente1		=	pendiente[i];
		abono1.value			=	numero(abono1.value);
		pendiente1.value	=	numero(pendiente1.value);
	}
	

/* 	console.log('$("#tasacambioventa").val() :'+$("#tasacambioventa").val());
	console.log('$("#montopago").val() :'+	$("#montopago").val());
	console.log('$("#montopagob").val() :'+$("#montopagob").val()); */
	console.log('$("#idbancocuentap").val() :'+$("#idbancocuentap").val());
	

}

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

    success: function(datos){
      bootbox.alert(datos);
      mostrarform(false,false);
      listar();
      limpiar();
    //	actualizar();
  
    }
  }); 


}

//funcion para Anular una factura
function anularp(idpagoproveedora){
/* 	$("#idpagocliente").val(idpagoproveedor1);
	$("#idpagoproveedor").val(idpagoproveedor1); */
  console.log('idpagoproveedora: '+idpagoproveedora);
//	let idpagoproveedor=idpagoproveedor1;
	bootbox.confirm("¿Esta seguro de eliminar este pago?", function(result){
		if (result) {
		//	$.post("controladores/pagoclienteControlador.php?op=anular", {idpagocliente : idpagocliente}, function(e){
				$.post("controladores/pagoproveedorControlador.php?op=eliminarp", {idpagoproveedora : idpagoproveedora}, function(e){
				bootbox.alert(e);
				tabla.ajax.reload();
			});
		}
	})
}


init();