$(document).ready(function() {


})

////////funcion reeenviar todos los dias los docuemntos pendientes dek dia anterior

function obtenerFechaAyerColombia() {
  const ahora = new Date();
  const offsetColombia = -5 * 60;
  const offsetLocal = ahora.getTimezoneOffset();
  const diferencia = offsetColombia - offsetLocal;
  ahora.setMinutes(ahora.getMinutes() + diferencia);
  ahora.setDate(ahora.getDate() - 1);

  const dd = String(ahora.getDate()).padStart(2, '0');
  const mm = String(ahora.getMonth() + 1).padStart(2, '0');
  const yyyy = ahora.getFullYear();
 return `${yyyy}-${mm}-${dd}`;
}

function obtenerFechaHoyColombia() {
  const ahora = new Date();
  const offsetColombia = -5 * 60;
  const offsetLocal = ahora.getTimezoneOffset();
  const diferencia = offsetColombia - offsetLocal;
  ahora.setMinutes(ahora.getMinutes() + diferencia);

  const yyyy = ahora.getFullYear();
  const mm = String(ahora.getMonth() + 1).padStart(2, '0');
  const dd = String(ahora.getDate()).padStart(2, '0');
  return `${yyyy}-${mm}-${dd}`;
}

// Obtener bodega actual y generar una clave única para localStorage
const bodega = document.getElementById("idbodegas").value;
const hoy = obtenerFechaHoyColombia();
const claveBodega = `ultima_tarea_bodega_${bodega}`; // ✅ clave única por bodega
const ultimaEjecucion = localStorage.getItem(claveBodega);

if (ultimaEjecucion !== hoy) {
  const fechaAyer = obtenerFechaAyerColombia();

  $.ajax({
    data: {
      "ReportarTodas": 1,
      "fecha1": fechaAyer,
      "fecha2": fechaAyer,
      "bodega": bodega
    },
    url: "../controlador/config/cliente.php",
    type: 'post',
    success: function(response) {
      console.log(`Reenvío Documentos día anterior ${fechaAyer} para bodega ${bodega}`);
      console.log(response);
      localStorage.setItem(claveBodega, hoy); // ✅ registra ejecución por bodega
    }
  });
}

  
////////funcion reeenviar todos los dias los docuemntos pendientes dek dia anterior


//funcion reeenviar documentos electronicos maxivos

let BotonReportarFacElectr=document.getElementById("ReportarFacElectr");
if(BotonReportarFacElectr){
    BotonReportarFacElectr.addEventListener("click",function(){

        let fechaEle1=document.getElementById("fechaEle1").value;
        let fechaEle2=document.getElementById("fechaEle2").value;
       let bodega=document.getElementById("idbodegas").value;

       
       $.ajax({

        data: { "ReportarTodas": 1,"fecha1":fechaEle1,"fecha2":fechaEle2,"bodega":bodega }, //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)
            document.getElementById("consultaDocElectro").click(); 
        }
    })
})
}

let botonconsultaDocElectro=document.getElementById("consultaDocElectro");
if(botonconsultaDocElectro){
    
  botonconsultaDocElectro.addEventListener("click",()=>{
    document.getElementById("tablaFactElecto").innerHTML=""
   let fact=[];

 let fechaEle1=document.getElementById("fechaEle1").value;
 let fechaEle2=document.getElementById("fechaEle2").value;
let bodega=document.getElementById("idbodegas").value;
let idtipobusDocm=document.getElementById("idtipobusDocm").value;

 $.ajax({

    data: { "ventasElec": 1,"fecha1":fechaEle1,"fecha2":fechaEle2,"bodega":bodega,"idtipobusDocm":idtipobusDocm }, //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);

        if(respuesta.length>0){
          
          
          respuesta.forEach(v=>{


            let color="";
            let ocol="";
            if(v.cufe==0  && (v.EstadoEjecucion==1  || v.EstadoEjecucion==2)){
                color="bg-danger"
                ocol="";
            }else{
                color="bg-info "
                ocol="hidden"
            }


            let d=`
        
            <tr class=${color} >
            <td  class='text-light'  >${v.factura}</td>
            <td  class='text-light' >${v.valor}</td>     
       
            <td scope="col" class='text-light'  >${v.fechaFactura}</td>
            <td scope="col" class='text-light'  >${v.vendedor}</td>
            <td scope="col" class='text-light'  >${v.cliente}</td>
            <td scope="col"class='text-light'  >${v.mensajeProveTecno}</td>
            <td scope="col" class='text-light' ><input type="button"  id=${v.factura} ${ocol} class='btn btn-warning' value="Reenviar">  </input></td>

           
            </tr>
`
       

        fact.push(d)

          })  


          let valor=fact.join("");
          document.getElementById("tablaFactElecto").innerHTML=valor

           


        }

    }

})




  })
}

let campotablaElectro=document.getElementById("tablaFactElecto");
if(campotablaElectro){
    campotablaElectro.addEventListener("click",async (e)=>{
       
        if(e.target.id){
            $('#modalcarga').modal('show');
            let factura=e.target.id


            let token= await loginApiElectronica();

            //pruebas=
            //produccion=https://csi.clarisa.co:8443/facturas/rest/api/v1/obtenerEstadoFactura?nit=${nitEmpresa}&numeroDocumentoComercial=${factura}

            fetch(`https://csi.clarisa.co:8443/facturas/rest/api/v1/obtenerEstadoFactura?nit=${nitEmpresa}&numeroDocumentoComercial=${factura}`, {
                method: 'get',
                headers: {
                    'Content-Type': 'application/json',
                    "Authorization": token
                },


            }).then(res=>res.json()).then(dat=>{

                if(dat.success==true ){
                    let mensa=dat.data.estado;
                    let cufe=dat.data.cufe;
                    if(mensa=="REPORTADA_DIAN"){

                        let data={ "estado":mensa,"cufe":cufe,"numero":factura  };
                                    
   
                            $.ajax({
                                   data: data, //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) 
                                    
                                    
                                    {
                                        document.getElementById("consultaDocElectro").click(); 
                                        $('#modalcarga').modal('hide');                                       

                                      }
                                    })  
                                 
                    }else{
                        let data={ "estado":mensa,"cufe":0,"numero":factura  };
                                    
   
                        $.ajax({
                               data: data, //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) 
                                
                                
                                {
                                    document.getElementById("consultaDocElectro").click(); 
                                    $('#modalcarga').modal('hide');                                       

                                  }
                                }) 

                     //   alert(mensa);
                    }
                  

                }else{
            let data={ "facElectro":factura  };
            

                
                $.ajax({

                    data: { "facElectro":factura  }, //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) 
                
                
                    {
                        document.getElementById("consultaDocElectro").click();   
                        $('#modalcarga').modal('hide');

                    }
                }) 
                }
                console.log(dat)
            })

             
        }
        
    })
}




$("#buscaventas").click(function() {
    ventass();

});

var numeroDevoElectorinca=0;



function ventass() {
    var fecha1 = $("#fecha1").val();
    var fecha2 = $("#fecha2").val();
    var ivainf = $("#selecioninfo").val();
    var vendedor = $("#infvendedor").val();
    let infoTurno= $("#infoTurno").val();
    let bodega = document.getElementById("idbodegas").value;

    $.ajax({
        data: { "fecha1": fecha1, "fecha2": fecha2, "iva": ivainf, "vendedor": vendedor, "bodega": bodega,"infoTurno":infoTurno}, //datos que se envian a traves de ajax
        url: "../controlador/config/infoventas.php", //archivo que recibe la peticion
        type: 'post', //método de envio

        // beforeSend: function () {
        //    alert("Procesando, espere por favor...");
        // },
        success: function(response) {
            console.log(response);
            if(mostrarvalorVenta>0){
                response=response-((response/100)*mostrarvalorVenta)
            }
            $("#valortotal").val(response);

            $("#valortotal").number(true, 0);

        }

    });


}


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


    ventasdetalla();
    $('#tablacargventas tr').remove();

});

function ventasdetalla() {
    var fecha1 = $("#fecha1").val();
    var fecha2 = $("#fecha2").val();
    var vendedor = $("#infvendedor").val();
    let bodega = document.getElementById("idbodegas").value;
    let infoTurno= $("#infoTurno").val();
    $.ajax({
        data: { "fecha1": fecha1, "fecha2": fecha2, "vendedor": vendedor, "detalle": 1, "bodega": bodega,"infoTurno":infoTurno }, //datos que se envian a traves de ajax
        url: "../controlador/config/infoventas.php", //archivo que recibe la peticion
        type: 'post', //método de envio

        // beforeSend: function () {
        //    alert("Procesando, espere por favor...");
        // },
        success: function(response) {
            console.log(response)
            var respue = JSON.parse(response);
            
let respuest=respue.produc;
let respueDv=respue.producDv;

// console.log(respueDv)
            $.each(respuest, function(index, respuesta) {


                var codigo = respuesta["codigoProducto"];
                var nombre = respuesta["nombre"];
                var caja = respuesta["cantCaja"];
                var frcc = respuesta["cantfrcc"];

                var cliente = respuesta["cliente"];
                var vendedorr = respuesta["vendedor"];
                var valor = respuesta["valor"];

                if(mostrarvalorVenta>0){
                    valor=valor-((valor/100)*mostrarvalorVenta)
                }

                var factura = respuesta["factura"];
                var fechaDv = respuesta["fechaDevoParcial"];
                let bodegaVen = respuesta["bodegaVenta"];

                let sabersiesPos=false;
                if (/^b(1[0-9]|20|[1-9])-/i.test(factura)) {
                    sabersiesPos=true;
                    console.log("La variable empieza con B1- a B20- (mayúscula o minúscula).");
                  } 

                if((caudreDetallado=="Pos" ||caudreDetallado=="pos") && sabersiesPos==true ){
                    
                }else{

                if (fechaDv != null) {
                    let fechaDeov = fechaDv.substr(0, 10);

                    if (fechaDeov >= fecha1 && fechaDeov <= fecha2) {
                        console.log(fechaDeov)

                    } else {

                        $("#tablacargventas").append(

                            "<tr ><td >" + codigo + "</td>  <th>" + nombre + "</th> <th>" + caja + "</th> <th>" + frcc + "</th> <th>" + cliente +
                            "</th> <th>" + vendedorr + "</th> <th class='vet'  "+verVentas+" >" + valor + "</th>  <th>" + factura + "</th> <th>" + bodegaVen + "</th>"


                        );
                    }
                } else {
                    $("#tablacargventas").append(

                        "<tr ><td >" + codigo + "</td>  <th>" + nombre + "</th> <th>" + caja + "</th> <th>" + frcc + "</th> <th>" + cliente +
                        "</th> <th>" + vendedorr + "</th> <th class='vet'  "+verVentas+" >" + valor + "</th>  <th>" + factura + "</th> <th>" + bodegaVen + "</th>"


                    );
                }


            }


            });

            // devolucines
            $.each(respueDv, function(index, respuesta) {

                var codigo = respuesta["producto"];
                var nombre = respuesta["nombre"];
                var caja = respuesta["CajaDv"] *-1;
                var frcc = respuesta["FrccDv"] *-1;

                var cliente = respuesta["ClienteDv"];
                var vendedorr = respuesta["vendedordv"];
                var valor = respuesta["valorDv"] *-1;
                console.log(valor)
                if(mostrarvalorVenta>0){
                    valor=valor-((valor/100)*mostrarvalorVenta)
                }

                var factura = respuesta["numeroFactu"];
                var fechaDv = respuesta["fechaDv"];
                let bodegaVen = respuesta["bodegaDV"];

                let sabersiesPos=false;
                if (/^b(1[0-9]|20|[1-9])-/i.test(factura)) {
                    sabersiesPos=true;
                    console.log("La variable empieza con B1- a B20- (mayúscula o minúscula).");
                  } 

                if((caudreDetallado=="Pos" ||caudreDetallado=="pos") && sabersiesPos==true ){
                    
                }else{
                    

                        $("#tablacargventas").append(

                            "<tr ><td >" + codigo + "</td>  <th>" + nombre + "</th> <th>" + caja + "</th> <th>" + frcc + "</th> <th>" + cliente +
                            "</th> <th>" + vendedorr + "</th> <th class='vetDv'  "+verVentas+" >" + valor  + "</th>  <th>" + factura + "</th> <th>" + bodegaVen + "</th>"


                        );
                    
                    }

            });
            //fin mostrar devoluciones
            $(".vet").number(true, 0);

        }

    });
    ventass();

}


//FUNCIONES PARA LAS DEVOLUCION Y REIMPRESION

$("#buscarnumero").click(function() {
buscarFacturaDevolve()
    });

function buscarFacturaDevolve(){
    return new Promise ((resolve)=>{


    

    var nunerod = $("#numerofactd").val();

    let bodega = document.getElementById("idbodegas").value;
    $('#prodtabla tr').remove();
    var devol = $("#iddevolu").val("");
    var id = $("#dnit").val("");
    var nombrec = $("#dnombre").val("");
    var vendedor = $("#dvendedorr").val("");
    var fecha = $("#dfecha").val("");
    var nomvende = $("#dnvende").val("");
    var total = $("#dtotalfact").val("");
    var iva5 = $("#dtotaliva5").val("");
    var base5 = $("#dbase5").val("");
    var iva19 = $("#dtotaliva19").val("");
    var base19 = $("#dbase19").val("");
    var excento = $("#dbaseexento").val("");
    var exccluido = $("#dbaseexcluido").val("");
    var dereccio = $("#ddire").val("");
    let correo = $("#dcorreo").val("");
    let telcli = $("#dtel").val("");
    let detallef = $("#comentariosdev").val("");
    let descuento = $("#descuentoDev").val("");
    let propinaImpresion=$("#propinaImpresion").val(0);
    let bodegaInventario=$("#bodegaInventario").val(0);
    let pagosDinamicos=$("#pagosDinamicos").val(0)
    let diasVencimiento=$("#diasVencimiento").val(0)
   
    
    let tipoatencioD=$("#tipoatencioD").val("");
let tipoEletonico=$("#tipoEletonico").val("");
    

    let ivaotro=$("#divaotro").val("");
    let baseotro=$("#dbaseotro").val("");
   let ivaipc= $("#divaipc").val("");
   let baseipc= $("#dbaseipc").val("");

   let efectivoDe=$("#efectivoDe").val("");
   let trasferenciaDV=$("#trasferenciaDV").val("");
   let tarjetasDV=$("#tarjetasDV").val("");

    $("#bodegaDevo").val("");

    $("#Nombre_electd").val("");
    $("#Apellido_electd").val("");
    $("#Naturaleza_electd").val("");
    $("#Regimen_electd").val("");
    $("#tipoIdentificacion_electd").val("");
    $("#responsabilidad_elecd").val("");
    $("#dtipoFac").val("");
    $("#cufe").val("");
    $("#NumeroFactElectronica").val("");
    $("#dciudadd").val("");
   
    
           
    document.getElementById("prodtabla").innerHTML=" "
   


    $.ajax({
        data: { "numerof": nunerod, "bodega": bodega }, //datos que se envian a traves de ajax
        url: "../controlador/config/devolucion.php", //archivo que recibe la peticion
        type: 'post', //método de envio

        // beforeSend: function () {
        //    alert("Procesando, espere por favor...");
        // },
        success: function(response) {

            var respuest = JSON.parse(response);
           
            var datos = respuest["fact"][0];
            var productos = respuest["produ"];
            var bodegaD = respuest["bodegad"];
            var numerodevolucion = respuest["numero"];
            console.log(datos["cliente"])
            $("#bodegaDevo").val(bodegaD);
            var devol = $("#iddevolu").val(numerodevolucion);
            var id = $("#dnit").val(datos["cliente"]);
            
            if (!datos["otrDato1"] || datos["otrDato1"].trim().length === 0) {
               
            
                var nombrec = $("#dnombre").val(datos["Nombre"]+" " +datos["apellido"]);
            }else{
                var nombrec = $("#dnombre").val(datos["otrDato1"]);
            }
            

            var vendedor = $("#dvendedorr").val(datos["vendedor"]);
            var fecha = $("#dfecha").val(datos["fechaFactura"]);
            var nomvende = $("#dnvende").val(datos["nombrev"]);
            var total = $("#dtotalfact").val(datos["valor"]);
            var iva5 = $("#dtotaliva5").val(datos["iva5"]);
            var base5 = $("#dbase5").val(datos["base5"]);
            var iva19 = $("#dtotaliva19").val(datos["iva19"]);
            var base19 = $("#dbase19").val(datos["base19"]);
            var excento = $("#dbaseexento").val(datos["excento"]);
            var exccluido = $("#dbaseexcluido").val(datos["excluido"]);

            if (!datos["direcionSc"] || datos["direcionSc"].trim().length === 0) {
            let dereccio = $("#ddire").val(datos["direccion"]);
            }else{

                let dereccio = $("#ddire").val(datos["direcionSc"]);
            }

            let cambio = $("#cambio").val(datos["devuelta"]);
            let correoo = $("#dcorreo").val(datos["correo"]);
            if (!datos["TelSuc"] || datos["TelSuc"].trim().length === 0) {
                        let telc = $("#dtel").val(datos["telefono"]);
            }else{
                let telc = $("#dtel").val(datos["TelSuc"]);

            }
            let detellede = $("#comentariosdev").val(datos["detallef"]);
            let desceunto = $("#descuentoDev").val(datos["descuento"]);
            let diasVencimiento = $("#diasVencimiento").val(datos["diasVencimiento"]);

            let ivaotro=$("#divaotro").val(datos["ivaotro"]);
            let baseotro=$("#dbaseotro").val(datos["baseotro"]);
            let ivaipc= $("#divaipc").val(datos["ivaipc"]);
            let baseipc= $("#dbaseipc").val(datos["baseipc"]);
            let tipoatencion=$("#tipoatencioD").val(datos["tipoAtencion"]);
            let Pos_Electronico=$("#tipoEletonico").val(datos["Pos_Electronico"]);
            


            if(datos["bodegaInventario"]==0 || datos["bodegaInventario"]=="0"){
                $("#bodegaInventario").val(bodegaD);
            }else{
                $("#bodegaInventario").val(datos["bodegaInventario"]);
            }
            

            $("#dtipoFac").val(datos["tipoFactura"]);
            $("#Nombre_electd").val(datos["Nombre"]);
            $("#Apellido_electd").val(datos["apellido"]);
            $("#Naturaleza_electd").val(datos["naturaleza"]);
            $("#Regimen_electd").val(datos["regimen"]);
            $("#tipoIdentificacion_electd").val(datos["tipoId"]);
            $("#responsabilidad_elecd").val(datos["responsabilidad"]);
            $("#NumeroFactElectronica").val(datos["factura"]);
            $("#dciudadd").val(datos["codigociudad"]);
            $("#cufe").val(datos["cufe"]);

            // console.log(datos["ventCredicto"])
           

            $("#efectivoDe").val(datos["efectivo"]);
            $("#trasferenciaDV").val(datos["tcredicto"]);
            $("#tarjetasDV").val(datos["tdebito"]);


            $("#dtotalfactCredito").val(datos["ventCredicto"]);
            
            $("#propinaImpresion").val(datos["propina"]);
            $("#pagosDinamicos").val(datos["pagosDinamicos"])
           
           
            $.each(productos, function(index, respuesta) {

                var codigo = respuesta["codigoProducto"];
                var nombre = respuesta["nombre"];
                var caja =parseFloat( respuesta["cantCaja"]);
                var frcc = parseInt(respuesta["cantfrcc"]);
                var base = respuesta["base"];
                var iva = respuesta["iva"];
                var tipo = respuesta["tipoiva"];
                var valor = respuesta["valor"];
                var devolucionP = respuesta["devolucion"];
                var descuentoPro = respuesta["descuentoUn"];
                var tipoPro=respuesta["tipoProduct"];
                let idvencimeinto=respuesta["idVencimeinto"];
                let tipoProduct=respuesta["tipoProduct"];
                let cajaDv=parseFloat(respuesta["cajaDv"]);
                let frccDv=parseInt( respuesta["frccDv"]);
                let costoCajaD=respuesta["costoCaja"];
                let CostoFrccD=respuesta["costoFrcc"];
                let mostrarDvFrcc="hidden"
                let mostrarDvCaja="hidden"


                let factor=respuesta["factor"];

                   if(cajaDv < caja){
                    mostrarDvCaja="";
                   } 
                 
                   if(frcc > 0 &&  frcc > frccDv){
                    
                    mostrarDvFrcc="";
                   }
                  
                    
                if (caja > 0) {
                    var precioCaja = valor / caja;
                    

                } else{
                    var  precioCaja=0;  
                }
                if(frcc>0) {
                    var precioFrcc = valor / frcc;
                   
                }else{
                    var precioFrcc =0;
                }

 
                // "<label  class='btn bg-warning'>Dv</label>"+
                $("#prodtabla").append(
                    "<tr ><td >" + codigo + "</td>  <td>" + nombre + "</td>  <td>" + caja +
                           

                    "</td><td>" + frcc + "</td> <td>" + base
                     + "</td> <td>" + iva + "</td> <td>" + tipo
                      + "</td><td>" + valor + "</td><td>" + descuentoPro 
                      + "</td><td hidden='true'>" + precioCaja + "</td><td hidden='true'>" + precioFrcc
                       + "</td><td hidden='true'>" + devolucionP
                        + "</td><td> <input type='button' "+mostrarDvCaja+" "+anularfact
                        +" style='background-color:red;color:white;border-radius:15px;font-size:12px;width: 52px;height: 20px;text-align: center;padding-bottom:5px;margin:auto;padding-top: 2px;padding-left: 2px;' value='DvCaja' id='dvu' ></input> <input type='button' "+mostrarDvFrcc+" "+anularfact
                        +" style='background-color:#A042EC;color:white;border-radius:15px;font-size:12px;width: 52px;height: 20px;text-align: center;padding-bottom:5px;margin:auto;padding-top: 2px;padding-left: 2px;' value='DvFrcc' id='dvu' ></input>  </td><td hidden='true'>" + 
                        tipoPro + "</td><td hidden='true'>" + idvencimeinto
                        + "</td>   <td hidden='true'>" + tipoProduct + "</td> <td hidden='true'>" + cajaDv
                         + "</td> <td hidden='true'>" + frccDv + "</td> <td hidden='true'>" + costoCajaD 
                         + "</td><td hidden='true'>" + CostoFrccD + "</td><td hidden='true'>" + factor + "</td>"


                );

                resolve(1)

                

            });
            
           
        }


    


    });




})

    }



// reimpirmi factura

$("#reimprimir").on('click', function() {


    let bodega = $("#bodegaDevo").val();
    var array = [];
    /* Obtenemos todos los tr del Body*/
    var rowsBody = $("#tabaldevolucion").find('tbody > tr');
    /* Obtenemos todos los th del Thead */
    var rowsHead = $("#tabaldevolucion").find('thead > tr > th');

    /* Iteramos sobre as filas del tbody*/
    if (rowsBody.length > 0) {
        for (var i = 0; i < rowsBody.length; i++) {
            var obj = {}; /* auxiliar*/

            let tipoProDD=rowsBody[i].getElementsByTagName('td')[13].innerText;
            let precioooo=rowsBody[i].getElementsByTagName('td')[7].innerText;
            if(tipoProDD=="Fabricacion" || precioooo==0){

            }else{


                for (var 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('td')[j].innerText;
               
                array.push(obj); /* Añadimos al Array Principal*/

            }

            
        }
    }

  


    var factura = JSON.stringify(array);


    var id = $("#dnit").val();
    var nombrec = $("#dnombre").val();
    var numfactur = $("#numerofactd").val();
    var fecha = $("#dfecha").val();
    var nomvende = $("#dnvende").val();
    var total = $("#dtotalfact").val();
    var iva5 = $("#dtotaliva5").val();
    var base5 = $("#dbase5").val();
    var iva19 = $("#dtotaliva19").val();
    var base19 = $("#dbase19").val();
    var excento = $("#dbaseexento").val();
    var excluido = $("#dbaseexcluido").val();
    var direcion = $("#ddire").val();
    let cambio = $("#cambio").val();
    let correo = $("#dcorreo").val();
    let telecliente = document.querySelector("#dtel").value;
    let detallef = $("#comentariosdev").val();
    let descuento = $("#descuentoDev").val();
    let dtipoFac = $("#dtipoFac").val();

    let divaotro=$("#divaotro").val();
    let dbaseotro=$("#dbaseotro").val();
   let divaipc= $("#divaipc").val();
   let dbaseipc= $("#dbaseipc").val();
   let tipopago= $("#dtotalfactCredito").val();

   let efectivo=$("#efectivoDe").val();
   let trasferenciaDV=$("#trasferenciaDV").val();
   let tarjetas=$("#tarjetasDV").val();
let propinaImpresion= $("#propinaImpresion").val();

let tipoAtencion=$("#tipoatencioD").val();
let tipoelectrono=$("#tipoEletonico").val();

let diasVencimiento=$("#diasVencimiento").val()

    //organizar german electronica y adjuntar a los formatos
    
    //0 para pos
    //1 distribuidora

    if (dtipoFac == "Electronica") {
        var dvalorcufe = 1;
    } else {
        var dvalorcufe = 0;
    }
    let cufe = $("#cufe").val();




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

    if (regimen == 1 || regimen==3) {
        //metodo post IMPRESEION


        if (tipoimprision == 0) {
            $.ajax({

                //FORMATO IMPRESION PUNTO DE VENTA

                data: {
                    'factura': factura,
                    'numf': numfactur,
                    'total': total,
                    'idc': id,
                    'nombrec': nombrec,
                    'direc': direcion,
                    'nombrev': nomvende,
                    'fecha': fecha,
                    'base5': base5,
                    'base19': base19,
                    'iva5': iva5,
                    'iva19': iva19,
                    'excento': excento,
                    'excluido': excluido,
                    "devuleta": cambio,
                    'copia': 'copia',
                    "telcli": telecliente,
                    "detallef": detallef,
                    "descuento": descuento,
                    "tipofactura": dtipoFac,
                    "bodega": bodega,
                    "valorcufe": dvalorcufe,
                    "cufe": cufe,
                    "otroiva":divaotro,
                     "baseotro":dbaseotro,
                     "ivaipc":divaipc,
                    "baseipc":dbaseipc,
                    "credit": tipopago,
                    "efectivo": efectivo,
                    "tcred": trasferenciaDV,
                    "tdebi": tarjetas,
                    "propina":propinaImpresion,
                    "tipoAtencion":tipoAtencion,
                    "tipoelectrono":tipoelectrono,
                    "vencimientoFactura":diasVencimiento
                },
                url: "facturacion/impresion.php",
                type: "post",

                //FORMATO IMPRESION DISTRIBUDORA
                /*
                                   data:{'factura':factura,'numf':numfactur,'total':total,
                                   'idc':id,'nombrec':nombrec,'direc':direcion,'nombrev':nomvende,'fecha':fecha,
                                   'base5':base5,'base19':base19,'iva5':iva5,'iva19':iva19,'excento':excento,'excluido':excluido,"devuleta":cambio,'copia':'copia',"correo":correo,"detallef": detallef},
                                   url:"facturacion/impresion_venta_alterno.php",
                                   type:"post",
                */
                success: function(response) {

                    let ventana = window.open("facturacion/impresiongeneral.php","ventana1","width=1000,height=1000");
                    ventana.document.write(response);
                    
                }

            });
            // metodo get IMPRESION

            /*
            window.open('facturacion/impresion.php?factura='+factura+'&numf='+numfactur+' &total='+total+
            '&idc='+id+'&nombrec='+nombrec+'&direc='+direcion+'&nombrev='+nomvende+'&fecha='+fecha+
            '  &base5='+base5+'&base19='+base19+ '&iva5='+iva5+' &iva19='+iva19+'&excento='+excento+'&excluido='+excluido+' &copia="copia" ');
            */
        } else {
            $.ajax({




                //FORMATO IMPRESION DISTRIBUDORA

                data: {
                    'factura': factura,
                    'numf': numfactur,
                    'total': total,
                    'idc': id,
                    'nombrec': nombrec,
                    'direc': direcion,
                    'nombrev': nomvende,
                    'fecha': fecha,
                    'base5': base5,
                    'base19': base19,
                    'iva5': iva5,
                    'iva19': iva19,
                    'excento': excento,
                    'excluido': excluido,
                    "devuleta": cambio,
                    'copia': 'copia',
                    "correo": correo,
                    "detallef": detallef,
                    "valorcufe": dvalorcufe,
                    "cufe": cufe,
                    "regimen": regimen,
                    "bodega": bodega,
                    "descuento": descuento,
                    "tipofactura": dtipoFac,
                    "telcli": telecliente,
                    "otroiva":divaotro,
                     "baseotro":dbaseotro,
                     "ivaipc":divaipc,
                    "baseipc":dbaseipc,
                    "credit": tipopago,
                    "efectivo": efectivo,
                    "tcred": trasferenciaDV,
                    "tdebi": tarjetas,
                    "propina":propinaImpresion,
                    "tipoAtencion":tipoAtencion,
                    "tipoelectrono":tipoelectrono,
                    "vencimientoFactura":diasVencimiento
                },
                url: "facturacion/impresion_venta_alterno.php",
                type: "post",

                success: function(response) {

                    let ventana = window.open("facturacion/impresiongeneral.php","ventana1","width=1000,height=1000");
                    ventana.document.write(response);
                }

            });


        }
    } else {


        //metodo post IMPRESION

        if (tipoimprision == 0) {
            $.ajax({
                data: {
                    "factura": factura,
                    'numf': numfactur,
                    'total': total,
                    'idc': id,
                    'nombrec': nombrec,
                    'direc': direcion,
                    'nombrev': nomvende,
                    'fecha': fecha,
                    "devuleta": cambio,
                    'copia': "copia",
                    "telcli": telecliente,
                    "detallef": detallef,
                    "descuento": descuento,
                    "tipofactura": dtipoFac,
                    "bodega": bodega,
                    "valorcufe": dvalorcufe,
                    "cufe": cufe,
                    "credit": tipopago,
                    "efectivo": efectivo,
                    "tcred": trasferenciaDV,
                    "tdebi": tarjetas,
                    "propina":propinaImpresion,
                    "tipoAtencion":tipoAtencion,
                    "tipoelectrono":tipoelectrono,
                    "vencimientoFactura":diasVencimiento
                },
                url: "facturacion/impresions.php",
                type: "post",

                success: function(response) {

                    let ventana = window.open("facturacion/impresiongeneral.php","ventana1","width=1000,height=1000");
                    ventana.document.write(response);
                }

            });
        } else {
            $.ajax({
                data: {
                    'factura': factura,
                    'numf': numfactur,
                    'total': total,
                    'idc': id,
                    'nombrec': nombrec,
                    'direc': direcion,
                    'nombrev': nomvende,
                    'fecha': fecha,
                    'base5': base5,
                    'base19': base19,
                    'iva5': iva5,
                    'iva19': iva19,
                    'excento': excento,
                    'excluido': excluido,
                    "devuleta": cambio,
                    'copia': 'copia',
                    "correo": correo,
                    "detallef": detallef,
                    "descuento": descuento,
                    "tipofactura": dtipoFac,
                    "valorcufe": dvalorcufe,
                    "cufe": cufe,
                    "regimen": regimen,
                    "bodega": bodega,
                    "telcli": telecliente,
                    "otroiva":divaotro,
                     "baseotro":dbaseotro,
                     "ivaipc":divaipc,
                    "baseipc":dbaseipc,
                    "credit": tipopago,
                    "efectivo": efectivo,
                    "tcred": trasferenciaDV,
                    "tdebi": tarjetas,
                    "propina":propinaImpresion,
                    "tipoAtencion":tipoAtencion,
                    "tipoelectrono":tipoelectrono,
                    "vencimientoFactura":diasVencimiento

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

                success: function(response) {

                    let ventana = window.open("facturacion/impresiongeneral.php","ventana1","width=1000,height=1000");
                    ventana.document.write(response);
                }

            });
        }


    }




});

let botonreimprimirDV=document.getElementById("reimprimirDV");
if(botonreimprimirDV){
    botonreimprimirDV.addEventListener("click",function(){
 
        let numeroDevo=prompt("Numero Devoluciones")
        let bodega = document.getElementById("idbodegas").value;

        $.ajax({
            data: { "numeroDVImp": numeroDevo, "bodega": bodega }, //datos que se envian a traves de ajax
            url: "../controlador/config/devolucion.php", //archivo que recibe la peticion
            type: 'post', //método de envio
    
            // beforeSend: function () {
            //    alert("Procesando, espere por favor...");
            // },
            success: function(response) {

                var respuest = JSON.parse(response);
                                    
               
                    let numfactur=respuest[0]["numeroFactu"];
                    let id=respuest[0]["ClienteDv"];//cedula cleinte
                    let nombrec=respuest[0]["Nombre"];//nombre cleinte
                    let direcion=respuest[0]["direccion"];
                    let nomvende=respuest[0]["nombrev"];
                    let fechad=respuest[0]["fechaDv"];
                    let numeroDevo=respuest[0]["numeroDevo"];
                    
                    let factura=[];
         let total=0;

                   
                $.each(respuest, function(index, respuesta) {
                    let dat={"Codigo":respuesta["producto"],
                        "Nombre":respuesta["nombre"],
                        "Cantida_caja":respuesta["CajaDv"],
                        "Cantida_frcc":respuesta["FrccDv"],
                        "precio":respuesta["valorDv"]
                    
                    }
                    total=parseInt(total)+ parseInt( respuesta["valorDv"]);
                     factura.push(dat);
                 

                })
                factura=JSON.stringify(factura);

                if(tipoimprision==0){
                    ruta='facturacion/impresiondevolucion.php';
               }else{
                   ruta='facturacion/formatoDevoluiconDist.php'; 
               }
              
                                        $.ajax({
                                            data: {
                                                'factura': factura,
                                                'numf': numfactur,
                                                'total': total,
                                                'idc': id,
                                                'nombrec': nombrec,
                                                'direc': direcion,
                                                'nombrev': nomvende,
                                                'fecha': fechad,
                                                'devol':numeroDevo,
                                                'bodega':bodega,
                                                'reimpreDv':1        
                                                         
                            
                                            },
                                            url: ruta,
                                            type: "post",
                            
                                            success: function(response) {
                            
                                                let ventana = window.open("facturacion/impresiongeneral.php","ventana1","width=1000,height=1000");
                                                ventana.document.write(response);
                                              
                                                
                                                
                                            }
                            
                                        });

         

            }

        })
    })
}

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

//     /* Iteramos sobre as filas del tbody*/
//     if (rowsBody.length > 0) {
//         for (var i = 0; i < rowsBody.length; i++) {
//             var obj = {}; /* auxiliar*/
//             for (var 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('td')[j].innerText;
//             array.push(obj); /* Añadimos al Array Principal*/
//         }
//     }
//   let total=0;
//     let datosf =array.filter((x)=>{

//        if( x.devolucionEstado==numeroDevo){
    
//         total=parseFloat(total)+ parseFloat(x.precio);
//         return x;
//        }
//     }
//  )
//      let factura=JSON.stringify(datosf);
//      // let factura=JSON.stringify(array);
//     // console.log(factura);
//     //  return
//     let numfactur = $("#numerofactd").val();
//     // let total = $("#dtotalfact").val();

//     let id = $("#dnit").val();
//     let nombrec = $("#dnombre").val();
//     let direcion = $("#ddire").val();
  
//     let nomvende = $("#dnvende").val();
//     let fechad=$("#defecha").val();
//     let bodega = $("#bodegaDevo").val();
   
//     if(tipoimprision==0){
//         ruta='facturacion/impresiondevolucion.php';
//    }else{
//        ruta='facturacion/formatoDevoluiconDist.php'; 
//    }
  
//                             $.ajax({
//                                 data: {
//                                     'factura': factura,
//                                     'numf': numfactur,
//                                     'total': total,
//                                     'idc': id,
//                                     'nombrec': nombrec,
//                                     'direc': direcion,
//                                     'nombrev': nomvende,
//                                     'fecha': fechad,
//                                     'devol':numeroDevo,
//                                     'bodega':bodega,
//                                     'reimpreDv':1        
                                             
                
//                                 },
//                                 url: ruta,
//                                 type: "post",
                
//                                 success: function(response) {
                
//                                     let ventana = window.open("facturacion/impresiongeneral.php","ventana1","width=1000,height=1000");
//                                     ventana.document.write(response);
                                  
                                    
                                    
//                                 }
                
//                             });
                           

// }

//funcion realizar anulacion de la factura

function confirmDialogoTurno(mensaje) {
    return new Promise((resolve) => {
        let dialog = document.getElementById("dialogoConfirmarUsuarioDv");
        if (!dialog) {
            dialog = document.createElement("dialog");
            dialog.id = "dialogoConfirmarUsuarioDv";
            dialog.style.border = "none";
            dialog.style.borderRadius = "10px";
            dialog.style.padding = "20px";
            dialog.style.boxShadow = "0 4px 10px rgba(0,0,0,0.3)";
            dialog.style.maxWidth = "400px";
            dialog.style.textAlign = "center";
            dialog.style.fontFamily = "Arial, sans-serif";
            document.body.appendChild(dialog);
            
            dialog.addEventListener('cancel', (e) => {
                e.preventDefault();
                dialog.close();
                resolve(false);
            });
        }
        
        dialog.innerHTML = `
            <div style="margin-bottom: 20px;">
                <h3 style="color: #dc3545; margin-top: 0; font-weight: bold;">⚠️ Confirmación</h3>
                <p style="font-size: 16px; color: #333;">${mensaje}</p>
            </div>
            <div style="display: flex; justify-content: center; gap: 15px;">
                <button type="button" id="btnDialogoCancelar" style="background: #6c757d; color: white; border: none; padding: 10px 20px; border-radius: 5px; cursor: pointer; font-size: 15px; font-weight: bold;">Cancelar</button>
                <button type="button" id="btnDialogoAceptar" style="background: #28a745; color: white; border: none; padding: 10px 20px; border-radius: 5px; cursor: pointer; font-size: 15px; font-weight: bold;">Confirmar</button>
            </div>
        `;
        
        dialog.showModal();
        
        document.getElementById("btnDialogoAceptar").onclick = () => {
            dialog.close();
            resolve(true);
        };
        document.getElementById("btnDialogoCancelar").onclick = () => {
            dialog.close();
            resolve(false);
        };
    });
}

var clikanularfactu=false;

$("#devolution").on('click', async function() {
if(clikanularfactu==false){

   
    clikanularfactu=true;
    var array = [];
let totalCajaDv = 0;
let totalFrccDv = 0;
let estadoDev=0;
let efectivoDv=$("#efectivoDe").val();
let tarjetasDv=$("#tarjetasDV").val();
let trasfereDv=$("#trasferenciaDV").val();
let credictoDv=$("#dtotalfactCredito").val();
let cuentapagosDinamicos=$("#pagosDinamicos").val();

/* Obtenemos todos los tr del Body*/
var rowsBody = $("#tabaldevolucion").find('tbody > tr');

/* Obtenemos todos los th del Thead */
var rowsHead = $("#tabaldevolucion").find('thead > tr > th');

/* Iteramos sobre las filas del tbody */
if (rowsBody.length > 0) {
    for (var i = 0; i < rowsBody.length; i++) {
        var obj = {}; /* auxiliar */
        for (var j = 0; j < rowsHead.length; j++) {
            /* Asignamos como clave el text del th del thead */
            var headerText = rowsHead[j].innerText.trim();
            var cellText = rowsBody[i].getElementsByTagName('td')[j].innerText.trim();

            /* Asignamos como Valor el text del tr del tbody */
            obj[headerText] = cellText;

            /* Sumamos los valores de cajaDv y frccDv si coinciden con el headerText */
            if (headerText == "cajaDv") {
                totalCajaDv += parseFloat(cellText) || 0;  // Convertimos a número
            }
            if (headerText == "frccDv") {
                totalFrccDv += parseFloat(cellText) || 0;  // Convertimos a número
            }
            if (headerText == "devolucionEstado") {
                if(cellText != 0){
                    estadoDev =1;
                }

                
            }

            
        }
        array.push(obj); /* Añadimos al Array Principal */
    }
}

    var factura = JSON.stringify(array);

    var devol = $("#iddevolu").val();

    var id = $("#dnit").val();
    var nombrec = $("#dnombre").val();
    var numfactur = $("#numerofactd").val();
    // var fechad=$("#defecha").val(); 
    var total = $("#dtotalfact").val();
    var direcion = $("#ddire").val();
    var verif = confirm("Realizar devolucion");
    let nomvende = $("#dnvende").val();
    let dtipoFac = $("#dtipoFac").val();
    let tipoelectrono=$("#tipoEletonico").val();
    let vendedordv=$("#dvendedorr").val();
    
    let bodega = $("#bodegaDevo").val();
 let bodegaInventario=$("#bodegaInventario").val();
let userdevolucion=document.getElementById("selecuseDV").value;
let usuarioDV=usuarioA;
if(activarTurnos==2){
    usuarioDV=userdevolucion;

}

 

 if(bodegaInventario==0 || bodegaInventario=="0"){
    bodegaInventario=bodega;
 }

 if( totalCajaDv>0 || totalFrccDv>0 || estadoDev==1){
    alert( "Esta factura tiene devolucion parciales No se puede anular, se debe de realizar devolucion por producto- ")
    clikanularfactu=false;
    return 0; 

}
    

    if (verif == true) {
        let reqConf = document.getElementById("reqConfUserDv");
        if (reqConf && reqConf.value == "1") {
            
            let confUser = await confirmDialogoTurno("¿Desea realizar la devolución con el usuario:<br><br><b>" + usuarioDV + "</b>?");
            if (!confUser) {
                clikanularfactu = false;
                return 0;
            }
        }
        let notaDevo=prompt("Detalle Devolucion")
        if (dtipoFac == "Pos" || dtipoFac == "Electronica" || dtipoFac == "Domicilio" || dtipoFac == "Tienda" || tipoelectrono==1) {

        

            $.ajax({
                data: { "totalf": total, "numerofact": numfactur,
                 "cliente": id, "factura": factura, "numdevol": devol,
                  "bodega": bodega, "usuarioA":usuarioDV,"bodegaInventario":bodegaInventario,
                  "tipoFactura":dtipoFac,"tipoDocELect":tipoelectrono,
                  "notaDevo":notaDevo,"vendedordv":vendedordv,
                  "efectivoDv":efectivoDv,"tarjetasDv":tarjetasDv,
                  "trasfereDv":trasfereDv,"credictoDv":credictoDv,"cuentapagosDinamicos":cuentapagosDinamicos }, //datos que se envian a traves de ajax
                url: "../controlador/config/devolucion.php", //archivo que recibe la peticion
                type: 'post', //método de envio

                beforeSend: function () {
                   $("#devolution").prop("disabled", true);
                },

                success: function(response) {
                    console.log(response)
                    var resp = JSON.parse(response);
                    var repuest = resp["resp"];
                    var fechad = resp["fecha"];
                    var ok = resp["ok"];
                    let numeroDevo=resp["numeroDevo"];

                    alert(repuest);
                    let ruta="";
                    if(tipoimprision==0){
                         ruta='facturacion/impresiondevolucion.php';
                    }else{
                        ruta='facturacion/formatoDevoluiconDist.php'; 
                    }
                    if (ok == 1) {
                        // window.open( ruta+ factura + '&numf=' + numfactur + ' &devol=' + devol + ' &total=' + total +
                        //     '&idc=' + id + '&nombrec=' + nombrec + '&direc=' + direcion + '&nombrev=' + nomvende + '&fecha=' + fechad + '&bodega=' + bodega + '');


                            ////////////////////////////////////

                            $.ajax({
                                data: {
                                    'factura': factura,
                                    'numf': numfactur,
                                    'total': total,
                                    'idc': id,
                                    'nombrec': nombrec,
                                    'direc': direcion,
                                    'nombrev': nomvende,
                                    'fecha': fechad,
                                    'devol':numeroDevo,
                                    'bodega':bodega        
                                    
                                
                
                                },
                                url: ruta,
                                type: "post",
                                complete: function() {
                                    $("#devolution").prop("disabled", false);
                                },
                                success: function(response) {
                
                                    let ventana = window.open("facturacion/impresiongeneral.php","ventana1","width=1000,height=1000");
                                    ventana.document.write(response);
                                    clikanularfactu=false;
                                    location.reload();
                                    
                                }
                
                            });

                            //////////////////////////////////////


                     

                    } else {
                        $("#devolution").prop("disabled", false);
                        clikanularfactu = false;
                    }

                },
                error: function() {
                    $("#devolution").prop("disabled", false);
                    clikanularfactu = false;
                }

            });

        }
        
    //     else {
    //         let items = [];
    //     var  productoo=[];
    //         ////arrray productos devolucion
    //          // console.log(array)
    // array.forEach(function(valor) {
    //     let caja = valor.Cantida_caja;
    //     let frcc = valor.Cantida_frcc;
    //     let costounitario = 0;
    //     let cnatidad = 0;
    //     descuento=0;
    //     let tipoiva = valor.tipo;
    //     let iva = "SIN_IMPUESTO";

    //      descuento=valor.Descu;

    //     if (tipoiva == "19") {
    //         iva = "IVA_19";
    //     } else {
    //         if (tipoiva == "5") {
    //             iva = "IVA_5";
    //         } else {
    //             if (tipoiva == "0") {
    //                 iva = "EXCENTO";
    //             } else {
    //                 if (tipoiva == "1") {
    //                     iva = "EXCLUIDO";
    //                 }else{
    //                     if (tipoiva == "8") {
    //                         iva = "IMPUESTO_CONSUMO_8";
    //                     }
                        
    //                 }
    //             }

    //         }

    //     }
    //     if (caja > 0) {
    //         cnatidad = caja;
    //         descuentoUnitario=descuento/cnatidad;
    //         costounitario = valor.preciounitarioCaja;
            
    //     } else {
    //         cnatidad = frcc;
    //         descuentoUnitario=descuento/cnatidad;
    //         costounitario = valor.preciounitariofrcc;
            
    //     }
    //     if (caja > 0 && frcc > 0) {
    //         validadro = false;
    //     }

    //     let datos = {

    //         "nombreItemVenta": valor.Nombre,

    //         "precioVentaUnitario": costounitario,

    //         "precioReferencia": 0,

    //         "cantidad": cnatidad,

    //         "codigo": valor.Codigo,

    //         "descuentoPorcentaje": 0,

    //         "observacion": "",

    //         "unidad": "94",

    //         "codigoDescuento": "04",

    //         "impuesto": iva
            

    //     }

    //     items.push(datos)


    // })
    //         console.log(items);
    //         //////////////
    //         let tipoDevolucion = "ANULACION";

    //         respue = await DatosParaDevolucionElectronica(items, total, tipoDevolucion, bodega);
    //     //    respue={"success":true};
    //         if (respue.success == false) {
    //             alert(respue.errores.errores[0].errorMessage);
    //         } else {


    //             $.ajax({
    //                 data: {"devoElectronico":numeroDevoElectorinca, "totalf": total, "numerofact": numfactur, "cliente": id, "factura": factura, "numdevol": devol, "bodega": bodega, "usuarioA":usuarioA,"bodegaInventario":bodegaInventario,"tipoDocELect":tipoelectrono,"tipoFactura":dtipoFac }, //datos que se envian a traves de ajax
    //                 url: "../controlador/config/devolucion.php", //archivo que recibe la peticion
    //                 type: 'post', //método de envio

    //                 // beforeSend: function () {
    //                 //    alert("Procesando, espere por favor...");
    //                 // },

    //                 success: function(response) {

    //                     var resp = JSON.parse(response);
    //                     var repuest = resp["resp"];
    //                     var fechad = resp["fecha"];
    //                     var ok = resp["ok"];
    //                     let numeroDevo=resp["numeroDevo"];

    //                     alert(repuest);

    //                     let ruta="";
    //                     if(tipoimprision==0){
    //                          ruta='facturacion/impresiondevolucion.php';
    //                     }else{
    //                         ruta='facturacion/formatoDevoluiconDist.php'; 
    //                     }

    //                     if (ok == 1) {
    //                         // window.open('facturacion/impresiondevolucion.php?factura=' + factura + '&numf=' + numfactur + ' &devol=' + devol + ' &total=' + total +
    //                         //     '&idc=' + id + '&nombrec=' + nombrec + '&direc=' + direcion + '&nombrev=' + nomvende + '&fecha=' + fechad + '');

    //                         $.ajax({
    //                             data: {
    //                                 'factura': factura,
    //                                 'numf': numeroDevoElectorinca,
    //                                 'total': total,
    //                                 'idc': id,
    //                                 'nombrec': nombrec,
    //                                 'direc': direcion,
    //                                 'nombrev': nomvende,
    //                                 'fecha': fechad,
    //                                 'devol':devol,
    //                                 'bodega':bodega        
                                                                   
                
    //                             },
    //                             url: ruta,
    //                             type: "post",
                
    //                             success: function(response) {
                
    //                                 let ventana = window.open("facturacion/impresiongeneral.php","ventana1","width=1000,height=1000");
    //                                 ventana.document.write(response);

    //                                 location.reload();
    //                                 clikanularfactu=false;
    //                             }
                
    //                         });



    //                         // numeroDevoElectorinca=0;

    //                         // alert("✔️ Devolución Realizada con exito");
    //                         // $("#buscarnumero").click();
    //                         // location.reload();
    //                     }else{
    //                         $("#buscarnumero").click();
    //                         clikanularfactu=false;
    //                     }

    //                 }

    //             });












    //         }
    //     }

    }
}else{
    clikanularfactu=true;
}
});




// realizar devolucion de un solo producto


$(document).on("click", "#dvu", async function(e) {
    let tipoDV=e.target.value;
    let caja=0;
    let frcc=0;
   

    if(clikanularfactu==false){

        let nomvende = $("#dnvende").val();
        let dtipoFac = $("#dtipoFac").val();
        let tipoelectrono=$("#tipoEletonico").val();
        let vendedordv=$("#dvendedorr").val();

        let efectivoDv=$("#efectivoDe").val();
        let tarjetasDv=$("#tarjetasDV").val();
        let trasfereDv=$("#trasferenciaDV").val();
        let credictoDv=$("#dtotalfactCredito").val();
        let cuentapagosDinamicos=$("#pagosDinamicos").val();

        clikanularfactu=true;
        let verif = confirm("⚠️ Se realizará la devolución del producto... Esta seguro?");
        if (verif) {
            let reqConf = document.getElementById("reqConfUserDv");
            if (reqConf && reqConf.value == "1") {
                let userDV = document.getElementById("selecuseDV").value;
                let confUser = await confirmDialogoTurno("¿Desea realizar la devolución con el usuario:<br><br><b>" + userDV + "</b>?");
                if (!confUser) {
                    clikanularfactu = false;
                    return 0;
                }
            }
            if(tipoDV=="DvCaja"){
                caja=parseInt(prompt("Cantidad CAJAS Devolver"));
            } else if(tipoDV=="DvFrcc"){
        
                frcc=parseInt(prompt("Cantidad FRACCIONES Devolver"));
            }

            let notaDevo=prompt("Motivo De la devolucion");
            let id = $(this).closest("tr")[0];
         if(id.cells[11].innerText==0){

            let base= id.cells[4].innerText;
            let iva=id.cells[5].innerText;
            let tipo= id.cells[6].innerText;
            let precio=id.cells[7].innerText;
            let factor=id.cells[20].innerText;

            let costocajaD=id.cells[18].innerText;
            let costofrccD=id.cells[19].innerText;
            let cajaDv=parseInt(id.cells[16].innerText);
             let frccDv=parseInt(id.cells[17].innerText);
            let   tipoProduct=id.cells[15].innerText;
           let cajafact=parseInt( id.cells[2].innerText);
           let frccfact=parseInt( id.cells[3].innerText);




           let valorunitarioFrcc=0;
           let precioDV=0;

   

  





        if(base==0 || base=="0"){
            base=0;
            iva=0;
            
        }





            if(frcc>0 && (  factor>0 || factor >"0" )){

                if((frcc+frccDv)>frccfact){
                    alert("Supera la cantidad facturada")
                    clikanularfactu=false;
                    return 0;
                }

                totalInven=(cajafact*factor) +frccfact;
               
                valorunitarioFrcc=   (precio/totalInven).toFixed(2);
                precioDV=valorunitarioFrcc*frcc;
                
                if(base>0){
                    base=(base/totalInven).toFixed(2);
                    iva=(iva/totalInven).toFixed(2);
                    base= (base*frcc ).toFixed(2)
                    iva=(iva*frcc).toFixed(2)
                }
              
               
            }else{
                if((caja+cajaDv)>cajafact){
                    alert("Supera la cantidad facturada")
                    clikanularfactu=false;
                    return 0;
              }

                if(caja>0 && frccfact==0 ){

                    totalInven=cajafact;
                   
                    valorunitarioFrcc=   (precio/totalInven).toFixed(2);
                    precioDV=valorunitarioFrcc*caja;  
                    
                    if(base>0){
                        base=(base/totalInven).toFixed(2);
                        iva=(iva/totalInven).toFixed(2);
                        base= (base*caja ).toFixed(2)
                        iva=(iva*caja).toFixed(2)
                    }
                   
                }else{
                    if(caja>0 && frccfact >0 ){
                    totalInven=(cajafact*factor) +frccfact;
               
                    valorunitarioFrcc=   (precio/totalInven).toFixed(2);

                    precioDV=(valorunitarioFrcc*factor)*caja;

                    if(base>0){
                        base=(base/totalInven).toFixed(2);
                        iva=(iva/totalInven).toFixed(2);
                        base= ((base*factor)*caja ).toFixed(2)
                        iva=((iva*factor)*caja).toFixed(2)
                    }

                    }


                }

            }








            let numeroFac = document.getElementById("numerofactd").value;
            let cliente = document.getElementById("dnit").value;
            let numdevol = $("#iddevolu").val();
            let dtipoFac = $("#dtipoFac").val();
            let bodega = $("#bodegaDevo").val();


            let bodegaInventario=$("#bodegaInventario").val();
            if(bodegaInventario==0 || bodegaInventario=="0"){
                bodegaInventario=bodega;
            }


          

            
            let datos = {
                "numeroFactura": numeroFac,
                "codigo": id.cells[0].innerText,
                "nombre": id.cells[1].innerText,
                "caja": caja,
                "frcc": frcc,
                "base": base,
                "iva":  iva,
                "tipo":tipo ,
                "precio": precioDV,
                "cliene": cliente,
                "numeroDevo": numdevol,
                "estadoDevoluion": id.cells[11].innerText,
                "costocajaD":costocajaD,
                "costofrccD":costofrccD,
                "cajaDv":cajaDv,
                "frccDv":frccDv,
                "tipoProduct":tipoProduct,
                "cajafact":cajafact,
                "frccfact":frccfact

    
            }
         
         
            let userdevolucion=document.getElementById("selecuseDV").value;
            let usuarioDV=usuarioA;
            if(activarTurnos==2){
                usuarioDV=userdevolucion;
            
            }
    
            let cantidad = 0;
            // let iva = "SIN_IMPUESTO";
           
            let tipoelectrono=$("#tipoEletonico").val();
            
    
         
                $.ajax({
                    data: {
                        "devpar": 1,
                        "datos": datos,
                        "bodega": bodega,
                        "usuarioA":usuarioDV,
                        "devoElectronico":0,
                        "bodegaInventario":bodegaInventario,
                        "tipoFactura":dtipoFac,
                        "tipoDocELect":tipoelectrono,
                        "notaDevo":notaDevo,
                        "vendedordv":vendedordv,
                        "cliene": cliente,
                        "efectivoDv":efectivoDv,
                        "tarjetasDv":tarjetasDv,
                        "trasfereDv":trasfereDv,
                        "credictoDv":credictoDv,
                        "cuentapagosDinamicos":cuentapagosDinamicos
                    }, //datos que se envian a traves de ajax
                    url: "../controlador/config/devolucion.php", //archivo que recibe la peticion
                    type: 'post', //método de envio
    
                    beforeSend: function () {
                       $(".vetDv").prop("disabled", true);
                       $("input[value='DvCaja']").prop("disabled", true);
                       $("input[value='DvFrcc']").prop("disabled", true);
                    },
    
                    success: function(response) {
                        let resp = JSON.parse(response);
                        let repuest = resp["resp"];
                        let ok = resp["estado"];
    
                        var devol = $("#iddevolu").val();
                        var id = $("#dnit").val();
                        var nombrec = $("#dnombre").val();
                        var direcion = $("#ddire").val();
                        var nomvende = $("#dnvende").val();
                        var numfactur = $("#numerofactd").val();
                        let numeroDevo=resp["numeroDevo"];
                        alert(repuest);
                        if (ok == "ok") {
    
                            let fechd = resp["fechad"];
    
                            var total = datos.precio;
    
                            let datoss = JSON.stringify(datos);
                            // window.open('facturacion/impresiondevolucion.php?Datos=' + datoss + '&numf=' + numfactur + ' &devol=' + devol + ' &total=' + total +
                            //     '&idc=' + id + '&nombrec=' + nombrec + '&direc=' + direcion + '&nombrev=' + nomvende + '&fecha=' + fechd + '&bodega=' + bodega + '');
               
                            ///////////////////////////////////////////////////////////////
                        let ruta="";
                        if(tipoimprision==0){
                             ruta='facturacion/impresiondevolucion.php';
                        }else{
                            ruta='facturacion/formatoDevoluiconDist.php'; 
                        }
                        if (ok =="ok") {             
                                
    
                                $.ajax({
                                    data: {
                                        
                                        'numf': numfactur,
                                        'total': total,
                                        'idc': id,
                                        'nombrec': nombrec,
                                        'direc': direcion,
                                        'nombrev': nomvende,
                                        'fecha': fechd,
                                        'devol':numeroDevo,
                                        'bodega':bodega,
                                        "Datos":datoss       
                                        
                                    
                    
                                    },
                                    url: ruta,
                                    type: "post",
                                    complete: function() {
                                        $(".vetDv").prop("disabled", false);
                                        $("input[value='DvCaja']").prop("disabled", false);
                                        $("input[value='DvFrcc']").prop("disabled", false);
                                    },
                    
                                    success: function(response) {
                    
                                     
                                        let ventana = window.open("facturacion/impresiongeneral.php","ventana1","width=1000,height=1000");
                                        ventana.document.write(response);
                                        clikanularfactu=false;
                                    
                                        $("#buscarnumero").click();
                                    }
                    
                                });
    
                            } else {
                                $(".vetDv").prop("disabled", false);
                                $("input[value='DvCaja']").prop("disabled", false);
                                $("input[value='DvFrcc']").prop("disabled", false);
                                clikanularfactu = false;
                            }
    
    
                    ///////////////////////////////////////////////////////////
    
    
                            
                        } else {
                            $(".vetDv").prop("disabled", false);
                            $("input[value='DvCaja']").prop("disabled", false);
                            $("input[value='DvFrcc']").prop("disabled", false);
                            clikanularfactu = false;
                        }
    
                    },
                    error: function() {
                        $(".vetDv").prop("disabled", false);
                        $("input[value='DvCaja']").prop("disabled", false);
                        $("input[value='DvFrcc']").prop("disabled", false);
                        clikanularfactu = false;
                    }
                })
    
            //}
    
        }else{
            alert("El producto Ya Fue devuelto Anteriormente ");
            clikanularfactu=false;
        }
    
        }else{
            clikanularfactu==false
        }
    
    }

    
});







document.getElementById("buscarDomicilio").addEventListener("click",buscarDomicilios);

function buscarDomicilios(){
    document.getElementById("tabladomicilios").innerHTML="";
let tipoBusqueda=document.getElementById("tipobuscaDomicilio").value;
let tipoFactur=document.getElementById("tipoFaccaDomicilio").value;
// let botonBuscar=document.getElementById("buscarDomicilio").value;

let fecha1=document.getElementById("fecC1").value;
let fecha2=document.getElementById("fecC2").value;
let bodega = document.getElementById("idbodegas").value;




$.ajax({
    data: { "fecha1": fecha1, "fecha2": fecha2, "tipoBusqueda": tipoBusqueda,"bodega": bodega ,"tipoFactur":tipoFactur}, //datos que se envian a traves de ajax
    url: "../controlador/config/infoventas.php", //archivo que recibe la peticion
    type: 'post', //método de envio

    // beforeSend: function () {
    //    alert("Procesando, espere por favor...");
    // },
    success: function(response) {
         var respuest = JSON.parse(response);

console.log(response)
       $.each(respuest, function(index, respuesta) {

            let factura = respuesta["factura"];
            let  cliente = respuesta["cliente"];
            let nombre = respuesta["Nombre"];

            let direccion = respuesta["direccion"];
            let valor = respuesta["valor"];
            var detallef = respuesta["detallef"];
            $("#tabladomicilios").append(

                            "<tr ><th >" + factura + "</th>  <th>" + cliente + "</th> <th>" + nombre + "</th> <th>" + direccion + "</th> <th>" + valor +
                            "</th> <th>" + detallef + "</th><th><input type='button' class='bg-success btn' value='Imprimir' id='ImprimirFacCall'></input > </th><th><input type='button' class='bg-primary btn' value='Cerrar' id='CerrarFactura'></input > </th></tr>"
   
    
                        );
            
            // var vendedorr = respuesta["vendedor"];
            // var valor = respuesta["valor"];
         
            // var fechaDv = respuesta["fechaDevoParcial"];
            // let bodegaVen = respuesta["bodegaVenta"];

            // if (fechaDv != null) {
            //     let fechaDeov = fechaDv.substr(0, 10);

            //     if (fechaDeov >= fecha1 && fechaDeov <= fecha2) {
            //         console.log(fechaDeov)

            //     } else {

            //         $("#tablacargventas").append(

            //             "<tr ><td >" + codigo + "</td>  <th>" + nombre + "</th> <th>" + caja + "</th> <th>" + frcc + "</th> <th>" + cliente +
            //             "</th> <th>" + vendedorr + "</th> <th class='vet'>" + valor + "</th>  <th>" + factura + "</th> <th>" + bodegaVen + "</th>"


            //         );
            //     }
            // } else {
            //     $("#tablacargventas").append(

            //         "<tr ><td >" + codigo + "</td>  <th>" + nombre + "</th> <th>" + caja + "</th> <th>" + frcc + "</th> <th>" + cliente +
            //         "</th> <th>" + vendedorr + "</th> <th class='vet'>" + valor + "</th>  <th>" + factura + "</th> <th>" + bodegaVen + "</th>"


            //     );
            // }

        });
      
    }

});


    
}


//funciones para call center

document.getElementById("reimprimirCall").addEventListener("click",()=>{

  
    $('#modalcalll').modal('show');
    
})

document.getElementById("tabladomicilios").addEventListener("click",async (e)=>{

       let clicimpri= e.target.parentElement.parentElement.getElementsByTagName("th")[0].innerText;
    let valorClic=e.target.id;
    
       if(valorClic=="CerrarFactura"){


        $.ajax({
            data: { "clicimpri": clicimpri }, //datos que se envian a traves de ajax
            url: "../controlador/config/infoventas.php", //archivo que recibe la peticion
            type: 'post', //método de envio
        
            // beforeSend: function () {
            //    alert("Procesando, espere por favor...");
            // },
            success: function(response) {

                if(response==1){
                    $("#buscarDomicilio").click();

                }
                //  var respuest = JSON.parse(response);
        
        
              
            }
            })






       }else{

          $("#numerofactd").val(clicimpri)

            //setTimeout(clckuscarFac, 900);
            await  buscarFacturaDevolve()
            // setTimeout(clickImprimirf, 1000);
            clickImprimirf()
       }
    //    alert(clicimpri)

    //   $("#numerofactd").val(clicimpri)

    //   setTimeout(clckuscarFac, 900);
    //   setTimeout(clickImprimirf, 1000);
         
    })
async function clckuscarFac(){
    //  $("#buscarnumero").click()
   await  buscarFacturaDevolve()

}

function clickImprimirf(){
    $("#reimprimir").click()
}


//cambiar estado factura

// document.getElementById("ImprimirFacCall").addEventListener("click",(e)=>{

//     let clicimpri= e.target.parentElement.parentElement.getElementsByTagName("th")[0].innerText;
 
//    $("#numerofactd").val(clicimpri)

//    setTimeout(clckuscarFac, 900);
//    setTimeout(clickImprimirf, 1000);
      
//  })