/*=============================================
CARGAR LA TABLA DINÁMICA DE VENTAS
=============================================*/
/* data table



/* $.ajax({
    url: "ajax/datatable-listaventas.ajax.php",
    success:function(respuesta){
        console.log("respuesta", respuesta);
    }
})
*/

var perfilOculto1 = $("#perfilOculto").val();

var ventass = $('.ventastable').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(5).footer()).html(
				'TOTAL: S/. '+Math.round(api.column(5, {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 ventas"      
                          },      
                        "customize": function(doc) {
                            doc.defaultStyle.fontSize = 8; 
                            doc.defaultStyle.alignment = 'justify'
                            
                         
                        },
                         "exportOptions": {
                            "columns": ["1", "7" ,"2","3","5","6"],
                            "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 "Ventas"      
						  },
						"exportOptions": {
							"columns": ["1","2","3","4","5","6","7","8"]
						}
					},
					{
                        "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 utilidad = $('.utilidad').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(5).footer()).html(
				'TOTAL: S/. '+Math.round(api.column(5, {page: 'current'}).data().sum()*100)/100
			)

			$(api.column(6).footer()).html(
				'TOTAL: S/. '+Math.round(api.column(6, {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","6"],
                            "page": 'current'
                        },
                        "footer": true

                    },
					{
                        "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" );
                        }
                    }
                ]
        
});

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

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

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

// $.ajax({

// 	url: "ajax/datatable-ventas.ajax.php",
// 	success:function(respuesta){
		
// 		console.log("respuesta", respuesta);

// 	}

// })

var ventas = $('.tablaVentas').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 );

//Datemask dd/mm/yyyy
$('#datemask').inputmask('dd/mm/yyyy', { 'placeholder': 'dd/mm/yyyy' })
//Datemask2 mm/dd/yyyy
$('#datemask2').inputmask('mm/dd/yyyy', { 'placeholder': 'mm/dd/yyyy' })
//Money Euro
$('[data-mask]').inputmask()


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

$(".tablaVentas 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"];
			var codigoVenta = $("#nuevaVenta").val();

			if ( $("#seleccionarMoneda").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 ( $("#seleccionarMoneda").val() == "SOLES"){

				var precio = Number(respuesta["precio_venta_sugerido"]) 
			  	var precio = Number(precio.toFixed(2)); 
			 	var costoReal = Number(respuesta["precio_compra_promedio"]);
				
			} else {

				var precio = Number(respuesta["precio_venta_sugerido"]);
			  	var precio = Number(precio.toFixed(2)); 
			 	var costoReal = Number(respuesta["precio_compra_promedio"]);
			
			}

			if ( $("#seleccionarCliente").val() == ""){

				swal({
					title: "Debe seleccionar primero al Cliente",
					type: "error",
					confirmButtonText: "¡Cerrar!"
				  });
  
				  $("button[idProducto='"+idProducto+"']").addClass("btn-primary agregarProducto");
  
				return;
			}

		
          	/*=============================================
          	EVITAR AGREGAR PRODUTO CUANDO EL STOCK ESTÁ EN CERO
          	=============================================*/

          	if(stock == 0){

				contador= contador-1;
      			swal({
			      title: "No hay stock disponible",
			      type: "error",
			      confirmButtonText: "¡Cerrar!"
			    });

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

			    return;

          	}

			/*=============================================
          	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;
			}

          	$(".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>' +

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

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

	            '<div class="input-group">'+
	                 
	              '<input type="number" class="form-control form-control-sm nuevoPrecioProducto" step="0.01" costo="'+costoReal+'" precioReal="'+precio+'" precioMayor="'+precio+'" name="nuevoPrecioProducto" value="'+precio+'"  required>'+
	 
	            '</div>'+
	             
	          '</td>'+

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

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

	            '<div class="input-group">'+
	                 
	              '<input type="text" class="form-control form-control-sm nuevoPrecioFinalProducto" precioReal="" name="nuevoPrecioFinalProducto" value="0" readonly required>'+
				  '<input type="hidden" class="form-control  nuevoCostoFinal"  name="nuevoCostoFinal"  value="0" >'+
				  '<input type="hidden" class="form-control  codigoventa" value="'+codigoVenta+'">'+

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


	        '</tr>') 

	        // SUMAR TOTAL DE PRECIOS

	        sumarTotalPrecios()

			// SUMAR TOTAL DE COSTOS
			sumarTotalCostos()

			Utilidad()

	        // AGREGAR IMPUESTO

	        agregarImpuesto()

	        // AGRUPAR PRODUCTOS EN FORMATO JSON

	        listarProductos()

	        // PONER FORMATO AL PRECIO DE LOS PRODUCTOS

	        $(".nuevoPrecioProducto").number(true,2);
			$(".nuevoPrecioFinalProducto").number(true,2);
			$(".nuevoCostoFinal").number(true,2);

      	}

     })

});

$('.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
			}]

	

} );

$(".tablaVentas 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"]);


		 }

	})

});

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

$(".tablaVentas").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");

$(".formularioVenta").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

    	sumarTotalPrecios()

		sumarTotalCostos()
		Utilidad()

		

    	// AGREGAR IMPUESTO
	        
        agregarImpuesto()

        // AGRUPAR PRODUCTOS EN FORMATO JSON

        listarProductos()

	}

})

/*=============================================
AGREGANDO PRODUCTOS DESDE EL BOTÓN PARA DISPOSITIVOS
=============================================*/

var numProducto = 0;

$(".btnAgregarProducto").click(function(){

	numProducto ++;

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

	$.ajax({

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

			var codigoVenta = $("#nuevaVenta").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><i class="fa fa-times"></i></button></span>'+

	              '<select class="form-control form-control-sm select2 nuevaDescripcionProducto" id="producto'+numProducto+'" idProducto name="nuevaDescripcionProducto" required>'+

	              '<option>Seleccione el producto</option>'+

	              '</select>'+  

	            '</div>'+

			  '</td>'+

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

	          '<td class="col-2 ingresoCantidad">'+
	            
	             '<input type="number" class="form-control  nuevaCantidadProducto cantidad" name="nuevaCantidadProducto" step="0.1" value="0" stock nuevoStock required>'+

			  '</td>' +

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

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

	            '<div class="input-group">'+

	              '<input type="number" class="form-control nuevoPrecioProducto" step="0.01" costo="" precioReal="" precioMayor="" name="nuevoPrecioProducto" required>'+
	 
	            '</div>'+
	             
			   '</td>'+

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

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

	            '<div class="input-group">'+
	                 
	              '<input type="text" class="form-control  nuevoPrecioFinalProducto" precioReal="" name="nuevoPrecioFinalProducto" value="0" readonly required>'+
				  '<input type="hidden" class="form-control  nuevoPrecioFinalProducto" precioReal="" name="nuevoCostoFinal" value="0" readonly required>'+
				  '<input type="hidden" class="form-control  codigoventa" value="'+codigoVenta+'">'+
	 
	            '</div>'+
	             
			  '</td>'+

			'</tr>'
			);

		$(function () {
			//Initialize Select2 Elements
			$('.select2bs4').select2({
			theme: 'bootstrap4'
			})

			//Initialize Select2 Elements
			$('.select2').select2()

		})


	        // AGREGAR LOS PRODUCTOS AL SELECT 

	         respuesta.forEach(funcionForEach);

	         function funcionForEach(item, index){

	         	if(item.stock != 0){

		         	$("#producto"+numProducto).append(

						'<option idProducto="'+item.id+'" value="'+item.descripcion+'">'+item.descripcion+'</option>'
		         	)

		         }

	         }

	         // SUMAR TOTAL DE PRECIOS

    		sumarTotalPrecios()

    		// AGREGAR IMPUESTO
	        
	        agregarImpuesto()

	        // PONER FORMATO AL PRECIO DE LOS PRODUCTOS

	        $(".nuevoPrecioProducto").number(true, 2);
			$(".nuevoPrecioFinalProducto").number(true, 2);

      	}


	})

})

/*=============================================
SELECCIONAR PRODUCTO
=============================================*/

$(".formularioVenta").on("change", "select.nuevaDescripcionProducto", function(){

	var nombreProducto = $(this).val();

	var nuevaDescripcionProducto = $(this).parent().parent().parent().children().children().children(".nuevaDescripcionProducto");

	var nuevoPrecioProducto = $(this).parent().parent().parent().children(".ingresoPrecio").children().children(".nuevoPrecioProducto");

	var preciofinal1 = $(this).parent().parent().children(".ingresoPrecioFinal").children().children(".nuevoPrecioFinalProducto");

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

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


	  $.ajax({

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


          	var precio = Number(respuesta["precio_venta_sugerido"]) ;

      	    $(nuevaDescripcionProducto).attr("idProducto", respuesta["id"]);
      	    $(nuevaCantidadProducto).attr("stock", respuesta["stock_fisico"]);
      	    $(nuevaCantidadProducto).attr("nuevoStock", Number(respuesta["stock_fisico"])-1);
      	    $(nuevoPrecioProducto).val(precio);
			$(nuevoPrecioProducto).attr("precioMayor", precio);
      	    $(preciofinal1).attr("precioReal", precio);

  	      // AGRUPAR PRODUCTOS EN FORMATO JSON

	        listarProductos()

      	}

      })
})


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

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

	var precio = $(this).parent().parent().children(".ingresoPrecio").children().children(".nuevoPrecioProducto");
	
	var costo = Number(precio.attr("costo"));

	var preciofinal1 = $(this).parent().parent().children(".ingresoPrecioFinal").children().children(".nuevoPrecioFinalProducto");

	var CostoFinal = $(this).parent().parent().children(".ingresoPrecioFinal").children().children(".nuevoCostoFinal");

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

	var costoTotal = $(this).val() * costo;
	
	preciofinal1.val(precioFinal);
	CostoFinal.val(costoTotal);


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

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


	if(Number($(this).val()) > Number($(this).attr("stock"))){

		/*=============================================
		SI LA CANTIDAD ES SUPERIOR AL STOCK REGRESAR VALORES INICIALES
		=============================================*/

		$(this).val(1);

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

		preciofinal1.val(precioFinal);
		CostoFinal.val(costoTotal);

		sumarTotalPrecios();
		sumarTotalCostos();
		Utilidad();

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

		swal({
	      title: "La cantidad supera el Stock",
	      text: "¡Sólo hay "+$(this).attr("stock")+" unidades!",
	      type: "error",
	      confirmButtonText: "¡Cerrar!"
	    });

	    return;

	}


	// SUMAR TOTAL DE PRECIOS

	sumarTotalPrecios()

	sumarTotalCostos()
	Utilidad()

	

	// AGREGAR IMPUESTO
	        
    agregarImpuesto()

    // AGRUPAR PRODUCTOS EN FORMATO JSON

    listarProductos()

})

/*=============================================
MODIFICAR EL PRECIO
=============================================*/

$(".formularioVenta").on("change", "input.nuevoPrecioProducto", function(){

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

	var preciofinal1 = $(this).parent().parent().parent().children(".ingresoPrecioFinal").children().children(".nuevoPrecioFinalProducto");

	var perfil = $(this).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().children().children().children(".perfil");

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

	var mayor = Number($(this).attr("precioMayor")) - 0.50;

	console.log(mayor);

	if( Number($(this).val()) < Number(mayor) ){  // VALIDAR QURE EL VENDEDOR NO INGRESE EL PRECIO MUY BAJO
		
	 	/*=============================================
		SI EL PRECIO ES MENOR AL PRECIO POR MAYOR
		=============================================*/
		
	 	precio1 = $(this).attr("precioReal");

		cantidad1.val(1);

		$(this).val(precio1);

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

	 	preciofinal1.val(precioFinal);

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

	 	swal({
			title: "El precio venta no puede bajar al minimo",
			text: "¡EL precio minimo es "+ $(this).val()+ "!",
	 		type: "error",
	 		confirmButtonText: "¡Cerrar!"
	 	});

	 	return;

	 }


	// SUMAR TOTAL DE PRECIOS

	sumarTotalPrecios()

	Utilidad()

	// AGREGAR IMPUESTO
	        
    agregarImpuesto()

    // AGRUPAR PRODUCTOS EN FORMATO JSON

    listarProductos()

})

/*=============================================
SUMAR TODOS LOS PRECIOS
=============================================*/

function sumarTotalPrecios(){

	var precioItem = $(".nuevoPrecioFinalProducto");
	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);


}

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

function sumarTotalCostos(){

	var precioItem = $(".nuevoCostoFinal");
	var arraySumaPCosto = [];  

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

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

	function sumaArrayCostos(total, numero){

		return total + numero;

	}

	var sumaTotalCosto= arraySumaPCosto.reduce(sumaArrayCostos);
	
	
	$("#totalCosto").val(sumaTotalCosto);

}


function Utilidad(){

var utilidad = Number($("#totalVenta").val()) - Number($("#totalCosto").val()) ;

$("#Utilidad").val(utilidad);

}

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

function agregarImpuesto(){

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

}


/*=============================================
FORMATO AL PRECIO FINAL
=============================================*/

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

/*=============================================
SELECCIONAR MÉTODO DE PAGO
=============================================*/

$("#seleccionarCliente").change(function(){
	var cliente = $(this).val();
	var datos = new FormData();
    datos.append("idCliente", cliente);
		$.ajax({

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

					var estado = respuesta["estado"];

					if(estado == 1){
						
						swal({
							title: "Cliente Presenta Deuda",
							text: "¡Su deuda es de "+ + "!",
							type: "error",
							confirmButtonText: "¡Cerrar!"
						});
					}
					
				}


			})


	return;
	




})


$("#metodoPago").change(function(){

	var metodo = $(this).val();

	if(metodo == "CREDITO"){

		$(this).parent().parent().removeClass('col-xs-6');
		$(this).parent().parent().parent().parent().children('.cajasMetodoPago').html(

			'<div class="col-md-12" >'+
					   
			   '<div class="input-group">'+
					
				 '<input type="hidden" class="form-control"  required>'+
				 
			   '</div>'+

			 '</div>')

	}else{


		$(this).parent().parent().addClass('col-xs-6');

		 $(this).parent().parent().parent().parent().children('.cajasMetodoPago').html(

			'<div class="row" >'+

				'<div class="col-md-4" >'+
					'<label>FORMA DE PAGO (*):</label>'+
							
					'<div class="input-group">'+
						
							'<div class="input-group-append"><div class="input-group-text"><span class="ion ion-social-usd"></span></div></div>'+
						
							'<select class="form-control form-control-sm" id="metodoPago1" name="metodoPago1" required>'+
								'<option value="">Seleccionar Forma de Pago</option>'+
								'<option value="EFECTIVO">EFECTIVO</option>'+
								'<option value="TARJETA DEBITO">TARJETA DEBITO</option>'+   
								'<option value="TARJETA CREDITO">TARJETA CREDITO</option>'+          
							'</select>'+    
							
						
						
					'</div>'+
				'</div>'+

				
				
			'</div>')


			

	}


	

})

/*=============================================
CAMBIO EN EFECTIVO
=============================================*/
$(".formularioVenta").on("change", "input#nuevoValorEfectivo", function(){

	var efectivo = $(this).val();

	var cambio =  Number(efectivo) - Number($('#nuevoTotalVenta').val());

	var nuevoCambioEfectivo = $(this).parent().parent().parent().children('#capturarCambioEfectivo').children().children('#nuevoCambioEfectivo');

	nuevoCambioEfectivo.val(cambio);

})

/*=============================================
CAMBIO TRANSACCIÓN
=============================================*/
$(".formularioVenta").on("change", "input#nuevoCodigoTransaccion", function(){

	// Listar método en la entrada
     listarMetodos()


})


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

function listarProductos(){

	var listaProductos = [];

	var descripcion = $(".nuevaDescripcionProducto");

	var cantidad = $(".nuevaCantidadProducto");

	var precio = $(".nuevoPrecioProducto");

	var precioFinal2 = $(".nuevoPrecioFinalProducto");

	var codigo = $(".codigoventa");

	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"),
							  "precio" : $(precio[i]).val(),
							  "total" : $(precioFinal2[i]).val(),
							  "codigo" : $(codigo[i]).val()})

	}

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

}




/*=============================================
BOTON EDITAR VENTA
=============================================*/
$(".ventastable tbody").on("click", ".btnEditarVenta", function(){

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

	window.location = "index.php?ruta=editar_venta&idVenta="+idVenta;


})

/** EDITAR VENTAS PARA EL VENDEDOR */

$(".ventastable tbody").on("click", ".btnEditarVenta1", function(){

	var idVenta = $(this).attr("idVenta1");

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

	$("#montoTotal").number(true, 2);

	$.ajax({

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

			$("#codigoVenta").val(respuesta["codigo"]);
			$("#montoTotal").val(respuesta["total"]);
			$("#nuevoid").val(respuesta["id"]);
			$("#fecha").val(respuesta["fecha"]);


			var datosCliente =  new FormData();
            datosCliente.append("idCliente", respuesta["id_cliente"]);

			$.ajax({

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

					$("#nombreCliente").val(respuesta["razon_social"]);


				}
            })


		}


	})

})

/** VER LISTADO DE PRODUCTOS */

$(".ventastable tbody").on("click", ".btnVerProductos", function(){

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

	$.ajax({
        url:"ajax/venta.ajax.php",
        method: "POST",
        data: datos,
        cache: false,
        contentType: false,
        processData: false,
        dataType: "json",
        success: function(respuesta){	
			let productos = JSON.parse(respuesta["productos"]);
			for (let index = 0; index < productos.length; index++) {
			$(".listaProducto").append(
				'<tr style="padding:5px 0px">'+  
				'<!-- id-->'+				
				'<td >'+
				''+productos[index].id+''+
				'</td>'+
				'<!-- Descripcion-->'+				
				'<td >'+
					''+productos[index].descripcion+''+
				'</td>'+
				'<!-- Cantidad del producto -->'+
				'<td >'+ 
				   ''+productos[index].cantidad+''+
				'</td>' +
				'<!-- Precio del producto -->'+
				'<td >'+					   
					''+productos[index].precio+''+	   
				'</td>'+
				'<!-- Precio final del producto -->'+
				'<td >'+
					''+productos[index].total+''+
				'</td>'+
			  '</tr>') 
			}
		}
	})

})

/*=============================================
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 = $(".tablaVentas 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:
=============================================*/

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

	quitarAgregarProducto();

})



/*=============================================
BORRAR VENTA
=============================================*/
$(".ventastable").on("click", ".btnEliminarVenta", function(){

  var idVenta = $(this).attr("idVenta");
  var codigo = $(this).attr("codigo");

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


})

/*=============================================
IMPRIMIR FACTURA
=============================================*/

$(".ventastable").on("click", ".btnImprimirFactura", function(){

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

	window.open("extenciones/TCPDF/pdf/notasalida2.php?id="+codigoVenta,"_blank");

})

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



$('#daterange-btn').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 : {
		  format: "DD/MM/YYYY",
		  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 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 span").html();
	 
		 localStorage.setItem("capturarRango", capturarRango);
		 
		 
  
		 window.location = "index.php?ruta=ventas&fechaInicial="+fechaInicial+"&fechaFinal="+fechaFinal;
  
	}
  
  )

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

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

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

/*=============================================
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=ventas&fechaInicial="+fechaInicial+"&fechaFinal="+fechaFinal;

	}

})

/** CAPTURANDO EL COMPROBANTE PARA ASIGNAR LA SERIE */

$("#seleccionarComprobante").change(function(){

    var idComprobante = $(this).val();

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

	$.ajax({

		url:"ajax/comprobante.ajax.php",
		method: "POST",
		data: datos,
		cache: false,
		contentType: false,
		processData: false,
		dataType: "json",
		success: function(respuesta){
			
			$("#nuevaSerie").val(respuesta["serie"]);

			$("#nuevoNumero").val(respuesta["numero"]);
			


		}

	});



})


var ventasclientes = $('.ventasclientes').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(6).footer()).html(
				'TOTAL: S/. '+Math.round(api.column(6, {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 ventas"      
                          },      
                        "customize": function(doc) {
                            doc.defaultStyle.fontSize = 8; 
                            doc.defaultStyle.alignment = 'justify'
                            
                         
                        },
                         "exportOptions": {
                            "columns": ["1", "7" ,"2","3","5","6"],
                            "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 "Ventas"      
						  },
						"exportOptions": {
							"columns": ["1","2","3","4","5","6","7","8"]
						}
					}
                ]
        
});



