//************ FACTURACION ELECTRONICA   ********************/



function loginApiElectronica() {
    let bodega = document.getElementById("idbodegas").value;

    return new Promise((resolver, rechazar) => {

        $.ajax({
            data: { "login": "login","bodega":bodega }, //datos que se envian a traves de ajax
            url: "../controlador/config/datosElectonica.php", //archivo que recibe la peticion
            type: 'post', //método de envio
    
    
            success: function(response) {
                
                var respuest = JSON.parse(response);

                if (respuest["estado"] == "ok") {
                 
                    const userrApi = respuest["userApi"];
                    const passApi = respuest["passApi"]; 
                    
                //    url_producion = https://csi.clarisa.co:8443/seguridad/rest/api/v1/login/
                   // url_pruebas=https://central.clarisacloud.com:8443/seguridad/rest/api/v1/login/
                    fetch("https://csi.clarisa.co:8443/seguridad/rest/api/v1/login/", {
                        method: 'post',
                        headers: {
                            'Content-Type': 'application/json',
                            // "X-CSRF-TOKEN": token
                        },
                        body: JSON.stringify({
                            "usuario": userrApi,
                            "contrasenia": passApi
                        }),
                        //body:JSON.stringify("german"),
                    })
                    .then(response => {
                        return response.json() //convierte la respuesta en json 
                            // return response.text() //para mostras los datos por var_dump de php
                            // console.log(response)
                            
                    })
                    .then(respuesta => {
                        //console.log(respuesta)
                        if (respuesta.success == true) {
                            tokenUser = respuesta.data.token;
                            // return tokenUser;
                            resolver(tokenUser);

                        }

                    })
                    
    
    
    
                }







            }
                
        })

        
    })






}




//fin login
/// COMPLETAR DATOS CLIENTES DIAN
async function completardatosClient() {
    const aviso = document.getElementById("loading");

// Mostrar el aviso
aviso.style.display = "block";

    let idenc = document.getElementById("idenc").value;
    const token = await loginApiElectronica();

    fetch(`https://api.clarisa.co:8443/api/comun/rest/v1/consulta/dianTerceros?tipoIdentificacion=CC&numIdentificacion=${idenc}`, {
        method: 'get',
        headers: {
            'Content-Type': 'application/json',
            "Authorization": token
        },
    })
    .then(response => response.json())
    .then(respuesta => {
        let email = respuesta.data.email;
        let razonSocial = respuesta.data.razonSocial;
        console.log("Razón Social:", razonSocial);

        // Separar en nombres y apellidos
        let partes = razonSocial.trim().split(" ");
        let nombres = "";
        let apellidos = "";

        if (partes.length >= 2) {
            // Toma los dos últimos como apellidos
             nombres = partes[partes.length - 2] + " " + partes[partes.length - 1];
            // El resto como nombres
            apellidos = partes.slice(0, partes.length - 2).join(" ");
        } else {
            nombres = partes[0];
        }

        console.log("Nombres:", nombres);
        console.log("Apellidos:", apellidos);

        // Ejemplo: llenar inputs
     document.getElementById("nombrec").value = (nombres || "").replace(/,/g, " ");
document.getElementById("apellidoh").value = (apellidos || "").replace(/,/g, " ");

        document.getElementById("correo").value = email;
    })
    .catch(error => console.error("Error en la consulta:", error))
    .finally(() => {
    // Ocultar aviso (o cambiar mensaje)
    aviso.style.display = "none";
});

    
}



let btnconsultarDian=document.getElementById("consultarDian");
if(btnconsultarDian){
    btnconsultarDian.addEventListener("click",()=>{
        completardatosClient()
    })
}


/// FUNCION DEVOLUCION FACTURA O DEVOLUCION PARCIAL

function DatosParaDevolucionElectronica(items, total, tipoDevolucion) {
    return new Promise((resolve, reject) => {
        let bodega = document.getElementById("idbodegas").value;
        // let numerofactd=document.getElementById("numerofactd").value;
        $.ajax({
            data: { "dato1": "dato1","bodega":bodega }, //datos que se envian a traves de ajax
            url: "../controlador/config/datosElectonica.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

                var respuesta = JSON.parse(response);

                let fechaDevolucion = respuesta["fecha"];
                let NitElectronica = respuesta["nitE"];
                let numeroDevoluciEl=respuesta["NumeroDevolucion"];
                
                loginApiElectronica().then(token => {
                    //devolucionFacElectr(token);


                    resolve(devolucionFacElectr(token, NitElectronica, total, items, fechaDevolucion, tipoDevolucion,numeroDevoluciEl));



                })


            }
        });
    })
}





function devolucionFacElectr(token, NitElectronica, total, items, fechaDevolucion, tipoDevolucion,numeroDevoluciEl) {
    $('#modalcarga').modal('show');
    return new Promise((resolver, noreselve) => {


        if (tipoDevolucion == "ANULACION") {
            var item = [{ "items": items }]

        } else {
            var item = [{ "items": [items] }]
        }



        let valorCredito=$("#dtotalfactCredito").val();
        let cliente = $("#dnit").val();
        // let vendedor = $("#vendedorr").val();
        //let total = $("#dtotalfact").val();
        let numeroFactElectronica = $("#NumeroFactElectronica").val();
        let mensaje;
        let direcion = $("#ddire").val();
        let nombreClienteElectro = $("#Nombre_electd").val();
        let apellidoClienteElectro = $("#Apellido_electd").val();
        let naturaleza = $("#Naturaleza_electd").val();
        let regimen = $("#Regimen_electd").val();
        let responsabilidad_elec = $("#responsabilidad_elecd").val();
        let tipoIdentificacion = $("#tipoIdentificacion_electd").val();
        let correo = $("#dcorreo").val();
        let telecliente = document.querySelector("#dtel").value;
        let ciudad = document.querySelector("#dciudadd").value;
        // let numeroDevolucion = $("#iddevolu").val();
        let formaPago=0;
        if(valorCredito>0){
             formaPago=2;

        }else{
             formaPago=1; 
        }



        let facturaDevolucion = {

            "nit": NitElectronica,

            "numeroFacturaAsociada": numeroFactElectronica,

            "numeroDocumentoComercial": numeroDevoluciEl,

            "tipo": tipoDevolucion,

            "fechaGeneracion": fechaDevolucion,

            "fechaVencimiento": fechaDevolucion,

            "mediosPago": "10,30",

            "observacion": " Devolucion",

            "formaPago": formaPago,

            "total": total,

            "cliente": {

                "nombreRazonSocial": nombreClienteElectro,

                "tipoIdentificacion": tipoIdentificacion,

                "numIdentificacion": cliente,

                "naturaleza": naturaleza,

                "direccion": direcion,

                "ciudad": ciudad,

                "telefono": telecliente,

                "email": correo,

                "responsabilidadesFiscales": responsabilidad_elec,

                "regimenContable": regimen

            },


            "items": item[0].items

        }
       


        //url_producion=https://csi.clarisa.co:8443/facturas/rest/api/v1/notaCredito
        // url_prueba=https://central.clarisacloud.com:8443/facturacion/rest/api/v1/notaCredito

        fetch("https://csi.clarisa.co:8443/facturas/rest/api/v1/notaCredito", {
                method: 'post',
                body: JSON.stringify(facturaDevolucion),
                headers: {
                    'Content-Type': 'application/json',
                    "Authorization": token
                },


            })
            .then(response => {
                $('#salirrr').click();
                resolver(response.json()) //convierte la respuesta en json 
                numeroDevoElectorinca=numeroDevoluciEl;
                    // return response.text() //para mostras los datos por var_dump de php
                    //  console.log(response)
            })


    })

}