{"id":1023,"date":"2026-08-20T09:13:47","date_gmt":"2026-08-20T14:13:47","guid":{"rendered":"https:\/\/nucleo.miespaciodigital.net\/?page_id=1023"},"modified":"2026-08-20T09:21:23","modified_gmt":"2026-08-20T14:21:23","slug":"bienes-y-activos-3","status":"publish","type":"page","link":"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/bienes-y-activos-3\/","title":{"rendered":"Bienes y Activos"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1023\" class=\"elementor elementor-1023\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2b4ec2d e-con e-atomic-element e-flexbox-base e-799f153 \" data-id=\"2b4ec2d\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"2b4ec2d\" data-e-type=\"e-flexbox\" data-id=\"2b4ec2d\">\n    <div class=\"elementor-element elementor-element-7ec2f60 e-con e-atomic-element e-flexbox-base \" data-id=\"7ec2f60\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"7ec2f60\" data-e-type=\"e-flexbox\" data-id=\"7ec2f60\">\n    <div class=\"elementor-element elementor-element-100f290 e-con e-atomic-element e-flexbox-base \" data-id=\"100f290\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"100f290\" data-e-type=\"e-flexbox\" data-id=\"100f290\">\n    \t\t<div class=\"elementor-element elementor-element-8e786a2 elementor-widget elementor-widget-html\" data-id=\"8e786a2\" 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 Bienes y Activos<\/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  .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  .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-label{font-size:0.74rem; color:var(--ink-soft); margin-bottom:6px;}\r\n  .kpi-value{font-family:'Fraunces', serif; font-size:1.6rem; 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\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  select.cat-filter{border:1px solid var(--line); border-radius:10px; padding:10px 14px; font-family:'IBM Plex Sans', sans-serif; font-size:0.85rem; color:var(--ink); background:var(--paper-raised); cursor:pointer;}\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 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{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-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;}\r\n  .desc-cell .sub{font-size:0.72rem; color:var(--ink-soft); margin-top:3px;}\r\n  .amount{font-family:'IBM Plex Mono',monospace; font-size:0.82rem;}\r\n  .cat-pill{font-size:0.72rem; background:#EFEDE4; color:var(--ink-soft); padding:3px 9px; border-radius:999px;}\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.operativo{background:var(--green-bg); color:var(--green);}\r\n  .status-pill.mantenimiento{background:var(--amber-bg); color:var(--amber);}\r\n  .status-pill.baja{background:var(--red-bg); color:var(--red);}\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 .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;}\r\n  .detail-block .v.mono{font-family:'IBM Plex Mono',monospace;}\r\n  .link-note{grid-column:1\/-1; font-size:0.78rem; color:var(--gold); background:var(--gold-soft); padding:8px 12px; border-radius:8px; margin-top:2px;}\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>\r\n      <div class=\"brand\"><div class=\"brand-mark\"><\/div><div class=\"brand-name\">N\u00facleo<\/div><\/div>\r\n      <div class=\"brand-sub\">Gesti\u00f3n Digital<\/div>\r\n    <\/div>\r\n    <nav>\r\n      <a class=\"nav-item\"><span class=\"num\">01<\/span> Tablero General<\/a>\r\n      <a class=\"nav-item\"><span class=\"num\">02<\/span> Atenci\u00f3n Ciudadana<\/a>\r\n      <a class=\"nav-item\"><span class=\"num\">03<\/span> Asistente Interno (IA)<\/a>\r\n      <a class=\"nav-item\"><span class=\"num\">04<\/span> Gesti\u00f3n por Resultados<\/a>\r\n      <a class=\"nav-item\"><span class=\"num\">05<\/span> Planeamiento y Presupuesto<\/a>\r\n      <a class=\"nav-item\"><span class=\"num\">06<\/span> Auditor\u00eda y Control<\/a>\r\n      <a class=\"nav-item\"><span class=\"num\">07<\/span> Informes y Rendici\u00f3n<\/a>\r\n      <a class=\"nav-item active\"><span class=\"num\">08<\/span> Bienes y Activos<\/a>\r\n      <a class=\"nav-item\"><span class=\"num\">09<\/span> Ayuda y Soporte<\/a>\r\n    <\/nav>\r\n    <div class=\"sidebar-footer\">Organismo de Gobierno 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\">Control Patrimonial<\/div>\r\n        <h1>Bienes y Activos<\/h1>\r\n        <div class=\"subtitle\">Marges\u00ed de bienes institucionales, con depreciaci\u00f3n y estado de mantenimiento<\/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 institucional<\/div><div class=\"role\">Gerente General<\/div><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"summary-strip\">\r\n      <div class=\"kpi-card navy\"><div class=\"kpi-label\">Bienes registrados<\/div><div class=\"kpi-value\" id=\"kpiTotal\">\u2014<\/div><\/div>\r\n      <div class=\"kpi-card navy\"><div class=\"kpi-label\">Valor neto patrimonial<\/div><div class=\"kpi-value\" id=\"kpiValor\">\u2014<\/div><\/div>\r\n      <div class=\"kpi-card amber\"><div class=\"kpi-label\">En mantenimiento<\/div><div class=\"kpi-value\" id=\"kpiMantenimiento\">\u2014<\/div><\/div>\r\n      <div class=\"kpi-card red\"><div class=\"kpi-label\">Propuestos para baja<\/div><div class=\"kpi-value\" id=\"kpiBaja\">\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 patrimonial, descripci\u00f3n o gerencia...\">\r\n      <\/div>\r\n      <select class=\"cat-filter\" id=\"catFilter\">\r\n        <option value=\"todas\">Todas las categor\u00edas<\/option>\r\n        <option value=\"Veh\u00edculos\">Veh\u00edculos<\/option>\r\n        <option value=\"Maquinaria\">Maquinaria<\/option>\r\n        <option value=\"Equipos de c\u00f3mputo\">Equipos de c\u00f3mputo<\/option>\r\n        <option value=\"Mobiliario\">Mobiliario<\/option>\r\n        <option value=\"Inmuebles\">Inmuebles<\/option>\r\n      <\/select>\r\n      <div class=\"filter-chip active\" data-status=\"todos\">Todos<\/div>\r\n      <div class=\"filter-chip\" data-status=\"mantenimiento\">En mantenimiento<\/div>\r\n      <div class=\"filter-chip\" data-status=\"baja\">Para dar de baja<\/div>\r\n      <button class=\"btn-new\" onclick=\"toggleForm()\">+ Registrar bien<\/button>\r\n    <\/div>\r\n\r\n    <div class=\"form-panel\" id=\"formPanel\">\r\n      <h3>Registrar nuevo bien patrimonial<\/h3>\r\n      <div class=\"form-grid\">\r\n        <div class=\"form-field full\">\r\n          <label>Descripci\u00f3n del bien<\/label>\r\n          <input type=\"text\" id=\"fNombre\" placeholder=\"Ej: Impresora multifuncional l\u00e1ser\">\r\n        <\/div>\r\n        <div class=\"form-field\">\r\n          <label>Categor\u00eda<\/label>\r\n          <select id=\"fCategoria\">\r\n            <option>Veh\u00edculos<\/option>\r\n            <option>Maquinaria<\/option>\r\n            <option selected>Equipos de c\u00f3mputo<\/option>\r\n            <option>Mobiliario<\/option>\r\n            <option>Inmuebles<\/option>\r\n          <\/select>\r\n        <\/div>\r\n        <div class=\"form-field\">\r\n          <label>Gerencia asignada<\/label>\r\n          <select id=\"fGerencia\"><\/select>\r\n        <\/div>\r\n        <div class=\"form-field\">\r\n          <label>Valor de adquisici\u00f3n (S\/)<\/label>\r\n          <input type=\"number\" id=\"fValor\" placeholder=\"Ej: 3500\">\r\n        <\/div>\r\n        <div class=\"form-field\">\r\n          <label>Fecha de adquisici\u00f3n<\/label>\r\n          <input type=\"date\" id=\"fFecha\">\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=\"registrarBien()\">Registrar bien<\/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 patrimonial<\/th>\r\n            <th>Descripci\u00f3n<\/th>\r\n            <th>Gerencia asignada<\/th>\r\n            <th>Valor neto<\/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 bienes que coincidan con tu b\u00fasqueda.<\/div>\r\n    <\/div>\r\n\r\n    <div class=\"demo-note\">\r\n      Prototipo de demostraci\u00f3n \u2014 haz clic en una fila para ver el detalle de depreciaci\u00f3n y mantenimiento. Los datos son de ejemplo.\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  \"Gerencia General\"\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 bienes = [\r\n  {code:\"PAT-00142\", nombre:\"Camioneta pick-up \u2014 Unidad de Serenazgo VH-014\", categoria:\"Veh\u00edculos\", gerencia:\"Gerencia de Seguridad Ciudadana\", adquisicion:\"2019-03-12\", valorAdq:85000, valorNeto:32000, estado:\"mantenimiento\", nota:\"Vinculado a la tarea TAR-0232 y al hallazgo de auditor\u00eda AUD-0028 \u2014 mantenimiento vehicular vencido.\", ultimoMant:\"No registrado en el per\u00edodo\"},\r\n  {code:\"PAT-00178\", nombre:\"Cami\u00f3n recolector de residuos s\u00f3lidos\", categoria:\"Veh\u00edculos\", gerencia:\"Gerencia de Servicios P\u00fablicos\", adquisicion:\"2020-06-05\", valorAdq:280000, valorNeto:168000, estado:\"operativo\", nota:null, ultimoMant:\"14 jun 2026\"},\r\n  {code:\"PAT-00092\", nombre:\"Unidad de Serenazgo VH-021\", categoria:\"Veh\u00edculos\", gerencia:\"Gerencia de Seguridad Ciudadana\", adquisicion:\"2017-02-20\", valorAdq:78000, valorNeto:8000, estado:\"baja\", nota:\"Depreciaci\u00f3n casi total \u2014 propuesto para proceso de baja patrimonial.\", ultimoMant:\"22 ene 2026\"},\r\n  {code:\"PAT-00089\", nombre:\"Compactadora de residuos\", categoria:\"Maquinaria\", gerencia:\"Gerencia de Servicios P\u00fablicos\", adquisicion:\"2021-09-10\", valorAdq:210000, valorNeto:145000, estado:\"operativo\", nota:null, ultimoMant:\"03 may 2026\"},\r\n  {code:\"PAT-00056\", nombre:\"Retroexcavadora\", categoria:\"Maquinaria\", gerencia:\"Gerencia de Infraestructura y Desarrollo Urbano\", adquisicion:\"2018-11-30\", valorAdq:320000, valorNeto:95000, estado:\"operativo\", nota:null, ultimoMant:\"27 jul 2026\"},\r\n  {code:\"PAT-00203\", nombre:\"Servidor central de sistemas institucionales\", categoria:\"Equipos de c\u00f3mputo\", gerencia:\"Gerencia de Tecnolog\u00edas de la Informaci\u00f3n\", adquisicion:\"2023-04-18\", valorAdq:38000, valorNeto:29000, estado:\"operativo\", nota:null, ultimoMant:\"10 ago 2026\"},\r\n  {code:\"PAT-00301\", nombre:\"Mobiliario de Mesa de Partes (20 unidades)\", categoria:\"Mobiliario\", gerencia:\"Gerencia General\", adquisicion:\"2022-01-25\", valorAdq:18000, valorNeto:12000, estado:\"operativo\", nota:null, ultimoMant:\"No aplica\"},\r\n  {code:\"PAT-00017\", nombre:\"Sede Institucional \u2014 edificaci\u00f3n principal\", categoria:\"Inmuebles\", gerencia:\"Gerencia General\", adquisicion:\"1998-05-01\", valorAdq:2400000, valorNeto:1100000, estado:\"operativo\", nota:null, ultimoMant:\"12 feb 2026\"}\r\n];\r\n\r\nfunction fmt(n){ return \"S\/ \" + n.toLocaleString(\"es-PE\"); }\r\nfunction statusLabel(s){ return s===\"operativo\" ? \"Operativo\" : s===\"mantenimiento\" ? \"En mantenimiento\" : \"Para dar de baja\"; }\r\nfunction shortDate(d){ return new Date(d + \"T00:00:00\").toLocaleDateString(\"es-PE\", {day:\"2-digit\", month:\"short\", year:\"numeric\"}); }\r\n\r\nlet activeCat = \"todas\";\r\nlet activeStatus = \"todos\";\r\n\r\nfunction getFiltered(){\r\n  const q = document.getElementById(\"searchInput\").value.trim().toLowerCase();\r\n  return bienes.filter(b => {\r\n    const matchesCat = activeCat === \"todas\" || b.categoria === activeCat;\r\n    const matchesStatus = activeStatus === \"todos\" || b.estado === activeStatus;\r\n    const haystack = (b.code + \" \" + b.nombre + \" \" + b.gerencia).toLowerCase();\r\n    return matchesCat && 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  noResults.style.display = filtered.length === 0 ? \"block\" : \"none\";\r\n\r\n  filtered.forEach((b, i) => {\r\n    const tr = document.createElement(\"tr\");\r\n    tr.className = \"data-row\";\r\n    tr.innerHTML = `\r\n      <td class=\"code\">${b.code}<\/td>\r\n      <td class=\"desc-cell\"><div class=\"name\">${b.nombre}<\/div><div class=\"sub\"><span class=\"cat-pill\">${b.categoria}<\/span><\/div><\/td>\r\n      <td class=\"desc-cell\"><div class=\"name\">${b.gerencia}<\/div><\/td>\r\n      <td class=\"amount\">${fmt(b.valorNeto)}<\/td>\r\n      <td><span class=\"status-pill ${b.estado}\"><span class=\"dot\"><\/span>${statusLabel(b.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=\"5\">\r\n        <div class=\"detail-inner\" id=\"detail-${i}\">\r\n          <div class=\"detail-block\"><div class=\"k\">Fecha de adquisici\u00f3n<\/div><div class=\"v\">${shortDate(b.adquisicion)}<\/div><\/div>\r\n          <div class=\"detail-block\"><div class=\"k\">Valor de adquisici\u00f3n<\/div><div class=\"v mono\">${fmt(b.valorAdq)}<\/div><\/div>\r\n          <div class=\"detail-block\"><div class=\"k\">Depreciaci\u00f3n acumulada<\/div><div class=\"v mono\">${fmt(b.valorAdq - b.valorNeto)}<\/div><\/div>\r\n          <div class=\"detail-block\"><div class=\"k\">\u00daltimo mantenimiento<\/div><div class=\"v\">${b.ultimoMant}<\/div><\/div>\r\n          ${b.nota ? `<div class=\"link-note\">\ud83d\udd17 ${b.nota}<\/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(\"kpiTotal\").textContent = bienes.length;\r\n  document.getElementById(\"kpiValor\").textContent = fmt(bienes.reduce((s,b) => s + b.valorNeto, 0));\r\n  document.getElementById(\"kpiMantenimiento\").textContent = bienes.filter(b => b.estado === \"mantenimiento\").length;\r\n  document.getElementById(\"kpiBaja\").textContent = bienes.filter(b => b.estado === \"baja\").length;\r\n}\r\n\r\ndocument.getElementById(\"searchInput\").addEventListener(\"input\", render);\r\ndocument.getElementById(\"catFilter\").addEventListener(\"change\", (e) => { activeCat = e.target.value; 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 = 320;\r\nfunction registrarBien(){\r\n  const nombre = document.getElementById(\"fNombre\").value.trim();\r\n  if(!nombre){ alert(\"Escribe una descripci\u00f3n del bien.\"); return; }\r\n  const valor = parseFloat(document.getElementById(\"fValor\").value) || 0;\r\n  const fecha = document.getElementById(\"fFecha\").value || \"2026-08-19\";\r\n\r\n  bienes.push({\r\n    code: \"PAT-00\" + (counter++),\r\n    nombre, categoria: document.getElementById(\"fCategoria\").value,\r\n    gerencia: fGerenciaSelect.value,\r\n    adquisicion: fecha, valorAdq: valor, valorNeto: valor,\r\n    estado: \"operativo\", nota: null, ultimoMant: \"No aplica\"\r\n  });\r\n\r\n  document.getElementById(\"fNombre\").value = \"\";\r\n  document.getElementById(\"fValor\").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\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>N\u00facleo \u2014 Bienes y Activos N\u00facleo Gesti\u00f3n Digital 01 Tablero General 02 Atenci\u00f3n Ciudadana 03 Asistente Interno (IA) 04 Gesti\u00f3n por Resultados 05 Planeamiento y Presupuesto 06 Auditor\u00eda y Control 07 Informes y Rendici\u00f3n 08 Bienes y Activos 09 Ayuda y Soporte Organismo de Gobierno de EjemploSesi\u00f3n de demostraci\u00f3n Control Patrimonial Bienes y Activos Marges\u00ed [&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-1023","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages\/1023","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=1023"}],"version-history":[{"count":4,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages\/1023\/revisions"}],"predecessor-version":[{"id":1028,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages\/1023\/revisions\/1028"}],"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=1023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}