



function Cargar_Select_Area() {
    $.ajax({
        "url": "../controller/usuario/controller_cargar_select_area.php",
        type: 'POST',
    }).done(function (resp) {
        let data = JSON.parse(resp);
        if (data.length > 0) {
            let cadena = "";
            for (let i = 0; i < data.length; i++) {
                cadena += " <option value='" + data[i][0] + "'>" + data[i][1] + "</option>";
            }
            document.getElementById('select_area_p').innerHTML = cadena;
            document.getElementById('select_area_d').innerHTML = cadena;
        } else {
            cadena += " <option value=''>No hay Areas disponibles</option>";
            document.getElementById('select_area_p').innerHTML = cadena;
            document.getElementById('select_area_d').innerHTML = cadena;
        }
    })
}

function Cargar_Select_Area_Destino(id) {
    $.ajax({
        "url": "../controller/usuario/controller_cargar_select_area.php",
        type: 'POST',
    }).done(function (resp) {
        let data = JSON.parse(resp);
        if (data.length > 0) {
            let cadena = "<option value=''>Seleccionar Area</option>";
            for (let i = 0; i < data.length; i++) {
                if (data[i][0] != id) {
                    cadena += " <option value='" + data[i][0] + "'>" + data[i][1] + "</option>";
                }
            }
            document.getElementById('select_destino_d').innerHTML = cadena;

        } else {
            cadena += " <option value=''>No hay Areas disponibles</option>";
            document.getElementById('select_destino_d').innerHTML = cadena;

        }
    })
}
function Cargar_Select_Area_Actual() {
    let id_area_ac = document.getElementById('txtprincipalareaid').value;
    Cargar_Select_Area_Destino(id_area_ac);
}

function Cargar_Select_Tupa() {
    $.ajax({
        "url": "../controller/tramite/controller_cargar_select_tupa.php",
        type: 'POST',
    }).done(function (resp) {
        let data = JSON.parse(resp);
        if (data.length > 0) {
            let cadena = "<option value=''></option>";
            for (let i = 0; i < data.length; i++) {
                cadena += " <option value='" + data[i][0] + "'>" + data[i][1] + "</option>";
            }
            document.getElementById('select_tupa_d').innerHTML = cadena;

        } else {
            cadena += " <option value=''>No hay Procedimientos disponibles</option>";
            document.getElementById('select_tupa_d').innerHTML = cadena;

        }
    })
}
function Cargar_Select_Tipo() {
    $.ajax({
        "url": "../controller/tramite/controller_cargar_select_tipo.php",
        type: 'POST',
    }).done(function (resp) {
        let data = JSON.parse(resp);
        if (data.length > 0) {
            let cadena = "<option value=''>Seleccionar Tipo Documento</option>";
            for (let i = 0; i < data.length; i++) {
                cadena += " <option value='" + data[i][0] + "'>" + data[i][1] + "</option>";
            }
            document.getElementById('select_tipo').innerHTML = cadena;
        } else {
            cadena += " <option value=''>No hay Areas disponibles</option>";
            document.getElementById('select_tipo').innerHTML = cadena;
        }
    })
}


function Registrar_Tramite() {
    //DATOS DEL REMITENTE
    let dni = document.getElementById('txt_dni').value;
    let nom = document.getElementById('txt_nom').value;
    let apt = document.getElementById('txt_apepat').value;
    let apm = document.getElementById('txt_apemat').value;
    let cel = document.getElementById('txt_celular').value;
    let ema = document.getElementById('txt_email').value;
    let dir = document.getElementById('txt_dire').value;
    let idusu = document.getElementById('txtprincipalid').value;

    let presentacion = document.getElementsByName('r1');
    let vpresentacion = "";
    for (let i = 0; i < presentacion.length; i++) {
        if (presentacion[i].checked) {
            vpresentacion = presentacion[i].value;
        }
    }

    let ruc = document.getElementById('txt_ruc').value;
    let raz = document.getElementById('txt_razon').value;

    //DATOS DEL DOCUMENTO
    let proc = document.getElementById('select_tupa_d').value;
    let arp = document.getElementById('txtprincipalareaid').value;
    let ard = document.getElementById('select_destino_d').value;
    let tip = document.getElementById('select_tipo').value;
    let ndo = document.getElementById('txt_ndocumento').value;
    let asu = document.getElementById('txt_asunto').value;
    let arc = document.getElementById('txt_archivo').value;
    let fol = document.getElementById('txt_folio').value;

    if (arc.length == 0) {
        return Swal.fire("Mensaje de Advetencia", "Seleccione un documento", "warning");
    }
    let extension = arc.split('.').pop();
    let nombrearchivo = "";
    let f = new Date();
    if (arc.length > 0) {
        nombrearchivo = "ARCH" + f.getDate() + "" + (f.getMonth() + 1) + "" + f.getFullYear() + "" + f.getHours() + "" + f.getMilliseconds() + "." + extension;
    }
    if ( nom.length == 0 || apt.length == 0 || apm.length == 0 ) {
        return Swal.fire("Mensaje de Advetencia", "Llene todos lo datos del remitente", "warning");
    }
    if (proc.length == 0 || arp.length == 0 || ard.length == 0 || tip.length == 0 || ndo.length == 0 || asu.length == 0 || fol.length == 0) {
        return Swal.fire("Mensaje de Advetencia", "Llene todos lo datos del Documento", "warning");
    }

    let formData = new FormData();
    let archivoobj = $("#txt_archivo")[0].files[0];
    //DATOS REMITENTE
    formData.append("dni", dni);
    formData.append("nom", nom);
    formData.append("apt", apt);
    formData.append("apm", apm);
    formData.append("cel", cel);
    formData.append("ema", ema);
    formData.append("dir", dir);
    formData.append("vpresentacion", vpresentacion);
    formData.append("ruc", ruc);
    formData.append("raz", raz);

    //DATOS REMITENTE
    formData.append("proc", proc);
    formData.append("arp", arp);
    formData.append("ard", ard);
    formData.append("tip", tip);
    formData.append("ndo", ndo);
    formData.append("asu", asu);
    formData.append("nombrearchivo", nombrearchivo);
    formData.append("fol", fol);
    formData.append("archivoobj", archivoobj);
    formData.append("idusu", idusu);

    $.ajax({
        "url": "../controller/tramite/controller_regitro_tramite_interno.php",
        type: 'POST',
        data: formData,
        contentType: false,
        processData: false,
        success: function (resp) {
            if (resp.length > 0) {
              Swal.fire({
                title: 'Enviando...',
                text: 'Espere un momento por favor, estamos registrando su expediente',
                timerProgressBar: true,
                didOpen: () => {
                  Swal.showLoading();
                }
              });
              
              $.ajax({
                
              }).done(function (data) {
                $.ajax({
                  "url": "MAILER/index.php",
                  type: 'POST',
                  data: {
                    resp: resp,
                    ruta: data
                  }
                }).done(function() {
                  // La segunda petición AJAX se ha completado
                  setTimeout(function() {
                    Swal.fire({
                        icon: 'success',
                        title: 'Mensaje de Confirmacion',
                        html: 'Nuevo Tramite Registrado con Nro <b> '+resp.split("-")[0]+ '</b><br><br> El cargo fue enviado a su correo: <b class="text-danger"> '+ema+'</b>',
                    }).then((value) => {
                      //window.open("dompdf/cargo_tramite.php?codigo="+resp+"#zoom=100");
                  });
                  }); // Retrasar la ejecución del código dentro de setTimeout() durante 3 segundos (3000 milisegundos)
                  $("#content").load("modules/tramite_area/tramite_registro_otros.php");
                });
              });

            } else {
                Swal.fire("Mensaje de Advertencia", "El Usuario ingresado ya se encuentra en la base de datos", "warning");
            }
        }

    });
    return false;

}


function Traer_Datos_Seguimiento() {
    let numero = document.getElementById('txt_numero').value;
    let dni = document.getElementById('txt_dni').value;
    let anio = document.getElementById('txt_año').value;
    let num_anio = numero+"-"+anio;
    if (numero.length == 0 || dni.length == 0) {
      return Swal.fire("Mensaje de Advertencia", "Tiene Campos Vacios", "warning");
    }
    $.ajax({
      "url": "../controller/usuario/controller_traer_seguimiento.php",
      type: 'POST',
      data: {
        numero: num_anio,
        dni: dni
      }
    }).done(function (resp) {
      let data = JSON.parse(resp);
      var cadena = "";
      if (data.length > 0) {
        document.getElementById("buscador").style.display = "block";
        document.getElementById('lbl_titulo').innerHTML = "Seguimiento del Expediente Nro: " + data[0][0] + " - " + data[0][2];
        if(data[0][4]==null){
          document.getElementById("item_interno").style.display = "none";
        }else{
            document.getElementById("item_interno").innerHTML='<div class="timeline">  <div class="tl-entry active"><div class="tl-time w-auto"><div class="tl-date">'+Calcular_Fecha(data[0][3])+'</div><div class="tl-time">'+Calcular_Hora(data[0][3])+'</div></div><div class="tl-media"><div class="ratio ratio-1x1 bg-info text-white rounded-circle"><i class="fa-solid fa-envelope-open fs-5"></i></div></div><div class="tl-content card  " style="min-width:initial;"><div class="card-body w-450px"><h5 class="fs-5">En:'+data[0][5]+' </h5><label for="" class="text-dark fw-bolder">Descripcion:</label><p style="text-align:justify;" class="mb-1"></p><label class="text-dark fw-bolder" for="">Estado: <span class="badge bg-info">DERIVADO</span> <i class="fa-sharp fa-solid fa-arrow-right icono_flecha d-none" id="icono_flecha"></i> <span class="fw-normal"></span></label></div></div> </div></div>';
          /*document.getElementById('lbl_interno').innerHTML = '<b>Procedencia del Documento: </b> '+data[0][5]+'<br>';
          document.getElementById('lbl_interno_f').innerHTML = '<b>Fecha y Hora de Registro: </b> '+data[0][3];*/
        }
        
        cadena += '<div class="timeline">';
        //DETALLE
        $.ajax({
          "url": "../controller/usuario/controller_traer_seguimiento_detalle_interno.php",  // CAMBIO: Usar controlador INTERNO
          type: 'POST',
          data: {
            codigo: data[0][0]
          }
        }).done(function (resp) {
          let dataDetalle = JSON.parse(resp);
          if (dataDetalle.length > 0) {
            for (let i = 0; i < dataDetalle.length; i++) {
              let classe = "";
              let area_des = "";
              let area_dett = ""
              let none = "";
              let = icon_ = "";
              let boton_archivo = "";

              if (dataDetalle[i][5] == 'DERIVADO') {
                classe = 'bg-info';
                icon_ = "fa-solid fa-envelope-open";
              } else if (dataDetalle[i][5] == 'FINALIZADO') {
                classe = 'bg-success';
                icon_ = "fa-solid fa-thumbs-up";
                area_dett = dataDetalle[i][7];
              } else if (dataDetalle[i][5] == 'PENDIENTE') {
                classe = 'bg-warning';
                icon_ = "fa-solid fa-envelope"
              } else {
                classe = 'bg-danger';
              }

              // Mostrar botón de descarga si hay archivo adjunto
              // En seguimiento INTERNO, se muestran TODOS los archivos (con o sin visible_publico = 1)
              if (dataDetalle[i][8] && dataDetalle[i][8] != '' && dataDetalle[i][8] != null) {
                // Generar URL segura con movimiento_id y código de verificación (DNI)
                let url_segura = '../descargar_archivo.php?mov=' + dataDetalle[i][0] + '&cod=' + dni;
                boton_archivo = '<div class="mt-3"><a href="' + url_segura + '" target="_blank" class="btn btn-success btn-sm"><i class="fa-solid fa-file-pdf me-2"></i>Ver Documento Adjunto</a></div>';
              }

              if (i + 1 == dataDetalle.length) {
                area_des = "";
                none = "d-none"

              } else {
                area_des = dataDetalle[i + 1][2];
                area_dett = dataDetalle[i + 1][4];
              }

              cadena += '  <div class="tl-entry active">' +
                '<div class="tl-time w-auto">' +
                '<div class="tl-date">' + Calcular_Fecha(dataDetalle[i][3]) + '</div>' +
                '<div class="tl-time">' + Calcular_Hora(dataDetalle[i][3]) + '</div>' +
                '</div>' +
                '<div class="tl-media">' +
                '<div class="ratio ratio-1x1 ' + classe + ' text-white rounded-circle">' +
                '<i class="' + icon_ + ' fs-5"></i>' +
                '</div>' +
                '</div>' +
                '<div class="tl-content card  "style="min-width:initial;">' +
                '<div class="card-body w-450px">' +
                '<h5 class="fs-5">En: ' + dataDetalle[i][2] + '</h5>' +
                '<label for=""class="text-dark fw-bolder">Descripcion:</label>' +
                '<p style="text-align:justify;" class="mb-1">' + area_dett + '</p>' +
                '<label class="text-dark fw-bolder" for="">Estado: <span class="badge ' + classe + '">' + dataDetalle[i][5] + '</span> <i class="fa-sharp fa-solid fa-arrow-right icono_flecha ' + none + '" id="icono_flecha"></i> <span class="fw-normal">' + area_des + '</span></label>' +
                boton_archivo +
                '</div>' +
                '</div>' +
                ' </div>';
  
  
            }
            cadena += '</div>';
  
            document.getElementById("div_seguimiento").innerHTML = cadena;
  
  
          }
        });
  
      } else {
        document.getElementById("buscador").style.display = "none";
        Swal.fire("Mensaje de Error", "No existe el Expediente", "error");
        document.getElementById('txt_numero').value="";
        document.getElementById('txt_dni').value="";
  
      }
    });
  }
  
  function Calcular_Dia(fechahora) {
  
    let fecha = new Date(fechahora);
    let diasemana = fecha.getDay(fecha);
    var diaSemanaString = '';
    switch (diasemana) {
      case 0:
        diaSemanaString = 'Domingo';
        break;
      case 1:
        diaSemanaString = 'Lunes';
        break;
      case 2:
        diaSemanaString = 'Martes';
        break;
      case 3:
        diaSemanaString = 'Miércoles';
        break;
      case 4:
        diaSemanaString = 'Jueves';
        break;
      case 5:
        diaSemanaString = 'Viernes';
        break;
      case 6:
        diaSemanaString = 'Sábado';
        break;
    }
    return diaSemanaString;
  }
  function Calcular_Fecha(fechahora) {
  
    let fecha = new Date(fechahora);
    let fecha2 = fecha.toLocaleDateString();
    let fechaArray = fecha2.split('/');
    let dia = fechaArray[0];
    let mes = fechaArray[1];
    let anio = fechaArray[2];
    if (dia.length < 2) {
      dia = '0' + dia;
    }
    if (mes.length < 2) {
      mes = '0' + mes;
    }
    return dia + '/' + mes + '/' + anio;
  }
  function Calcular_Hora(fechahora) {
    let fecha = new Date(fechahora);
    let hora = fecha.getHours();
    let periodo = 'AM';
    if (hora >= 12) {
      periodo = 'PM';
    }
    if (hora > 12) {
      hora = hora - 12;
      hora = '0' + hora;
    }
    let minutos = fecha.getMinutes();
    if (minutos < 10) {
      minutos = '0' + minutos;
    }
    return hora + ':' + minutos + ' ' + periodo;
  }

