var r='/admin/';
const rutaapp = '/admin/';

// ================================
$(document).ready(function() {

    $("#msn-alert").css("display", "block");

    setTimeout(function(){
        $("#msn-alert").css("display", "none");
    }, 15000);

    var con=0;
    $(document).off('change.legacy','#cliente')
    .on('change.legacy','#cliente', function() {
        var formData = $(this).serialize();
        $.ajax({
            type: "POST",
            url: rutaapp+"pedido/anterior.php",
            dataType: 'JSON',
            data: formData,
            success: function(response){
                var memori = response.length;
                for(var i=0; i<memori; i++){
                    var boton = response[i].rbtn;
                    var modal = response[i].rmodal;
                    var code = response[i].rcode;
                }
                $("#pedanterior").html(boton);
                $("#memoria").html(modal);
                $("#code").html(code);
                $("#btnagregar").removeClass( "d-none" ).addClass( "btn-block " );
            }
        });
    });
    
    $(document).off('change.legacy','#departamento')
    .on('change.legacy','#departamento', function() {
        var id = $(this).val();
        $.ajax({
            url: rutaapp+'pais/municipios.php',
            type: "post",
            dataType: 'html',
            data: { 'id':id}
        }).done(function(response) {
            $('#ciudad').html(response).slideDown(400);
            $('#localidad').html('').slideDown(400);
            $('#zona').html('').slideDown(400);
        });
    });

    $(document).off('change.legacy','#ciudad')
    .on('change.legacy','#ciudad', function() {
        var id = $(this).val();
        $('#localidad').trigger("reset");
        $('#zona').trigger("reset");

        $.ajax({
            url: rutaapp+'pais/localidad.php',
            type: "post",
            dataType: 'html',
            data: { 'id':id}
        }).done(function(response) {
            $('#localidad').html(response).slideDown(400);
            $('#zona').html('').slideDown(400);
        });
    });

    $(document).off('change.legacy','#localidad')
    .on('change.legacy','#localidad', function() {
        var id = $(this).val();
        $('#zona').trigger("reset");

        $.ajax({
            url: rutaapp+'pais/zonas.php',
            type: "post",
            dataType: 'html',
            data: { 'id':id}
        }).done(function(response) {
            $('#zona').html(response).slideDown(400);
        });
    });

    $(document).off('change.legacy','#producto')
    .on('change.legacy','#producto', function() {

        var id = $(this).val();
        var idcliente = $('select[name=cliente]').val();
        var idpresent = $('select[name=present]').val();

        $.ajax({
            url: rutaapp+'pedido/unidad.php',
            type:'POST',
            dataType:'JSON',
            data:{id,idcliente,idpresent}
        }).done(function(response){

            var und=response.unidad;
            var pre=response.precio;
            var presentActual=response.present;
            var validas=response.presentaciones;

            $('select[name=present] option').each(function(){
                const valInt=parseInt(this.value,10);
                const isValid=validas.includes(valInt);
                $(this).prop('disabled',!isValid).toggle(isValid);
            });

            $('select[name=present]').val(und).trigger('chosen:updated');

            $('input[name=precio]').val(pre).focus().select();

            if(presentActual<1){
                $('#unidad').html(presentActual+' KG');
            }else{
                $('#unidad').html(Math.trunc(presentActual)+' KG');
            }

        });
    });

    $(document).off('change.legacy','select[name=present]')
    .on('change.legacy','select[name=present]', function() {

        var presentacion=$(this).val();
        var producto=$('#producto').val();
        var cliente=$('#cliente').val();

        $.ajax({
            url: rutaapp+'pedido/present.php',
            type:"post",
            dataType:'JSON',
            data:{idproducto:producto,idpresent:presentacion,idcliente:cliente}
        }).done(function(response){

            var cantidad=response.cantidad;
            var unidad=response.unidad;
            var precio=response.precio;

            $("input[name=precio]").val(precio).focus().select();

            if(cantidad<1){
                $("#unidad").html(cantidad+' '+unidad);
            }else{
                $("#unidad").html(Math.trunc(cantidad)+' '+unidad);
            }

        });
    });

    notificaciones();
    setInterval(checkSessionExpiration,60000);
    setInterval(notificaciones,10000);

});
  
$(document).off('submit.legacy','#formulario')
.on('submit.legacy','#formulario', function(e){
    var mensage = $('#msn-alert');
    $(mensage).slideUp(750);
    $(mensage).hide();
    e.preventDefault();
    $('button').prop('disabled', true);
    var action = $(this).attr('action');
    var type = $(this).attr('method');
    var form = $(this);
    var formdata = false;
    if(window.FormData){
        formdata = new FormData(form[0]);
    }
    $.ajax({
        url: action,
        type: type,
        data: formdata ? formdata : form.serialize(),
        cache: false,
        contentType: false,
        processData: false,
        success: function(data){
            if(data.match('.php') != null){
                window.location.replace(data);
            }
        }
    }).done(function(response){
        $(mensage).html(response).slideDown(400);
        setTimeout(function(){
            $(mensage).slideUp(700);
        },5000);

    });
    setTimeout(function(){
        $('button').prop('disabled', false);
    },1000);
});
    
$(document).off('submit.legacy','form.formulario')
.on('submit.legacy','form.formulario', function(e){
    if(this.id === 'formulario') return;
    var mensage = $('#msn-alert');
    $(mensage).slideUp(750);
    $(mensage).hide();
    e.preventDefault();
    var action = $(this).attr('action');
    var type = $(this).attr('method');
    var form = $(this);
    var formdata = false;
    if(window.FormData){
        formdata = new FormData(form[0]);
    }
    $.ajax({
        url: action,
        type: type,
        data: formdata ? formdata : form.serialize(),
        cache: false,
        contentType: false,
        processData: false,
        success: function(data){
            if(data.match('.php') != null){
                window.location.replace(data);
            }
        }
    }).done(function(response){
        $(mensage).html(response).slideDown(400);
        setTimeout(function(){
            $(mensage).slideUp(700);
        },5000);
    });
});
    
$(document).off('submit.legacy','#gasto')
.on('submit.legacy','#gasto', function(e){
    var mensage = $('#msn-alert');
    e.preventDefault();
    var action = $(this).attr('action');
    $.ajax({
        url: action,
        dataType: 'text',
        cache: false,
        contentType: false,
        processData: false,
        data: new FormData(this),
        type: "POST",
        success: function(data){
            if(data.match('.php') != null){
                window.location.replace(data);
            }
        }
    }).done(function(response){
        $(mensage).html(response).slideDown(400);
        setTimeout(function(){
            $(mensage).slideUp(700);
        },5000);
    });
});


// Codigo ajax formulario 
var total = 0;
var totid = 0;
var array = ['0'];
var id = '';
var pro = '';
var pre = '';
var can = '';
var bod = '';
$(document).off('submit.legacy','#anadir')
.on('submit.legacy','#anadir', function(e){ 
        var idcliente= $('select[name=cliente]').val();
        var textpre= $('select[name=present] option:selected').text();
        var valpre= $('select[name=present]').val();
        var produ= $('div#producto_chosen a.chosen-single span').text();
        var pre=$("#precio").val();
        e.preventDefault();
        var formData = $(this).serialize();
        var action = $(this).attr('action');
        $.ajax({
            type: "POST",
            url: r+"pedido/producto.php",
            dataType: 'JSON',
            data: formData+'&idcliente='+idcliente,
            success: function(response){
                var id = response.rid;
                var pro = response.rpro;
                var can = response.rcan;
                var precio = response.rpre;
                var tcan = response.tcan;
                var iva = response.riva;
                var cat = response.rcat;
                var bod = response.rbod;
                var tbod = response.tbod;
                var totid = response.rtotid;
                if(tcan > bod){
                    
                    var idunico = id+valpre;
                    console.log(tcan+'-'+bod+'-'+tbod);
                    if (tcan > tbod) {
                        
                        swal({
                            title: 'NO HAY EXISTENCIA SUFICIENTE',
                            text: 'Solo hay ' + tbod + 'Kg',
                            type: 'warning'
                        }, function() {
                            $('#cantidad').val('').focus();
                        });
                    } else {
                        var faltante = tcan-bod;
                        swal({
                            title: 'Actualmente existen '+parseFloat(bod).toFixed(3)+' Kg en la bodega GALAN',
                            text: '¿Deseas traer de otras bodegas ' + parseFloat(faltante).toFixed(3) + ' Kg fatantes?',
                            type: 'info',
                            showCancelButton: true,
                            confirmButtonText: 'Sí',
                            cancelButtonText: 'No'
                        }, function(isConfirm) {
                            if (isConfirm) {
                                if (array.includes(idunico) != true) {
                                    array.push(idunico);
                                    var idn = "'"+idunico+"'";
                                    var tr_str = '<tr id="trow'+idunico+'">' +
                                    '<input type="hidden" value="' + faltante + '" name="tbod'+idunico+'"/>'+
                                    '<td><input type="hidden" value="' + idunico + '" name="iden'+idunico+'"/><input type="hidden" value="' + id + '" name="cod'+idunico+'"/>' + pro + '</td>' +
                                    '<td><input type="hidden" value="' + can + '" name="cant'+idunico+'"/>' + can + ' ' +textpre + '<input type="hidden" value="' + valpre + '" name="tipo'+idunico+'"/></td>'+
                                    '<td><input  type="hidden" value="' + precio + '" name="prec'+idunico+'"/>' + moneda(precio) + '</td>' +
                                    '<td><input type="hidden" value="' + iva + '" name="iva'+idunico+'"/><input type="hidden" value="' + cat + '" name="cat'+idunico+'"/>' + moneda(totid) + '</td>' +
                                    '<input type="hidden" value="' + faltante + '" name="tbod'+idunico+'"/>'+
                                    '<td><a  title="Borrar" onclick="EliminarFila('+ totid + ',' + idn + ');"><i class="fa text-danger fa-trash fa-2x fa-lg"></i></a></td>' +
                                    '</tr>';
                                    $("#tabla").append(tr_str);
                                    total = total+totid;
                                    $("#total").html(total);
                                    $("#nada").remove();
                                    $('#anadir')[0].reset();
                                    $('#producto').trigger("chosen:updated");
                                    $('#present').trigger("chosen:updated");
                                     
                                }else{
                                     swal('Este Producto ya se encuentra agragado','warning');
                                    $('#anadir')[0].reset();
                                    $('#producto').trigger("chosen:updated");
                                    $('#present').trigger("chosen:updated");
                                }
                            } else {
                                $('#cantidad').val('').focus();
                            }
                        });
                    }
                }else{
                    var idunico = id+valpre;
                    if (array.includes(idunico) != true) {
                        array.push(idunico);
                        console.log(array);
                        var idn = "'"+idunico+"'";
                        var tr_str = '<tr id="trow'+idunico+'">' +
                        '<td><input type="hidden" value="' + idunico + '" name="iden'+idunico+'"/><input type="hidden" value="' + id + '" name="cod'+idunico+'"/>' + pro + '</td>' +
                        '<td><input type="hidden" value="' + can + '" name="cant'+idunico+'"/>' + can + ' ' +textpre + '<input type="hidden" value="' + valpre + '" name="tipo'+idunico+'"/></td>'+
                        '<td><input  type="hidden" value="' + precio + '" name="prec'+idunico+'"/>' + moneda(precio) + '</td>' +
                        '<td><input type="hidden" value="' + iva + '" name="iva'+idunico+'"/><input type="hidden" value="' + cat + '" name="cat'+idunico+'"/>' + moneda(totid) + '</td>' +
                        '<td><a  title="Borrar" onclick="EliminarFila('+ totid + ',' + idn + ');"><i class="fa text-danger fa-trash fa-2x fa-lg"></i></a></td>' +
                        '</tr>';
                        $("#tabla").append(tr_str);
                        total = total+totid;
                        $("#total").html(total);
                        $("#nada").remove();
                        $('#anadir')[0].reset();
                        $('#producto').trigger("chosen:updated");
                        $('#present').trigger("chosen:updated");
                         
                    }else{
                        $("#mesage").html('<div class="alert alert-success padding" role="alert">Este Articulo Ya se Encentra A&ntilde;adido!</div>').slideDown(400);
                        $('#anadir')[0].reset();
                        $('#producto').trigger("chosen:updated");
                        $('#present').trigger("chosen:updated");
                    }
                }
            }
            });setTimeout(function(){$("#mesage").html(this).slideUp(700);
                         }, 3000);
    });
$(document).off('submit.legacy','#cotizacion')
.on('submit.legacy','#cotizacion', function(e){
        e.preventDefault();
        var idcliente= $('select[name=cliente]').val();
        var textpre= $('select[name=present] option:selected').text();
        var valpre= $('select[name=present]').val();
        var produ= $('div#producto_chosen a.chosen-single span').text();
        var pre = $("#precio").val();
        if (pre == "" || pre < 0) {
            swal({icon: 'error',title: 'Error',text: 'El precio debe ser mayor que 0 y no puede estar vacío.'});
            return;
        }
        var producto = $("#producto").val();
        if (producto == "") {
            swal({icon: 'error',title: 'Error',text: 'El producto debe ser seleccionado'});
            return;
        }
        var formData = $(this).serialize();
        var action = $(this).attr('action');
        $.ajax({
            type: "POST",
            url: r+"pedido/producto_cotizacion.php",
            dataType: 'JSON',
            data: formData+'&idcliente='+idcliente,
            success: function(response){
                var id = response.rid;
                var pro = response.rpro;
                var can = response.rcan;
                var preciobase = response.rpreb;
                var precio = response.rpre;
                var tcan = response.tcan;
                var iva = response.riva;
                var bod = response.rbod;
                var tbod = response.tbod;
                var totid = response.rtotid;
                if(bod <= tcan){
                    console.log(tcan+'-'+bod+'-'+tbod);
                    if (tbod <= tcan) {
                        swal({
                            title: 'NO HAY EXISTENCIA SUFICIENTE',
                            text: 'Solo hay ' + parseFloat(tbod).toFixed(2) + ' kilos',
                            type: 'warning'
                        }, function() {
                            $('#cantidad').val('').focus();
                        });
                    } else {
                        var faltante = tcan-bod;
                        swal({
                            title: 'Actualmente existen '+parseFloat(bod).toFixed(2)+' Kilos en la bodega GALAN',
                            text: '¿Deseas traer de otras bodegas ' + parseFloat(faltante).toFixed(2) + ' kilos fatantes?',
                            type: 'info',
                            showCancelButton: true,
                            confirmButtonText: 'Sí',
                            cancelButtonText: 'No'
                        }, function(isConfirm) {
                            if (isConfirm) {
                                if (array.includes(idunico) != true) {
                                    array.push(idunico);
                                    var idn = "'"+idunico+"'";
                                    var tr_str = '<tr id="trow'+idunico+'">' +
                                    '<input type="hidden" value="' + faltante + '" name="tbod'+idunico+'"/>'+
                                    '<td><input type="hidden" value="' + idunico + '" name="iden'+idunico+'"/><input type="hidden" value="' + id + '" name="cod'+idunico+'"/>' + pro + '</td>' +
                                    '<td><input type="hidden" value="' + can + '" name="cant'+idunico+'"/>' + can + ' ' +textpre + '<input type="hidden" value="' + valpre + '" name="tipo'+idunico+'"/></td>'+
                                    '<td>' + moneda(preciobase) + '</td>' +
                                    '<td><input  type="hidden" value="' + preciobase + '" name="prec'+idunico+'"/>' + moneda(precio) + '</td>' +
                                    '<td><input type="hidden" value="' + iva + '" name="iva'+idunico+'"/>' + moneda(totid) + '</td>' +
                                    '<input type="hidden" value="' + faltante + '" name="tbod'+idunico+'"/>'+
                                    '<td><a  title="Borrar" onclick="EliminarFila('+ totid + ',' + idn + ');"><i class="fa text-danger fa-trash fa-2x fa-lg"></i></a></td>' +
                                    '</tr>';
                                    $("#tabla").append(tr_str);
                                    total = total+totid;
                                    $("#total").html(total);
                                    $("#nada").remove();
                                    $('#anadir')[0].reset();
                                    $('#producto').trigger("chosen:updated");
                                    $('#present').trigger("chosen:updated");
                                     
                                }else{
                                     swal('Este Producto ya se encuentra agragado','warning');
                                    $('#anadir')[0].reset();
                                    $('#producto').trigger("chosen:updated");
                                    $('#present').trigger("chosen:updated");
                                }
                            } else {
                                $('#cantidad').val('').focus();
                            }
                        });
                    }
                }else{
                    var idunico = id+valpre;
                    if (array.includes(idunico) != true) {
                        array.push(idunico);
                        console.log(array);
                        var idn = "'"+idunico+"'";
                        var tr_str = '<tr id="trow'+idunico+'">' +
                        '<td><input type="hidden" value="' + idunico + '" name="iden'+idunico+'"/><input type="hidden" value="' + id + '" name="cod'+idunico+'"/>' + pro + '</td>' +
                        '<td><input type="hidden" value="' + can + '" name="cant'+idunico+'"/>' + can + ' ' +textpre + '<input type="hidden" value="' + valpre + '" name="tipo'+idunico+'"/></td>'+
                        '<td>' + moneda(preciobase) + '</td>' +
                        '<td><input  type="hidden" value="' + preciobase + '" name="prec'+idunico+'"/>' + moneda(precio) + '</td>' +
                        '<td><input type="hidden" value="' + iva + '" name="iva'+idunico+'"/>' + moneda(totid) + '</td>' +
                        '<td><a  title="Borrar" onclick="EliminarFila('+ totid + ',' + idn + ');"><i class="fa text-danger fa-trash fa-2x fa-lg"></i></a></td>' +
                        '</tr>';
                        $("#tabla").append(tr_str);
                        total = total+totid;
                        $("#total").html(total);
                        $("#nada").remove();
                        $('#anadir')[0].reset();
                        $('#producto').trigger("chosen:updated");
                        $('#present').trigger("chosen:updated");
                         
                    }else{
                        $("#mesage").html('<div class="alert alert-success padding" role="alert">Este Articulo Ya se Encentra A&ntilde;adido!</div>').slideDown(400);
                        $('#anadir')[0].reset();
                        $('#producto').trigger("chosen:updated");
                        $('#present').trigger("chosen:updated");
                    }
                }
            }
            });setTimeout(function(){$("#mesage").html(this).slideUp(700);
                         }, 3000);
    });
// Codigo ajax formulario 
var total2 = 0;
var totid2 = 0;
var array2 = ['0'];
var id = '';
var pro = '';
var pre = '';
var can = '';
var bod = '';

$(document).off('submit.legacy','#anadir2')
.on('submit.legacy','#anadir2', function(e){
        var idcliente=document.getElementById("cliente").value;
        var pre=document.getElementById("precio").value;
        e.preventDefault();
        var formData = $(this).serialize();
        var action = $(this).attr('action');
        $.ajax({
            type: "POST",
            url: r+"pedido/producto2.php",
            dataType: 'JSON',
            data: formData+'&idcliente='+idcliente,
            success: function(response){
                var len = response.length;
                for(var i=0; i<len; i++){
                    var id = response[i].rid;
                    var pro = response[i].rpro;
                    var can = response[i].rcan;
                    var iva = response[i].riva;
                    var bod = response[i].rbod;
                    var totid2 = response[i].rtotid;
                    if(bod<=can){
                        $("#mesage").html('<div class="alert alert-success padding" role="alert" style="background:#00ff3d;color:#dc3545"><strong>NO HAY EXISTENCIA SUFICIENTE, solo hay '+bod+' paquetes!</strong></div>').slideDown(400);
                         
                        }
                    else{
                    if (array2.indexOf(id) === -1) {
                        array2.push(id);
                        var tr_str = '<tr id="trow'+id+'">' +
                        '<td><input type="hidden" value="' + id + '" name="iden'+id+'"/>' + pro + '</td>' +
                        '<td><input type="hidden" value="' + can + '" name="cant'+id+'"/>' + can + '</td>' +
                        '<td><input  type="hidden" value="' + pre + '" name="prec'+id+'"/>' + moneda(pre) + '</td>' +
                        '<td><input type="hidden" value="' + iva + '" name="iva'+id+'"/>' + moneda(totid2) + '</td>' +
                        '<td><a  title="Borrar" onclick="EliminarFila('+ totid2 + ',' + id + ');"><i class="fa text-danger fa-trash fa-2x fa-lg"></i></a></td>' +
                        '</tr>';
                        $("#tabla").append(tr_str);
                        total2 = total2+totid2;
                        $("#total2").html(total2);
                         $("#nada").remove();
                         document.getElementById("producto").value='';
                         document.getElementById("cantidad").value='';
                         document.getElementById("precio").value='';
                    } else if (array2.indexOf(id) > -1) {
                        $("#mesage").html('<div class="alert alert-success padding" role="alert">Este Articulo Ya se Encentra en el Inventario!</div>').slideDown(400);
                        
                    }
                }}$('#anadir2')[0].reset();   }
            });setTimeout(function(){$("#mesage").html(this).slideUp(700);
                         }, 3000);
    });
    
 function moneda(precio){
     var valor = precio.toLocaleString('es-CO', {
      style: 'currency',
      currency: 'COP',
      maximumFractionDigits: 0,
    });
     return valor+' COP';
 }
 
// Función para verificar la caducidad de sesión mediante AJAX
function checkSessionExpiration() {
    $.ajax({
        url: rutaapp+'check_session.php', // Archivo PHP que realiza la verificación de la sesión
        type: 'GET',
        dataType: 'json',
        success: function(response) {
            if (response.expired) {
                // La sesión ha caducado, muestra una alerta con cuenta regresiva en el botón "Entendido"
                swal({
                    title: "¡Advertencia!",
                    text: "Tu sesión ha caducado. Por favor, inicia sesión nuevamente.",
                    type: "warning",
                    confirmButtonText: "Entendido (30)",
                    timer: 30000, // 30 segundos
                    showCancelButton: false,
                    showConfirmButton: true,
                    closeOnConfirm: false,
                    closeOnCancel: false,
                    html: true
                },
                function(isConfirm) {
                    if (isConfirm) {
                        window.location.href = rutaapp+'logout.php';
                    }
                });

                // Actualiza el texto del botón cada segundo
                var timer = 30;
                var countdown = setInterval(function() {
                    timer--;
                    $(".confirm").text("Entendido (" + timer + ") ");
                    if (timer <= 0) {
                        clearInterval(countdown);
                        $(".confirm").click();
                        
                    }
                }, 1000);
            }
        }
    });
}


function getCookie(name) {
    var cookieName = name + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var cookieArray = decodedCookie.split(';');
    for(var i = 0; i < cookieArray.length; i++) {
        var cookie = cookieArray[i];
        while (cookie.charAt(0) == ' ') {
            cookie = cookie.substring(1);
        }
        if (cookie.indexOf(cookieName) == 0) {
            return cookie.substring(cookieName.length, cookie.length);
        }
    }
    return null; // Devuelve null si la cookie no existe
}

function notificaciones() {
    $.ajax({
        type: "POST",
        url: rutaapp + "pedido/alert-pedido.php",
        dataType: 'JSON',
        success: function(response) {
            var newtext = response.txtmsn;
            var num = response.numsn;
            $('#txtmsn').html(newtext);
            $('#txtmsn2').html(newtext);
            $('#numsn').html(num);
            $('#numsn2').html(num);
            
            // Verifica si la cookie no existe o si el texto es diferente al texto anterior guardado en la cookie
            if (getCookie('oldtext') === null || newtext !== getCookie('oldtext')) {
                windowsnotificacion('Haz recibido un mensaje','Tienes algo importante por hacer en la plataforma de inventarios','https://quimiforen.com/admin/' ); // Muestra la notificación solo si la cookie no existe o si el texto es diferente
                
                // Establece la cookie con el nuevo texto y una fecha de expiración de dos días
                setCookie('oldtext', newtext, 2);
            }
        }
    });
}

// Función para establecer una cookie
function setCookie(name, value, days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toUTCString();
    }
    document.cookie = name + "=" + value + expires + "; path=/";
}


function windowsnotificacion(titulo, mensaje, url) {
    if (Notification.permission !== 'denied') {
        Notification.requestPermission().then(function(permission) {
            if (permission === 'granted') {
                var notification = new Notification(titulo, {
                    body: mensaje,
                    icon: 'https://quimiforen.com/img/favicon.ico'
                });

                // Agrega un evento onclick a la notificación
                notification.onclick = function() {
                    window.open(url, '_blank'); // Abre la URL en una nueva pestaña
                };
            }
        });
    }
}