var array_xml = [];
var array_fix = [];
var array_uuid = [];
var existe=false;
var archivosSeleccionados = [];
var arrayxml = [];
var arrayabonos = [];
var array_id_attr = [];
var array_idUs_attr = [];
var array_idDoc_attr = [];
var totalsumamonto = 0;
var sumaabonos=0;
var sumasaldos=0;
var facturasRelacionadas = [];


function iniciar_session(){
        
        var usuarios = $('#usuarios').val();
        var pass = $('#pass').val();
        var modulo = "session";
        var accion = "sign_in";
 
        $.ajax({
            url: "controllers/procesos.php",
            type: "POST",
            data: {
                usuarios:usuarios,
                pass:pass,
                modulo:modulo,
                accion:accion
            },
            
            success: function(data) {
               
               
                
                var obj = jQuery.parseJSON(data);
                   if(obj.status){
                    
                     $(location).attr('href','vistas/index.php');
                    }else{
                      $("#erroentrar").fadeIn();
                        setTimeout(function() {
                        $("#erroentrar").fadeOut();
                      },4000);
                    }
            },
             error: function(xhr,status){
             console.log("Error: "+xhr);
            }
        });
} 


function replaceAll( text, busca, reemplaza ){
  while (text.toString().indexOf(busca) != -1)
      text = text.toString().replace(busca,reemplaza);
  return text;
}

//le da formato a los numeroa
function numberformat (number, decimals, dec_point, thousands_sep,vinput) {
   
   
    // Strip all characters but numerical ones.
    number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
    var n = !isFinite(+number) ? 0 : +number,
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function (n, prec) {
            var k = Math.pow(10, prec);
            return '' + Math.round(n * k) / k;
        };
    // Fix for IE parseFloat(0.55).toFixed(0) = 0;
    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
    if (s[0].length > 3) {
        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
    }
    if ((s[1] || '').length < prec) {
        s[1] = s[1] || '';
        s[1] += new Array(prec - s[1].length + 1).join('0');
    }
    var cantidadmoneda=s.join(dec);
    $('#'+vinput).val(cantidadmoneda);
    
    //return s.join(dec);
}


//le da formato a los numeroa
function number_format(amount, decimals) {

    amount += ''; // por si pasan un numero en vez de un string
    amount = parseFloat(amount.replace(/[^0-9\.]/g, '')); // elimino cualquier cosa que no sea numero o punto

    decimals = decimals || 0; // por si la variable no fue fue pasada

    // si no es un numero o es igual a cero retorno el mismo cero
    if (isNaN(amount) || amount === 0) 
        return parseFloat(0).toFixed(decimals);

    // si es mayor o menor que cero retorno el valor formateado como numero
    amount = '' + amount.toFixed(decimals);

    var amount_parts = amount.split('.'),
        regexp = /(\d+)(\d{3})/;

    while (regexp.test(amount_parts[0]))
        amount_parts[0] = amount_parts[0].replace(regexp, '$1' + ',' + '$2');

    return amount_parts.join('.');
}


function init_menu_principal(){
    var ask = true;
        $(".nav-link").click(function(){
            
            var page_to_load = $(this).attr("load");
            var funcion = $(this).attr("funcion");
            //var modulo = $(this).attr("modulo");
            var iduser = $(this).attr("idusuario");
            var userrol = $(this).attr("userrol");
            
      
             //$("#cargando").show();
            $('#spinner_modal').fadeIn(); 
            $("#container-apartados").hide();
            $("#container-inicio").hide();        
                
            var contenedor = "container-apartados";
            cargar(contenedor, page_to_load + ".php?idusuario="+iduser+"&userrol="+userrol+"&funcion="+funcion,function(d){
                  //$("#cargando").hide();
                  $("#spinner_modal").fadeOut();
                  $("#container-apartados").show();
                  
                  $("#filtros").show();
                  $("#datosoc").show();
                  
                });
                event.preventDefault();
                $('html, body').animate({scrollTop: 0}, 600); 
          });
}

//para cargar contenidos sin cambiar de pagina
function cargar(idcontenedor, url, fn){


    fn = typeof fn == "function" ? fn : function(){};
    $("#" + idcontenedor).load(url, fn);
}


function mostrardocumentos(id){
    

    let scrollTop = $(window).scrollTop();

      // Evitar que el scroll se mueva
      $(window).on('scroll', function() {
        $(window).scrollTop(scrollTop); // Fijar la posición del scroll
      });

      //$('#docucont'+id).toggle(400);
        $('#docucont' + id).toggle(400, function() {
            // Verifica si el elemento está visible
            if ($('#docucont' + id).is(':visible')) {
                $('#textboton'+ id).text('Ocultar');
            } else {
                
                $('#textboton'+ id).text('ver/cargar');
            }
        });

      setTimeout(function() {
        $(window).off('scroll'); // Reactivar el scroll
      }, 1000);

}

function agregarnuevopro(funcion,iduser,roluser,tipo_accio,tipo_user){
    //$("#cargando").show();
    
    $('#spinner_modal').fadeIn(); 
    $('#container-apartados').load("../vistas/inicial.php?funcion="+funcion+"&idusuario="+iduser+"&userrol="+roluser+"&tipo_accio="+tipo_accio+"&tipo_user="+tipo_user,function(d){

        $("#container-inicio").hide();  
        $('#spinner_modal').fadeOut();
        
        $("#formcaptura").show();
        
        
    });
}

function agregarnuevaoc(funcion,iduser,roluser){
    //$("#cargando").show();
    $("#agregarODC").show();
    $('#spinner_modal').fadeIn(); 
    $('#agregarODC').load("../vistas/inicial.php?funcion="+funcion+"&idusuario="+iduser+"&userrol="+roluser,function(d){

        $("#filtros").show();
        $("#container-inicio").hide();  
        $('#spinner_modal').fadeOut();
        
        $("#formcaptura").show();

        $("#tablaprincipal").show(); 
        $("#formcontrar").hide();
        $("#contenidoOC").hide();

        document.activeElement.blur(); 
        document.getElementById('numnoc').focus();
        
    });
}


function cerrar_cap(funcion,iduser,roluser){

    $('#spinner_modal').fadeIn(); 
    $('#container-apartados').load("../vistas/inicial.php?funcion="+funcion+"&idusuario="+iduser+"&userrol="+roluser,function(d){
        array_xml = [];
        array_fix = [];
        array_uuid = [];
        archivosSeleccionados = [];
        $("#container-inicio").hide();  
        $('#spinner_modal').fadeOut();
        //$("#capturanueva")[0].reset();
        $("#formcaptura").hide();
        
        $("#contenidoOC").show();
    });
    
}

function cerrar_cap_cp(funcion,iduser,roluser){
    event.preventDefault();
    $('#spinner_modal').fadeIn(); 
    $('#container-apartados').load("../vistas/inicial.php?funcion="+funcion+"&idusuario="+iduser+"&userrol="+roluser,function(d){
        array_xml = [];
        array_fix = [];
        array_uuid = [];
        archivosSeleccionados = [];
        $("#container-inicio").hide();  
        $('#spinner_modal').fadeOut();
        $("#capturanueva")[0].reset();
        $("#formcaptura").hide();
        
        
    });
    
}

function cerrar_user(funcion,iduser,roluser){
    var tipo_accio= 1;
    var idUsuario= $('#idUsuario').val();
    var userrol= $('#userrol').val();

    

    agregarnuevopro('nuevopro',idUsuario,userrol,tipo_accio,'');
    
    
}


function getCleanedString(cadena){
   // Definimos los caracteres que queremos eliminar
   var specialChars = "!@#$^&%*()+=[]\/{}|:<>?,";

   // Los eliminamos todos
   for (var i = 0; i < specialChars.length; i++) {
       cadena= cadena.replace(new RegExp("\\" + specialChars[i], 'gi'), '');
   }   

   // Lo queremos devolver limpio en minusculas
   cadena = cadena.toLowerCase();

   // Quitamos espacios y los sustituimos por _ porque nos gusta mas asi
   cadena = cadena.replace(/ /g,"");

   // Quitamos acentos y "ñ". Fijate en que va sin comillas el primer parametro
   cadena = cadena.replace(/á/gi,"a");
   cadena = cadena.replace(/é/gi,"e");
   cadena = cadena.replace(/í/gi,"i");
   cadena = cadena.replace(/ó/gi,"o");
   cadena = cadena.replace(/ú/gi,"u");
   cadena = cadena.replace(/ñ/gi,"n");
   return cadena;
}

function traeproveedor(){
    var prove =  $('#rfc_pro option:selected').attr("prove");
    $('#id_prov').val(prove);

}

function edittraeproveedor(){
    var prove =  $('#rfc_pro option:selected').attr("prove");
    var rfcpro =  $('#rfc_pro').val();

    var correo =  $('#rfc_pro option:selected').attr("correo");
    var tel =  $('#rfc_pro option:selected').attr("tel");

    $('#nom_user').val(prove);
    $('#rfc_user_edit').val(rfcpro);

    $('#cel').val(tel);
    $('#correo').val(correo);


}

function tipo_registro(){
    var tipo_accio= $('#tipo_accio').val();
    var idUsuario= $('#idUsuario').val();
    var userrol= $('#userrol').val();

    

    agregarnuevopro('nuevopro',idUsuario,userrol,tipo_accio,'');
}

function activarcampos(tipo_accio){
    var tipo_user= $('#tipo_user').val();
    var idUsuario= $('#idUsuario').val();
    var userrol= $('#userrol').val();
    var funcion='nuevopro';

    $('#spinner_modal').fadeIn(); 
    $('#container-apartados').load("../vistas/inicial.php?funcion="+funcion+"&idusuario="+idUsuario+"&userrol="+userrol+"&tipo_accio="+tipo_accio+"&tipo_user="+tipo_user,function(d){

        $("#container-inicio").hide();  
        $('#spinner_modal').fadeOut();
        
        $("#formcaptura").show();

        if(tipo_user!==''){
            $("#rfc_user").prop('disabled', false); 
            $("#nom_user").prop('disabled', false); 
            $("#pass_user").prop('disabled', false); 
            $("#rfc_user_edit").prop('disabled', false); 
            $("#cel").prop('disabled', false); 
            $("#correo").prop('disabled', false); 

            if(tipo_user==2){
                 $("#nomnuevo").show();
                 $("#rfcnuevo").hide();
                 $("#celulares").show();
            }else{
                $("#rfcnuevo").show();
                $("#nomnuevo").hide();
                $("#celulares").hide();
            }

            if(tipo_accio==2){
                $("#rfc_pro").prop('disabled', false); 
                $("#rfc_user").prop('disabled', true);

                if(tipo_user==2){
                    $("#rfcprov").hide();
                    $("#celulares").show();
                    $("#rfcedit").hide();
                    $("#userlist").show();
                    $("#rfclist").hide();
                    $("#usersis").show();
                    $("#nomrfc").hide();
                }else{
                    $("#rfcprov").show();
                    $("#celulares").hide();
                    $("#rfcedit").show();
                    $("#rfclist").show();
                    $("#userlist").hide();
                    $("#usersis").hide();
                    $("#nomrfc").show();
                }
            }

            
        }else{
             $("#rfc_user").prop('disabled', true);
             $("#nom_user").prop('disabled', true);
             $("#pass_user").prop('disabled', true); 
             $("#rfc_pro").prop('disabled', true); 
             $("#rfc_user_edit").prop('disabled', true); 
             $("#cel").prop('disabled', true); 
             $("#correo").prop('disabled', true); 
        }
        
        
    });

    

}

function guardar_movimiento(){

    var idUsuario=$('#idUsuario').val();
    var userrol=$('#userrol').val();
    var rfc_pro=$('#rfc_pro').val();
    var id_prov=$('#rfc_pro option:selected').attr("idpro");
    var fobra=$('#fobra').val();
    var obra=$('#obra').val();
    var importe=$('#importe').val();
    var noc=$('#noc').val();
    var numnoc=$('#numnoc').val();
    var filenames = $('#archioc').val();
    var filename=getCleanedString(filenames);

    var ruta_archcer = $('#archioc').val();

    var depto=$('#depto').val();

    if(numnoc == ''){
        message(3,'¡El numero de Orden es necesario!');
        return false;
    }

    if(rfc_pro == ''){
        message(3,'¡El RFC es necesario!');
        return false;
    } 

    if(fobra == ''){
        message(3,'¡El folio de obra es necesario!');
        return false;
    } 

    if(obra == ''){
        message(3,'¡La obra es necesaria!');
        return false;
    } 

    if(importe == ''){
        message(3,'¡El importe es necesario!');
        return false;
    } 

    if(depto == ''){
        message(3,'¡El departamento es necesario!');
        return false;
    }
    
    //event.preventDefault();

    var cantidadArchivosoc = $("#archioc")[0].files.length;
    
    if(cantidadArchivosoc == '0'){
        message(3,'¡El archivo es requerido!');
        return false;
    } 

    var formData = new FormData(document.getElementById("capturanueva")); 

    Swal.fire({
                title: "Guardar orden de compra",
                text: "¿Deseas guardar la orden de compra?",
                icon: 'warning',
                showCancelButton: true,
                confirmButtonColor: '#3085d6',
                cancelButtonColor: '#d33',
                confirmButtonText: 'Sí, guardar',
                cancelButtonText: 'Cancelar'
            }).then((result) => {
                if (result.isConfirmed) {

                        $.ajax({
                            type: 'POST',
                            url: "../controllers/procesos.php?archioc="+filename+"&rfc_pro="+rfc_pro+"&modulo=ordencompra&accion=save_oc&idUsuario="+idUsuario+"&id_prov="+id_prov+"&fobra="+fobra+"&obra="+obra+"&importe="+importe+"&noc="+noc+"&numnoc="+numnoc+"&depto="+depto+"&conArchivo=1",
                            data: formData,
                            processData: false,
                            contentType: false,
                            dataType: 'html',
                            beforeSend: function() {
                                $('body').addClass('hidden');
                                $('#spinner_modal').fadeIn(); 
                            },
                            success: function (data) {
                               
                                $('body').removeClass('hidden');
                                $('#spinner_modal').fadeOut();
                                $("#contenidoOC").show();
                                var obj = jQuery.parseJSON(data); 
                                
                                if(obj.status){
                                    $("#container-inicio").hide();  
                                    $("#capturanueva")[0].reset();
                                    $("#formcaptura").hide();

                                        Swal.fire({
                                            title: "Enviar correo",
                                            text: "¿Deseas enviar una notificación por correo?",
                                            icon: 'warning',
                                            showCancelButton: true,
                                            confirmButtonColor: '#3085d6',
                                            cancelButtonColor: '#d33',
                                            confirmButtonText: 'Enviar',
                                            cancelButtonText: 'Cancelar'
                                        }).then((result) => {
                                            if (result.isConfirmed) {
                                                $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
                                                //mandar_correo("mandarcorreovendedor",id_prov,idUsuario,userrol,1,"");
                                                
                                            }else {
                                                $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
                                            }
                                        }); 

                                    
                                     message(obj.type,obj.mensaje);
                                    
                                }else{
                                    message(obj.type,obj.mensaje);
                                }
                                
                                 
                            },
                            error: function(xhr,status){
                                console.log("Error: "+xhr);
                                $('body').removeClass('hidden');
                                $('#spinner_modal').fadeOut();
                                 message(3,'¡Error al procesar los datos!');
                            }
                        });
                }else {
                        cerrar_cap('traeprovee',idUsuario,userrol);
                }
            }); 
  
}


function guardar_usuarios(){

    var taccion= $('#accion').val();
    var idUsuario= $('#idUsuario').val();
    var userrol= $('#userrol').val();
    
    var tipo_accio= $('#tipo_accio').val();
    var tipo_user= $('#tipo_user').val();

    if(taccion==1){
        
        var id_prov="";
        var rfc_user= $('#rfc_user').val();

        if(tipo_user==2){
            var cel= $('#cel').val();
        }else{
            
            var cel='';
        }


    }else{
         var rfc_user= $('#rfc_user_edit').val();
         var id_prov=$('#rfc_pro option:selected').attr("idpro");
    }
   
    var nom_user= $('#nom_user').val();
    var pass_user= $('#pass_user').val();
    var estatus= $('#estatus').val();
    var correo= $('#correo').val();


    if(tipo_user == ''){
        message(3,'¡El tipo de usuario es necesario!');
        return false;
    } 

    if(tipo_user!=='2'){

        if(rfc_user == ''){
            message(3,'¡El RFC es necesario!');
            return false;
        } 
    }else{
        if(rfc_user == ''){
            message(3,'¡El nombre es necesario!');
            return false;
        } 
    }   

    if(nom_user == ''){
        message(3,'¡El nombre es necesario!');
        return false;
    } 

    if(pass_user == ''){
        message(3,'¡La contraseña es necesaria!');
        return false;
    } 

    var modulo = "session";
    var accion = "nuevo_user";

    $.ajax({
            type: 'POST',
            url: "../controllers/procesos.php",
            data: {
                taccion:taccion,
                idUsuario:idUsuario,
                userrol:userrol,
                tipo_accio:tipo_accio,
                tipo_user:tipo_user,
                rfc_user:rfc_user,
                nom_user:nom_user,
                pass_user:pass_user,
                estatus:estatus,
                id_prov:id_prov,
                correo:correo,
                cel:cel,
                modulo:modulo,
                accion:accion

            },
            beforeSend: function() {
                $('body').addClass('hidden');
                $('#spinner_modal').fadeIn(); 
            },
            success: function (data) {
                
                $('body').removeClass('hidden');
                $('#spinner_modal').fadeOut();
                var obj = jQuery.parseJSON(data); 
                
                if(obj.status){
                    $("#container-inicio").hide();  
                    $("form select").each(function() { this.selectedIndex = -1 });
                    $("#tipo_user").each(function() { this.selectedIndex = 0 });
                    $("#capturanuevauser")[0].reset();
                    $("#formcaptura").hide();
                    $("#tipo_user option").attr("selected",false);
                    $('#container-apartados').load("../vistas/inicial.php?funcion=nuevouser&idusuario="+idUsuario+"&userrol="+userrol+"&tipo_accio="+tipo_accio+"&tipo_user="+tipo_user);
                     
                     message(obj.type,obj.mensaje);
                    
                }else{
                    message(obj.type,obj.mensaje);
                }
                
                 
            },
            error: function(xhr,status){
                console.log("Error: "+xhr);
                $('body').removeClass('hidden');
                $('#spinner_modal').fadeOut();
                 message(3,'¡Error al procesar los datos!');
            }
        }); 

   
    
}

function cargardocumento(funcion,tipodoc,id,oc,rfc,fobra,iduser,roluser,cadena,importeoc){
    var cadena = encodeURIComponent(cadena);
    $('#spinner_modal').fadeIn(); 
    $('#cdocumentos').load("../vistas/inicial.php?funcion="+funcion+"&idusuario="+iduser+"&userrol="+roluser+"&tipodoc="+tipodoc+"&oc="+oc+"&rfc="+rfc+"&fobra="+fobra+"&id="+id+"&cadena="+cadena+"&importeoc="+importeoc,function(d){

        $('#spinner_modal').fadeOut();
        var $elem = $('body');
                $('html, body').animate({scrollTop: $elem.height()}, 800);
        
        
    });
    
}

function subir_archivos(){

    var idUsuario= $('#idUsuario').val();
    var userrol= $('#userrol').val();
    var tipodoc= $('#tipodoc').val();
    var odc= $('#odc').val();
    var rfc= $('#rfc').val();
    var fobra= $('#fobra').val();
    var nombrearchi= $('#nombrearchi').val();
    var id= $('#id').val();
    var filename = $('#filessubir').val();
    var fpgo= $('#fpgo').val();
    var cantidadArchivos = $("#filessubir")[0].files.length;
    
    var ruta_archcer = $('#filessubir').val();

    var formData = new FormData(document.getElementById("cargardocumentos")); 

    var tipodedocumentos="";

    if(tipodoc=='f'){
        tipodedocumentos=' el PDF de la factura';
    }

    if(tipodoc=='x'){
        tipodedocumentos=' el XML de la factura';
    }

    if(tipodoc=='e'){
        tipodedocumentos=' el archivo evidencia';
    }

    if(cantidadArchivos == '0'){
        message(3,'¡Selecciona por lo menos un archivo!');
        return false;
    }

    Swal.fire({
        title: "Cargar documento",
        text: "¿Deseas cargar "+tipodedocumentos+"?",
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Sí, cargar',
        cancelButtonText: 'Cancelar'
    }).then((result) => {
        if (result.isConfirmed) { 

            $.ajax({
                    type: 'POST',
                    url: "../controllers/procesos.php?filessubir="+filename+"&rfc_pro="+rfc+"&modulo=ordencompra&accion=save_documento&idUsuario="+idUsuario+"&fobra="+fobra+"&tipodoc="+tipodoc+"&odc="+odc+"&nombrearchi="+nombrearchi+"&id="+id+"&conArchivo=1",
                    data: formData,
                    contentType: false, // Importante para cargar archivos
                    processData: false, // Importante para cargar archivos
                    beforeSend: function() {
                        $('body').addClass('hidden');
                        $('#spinner_modal').fadeIn(); 
                    },
                    success: function(data) {
                       
                        $('body').removeClass('hidden');
                        $('#spinner_modal').fadeOut();
                        var obj = jQuery.parseJSON(data); 
                        
                        if(obj.status){
                            $("#container-inicio").hide();  
                            $("#cargardocumentos")[0].reset();
                            $("#formcaptura").hide();
                            
                            /*Swal.fire({
                                title: "Enviar correo",
                                text: "¿Deseas enviar correo de confirmacion?",
                                icon: 'warning',
                                showCancelButton: true,
                                confirmButtonColor: '#3085d6',
                                cancelButtonColor: '#d33',
                                confirmButtonText: 'Enviar',
                                cancelButtonText: 'Cancelar'
                            }).then((result) => {
                                if (result.isConfirmed) {
                                    
                                    mandar_correo("mandarcorreovendedor",id_prov,idUsuario,userrol,1);
                                                    
                                }else {
                                    $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
                                }
                            }); */
                            

                            $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
                             message(obj.type,obj.mensaje);

                            if(obj.bandst==1){
                                obj.type=1;
                                message(obj.type,"La oc #"+odc+" ha sido documentada,<br>en un lapso de 24 a 48hrs recibirá un aviso con el folio de contra recibo correspondiente.<br>Le invitamos a estar pendiente al portal.");
                            } 

                                 
                            
                        }else{
                            message(obj.type,obj.mensaje);
                        }
                    },
                    error: function(xhr,status) {
                        console.log("Error: "+xhr);
                        $('body').removeClass('hidden');
                        $('#spinner_modal').fadeOut();
                         message(3,'¡Error al procesar los datos!');

                    }
            });
        }else {
                cerrar_cap('traeprovee',idUsuario,userrol);
            }
    });
    

         

}


function subir_archivo_xml(){

    var formData = new FormData();
    var idUsuario= $('#idUsuario').val();
    var userrol= $('#userrol').val();
    var tipodoc= $('#tipodoc').val();
    var odc= $('#odc').val();
    var rfc= $('#rfc').val();
    var fobra= $('#fobra').val();
    var nombrearchi= $('#nombrearchi').val();
    var id= $('#id').val();
    var filename = $('#filessubirx').val();
    var fpgo= $('#fpgo').val();
    //var cantidadArchivos = $("#filessubirx")[0].files.length;
    
    var cantidadArchivos = archivosSeleccionados.length;
    
    
    var ruta_archcer = $('#filessubirx').val();
    var cantidadxml = array_xml.length;

    var montooc= $('#montooc').val();
    var montoxml= $('#montoxml').val();
    var messages='';
    var saldoOC=0;
    //formData = document.getElementById("cargardocumentos"); 
    /*for (var b = 0; b < array_xml.length; b++) {

            indice = array_xml[b].number;
            formData.append('filessubirx[]',$('#filessubirx')[0].files[indice]);
        }*/

    archivosSeleccionados.forEach((archivo) => {
            formData.append("filessubirx[]", archivo);
    });

    formData.append('array_xml',JSON.stringify(array_xml));


    if(cantidadArchivos == '0'){
        message(3,'¡Selecciona por lo menos un archivo!');
        return false;
    } 

    if(cantidadxml == '0'){
        message(3,'¡Los datos del XML son necesarios!');
        return false;
    } 

    if(montooc==montoxml){
        messages='EL monto de la OC esta completo';
        var completo='C';
        saldoOC =0;
    }else{
        messages='EL monto de la OC no esta completo se generara un saldo';
        var completo='S';

        saldoOC =Math.abs(parseFloat(montoxml)-parseFloat(montooc));
    }



     Swal.fire({
                title: messages,
                text: "¿Deseas cargar el XML?",
                icon: 'warning',
                showCancelButton: true,
                confirmButtonColor: '#3085d6',
                cancelButtonColor: '#d33',
                confirmButtonText: 'Sí, cargar',
                cancelButtonText: 'Cancelar'
            }).then((result) => {
                if (result.isConfirmed) {
                    $.ajax({
                        type: 'POST',
                        url: "../controllers/procesos.php?filessubir="+filename+"&rfc_pro="+rfc+"&modulo=ordencompra&accion=save_documento_xml&idUsuario="+idUsuario+"&fobra="+fobra+"&tipodoc="+tipodoc+"&odc="+odc+"&nombrearchi="+nombrearchi+"&id="+id+"&completo="+completo+"&saldoOC="+saldoOC+"&conArchivo=1",
                        data: formData,
                        contentType: false, // Importante para cargar archivos
                        processData: false, // Importante para cargar archivos
                        beforeSend: function() {
                            $('body').addClass('hidden');
                            $('#spinner_modal').fadeIn(); 
                        },
                        success: function(data) {
                           
                            $('body').removeClass('hidden');
                            $('#spinner_modal').fadeOut();
                            var obj = jQuery.parseJSON(data); 
                           
                            if(obj.status){
                                $("#container-inicio").hide();  
                                $("#cargardocumentos")[0].reset();
                                $("#formcaptura").hide();
                                $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
                                 message(obj.type,obj.mensaje);

                                if(obj.bandst==1){
                                    obj.type=1;
                                    message(obj.type,"La oc #"+odc+" ha sido documentada,<br>en un lapso de 24 a 48hrs recibirá un aviso con el folio de contra recibo correspondiente.<br>Le invitamos a estar pendiente al portal.");
                                } 
                                 array_xml = [];
                                 array_fix = [];
                                 array_uuid = [];
                                 archivosSeleccionados = [];
                                 
                                
                            }else{
                                message(obj.type,obj.mensaje);
                            }
                        },
                        error: function(xhr,status) {
                            console.log("Error: "+xhr);
                            $('body').removeClass('hidden');
                            $('#spinner_modal').fadeOut();
                             message(3,'¡Error al procesar los datos!');
                             archivosSeleccionados = [];
                        }
                    });
                }else {
                        cerrar_cap('traeprovee',idUsuario,userrol);
                }
            });

        
    

         

}



function DownloadFromUrl(fileURL, fileName,tipo,formato) {

    if(tipo=='1'){

        var link = document.createElement('a');
        link.href = fileURL;
        link.download = fileName;
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);

    }

    if(tipo=='2'){
        var documento='';
        var dife='';
        switch (formato) {
            case 'f':
                documento='Factura';
                dife='_F';

                break;
            case 'x':
                documento='XML';
                dife='_X';
                break;
            case 'e':
                documento='Evidencia';
                dife='_E';
                break;
            case 'c':
                documento='Contrarecibo';
                dife='_CR';
                break;
            case 'p':
                documento='Pago';
                dife='_P';
                break;
            case 'cp':
                documento='complemento pago';
                dife='_CP';
                break;
        }

        const urls =fileURL;

        const arrayUrls = urls.split(', ').map(url => url.trim());

        const zip = new JSZip();
        const folder = zip.folder(documento);


        // Descargar cada imagen y agregarla al ZIP
        const downloadPromises = arrayUrls.map(url => {
            return fetch(url)
                .then(response => response.blob())
                .then(blob => {
                    const filename = url.split('/').pop(); // Extraer el nombre del archivo
                    folder.file(filename, blob);
                });
        });


        // Esperar a que todas las imágenes se descarguen y luego crear el ZIP
        Promise.all(downloadPromises).then(() => {
            zip.generateAsync({ type: "blob" }).then(content => {
                // Usar FileSaver.js para descargar el ZIP
                saveAs(content, "Documentos"+dife+".zip");
            });
        }).catch(error => {
            console.error("Error al descargar las imágenes:", error);
        });

        /*arrayUrls.forEach(function(url) {
            const enlace = document.createElement('a');
            enlace.href = url;
            enlace.download = ''; // Esto permite que se inicie la descarga
            document.body.appendChild(enlace);
            enlace.click(); // Simula el clic en el enlace
            document.body.removeChild(enlace); // Limpia el DOM
        });*/
        
        

    }
      
} 

function opciones_form(id,idUsuario,userrol,tipomodal){
    

    $('#idoc').val(id);
   

    if(tipomodal=='1'){
         $('#idUsuariof').val(idUsuario);
         $('#userrolf').val(userrol);
        $("#formulariofin").show();  
        //$('#spinner_modal').fadeOut();
    }

    if(tipomodal=='2'){
         $('#idUsuarioc').val(idUsuario);
         $('#userrolc').val(userrol);
        $("#formulariocancela").show();  
        //$('#spinner_modal').fadeOut();
    }

    $('#confirmModal').fadeIn();
}

function cancelar_fin(){

    $('#idoc').val('');
    $('#idUsuario').val('');
    $('#userrol').val('');
    $("#formulariofin").hide(); 
    $('#confirmModal').fadeOut();
}

function cancelar_can(){

    $('#idoc').val('');
    $('#idUsuario').val('');
    $('#userrol').val('');
    $("#formulariocancela").hide(); 
    $('#confirmModal').fadeOut();
}

function finalizar_odc(){

    var id= $('#idoc').val();
    var idUsuario= $('#idUsuariof').val();
    var userrol= $('#userrolf').val();

    var modulo = "ordencompra";
    var accion = "finalizar_oc";


        $.ajax({
            type: 'POST',
            url: "../controllers/procesos.php",
            data: {
                id:id,
                modulo:modulo,
                idUsuario:idUsuario,
                accion:accion

            },
            beforeSend: function() {
                $('body').addClass('hidden');
                $('#spinner_modal').fadeIn(); 
            },
            success: function (data) {
                
                $('#confirmModal').fadeOut();
                $('body').removeClass('hidden');
                $('#spinner_modal').fadeOut();
                var obj = jQuery.parseJSON(data); 
                
                if(obj.status){
                    $("#container-inicio").hide();  
                    
                    $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
                     message(obj.type,obj.mensaje);
                    
                }else{
                    message(obj.type,obj.mensaje);
                }
                
                 
            },
            error: function(xhr,status){
                console.log("Error: "+xhr);
                $('body').removeClass('hidden');
                $('#spinner_modal').fadeOut();
                 message(3,'¡Error al procesar los datos!');
            }
        }); 

}

function cancelar_odc(){

    var id= $('#idoc').val();
    var idUsuario= $('#idUsuarioc').val();
    var userrol= $('#userrolc').val();

    var modulo = "ordencompra";
    var accion = "cancela_oc";


        $.ajax({
            type: 'POST',
            url: "../controllers/procesos.php",
            data: {
                id:id,
                modulo:modulo,
                idUsuario:idUsuario,
                accion:accion

            },
            beforeSend: function() {
                $('body').addClass('hidden');
                $('#spinner_modal').fadeIn(); 
            },
            success: function (data) {
                $('#confirmModal').fadeOut();
                $('body').removeClass('hidden');
                $('#spinner_modal').fadeOut();
                var obj = jQuery.parseJSON(data); 
                
                if(obj.status){
                    $("#container-inicio").hide();  
                    
                    $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
                     message(obj.type,obj.mensaje);
                    
                }else{
                    message(obj.type,obj.mensaje);
                }
                
                 
            },
            error: function(xhr,status){
                console.log("Error: "+xhr);
                $('body').removeClass('hidden');
                $('#spinner_modal').fadeOut();
                 message(3,'¡Error al procesar los datos!');
            }
        }); 

}


function onLoadXML(files){
        
        if(files) {
            
            if(files.length > 1000){
                message(3,"¡La carga de archivos esta limitado a 1,000 XML por solicitud!");
                return false;
            }
            
            for(var i=0;i<files.length;i++){
                if(files[i].type == 'text/xml'){
                    var xmlCodified = URL.createObjectURL(files[i]);
                    var name_xml = files[i].name;
                    leer_xml(xmlCodified,name_xml,i,files);
                }else{
                    var data = {
                       'status':false,
                       'mensaje':'El archivo no pertenece a un XML',
                       'name':name_xml,
                       'number':i,
                       'url':xmlCodified
                    };
                    array_fix.push(data);
                }
            }
        array_fix = [];   
        $("#tbody_fix_xml").empty();

        }
}

function leer_xml(url,name,number,files){
        
        var xhr = new XMLHttpRequest();

        xhr.onreadystatechange = function () {

            if(this.readyState == 4 && this.status == 200){
                var data = leer_nodos_xml(this,name,number,url);
                if(data.status){

                    if(array_uuid.includes(data.complemento.UUID)){
                       data.status = false;
                       data.mensaje = 'El XML ya fue eliminado de la lista';
                       array_fix.push(data);
                       pintar_fix();
                    }else{
                       array_xml.push(data);
                       array_uuid.push(data.complemento.UUID);
                       pintar_xml(1);
                       arch_select(files);

                    }
                }else{
                    array_fix.push(data);
                    pintar_fix();
                }
                return;
            }
        }
        xhr.open("GET",url,true);
        xhr.send();
        
}


function arch_select(files){

     var nuevosArchivos  = Array.from(files);

    nuevosArchivos .forEach((archivo) => {
       var yaExiste = archivosSeleccionados.some(
            (a) => a.name === archivo.name && a.size === archivo.size
        );
        if (!yaExiste) {
            archivosSeleccionados.push(archivo);
        }
    });
    
    $("#filessubirx").val("");

     actualizarListaArchivos();
}

function actualizarListaArchivos() {
    var lista = $("#listaArchivos");
        lista.empty(); // Limpiar la lista actual

        archivosSeleccionados.forEach((archivo, index) => {
        const listItem = $(`
                <li>
                    ${archivo.name} 
                    
                </li>
               `);
            lista.append(listItem);
        });
}

function leer_nodos_xml(xml,name,number,url){
        var docXML = xml.responseXML;
        var validate = false;
        var validatemonto = false;
        

        var RFC_usuario = $("#rfc").val(); //para validar si el que sube el xml le pertenece 
        var monto_oc = $("#montooc").val();
        var tipocomprobantes = $("#tipocomprobante").val();
       
        var data = {
            'status':false,
            'mensaje':'El XML no pertenece a una factura, esta protegido o mal formado',
            'name':name,
            'number':number,
            'url':url
        };

        if(docXML.getElementsByTagName("cfdi:Comprobante").length > 0){
            var comprobante = docXML.getElementsByTagName("cfdi:Comprobante")[0];
            var emisor = comprobante.getElementsByTagName("cfdi:Emisor")[0];
            var receptor = comprobante.getElementsByTagName("cfdi:Receptor")[0];
            var complemento = docXML.getElementsByTagName("tfd:TimbreFiscalDigital")[0];

            var nomina = false;
            var totalPercepciones = 0;

            var pago_moneda = false;
            var pago_cambio = false;
            var pago_monto = false;
            var tipodelcomprobante = false;

            /*var pago = comprobante.getElementsByTagName("pago10:Pago")[0];

            if(comprobante.getAttribute("Version") == "4.0"){
               pago = comprobante.getElementsByTagName("pago20:Pago")[0];
            }*/

            var RFC_emisor = emisor.getAttribute("Rfc");
            var RFC_receptor = receptor.getAttribute("Rfc");
            var total_xml =comprobante.getAttribute("Total");

            var tipoMov='';
            var tipoComprobante='';

            var UUID_xml = complemento.getAttribute("UUID");
            var tipoComprobantecomprar= comprobante.getAttribute("TipoDeComprobante")

            /*if(RFC_emisor == RFC_usuario){
               validate = true;
               tipoMov='emitido';
            } 
            if(RFC_receptor == RFC_usuario){
               validate = true;
               tipoMov='recibido';

            }*/


            if(monto_oc  >= total_xml){

               validatemonto = true;
               tipoMov='monto';

            }

            if(tipoComprobantecomprar  == tipocomprobantes){

               tipodelcomprobante = true;
               tipoMov='tipo_comprobante';

            }

            /*if(!validate){
                data.mensaje = "El XML no pertenece al usuario";
                return data;
             } */

             if(!validatemonto){

                data.mensaje = "El monto del XML no puede ser mayor al monto de la orden de compra";
                return data;
             } 

             if(!tipodelcomprobante){

                data.mensaje = "El tipo de comprobante no es correcto";
                return data;
             }

             

            /*no se usa validar_uuid(UUID_xml);

            
            if(!existe){
                validate = true;
            }
           
            if(!validate){
                data.mensaje = "El XML ya esta registrado";
                return data;
            } */

            switch (comprobante.getAttribute("TipoDeComprobante")) {
                case 'I': tipoComprobante = 'Ingreso';break;
                case 'N': 
                   tipoComprobante = 'Nómina';
                   nomina = docXML.getElementsByTagName("nomina12:Nomina")[0];
                   totalPercepciones = nomina.getAttribute("TotalPercepciones");
                break;
                case 'E': tipoComprobante = 'Egreso';break;
                case 'P': 
                    tipoComprobante = 'Pago';
                    var pago = '';
                    if(comprobante.getAttribute("Version") == "4.0"){
                       pago = comprobante.getElementsByTagName("pago20:Pago")[0];
                    }else{
                       pago = comprobante.getElementsByTagName("pago10:Pago")[0];
                    }
                    pago_moneda = pago.getAttribute("MonedaP");
                    pago_cambio = pago.getAttribute("TipoCambioP");
                    pago_monto = pago.getAttribute("Monto");

                    var documentosRelacionados = comprobante.getElementsByTagName("pago20:DoctoRelacionado");

                    for (var i = 0; i < documentosRelacionados.length; i++) {
                        var docRelacionado = documentosRelacionados[i];

                       var idDocumento = docRelacionado.getAttribute("IdDocumento");
                       var ImpPagado = docRelacionado.getAttribute("ImpPagado");

                       var facturaRelacionada = {
                            idDocumento: idDocumento,
                            ImpPagado:ImpPagado
                        };

                        facturasRelacionadas.push(facturaRelacionada);

                        
                    }

                break;
            }

            data = {
                'status': true,
                'name':name,
                'number':number,
                'url':url,
                'comprobante':{
                    'Fecha':comprobante.getAttribute("Fecha"),
                    'Total':comprobante.getAttribute("Total"),
                    'TipoDeComprobante':tipoComprobante,
                    'codigoTipoComprobante':comprobante.getAttribute("TipoDeComprobante"),
                    'tipoMov':tipoMov,
                    'CondicionesDePago':comprobante.getAttribute("CondicionesDePago") ? comprobante.getAttribute("CondicionesDePago") : 'N/A',
                    'MetodoPago':comprobante.getAttribute("MetodoPago"),
                    'Moneda':comprobante.getAttribute("Moneda"),
                    'TipoCambio':comprobante.getAttribute("TipoCambio"),
                    'SubTotal':comprobante.getAttribute("SubTotal"),
                    'Version':comprobante.getAttribute("Version")
                },
                'emisor':{
                    'Rfc':emisor.getAttribute("Rfc"),
                    'Nombre':emisor.getAttribute("Nombre"),
                    'RegimenFiscal':emisor.getAttribute("RegimenFiscal")
                },
                'receptor':{
                    'Rfc':receptor.getAttribute("Rfc"),
                    'Nombre':receptor.getAttribute("Nombre"),
                    'RegimenFiscalReceptor':receptor.getAttribute("RegimenFiscalReceptor"),
                    'UsoCFDI':receptor.getAttribute("UsoCFDI"),
                },
                'complemento':{
                    'FechaTimbrado':complemento.getAttribute("FechaTimbrado"),
                    'UUID':complemento.getAttribute("UUID")
                },
                'pago':{
                    'Moneda':pago_moneda,
                    'TipoCambio':pago_cambio,
                    'Monto':pago_monto
                },
                'nomina':{
                    'TotalPercepciones':totalPercepciones
                }
            };
        }


        

        return data;
}

function pintar_fix(){
        $("#tbody_fix_xml").find('tr').remove();
        for(var k=0; k < array_fix.length; k++ ){
            var number = k+1;
            var nuevafila = '<tr>' +
                '<td style="border:none"><b> '+ array_fix[k].name +'</b> - '+ array_fix[k].mensaje + '</td>' +
            '</tr>';
            $("#tbody_fix_xml").append(nuevafila);
        }
        
        return;
}

function pintar_xml(pagina_actual){
        
       var total_montoxml=0;
        var options = {  year: 'numeric', month: '2-digit', day: '2-digit'};
        $("#tbody_upload_xml").find('tr').remove();
        for(var k=0; k < array_xml.length; k++ ){
            var indice = k + 1;
            var date_comprobante = new Date(array_xml[k].comprobante.Fecha).toLocaleString("es-US", options);

            var format_subtotal = parseFloat(array_xml[k].comprobante.SubTotal).toFixed(2).replace(/\B(?=(\d{3})+(?!\d)\,?)/g, ",").toString();

            if(array_xml[k].comprobante.codigoTipoComprobante!=='P'){
                var format_total = parseFloat(array_xml[k].comprobante.Total).toFixed(2).replace(/\B(?=(\d{3})+(?!\d)\,?)/g, ",").toString(); 
                var monedaxml =array_xml[k].comprobante.Moneda;
                total_montoxml += parseFloat(array_xml[k].comprobante.Total);
            }else{
                var format_total = parseFloat(array_xml[k].pago.Monto).toFixed(2).replace(/\B(?=(\d{3})+(?!\d)\,?)/g, ",").toString(); 
                var monedaxml =array_xml[k].pago.Moneda;
                total_montoxml += parseFloat(array_xml[k].pago.Monto);
            }
            

             

            var nuevafila = '<tr style="font-size: 11.5px">' +
                '<td class="tabla" tabla-title="#" >' + indice + '</td>' +
                '<td class="tabla" tabla-title="UUID" >' + array_xml[k].complemento.UUID + '</td>' +
                '<td class="tabla" tabla-title="RFC Emisor" >' + array_xml[k].emisor.Rfc + '</td>' +
                '<td class="tabla" tabla-title="Nombre Emisor" >' + array_xml[k].emisor.Nombre + '</td>' +
                '<td class="tabla" tabla-title="RFC Receptor" >' + array_xml[k].receptor.Rfc + '</td>' +
                '<td class="tabla" tabla-title="Nombre Receptor" >' + array_xml[k].receptor.Nombre + '</td>' +
                '<td class="tabla" tabla-title="Fecha Emisión" >' +  date_comprobante + '</td>' +
                '<td class="tabla" tabla-title="Monto" >' + format_total + '</td>' +
                '<td class="tabla" tabla-title="Moneda" >' + monedaxml + '</td>' +
                '<td class="tabla" tabla-title="Tipo Comprobante" >' + array_xml[k].comprobante.TipoDeComprobante + '</td>' +
                '<td class="tabla"><div class="btn-group"><button type="button" class="btn boton-delete btn-sm" title="Eliminar" onclick="remove_xml('+k+','+pagina_actual+')"><i class="fas fa-trash-alt"></i></button></div></td>'+
            '</tr>';

            //if(array_xml[k].comprobante.codigoTipoComprobante!=='P'){
                $("#tbody_upload_xml").append(nuevafila);
            /*}else{
                $("#tbody_upload_xml_cp").append(nuevafila);
            }*/
            

        }

        
        $("#montoxml").val(total_montoxml);
        //$("#content_upload_file").show();
        return;
}



function remove_xml(indice,pagina){
        var indice = indice;
        var pagina = pagina;

        archivosSeleccionados.splice(indice, 1);
        actualizarListaArchivos();

        array_xml.splice(indice, 1);
        pintar_xml(pagina);
}

function quitar_xml(funcion,tipodoc,id,oc,rfc,fobra,iduser,roluser,cadena,idxml,posicion,idarc){

    var cadena = encodeURIComponent(cadena);
    var modulo = "ordencompra";
    var accion = "quitarxml";


        $.ajax({
            type: 'POST',
            url: "../controllers/procesos.php",
            data: {
                iduser:iduser,
                roluser:roluser,
                oc:oc,
                idxml:idxml,
                posicion:posicion,
                idarc:idarc,
                id:id,
                modulo:modulo,
                accion:accion

            },
            beforeSend: function() {
                $('body').addClass('hidden');
                $('#spinner_modal').fadeIn(); 
            },
            success: function (data) {
                
                $('#confirmModal').fadeOut();
                $('body').removeClass('hidden');
                $('#spinner_modal').fadeOut();
                var obj = jQuery.parseJSON(data); 
                
                if(obj.status){
                     message(obj.type,obj.mensaje);
                     //cargardocumento('cargadocumentos',tipodoc,id,oc,rfc,fobra,iduser,roluser,cadena);
                     $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+iduser+"&userrol="+roluser);
                    
                }else{
                    message(obj.type,obj.mensaje);
                }
                
                 
            },
            error: function(xhr,status){
                console.log("Error: "+xhr);
                $('body').removeClass('hidden');
                $('#spinner_modal').fadeOut();
                 message(3,'¡Error al procesar los datos!');
            }
        }); 

   

}


function quitar_archivos(funcion,id,tiporch,iduser,roluser){

    var idOC= $('#id').val();
    var modulo = "ordencompra";
    var accion = "quitararch";


        $.ajax({
            type: 'POST',
            url: "../controllers/procesos.php",
            data: {
                iduser:iduser,
                roluser:roluser,
                id:id,
                tiporch:tiporch,
                idOC:idOC,
                modulo:modulo,
                accion:accion

            },
            beforeSend: function() {
                $('body').addClass('hidden');
                $('#spinner_modal').fadeIn(); 
            },
            success: function (data) {
                
                $('#confirmModal').fadeOut();
                $('body').removeClass('hidden');
                $('#spinner_modal').fadeOut();
                var obj = jQuery.parseJSON(data); 
                
                if(obj.status){
                     message(obj.type,obj.mensaje);
                     //cargardocumento('cargadocumentos',tipodoc,id,oc,rfc,fobra,iduser,roluser,cadena);
                     $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+iduser+"&userrol="+roluser);
                    
                }else{
                    message(obj.type,obj.mensaje);
                }
                
                 
            },
            error: function(xhr,status){
                console.log("Error: "+xhr);
                $('body').removeClass('hidden');
                $('#spinner_modal').fadeOut();
                 message(3,'¡Error al procesar los datos!');
            }
        }); 

   

}


function validar_uuid(uuid){

    
    var modulo = "ordencompra";
    var accion = "validarxml";


        $.ajax({
            type: 'POST',
            url: "../controllers/procesos.php",
            data: {
                uuid:uuid,
                modulo:modulo,
                accion:accion

            },
            success: function (data) {
                
                array_fix = [];
                var obj = jQuery.parseJSON(data); 
                
                var existe=obj.status;
                
                 
            },
            error: function(xhr,status){
                console.log("Error: "+xhr);
                $('body').removeClass('hidden');
                $('#spinner_modal').fadeOut();
                 message(3,'¡Error al procesar los datos!');
            }
        }); 

   

}

function activar_input_abono(a){
    
    if( $('#id_registros_'+a).prop('checked') ) {
        $("#abonos_"+a).prop('disabled', false);
         $("#abonos_"+a).val('0');
         
    }else{

        $("#abonos_"+a).prop('disabled', true);
        $("#abonos_"+a).val('0');
        
        
    }

    

}

function contar_seleccionados_c(){
      var select = 0;
      var total=0;
      
      $('input:checkbox[name=id_registroC]:checked').each(function (){
          select++;
      });
      $('input:checkbox[name=id_registroC]').each(function (){
          total++;
      });

      $("#txt_seleccionadosc").text("Facturas seleccionadas: "+select+" de "+total);
      return true;
}


function sumarmonto_seleccionados_c(){
      var select = 0;
      var total=0;
      var sumamonto=0; 
      
      $('input:checkbox[name=id_registroC]:checked').each(function (){
          select++;
      });
      $('input:checkbox[name=id_registroC]').each(function (){
          total++;
      });

      for (  i = 1 ; i <= total; i++){ 

        sumamonto =  $('#id_registrosC_'+i).attr("monto");
        

        totalsumamonto += parseFloat(sumamonto);
        
      }
     
      $("#txt_sumaseleccionadosc").text("Montos $: "+number_format (totalsumamonto, 2));
      return true;
}

function contar_seleccionados(){
      var select = 0;
      var total=0;
      
      $('input:checkbox[name=id_registro]:checked').each(function (){
          select++;
      });
      $('input:checkbox[name=id_registro]').each(function (){
          total++;
      });
      $("#txt_seleccionados").text("Facturas seleccionadas: "+select+" de "+total);
      return true;
}

function selectChecksTodo_c(){
    totalsumamonto=0;
      if( $('#check_thead_c').is(':checked') ){
            $('.id_registro_c').prop('checked', true);
            $('input[type="text"]').prop('disabled', false);
            $('input[type="text"]').val('');
      }
      else{
            $('.id_registro_c').prop('checked', false);
            $('input[type="text"]').prop('disabled', true);
            $('input[type="text"]').val('0');
      }
      contar_seleccionados_c();
      sumarmonto_seleccionados_c();

}


function selectChecksTodo(){
      if( $('#check_thead').is(':checked') ){
            $('.id_registro').prop('checked', true);
            $('input[type="text"]').prop('disabled', false);
            $('input[type="text"]').val('');
      }
      else{
            $('.id_registro').prop('checked', false);
            $('input[type="text"]').prop('disabled', true);
            $('input[type="text"]').val('0');
      }
      contar_seleccionados();

}

function selectChecksregistrocontra(a){

    var sumamonto=0; 
    var restamonto=0;
    
      if( $('.id_registro_c').length == $('.id_registro_c:checked').length) {
            $('#check_thead_c').prop('checked', true);
            
      }
      else{
            $('#check_thead_c').prop('checked', false);
            
      }

    

    if ($('#id_registrosC_'+a).is(':checked') ) {
            sumamonto =  $('#id_registrosC_'+a).attr("monto");
             totalsumamonto += parseFloat(sumamonto);
    }else{
        
            restamonto =  $('#id_registrosC_'+a).attr("monto");

            totalsumamonto = parseFloat(totalsumamonto)-parseFloat(restamonto);
            
    } 
        

            
           
    
    $("#txt_sumaseleccionadosc").text("Montos $: "+number_format (totalsumamonto, 2));

    contar_seleccionados_c();
      

     
      
}

function selectChecksregistro(a){
      if( $('.id_registro').length == $('.id_registro:checked').length) {
            $('#check_thead').prop('checked', true);
      }
      else{
            $('#check_thead').prop('checked', false);
      }
      contar_seleccionados();
      activar_input_abono(a);
}

function crearcontrarecibo(funcion,iduser,roluser){
    //$("#cargando").show();
    
    $('#spinner_modal').fadeIn(); 
    $('#tablacontrar').load("../vistas/inicial.php?funcion="+funcion+"&idusuario="+iduser+"&userrol="+roluser,function(d){

        $("#filtros").hide();  
        $("#container-inicio").hide();  
        $('#spinner_modal').fadeOut();
        $("#agregarODC").hide(); 
        $("#tablaprincipal").hide(); 
        $("#cdocumentos").hide(); 
        $("#datosoc").hide(); 
        $("#formcontrar").show();
        $("#contenidoOC").show();
        totalsumamonto = 0;
        
        
    });
}

function crearpagos(funcion,iduser,roluser){
    //$("#cargando").show();
    
    $('#spinner_modal').fadeIn(); 
    $('#tablacontrar').load("../vistas/inicial.php?funcion="+funcion+"&idusuario="+iduser+"&userrol="+roluser,function(d){

        $("#filtros").hide();  
        $("#container-inicio").hide();  
        $('#spinner_modal').fadeOut();
        $("#agregarODC").hide(); 
        $("#tablaprincipal").hide(); 
        $("#cdocumentos").hide();
        $("#datosoc").hide(); 
        $("#formcontrar").show();
        $("#contenidoOC").show();
        sumaabonos=0;
        sumasaldos=0;
        
        
    });
}

function crearcomppagos(funcion,iduser,roluser){
    //$("#cargando").show();
    
    $('#spinner_modal').fadeIn(); 
    $('#tablacontrar').load("../vistas/inicial.php?funcion="+funcion+"&idusuario="+iduser+"&userrol="+roluser,function(d){

        $("#filtros").hide();  
        $("#container-inicio").hide();  
        $('#spinner_modal').fadeOut();
        $("#agregarODC").hide(); 
        $("#tablaprincipal").hide(); 
        $("#cdocumentos").hide();
        $("#formcontrar").show();
        $("#contenidoOC").show();
        sumaabonos=0;
        sumasaldos=0;
        
        
    });
}

function traefacturas(){

    var id_pro= $('#id_pro').val();

    $('#facturas').load("../vistas/inicial.php?funcion=traefacturas&id_pro="+id_pro,function(d){

        
        $("#facturaspro").show();
        
        
    });
}


function traecontrarecibos(){

    var fcontra= $('#fcontra').val();
    var iduser= $('#idUsuario').val();
    var roluser= $('#userrol').val();
    //var rfc_user =  $('#fcontra option:selected').attr("rfcuser");
   

    $('#spinner_modal').fadeIn(); 
    $('#tablacontrar').load("../vistas/inicial.php?funcion=traecontra&idusuario="+iduser+"&userrol="+roluser+"&fcontra="+fcontra,function(d){

        $("#container-inicio").hide();  
        $('#spinner_modal').fadeOut();
        $("#agregarODC").hide(); 
        $("#tablaprincipal").hide(); 
        $("#formcontrar").show();
        
        
    });
}

function xml_contrarecibo(){

    var id_cr= $('#fcontexml').val();

    $('#facturasxml').load("../vistas/inicial.php?funcion=traefacturas_xml&id_cr="+id_cr,function(d){

        
        $("#facturaspagos").show();
        $("#docpagos").show();
        
        
    });
}

function xml_pagos(){

    var id_pago= $('#pagosxml').val();
    var iduser= $('#idUsuario').val();
    var roluser= $('#userrol').val();

    $('#pagosdexml').load("../vistas/inicial.php?funcion=traepagos_xml&id_pago="+id_pago+"&idusuario="+iduser+"&userrol="+roluser,function(d){

        
        $("#registrospagos").show();
        $("#docpagos").show();
        
        
    });
}

function agregar_xml(a,b){

    if(b==2){

        var idxml = $('#id_registrosC_'+a).val();
        var id_oc =  $('#id_registrosC_'+a).attr("id_oc");

        var agregaxml={
            idxml:idxml,
            id_oc:id_oc
        };
                
        arrayxml.push(agregaxml);

    }

        


    

     /*for(var i = detalles_agr_comPag.length - 1; i >= 0; i--) {
        if(detalles_agr_comPag[i].id == idfactura) {
            detalles_agr_comPag.splice(i, 1);
        }  
    }*/

    //console.log(arrayxml);
    
    
}


function calcula_saldo(a){
    /*var s=$(this).val();
     alert(a);
   
   
    if(abono==0){
        message(3,"¡El abono no puede ser 0!");
        $("#abonos_"+a).val('');
        bandera=false;
        return false;
    }*/
    var monto = 0;
    var saldo = 0;
    var abono =0;
    var valorsaldo=0;
    var bandera=true;
    monto = parseFloat(replaceAll($('#monto_'+a).val(), ",", "" ));
    saldo = parseFloat(replaceAll($('#saldos_'+a).val(), ",", "" ));
    abono =parseFloat(replaceAll($('#abonos_'+a).val(), ",", "" ));
    var montototal = $('#montototal').val()
    
 
   
    if(saldo==0){
        if(abono > monto){
                message(3,"¡El abono no puede ser mayor al monto!");
                $("#abonos_"+a).val('0');
                bandera=false;
                return false;
        }
    }else{
        if(abono > saldo){
                message(3,"¡El abono no puede ser mayor al saldo!");
                $("#abonos_"+a).val('0');
                bandera=false;
                return false;
        }
    }    
        
    
    if(saldo==0){
        valorsaldo=parseFloat(monto)-parseFloat(abono);
    }else{
        valorsaldo=parseFloat(saldo)-parseFloat(abono);
    }
    
    var cantidad_saldo=number_format (valorsaldo, 2);
    $('#saldos_'+a).val(cantidad_saldo);

    var cantidad_abono=number_format (abono, 2);
    $('#abonos_'+a).val(cantidad_abono);

    sumaabonos+=abono;
    sumasaldos +=valorsaldo;

    var textotales="Total monto: $"+montototal+"   Total abono: $"+number_format (sumaabonos, 2)+"   Total saldo: $"+number_format (sumasaldos, 2);

    $('#textosaldos').text(textotales);

    if(bandera==true){

        var idxml = $('#id_registros_'+a).val();
        var abonoxml = $('#abonos_'+a).val();
        var saldoxml = $('#saldos_'+a).val();
        var id_oc =  $('#id_registros_'+a).attr("id_oc");
        var oc =  $('#id_registros_'+a).attr("oc");

        var databonos={
            idxml:idxml,
            id_oc:id_oc,
            oc:oc,
            abonoxml:abonoxml,
            saldoxml:saldoxml
        };
        
        arrayabonos.push(databonos);
        

    }

    
    
    
}


function crear_contrar(){
    var idUsuario= $('#idUsuario').val();
    var userrol= $('#userrol').val();
    var fpgo= $('#fpgo').val();
    var id_pro= $('#id_pro').val();

    
    if(id_pro == ''){
        message(3,'¡Seleccione al proveedor!');
        return false;
    }

    if(fpgo == ''){
        message(3,'¡La fecha de pago es requerida!');
        return false;
    } 



    $('input:checkbox[name=id_registroC]:checked').each(function (){
            arrayxml.push($(this).val());
            array_id_attr.push($(this).attr("id_oc"));
            array_idUs_attr.push($(this).attr("id_user_crea"));
            array_idDoc_attr.push($(this).attr("idDoc"));
    });

    Swal.fire({
        title: "Crear contra recibo",
        text: "¿Deseas crear el contra recibo?",
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Sí, crear',
        cancelButtonText: 'Cancelar'
    }).then((result) => {
        if (result.isConfirmed) {
            $.ajax({
                    type: 'POST',
                    //url: "controllers/procesos.php?folio_c="+folio_c+"&nom_vendedor="+nom_vendedor+"&nom_sucursal="+nom_sucursal+"&idCliente="+idCliente+"&fecha_soli="+fecha_soli+"&motivo="+motivo+"&modulo=cotizaciones_clie&accion=nueva&conArchivo=1",
                    url: "../controllers/procesos.php",
                    data: {
                        idUsuario:idUsuario,
                        userrol:userrol,
                        arrayxml:arrayxml,
                        array_id_attr:array_id_attr,
                        array_idUs_attr:array_idUs_attr,
                        array_idDoc_attr:array_idDoc_attr,
                        fpgo:fpgo,
                        modulo:'ordencompra',
                        accion:'crea_contrarecibo'

                    },
                    
                    beforeSend: function() {
                        $('body').addClass('hidden');
                        $('#spinner_modal').fadeIn(); 
                    },
                    success: function (data) {
                        //console.log(data);
                            $('body').removeClass('hidden');
                            $('#spinner_modal').fadeOut();
                            var obj = jQuery.parseJSON(data); 
                            
                            if(obj.status){
                                $("#container-inicio").hide();  

                                Swal.fire({
                                    title: "Enviar correo",
                                    text: "¿Deseas enviar una notificación por correo?",
                                    icon: 'warning',
                                    showCancelButton: true,
                                    confirmButtonColor: '#3085d6',
                                    cancelButtonColor: '#d33',
                                    confirmButtonText: 'Enviar',
                                    cancelButtonText: 'Cancelar'
                                }).then((result) => {
                                    if (result.isConfirmed) {
                                        
                                        $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
                                        arrayxml= [];
                                        array_id_attr= [];
                                        array_idUs_attr= [];
                                        array_idDoc_attr= [];
                                        //mandar_correo("mandarcorreovendedor",id_pro,idUsuario,userrol,2,"");
                                                
                                    }else {
                                        $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
                                            arrayxml= [];
                                            array_id_attr= [];
                                            array_idUs_attr= [];
                                            array_idDoc_attr= [];
                                        }
                                }); 
                                
                                
                            }else{
                                message(obj.type,obj.mensaje);
                            }
                    },
                    error: function(xhr,status){
                        console.log("Error: "+xhr);
                        $('body').removeClass('hidden');
                        $('#spinner_modal').fadeOut();
                        message(3,'¡Error al procesar los datos!');
                    }
            }); 
        }else {
                arrayxml= [];
                array_id_attr= [];
                array_idUs_attr= [];
                array_idDoc_attr= [];

                cerrar_cap('traeprovee',idUsuario,userrol);
            }
    });
}


function crear_contrar_pagos(){
    var idUsuario= $('#idUsuario').val();
    var userrol= $('#userrol').val();
    var fcontra= $('#fcontra').val();
    var fcontexml= $('#fcontexml').val();
    var foliocontra =  $('#fcontexml option:selected').val();
    var rfc_user =  $('#fcontra option:selected').attr("rfcuser");
    var contarreg = arrayabonos.length;

    var filename = $('#filessubirr').val();
    var cantidadArchivos = $("#filessubirr")[0].files.length;      
    var ruta_archcer = $('#filessubirr').val();

    var formData = new FormData(document.getElementById("proveedorp")); 

    formData.append('arrayabonos',JSON.stringify(arrayabonos));

    event.preventDefault();

    if(fcontra == ''){
        message(3,'¡Seleccione al proveedor!');
        return false;
    }

    if(fcontexml == ''){
        message(3,'¡El folio de contra recibo es requerido!');
        return false;
    } 

    if(contarreg == '0'){
        message(3,'¡Selecciona por lo menos un registro y agregue abono!');
        return false;
    } 

    if(cantidadArchivos == '0'){
        message(3,'¡El recibo es requerido!');
        return false;
    }

    Swal.fire({
                title: "Guardar pago",
                text: "¿Deseas guardar el pago?",
                icon: 'warning',
                showCancelButton: true,
                confirmButtonColor: '#3085d6',
                cancelButtonColor: '#d33',
                confirmButtonText: 'Sí, guardar',
                cancelButtonText: 'Cancelar'
            }).then((result) => {
                if (result.isConfirmed) {

                    $.ajax({
                        type: 'POST',
                        url: "../controllers/procesos.php?filessubirr="+filename+"&idUsuario="+idUsuario+"&userrol="+userrol+"&fcontra="+fcontra+"&fcontexml="+fcontexml+"&foliocontra="+foliocontra+"&arrayabonos="+arrayabonos+"&rfc_user="+rfc_user+"&modulo=ordencompra&accion=crea_pago_contrarecibo&conArchivo=1",
                        /*url: "../controllers/procesos.php",
                        data: {
                            idUsuario:idUsuario,
                            userrol:userrol,
                            fcontra:fcontra,
                            fcontexml:fcontexml,
                            foliocontra:foliocontra,
                            arrayabonos:arrayabonos,
                            modulo:'ordencompra',
                            accion:'crea_pago_contrarecibo'

                        },*/
                        data: formData,
                        contentType: false, // Importante para cargar archivos
                        processData: false, // Importante para cargar archivos
                        beforeSend: function() {
                            $('body').addClass('hidden');
                            $('#spinner_modal').fadeIn(); 
                        },
                        success: function (data) {
                            
                                $('body').removeClass('hidden');
                                $('#spinner_modal').fadeOut();
                                var obj = jQuery.parseJSON(data); 
                                
                                if(obj.status){
                                    $("#container-inicio").hide(); 
                                    Swal.fire({
                                            title: "Enviar correo",
                                            text: "¿Deseas enviar una notificación por correo?",
                                            icon: 'warning',
                                            showCancelButton: true,
                                            confirmButtonColor: '#3085d6',
                                            cancelButtonColor: '#d33',
                                            confirmButtonText: 'Enviar',
                                            cancelButtonText: 'Cancelar'
                                        }).then((result) => {
                                            if (result.isConfirmed) {
                                                $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
                                                 message(obj.type,obj.mensaje);
                                                 arrayabonos= [];
                                                //mandar_correo("mandarcorreovendedor",fcontra,idUsuario,userrol,3,"");
                                                
                                            }else {
                                                 $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
                                                 message(obj.type,obj.mensaje);
                                                 arrayabonos= [];
                                            }
                                        });
                                     
                                    
                                    
                                }else{
                                    message(obj.type,obj.mensaje);
                                }
                        },
                        error: function(xhr,status){
                            console.log("Error: "+xhr);
                            $('body').removeClass('hidden');
                            $('#spinner_modal').fadeOut();
                            message(3,'¡Error al procesar los datos!');
                        }
                    }); 
                }else {
                        cerrar_cap('traeprovee',idUsuario,userrol);
                }
            });
}


function DownloadContarecibo(id,od,user) {

        $.ajax({
            type: 'POST',
            //url: "controllers/procesos.php?folio_c="+folio_c+"&nom_vendedor="+nom_vendedor+"&nom_sucursal="+nom_sucursal+"&idCliente="+idCliente+"&fecha_soli="+fecha_soli+"&motivo="+motivo+"&modulo=cotizaciones_clie&accion=nueva&conArchivo=1",
            url: "../controllers/procesos.php",
            data: {
                id:id,
                od:od,
                user:user,
                modulo:'ordencompra',
                accion:'bajar_contrarecibo'

            },
            
            beforeSend: function() {
                $('body').addClass('hidden');
                $('#spinner_modal').fadeIn(); 
            },
            success: function (data) {
                    
                    $('body').removeClass('hidden');
                    $('#spinner_modal').fadeOut();
                     var obj = jQuery.parseJSON(data);  
                    if(obj.status){
                         $(document).ready(function () {
                            var $a = $("<a>");
                            $a.attr("href",obj.file);
                            $("body").append($a);
                            $a.attr("download","Contrarecibo_"+od+".pdf");
                            $a[0].click();
                            $a.remove();
                         });
                    }else{
                     
                      message(obj.type,obj.mensaje);
            } 
            },
            error: function(xhr,status){
                console.log("Error: "+xhr);
                $('body').removeClass('hidden');
                $('#spinner_modal').fadeOut();
                message(3,'¡Error al procesar los datos!');
            }
        }); 
}

function mandar_seguimiento(funcion,idoc,idusuario,userrol,estatus){
     

    $("#modalseguimientos .modal-body").load("../vistas/inicial.php?funcion="+funcion+"&idoc="+idoc+"&idusuario="+idusuario+"&userrol="+userrol+"&estatus="+estatus, function(d){
            
            const modalElement = document.getElementById('modalseguimientos');
            const modal = new bootstrap.Modal(modalElement);
            modal.show();
            // Ocultar el modal programáticamente
            document.getElementById('cerrar-modal').addEventListener('click', () => {
                modal.hide(); // Cierra el modal
            });

            // Asegúrate de limpiar el fondo negro si persiste
            modalElement.addEventListener('hidden.bs.modal', () => {
                document.querySelectorAll('.modal-backdrop').forEach(backdrop => {
                    backdrop.remove();
                });
            });
            
    });
}


function guardar_comentario(){

    var idUsuario= $('#idUsuario').val();
    var userrol= $('#userrol').val();
    var id_oc= $('#id_oc').val();
    var comentarios= $('#comentarios').val();

    if(comentarios == ''){
        message(3,'¡El comentario es necesario!');
        return false;
    } 

        $.ajax({
            type: 'POST',
            //url: "controllers/procesos.php?folio_c="+folio_c+"&nom_vendedor="+nom_vendedor+"&nom_sucursal="+nom_sucursal+"&idCliente="+idCliente+"&fecha_soli="+fecha_soli+"&motivo="+motivo+"&modulo=cotizaciones_clie&accion=nueva&conArchivo=1",
            url: "../controllers/procesos.php",
            data: {
                idUsuario:idUsuario,
                userrol:userrol,
                id_oc:id_oc,
                comentarios:comentarios,
                modulo:'ordencompra',
                accion:'gurdar_comet_user'

            },
            
            beforeSend: function() {
                $('body').addClass('hidden');
                $('#spinner_modal').fadeIn(); 
            },
            success: function (data) {
               
                    $('body').removeClass('hidden');
                    $('#spinner_modal').fadeOut();
                    var obj = jQuery.parseJSON(data); 
                    
                    if(obj.status){



                        $("#container-inicio").hide();  
                        $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
                         message(obj.type,obj.mensaje);
                         
                         $('#cerrar-modal').click();
                        
                    }else{
                        message(obj.type,obj.mensaje);
                    }
            },
            error: function(xhr,status){
                console.log("Error: "+xhr);
                $('body').removeClass('hidden');
                $('#spinner_modal').fadeOut();
                message(3,'¡Error al procesar los datos!');
            }
        }); 
    

}

function cerrar_comentario(){

    var idUsuario= $('#idUsuario').val();
    var userrol= $('#userrol').val();

    $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
}


function mandar_correo(funcion,id_prov,idusuario,userrol,motivocorreo,vista){
      
    $("#correosModal .modal-body").load("../vistas/inicial.php?funcion="+funcion+"&idusuario="+idusuario+"&userrol="+userrol+"&id_prov="+id_prov+"&motivocorreo="+motivocorreo+"&vista="+vista, function(d){
            
           const modalElement = document.getElementById('correosModal');
            const modal = new bootstrap.Modal(modalElement);
            modal.show();
            // Ocultar el modal programáticamente
            document.getElementById('cerrar-modal').addEventListener('click', () => {
                modal.hide(); // Cierra el modal
            });

            // Asegúrate de limpiar el fondo negro si persiste
            modalElement.addEventListener('hidden.bs.modal', () => {
                document.querySelectorAll('.modal-backdrop').forEach(backdrop => {
                    backdrop.remove();
                });
            });
            
    });
}



function enviar_correo_proveedor(){
    var correo = $('#correovende').val();
    var id_prov = $('#id_prov').val();
    var idUsuario = $('#idUsuario').val();
    var userrol = $('#userrol').val();
    var motivo = $('#motivo').val();


    if(correo==''){
        message(3,'!El correo electrónico es requerido!');
        return false;
    }

    $.ajax({
            type: 'POST',
            //url: "controllers/procesos.php?folio_c="+folio_c+"&nom_vendedor="+nom_vendedor+"&nom_sucursal="+nom_sucursal+"&idCliente="+idCliente+"&fecha_soli="+fecha_soli+"&motivo="+motivo+"&modulo=cotizaciones_clie&accion=nueva&conArchivo=1",
            url: "../controllers/procesos.php",
            data: {
                idUsuario:idUsuario,
                userrol:userrol,
                correo:correo,
                id_prov:id_prov,
                motivo:motivo,
                modulo:'ordencompra',
                accion:'enviar_c_proveedor'

            },
            
            beforeSend: function() {
                $('body').addClass('hidden');
                $('#spinner_modal').fadeIn(); 
            },
            success: function (data) {
               
                    $('body').removeClass('hidden');
                    $('#spinner_modal').fadeOut();
                    var obj = jQuery.parseJSON(data); 
                    
                    if(obj.status){


                        $('#cerrar-modal').click();
                        $('body').removeClass('modal-open');
                        $(".modal-backdrop").removeClass("modal-backdrop fade in");
                        $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
                         $('body').css('overflow', 'auto'); 
                        message(1,'!Correo enviado!');
                        
                    }else{
                        message(obj.type,obj.mensaje);
                    }
            },
            error: function(xhr,status){
                console.log("Error: "+xhr);
                $('body').removeClass('hidden');
                $('#spinner_modal').fadeOut();
                message(3,'¡Error al procesar los datos!');
            }
        }); 
}

function filtros_od(){

    var idusuario=$('#idusuario').val();
    var userrol=$('#userrol').val();

    var nom_prov = $('#nom_prov').val();
    var num_oc = $("#num_oc").val();
    var estatusoc = $("#estatusoc").val();
   // $("#cargando").show();
    $('#spinner_modal').fadeIn(); 
    $('#container-apartados').load('../vistas/inicial.php?funcion=traeprovee&idusuario='+idusuario+"&userrol="+userrol,{search:nom_prov,num_oc:num_oc,estatusoc:estatusoc},function(d){
        $('#spinner_modal').fadeOut(); 
        
        
        
    });
}


function subir_archivo_xml_cp(){
    event.preventDefault();
    var datainfopagos = [];
    var formData = new FormData();
    var idUsuario= $('#idUsuario').val();
    var userrol= $('#userrol').val();
    var tipodoc= $('#tipodoc').val();
    var nombrearchi= $('#nombrearchi').val();
    var registros= $('#registros').val();
    var pagosxml= $('#pagosxml').val();


    for (i=1; i <= registros ; i++) { 

        var odc = $('#odc'+i).val();
        var rfc = $('#rfc'+i).val();
        var fobra = $('#fobra'+i).val();
        var id = $('#id'+i).val();

        var dataB={
                odc:odc,
                rfc:rfc,
                fobra:fobra,
                id:id
            };

        datainfopagos.push(dataB);
    }

    

    var filename = $('#filessubirx').val();
    var fpgo= $('#fpgo').val();
    //var cantidadArchivos = $("#filessubirx")[0].files.length;
    
    var cantidadArchivos = archivosSeleccionados.length;
    
    
    var ruta_archcer = $('#filessubirx').val();
    var cantidadxml = array_xml.length;

    //facturasRelacionadas

    var montooc= $('#montooc').val();
    var montoxml= $('#montoxml').val();
    var messages='';
    var saldoOC=0;
    //formData = document.getElementById("cargardocumentos"); 
    /*for (var b = 0; b < array_xml.length; b++) {

            indice = array_xml[b].number;
            formData.append('filessubirx[]',$('#filessubirx')[0].files[indice]);
        }*/

    archivosSeleccionados.forEach((archivo) => {
            formData.append("filessubirx[]", archivo);
    });

    formData.append('array_xml',JSON.stringify(array_xml));
    formData.append('facturasRelacionadas',JSON.stringify(facturasRelacionadas));
    formData.append('datainfopagos',JSON.stringify(datainfopagos));


    if(cantidadArchivos == '0'){
        message(3,'¡Selecciona por lo menos un archivo!');
        return false;
    } 

    if(cantidadxml == '0'){
        message(3,'¡Los datos del XML son necesarios!');
        return false;
    } 

    /*if(montooc !== montoxml){
        message(3,'¡El monto del xml no es igual al monto del pago !');
        return false;
    }*/



     Swal.fire({
                title: "Guardar complemento de pago",
                text: "¿Deseas guardar el XML?",
                icon: 'warning',
                showCancelButton: true,
                confirmButtonColor: '#3085d6',
                cancelButtonColor: '#d33',
                confirmButtonText: 'Sí, guardar',
                cancelButtonText: 'Cancelar'
            }).then((result) => {
                if (result.isConfirmed) {
                    $.ajax({
                        type: 'POST',
                        url: "../controllers/procesos.php?filessubir="+filename+"&modulo=ordencompra&accion=save_documento_xml_cp&idUsuario="+idUsuario+"&tipodoc="+tipodoc+"&nombrearchi="+nombrearchi+"&pagosxml="+pagosxml+"&conArchivo=1",
                        data: formData,
                        contentType: false, // Importante para cargar archivos
                        processData: false, // Importante para cargar archivos
                        beforeSend: function() {
                            $('body').addClass('hidden');
                            $('#spinner_modal').fadeIn(); 
                        },
                        success: function(data) {
                           console.log(data);
                            $('body').removeClass('hidden');
                            $('#spinner_modal').fadeOut();
                            var obj = jQuery.parseJSON(data); 
                            
                            if(obj.status){
                                $("#container-inicio").hide();  
                                
                                $("#formcaptura").hide();
                                $('#container-apartados').load("../vistas/inicial.php?funcion=traeprovee&idusuario="+idUsuario+"&userrol="+userrol);
                                 message(obj.type,obj.mensaje);
                                 array_xml = [];
                                 array_fix = [];
                                 array_uuid = [];
                                 archivosSeleccionados = [];
                                 facturasRelacionadas = [];
                                 
                                
                            }else{
                                message(obj.type,obj.mensaje);
                            }
                        },
                        error: function(xhr,status) {
                            console.log("Error: "+xhr);
                            $('body').removeClass('hidden');
                            $('#spinner_modal').fadeOut();
                             message(3,'¡Error al procesar los datos!');
                             archivosSeleccionados = [];
                        }
                    });
                }else {
                        cerrar_cap('traeprovee',idUsuario,userrol);
                }
            });

        
    

         

}