{"id":21229,"date":"2026-10-03T11:34:26","date_gmt":"2026-10-03T14:34:26","guid":{"rendered":"https:\/\/jobstore.cl\/index.php\/seguimiento-ot\/"},"modified":"2026-10-03T11:34:26","modified_gmt":"2026-10-03T14:34:26","slug":"seguimiento-ot","status":"publish","type":"page","link":"https:\/\/jobstore.cl\/index.php\/seguimiento-ot\/","title":{"rendered":"Seguimiento de tu reparaci\u00f3n"},"content":{"rendered":"<div id=\"jkbSeg\" class=\"jkb-seg\"><\/div>\n<style>\n.jkb-seg{max-width:760px;margin:10px auto 40px;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Helvetica,Arial,sans-serif;color:#1d1d1f}\n.jkb-seg *{box-sizing:border-box}\n.sg-card{background:#fff;border:1px solid #e5e5ea;border-radius:14px;padding:22px 24px;margin-bottom:16px}\n.sg-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:2px solid #1d1d1f;padding-bottom:12px;margin-bottom:12px}\n.sg-top .k{font-size:12.5px;color:#6e6e73;text-transform:uppercase;letter-spacing:.6px}.sg-top .v{font-size:24px;font-weight:800}\n.jkb-seg h1{font-size:24px!important;margin:0}.jkb-seg h2{font-size:19px!important;margin:0 0 6px}\n.sg-estado{display:inline-block;background:#1d1d1f;color:#fff;border-radius:20px;padding:6px 14px;font-weight:700;font-size:14px;margin-top:6px}\n.sg-f{margin:10px 0}.sg-f label{display:block;font-weight:600;font-size:13.5px;margin-bottom:4px}.sg-f input{width:100%;padding:11px 12px;border:1px solid #c7c7cc;border-radius:8px;font-size:15px}\n.sg-btn{border:0;border-radius:10px;padding:13px 20px;font-size:15.5px;font-weight:700;cursor:pointer;background:#c8102e;color:#fff;text-decoration:none;display:inline-block}\n.sg-msg{border-radius:10px;padding:12px 14px;margin:10px 0;font-size:14.5px}.sg-msg.err{background:#fdecec;border:1px solid #f3b4b4}.sg-msg.info{background:#fff4e5;border:1px solid #f0c27a}\n.sg-tl{position:relative;margin:8px 0 0;padding:0;list-style:none}\n.sg-tl li{position:relative;padding:0 0 22px 34px}\n.sg-tl li:before{content:\"\";position:absolute;left:9px;top:6px;bottom:-6px;width:2px;background:#d2d2d7}\n.sg-tl li:last-child:before{display:none}\n.sg-tl li .dot{position:absolute;left:0;top:2px;width:20px;height:20px;border-radius:50%;background:#1f8f4e;border:3px solid #e8f7ee}\n.sg-tl li.last .dot{background:#c8102e;border-color:#fde7ea;box-shadow:0 0 0 4px rgba(200,16,46,.12)}\n.sg-tl .f{font-size:12.5px;color:#6e6e73}.sg-tl .t{font-weight:700;font-size:16px;margin:1px 0 2px}.sg-tl .d{font-size:14px;color:#3a3a3c}\n.sg-tl .n{font-size:13.5px;background:#f5f5f7;border-radius:8px;padding:8px 10px;margin-top:6px}\n.sg-retraso{background:#fdecec;border:2px solid #c8102e;border-radius:12px;padding:14px 16px;margin:14px 0 0;color:#1d1d1f}\n.sg-retraso .rt{color:#c8102e;font-weight:800;font-size:17px;margin:0 0 6px}\n.sg-retraso p{margin:6px 0;font-size:14.5px}\n.sg-retraso .fe{display:inline-block;background:#c8102e;color:#fff;border-radius:8px;padding:5px 10px;font-weight:700;font-size:14px;margin:4px 0}\n.sg-retraso .ap{font-size:13px;background:#fff;border:1px solid #f3b4b4;border-radius:8px;padding:8px 10px;margin-top:8px;color:#3a3a3c}\n.sg-estado.rojo{background:#c8102e}\n.sg-tl li.alerta .dot{background:#c8102e;border-color:#fde7ea}.sg-tl li.alerta .t{color:#c8102e}.sg-tl li.alerta .n{background:#fdecec;border:1px solid #f3b4b4}\n.sg-cob{display:inline-block;border-radius:20px;padding:5px 12px;font-weight:700;font-size:13.5px;margin-top:4px;background:#f2f2f7;color:#1d1d1f;border:1px solid #d2d2d7}\n.sg-cob.verde{background:#e8f7ee;color:#136c3a;border-color:#a9dcbc}.sg-cob.azul{background:#e8f0fd;color:#0b4fb3;border-color:#b3cdf5}\n.sg-cobd{font-size:12.5px;color:#6e6e73;margin-top:4px;max-width:250px;margin-left:auto}\n.sg-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid #e5e5ea}\n.sg-btn2{border:1px solid #c7c7cc;background:#fff;border-radius:10px;padding:9px 16px;font-weight:700;font-size:14.5px;cursor:pointer;color:#1d1d1f}.sg-btn2:disabled{opacity:.6;cursor:default}\n.sg-bar .u{font-size:12.5px;color:#6e6e73}.sg-bar a{font-size:13px;color:#6e6e73;margin-left:auto}\n@media(max-width:560px){.sg-card{padding:18px 16px}.sg-cobd{margin-left:0}}\n<\/style>\n<script>\n(function(){\n  \"use strict\";\n  var CFG = {\"rest\":\"https:\\\/\\\/jobstore.cl\\\/index.php\\\/wp-json\\\/jobstore\\\/v1\\\/seguimiento\"}, root = document.getElementById('jkbSeg'), Q = new URLSearchParams(location.search);\n  function esc(s){ return String(s==null?'':s).replace(\/[&<>\"']\/g,function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c];}); }\n  function fecha(s){ if(!s) return ''; var p = String(s).slice(0,10).split('-'); return p.length===3 ? p[2]+'-'+p[1]+'-'+p[0] : s; }\n  \/* 2026-10-07: se recuerdan OT y RUT en este dispositivo \u2192 bot\u00f3n \"Actualizar\" sin volver a escribir los datos. *\/\n  var KEY = 'jkbSegDatos', ULT = null;\n  function leer(){ try{ var s = JSON.parse(localStorage.getItem(KEY) || 'null'); return (s && s.ot && s.rut) ? s : null; }catch(e){ return null; } }\n  function guardar(ot, rut){ try{ localStorage.setItem(KEY, JSON.stringify({ot: String(ot), rut: String(rut)})); }catch(e){} }\n  function olvidar(){ try{ localStorage.removeItem(KEY); }catch(e){} }\n  function normOt(v){ return String(v || '').replace(\/-[A-Za-z].*$\/, '').replace(\/[^0-9]\/g, ''); }\n  function hora(){ var d = new Date(); return ('0' + d.getHours()).slice(-2) + ':' + ('0' + d.getMinutes()).slice(-2); }\n  function cargando(){ root.innerHTML = '<div class=\"sg-card\"><p style=\"margin:0\">Cargando el estado de tu reparaci\u00f3n\u2026<\/p><\/div>'; }\n  function barra(){ return '<div class=\"sg-bar\"><button type=\"button\" class=\"sg-btn2\" id=\"sgAct\">\u21bb Actualizar<\/button><span class=\"u\" id=\"sgActMsg\">Actualizado a las ' + hora() + '<\/span><a href=\"#\" id=\"sgOtra\">Consultar otra OT<\/a><\/div>'; }\n  function enlazarBarra(){\n    var b = document.getElementById('sgAct'), o = document.getElementById('sgOtra');\n    if(b) b.onclick = function(){ if(!ULT) return; b.disabled = true; b.textContent = 'Actualizando\u2026'; consultar(ULT.ot, ULT.rut, 2); };\n    if(o) o.onclick = function(ev){ ev.preventDefault(); olvidar(); ULT = null; Q = new URLSearchParams(''); form(); };\n  }\n  function form(err){\n    root.innerHTML = '<div class=\"sg-card\"><div class=\"sg-top\"><div><div class=\"k\">Jobstore \u00b7 Servicio T\u00e9cnico Autorizado Apple<\/div><h1>Seguimiento de tu reparaci\u00f3n<\/h1><\/div><\/div>'\n      + '<p>Ingresa el N\u00b0 de tu orden de trabajo (OT) y tu RUT para ver en qu\u00e9 etapa est\u00e1 tu equipo.<\/p>' + (err ? '<div class=\"sg-msg err\">' + esc(err) + '<\/div>' : '')\n      + '<div class=\"sg-f\"><label>N\u00b0 de OT<\/label><input id=\"sgOt\" inputmode=\"numeric\" placeholder=\"Ej: 15955\" value=\"' + esc(Q.get('ot')||'') + '\"><\/div>'\n      + '<div class=\"sg-f\"><label>RUT<\/label><input id=\"sgRut\" placeholder=\"12.345.678-9\" value=\"' + esc(Q.get('rut') || (leer() || {}).rut || '') + '\"><\/div>'\n      + '<button class=\"sg-btn\" id=\"sgVer\">Ver estado<\/button><p style=\"font-size:12.5px;color:#6e6e73;margin:10px 0 0\">Guardaremos tu N\u00b0 de OT y RUT en este dispositivo: la pr\u00f3xima vez solo tendr\u00e1s que presionar <b>Actualizar<\/b>.<\/p><\/div>';\n    var go = function(){ var b = document.getElementById('sgVer'); b.disabled = true; consultar(document.getElementById('sgOt').value, document.getElementById('sgRut').value); };\n    document.getElementById('sgVer').onclick = go;\n    document.getElementById('sgRut').onkeydown = function(e){ if(e.key === 'Enter') go(); };\n  }\n  function consultar(ot, rut, modo){\n    fetch(CFG.rest, {method:'POST', headers:{'Content-Type':'application\/json'}, credentials:'same-origin', body: JSON.stringify({ot: ot, rut: rut})})\n      .then(function(r){ return r.json().then(function(j){ if(!r.ok) throw new Error(j.message || 'Error'); return j; }); })\n      .then(function(d){ ULT = {ot: ot, rut: rut}; guardar(ot, rut); pintar(d); })\n    .catch(function(e){\n      var b = document.getElementById('sgAct');\n      if(modo === 2 && b){ b.disabled = false; b.textContent = '\u21bb Actualizar'; document.getElementById('sgActMsg').textContent = e.message; }\n      else if(modo === 1){ form(); }\n      else { form(e.message); }\n    });\n  }\n  \/\/ 2026-10-05: retraso de pieza informado por Apple \u2192 aviso destacado en rojo arriba de la l\u00ednea de tiempo (mientras no se registre la llegada\/instalaci\u00f3n de la pieza ni el cierre).\n  function retrasoActivo(hitos){\n    var idx = -1, fin = ['piezas_recibidas','piezas_instaladas','nueva_pieza_instalada','equipo_certificado','preparado_entrega','entregado','cancelado','reciclaje'];\n    (hitos||[]).forEach(function(x, i){ if(x.tipo === 'pieza_retrasada_apple') idx = i; else if(idx >= 0 && fin.indexOf(x.tipo) >= 0) idx = -2; });\n    return idx >= 0 ? hitos[idx] : null;\n  }\n  function bloqueRetraso(x){\n    var n = String(x.nota || ''), m = n.match(\/ship date[^:]*:\\s*([0-9]{1,2}[\\\/.-][0-9]{1,2}[\\\/.-][0-9]{2,4})\/i) || n.match(\/fecha[^:]*:\\s*([0-9]{1,2}[\\\/.-][0-9]{1,2}[\\\/.-][0-9]{2,4})\/i);\n    return '<div class=\"sg-retraso\"><div class=\"rt\">\u26a0 Retraso en la pieza de tu reparaci\u00f3n<\/div>'\n      + '<p>Apple nos inform\u00f3 el <b>' + esc(fecha(x.fecha)) + '<\/b> que la pieza oficial necesaria para reparar tu equipo <b>no est\u00e1 disponible por ahora<\/b> y su despacho se retras\u00f3.<\/p>'\n      + (m ? '<p>Nueva fecha estimada de despacho desde Apple: <span class=\"fe\">' + esc(m[1]) + '<\/span><\/p>' : '')\n      + '<p>Este tiempo de espera depende exclusivamente de Apple y <b>no se cuenta<\/b> dentro de nuestro plazo de servicio de 56 horas h\u00e1biles. Te avisaremos por correo apenas la pieza llegue a nuestro centro de servicio.<\/p>'\n      + (n ? '<div class=\"ap\"><b>Notificaci\u00f3n de Apple:<\/b><br>' + esc(n).replace(\/\\n\/g,'<br>') + '<\/div>' : '')\n      + '<\/div>';\n  }\n  function pintar(d){\n    var rt = retrasoActivo(d.hitos);\n    var h = '<div class=\"sg-card\"><div class=\"sg-top\"><div><div class=\"k\">Hola' + (d.cliente ? ', ' + esc(d.cliente) : '') + '<\/div><h1>' + esc(d.equipo || 'Tu equipo') + '<\/h1>' + (d.serie ? '<div class=\"k\" style=\"margin-top:4px\">N\u00b0 de serie <b>' + esc(d.serie) + '<\/b><\/div>' : '') + '<\/div><div style=\"text-align:right\"><div class=\"k\">Orden de trabajo<\/div><div class=\"v\">OT ' + esc(d.ot) + '<\/div>' + (d.cobertura ? '<div class=\"k\" style=\"margin-top:8px\">Cobertura<\/div><span class=\"sg-cob ' + esc(d.cobertura.tono) + '\">' + esc(d.cobertura.label) + '<\/span><div class=\"sg-cobd\">' + esc(d.cobertura.detalle) + '<\/div>' : '') + '<\/div><\/div>'\n      + (d.estado ? '<div class=\"k\">Estado actual<\/div><span class=\"sg-estado' + (rt ? ' rojo' : '') + '\">' + (rt ? '\u26a0 Pieza retrasada por Apple' : esc(d.estado)) + '<\/span>' : '')\n      + (rt ? bloqueRetraso(rt) : '')\n      + (d.dias_transporte != null ? '<p style=\"margin:10px 0 0;font-size:14px;color:#3a3a3c\">\ud83d\ude9a Tiempo de transporte hasta nuestro centro de servicio: <b>' + d.dias_transporte + ' d\u00eda' + (d.dias_transporte === 1 ? '' : 's') + '<\/b>' + (d.tracking_url ? ' \u00b7 <a href=\"' + esc(d.tracking_url) + '\" target=\"_blank\" rel=\"noopener\">ver despacho<\/a>' : '') + '<\/p>' : '')\n      + barra() + '<\/div>';\n    var p = d.presupuesto;\n    if(p && p.informativo) h += '<div class=\"sg-card\"><div class=\"sg-msg info\" style=\"margin:0\"><b>Presupuesto informativo.<\/b> Tu equipo est\u00e1 cubierto por la garant\u00eda de Apple: no necesitas aprobar ni pagar el presupuesto. <a href=\"' + esc(p.link) + '\">Ver presupuesto \u2192<\/a><\/div><\/div>';\n    else if(p && !p.aceptacion && p.estado_pago !== 'pagado') h += '<div class=\"sg-card\"><div class=\"sg-msg info\" style=\"margin:0\"><b>Tienes un presupuesto pendiente de respuesta.<\/b> <a href=\"' + esc(p.link) + '\">Revisarlo y aprobar o rechazar \u2192<\/a><\/div><\/div>';\n    else if(p && p.aceptacion === 'aceptado' && ['pagado','por_validar'].indexOf(p.estado_pago) < 0) h += '<div class=\"sg-card\"><div class=\"sg-msg info\" style=\"margin:0\"><b>Aprobaste el presupuesto; falta el pago.<\/b> <a href=\"' + esc(p.link) + '\">Ver formas de pago \u2192<\/a><\/div><\/div>';\n    h += '<div class=\"sg-card\"><h2>L\u00ednea de tiempo<\/h2><ol class=\"sg-tl\">';\n    d.hitos.forEach(function(x, i){\n      h += '<li class=\"' + (i === d.hitos.length - 1 ? 'last' : '') + (x.tipo === 'pieza_retrasada_apple' ? ' alerta' : '') + '\"><span class=\"dot\"><\/span><div class=\"f\">' + esc(fecha(x.fecha)) + '<\/div><div class=\"t\">' + esc(x.titulo) + '<\/div><div class=\"d\">' + esc(x.texto) + '<\/div>' + (x.nota ? '<div class=\"n\">' + esc(x.nota).replace(\/\\n\/g,'<br>') + '<\/div>' : '') + '<\/li>';\n    });\n    if(!d.hitos.length) h += '<li class=\"last\"><span class=\"dot\"><\/span><div class=\"t\">Sin movimientos registrados a\u00fan<\/div><\/li>';\n    h += '<\/ol><p style=\"font-size:12.5px;color:#6e6e73;margin:6px 0 0\">Te avisaremos por correo cada vez que tu reparaci\u00f3n avance. \u00bfDudas? Escr\u00edbenos a service@jobstore.cl o ll\u00e1manos al (+56 51) 2521885.<\/p><\/div>';\n    root.innerHTML = h; enlazarBarra();\n  }\n  (function(){\n    var s = leer(), qo = normOt(Q.get('ot')), qr = Q.get('rut');\n    if(qo && qr){ cargando(); consultar(qo, qr, 1); }\n    else if(s && (!qo || qo === normOt(s.ot))){ cargando(); consultar(s.ot, s.rut, 1); }\n    else if(qo && s){ cargando(); consultar(qo, s.rut, 1); }\n    else { form(); }\n  })();\n})();\n<\/script>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_joinchat":[],"footnotes":""},"class_list":["post-21229","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/jobstore.cl\/index.php\/wp-json\/wp\/v2\/pages\/21229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jobstore.cl\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jobstore.cl\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jobstore.cl\/index.php\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/jobstore.cl\/index.php\/wp-json\/wp\/v2\/comments?post=21229"}],"version-history":[{"count":0,"href":"https:\/\/jobstore.cl\/index.php\/wp-json\/wp\/v2\/pages\/21229\/revisions"}],"wp:attachment":[{"href":"https:\/\/jobstore.cl\/index.php\/wp-json\/wp\/v2\/media?parent=21229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}