$(document).ready(function() {

    var FacturasPor_cliente="";

})


let camponit = document.getElementById("nit");

if (camponit) {
    

    camponit.addEventListener("blur", function() {
        let evento = new KeyboardEvent("keypress", {
            key: "Enter",
            keyCode: 13,
            which: 13,
            bubbles: true
        });
        camponit.dispatchEvent(evento);
    });
}

//funcion consultar cliente

$("#nit").keypress(function(e) {
    let cantidadFactiras=document.getElementById("cantidadFactiras");
    if (e.which == 13) {
        var id = $("#nit").val();
        $("#sucursalClienteF").val(0)
        document.getElementById("verventasfrecuentes").setAttribute("hidden", "hidden");
        $.ajax({

            data: { "valor": id }, //datos que se envian a traves de ajax
            url: "../controlador/config/cliente.php", //archivo que recibe la peticion
            type: 'post', //método de envio
            // beforeSend: function () {
            success: function(response) {

                var respuesta = JSON.parse(response);
                if(respuesta["cedula"]=="undefined" ||respuesta["cedula"]==undefined||respuesta["cedula"]=="")
                {
                    
                    $('#registro').modal('show');
                    $("#idenc").val(id)

                }else{
                
                var idclin = (respuesta["cedula"]);
                var cliente = (respuesta["Nombre"]);
                let dorec = (respuesta["direccion"]);
                var apellido = (respuesta["apellido"]);
                let correo = (respuesta["correo"]);
                let telcl = (respuesta["telefono"]);
                let regimen = (respuesta["regimen"]);
                let naturaleza = (respuesta["naturaleza"]);
                let tipoidentificacion_e = (respuesta["tipoId"]);
                let responsabilidad_elec = (respuesta["responsabilidad"]);
                let ciudad_elec = (respuesta["codigociudad"]);
                let dtoclie=(respuesta["dtoclie"]);
                let valorBono=(respuesta["ValorBono"]);
                let listaPreciF=(respuesta["listaprecio_defec"]);
                
                




                $("#nombre").val(cliente + "  " + apellido);
              
                $("#diree").val(dorec);
              
                $("#nit").val(idclin);
                $("#Correoc").val(correo);
                $("#telCli").val(telcl);

                $("#Nombre_elect").val(cliente);
                $("#Apellido_elect").val(apellido);
                $("#Naturaleza_elect").val(naturaleza);
                $("#Regimen_elect").val(regimen);
                $("#tipoIdentificacion_elect").val(tipoidentificacion_e);
                $("#responsabilidad_elec").val(responsabilidad_elec);
                $("#ciudad_elec").val(ciudad_elec);
                $("#dtoclie").val(dtoclie);
                $("#dtoclieVer").val(dtoclie);
                $("#bonoPuntos").val(valorBono);
                $("#listaPreciF").val(listaPreciF)

               









                }

                let tabalSurcuClif=document.getElementById("tabalSurcuClif");
                tabalSurcuClif.innerHTML=""
                $.ajax({

                    data: { "ventasClien": idclin }, //datos que se envian a traves de ajax
                    url: "../controlador/config/cliente.php", //archivo que recibe la peticion
                    type: 'post', //método de envio
                    // beforeSend: function () {
                    success: function(respon) {


                        // echo (json_encode(["factCli"=>$fila1,"sucursaClien"=>$fila2]));
         
                        let respues = JSON.parse(respon);
                        let respuesta=respues.factCli
                        
                        if(respuesta.length>0){

                            document.getElementById("verventasfrecuentes").removeAttribute("hidden");
                            cantidadFactiras.innerText="Ventas_Frecuentes "+ respuesta.length;
                            FacturasPor_cliente=respuesta
                            
                        }else{
                            document.getElementById("verventasfrecuentes").setAttribute("hidden", "hidden");
                        }


                          /// sucursales clientes
                        let sucuarSla=respues.sucursaClien

                        let z=[]
                        
                        if(sucuarSla.length>0){
                            

                            sucuarSla.forEach(v=>{
                                
                let x=`
                <tr> 
                <th scope="row">${v.id }</th>
                 <th >${v.otrDato1}</th>
                 <td>${v.direcionSc}</td>
                 <td>${v.TelSuc}</td>

                 <td><input type="button" value="Selecionar" onclick="SelecionarSucursal('${v.id}','${v.otrDato1}','${v.direcionSc}','${v.TelSuc}')" id="" class="btn btn-info "></td>
             
             </tr>`

             z.push(x)

                            })

                            tabalSurcuClif.innerHTML=z.join("");


                        }
                       
                        
                       
                    }
        
        
                    
        
                });




            }


            

        });

    }


});




function SelecionarSucursal(idSuc,nombre,direcion,telefon){



    if(nombre.trim().length>0){
        $("#nombre").val(nombre);
        $("#Nombre_elect").val(nombre); 

        $("#sucursalClienteF").val(idSuc)
    }

    if(direcion.trim().length>0){
        $("#diree").val(direcion);
    }
    if(telefon.trim().length>0){
        $("#telCli").val(telefon);
    }
               
              
     document.getElementById("modalsurcalClie").click()          
              
          
               

                
}

//ver ventas frecuentes

let botonVenrVentasFrecu=document.getElementById("verventasfrecuentes");
if(botonVenrVentasFrecu){
  botonVenrVentasFrecu.addEventListener("click",()=>{
    let  datos=[];
    let valorv=0;
    FacturasPor_cliente.forEach(v=>{

        let d=`
        
        <tr>
                    <td scope="col"  >${v.factura}</td>
                    <td scope="col" >${v.valor}</td>     
               
                    <td scope="col"  >${v.fechaFactura}</td>
                    <td scope="col"  >${v.vendedor}</td>
                    <td scope="col" >${v.detallef}</td>

                   
                    </tr>
        `
        valorv=valorv+parseInt(v.valor) ;

        datos.push(d)

    })
let valo=datos.join("");
    document.getElementById("tablaFacturClien").innerHTML=valo
document.getElementById("valorvent").innerText=valorv
    console.log(valorv)

  })
}

//funcion agregar productos 

let botonagregrar=false;

$("#agregar").click( async function() {

    // await  preciocaja()
    console.warn("boton agregar de calcular precio");
    
    if( cambiarcantidadMesas==1){
         preciocaja()
        cambiarcantidadMesas=0;
    }
   


    if(botonagregrar==false){

            botonagregrar=true;
            let dtoclie=$("#dtoclie").val().trim();            
           
            let descuenPOrce=parseInt(  $("#DescuPor").val().trim());
            let dteMaximi=parseInt( $("#dteMaximi").val().trim());

            let valordes =parseInt(  $("#DescuValor").val().trim());
            console.log("decuento max  "+dteMaximi);
            let validador2=0;
            
            if(dtoclie>0){
                descuenPOrce=dtoclie; 
                
            }
                if(descuenPOrce>0){
                    if(dteMaximi>0){
                    
                    
                        if(descuenPOrce<=dteMaximi){
                            console.log(3)
                            descuentoporcenta();
                        
                        }else{
                            alert("EL Descuento Maximo Permitido es "+dteMaximi+"%");
                            validador2=1;
                            botonagregrar=false;
                            
                        }
                    }else{
                        console.log("decuento  "+descuenPOrce);
                        descuentoporcenta();
                        
                    }
                    
                }else{
                    if(valordes>0){
                        if(dteMaximi>0){
                            let descuetovalor= parseInt(descuentoporValor());
                            if(descuetovalor>dteMaximi){
                                alert("EL Descuento Maximo Permitido es "+dteMaximi+"%");
                                validador2=1;
                                botonagregrar=false;
                            }
                        }else{
                            descuentoporValor(); 
                        }

                }
            }
            if(validador2==0){ 
                setTimeout(function() {


                    //var e = jQuery.Event("keypress");
                    // e.which = 13;
                    // e.keyCode = 13;
                    // $("#caja").trigger(e);
                    // $("#frcc").trigger(e);
                

                    let iva = $("#iva").val();
                    let inventario = $("#saldo").val();
                    let saldoFrccf=$("#saldof").val();
                    let codigo = $("#producto").val();
                    let Nombre = $("#nproducto").val();
                    let pcaja = $("#pcaja").val();
                    // let cantidacaja = $("#caja").val();
                    let cantidacaja = document.getElementById("caja").value;
                    let pfrcc = $("#pfrcc").val();
                    let cantidafrcc = $("#frcc").val();
                    let Tprecio = $("#Tprecio").val();
                    let dosisDias = document.querySelector("#diasDosis").value;
                    let costoCaja = $("#costoCaja").val();
                    let costoFrr = $("#costoFrcc").val();
                    let descuento = $("#DescuValor").val();
                    let  cantiblister= $("#canblister").val();
                    let  factorblister= $("#factorblister").val();    
                    let controlinventarioF=$("#controlinventarioF").val()

                    let precioFrcc=pfrcc;

                    let validadorCosto=false;
                    let costoValidador=0;
                    let precioValidador=0;

                    // if(cantidafrcc==" " ||cantidafrcc==""){
                    //     cantidafrcc=0;
                    // }

                    // if(cantidacaja==" " ||cantidacaja==""){
                    //     cantidacaja=0;
                    // }

                    
                        cantidacaja = Number(cantidacaja);
                        if (!isNaN(cantidacaja) && isFinite(cantidacaja)) {
                            console.log("Es un número válido" +cantidacaja );
                        } else {
                            cantidacaja = 0;
                        }

                    cantidafrcc = Number(cantidafrcc);
                        if (!isNaN(cantidafrcc) && isFinite(cantidafrcc)) {
                            console.log("Es un número válido" +cantidafrcc );
                        } else {
                            cantidafrcc = 0;
                        }

                        inventario = Number(inventario);
                        if (!isNaN(inventario) && isFinite(inventario)) {
                            console.log("Es un número válido" +inventario );
                        } else {
                            inventario = 0;
                        }

                    saldoFrccf = Number(saldoFrccf);
                        if (!isNaN(saldoFrccf) && isFinite(saldoFrccf)) {
                            console.log("Es un número válido " + saldoFrccf);
                        } else {
                            saldoFrccf = 0;
                        }







                    if(controlinventarioF !="no" && (cantidacaja > inventario || cantidafrcc > saldoFrccf))
                    {
                        alert("CANTIDAD SUPERA EL SALDO DISPONIBLE");

                    }
                    
                    if (iva ==" " || iva == "" || isNaN(iva)) {
                        iva = '0';
                    } 



                    const valoresPermitidos = ['0', '1', '19', '5', '8', '10',0,1,19,5,8,10];

                    if (!valoresPermitidos.includes(iva)) {
                        alert("El tipo de iva del producto no es valido");
                        botonagregrar=false;
                        return 0;
                    }
                    

                    /// solo para mostrar valor  menor en lista de precios al imprimir factura
                 
                        

                    /// fin solo para mostrar valor  menor en lista de precios
                 
                           console.log(Tprecio)
                            console.log(pcaja)
                        // ⚠️ Validación lógica
                        if ( Tprecio === pcaja && cantidacaja > 1 ) {
                            alert("⚠️ Revisar Valor Total de este producto");
                            
                            botonagregrar=false;
                            return 0;
                            
                        } 
                    
            //validar costo mayor a venta
                    if(cantidafrcc>0){
                        if(parseInt(costoFrr)>=parseInt(pfrcc)){
                            validadorCosto=true;  
                            costoValidador=costoFrr;
                            precioValidador=pfrcc;
                        }
                        if(precioFrcc==0 || precioFrcc.trim()==""){
                            validadorCosto=true;  
                            costoValidador=costoFrr;
                            precioValidador=precioFrcc;
                        }
                    }

                    if(cantidacaja>0){
                        if(parseInt(costoCaja)>=parseInt(pcaja)){
                            validadorCosto=true;  
                            costoValidador=costoCaja;
                            precioValidador=pcaja;
                        }
                    }
                
                    if(PermitirAgregarDebajoCosoto=="ok"){
                        validadorCosto=false;  
                    }
                


            //validar costo mayor a venta
                
                    if(cantiblister){           

                        cantidafrcc= parseInt((factorblister*cantiblister))+parseInt(cantidafrcc);
                        pfrcc=Math.round( Tprecio/cantidafrcc);
                    }

                    if(cantidafrcc>0 && cantidacaja>0 && cantiblister>0){
                        pfrcc=precioFrcc;
                    }
                    

                    let mesa=document.getElementById("mesas").value;
                    let bodega = document.getElementById("idbodegas").value;
                    let selectVencimeintos=document.getElementById("lotevencimiento").value;
                   

                   if(mesa=="m0"){
                         mesa=usuarioA;
                   }

                        if (descuento == "") {
                            descuento = 0;
                        }


                        // solo para sacar diferencia en las listas de precio 
            let descuentoLista=0;
            if(restarlsitas==1){
                let listacaja1=document.getElementById("pcajaValor1").value;
                let listacaja2=document.getElementById("pcajaValor2").value;
                let listacaja3=document.getElementById("pcajaValor3").value;

                let listafrcc1=document.getElementById("pfrccValor1").value;
                let listafrcc2=document.getElementById("pfrccValor2").value;
                let listafrcc3=document.getElementById("pfrccValor3").value;
                 
                console.log("lista1 "+listacaja1 )
                console.log("lista2 "+listacaja2 )
                console.log("lista3 "+listacaja3 )
                let dtoCaja=0;

                if(cantidacaja>0){
                        if(pcaja==listacaja1){
                            dtoCaja=0;
                        }else if( pcaja==listacaja2 ){
                            dtoCaja=listacaja1-listacaja2;
                           
                        }else if( pcaja == listacaja3){
                            dtoCaja=listacaja1-listacaja3;
                            
                        }else{
                            dtoCaja=0;  
                            
                        }
                        dtoCaja=dtoCaja* cantidacaja;
                }
                dtoFrcc=0;
                if(cantidafrcc>0){
                    if(pfrcc==listafrcc1){
                        dtoFrcc=0;
                    }else if( pfrcc==listafrcc2 ){
                        dtoFrcc=listafrcc1-listafrcc2;
                       
                    }else if( pfrcc == listafrcc3){
                        dtoFrcc=listafrcc1-listafrcc3;
                        
                    }else{
                        dtoFrcc=0;  
                        
                    }
                    dtoFrcc=dtoFrcc* cantidafrcc;
            }


                descuentoLista= parseInt(dtoFrcc) +parseInt(dtoCaja);
            }


// sacar diferencia Lista de precios

            descuento=parseInt( descuento)+parseInt( descuentoLista);

        let cocinAa = document.getElementById("enviarCocina");
        let mensajepROD="";

        if (cocinAa.hasAttribute("hidden")) {
           
        } else {
            mensajepROD=prompt("Detalle Producto Cocina");
        }

           




                        // 0= regimen simple
                        //1 regimen comun
                        // regimen = 1;


                        //remimen comun 
                        if (regimen == 1  ) {
                            ///// metodo 1
                            // var iva = $("#iva").val();
                            // if (iva == 19 ) {
                              
                            //         var base = parseInt(Tprecio / 1.19);
                            //         var valoriva = parseInt(Tprecio - base);
                                
                            // } else {

                            //     if (iva == 5) {                                  
                            //             var base = parseInt(Tprecio / 1.05);
                            //             var valoriva = parseInt(Tprecio - base);
                                                                   
                           //     } else {

                            //         if (iva == 8) {
                            //                 var base = parseInt(Tprecio / 1.08);
                            //                 var valoriva = parseInt(Tprecio - base);                                  
                                                      
                            //         } else{
                            //             if (iva == 10) {
                            //                 var base = parseInt(Tprecio / 1.10);
                            //                 var valoriva = parseInt(Tprecio - base);
                                                                    
                            //             } else{
                            //                     if (iva == 0) {
                                                 
                            //                         var base = parseInt(Tprecio);
                            //                         var valoriva = 0;
                                                    
                            //                     } else {
                            //                         if (iva == 1) {
                                                        
                            //                             var base = parseInt(Tprecio);
                            //                             var  valoriva = 0;
                                                        
                            //                         } else {
                            //                             var   valoriva = 0;
                            //                             var   base = 0;
                            //                         }
                            //                     }
                            //     }
                            // }
                            //     }
                            // }
                ///// fin metodo 1

                            ///// metodo 2
                            if (iva == 19) {
                                var base = (Tprecio / 1.19).toFixed(2);
                                var valoriva = (Tprecio - base).toFixed(2);
                            } else if (iva == 5) {
                                var base = (Tprecio / 1.05).toFixed(2);
                                var valoriva = (Tprecio - base).toFixed(2);
                            } else if (iva == 8) {

                                var base = (Tprecio / 1.08).toFixed(2);
                                var valoriva = (Tprecio - base).toFixed(2);



                            } else if (iva == 10) {
                                var base = (Tprecio / 1.10).toFixed(2);
                                var valoriva = (Tprecio - base).toFixed(2);
                            } else if (iva == 0) {
                                var base = Tprecio;
                                var valoriva = 0;
                            } else if (iva == 1) {
                                var base = Tprecio;
                                var valoriva = 0;
                            } else {
                                var valoriva = 0;
                                var base = 0;
                            }
                            

                            // fin metodo 2
                        } else {

                            if (regimen == 0) {
                                var  valoriva = 0;
                                var   base = 0;
                                // iva = 0;
                            }else{
                                if(regimen == 3){
                                    if (iva == 8) {
                                      
                                       
                                        var base = (Tprecio / 1.08).toFixed(2);
                                        var valoriva = (Tprecio - base).toFixed(2);                      
            
                                }else{
                                    var  valoriva = 0;
                                    var   base = 0;
                                  //  iva = 0;

                                }
                                }
                            }
                        }
                       let verificarDoble= verificarproductosDobles(codigo,cantidacaja,cantidafrcc,base,valoriva,Tprecio,descuento) 
                
                       let vendedorC=document.getElementById("vendedorr").value; 
                       let clienteC=document.getElementById("nit").value; 
                       let participante=document.getElementById("idParticipantes").value;
                       let cocina=document.getElementById("cocina").value;
                
                       if (verificarDoble== 0) {

                        //fin regimrn comun 
                      
                        if (codigo == "") {

                            alert("No ha selecionado ningun producto");
                            botonagregrar=false;
                        } else {
                            if(validadorCosto==false){
                            if (cantidacaja > 0 || cantidafrcc > 0) {

                                if (Tprecio > 0) {
                                   
                                    $.ajax({
                                        data: {
                                            "participante":participante,
                                            "cocina":cocina,
                                            "vendedorC":vendedorC,
                                            "clienteC":clienteC,
                                            "mesa": mesa,
                                            "tipoiva": iva,
                                            "codigo": codigo,
                                            "nombre": Nombre,
                                            "cantcaja": cantidacaja,
                                            "cantfrcc": cantidafrcc,
                                            "base":base,
                                            "valoriva":valoriva,
                                            "Tprecio":Tprecio,
                                            "descuento":descuento,
                                            "dosisDias":dosisDias,
                                            "costoCaja":costoCaja,
                                            "costoFrr":costoFrr,
                                            "pcaja":pcaja,
                                            "pfrcc":pfrcc,
                                            "bodega":bodega,
                                            "idvencimiento":selectVencimeintos,
                                            "mensajepROD":mensajepROD
                                         



                                        
                                        }, //datos que se envian a traves de ajax
                                        url: "../controlador/config/cotizacion.php", //archivo que recibe la peticion
                                        type: 'post', //método de envio
                    
                    
                                        success: function(response) { //una vez que el archivo recibe el request lo procesa y lo devuelve
                    
                                    

                                            if(response=="ok"){

                                                const agregadoP = new Promise((resolve, reject) => {
                                            
                                                    $("#tabla").prepend("<tr><th >" + codigo + " </th>  <th>" + Nombre + "</th> <th>" + cantidacaja + "</th> <th>" + cantidafrcc + "</th> <th class='baseiva'>" +
                                                        base + "</th> <th class='datoiva'>" + valoriva + "</th> <th class='tipoiva'>" + iva +
                                                        "</th>  <th class='dato'>" + Tprecio + "</th><th class='descue'>" + descuento + "</th><th> <input type='button' class='quitar col-md-12 btn-sm btn-primary rounded-pill' value='quitar' id='quitar' ></input></th><th  hidden='true'>" + dosisDias +
                                                        "</th><th  hidden='true'>" + costoCaja + "</th><th  hidden='true'>" + costoFrr + "</th><th  hidden='true'>" + pcaja + "</th><th  hidden='true'>" + pfrcc + "</th><th >" + selectVencimeintos + "</th><th  hidden='true'>" +mensajepROD+ "</th>");

                                                        sumartotal();
                                                        descuentoFac();


                                                    $("#producto").val("");
                                                    $("#nproducto").val("");
                                                    $("#pcaja").val("");
                                                    $("#caja").val("");
                                                    $("#pfrcc").val("");
                                                    $("#frcc").val("");
                                                    $("#Tprecio").val("");
                                                    $("#costoCaja").val("");
                                                    $("#costoFrcc").val("");
                                                    $("#DescuValor").val(0);
                                                    $("#DescuPor").val(0);
                                                    $("#canblister").val("");
                                                    $("#factorblister").val(0);
                                                    document.querySelector("#diasDosis").value = 0;



                                                   



                                                    
                                                    $("#dteMaximi").val(0);

                                                    $("#pcajaValor2").val(0);
                                                    $("#pfrccValor2").val(0);

                                                    $("#pcajaValor3").val(0);
                                                    $("#pfrccValor3").val(0);

                                                    $("#pcajaValor1").val(0);
                                                    $("#pfrccValor1").val(0);
                                                    $("#pblister").val(0);

                                                    $("#saldof").val(0);
                                                    $("#saldo").val(0);
                                                     $("#controlinventarioF").val("");
                                                    $("#iva").val(0);

                                                    document.getElementById("lotevencimiento").value="";

                                                   
                                                    // $(".dato").number( true,0);
                                                    botonagregrar=false;

                                                    if(tipoMenus==0){
                                                      let campoMensajemesa=  document.getElementById("idmensajeMesa")
                                                      campoMensajemesa.innerText="Producto Agregado"
                                                      
                                                        setTimeout(function(){
                                                            campoMensajemesa.innerText=""
                                                            console.log("ocultar")
                                                            resolve();
                                                        }, 1000);
                                                        
                                                        
                                                        
                                                    }else{
                                                        resolve();
                                                    }

                                                });

                                                (async () => {
                                                    await agregadoP;

                                                    sumartotal();
                                                    descuentoFac();

                                                    $("#base5").val(baseiva5());
                                                    $("#base19").val(baseiva19());
                                                    $("#baseexento").val(excenton());
                                                    $("#totaliva5").val(sumariva5());
                                                    $("#totaliva19").val(sumariva19());
                                                    $("#dbaseexcluido").val(excluido());
                                                    
                                                    $("#ivaotro").val( otroiva());
                                                    $("#baseotro").val( baseotroiva());
                                                    
                                                    $("#ivaipc").val( ivaipc());
                                                    $("#baseipc").val( baseoipc());

                                                  })();
                                                    

                                                  agradadoAutomatico=true;
                                            }
                                }
                                     }) 


                                } else {
                                    alert("⚠️ EL producto no tiene un precio de venta asignado");
                                    botonagregrar=false;

                                }
                            } else {
                                alert("No ha puesto una cantidad  O ");
                                botonagregrar=false;
                            }
                        }else{
                            alert(`Precio De venta ${precioValidador}   menor Al costo   ${costoValidador}`); 
                            botonagregrar=false;
                        }  


                        }
                        $("#producto").focus();



                    } else {

                        if(verificarDoble==2){


                            sumartotal();
                            descuentoFac();

                            $("#base5").val(baseiva5());
                            $("#base19").val(baseiva19());
                            $("#baseexento").val(excenton());
                            $("#totaliva5").val(sumariva5());
                            $("#totaliva19").val(sumariva19());
                            $("#dbaseexcluido").val(excluido());
                            
                            $("#ivaotro").val( otroiva());
                            $("#baseotro").val( baseotroiva());
                            
                            $("#ivaipc").val( ivaipc());
                            $("#baseipc").val( baseoipc());


                            $("#producto").focus();
                                
                            $.ajax({
                                data: {
                                   
                                    "cocina":cocina,                                   
                                    "mesa": mesa,
                                    "cantcaja": cantidacaja,
                                    "cantfrcc": cantidafrcc,
                                    "base":base,
                                    "valoriva":valoriva,
                                    "Tprecio":Tprecio,
                                    "descuento":descuento,                                 
                                    "bodega":bodega,                                  
                                    "verificarDoble":verificarDoble,
                                    "codigo": codigo,

                                 
// voy aca


                                
                                }, //datos que se envian a traves de ajax
                                url: "../controlador/config/cotizacion.php", //archivo que recibe la peticion
                                type: 'post', //método de envio
            
            
                                success: function(response) { //una vez que el archivo recibe el request lo procesa y lo devuelve
            
                                    

                                    if(response=="ok"){

                                        const agregadoP = new Promise((resolve, reject) => {
                                    
                                            // $("#tabla").append("<tr><th >" + codigo + " </th>  <th>" + Nombre + "</th> <th>" + cantidacaja + "</th> <th>" + cantidafrcc + "</th> <th class='baseiva'>" +
                                            //     base + "</th> <th class='datoiva'>" + valoriva + "</th> <th class='tipoiva'>" + iva +
                                            //     "</th>  <th class='dato'>" + Tprecio + "</th><th class='descue'>" + descuento + "</th><th> <input type='button' class='quitar col-md-12 btn-sm btn-primary rounded-pill' value='quitar' id='quitar' ></input></th><th  hidden='true'>" + dosisDias +
                                            //     "</th><th  hidden='true'>" + costoCaja + "</th><th  hidden='true'>" + costoFrr + "</th><th  hidden='true'>" + pcaja + "</th><th  hidden='true'>" + pfrcc + "</th><th  hidden='true'>" + selectVencimeintos + "</th>");




                                            $("#producto").val("");
                                            $("#nproducto").val("");
                                            $("#pcaja").val("");
                                            $("#caja").val("");
                                            $("#pfrcc").val("");
                                            $("#frcc").val("");
                                            $("#Tprecio").val("");
                                            $("#costoCaja").val("");
                                            $("#costoFrcc").val("");
                                            $("#DescuValor").val(0);
                                            $("#DescuPor").val(0);
                                            $("#canblister").val("");
                                            $("#factorblister").val(0);
                                            document.querySelector("#diasDosis").value = 0;

                                           
                                                    $("#saldof").val(0);
                                                    $("#saldo").val(0);
                                                     $("#controlinventarioF").val("");
                                           
                                     $("#iva").val(0);


                                            
                                            $("#dteMaximi").val(0);

                                            $("#pcajaValor2").val(0);
                                            $("#pfrccValor2").val(0);

                                            $("#pcajaValor3").val(0);
                                            $("#pfrccValor3").val(0);

                                            $("#pcajaValor1").val(0);
                                            $("#pfrccValor1").val(0);
                                            $("#pblister").val(0);


                                            document.getElementById("lotevencimiento").value="";

                                           
                                            // $(".dato").number( true,0);
                                            botonagregrar=false;

                                            if(tipoMenus==0){
                                              let campoMensajemesa=  document.getElementById("idmensajeMesa")
                                              campoMensajemesa.innerText="Producto Agregado"
                                              
                                                setTimeout(function(){
                                                    campoMensajemesa.innerText=""
                                                    console.log("ocultar")
                                                    resolve();
                                                }, 1000);
                                                
                                                
                                                
                                            }else{
                                                resolve();
                                            }

                                        });

                                        (async () => {
                                            await agregadoP;

                                            // sumartotal();
                                            // descuentoFac();

                                            // $("#base5").val(baseiva5());
                                            // $("#base19").val(baseiva19());
                                            // $("#baseexento").val(excenton());
                                            // $("#totaliva5").val(sumariva5());
                                            // $("#totaliva19").val(sumariva19());
                                            // $("#dbaseexcluido").val(excluido());
                                            
                                            // $("#ivaotro").val( otroiva());
                                            // $("#baseotro").val( baseotroiva());
                                            
                                            // $("#ivaipc").val( ivaipc());
                                            // $("#baseipc").val( baseoipc());

                                          })();
                                            

                                          agradadoAutomatico=true;
                                    }
                        }
                             }) 








                        }else{
                            alert("El producto ya esta en la lista de Agregados");
                            botonagregrar=false;
                        }
                       
                    }

                    //else de validar prodcutos agrgados

                }, 350);
            }
    }else{
        console.log("procesando el agregado del productos")
    }
});

//funcion calcular precio venta  caja y fracion  





// function preciocaja() {
//     return new Promise((resolve) => {
//         let lista = document.querySelector("#listaPr").value;

//         // Convertir a número correctamente
//         let pcaja = $("#pcaja").val() || 0;
//         let cantidacaja = $("#caja").val() || 0;
//         let pfrcc = $("#pfrcc").val() || 0;
//         let cantidafrcc = $("#frcc").val() || 0;
//         let precioblister = $("#pblister").val() || 0;
//         let cantiblister = $("#canblister").val() || 0;

//         // Calcular totales
//         let totalblister = precioblister * cantiblister;
//         let totalcaja = pcaja * cantidacaja;


//         let totalfracion = 0;
//         if (lista == "lista2") {
//             totalfracion = Math.round((pfrcc * cantidafrcc) / 50) * 50;
//         } else {
//             totalfracion = pfrcc * cantidafrcc;
//         }

//         let total = totalcaja + totalfracion + totalblister;

//         // Mostrar total
//         $("#Tprecio").val(total);
//         $("#Tprecio").number(true, 2); // Si quieres decimales, o 0 si no


//         if(total==pcaja && cantidacaja > 1){
//               alert("Revisar Valor Total del producto")
//             resolve(false); 
//         }else{
//             resolve(true);  
//         }
        
//     });
// }

function preciocaja() {
    return new Promise((resolve) => {
        let lista = $("#listaPr").val();

        // 🔒 Conversión segura a número decimal
        const num = (val) => {
            let n = parseFloat(val);
            return isNaN(n) ? 0 : n; // si no es número, devuelve 0
        };

        // 🧮 Obtener valores siempre numéricos
        let pcaja = num($("#pcaja").val());
        let cantidacaja = num($("#caja").val());
        let pfrcc = num($("#pfrcc").val());
        let cantidafrcc = num($("#frcc").val());
        let precioblister = num($("#pblister").val());
        let cantiblister = num($("#canblister").val());

        // ✅ Calcular totales individuales
        let totalcaja = pcaja * cantidacaja;
        let totalblister = precioblister * cantiblister;
        let totalfracion = 0;

        if (lista == "lista2") {
            totalfracion = Math.round((pfrcc * cantidafrcc) / 50) * 50;
        } else {
            totalfracion = pfrcc * cantidafrcc;
        }

        // ✅ Garantizar suma sin errores
        let total = num(totalcaja) + num(totalfracion) + num(totalblister);

         $("#Tprecio").val(total);
          $("#Tprecio").number(true, 2);

     
            resolve(true);
        
    });
}


$("#caja").keypress(function(e) {

    if (e.which == 13) {
        preciocaja();
        $("#agregar").focus();
    }

});

$("#caja").blur(function() {
    preciocaja();

});


$("#frcc").keypress(function(e) {

    if (e.which == 13) {
        preciocaja();
        $("#agregar").focus();
    }



});

$("#frcc").blur(function() {
    preciocaja();

});

$("#canblister").blur(function() {
    preciocaja();

});

$("#canblister").keypress(function(e) {

    if (e.which == 13) {
        preciocaja();
        $("#agregar").focus();
    }



});



$("#pcaja").blur(function() {
    preciocaja();

});


$("#pfrcc").blur(function() {
    preciocaja();

});



//funcion buscar vendedor

$("#vendedorr").keypress(function(e) {

    if (e.which == 13) {
        var id = $("#vendedorr").val();
        let bodega = document.getElementById("idbodegas").value;
       // let numerocotizacion = document.querySelector("#mesas").value;
        $.ajax({

            data: { "vendedor": id }, //datos que se envian a traves de ajax
            url: "../controlador/config/cliente.php", //archivo que recibe la peticion
            type: 'post', //método de envio
            // beforeSend: function () {
            success: function(response) {
                console.log(response)
                var respuesta = JSON.parse(response);
                var vendedor = (respuesta["nombrev"]);
                let mesafefe=respuesta["mesaPorDefec"]
                console.log(vendedor)
                console.log(mesafefe)
                $("#nvende").val(vendedor);

                $("#producto").focus()

                
                if(buscarMesasVendedor==1){
                    if( mesafefe !="m0"  &&  vendedor !=""){
                        document.getElementById("mesas").value = mesafefe
                        buscarcotizacion(mesafefe,bodega)
                     }
                     buscarMesasVendedor=0;
                }

                

                
                //  


            }


        });

    }


});



//crear cliente
$("#crearc").on('click', function() {
    $('#registro').modal('show');

});

//funcion quitar productos de agragados para factura

$(document).on("click", "#quitar", function(e) {
    var id=  $(this).parent().siblings(":first").text()
    let config=confirm("Quieres Agregar el prodcuto Nuevamente")
    
    if(config){

     $("#producto").val(id);
     let e = jQuery.Event("keypress");
     e.which = 13;
     e.keyCode = 13;
     $("#producto").trigger(e);
     agradadoAutomatico=false;
     
    }
    
     $(this).closest('tr').remove();
     
     let mesa=document.getElementById("mesas").value;
     let bodega = document.getElementById("idbodegas").value;
    
 if(mesa=="m0"){
                         mesa=usuarioA;
    }

     $.ajax({

        data: { "producquitar": id,"mesass":mesa,"bodega":bodega }, //datos que se envian a traves de ajax
        url: "../controlador/config/cotizacion.php", //archivo que recibe la peticion
        type: 'post', //método de envio
        // beforeSend: function () {
        success: function(response) {
            
                          
               
                sumartotal();
                descuentoFac();

                $("#base5").val(baseiva5());
                $("#base19").val(baseiva19());
                $("#baseexento").val(excenton());
                $("#totaliva5").val(sumariva5());
                $("#totaliva19").val(sumariva19());
                $("#dbaseexcluido").val(excluido());
                $("#ivaotro").val( otroiva());
                $("#baseotro").val( baseotroiva());
                $("#ivaipc").val( ivaipc());
                $("#baseipc").val( baseoipc());
            
                if(porcentajeDescuento>1)  {

                    document.querySelector("#pendientes").click();

                }
        

        }


    });




 

});


///funcion para sumar el total de los productos a 



function sumartotal() {

     let sum = 0;
    // $('.dato').each(function() {
    //     sum += parseFloat($(this).text().replace(/,/g, ''), 10);
    // });
    // $('#totalfact').val(sum.toFixed(2));
    // $('#totalfact').number(true, 0);

    $('#tabla tr').each(function() {
       let  valor = $(this).find("th").eq(7).html();
        sum=sum+parseFloat(valor,10);
    
    });

   $('#totalfact').val(sum.toFixed(2));
    $('#totalfact').number(true, 0);



if(TipoNecocio==1){
    $('#totalfact2').val(sum.toFixed(2));
    $('#totalfact2').number(true, 0);
}
    

}
//funciones calculcular ivas  para regimen comun
//sumar total descuento

descuentoFac = () => {
    var sumD = 0;
    $('.descue').each(function() {
        sumD += parseFloat($(this).text().replace(/,/g, ''), 10);
    });
    $('#TotalDescu').val(sumD);
    // $('#TotalDescu').number(true, 0);
}

//suma iva del 19%



function sumariva19() {


   let totaliva19 = 0;
   let totalbase19 = 0;
    $('#tabla tr').each(function() {
        let tipoiva = $(this).find("th").eq(6).html();

        if (tipoiva == 19) {

            let iva19 = parseFloat($(this).find("th").eq(5).html());
            let  base19 = parseFloat($(this).find("th").eq(4).html());
            totaliva19 += iva19;
            totalbase19 += base19;
        }




    });



    return (totaliva19.toFixed(2));


}


function baseiva19() {

   let totalbase19 = 0;
    $('#tabla tr').each(function() {
        let  tipoiva = $(this).find("th").eq(6).html();

        if (tipoiva == 19) {
            let base19 = parseFloat($(this).find("th").eq(4).html());

            totalbase19 += base19;
        }





    });



    return (totalbase19.toFixed(2));
}
//suma iva del 5%

function sumariva5() {


   let  totaliva5 = 0;
   let  totalbase5 = 0;
    $('#tabla tr').each(function() {
        let  tipoiva = $(this).find("th").eq(6).html();

        if (tipoiva == 5) {

            let  iva5 = parseFloat($(this).find("th").eq(5).html());
            let   base5 = parseFloat($(this).find("th").eq(4).html());
            totaliva5 += iva5;
            totalbase5 += base5;
        }




    });



    return (totaliva5);


}


function baseiva5() {

   let  totalbase5 = 0;
    $('#tabla tr').each(function() {
        let  tipoiva = $(this).find("th").eq(6).html();

        if (tipoiva == 5) {
            let   base5 = parseFloat($(this).find("th").eq(4).html());

            totalbase5 += base5;
        }





    });



    return (totalbase5);
}

function excenton() {

   let totalexento = 0;
    $('#tabla tr').each(function() {
        let  tipoiva = $(this).find("th").eq(6).html();

        if (tipoiva == 0 || tipoiva == "0" ) {
           let  baseexento = parseInt($(this).find("th").eq(4).html());

            totalexento += baseexento;
        }





    });



    return (totalexento);
}

function excluido() {

   let totalexcluido = 0;
    $('#tabla tr').each(function() {
        let tipoiva = $(this).find("th").eq(6).html();

        if (tipoiva == 1) {
            let   baseexcluido = parseInt($(this).find("th").eq(4).html());

            totalexcluido += baseexcluido;
        }





    });



    return (totalexcluido);
}

function otroiva() {


    let  totaotroiva = 0;
    let totalobasetroiva = 0;
    $('#tabla tr').each(function() {
        let  tipoiva = $(this).find("th").eq(6).html();

        if (tipoiva == 10) {

            let  iva = parseFloat($(this).find("th").eq(5).html());
            let  base = parseFloat($(this).find("th").eq(4).html());
            totaotroiva += iva;
            totalobasetroiva += base;
        }




    });



    return (totaotroiva);


}

function baseotroiva() {

    let totalbaseotroiva = 0;
    $('#tabla tr').each(function() {
        let  tipoiva = $(this).find("th").eq(6).html();

        if (tipoiva == 10) {
            let  base = parseFloat($(this).find("th").eq(4).html());

            totalbaseotroiva += base;
        }





    });



    return (totalbaseotroiva);
}

function ivaipc() {


    let  totaivaipc = 0;
    let  totalobaseivaipc = 0;
    $('#tabla tr').each(function() {
        let    tipoiva = $(this).find("th").eq(6).html();

        if (tipoiva == 8) {

            let  iva = parseFloat($(this).find("th").eq(5).html());
            let  base = parseFloat($(this).find("th").eq(4).html());
            totaivaipc += iva;
            totalobaseivaipc += base;
        }




    });



    return (totaivaipc);


}

function baseoipc() {

    let totalbaseotroip = 0;
    $('#tabla tr').each(function() {
        let  tipoiva = $(this).find("th").eq(6).html();

        if (tipoiva == 8) {
            let base = parseFloat($(this).find("th").eq(4).html());

            totalbaseotroip += base;
        }





    });



    return (totalbaseotroip);
}
//funciones cotizacion enventana facturacion//buscion abrir venta buscar provedor



$("#cotizacionF").click(function() {

    $('#cotizacion').modal('show');
    let numerocotizacion = document.querySelector("#numeroCotizacion").value = "";
    // $('#tablacli tr').remove();
});
//funcion guardarcotizacion

let clicguardarCotizaCIon=false;
document.querySelector("#guardarCotizacion").addEventListener("click", function() {
    if(clicguardarCotizaCIon==false){
        clicguardarCotizaCIon=true;
        guardarCotizaion();

    }else{
        alert("NO se ha terminado de Guardar La cotizacion Anterior")
    }
   

})



function guardarCotizaion() {
    let array = [];
    /* Obtenemos todos los tr del Body*/
    let rowsBody = $("#table").find('tbody > tr');
    /* Obtenemos todos los th del Thead */
    let rowsHead = $("#table").find('thead > tr > th');

    /* Iteramos sobre as filas del tbody*/
    if(clicguardarCotizaCIon==true){
    if (rowsBody.length > 0) {
        for (let i = 0; i < rowsBody.length; i++) {
            let obj = {}; /* auxiliar*/
            for (let j = 0; j < rowsHead.length; j++){ /*  Iteramos sobre los th de THead*/
            /*Asignamos como clave el text del th del thead*/
            /*Asignamos como Valor el text del tr del tbody*/
                obj[rowsHead[j].innerText] = rowsBody[i].getElementsByTagName('th')[j].innerText;
            }
                array.push(obj); /* Añadimos al Array Principal*/
        }
        var facturaCot = JSON.stringify(array);
    }
    let bodega = document.getElementById("idbodegas").value;
    let nombreclien = $("#nombre").val();
    let direcion = $("#diree").val();
    let nombreve = $("#nvende").val();
    let total = $("#tfactur").val();
    let servicio=$("#propina").val();
    let cambio = $("#valentragdo").val();
    let detallef = $("#comentarios").val();
    let descuento = $("#TotalDescu").val();

    //gerimen comun
    let base5 = $("#base5").val();
    let base19 = $("#base19").val();
    let excento = $("#baseexento").val();
    let iva5 = $("#totaliva5").val();
    let iva19 = $("#totaliva19").val();
    let excluido = $("#dbaseexcluido").val();
    let correo = $("#Correoc").val();
    let telecliente = document.querySelector("#telCli").value;

    // var cliente = $("#nit").val();
    // var vendedor = $("#vendedorr").val();

    let vendedor=document.getElementById("vendedorr").value; 
    let cliente=document.getElementById("nit").value; 
    let participante=document.getElementById("idParticipantes").value;
    

   let ivaotro= $("#ivaotro").val();
   let baseotro= $("#baseotro").val();

   let baseivaipc= $("#baseipc").val();
   let ivaipc= $("#ivaipc").val();
  
   $("#baseipc").val();


    $.ajax({
        data: {
            "factura": facturaCot,
            "bodega": bodega,
            "vendedorC":vendedor,
            "clienteC":cliente,
            "participante":participante

        }, //datos que se envian a traves de ajax
        url: "../controlador/config/cotizacion.php", //archivo que recibe la peticion
        type: 'post', //método de envio



        beforeSend: function() {
            $('#titupagos').html("<h4 style='color: #FF5733; text-align: center;'> ⏳ Procesando, Espere por favor...</h4>");


        },

        success: function(response) {
            let respuesta = JSON.parse(response);

            if (respuesta.estado == "ok") {

                var NumeroCotizacion = respuesta.citozacion;
                var fecha = respuesta.fecha;
                if(tipoimprision == 0){
                $.ajax({

                  
                    data: {
                        'factura': facturaCot,
                        'numf': NumeroCotizacion,
                        'total': total,
                        'idc': cliente,
                        'nombrec': nombreclien,
                        'direc': direcion,
                        'nombrev': nombreve,
                        'fecha': fecha,
                        'base5': base5,
                        'base19': base19,
                        'iva5': iva5,
                        'iva19': iva19,
                        'excento': excento,
                        'excluido': excluido,
                        "devuleta": cambio,
                        "telcli": telecliente,
                        "detallef": detallef,
                        "descuento": descuento,
                        "bodega":bodega,
                        "ivaotro":ivaotro,
                        "baseotro":baseotro,
                        "baseivaipc":baseivaipc,
                        "ivaipc":ivaipc,
                        "servicio":servicio

                       
                    }, //datos que se envian a traves de ajax
                    url: "facturacion/impresionCotizacion.php", //archivo que recibe la peticion
                    type: 'post', //método de envio
                
                  
                    success: function(responsee) {


                        let ventana = window.open("facturacion/impresiongeneral.php");
                        ventana.document.write(responsee);
                        clicguardarCotizaCIon=false;
                        $("#factura").click();


                    }


                })


//aca
            }else{
                                                            
                $.ajax({
                    data: {
                        'factura': facturaCot,
                        'numf': NumeroCotizacion,
                        'total': total,
                        'idc': cliente,
                        'nombrec': nombreclien,
                        'direc': direcion,
                        'nombrev': nombreve,
                        'fecha': fecha,
                        'base5': base5,
                        'base19': base19,
                        'iva5': iva5,
                        'iva19': iva19,
                        'excento': excento,
                        'excluido': excluido,
                        "devuleta": cambio,
                        "correo": correo,
                        "bodega":bodega,
                        "ivaotro":ivaotro,
                        "baseotro":baseotro,
                        "baseivaipc":baseivaipc,
                        "ivaipc":ivaipc,
                        "servicio":servicio


                    
                    },
                    url: "facturacion/impresion_venta_alterno_cotizacion.php",
                    type: "post",


                    success: function(responsee) {


                        let ventana = window.open("facturacion/impresiongeneral.php");
                        ventana.document.write(responsee);
                        clicguardarCotizaCIon=false;
                        //$("#factura").click();


                    }


                })

            }


            }




        }


    })
    }
};





    


let botonenviarCocina=document.getElementById("enviarCocina");
if(botonenviarCocina){
    botonenviarCocina.addEventListener("click",function(){

        let imprimirTickcocina=confirm("Imprimir Comanda cocina");

        let numerocotizacion= document.getElementById("mesas").value;
        let bodega = document.getElementById("idbodegas").value;

if(imprimirTickcocina){

    let detalleCo=prompt("Detalle Cocina");

    $.ajax({
        data: {
            "cotizacionCocina": numerocotizacion,
            "bodega": bodega,
            "detalleCo":detalleCo

        }, //datos que se envian a traves de ajax
        url: "facturacion/impresionComanda.php", //archivo que recibe la peticion
        type: 'post', //método de envio

        success: function(response) {
            // let respuesta = JSON.parse(response);
            console.log(response)
            let ventana = window.open("facturacion/impresiongeneral.php");
                             ventana.document.write(response);
                                    
                                 
        }
    })




}else{
    let detalleCo=prompt("Detalle Cocina");

    $.ajax({
        data: {
            "cotizacionCocina": numerocotizacion,
            "bodega": bodega,
            "detalleCo":detalleCo

        }, //datos que se envian a traves de ajax
        url: "../controlador/config/cotizacion.php", //archivo que recibe la peticion
        type: 'post', //método de envio

        success: function(response) {
            // let respuesta = JSON.parse(response);
            alert(response)
        }
    })

}
       
        
    })


}


//


//funcion buscar cotizacion

document.querySelector("#buscarCotizacion").addEventListener("click", () => {

        
        let numerocotizacion = document.querySelector("#numeroCotizacion").value;
        let bodega = document.getElementById("idbodegas").value;
        buscarcotizacion(numerocotizacion,bodega);
});


async function buscarcotizacion(numerocotizacion,bodega){
    


                   if(numerocotizacion=="m0"){
                         numerocotizacion=usuarioA;
                   }


    console.log("1")
    $('#tabla tr').remove()
    console.log("2")
   
    await ejecutarCalculos();
        // sumartotal();
        // descuentoFac();
        // console.log("3")     
        // $("#base5").val(baseiva5());
        // $("#base19").val(baseiva19());
        // $("#baseexento").val(excenton());
        // $("#totaliva5").val(sumariva5());
        // $("#totaliva19").val(sumariva19());
        // $("#dbaseexcluido").val(excluido());
        // $("#ivaotro").val( otroiva());
        // $("#baseotro").val( baseotroiva());
        // $("#ivaipc").val( ivaipc());
        // $("#baseipc").val( baseoipc());

        console.log("4")

        $.ajax({
            data: {
                "cotizacion": numerocotizacion,
                "bodega": bodega

            }, //datos que se envian a traves de ajax
            url: "../controlador/config/cotizacion.php", //archivo que recibe la peticion
            type: 'post', //método de envio



            beforeSend: function() {
                $('#titupagos').html("<h4 style='color: red'>Procesando, Espere por favor</h4>");


            },

            success: function(response) {


                let e = jQuery.Event("keypress");
                e.which = 13;
                e.keyCode = 13;
                
                

                const cotizacioPE = new Promise((resolve, reject) => {
                    let respuesta = JSON.parse(response);
                    
                let vendedorF=document.getElementById("vendedorr");
                vendedorF.value=respuesta[0].vendedorCot;

                $("#vendedorr").trigger(e);

                // if(evitarciclo==0){
               
                //    $("#vendedorr").trigger(e);

                // }


                let clienteF=document.getElementById("nit");
                clienteF.value=respuesta[0].cienteCot;
                $("#nit").trigger(e);
                let particiF=document.getElementById("idParticipantes");
                particiF.value=respuesta[0].participan;


                respuesta.forEach(element => {
                    //  console.log(element.Nombre);


                    $("#tabla").append("<tr><th >" + element.Codigo + " </th>  <th>" + element.Nombre + "</th> <th>" + element.Cantida_caja + "</th> <th>" + element.Cantida_frcc + "</th> <th class='baseiva'>" +
                        element.Base + "</th> <th class='datoiva'>" + element.iva + "</th> <th class='tipoiva'>" + element.tipo +
                        "</th>  <th class='dato'>" + element.precio + "</th><th class='descue'>" + element.Descu + "</th><th> <input type='button' class='quitar col-md-12 btn btn-danger' value='quitar' id='quitar' ></input></th><th  hidden='true'>" + element.tratamiento +
                        "</th><th  hidden='true'>" + element.costoCaja + "</th><th  hidden='true'>" + element.costoFrcc + "</th><th  hidden='true'>" + element.preciounitarioCaja + "</th><th  hidden='true'>" + element.preciounitariofrcc + "</th><th  >" + element.idvencieminto + "</th><th  hidden='true'>" + element.detalleProducto + "</th>");
                });
                resolve()

            });


              
           

            (async () => {
                await cotizacioPE;

                // sumartotal();
                // descuentoFac();
                // $("#base5").val(baseiva5());
                // $("#base19").val(baseiva19());
                // $("#baseexento").val(excenton());
                // $("#totaliva5").val(sumariva5());
                // $("#totaliva19").val(sumariva19());
                // $("#dbaseexcluido").val(excluido());
                // $("#ivaotro").val( otroiva());
                // $("#baseotro").val( baseotroiva());
                // $("#ivaipc").val( ivaipc());
                // $("#baseipc").val( baseoipc());
                await ejecutarCalculos();
               
              })();
            

                

            }, error: function(xhr, status, error) {
              
                sumartotal();
                descuentoFac();
                $("#base5").val(baseiva5());
                $("#base19").val(baseiva19());
                $("#baseexento").val(excenton());
                $("#totaliva5").val(sumariva5());
                $("#totaliva19").val(sumariva19());
                $("#dbaseexcluido").val(excluido());
                $("#ivaotro").val( otroiva());
                $("#baseotro").val( baseotroiva());
                $("#ivaipc").val( ivaipc());
                $("#baseipc").val( baseoipc());

              }






        })





    }
    //funcion cambiar de lista precios

document.querySelector("#listaPr").addEventListener("change", function() {
    lista = document.querySelector("#listaPr").value;
    let listaCaja = $("#pcajaValor1").val();
    let listaFrcc = $("#pfrccValor1").val();
    let listaCaja2 = $("#pcajaValor2").val();
    let listaFrcc2 = $("#pfrccValor2").val();

    let listaCaja3 = $("#pcajaValor3").val();
    let listaFrcc3 = $("#pfrccValor3").val();

   
    if (lista == "lista1") {


        


        $("#pcaja").val(listaCaja); //ventaca
        $("#pfrcc").val(listaFrcc);

if(decimales==1 || decimales=="1"){
    $("#pfrcc").number(true, 2);
    $("#pcaja").number(true, 2);
}else{
    $("#pfrcc").number(true, 0);
    $("#pcaja").number(true, 0);
}
        
      

    } else {
        if(lista=="lista2"){
            if(listaCaja2==0 || listaCaja2==""|| listaCaja2==" "){
                $("#pcaja").val(listaCaja);
                
            }else{
                $("#pcaja").val(listaCaja2); //ventaca
                
                
            }
    
            if(listaFrcc2==0 || listaFrcc2==""|| listaFrcc2==" "){
                $("#pfrcc").val(listaFrcc);
                
            }else{
                $("#pfrcc").val(listaFrcc2); //ventaca
              
                
            }
          
        }else{
       
            if(lista=="lista3"){
            if(listaCaja3==0 || listaCaja3==""|| listaCaja3==" "){
                $("#pcaja").val(listaCaja);
                
            }else{
                $("#pcaja").val(listaCaja3); //ventaca
                
                
            }
    
            if(listaFrcc3==0 || listaFrcc3==""|| listaFrcc3==" "){
                $("#pfrcc").val(listaFrcc);
                
            }else{
                $("#pfrcc").val(listaFrcc3); //ventaca
                
            }
       
        }else{


            const selectedOption = this.options[this.selectedIndex];
            
            // Obtener los valores de los atributos personalizados usando getAttribute
            const value = selectedOption.value;                    // Valor del atributo "value"
            const text = selectedOption.text;                      // Texto visible
            const pcaja = selectedOption.getAttribute('preciocaja');           // Valor del atributo "data-extra"
            const pfrcc = selectedOption.getAttribute('preciofrcc'); // Valor de "data-precio-unitario"
            const pblist = selectedOption.getAttribute('precioblist'); // Valor de "data-descuento"


            if(pcaja==0 || pcaja==""|| pcaja==" "){
                $("#pcaja").val(listaCaja);
                
            }else{
                $("#pcaja").val(pcaja); //ventaca
                
                
            }
    
            if(pfrcc==0 || pfrcc==""|| pfrcc==" "){
                $("#pfrcc").val(listaFrcc);
                
            }else{
                $("#pfrcc").val(pfrcc); //ventaca
                
            }
         

            if(pblist==0 || pblist==""|| pblist==" "){
                
                
            }else{
                $("#pblister").val(pblist); //ventaca
                
            }
            

        }
           
       
         }
         
        
    }
   
    if(decimales==1 || decimales=="1"){
    $("#pfrcc").number(true, 2);
    $("#pcaja").number(true, 2);
    }else{
        $("#pfrcc").number(true, 0);
        $("#pcaja").number(true, 0);
    }
    preciocaja();
   
   


})


//funtion validar  productos dobles antes de agregar a tabla de facturacion

function verificarproductosDobles(id,cantidacaja,cantidafrcc,base,valoriva,Tprecio,mdescuento) {
    let estado = 0;


            if(masdeunproducto=="si"){
                return estado;
            }else{


              

                if(TipoEmpresa==5){

                    let rowsBody = $("#table").find('tbody > tr');

                    if (rowsBody.length > 0) {
                        for (let i = 0; i < rowsBody.length; i++) {
                            let producto = rowsBody[i].getElementsByTagName('th')[0].innerText;
                    
                            if (id == producto) {
                               
                                
                                // Obtener todas las celdas de la fila (excluyendo el <th>)
                                let celdas = rowsBody[i].getElementsByTagName('th');
                    
                                celdas[2].innerText = (parseInt(celdas[2].innerText) || 0) + parseInt( cantidacaja); // Caja
                                celdas[3].innerText = (parseInt(celdas[3].innerText) || 0) +parseInt( cantidafrcc); // Frcc
                                celdas[4].innerText = ((parseFloat(celdas[4].innerText) || 0) + parseFloat(base)).toFixed(2); // Base
                                celdas[5].innerText = ((parseFloat(celdas[5].innerText) || 0) + parseFloat(valoriva)).toFixed(2); // IVA
                                celdas[7].innerText = ((parseFloat(celdas[7].innerText) || 0) + parseFloat(Tprecio)); // Total precio
                                celdas[8].innerText = ((parseInt(celdas[8].innerText) || 0) + parseInt(mdescuento)); // Descuento

                                estado = 2;
                            }
                        }

                        
                    }

                    return estado;


                }else{

                    let rowsBody = $("#table").find('tbody > tr');
            
                    if (rowsBody.length > 0) {
                        for (let i = 0; i < rowsBody.length; i++) {
                            let producto = rowsBody[i].getElementsByTagName('th')[0].innerText;
                            if (id == producto) {
                                estado = 1;
    
                                break;
    
                            }
    
    
    
                        }
    
                    }
                    return estado;
                }
                





            }
   
 
}



//funcion mostrar prodcutos guardados segun mesas
document.querySelector("#mesas").addEventListener("change",(e)=>{

    console.log("r")
       let numerocotizacion= document.getElementById("mesas").value;
        let bodega = document.getElementById("idbodegas").value;
        buscarcotizacion(numerocotizacion,bodega);

        
  
       

    })


    
 document.querySelector("#pendientes").addEventListener("click",function(){
    console.log("s")
    let numerocotizacion= document.getElementById("mesas").value;
    let bodega = document.getElementById("idbodegas").value;
    buscarcotizacion(numerocotizacion,bodega);

  

 })



 document.getElementById("mesas").addEventListener("mousedown", function () {
    verMesasOcupadas();
  });

  let mesasNu=document.querySelector(".mesasN");
  if(mesasNu){
    mesasNu.addEventListener("change", function () {
        verMesasOcupadas();
      });
  }
 


  function verMesasOcupadas()
 {

    let bodega = document.getElementById("idbodegas").value;
  
    $.ajax({
      data: { "mesaDisp": 1, "bodega": bodega },
      url: "../controlador/config/cotizacion.php",
      type: 'post',
      success: function (response) {
        console.log(response);
  
        let mesasEnUso = JSON.parse(response);
  
        // Cambia estilos en <option>
        document.querySelectorAll('#mesas option').forEach(function (option, i) {
          let enUso = mesasEnUso.some(mesa => mesa.numeroCotizacion === option.value);
  
          option.style.backgroundColor = enUso ? 'green' : 'white';
          option.style.color = enUso ? 'white' : 'black';
  
          // También marcar visualmente el botón, si existe
          let btn = document.querySelectorAll('.mesa-button')[i];
          if (btn) {
            if (enUso) {
              btn.style.backgroundColor = 'green';
              btn.style.color = 'white';
            } else {
              btn.style.backgroundColor = '';
              btn.style.color = '';
            }
          }
        });
      }
    });
 }
//  document.getElementById("mesas").addEventListener("click",function(){
//     let bodega = document.getElementById("idbodegas").value;
    
//     $.ajax({

//        data: { "mesaDisp":1,"bodega":bodega }, //datos que se envian a traves de ajax
//        url: "../controlador/config/cotizacion.php", //archivo que recibe la peticion
//        type: 'post', //método de envio
//        // beforeSend: function () {
//        success: function(response) {
           
                         
//           console.log(response)
               
//            // Array que contiene las mesas en uso
// var mesasEnUso = JSON.parse(response);

// // Recorrer las opciones del select
// document.querySelectorAll('#mesas option').forEach(function(option) {
//     // Verificar si la opción está en el array de mesas en uso
//     var enUso = mesasEnUso.some(function(mesa) {
//         return mesa.numeroCotizacion === option.value;
//     });
    
//     // Si está en uso, aplicar el estilo
//     if (enUso) {
//         option.style.backgroundColor = 'green';
//         option.style.color = 'white'; // Cambiar el color del texto para mayor contraste
//     }else{
//         option.style.backgroundColor = 'white';
//         option.style.color = 'black';  
//     }
// });
                 
       

//        }


//    });
//  })
    
// const urlSearchParams = new URLSearchParams(window.location.search);
//  const urlValor=   urlSearchParams.get("click");   
//  console.log(urlValor)

//  if(urlValor=="factura"){
//     let numerocotizacion= document.getElementById("mesas").value;
//     let bodega = document.getElementById("idbodegas").value;
//     buscarcotizacion(numerocotizacion,bodega);
//  }