{"id":4968,"date":"2026-09-11T11:42:31","date_gmt":"2026-09-11T17:42:31","guid":{"rendered":"https:\/\/www.japami.gob.mx\/?page_id=4968"},"modified":"2026-09-11T11:53:45","modified_gmt":"2026-09-11T17:53:45","slug":"seguimientoreporte","status":"publish","type":"page","link":"https:\/\/www.japami.gob.mx\/index.php\/seguimientoreporte\/","title":{"rendered":"Seguimiento a Reporte"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4968\" class=\"elementor elementor-4968\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e810fc5 e-flex e-con-boxed e-con e-parent\" data-id=\"e810fc5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-18d2b02 elementor-widget elementor-widget-shortcode\" data-id=\"18d2b02\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><style>\r\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;500;600;700&display=swap');\r\n\r\n  :root{\r\n    --azul-profundo:#252e56;\r\n    --azul-medio:#1a6b93;\r\n    --azul-claro:#e8f3f8;\r\n    --cian:#62a5da;\r\n    --verde-on:#2e8b57;\r\n    --rojo-off:#b3412c;\r\n    --gris-texto:#33424e;\r\n    --gris-borde:#d3e0e6;\r\n    --blanco:#ffffff;\r\n  }\r\n\r\n  *{box-sizing:border-box;}\r\n\r\n  body{\r\n    margin:0;\r\n    font-family:'Montserrat', 'Segoe UI', Roboto, Arial, sans-serif;\r\n    background:linear-gradient(180deg, #f4f9fc 0%, var(--azul-claro) 100%) no-repeat center center fixed;\r\n    color:var(--gris-texto);\r\n  }\r\n\r\n  main{\r\n    max-width:900px;\r\n    margin:0 auto;\r\n    padding:30px 20px 60px;\r\n  }\r\n\r\n  .panel-busqueda{\r\n    background:var(--blanco);\r\n    border:1px solid var(--gris-borde);\r\n    border-radius:14px;\r\n    padding:24px 26px;\r\n    box-shadow:0 8px 24px rgba(11,61,92,0.08);\r\n  }\r\n\r\n  .brand-intro{\r\n    display:flex;\r\n    align-items:center;\r\n    gap:12px;\r\n    margin-bottom:16px;\r\n    padding-bottom:14px;\r\n    border-bottom:1px solid #e6eef3;\r\n  }\r\n\r\n  .brand-badge{\r\n    width:44px;\r\n    height:44px;\r\n    border-radius:50%;\r\n    background:linear-gradient(135deg, var(--azul-profundo), var(--cian));\r\n    color:var(--blanco);\r\n    display:grid;\r\n    place-items:center;\r\n    font-weight:700;\r\n    letter-spacing:.06em;\r\n    flex-shrink:0;\r\n  }\r\n\r\n  .brand-title{\r\n    font-size:1rem;\r\n    font-weight:700;\r\n    color:var(--azul-profundo);\r\n  }\r\n\r\n  .brand-subtitle{\r\n    font-size:.8rem;\r\n    color:#67808d;\r\n    margin-top:2px;\r\n  }\r\n\r\n  .panel-busqueda label{\r\n    display:block;\r\n    font-size:.8rem;\r\n    text-transform:uppercase;\r\n    letter-spacing:.6px;\r\n    color:var(--azul-medio);\r\n    font-weight:700;\r\n    margin-bottom:8px;\r\n  }\r\n\r\n  .folio-buscar{\r\n    display:flex;\r\n    gap:10px;\r\n  }\r\n\r\n  input[type=\"text\"]{\r\n    width:100%;\r\n    padding:11px 12px;\r\n    font-size:1rem;\r\n    border:1px solid var(--gris-borde);\r\n    border-radius:6px;\r\n    background:var(--blanco);\r\n    color:var(--gris-texto);\r\n    font-family:inherit;\r\n  }\r\n\r\n  input[type=\"text\"]:focus{\r\n    outline:2px solid var(--cian);\r\n    outline-offset:1px;\r\n  }\r\n\r\n  button{\r\n    flex-shrink:0;\r\n    padding:11px 24px;\r\n    font-size:.95rem;\r\n    font-weight:700;\r\n    letter-spacing:.3px;\r\n    border:none;\r\n    border-radius:6px;\r\n    background:linear-gradient(135deg, var(--azul-profundo), var(--azul-medio));\r\n    color:var(--blanco);\r\n    cursor:pointer;\r\n    font-family:inherit;\r\n    transition:opacity .15s ease;\r\n  }\r\n\r\n  button:hover{ opacity:.9; }\r\n  button:disabled{ opacity:.6; cursor:not-allowed; }\r\n\r\n  #resultado{\r\n    margin-top:24px;\r\n    display:flex;\r\n    flex-direction:column;\r\n    gap:20px;\r\n  }\r\n\r\n  .mensaje{\r\n    padding:16px;\r\n    border-radius:8px;\r\n    background:var(--blanco);\r\n    border:1px dashed var(--gris-borde);\r\n    color:#5c6b76;\r\n    font-size:.9rem;\r\n  }\r\n\r\n  .mensaje.error{\r\n    border:1px solid var(--rojo-off);\r\n    background:#fdf0ee;\r\n    color:var(--rojo-off);\r\n  }\r\n\r\n  \/* -------- Tarjeta resumen del reporte -------- *\/\r\n  .reporte-resumen{\r\n    background:var(--blanco);\r\n    border-radius:14px;\r\n    overflow:hidden;\r\n    box-shadow:0 10px 28px rgba(11,61,92,0.12);\r\n    border:1px solid #e8f1f6;\r\n  }\r\n\r\n  .reporte-resumen-header{\r\n    background:linear-gradient(135deg, var(--azul-profundo), var(--azul-medio));\r\n    color:var(--blanco);\r\n    padding:24px 30px;\r\n    display:flex;\r\n    justify-content:space-between;\r\n    align-items:flex-start;\r\n    gap:16px;\r\n    flex-wrap:wrap;\r\n  }\r\n\r\n  .reporte-resumen-header h3{\r\n    margin:0;\r\n    font-size:1.3rem;\r\n    font-weight:600;\r\n  }\r\n\r\n  .reporte-folio{\r\n    font-size:.9rem;\r\n    color:#b3d0e0;\r\n    font-weight:500;\r\n    margin-top:4px;\r\n  }\r\n\r\n  .estatus-pill{\r\n    display:inline-block;\r\n    padding:6px 14px;\r\n    border-radius:20px;\r\n    font-size:.8rem;\r\n    font-weight:700;\r\n    letter-spacing:.4px;\r\n    white-space:nowrap;\r\n  }\r\n\r\n  .estatus-pill.ok{ background:#e5f3ea; color:var(--verde-on); }\r\n  .estatus-pill.pendiente{ background:#e8f6fa; color:var(--azul-medio); }\r\n  .estatus-pill.alerta{ background:#fbe9e6; color:var(--rojo-off); }\r\n\r\n  .reporte-resumen-body{\r\n    padding:26px 30px;\r\n    display:grid;\r\n    grid-template-columns:repeat(2, 1fr);\r\n    gap:16px 30px;\r\n  }\r\n\r\n  .campo{\r\n    font-size:.9rem;\r\n  }\r\n\r\n  .campo-label{\r\n    font-size:.72rem;\r\n    text-transform:uppercase;\r\n    letter-spacing:.5px;\r\n    color:var(--azul-medio);\r\n    font-weight:700;\r\n    margin-bottom:4px;\r\n  }\r\n\r\n  .campo-valor{\r\n    color:var(--gris-texto);\r\n    line-height:1.5;\r\n  }\r\n\r\n  .campo.full{\r\n    grid-column:1 \/ -1;\r\n  }\r\n\r\n  \/* -------- Timeline de seguimiento -------- *\/\r\n  .timeline-titulo{\r\n    font-size:.95rem;\r\n    font-weight:700;\r\n    color:var(--azul-profundo);\r\n    text-transform:uppercase;\r\n    letter-spacing:.6px;\r\n    margin:6px 2px 4px;\r\n  }\r\n\r\n  .timeline{\r\n    position:relative;\r\n    padding-left:36px;\r\n  }\r\n\r\n  .timeline::before{\r\n    content:'';\r\n    position:absolute;\r\n    left:11px;\r\n    top:8px;\r\n    bottom:8px;\r\n    width:2px;\r\n    background:var(--gris-borde);\r\n  }\r\n\r\n  .timeline-item{\r\n    position:relative;\r\n    margin-bottom:18px;\r\n  }\r\n\r\n  .timeline-item:last-child{\r\n    margin-bottom:0;\r\n  }\r\n\r\n  .timeline-dot{\r\n    position:absolute;\r\n    left:-36px;\r\n    top:22px;\r\n    width:24px;\r\n    height:24px;\r\n    border-radius:50%;\r\n    background:var(--cian);\r\n    color:var(--blanco);\r\n    display:flex;\r\n    align-items:center;\r\n    justify-content:center;\r\n    font-size:.72rem;\r\n    font-weight:700;\r\n    border:3px solid var(--blanco);\r\n    box-shadow:0 0 0 1px var(--gris-borde);\r\n  }\r\n\r\n  .timeline-card{\r\n    background:var(--blanco);\r\n    border:1px solid #e8f1f6;\r\n    border-radius:12px;\r\n    padding:18px 22px;\r\n    box-shadow:0 6px 18px rgba(11,61,92,0.07);\r\n  }\r\n\r\n  .timeline-card-header{\r\n    display:flex;\r\n    justify-content:space-between;\r\n    align-items:flex-start;\r\n    gap:12px;\r\n    flex-wrap:wrap;\r\n    margin-bottom:10px;\r\n    padding-bottom:10px;\r\n    border-bottom:1px solid #eef4f7;\r\n  }\r\n\r\n  .timeline-card-header h4{\r\n    margin:0;\r\n    font-size:1rem;\r\n    font-weight:700;\r\n    color:var(--azul-profundo);\r\n  }\r\n\r\n  .timeline-card-sub{\r\n    font-size:.8rem;\r\n    color:#67808d;\r\n    margin-top:2px;\r\n  }\r\n\r\n  .timeline-campos{\r\n    display:grid;\r\n    grid-template-columns:repeat(2, 1fr);\r\n    gap:12px 24px;\r\n  }\r\n\r\n  .timeline-campos .campo.full{\r\n    grid-column:1 \/ -1;\r\n  }\r\n\r\n  .timeline-campos .campo-valor.vacio{\r\n    color:#9aa8b1;\r\n    font-style:italic;\r\n  }\r\n\r\n  @media (max-width: 640px){\r\n    .reporte-resumen-body, .timeline-campos{\r\n      grid-template-columns:1fr;\r\n    }\r\n    .folio-buscar{\r\n      flex-direction:column;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<body>\r\n\r\n<main>\r\n  <div class=\"panel-busqueda\">\r\n    <div class=\"brand-intro\">\r\n      <!--<div class=\"brand-badge\">JP<\/div>-->\r\n      <div>\r\n        <div class=\"brand-title\">Seguimiento a Reporte<\/div>\r\n        <div class=\"brand-subtitle\">JAPAMI \u00b7 Consulta el historial completo de un folio<\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <label for=\"folio\">N\u00famero de folio<\/label>\r\n    <div class=\"folio-buscar\">\r\n      <input type=\"text\" id=\"folio\" inputmode=\"numeric\" maxlength=\"15\" pattern=\"\\d{6,15}\" title=\"Escribe un folio v\u00e1lido (solo n\u00fameros).\" placeholder=\"Ej. 0004651494\" autocomplete=\"off\">\r\n      <button id=\"btnBuscar\" type=\"button\">Buscar<\/button>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div id=\"resultado\"><\/div>\r\n<\/main>\r\n\r\n<script>\r\n  \/\/ ==========================================================\r\n  \/\/ Configuraci\u00f3n \u2014 endpoints REST registrados por el snippet\r\n  \/\/ de WPCode (proxyBase.php). Como este HTML se sirve desde\r\n  \/\/ el mismo dominio de WordPress, la ruta es relativa.\r\n  \/\/ ==========================================================\r\n  const PROXY_BASE = \"https:\/\/www.japami.gob.mx\/index.php\/wp-json\/japami\/v1\";\r\n\r\n  const inputFolio = document.getElementById(\"folio\");\r\n  const btnBuscar = document.getElementById(\"btnBuscar\");\r\n  const resultadoDiv = document.getElementById(\"resultado\");\r\n\r\n  \/\/ Reglas de validaci\u00f3n \u2014 ver VALIDACIONES.md. El folio se trata\r\n  \/\/ siempre como texto (nunca se convierte a n\u00famero) para no perder\r\n  \/\/ los ceros a la izquierda que regresa la API.\r\n  const REGEX_FOLIO = \/^\\d{6,15}$\/;\r\n\r\n  \/\/ ==========================================================\r\n  \/\/ Utilidad: extrae un arreglo de una respuesta de API que\r\n  \/\/ puede venir \"cruda\" o envuelta en distintas propiedades\r\n  \/\/ comunes (data, items, result, value, etc.)\r\n  \/\/ ==========================================================\r\n  function extraerArreglo(raw, ...claves) {\r\n    if (Array.isArray(raw)) return raw;\r\n    if (raw && typeof raw === \"object\") {\r\n      for (const clave of claves) {\r\n        if (Array.isArray(raw[clave])) return raw[clave];\r\n      }\r\n      const candidato =\r\n        raw.data ?? raw.Data ??\r\n        raw.items ?? raw.Items ??\r\n        raw.result ?? raw.Result ??\r\n        raw.value ?? raw.Value ??\r\n        raw.records ?? raw.Records;\r\n      if (Array.isArray(candidato)) return candidato;\r\n    }\r\n    return null;\r\n  }\r\n\r\n  function escaparHtml(texto) {\r\n    const div = document.createElement(\"div\");\r\n    div.textContent = texto ?? \"\";\r\n    return div.innerHTML;\r\n  }\r\n\r\n  function valorOVacio(valor, textoVacio = \"Sin dato\") {\r\n    const limpio = (valor ?? \"\").toString().trim();\r\n    if (!limpio) return `<span class=\"campo-valor vacio\">${textoVacio}<\/span>`;\r\n    return `<span class=\"campo-valor\">${escaparHtml(limpio)}<\/span>`;\r\n  }\r\n\r\n  function claseEstatus(estatus) {\r\n    const e = (estatus || \"\").toUpperCase();\r\n    if (e.includes(\"CANCEL\") || e.includes(\"RECHAZ\")) return \"alerta\";\r\n    if (e.includes(\"FINAL\") || e.includes(\"EJECUT\") || e.includes(\"SOLUCION\") || e.includes(\"CONCLU\")) return \"ok\";\r\n    return \"pendiente\";\r\n  }\r\n\r\n  \/\/ ==========================================================\r\n  \/\/ Disparo de b\u00fasqueda: click en bot\u00f3n o Enter en el input\r\n  \/\/ ==========================================================\r\n  btnBuscar.addEventListener(\"click\", () => buscarReporte(inputFolio.value.trim()));\r\n  inputFolio.addEventListener(\"keydown\", (e) => {\r\n    if (e.key === \"Enter\") buscarReporte(inputFolio.value.trim());\r\n  });\r\n\r\n  \/\/ ==========================================================\r\n  \/\/ Si se llega con ?folio=XXXX en la URL (p.ej. tras registrar\r\n  \/\/ una Solicitud de Convenio\/Ajuste\/Compromiso de Pago), se\r\n  \/\/ precarga el campo y se dispara la b\u00fasqueda autom\u00e1ticamente.\r\n  \/\/ ==========================================================\r\n  const folioURL = new URLSearchParams(window.location.search).get(\"folio\");\r\n  if (folioURL) {\r\n    inputFolio.value = folioURL.trim();\r\n    buscarReporte(inputFolio.value);\r\n  }\r\n\r\n  async function buscarReporte(folio) {\r\n    resultadoDiv.innerHTML = \"\";\r\n\r\n    if (!folio) {\r\n      resultadoDiv.innerHTML = '<div class=\"mensaje\">Escribe un n\u00famero de folio para consultar su seguimiento.<\/div>';\r\n      return;\r\n    }\r\n    if (!REGEX_FOLIO.test(folio)) {\r\n      resultadoDiv.innerHTML = '<div class=\"mensaje error\">Escribe un folio v\u00e1lido (solo n\u00fameros).<\/div>';\r\n      return;\r\n    }\r\n\r\n    resultadoDiv.innerHTML = '<div class=\"mensaje\">Buscando informaci\u00f3n del folio\u2026<\/div>';\r\n    btnBuscar.disabled = true;\r\n\r\n    try {\r\n      const [resGeneral, resConsecutivos] = await Promise.all([\r\n        fetch(`${PROXY_BASE}\/work-orders-by-folio?folio=${encodeURIComponent(folio)}`, {\r\n          method: \"GET\",\r\n          headers: { \"accept\": \"application\/json\" }\r\n        }),\r\n        fetch(`${PROXY_BASE}\/work-order-consecutivos?folio=${encodeURIComponent(folio)}`, {\r\n          method: \"GET\",\r\n          headers: { \"accept\": \"application\/json\" }\r\n        })\r\n      ]);\r\n\r\n      if (!resGeneral.ok) throw new Error(`HTTP ${resGeneral.status} al consultar datos generales`);\r\n      if (!resConsecutivos.ok) throw new Error(`HTTP ${resConsecutivos.status} al consultar el detalle`);\r\n\r\n      const rawGeneral = await resGeneral.json();\r\n      const rawConsecutivos = await resConsecutivos.json();\r\n\r\n      console.log(\"Respuesta cruda de workOrdersByFolio:\", rawGeneral);\r\n      console.log(\"Respuesta cruda de workOrderConsecutivos:\", rawConsecutivos);\r\n\r\n      const reportes = extraerArreglo(rawGeneral, \"reports\", \"Reports\");\r\n      const consecutivos = extraerArreglo(rawConsecutivos, \"consecutivos\", \"Consecutivos\");\r\n\r\n      if (!reportes || reportes.length === 0) {\r\n        resultadoDiv.innerHTML = `<div class=\"mensaje error\">No se encontr\u00f3 ning\u00fan reporte con el folio \"${escaparHtml(folio)}\".<\/div>`;\r\n        return;\r\n      }\r\n\r\n      resultadoDiv.innerHTML = \"\";\r\n      resultadoDiv.appendChild(crearResumen(reportes[0]));\r\n\r\n      if (consecutivos && consecutivos.length > 0) {\r\n        resultadoDiv.appendChild(crearTimeline(consecutivos));\r\n      } else {\r\n        const sinDetalle = document.createElement(\"div\");\r\n        sinDetalle.className = \"mensaje\";\r\n        sinDetalle.textContent = \"Este folio no tiene subfolios de seguimiento registrados.\";\r\n        resultadoDiv.appendChild(sinDetalle);\r\n      }\r\n\r\n    } catch (err) {\r\n      resultadoDiv.innerHTML = `<div class=\"mensaje error\">Error al obtener el seguimiento: ${escaparHtml(err.message)}<\/div>`;\r\n    } finally {\r\n      btnBuscar.disabled = false;\r\n    }\r\n  }\r\n\r\n  \/\/ ==========================================================\r\n  \/\/ Tarjeta resumen \u2014 datos generales del folio (workOrdersByFolio)\r\n  \/\/ ==========================================================\r\n  function crearResumen(reporte) {\r\n    const card = document.createElement(\"div\");\r\n    card.className = \"reporte-resumen\";\r\n\r\n    const pillClase = claseEstatus(reporte.Estatus_General || reporte.Estatus);\r\n\r\n    card.innerHTML = `\r\n      <div class=\"reporte-resumen-header\">\r\n        <div>\r\n          <h3>Folio: ${escaparHtml((reporte.Folio || \"\u2014\").trim())}<\/h3>\r\n        <\/div>\r\n        <span class=\"estatus-pill ${pillClase}\">${escaparHtml(reporte.Estatus_General || reporte.Estatus || \"SIN ESTATUS\")}<\/span>\r\n      <\/div>\r\n      <div class=\"reporte-resumen-body\">\r\n        <div class=\"campo\">\r\n          <div class=\"campo-label\">Estatus<\/div>\r\n          ${valorOVacio(reporte.Estatus)}\r\n        <\/div>\r\n        <div class=\"campo\">\r\n          <div class=\"campo-label\">Distrito<\/div>\r\n          ${valorOVacio(reporte.Distrito)}\r\n        <\/div>\r\n        <div class=\"campo\">\r\n          <div class=\"campo-label\">Tipo de Falla<\/div>\r\n          ${valorOVacio(reporte.Tipo_Falla)}\r\n        <\/div>\r\n        <div class=\"campo\">\r\n          <div class=\"campo-label\">No. de Cuenta<\/div>\r\n          ${valorOVacio(reporte.No_Cuenta)}\r\n        <\/div>\r\n        <div class=\"campo full\">\r\n          <div class=\"campo-label\">Domicilio<\/div>\r\n          ${valorOVacio(reporte.Domicilio_Completo)}\r\n        <\/div>\r\n        <div class=\"campo\">\r\n          <div class=\"campo-label\">Report\u00f3<\/div>\r\n          ${valorOVacio(reporte.Reporto)}\r\n        <\/div>\r\n        <div class=\"campo\">\r\n          <div class=\"campo-label\">Tel\u00e9fono<\/div>\r\n          ${valorOVacio(reporte.Telefono)}\r\n        <\/div>\r\n        <div class=\"campo full\">\r\n          <div class=\"campo-label\">Correo<\/div>\r\n          ${valorOVacio(reporte.Email)}\r\n        <\/div>\r\n        <div class=\"campo full\">\r\n          <div class=\"campo-label\">Observaciones<\/div>\r\n          ${valorOVacio(reporte.Observaciones, \"Sin observaciones\")}\r\n        <\/div>\r\n      <\/div>\r\n    `;\r\n\r\n    return card;\r\n  }\r\n\r\n  \/\/ ==========================================================\r\n  \/\/ Timeline \u2014 historial de subfolios (workOrderConsecutivos)\r\n  \/\/ ==========================================================\r\n  function crearTimeline(consecutivos) {\r\n    const wrapper = document.createElement(\"div\");\r\n\r\n    const titulo = document.createElement(\"div\");\r\n    titulo.className = \"timeline-titulo\";\r\n    titulo.textContent = \"Historial de seguimiento\";\r\n    wrapper.appendChild(titulo);\r\n\r\n    const timeline = document.createElement(\"div\");\r\n    timeline.className = \"timeline\";\r\n\r\n    const ordenados = [...consecutivos].sort((a, b) => (a.Consecutivo ?? 0) - (b.Consecutivo ?? 0));\r\n\r\n    ordenados.forEach(item => {\r\n      const folioLimpio = (item.Folio || \"\").trim();\r\n      const pillClase = claseEstatus(item.Estatus);\r\n\r\n      const paso = document.createElement(\"div\");\r\n      paso.className = \"timeline-item\";\r\n      paso.innerHTML = `\r\n        <div class=\"timeline-dot\">${item.Consecutivo ?? \"\u2014\"}<\/div>\r\n        <div class=\"timeline-card\">\r\n          <div class=\"timeline-card-header\">\r\n            <div>\r\n              <h4>${escaparHtml(item.Tipo_Falla || \"Sin tipo de falla\")}<\/h4>\r\n              <div class=\"timeline-card-sub\">Folio ${escaparHtml(folioLimpio)} \u00b7 ${escaparHtml(item.Distrito || \"\u2014\")}<\/div>\r\n            <\/div>\r\n            <span class=\"estatus-pill ${pillClase}\">${escaparHtml(item.Estatus || \"SIN ESTATUS\")}<\/span>\r\n          <\/div>\r\n          <div class=\"timeline-campos\">\r\n            <div class=\"campo\">\r\n              <div class=\"campo-label\">Fecha de reporte<\/div>\r\n              ${valorOVacio(item.Fecha_Reporte)}\r\n            <\/div>\r\n            <div class=\"campo\">\r\n              <div class=\"campo-label\">Fecha de soluci\u00f3n<\/div>\r\n              ${valorOVacio(item.Fecha_Solucion, \"Pendiente\")}\r\n            <\/div>\r\n            <div class=\"campo full\">\r\n              <div class=\"campo-label\">Reporte<\/div>\r\n              ${valorOVacio(item.Reporte)}\r\n            <\/div>\r\n            <div class=\"campo full\">\r\n              <div class=\"campo-label\">Soluci\u00f3n<\/div>\r\n              ${valorOVacio(item.Solucion, \"Pendiente de soluci\u00f3n\")}\r\n            <\/div>\r\n            <div class=\"campo\">\r\n              <div class=\"campo-label\">Report\u00f3<\/div>\r\n              ${valorOVacio(item.Reporto)}\r\n            <\/div>\r\n            <div class=\"campo\">\r\n              <div class=\"campo-label\">Canal<\/div>\r\n              ${valorOVacio(item.Canal)}\r\n            <\/div>\r\n            <div class=\"campo\">\r\n              <div class=\"campo-label\">Colonia<\/div>\r\n              ${valorOVacio(item.Colonia)}\r\n            <\/div>\r\n            <div class=\"campo\">\r\n              <div class=\"campo-label\">Atendi\u00f3<\/div>\r\n              ${valorOVacio(item.Empleado_Atendio)}\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      `;\r\n      timeline.appendChild(paso);\r\n    });\r\n\r\n    wrapper.appendChild(timeline);\r\n    return wrapper;\r\n  }\r\n<\/script>\r\n\r\n<\/body>\r\n\r\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-4968","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.japami.gob.mx\/index.php\/wp-json\/wp\/v2\/pages\/4968","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.japami.gob.mx\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.japami.gob.mx\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.japami.gob.mx\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.japami.gob.mx\/index.php\/wp-json\/wp\/v2\/comments?post=4968"}],"version-history":[{"count":5,"href":"https:\/\/www.japami.gob.mx\/index.php\/wp-json\/wp\/v2\/pages\/4968\/revisions"}],"predecessor-version":[{"id":4973,"href":"https:\/\/www.japami.gob.mx\/index.php\/wp-json\/wp\/v2\/pages\/4968\/revisions\/4973"}],"wp:attachment":[{"href":"https:\/\/www.japami.gob.mx\/index.php\/wp-json\/wp\/v2\/media?parent=4968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}