
if(localStorage.getItem("capturarRango") != null){

	$("#daterange-btn-compras span").html(localStorage.getItem("capturarRango"));

}else {
	$("daterange-btn-compras span").html('<i class="fa fa-calendar"></i> Rango de fecha')
}


$('#daterange-btn-compras').daterangepicker(
	{
	  ranges   : {
		'Hoy'       : [moment(), moment()],
		'Ayer'   : [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
		'Últimos 7 días' : [moment().subtract(6, 'days'), moment()],
		'Últimos 30 días': [moment().subtract(29, 'days'), moment()],
		'Este mes'  : [moment().startOf('month'), moment().endOf('month')],
		'Último mes'  : [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
	  },
	  startDate: moment(),
	  endDate  : moment(),

	  locale : {
		  daysOfWeek: ['Do','Lu','Ma', 'Mi', 'Ju', 'Vi','Sa'],
		  monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre']
	  }
	},
	function (start, end) {
	  $('#daterange-btn-compras span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
  
	  var fechaInicial = start.format('YYYY-MM-DD');
	  
	  console.log("fechaInicial", fechaInicial);
  
	  var fechaFinal = end.format('YYYY-MM-DD');
  
	  var capturarRango = $("#daterange-btn-compras span").html();
	 
		 localStorage.setItem("capturarRango", capturarRango);
		 
		 
  
		 window.location = "index.php?ruta=compras&fechaInicial="+fechaInicial+"&fechaFinal="+fechaFinal;
  
	}
  
  )

  $('.ventasCompras').DataTable({
    "autoWidth": false,
    "stateSave":  true,
	"deferRender":true,
    "retrieve":true,
    "processing": false,
    "sScrollY": "70vh",
    "scrollCollapse":true,
    "paging":false,
    "colReorder": true,
    "language": {

            "decimal": "",
            "sEmptyTable": "No hay información",
            "sInfo": "Mostrando _START_ a _END_ de _TOTAL_ Entradas",
            "sInfoEmpty": "Mostrando 0 to 0 of 0 Entradas",
            "sInfoFiltered": "(Filtrado de _MAX_ total entradas)",
            "sInfoPostFix": "",
            "sInfoThousands": ",",
            "sLengthMenu": "Mostrar _MENU_ Entradas",
            "sLoadingRecords": "Cargando...",
            "sProcessing": "Procesando...",
            "sSearch": "Buscar:",
            "sZeroRecords": "Sin resultados encontrados",
            "oPaginate": {
                "sFirst": "Primero",
                "sLast": "Ultimo",
                "sNext": "Siguiente",
                "sPrevious": "Anterior"
            },
            "oAria": {
                "sSortAscending": ": Activar para ordenar la columna de manera ascendete",
                "sSortDescending": ": Activar para ordenar la columna de manera descendete",
            }
        },
		"drawCallback": function() {
			var api = this.api();
			$(api.column(9).footer()).html(
				'TOTAL: S/. '+Math.round(api.column(9, {page: 'current'}).data().sum()*100)/100
			)
			
			
		},
        "dom": "Bfrtilp",
                "buttons": [
                    {
                        "extend": "pdfHtml5",
                        "download": "open",
                        "text": "<i class='fas fa-file-pdf'></i>",
                        "titleAttr" : "Exportar a pdf",
                        "className": 'btn btn-danger',
                        "filename" : function() {
                            return "Reporte de Deudas"      
                          },      
                        "customize": function(doc) {
                            doc.defaultStyle.fontSize = 8; 
                            doc.defaultStyle.alignment = 'justify'
                            
                         
                        },
                         "exportOptions": {
                            "columns": ["1","2","3","4","5","7"],
                            "page": 'current'
                        },
                        "footer": true

                    },
					{
						"extend": "excel",
						"text": "<i class='fas fa-file-excel'></i>",
						"titleAttr" : "Exportar a Excel",
						"className": 'btn btn-success',
						"filename": function() {
							return "COMPRAS"      
						  },
						"exportOptions": {
							"columns": ["2","1","4","5","6","7"]
						}
					},
					{
                        "extend": "print",
                        "text": "<i class='fa fa-print'></i>",
                        "titleAttr" : "Imprimir",
                        "className": 'btn btn-info',
                        "customize": function (win) {
                            $(win.document.body)
                                .css( "font-size", "8pt" )
                            $(win.document.body).find( "table" )
                                .addClass( "compact" )
                                .css( "font-size", "8pt" );
                        }
                    }
                ]
        
});

var ventas = $('.tablaCompras').DataTable( {
    "autoWidth": false,
    "ajax": "ajax/datatable-ventas.ajax.php",
    "deferRender": true,
	"retrieve": true,
	"processing": true,
    "sScrollY": "640px",
    "scrollCollapse":true,
    "scroller":true,
    "colReorder": true,
    "stateSave":  true,
	 "language": {

			"sProcessing":     "Procesando...",
			"sLengthMenu":     "Mostrar _MENU_ registros",
			"sZeroRecords":    "No se encontraron resultados",
			"sEmptyTable":     "Ningún dato disponible en esta tabla",
			"sInfo":           "Mostrando registros del _START_ al _END_ de un total de _TOTAL_",
			"sInfoEmpty":      "Mostrando registros del 0 al 0 de un total de 0",
			"sInfoFiltered":   "(filtrado de un total de _MAX_ registros)",
			"sInfoPostFix":    "",
			"sSearch":         "Buscar:",
			"sUrl":            "",
			"sInfoThousands":  ",",
			"sLoadingRecords": "Cargando...",
			"oPaginate": {
			"sFirst":    "Primero",
			"sLast":     "Último",
			"sNext":     "Siguiente",
			"sPrevious": "Anterior"
			},
			"oAria": {
				"sSortAscending":  ": Activar para ordenar la columna de manera ascendente",
				"sSortDescending": ": Activar para ordenar la columna de manera descendente"
			}

	}

} );

setInterval( function () {
    ventas.ajax.reload();
}, 10000 );


/*=============================================
AGREGANDO PRODUCTOS A LA VENTA DESDE LA TABLA
=============================================*/
var contador = 0 ;

$(".tablaCompras tbody").on("click", "button.agregarProducto", function(){

	var idProducto = $(this).attr("idProducto"); // devuelve el valor de un atributo osea de idProducto que esta en el boton agregar producto

	$(this).removeClass("btn-primary agregarProducto");

	$(this).addClass("btn-default");

	contador++;

	console.log(contador);

	var datos = new FormData();
    datos.append("idProducto", idProducto);

     $.ajax({

     	url:"ajax/productos.ajax.php",
      	method: "POST",
      	data: datos,
      	cache: false,
      	contentType: false,
      	processData: false,
      	dataType:"json",
      	success:function(respuesta){

      	    var descripcion = respuesta["descripcion"];
          	var stock = respuesta["stock_fisico"];

			if ( $("#nuevoCambio").val() == "0"){

				swal({
					title: "Debe de elegir el tipo de cambio",
					type: "error",
					confirmButtonText: "¡Cerrar!"
				  });
  
				  $("button[idProducto='"+idProducto+"']").addClass("btn-primary agregarProducto");
  
				return;
  
			} else if ( $("#nuevoCambio").val() == "PEN"){

				var costoReal = Number(respuesta["precio_compra_promedio"]) 
				var stock = respuesta["stock_fisico"];
				
			} else {

				var costoReal = Number(respuesta["precio_compra_promedio"]);
				var stock = respuesta["stock_fisico"];
		
			
			}


			/*=============================================
          	EVITAR QUE AGREGUEN MAS ITEM
          	=============================================*/

			  if (contador >= 24){
				swal({
					title: "Llego al maximo de item",
					type: "error",
					confirmButtonText: "¡Cerrar!"
				  });
				  $("button[idProducto='"+idProducto+"']").addClass("btn-primary agregarProducto");

				  return;
			}

			var idCompra = $("#idCompra").val();

          	$(".nuevoProducto").append(

          	'<tr style="padding:5px 0px">'+

			  '<!-- Descripción del producto -->'+
	          
	          '<td class="col-5" style="padding-right:0px">'+
	          
	            '<div class="input-group">'+
	              
	              '<span class="input-group-append"><button style="width: 30px;" type="button" class="btn btn-danger btn-xs quitarProducto" idProducto="'+idProducto+'" ><i class="fa fa-times"></i></button></span>'+

	              '<input type="text" class="form-control form-control-sm nuevaDescripcionProducto" idProducto="'+idProducto+'" name="agregarProducto" value="'+descripcion+'" readonly required>'+

	            '</div>'+

	          '</td>'+

	          '<!-- Cantidad del producto -->'+

	          '<td class="col-2 ingresoCantidad">'+
	            
	             '<input type="number" class="form-control form-control-sm nuevaCantidadProducto cantidad" name="nuevaCantidadProducto" step="0.01" value="0" stock="'+stock+'"  nuevoStock="'+Number(stock+1)+'" required>'+

	          '</td>' +

	          '<!-- Costo del producto -->'+

	          '<td class="col-2 ingresoCosto" style="padding-left:0px">'+

	            '<div class="input-group">'+
	                 
	              '<input type="text" class="form-control form-control-sm nuevoCostoProducto"  name="nuevoCostoProducto" value="'+costoReal+'"  required>'+
	 
	            '</div>'+
	             
	          '</td>'+

			  
	          '<!-- Costo final del producto -->'+

	          '<td class="col-3 ingresoCostoFinal" style="padding-left:0px">'+

	            '<div class="input-group">'+
	                 
	              '<input type="text" class="form-control form-control-sm nuevoCostoFinalProducto" costoReal="" name="nuevoCostoFinalProducto" value="0" readonly required>'+
				  '<input type="hidden" class="form-control  nuevoCostoFinal"  name="nuevoCostoFinal"  value="0" >'+
				  '<input type="hidden" class="form-control  idCompra" value="'+idCompra+'">'+

	            '</div>'+
	             
	          '</td>'+


	        '</tr>') 

	        // SUMAR TOTAL DE COSTO

	        sumarTotalCostosUnitarios()

	        // AGREGAR IMPUESTO

	        agregarImpuesto1()

	        // AGRUPAR PRODUCTOS EN FORMATO JSON

	        listarProductos1()

	        // PONER FORMATO AL PRECIO DE LOS PRODUCTOS

	        $(".nuevoCostoProducto").number(true,3);
			$(".nuevoCostoFinalProducto").number(true,3);
			$(".nuevoCostoFinal").number(true,2);

      	}

     })

});



/*=============================================
SUMAR TODOS LOS COSTOS
=============================================*/

function sumarTotalCostosUnitarios(){

	var precioItem = $(".nuevoCostoFinalProducto");
	var arraySumaPrecio = [];  

	for(var i = 0; i < precioItem.length; i++){

		 arraySumaPrecio.push(Number($(precioItem[i]).val()));
		 
	}

	function sumaArrayPrecios(total, numero){

		return total + numero;

	}

	var sumaTotalPrecio = arraySumaPrecio.reduce(sumaArrayPrecios);
	
	$("#nuevoPrecioNeto").val(sumaTotalPrecio);
	$("#totalVenta").val(sumaTotalPrecio);
	$("#nuevoTotalVenta").attr("total",sumaTotalPrecio);


}

/*=============================================
FUNCIÓN AGREGAR IMPUESTO
=============================================*/

function agregarImpuesto1(){

	var impuesto = 1.18;

	var precioTotal = $("#nuevoTotalVenta").attr("total");

	var subtotal = Number(precioTotal / impuesto); 
	

	var igv = Number(precioTotal) - Number(subtotal) ;
	
	$("#nuevoTotalVenta").val(igv);
	$("#igv").val(igv);

	$("#nuevoPrecioImpuesto").val(subtotal);
	$("#subtotal").val(subtotal);

	$("#totalVenta").val(precioTotal);
	$("#nuevoPrecioNeto").val(precioTotal);

}

/*=============================================
CUANDO CARGUE LA TABLA CADA VEZ QUE NAVEGUE EN ELLA
=============================================*/

$(".tablaCompras").on("draw.dt", function(){

	if(localStorage.getItem("quitarProducto") != null){

		var listaIdProductos = JSON.parse(localStorage.getItem("quitarProducto"));

		for(var i = 0; i < listaIdProductos.length; i++){

			$("button.recuperarBoton[idProducto='"+listaIdProductos[i]["idProducto"]+"']").removeClass('btn-default');
			$("button.recuperarBoton[idProducto='"+listaIdProductos[i]["idProducto"]+"']").addClass('btn-primary agregarProducto');

		}


	}


})

/*=============================================
QUITAR PRODUCTOS DE LA VENTA Y RECUPERAR BOTÓN
=============================================*/

var idQuitarProducto = [];

localStorage.removeItem("quitarProducto");

$(".formularioCompra").on("click", "button.quitarProducto", function(){

	$(this).parent().parent().parent().parent().remove();

	var idProducto = $(this).attr("idProducto");

	contador = contador-1;

	/*=============================================
	ALMACENAR EN EL LOCALSTORAGE EL ID DEL PRODUCTO A QUITAR
	=============================================*/

	if(localStorage.getItem("quitarProducto") == null){

		idQuitarProducto = [];
	
	}else{

		idQuitarProducto.concat(localStorage.getItem("quitarProducto"))

	}

	idQuitarProducto.push({"idProducto":idProducto});

	localStorage.setItem("quitarProducto", JSON.stringify(idQuitarProducto));

	$("button.recuperarBoton[idProducto='"+idProducto+"']").removeClass('btn-default');

	$("button.recuperarBoton[idProducto='"+idProducto+"']").addClass('btn-primary agregarProducto');

	if($(".nuevoProducto").children().length < 0){

		$("#nuevoPrecioImpuesto").val(0);
		$("#nuevoTotalVenta").val(0);
		$("#totalVenta").val(0);
		$("#totalCosto").val(0);
		$("#nuevoPrecioNeto").val(0);
		$("#nuevoPrecioNeto").attr("total",0);

	}else{

		// SUMAR TOTAL DE PRECIOS

    	sumarTotalCostosUnitarios()


    	// AGREGAR IMPUESTO
	        
        agregarImpuesto1()

        // AGRUPAR PRODUCTOS EN FORMATO JSON

        listarProductos1()

	}

})
/*=============================================
FORMATO AL PRECIO FINAL
=============================================*/

$("#nuevoTotalVenta").number(true, 2);
$("#nuevoPrecioImpuesto").number(true, 2);
$("#nuevoPrecioNeto").number(true, 2);

$(".ventasCompras").on("click", ".btnImprimirCompra", function(){

	var codigoCompra = $(this).attr("NumCompra");

	window.open("extenciones/TCPDF/pdf/notasalida.php?codigo="+codigoCompra,"_blank");

})

/*=============================================
LISTAR TODOS LOS PRODUCTOS
=============================================*/

function listarProductos1(){

	var listaProductos = [];

	var descripcion = $(".nuevaDescripcionProducto");

	var cantidad = $(".nuevaCantidadProducto");

	var costo = $(".nuevoCostoProducto");

	var costoFinal2 = $(".nuevoCostoFinalProducto");

	var idCompra = $(".idCompra");

	for(var i = 0; i < descripcion.length; i++){

		listaProductos.push({ "id" : $(descripcion[i]).attr("idProducto"), 
							  "descripcion" : $(descripcion[i]).val(),
							  "cantidad" : $(cantidad[i]).val(),
							  "stock" : $(cantidad[i]).attr("nuevoStock"),
							  "costo" : $(costo[i]).val(),
							  "total" : $(costoFinal2[i]).val(),
							  "codigo" : $(idCompra[i]).val()})

	}

	$("#listaProductos").val(JSON.stringify(listaProductos)); 

}


$('.productos').DataTable( {
    "autoWidth": false,
	"bFilter": false,
    "sScrollY": "45vh",
	"EmptyTable": false, 
	"bInfo": false,
    "scrollCollapse":true,
    "paging":false,
    "stateSave":  true,
	"language": {
			"sLengthMenu":     "Mostrar _MENU_ registros",
			"sEmptyTable": 'Productos',
			},
	"columnDefs":[{
				"targets": "_all",
				"sortable": false
			}]

	

} );


/*=============================================
FUNCIÓN PARA DESACTIVAR LOS BOTONES AGREGAR CUANDO EL PRODUCTO YA HABÍA SIDO SELECCIONADO EN LA CARPETA
=============================================*/

function quitarAgregarProducto(){

	//Capturamos todos los id de productos que fueron elegidos en la venta
	var idProductos = $(".quitarProducto");

	//Capturamos todos los botones de agregar que aparecen en la tabla
	var botonesTabla = $(".tablaCompras tbody button.agregarProducto");

	//Recorremos en un ciclo para obtener los diferentes idProductos que fueron agregados a la venta
	for(var i = 0; i < idProductos.length; i++){

		//Capturamos los Id de los productos agregados a la venta
		var boton = $(idProductos[i]).attr("idProducto");
		
		//Hacemos un recorrido por la tabla que aparece para desactivar los botones de agregar
		for(var j = 0; j < botonesTabla.length; j ++){

			if($(botonesTabla[j]).attr("idProducto") == boton){

				$(botonesTabla[j]).removeClass("btn-primary agregarProducto");
				$(botonesTabla[j]).addClass("btn-default");

			}
		}

	}
	
}

/*=============================================
CADA VEZ QUE CARGUE LA TABLA CUANDO NAVEGAMOS EN ELLA EJECUTAR LA FUNCIÓN:
=============================================*/

$('.tablaCompras').on( 'draw.dt', function(){

	quitarAgregarProducto();

})



/*=============================================
MODIFICAR LA CANTIDAD
=============================================*/

$(".formularioCompra").on("change", "input.nuevaCantidadProducto", function(){

	var precio = $(this).parent().parent().children(".ingresoCosto").children().children(".nuevoCostoProducto");
	
	var preciofinal1 = $(this).parent().parent().children(".ingresoCostoFinal").children().children(".nuevoCostoFinalProducto");

	var precioFinal = $(this).val() * precio.val(); 

	preciofinal1.val(precioFinal);


	var nuevoStock = Number($(this).attr("stock")) + Number($(this).val());

	$(this).attr("nuevoStock", nuevoStock);


	if(Number($(this).val()) < 0){

		/*=============================================
		SI LA CANTIDAD ES SUPERIOR A 0
		=============================================*/

		$(this).val(1);

		var precioFinal = $(this).val() * precio.val();

		preciofinal1.val(precioFinal);

		sumarTotalCostosUnitarios();

		$("#nuevoPrecioImpuesto").val(0);
		$("#nuevoTotalVenta").val(0);
		$("#totalVenta").val(0);
		$("#nuevoPrecioNeto").val(0);

		swal({
	      title: "La cantidad debe ser mayor cero",
	      type: "error",
	      confirmButtonText: "¡Cerrar!"
	    });

	    return;

	}


	// SUMAR TOTAL DE PRECIOS

	sumarTotalCostosUnitarios()

	// AGREGAR IMPUESTO
	        
    agregarImpuesto1()

    // AGRUPAR PRODUCTOS EN FORMATO JSON

    listarProductos1()

})

/*=============================================
MODIFICAR EL COSTO
=============================================*/

$(".formularioCompra").on("change", "input.nuevoCostoProducto", function(){

	var cantidad1 = $(this).parent().parent().parent().children(".ingresoCantidad").children(".nuevaCantidadProducto");

	var preciofinal1 = $(this).parent().parent().parent().children(".ingresoCostoFinal").children().children(".nuevoCostoFinalProducto");

	var precioFinal = cantidad1.val() * $(this).val();
	
	preciofinal1.val(precioFinal);

	// SUMAR TOTAL DE PRECIOS

	sumarTotalCostosUnitarios()

	// AGREGAR IMPUESTO
	        
    agregarImpuesto1()

    // AGRUPAR PRODUCTOS EN FORMATO JSON

    listarProductos1()

})





/*=============================================
CANCELAR RANGO DE FECHAS
=============================================*/

$(".daterangepicker.opensleft .range_inputs .cancelBtn").on("click", function(){

	localStorage.removeItem("capturarRango");
	localStorage.clear();
	window.location = "compras";
})

/*=============================================
CAPTURAR HOY
=============================================*/

$(".daterangepicker.opensleft .ranges li").on("click", function(){

	var textoHoy = $(this).attr("data-range-key");

	if(textoHoy == "Hoy"){

		var d = new Date();
		
		var dia = d.getDate();
		var mes = d.getMonth()+1;
		var año = d.getFullYear();

		if(mes < 10){

			var fechaInicial = año+"-0"+mes+"-"+dia;
			var fechaFinal = año+"-0"+mes+"-"+dia;

		}else if(dia < 10){

			var fechaInicial = año+"-"+mes+"-0"+dia;
			var fechaFinal = año+"-"+mes+"-0"+dia;

		}else if(mes < 10 && dia < 10){

			var fechaInicial = año+"-0"+mes+"-0"+dia;
			var fechaFinal = año+"-0"+mes+"-0"+dia;

		}else{

			var fechaInicial = año+"-"+mes+"-"+dia;
	    	var fechaFinal = año+"-"+mes+"-"+dia;

		}	

    	localStorage.setItem("capturarRango", "Hoy");

    	window.location = "index.php?ruta=compras&fechaInicial="+fechaInicial+"&fechaFinal="+fechaFinal;

	}

})

/*=============================================
BOTON EDITAR COMPRA
=============================================*/
$(".ventasCompras").on("click", ".btnEditarCompra", function(){

	var idCompra = $(this).attr("idCompra");

	window.location = "index.php?ruta=editar-compra&idCompra="+idCompra;


})

$(".tablaCompras tbody").on("click", "button.btnVerImagen", function(){

	var idProducto = $(this).attr("idProducto");
	var datos = new FormData();
    datos.append("idProducto", idProducto);

	$.ajax({

		url:"ajax/productos.ajax.php",
		 method: "POST",
		 data: datos,
		 cache: false,
		 contentType: false,
		 processData: false,
		 dataType:"json",
		 success:function(respuesta){

			$(".verImagen").attr("src", respuesta["imagen"]);


		 }

	})

});

/*=============================================
BORRAR VENTA
=============================================*/
$(".ventasCompras").on("click", ".btnEliminarCompra", function(){

	var idCompra = $(this).attr("idCompra");

  
	 swal({
        title: '¿Está seguro de anular la compra?',
        text: "¡Esta acción no se puede deshacer!",
        type: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        cancelButtonText: 'Cancelar',
        confirmButtonText: 'Sí, anular compra'
    }).then(function(result){
        if(result.value){
			  window.location = "index.php?ruta=compras&idCompra="+idCompra;
		  }
  
	})
  
  })