{"id":879,"date":"2026-08-19T15:49:39","date_gmt":"2026-08-19T20:49:39","guid":{"rendered":"https:\/\/nucleo.miespaciodigital.net\/?page_id=879"},"modified":"2026-09-07T22:53:06","modified_gmt":"2026-09-08T03:53:06","slug":"auditoria-y-control","status":"publish","type":"page","link":"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/auditoria-y-control\/","title":{"rendered":"Auditor\u00eda y Control"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"879\" class=\"elementor elementor-879\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a98ec71 e-con e-atomic-element e-flexbox-base e-8fbe650 \" data-id=\"a98ec71\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"a98ec71\" data-e-type=\"e-flexbox\" data-id=\"a98ec71\">\n    <div class=\"elementor-element elementor-element-bafd53d e-con e-atomic-element e-flexbox-base \" data-id=\"bafd53d\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"bafd53d\" data-e-type=\"e-flexbox\" data-id=\"bafd53d\">\n    \t\t<div class=\"elementor-element elementor-element-d686548 elementor-widget elementor-widget-html\" data-id=\"d686548\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\r\n<!DOCTYPE html>\r\n<html lang=\"es\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>N\u00facleo \u2014 Auditor\u00eda y Control<\/title>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n  :root{\r\n    --ink:#132029; --ink-soft:#3d4d55;\r\n    --paper:#F4F2EC; --paper-raised:#FFFFFF; --line:#DDD8CB;\r\n    --navy:#12303D; --navy-soft:#1C3E4E;\r\n    --gold:#C98A3B; --gold-soft:#E8C899;\r\n    --green:#3A7D57; --green-bg:#E4EEE6;\r\n    --amber:#B8862F; --amber-bg:#F2E9D6;\r\n    --red:#B4432B; --red-bg:#F3E1DB;\r\n    --radius:14px;\r\n    --shadow: 0 1px 2px rgba(19,32,41,0.06), 0 8px 24px -12px rgba(19,32,41,0.18);\r\n  }\r\n  *{box-sizing:border-box;}\r\n  html,body{margin:0;padding:0;}\r\n  body{background:var(--paper); color:var(--ink); font-family:'IBM Plex Sans', sans-serif; -webkit-font-smoothing:antialiased;}\r\n  .app{display:grid; grid-template-columns:260px 1fr; min-height:100vh;}\r\n\r\n  .sidebar{background:var(--navy); color:#EDEBE2; padding:28px 20px 20px; display:flex; flex-direction:column; gap:28px;}\r\n  .brand{display:flex; align-items:center; gap:10px;}\r\n  .brand-mark{width:34px;height:34px;border-radius:50%; background:radial-gradient(circle at 35% 30%, var(--gold-soft), var(--gold) 60%); box-shadow: inset 0 0 0 2px rgba(255,255,255,0.25); flex-shrink:0;}\r\n  .brand-name{font-family:'Fraunces', serif; font-weight:600; font-size:1.25rem;}\r\n  .brand-sub{font-size:0.7rem; color:#9FB2BC; letter-spacing:0.06em; text-transform:uppercase; margin-top:-22px; margin-left:44px;}\r\n  nav{display:flex;flex-direction:column;gap:2px;margin-top:6px;}\r\n  .nav-item{display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:8px; font-size:0.87rem; color:#C7D3D8; text-decoration:none; cursor:pointer; transition:background 0.15s ease, color 0.15s ease;}\r\n  .nav-item .num{font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color:#7C929B; width:16px;}\r\n  .nav-item:hover{background:rgba(255,255,255,0.06); color:#fff;}\r\n  .nav-item.active{background:var(--navy-soft); color:#fff; box-shadow: inset 3px 0 0 var(--gold);}\r\n  .nav-item.active .num{color:var(--gold);}\r\n  .nav-sub{margin-left:26px;display:flex;flex-direction:column;}\r\n  .nav-sub .nav-item{font-size:0.78rem;padding:7px 12px;color:#9FB2BC;}\r\n  .sidebar-footer{margin-top:auto; font-size:0.72rem; color:#7C929B; padding-top:16px; border-top:1px solid rgba(255,255,255,0.1);}\r\n\r\n  main{padding:32px 40px 60px; max-width:1280px;}\r\n  .topbar{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:26px; flex-wrap:wrap; gap:16px;}\r\n  .eyebrow{font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold); margin-bottom:6px;}\r\n  h1{font-family:'Fraunces', serif; font-weight:600; font-size:2rem; margin:0; color:var(--navy);}\r\n  .subtitle{color:var(--ink-soft); font-size:0.95rem; margin-top:6px;}\r\n  .user-chip{display:flex; align-items:center; gap:10px; background:var(--paper-raised); border:1px solid var(--line); border-radius:999px; padding:6px 14px 6px 6px; box-shadow:var(--shadow);}\r\n  .user-avatar{width:30px;height:30px;border-radius:50%; background:var(--navy); color:#EDEBE2; display:flex;align-items:center;justify-content:center; font-size:0.75rem;font-weight:600; font-family:'IBM Plex Mono',monospace;}\r\n  .user-chip .name{font-size:0.82rem;font-weight:500;}\r\n  .user-chip .role{font-size:0.72rem;color:var(--ink-soft);}\r\n\r\n  .readiness-strip{\r\n    background:var(--navy); border-radius:var(--radius); padding:22px 28px; margin-bottom:22px; box-shadow:var(--shadow);\r\n    display:flex; align-items:center; gap:24px; flex-wrap:wrap;\r\n  }\r\n  .readiness-ring{position:relative; width:78px; height:78px; flex-shrink:0;}\r\n  .readiness-ring svg{width:100%; height:100%;}\r\n  .readiness-ring .pct{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Fraunces', serif; font-weight:600; font-size:1.15rem; color:#fff;}\r\n  .readiness-text{flex:1; min-width:220px;}\r\n  .readiness-text .t{font-family:'Fraunces', serif; font-size:1.1rem; color:#fff; font-weight:600; margin-bottom:4px;}\r\n  .readiness-text .d{font-size:0.82rem; color:#B7C4CA;}\r\n\r\n  .summary-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:22px;}\r\n  .kpi-card{background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; box-shadow:var(--shadow); position:relative; overflow:hidden;}\r\n  .kpi-card::before{content:\"\"; position:absolute; top:0; left:0; right:0; height:3px;}\r\n  .kpi-card.navy::before{background:var(--navy);}\r\n  .kpi-card.amber::before{background:var(--amber);}\r\n  .kpi-card.red::before{background:var(--red);}\r\n  .kpi-card.green::before{background:var(--green);}\r\n  .kpi-label{font-size:0.74rem; color:var(--ink-soft); margin-bottom:6px;}\r\n  .kpi-value{font-family:'Fraunces', serif; font-size:1.8rem; font-weight:600; color:var(--navy);}\r\n  .kpi-card.amber .kpi-value{color:var(--amber);}\r\n  .kpi-card.red .kpi-value{color:var(--red);}\r\n  .kpi-card.green .kpi-value{color:var(--green);}\r\n\r\n  .toolbar{display:flex; gap:12px; align-items:center; margin-bottom:16px; flex-wrap:wrap;}\r\n  .search-box{flex:1; min-width:220px; display:flex; align-items:center; gap:8px; background:var(--paper-raised); border:1px solid var(--line); border-radius:10px; padding:10px 14px;}\r\n  .search-box input{border:none; outline:none; background:transparent; font-family:'IBM Plex Sans', sans-serif; font-size:0.88rem; color:var(--ink); width:100%;}\r\n  .search-box svg{flex-shrink:0; color:var(--ink-soft);}\r\n  .filter-chip{font-size:0.8rem; padding:9px 14px; border-radius:10px; border:1px solid var(--line); background:var(--paper-raised); color:var(--ink-soft); cursor:pointer; user-select:none; transition:border-color 0.15s ease, color 0.15s ease;}\r\n  .filter-chip.active{border-color:var(--navy); color:var(--navy); font-weight:600; background:var(--gold-soft);}\r\n  .btn-new{margin-left:auto; font-family:'IBM Plex Sans', sans-serif; font-size:0.85rem; font-weight:600; padding:10px 18px; border-radius:10px; border:none; background:var(--navy); color:#fff; cursor:pointer;}\r\n\r\n  .form-panel{background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:24px; margin-bottom:22px; display:none;}\r\n  .form-panel.open{display:block;}\r\n  .form-panel h3{font-family:'Fraunces', serif; font-size:1.1rem; color:var(--navy); margin:0 0 4px;}\r\n  .form-sub{font-size:0.82rem; color:var(--ink-soft); margin-bottom:16px;}\r\n  .form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}\r\n  .form-field{display:flex; flex-direction:column; gap:6px;}\r\n  .form-field.full{grid-column:1 \/ -1;}\r\n  .form-field label{font-size:0.74rem; font-weight:600; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.03em;}\r\n  .form-field select, .form-field input, .form-field textarea{border:1px solid var(--line); border-radius:8px; padding:10px 12px; font-family:'IBM Plex Sans', sans-serif; font-size:0.86rem; color:var(--ink); background:var(--paper-raised);}\r\n  .form-field textarea{resize:vertical; min-height:70px;}\r\n  .form-actions{display:flex; gap:10px; justify-content:flex-end;}\r\n  .btn{font-family:'IBM Plex Sans', sans-serif; font-size:0.82rem; font-weight:600; padding:10px 16px; border-radius:9px; border:1px solid var(--navy); background:var(--navy); color:#fff; cursor:pointer;}\r\n  .btn.secondary{background:transparent; color:var(--navy);}\r\n\r\n  .panel{background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden;}\r\n  table{width:100%; border-collapse:collapse;}\r\n  thead th{text-align:left; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--ink-soft); padding:13px 16px; border-bottom:1px solid var(--line); background:#FAF9F5;}\r\n  tbody tr.data-row{border-bottom:1px solid var(--line); cursor:pointer; transition:background 0.12s ease;}\r\n  tbody tr.data-row:hover{background:#FAF8F2;}\r\n  tbody td{padding:13px 16px; font-size:0.83rem; vertical-align:top;}\r\n  .code{font-family:'IBM Plex Mono',monospace; font-size:0.76rem; color:var(--gold); font-weight:500;}\r\n  .desc-cell .name{font-weight:500; font-size:0.85rem; line-height:1.4;}\r\n  .desc-cell .sub{font-size:0.72rem; color:var(--ink-soft); margin-top:3px;}\r\n  .sev-pill{display:inline-flex; align-items:center; gap:6px; font-size:0.72rem; font-weight:600; padding:4px 10px; border-radius:999px; white-space:nowrap;}\r\n  .sev-pill.alta{background:var(--red-bg); color:var(--red);}\r\n  .sev-pill.media{background:var(--amber-bg); color:var(--amber);}\r\n  .sev-pill.baja{background:var(--green-bg); color:var(--green);}\r\n  .plazo-cell{font-family:'IBM Plex Mono',monospace; font-size:0.8rem;}\r\n  .plazo-cell.overdue{color:var(--red); font-weight:600;}\r\n  .plazo-cell.soon{color:var(--amber); font-weight:600;}\r\n  .status-pill{display:inline-flex; align-items:center; gap:6px; font-size:0.72rem; font-weight:600; padding:4px 10px; border-radius:999px; white-space:nowrap;}\r\n  .status-pill.abierto{background:var(--red-bg); color:var(--red);}\r\n  .status-pill.proceso{background:var(--amber-bg); color:var(--amber);}\r\n  .status-pill.subsanado{background:var(--green-bg); color:var(--green);}\r\n  .status-pill .dot{width:6px;height:6px;border-radius:50%; background:currentColor;}\r\n\r\n  .detail-row td{padding:0; border-bottom:1px solid var(--line);}\r\n  .detail-inner{padding:18px 24px; background:#FAF9F5; display:none; grid-template-columns:repeat(4,1fr); gap:18px;}\r\n  .detail-inner.open{display:grid;}\r\n  .detail-block{grid-column:span 1;}\r\n  .detail-block.full{grid-column:1\/-1;}\r\n  .detail-block .k{font-size:0.68rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--ink-soft); margin-bottom:4px;}\r\n  .detail-block .v{font-size:0.85rem; font-weight:500; line-height:1.5;}\r\n  .detail-block .v.mono{font-family:'IBM Plex Mono',monospace;}\r\n  .advance-btn{grid-column:1\/-1; margin-top:6px;}\r\n  .advance-btn button{font-size:0.78rem; padding:8px 14px; border-radius:8px; border:1px solid var(--navy); background:#fff; color:var(--navy); cursor:pointer; font-weight:600;}\r\n\r\n  .no-results{padding:40px; text-align:center; color:var(--ink-soft); font-size:0.9rem; display:none;}\r\n  .demo-note{margin-top:20px; font-size:0.78rem; color:var(--ink-soft); text-align:center; padding:14px; border:1px dashed var(--line); border-radius:10px; background:rgba(201,138,59,0.05);}\r\n\r\n  @media (max-width:980px){\r\n    .app{grid-template-columns:1fr;}\r\n    .sidebar{display:none;}\r\n    .summary-strip{grid-template-columns:repeat(2,1fr);}\r\n    .form-grid{grid-template-columns:1fr;}\r\n    thead{display:none;}\r\n    table, tbody, tr, td{display:block; width:100%;}\r\n    tbody tr.data-row{padding:12px 16px; border-bottom:1px solid var(--line);}\r\n    tbody td{padding:4px 0;}\r\n  }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<div class=\"app\">\r\n\r\n  <aside class=\"sidebar\">\r\n    <div class=\"brand\">\r\n      <img decoding=\"async\" src=\"https:\/\/miespaciodigital.net\/auditoria\/wp-content\/uploads\/2026\/09\/LOGO1.jpg\"\r\n           alt=\"N\u00daCLEO\"\r\n           style=\"width:100%; max-width:190px; height:auto; display:block;\">\r\n    <\/div>\r\n    <nav>\r\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/tablero-general\/\"><span class=\"num\">01<\/span> Tablero General<\/a>\r\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/atencion-ciudadana-tupa\/\"><span class=\"num\">02<\/span> Atenci\u00f3n Ciudadana<\/a>\r\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/asistente-interno-ia\/\"><span class=\"num\">03<\/span> Asistente Interno (IA)<\/a>\r\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/\"><span class=\"num\">04<\/span> Gesti\u00f3n por Resultados<\/a>\r\n      <div class=\"nav-sub\">\r\n        <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/acciones-correctivas-2\/\">Acciones Correctivas<\/a>\r\n        <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/indicadores-kpi-2\/\">Indicadores KPI<\/a>\r\n        <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/matriz-raci-v2\/\">Matriz RACI<\/a>\r\n        <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/metas-y-linea-base-2\/\">Metas y L\u00ednea Base<\/a>\r\n        <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/seguimiento-de-resultados-v2\/\">Seguimiento de Resultados-v2<\/a>\r\n      <\/div>\r\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/5-planeamiento-y-presupuesto\/\"><span class=\"num\">05<\/span> Planeamiento y Presupuesto<\/a>\r\n      <a class=\"nav-item active\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/auditoria-y-control\/\"><span class=\"num\">06<\/span> Auditor\u00eda y Control<\/a>\r\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/informes-y-rendicion-sistema\/\"><span class=\"num\">07<\/span> Informes y Rendici\u00f3n<\/a>\r\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-organismos-de-gobierno\/\"><span class=\"num\">08<\/span> Configuraci\u00f3n<\/a>\r\n      <a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/ayuda-y-soporte-2\/\"><span class=\"num\">09<\/span> Ayuda y Soporte<\/a>\r\n    <\/nav>\r\n    <div class=\"sidebar-footer\">Municipalidad Distrital de Ejemplo<br>Sesi\u00f3n de demostraci\u00f3n<\/div>\r\n  <\/aside>\r\n\r\n  <main>\r\n    <div class=\"topbar\">\r\n      <div>\r\n        <div class=\"eyebrow\">Auditor\u00eda y Control<\/div>\r\n        <h1>Hallazgos y Acciones Correctivas<\/h1>\r\n        <div class=\"subtitle\">Trazabilidad de observaciones del OCI, Contralor\u00eda y autocontrol \u2014 todo listo para auditor\u00eda<\/div>\r\n      <\/div>\r\n      <div class=\"user-chip\">\r\n        <div class=\"user-avatar\">DM<\/div>\r\n        <div><div class=\"name\">Demo Municipal<\/div><div class=\"role\">Gerente Municipal<\/div><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"readiness-strip\">\r\n      <div class=\"readiness-ring\">\r\n        <svg viewBox=\"0 0 80 80\">\r\n          <circle cx=\"40\" cy=\"40\" r=\"34\" fill=\"none\" stroke=\"rgba(255,255,255,0.12)\" stroke-width=\"9\"\/>\r\n          <circle cx=\"40\" cy=\"40\" r=\"34\" fill=\"none\" stroke=\"#C98A3B\" stroke-width=\"9\"\r\n            stroke-dasharray=\"152 214\" stroke-linecap=\"round\" transform=\"rotate(-90 40 40)\"\/>\r\n        <\/svg>\r\n        <div class=\"pct\">71%<\/div>\r\n      <\/div>\r\n      <div class=\"readiness-text\">\r\n        <div class=\"t\">\u00cdndice de preparaci\u00f3n para auditor\u00eda<\/div>\r\n        <div class=\"d\">71% de los hallazgos tienen evidencia documentada, responsable asignado y plazo vigente. El resto requiere atenci\u00f3n antes de una posible visita de control.<\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"summary-strip\">\r\n      <div class=\"kpi-card red\"><div class=\"kpi-label\">Hallazgos abiertos<\/div><div class=\"kpi-value\" id=\"kpiAbiertos\">\u2014<\/div><\/div>\r\n      <div class=\"kpi-card red\"><div class=\"kpi-label\">Vencidos (fuera de plazo)<\/div><div class=\"kpi-value\" id=\"kpiVencidos\">\u2014<\/div><\/div>\r\n      <div class=\"kpi-card amber\"><div class=\"kpi-label\">Por vencer (\u2264 5 d\u00edas)<\/div><div class=\"kpi-value\" id=\"kpiPorVencer\">\u2014<\/div><\/div>\r\n      <div class=\"kpi-card green\"><div class=\"kpi-label\">Subsanados este trimestre<\/div><div class=\"kpi-value\" id=\"kpiSubsanados\">\u2014<\/div><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"toolbar\">\r\n      <div class=\"search-box\">\r\n        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"11\" cy=\"11\" r=\"7\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg>\r\n        <input id=\"searchInput\" type=\"text\" placeholder=\"Buscar por c\u00f3digo, gerencia o descripci\u00f3n...\">\r\n      <\/div>\r\n      <div class=\"filter-chip active\" data-status=\"todos\">Todos<\/div>\r\n      <div class=\"filter-chip\" data-status=\"abierto\">Abiertos<\/div>\r\n      <div class=\"filter-chip\" data-status=\"proceso\">En proceso<\/div>\r\n      <div class=\"filter-chip\" data-status=\"subsanado\">Subsanados<\/div>\r\n      <button class=\"btn-new\" onclick=\"toggleForm()\">+ Nuevo hallazgo<\/button>\r\n    <\/div>\r\n\r\n    <div class=\"form-panel\" id=\"formPanel\">\r\n      <h3>Registrar nuevo hallazgo<\/h3>\r\n      <div class=\"form-sub\">Documenta la observaci\u00f3n tal como lleg\u00f3 del OCI, Contralor\u00eda o de una revisi\u00f3n interna.<\/div>\r\n      <div class=\"form-grid\">\r\n        <div class=\"form-field full\">\r\n          <label>Descripci\u00f3n del hallazgo<\/label>\r\n          <textarea id=\"fDesc\" placeholder=\"Ej: Expediente de contrataci\u00f3n sin sustento de conformidad de servicio\"><\/textarea>\r\n        <\/div>\r\n        <div class=\"form-field\">\r\n          <label>Origen<\/label>\r\n          <select id=\"fOrigen\">\r\n            <option value=\"OCI\">\u00d3rgano de Control Institucional (OCI)<\/option>\r\n            <option value=\"Contralor\u00eda\">Auditor\u00eda de la Contralor\u00eda General<\/option>\r\n            <option value=\"Autocontrol\">Autocontrol \/ revisi\u00f3n interna<\/option>\r\n          <\/select>\r\n        <\/div>\r\n        <div class=\"form-field\">\r\n          <label>Gerencia responsable<\/label>\r\n          <select id=\"fGerencia\"><\/select>\r\n        <\/div>\r\n        <div class=\"form-field\">\r\n          <label>Severidad<\/label>\r\n          <select id=\"fSeveridad\">\r\n            <option value=\"alta\">Alta<\/option>\r\n            <option value=\"media\" selected>Media<\/option>\r\n            <option value=\"baja\">Baja<\/option>\r\n          <\/select>\r\n        <\/div>\r\n        <div class=\"form-field\">\r\n          <label>Plazo de subsanaci\u00f3n<\/label>\r\n          <input type=\"date\" id=\"fPlazo\">\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"form-actions\">\r\n        <button class=\"btn secondary\" onclick=\"toggleForm()\">Cancelar<\/button>\r\n        <button class=\"btn\" onclick=\"registrarHallazgo()\">Registrar hallazgo<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"panel\">\r\n      <table>\r\n        <thead>\r\n          <tr>\r\n            <th>C\u00f3digo<\/th>\r\n            <th>Hallazgo<\/th>\r\n            <th>Origen<\/th>\r\n            <th>Gerencia responsable<\/th>\r\n            <th>Plazo de subsanaci\u00f3n<\/th>\r\n            <th>Severidad<\/th>\r\n            <th>Estado<\/th>\r\n          <\/tr>\r\n        <\/thead>\r\n        <tbody id=\"tableBody\"><\/tbody>\r\n      <\/table>\r\n      <div class=\"no-results\" id=\"noResults\">No se encontraron hallazgos que coincidan con tu b\u00fasqueda.<\/div>\r\n    <\/div>\r\n\r\n    <div class=\"demo-note\">\r\n      Control institucional de hallazgos \u2014 haz clic en una fila para consultar su detalle, revisar la acci\u00f3n correctiva vinculada y actualizar el estado de subsanaci\u00f3n.\r\n    <\/div>\r\n    <div style=\"margin-top:30px;\">\r\n      <a href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/tablero-general\/\"\r\n         style=\"display:inline-block;padding:12px 22px;background:#123746;color:#fff;text-decoration:none;border-radius:8px;font-weight:600;\">\r\n        \u2190 REGRESAR AL \u00cdNDICE\r\n      <\/a>\r\n    <\/div>\r\n  <\/main>\r\n<\/div>\r\n\r\n<script>\r\nconst gerencias = [\r\n  \"Gerencia de Administraci\u00f3n y Finanzas\",\r\n  \"Gerencia de Infraestructura y Desarrollo Urbano\",\r\n  \"Gerencia de Servicios P\u00fablicos\",\r\n  \"Gerencia de Desarrollo Social\",\r\n  \"Gerencia de Seguridad Ciudadana\",\r\n  \"Gerencia de Planeamiento y Presupuesto\",\r\n  \"Gerencia de Tecnolog\u00edas de la Informaci\u00f3n\"\r\n];\r\n\r\nconst fGerenciaSelect = document.getElementById(\"fGerencia\");\r\ngerencias.forEach(g => {\r\n  const opt = document.createElement(\"option\");\r\n  opt.value = g; opt.textContent = g;\r\n  fGerenciaSelect.appendChild(opt);\r\n});\r\n\r\nlet hallazgos = [\r\n  {code:\"AUD-0019\", desc:\"Informe de auditor\u00eda con observaciones pendientes de subsanaci\u00f3n en proceso de contrataciones\", origen:\"Contralor\u00eda\", gerencia:\"Gerencia de Administraci\u00f3n y Finanzas\", severidad:\"alta\", plazo:\"2026-08-21\", estado:\"abierto\", accion:\"Presentar sustento documentario de conformidad de servicio y regularizar el expediente ante el OCI.\"},\r\n  {code:\"AUD-0021\", desc:\"Ejecuci\u00f3n presupuestal de la partida de mantenimiento vial por debajo del 40% al cierre del trimestre\", origen:\"Autocontrol\", gerencia:\"Gerencia de Planeamiento y Presupuesto\", severidad:\"media\", plazo:\"2026-08-30\", estado:\"proceso\", accion:\"Reprogramar cronograma de ejecuci\u00f3n y reportar avance quincenal a Gerencia Municipal.\"},\r\n  {code:\"AUD-0015\", desc:\"Falta de acta de conformidad en la recepci\u00f3n de bienes adquiridos por Abastecimiento\", origen:\"OCI\", gerencia:\"Gerencia de Administraci\u00f3n y Finanzas\", severidad:\"alta\", plazo:\"2026-08-12\", estado:\"abierto\", accion:\"Subsanar con acta retroactiva firmada por el \u00e1rea usuaria y el almac\u00e9n.\"},\r\n  {code:\"AUD-0028\", desc:\"Veh\u00edculo de serenazgo con mantenimiento vencido seg\u00fan ficha t\u00e9cnica registrada\", origen:\"Autocontrol\", gerencia:\"Gerencia de Seguridad Ciudadana\", severidad:\"media\", plazo:\"2026-09-05\", estado:\"proceso\", accion:\"Programar mantenimiento correctivo y actualizar el registro de flota vehicular.\"},\r\n  {code:\"AUD-0009\", desc:\"Personal CAS sin evaluaci\u00f3n de desempe\u00f1o registrada en el legajo\", origen:\"OCI\", gerencia:\"Gerencia de Administraci\u00f3n y Finanzas\", severidad:\"baja\", plazo:\"2026-07-30\", estado:\"subsanado\", accion:\"Se completaron las evaluaciones pendientes y se archivaron en el legajo digital.\"},\r\n  {code:\"AUD-0011\", desc:\"Padr\u00f3n catastral desactualizado en el sector norte del distrito\", origen:\"Autocontrol\", gerencia:\"Gerencia de Infraestructura y Desarrollo Urbano\", severidad:\"media\", plazo:\"2026-08-05\", estado:\"subsanado\", accion:\"Se actualiz\u00f3 el padr\u00f3n con la informaci\u00f3n del \u00faltimo levantamiento catastral.\"},\r\n  {code:\"AUD-0032\", desc:\"Ausencia de plan de contingencia documentado para los sistemas de informaci\u00f3n municipales\", origen:\"OCI\", gerencia:\"Gerencia de Tecnolog\u00edas de la Informaci\u00f3n\", severidad:\"alta\", plazo:\"2026-09-10\", estado:\"abierto\", accion:\"Elaborar y aprobar el plan de contingencia y continuidad de TI.\"},\r\n  {code:\"AUD-0006\", desc:\"Comprobantes de pago de programas sociales sin firma de conformidad del beneficiario\", origen:\"Contralor\u00eda\", gerencia:\"Gerencia de Desarrollo Social\", severidad:\"media\", plazo:\"2026-07-22\", estado:\"subsanado\", accion:\"Se recabaron las firmas faltantes y se reforz\u00f3 el protocolo de entrega.\"}\r\n];\r\n\r\nconst today = new Date(\"2026-08-19T00:00:00\");\r\n\r\nfunction daysLeft(plazo, estado){\r\n  if(estado === \"subsanado\") return null;\r\n  const d = new Date(plazo + \"T23:59:59\");\r\n  return Math.round((d - today) \/ (1000*60*60*24));\r\n}\r\n\r\nfunction shortDate(dueStr){\r\n  const d = new Date(dueStr + \"T00:00:00\");\r\n  return d.toLocaleDateString(\"es-PE\", {day:\"2-digit\", month:\"short\", year:\"numeric\"});\r\n}\r\n\r\nfunction statusLabel(s){ return s===\"abierto\" ? \"Abierto\" : s===\"proceso\" ? \"En proceso\" : \"Subsanado\"; }\r\nfunction sevLabel(s){ return s===\"alta\" ? \"Alta\" : s===\"media\" ? \"Media\" : \"Baja\"; }\r\n\r\nlet activeStatus = \"todos\";\r\n\r\nfunction getFiltered(){\r\n  const q = document.getElementById(\"searchInput\").value.trim().toLowerCase();\r\n  return hallazgos.filter(h => {\r\n    const matchesStatus = activeStatus === \"todos\" || h.estado === activeStatus;\r\n    const haystack = (h.code + \" \" + h.desc + \" \" + h.gerencia + \" \" + h.origen).toLowerCase();\r\n    return matchesStatus && haystack.includes(q);\r\n  });\r\n}\r\n\r\nfunction render(){\r\n  const filtered = getFiltered();\r\n  const tbody = document.getElementById(\"tableBody\");\r\n  const noResults = document.getElementById(\"noResults\");\r\n  tbody.innerHTML = \"\";\r\n\r\n  noResults.style.display = filtered.length === 0 ? \"block\" : \"none\";\r\n\r\n  filtered.forEach((h, i) => {\r\n    const left = daysLeft(h.plazo, h.estado);\r\n    let plazoClass = \"\", plazoText = \"\";\r\n    if(h.estado === \"subsanado\"){ plazoText = \"Subsanado \u2014 plazo era \" + shortDate(h.plazo); }\r\n    else if(left < 0){ plazoClass = \"overdue\"; plazoText = `Venci\u00f3 hace ${Math.abs(left)} d\u00eda(s)`; }\r\n    else if(left <= 5){ plazoClass = \"soon\"; plazoText = `Vence en ${left} d\u00eda(s)`; }\r\n    else { plazoText = `Vence en ${left} d\u00edas`; }\r\n\r\n    const tr = document.createElement(\"tr\");\r\n    tr.className = \"data-row\";\r\n    tr.innerHTML = `\r\n      <td class=\"code\">${h.code}<\/td>\r\n      <td class=\"desc-cell\"><div class=\"name\">${h.desc}<\/div><\/td>\r\n      <td class=\"desc-cell\"><div class=\"name\">${h.origen}<\/div><\/td>\r\n      <td class=\"desc-cell\"><div class=\"name\">${h.gerencia}<\/div><\/td>\r\n      <td class=\"plazo-cell ${plazoClass}\">${plazoText}<\/td>\r\n      <td><span class=\"sev-pill ${h.severidad}\">${sevLabel(h.severidad)}<\/span><\/td>\r\n      <td><span class=\"status-pill ${h.estado}\"><span class=\"dot\"><\/span>${statusLabel(h.estado)}<\/span><\/td>\r\n    `;\r\n    const detailTr = document.createElement(\"tr\");\r\n    detailTr.className = \"detail-row\";\r\n    detailTr.innerHTML = `\r\n      <td colspan=\"7\">\r\n        <div class=\"detail-inner\" id=\"detail-${i}\">\r\n          <div class=\"detail-block full\"><div class=\"k\">Acci\u00f3n correctiva vinculada<\/div><div class=\"v\">${h.accion}<\/div><\/div>\r\n          <div class=\"detail-block\"><div class=\"k\">Origen<\/div><div class=\"v\">${h.origen}<\/div><\/div>\r\n          <div class=\"detail-block\"><div class=\"k\">Severidad<\/div><div class=\"v\">${sevLabel(h.severidad)}<\/div><\/div>\r\n          <div class=\"detail-block\"><div class=\"k\">Plazo de subsanaci\u00f3n<\/div><div class=\"v mono\">${shortDate(h.plazo)}<\/div><\/div>\r\n          <div class=\"detail-block\"><div class=\"k\">Estado actual<\/div><div class=\"v\">${statusLabel(h.estado)}<\/div><\/div>\r\n          <div class=\"advance-btn\"><button onclick=\"event.stopPropagation(); advanceStatus('${h.code}')\">Avanzar estado \u2192<\/button><\/div>\r\n        <\/div>\r\n      <\/td>\r\n    `;\r\n    tr.addEventListener(\"click\", () => {\r\n      document.getElementById(`detail-${i}`).classList.toggle(\"open\");\r\n    });\r\n    tbody.appendChild(tr);\r\n    tbody.appendChild(detailTr);\r\n  });\r\n\r\n  document.getElementById(\"kpiAbiertos\").textContent = hallazgos.filter(h => h.estado !== \"subsanado\").length;\r\n  document.getElementById(\"kpiVencidos\").textContent = hallazgos.filter(h => { const d = daysLeft(h.plazo, h.estado); return d !== null && d < 0; }).length;\r\n  document.getElementById(\"kpiPorVencer\").textContent = hallazgos.filter(h => { const d = daysLeft(h.plazo, h.estado); return d !== null && d >= 0 && d <= 5; }).length;\r\n  document.getElementById(\"kpiSubsanados\").textContent = hallazgos.filter(h => h.estado === \"subsanado\").length;\r\n}\r\n\r\nfunction advanceStatus(code){\r\n  const h = hallazgos.find(x => x.code === code);\r\n  if(!h) return;\r\n  if(h.estado === \"abierto\") h.estado = \"proceso\";\r\n  else if(h.estado === \"proceso\") h.estado = \"subsanado\";\r\n  else h.estado = \"abierto\";\r\n  render();\r\n}\r\n\r\ndocument.getElementById(\"searchInput\").addEventListener(\"input\", render);\r\ndocument.querySelectorAll(\".filter-chip\").forEach(chip => {\r\n  chip.addEventListener(\"click\", () => {\r\n    document.querySelectorAll(\".filter-chip\").forEach(c => c.classList.remove(\"active\"));\r\n    chip.classList.add(\"active\");\r\n    activeStatus = chip.dataset.status;\r\n    render();\r\n  });\r\n});\r\n\r\nfunction toggleForm(){\r\n  document.getElementById(\"formPanel\").classList.toggle(\"open\");\r\n}\r\n\r\nlet counter = 40;\r\nfunction registrarHallazgo(){\r\n  const desc = document.getElementById(\"fDesc\").value.trim();\r\n  if(!desc){ alert(\"Describe el hallazgo antes de registrarlo.\"); return; }\r\n  const plazo = document.getElementById(\"fPlazo\").value || \"2026-09-15\";\r\n\r\n  hallazgos.unshift({\r\n    code: \"AUD-00\" + (counter++),\r\n    desc: desc,\r\n    origen: document.getElementById(\"fOrigen\").value,\r\n    gerencia: fGerenciaSelect.value,\r\n    severidad: document.getElementById(\"fSeveridad\").value,\r\n    plazo: plazo,\r\n    estado: \"abierto\",\r\n    accion: \"Pendiente de definir acci\u00f3n correctiva.\"\r\n  });\r\n\r\n  document.getElementById(\"fDesc\").value = \"\";\r\n  toggleForm();\r\n  render();\r\n}\r\n\r\nrender();\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>N\u00facleo \u2014 Auditor\u00eda y Control 01 Tablero General 02 Atenci\u00f3n Ciudadana 03 Asistente Interno (IA) 04 Gesti\u00f3n por Resultados Acciones Correctivas Indicadores KPI Matriz RACI Metas y L\u00ednea Base Seguimiento de Resultados-v2 05 Planeamiento y Presupuesto 06 Auditor\u00eda y Control 07 Informes y Rendici\u00f3n 08 Configuraci\u00f3n 09 Ayuda y Soporte Municipalidad Distrital de EjemploSesi\u00f3n de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":638,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-879","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages\/879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/comments?post=879"}],"version-history":[{"count":13,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages\/879\/revisions"}],"predecessor-version":[{"id":2221,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages\/879\/revisions\/2221"}],"up":[{"embeddable":true,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages\/638"}],"wp:attachment":[{"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/media?parent=879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}