Commit fc0b710a4f32d874b02bc0c4378805e481e21edd
1 parent
b2eac770
Hito: Modernización definitiva del Dashboard y registro de hito 2026.04.07.20.37.47
Showing
7 changed files
with
211 additions
and
98 deletions
VERSION.txt
| @@ -8,4 +8,5 @@ PROYECTO GIS-GEOSERVER - 2026.04.05.06.31.00 ID DOCKER: c68e229b6d94. Observacià | @@ -8,4 +8,5 @@ PROYECTO GIS-GEOSERVER - 2026.04.05.06.31.00 ID DOCKER: c68e229b6d94. Observacià | ||
| 8 | PROYECTO GIS-GEOSERVER - 2026.04.06.01.13.00 ID DOCKER: d983a409769d. Observación: Integración exitosa de Landing Page AdminLTE 3 con aislamiento de iFrame para Visor GIS. | 8 | PROYECTO GIS-GEOSERVER - 2026.04.06.01.13.00 ID DOCKER: d983a409769d. Observación: Integración exitosa de Landing Page AdminLTE 3 con aislamiento de iFrame para Visor GIS. |
| 9 | PROYECTO GIS-GEOSERVER - 2026.04.06.12.44.00 ID DOCKER: d983a409769d. Observación: Backup completo preventivo de la versión con estructura de Git corregida y Landing Page AdminLTE. | 9 | PROYECTO GIS-GEOSERVER - 2026.04.06.12.44.00 ID DOCKER: d983a409769d. Observación: Backup completo preventivo de la versión con estructura de Git corregida y Landing Page AdminLTE. |
| 10 | PROYECTO GIS-GEOSERVER - 2026.04.06.13.31.00 ID DOCKER: d983a409769d. Observación: Prueba de funcionamiento del Manual v1.1 tras estandarización de prefijos y manual de recuperación. | 10 | PROYECTO GIS-GEOSERVER - 2026.04.06.13.31.00 ID DOCKER: d983a409769d. Observación: Prueba de funcionamiento del Manual v1.1 tras estandarización de prefijos y manual de recuperación. |
| 11 | -PROYECTO GIS-GEOSERVER - 2026.04.07.08.18.07 ID DOCKER: d983a409769d. Observación: Optimización visual de interfaz completada: unificación de anchos al 100%, limpieza de barra superior, traslado de controles al sidebar y registro legal SIGEM-MIC/DINAPI. | ||
| 12 | \ No newline at end of file | 11 | \ No newline at end of file |
| 12 | +PROYECTO GIS-GEOSERVER - 2026.04.07.08.18.07 ID DOCKER: d983a409769d. Observación: Optimización visual de interfaz completada: unificación de anchos al 100%, limpieza de barra superior, traslado de controles al sidebar y registro legal SIGEM-MIC/DINAPI. | ||
| 13 | +PROYECTO GIS-GEOSERVER - 2026.04.07.20.37.47 ID DOCKER: d983a409769d. Observación: Modernización definitiva del Dashboard completada: Replicación de bloque de bienvenida legado, integración de mapa embebido en modo limpio y reestructuración de la fila inferior de gestión al 100% de ancho. Versión estable validada. | ||
| 13 | \ No newline at end of file | 14 | \ No newline at end of file |
final_update_505.sql
0 → 100644
get_view_def.sh
0 → 100644
| 1 | +docker exec proyecto-postgres-1 psql -U sigem_user -d sigem -c "SELECT * FROM fdw_505.v_liq_entidad_percentiles LIMIT 10;" |
src/main/resources/static/landing.html
| @@ -46,7 +46,7 @@ | @@ -46,7 +46,7 @@ | ||
| 46 | <i class="far fa-user mr-2"></i> <span id="nav-user-text">Cargando...</span> | 46 | <i class="far fa-user mr-2"></i> <span id="nav-user-text">Cargando...</span> |
| 47 | </a> | 47 | </a> |
| 48 | <div class="dropdown-menu dropdown-menu-lg dropdown-menu-right"> | 48 | <div class="dropdown-menu dropdown-menu-lg dropdown-menu-right"> |
| 49 | - <a href="#" class="dropdown-item" onclick="cerrarSesion()"> | 49 | + <a href="#" class="dropdown-item" onclick="cerrarSesion(); return false;"> |
| 50 | <i class="fas fa-sign-out-alt mr-2 text-danger"></i> Cerrar Sesión | 50 | <i class="fas fa-sign-out-alt mr-2 text-danger"></i> Cerrar Sesión |
| 51 | </a> | 51 | </a> |
| 52 | </div> | 52 | </div> |
| @@ -96,7 +96,7 @@ | @@ -96,7 +96,7 @@ | ||
| 96 | </a> | 96 | </a> |
| 97 | <ul class="nav nav-treeview" style="margin-left: 10px;"> | 97 | <ul class="nav nav-treeview" style="margin-left: 10px;"> |
| 98 | <li class="nav-item"> | 98 | <li class="nav-item"> |
| 99 | - <a href="#" class="nav-link" data-toggle="modal" data-target="#modalMorosidad"> | 99 | + <a href="#" class="nav-link" onclick="loadMap()"> |
| 100 | <i class="fas fa-layer-group nav-icon text-warning"></i> | 100 | <i class="fas fa-layer-group nav-icon text-warning"></i> |
| 101 | <p>Mapa Morosidad/Pago</p> | 101 | <p>Mapa Morosidad/Pago</p> |
| 102 | </a> | 102 | </a> |
| @@ -134,47 +134,16 @@ | @@ -134,47 +134,16 @@ | ||
| 134 | </div> | 134 | </div> |
| 135 | 135 | ||
| 136 | <!-- Main Footer --> | 136 | <!-- Main Footer --> |
| 137 | - <footer class="main-footer" style="padding: 5px; font-size: 12px;"> | ||
| 138 | - <strong>Sistema de Información Geográfica Municipal.</strong> | ||
| 139 | - Todos los derechos reservados. | 137 | + <footer class="main-footer" style="padding: 10px; font-size: 13px; background-color: #f4f6f9;"> |
| 138 | + <div class="float-right d-none d-sm-inline-block"> | ||
| 139 | + <b>YVYAPE/SIGEM - Registro MIC/DINAPI 593</b> | ||
| 140 | + </div> | ||
| 141 | + Copyright © 2026 <b>YVAGA</b>. Todos los derechos reservados. | ||
| 140 | </footer> | 142 | </footer> |
| 141 | </div> | 143 | </div> |
| 142 | <!-- ./wrapper --> | 144 | <!-- ./wrapper --> |
| 143 | 145 | ||
| 144 | -<!-- Modal Pop-up para Selección de Mapa (Exactamente como el legado) --> | ||
| 145 | -<div class="modal fade" id="modalMorosidad" tabindex="-1" role="dialog" aria-hidden="true"> | ||
| 146 | - <div class="modal-dialog modal-sm" role="document" style="margin-top: 15vh;"> | ||
| 147 | - <div class="modal-content shadow-lg" style="border: 1px solid #17a2b8;"> | ||
| 148 | - <div class="modal-header bg-info" style="padding: 10px;"> | ||
| 149 | - <h6 class="modal-title" style="font-weight: bold;"><i class="fas fa-filter"></i> Selección Capas Geo</h6> | ||
| 150 | - <button type="button" class="close text-white" data-dismiss="modal" aria-label="Close"> | ||
| 151 | - <span aria-hidden="true">×</span> | ||
| 152 | - </button> | ||
| 153 | - </div> | ||
| 154 | - <div class="modal-body modal-treeview"> | ||
| 155 | - <ul> | ||
| 156 | - <li><i class="fas fa-minus-square mr-1 text-secondary"></i> <span>MAPA DE MOROSIDAD</span> | ||
| 157 | - <ul> | ||
| 158 | - <li><i class="fas fa-plus-square mr-1 text-secondary"></i> <span>IMPUESTOS ADEUDADOS</span> | ||
| 159 | - <ul> | ||
| 160 | - <li><i class="fas fa-plus mr-1 text-muted"></i> <span class="clickable" onclick="notImplemented()">Impuesto Inmobiliario</span></li> | ||
| 161 | - <li><i class="fas fa-plus mr-1 text-muted"></i> <span class="clickable" onclick="notImplemented()">Patente Comercial</span></li> | ||
| 162 | - <li><i class="fas fa-plus-square mr-1 text-secondary"></i> <span>Todos</span> | ||
| 163 | - <ul> | ||
| 164 | - <li><i class="far fa-window-restore mr-1 text-muted"></i> <span class="clickable" onclick="notImplemented()">POR TOTAL</span></li> | ||
| 165 | - <li><i class="far fa-clock mr-1 text-muted"></i> <span class="text-primary font-weight-bold clickable" onclick="loadMap()">ULTIMO PAGO / TODOS</span></li> | ||
| 166 | - </ul> | ||
| 167 | - </li> | ||
| 168 | - </ul> | ||
| 169 | - </li> | ||
| 170 | - <li><i class="fas fa-plus-square mr-1 text-muted"></i> <span class="clickable" onclick="notImplemented()">IMPUESTOS PAGADOS</span></li> | ||
| 171 | - </ul> | ||
| 172 | - </li> | ||
| 173 | - </ul> | ||
| 174 | - </div> | ||
| 175 | - </div> | ||
| 176 | - </div> | ||
| 177 | -</div> | 146 | + |
| 178 | 147 | ||
| 179 | <!-- jQuery --> | 148 | <!-- jQuery --> |
| 180 | <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> | 149 | <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> |
| @@ -205,15 +174,13 @@ | @@ -205,15 +174,13 @@ | ||
| 205 | } | 174 | } |
| 206 | 175 | ||
| 207 | function loadMap() { | 176 | function loadMap() { |
| 208 | - // Cierra el modal de forma programática usando jQuery de Bootstrap | ||
| 209 | - $('#modalMorosidad').modal('hide'); | ||
| 210 | - // Redirige el iframe central hacia nuestro impecable mapas.html | 177 | + // Redirige el iframe central hacia nuestro visor de mapas |
| 211 | loadContent('/gis-geoserver/mapas'); | 178 | loadContent('/gis-geoserver/mapas'); |
| 212 | } | 179 | } |
| 213 | 180 | ||
| 214 | function cerrarSesion() { | 181 | function cerrarSesion() { |
| 215 | localStorage.clear(); | 182 | localStorage.clear(); |
| 216 | - window.location.href = "/gis-geoserver/login"; | 183 | + window.location.replace("/gis-geoserver/login"); |
| 217 | } | 184 | } |
| 218 | </script> | 185 | </script> |
| 219 | </body> | 186 | </body> |
src/main/resources/static/mapas.html
| @@ -60,6 +60,12 @@ | @@ -60,6 +60,12 @@ | ||
| 60 | height: calc(100vh - 60px); | 60 | height: calc(100vh - 60px); |
| 61 | } | 61 | } |
| 62 | 62 | ||
| 63 | + /* MODO EMBEBIDO (Limpieza de UI) */ | ||
| 64 | + body.embed-mode .header { display: none !important; } | ||
| 65 | + body.embed-mode .sidebar { display: none !important; } | ||
| 66 | + body.embed-mode .app-container { height: 100vh !important; } | ||
| 67 | + body.embed-mode #map { width: 100% !important; } | ||
| 68 | + | ||
| 63 | .sidebar { | 69 | .sidebar { |
| 64 | width: 170px; | 70 | width: 170px; |
| 65 | background: #0f172a; | 71 | background: #0f172a; |
| @@ -368,7 +374,11 @@ | @@ -368,7 +374,11 @@ | ||
| 368 | </div> | 374 | </div> |
| 369 | 375 | ||
| 370 | <script> | 376 | <script> |
| 371 | - | 377 | + // Verificar si estamos en modo embebido |
| 378 | + const urlParams = new URLSearchParams(window.location.search); | ||
| 379 | + if (urlParams.get('mode') === 'embed') { | ||
| 380 | + document.body.classList.add('embed-mode'); | ||
| 381 | + } | ||
| 372 | 382 | ||
| 373 | const entidad = localStorage.getItem('entidad') || '505'; | 383 | const entidad = localStorage.getItem('entidad') || '505'; |
| 374 | const token = localStorage.getItem('jwt'); | 384 | const token = localStorage.getItem('jwt'); |
| @@ -564,7 +574,7 @@ | @@ -564,7 +574,7 @@ | ||
| 564 | 574 | ||
| 565 | map.setPaintProperty('lotes-layer', 'fill-color', [ | 575 | map.setPaintProperty('lotes-layer', 'fill-color', [ |
| 566 | 'step', | 576 | 'step', |
| 567 | - ['get', 'ultimo_pago'], | 577 | + ['to-number', ['get', 'ultimo_pago'], 0], |
| 568 | '#a91d1d', // < 2021 | 578 | '#a91d1d', // < 2021 |
| 569 | 2021, '#a91d1d', | 579 | 2021, '#a91d1d', |
| 570 | 2022, '#d05660', | 580 | 2022, '#d05660', |
| @@ -583,18 +593,18 @@ | @@ -583,18 +593,18 @@ | ||
| 583 | 593 | ||
| 584 | legendContent.innerHTML = ` | 594 | legendContent.innerHTML = ` |
| 585 | <strong style="color: #60a5fa;">MONTO ADEUDADO</strong><br><br> | 595 | <strong style="color: #60a5fa;">MONTO ADEUDADO</strong><br><br> |
| 586 | - <div class="legend-item"><div class="legend-color" style="background: #a91d1d;"></div> Rojo: > 2.134.819 Gs</div> | ||
| 587 | - <div class="legend-item"><div class="legend-color" style="background: #f08060;"></div> Naranja: entre 2.134.819 y 1.231.876 Gs</div> | ||
| 588 | - <div class="legend-item"><div class="legend-color" style="background: #ffd966;"></div> Amarillo: entre 1.231.876 y 718.984 Gs</div> | ||
| 589 | - <div class="legend-item"><div class="legend-color" style="background: #b5c47a;"></div> Verde Claro: entre 718.984 y 355.628 Gs</div> | ||
| 590 | - <div class="legend-item"><div class="legend-color" style="background: #6b9070;"></div> Verde Oscuro: <= 355.628 Gs</div> | 596 | + <div class="legend-item"><div class="legend-color" style="background: #a91d1d;"></div> > 2.134.819 Gs</div> |
| 597 | + <div class="legend-item"><div class="legend-color" style="background: #f08060;"></div> entre 2.134.819 y 1.231.876 Gs</div> | ||
| 598 | + <div class="legend-item"><div class="legend-color" style="background: #ffd966;"></div> entre 1.231.876 y 718.984 Gs</div> | ||
| 599 | + <div class="legend-item"><div class="legend-color" style="background: #b5c47a;"></div> entre 718.984 y 355.628 Gs</div> | ||
| 600 | + <div class="legend-item"><div class="legend-color" style="background: #6b9070;"></div> <= 355.628 Gs</div> | ||
| 591 | <div class="legend-item"><div class="legend-color" style="background: #64748b;"></div> NO REGISTRADOS</div> | 601 | <div class="legend-item"><div class="legend-color" style="background: #64748b;"></div> NO REGISTRADOS</div> |
| 592 | `; | 602 | `; |
| 593 | 603 | ||
| 594 | map.setPaintProperty('lotes-layer', 'fill-color', [ | 604 | map.setPaintProperty('lotes-layer', 'fill-color', [ |
| 595 | 'step', | 605 | 'step', |
| 596 | - ['get', 'trb_total_deuda'], | ||
| 597 | - '#6b9070', // Verde Oscuro: <= 355.628 | 606 | + ['to-number', ['get', 'trb_total_deuda'], 0], |
| 607 | + '#6b9070', // Verde Oscuro: <= 355.628 (fallback si es 0) | ||
| 598 | 355629, '#b5c47a', // Verde Claro: 355.629 - 718.984 | 608 | 355629, '#b5c47a', // Verde Claro: 355.629 - 718.984 |
| 599 | 718985, '#ffd966', // Amarillo: 718.985 - 1.231.876 | 609 | 718985, '#ffd966', // Amarillo: 718.985 - 1.231.876 |
| 600 | 1231877, '#f08060', // Naranja: 1.231.877 - 2.134.819 | 610 | 1231877, '#f08060', // Naranja: 1.231.877 - 2.134.819 |
src/main/resources/static/widgets.html
| @@ -12,6 +12,20 @@ | @@ -12,6 +12,20 @@ | ||
| 12 | <style> | 12 | <style> |
| 13 | body { background-color: #f4f6f9; padding: 20px; font-family: 'Source Sans Pro', sans-serif; } | 13 | body { background-color: #f4f6f9; padding: 20px; font-family: 'Source Sans Pro', sans-serif; } |
| 14 | .welcome-header { font-size: 24px; color: #333; margin-bottom: 20px; font-weight: 600;} | 14 | .welcome-header { font-size: 24px; color: #333; margin-bottom: 20px; font-weight: 600;} |
| 15 | + /* Estilos para el mapa embebido */ | ||
| 16 | + .map-container { | ||
| 17 | + width: 100%; | ||
| 18 | + height: 500px; | ||
| 19 | + border-radius: 8px; | ||
| 20 | + overflow: hidden; | ||
| 21 | + background-color: #0f172a; | ||
| 22 | + position: relative; | ||
| 23 | + } | ||
| 24 | + iframe#welcome-map { | ||
| 25 | + width: 100%; | ||
| 26 | + height: 100%; | ||
| 27 | + border: none; | ||
| 28 | + } | ||
| 15 | </style> | 29 | </style> |
| 16 | </head> | 30 | </head> |
| 17 | <body> | 31 | <body> |
| @@ -19,76 +33,178 @@ | @@ -19,76 +33,178 @@ | ||
| 19 | <i class="fas fa-home text-primary"></i> Tablero General (Estadísticas Simuladas) | 33 | <i class="fas fa-home text-primary"></i> Tablero General (Estadísticas Simuladas) |
| 20 | </div> | 34 | </div> |
| 21 | 35 | ||
| 36 | + <!-- FILA 1: INFO BOXES ESTILO LEGADO (ESTADÍSTICAS) --> | ||
| 22 | <div class="row"> | 37 | <div class="row"> |
| 23 | - <!-- Tarjeta 1 --> | ||
| 24 | - <div class="col-lg-3 col-6"> | ||
| 25 | - <div class="small-box bg-info shadow-sm"> | ||
| 26 | - <div class="inner"> | ||
| 27 | - <h3>99,999</h3> | ||
| 28 | - <p>Lotes Registrados</p> | 38 | + <!-- CONTRIBUYENTES --> |
| 39 | + <div class="col-md-2 col-sm-6 col-12"> | ||
| 40 | + <div class="info-box shadow-sm"> | ||
| 41 | + <span class="info-box-icon bg-danger"><i class="fas fa-users"></i></span> | ||
| 42 | + <div class="info-box-content"> | ||
| 43 | + <span class="info-box-text" id="contribtext">CONTRIBUYENTES</span> | ||
| 44 | + <span class="info-box-number" id="contribnum">---</span> | ||
| 29 | </div> | 45 | </div> |
| 30 | - <div class="icon"> | ||
| 31 | - <i class="fas fa-map-marked-alt"></i> | 46 | + </div> |
| 47 | + </div> | ||
| 48 | + <!-- PROPIEDADES --> | ||
| 49 | + <div class="col-md-2 col-sm-6 col-12"> | ||
| 50 | + <div class="info-box shadow-sm"> | ||
| 51 | + <span class="info-box-icon bg-danger"><i class="fas fa-map-marker-alt"></i></span> | ||
| 52 | + <div class="info-box-content"> | ||
| 53 | + <span class="info-box-text" id="proptext">PROPIEDADES</span> | ||
| 54 | + <span class="info-box-number" id="propnum">---</span> | ||
| 32 | </div> | 55 | </div> |
| 33 | - <a href="#" class="small-box-footer" onclick="alert('OPCIÓN NO IMPLEMENTADA')">Más info <i class="fas fa-arrow-circle-right"></i></a> | ||
| 34 | </div> | 56 | </div> |
| 35 | </div> | 57 | </div> |
| 36 | - <!-- Tarjeta 2 --> | ||
| 37 | - <div class="col-lg-3 col-6"> | ||
| 38 | - <div class="small-box bg-success shadow-sm"> | ||
| 39 | - <div class="inner"> | ||
| 40 | - <h3>Gs. ---<sup style="font-size: 20px"></sup></h3> | ||
| 41 | - <p>Recaudación del Día</p> | 58 | + <!-- COMERCIOS --> |
| 59 | + <div class="col-md-2 col-sm-6 col-12"> | ||
| 60 | + <div class="info-box shadow-sm"> | ||
| 61 | + <span class="info-box-icon bg-success"><i class="fas fa-money-bill-wave"></i></span> | ||
| 62 | + <div class="info-box-content"> | ||
| 63 | + <span class="info-box-text" id="comtext">COMERCIOS</span> | ||
| 64 | + <span class="info-box-number" id="comnum">---</span> | ||
| 42 | </div> | 65 | </div> |
| 43 | - <div class="icon"> | ||
| 44 | - <i class="fas fa-hand-holding-usd"></i> | 66 | + </div> |
| 67 | + </div> | ||
| 68 | + <!-- VEHICULOS --> | ||
| 69 | + <div class="col-md-2 col-sm-6 col-12"> | ||
| 70 | + <div class="info-box shadow-sm"> | ||
| 71 | + <span class="info-box-icon bg-success"><i class="fas fa-car"></i></span> | ||
| 72 | + <div class="info-box-content"> | ||
| 73 | + <span class="info-box-text" id="vehitext">VEHICULOS</span> | ||
| 74 | + <span class="info-box-number" id="vehinum">---</span> | ||
| 45 | </div> | 75 | </div> |
| 46 | - <a href="#" class="small-box-footer" onclick="alert('OPCIÓN NO IMPLEMENTADA')">Más info <i class="fas fa-arrow-circle-right"></i></a> | ||
| 47 | </div> | 76 | </div> |
| 48 | </div> | 77 | </div> |
| 49 | - | ||
| 50 | - <!-- Tarjeta 3 --> | ||
| 51 | - <div class="col-lg-3 col-6"> | ||
| 52 | - <div class="small-box bg-warning shadow-sm"> | ||
| 53 | - <div class="inner"> | ||
| 54 | - <h3>---</h3> | ||
| 55 | - <p>Nuevas Actividades Comerciales</p> | ||
| 56 | - </div> | ||
| 57 | - <div class="icon"> | ||
| 58 | - <i class="fas fa-store"></i> | ||
| 59 | - </div> | ||
| 60 | - <a href="#" class="small-box-footer" onclick="alert('OPCIÓN NO IMPLEMENTADA')">Más info <i class="fas fa-arrow-circle-right"></i></a> | 78 | + <!-- LICENCIAS --> |
| 79 | + <div class="col-md-2 col-sm-6 col-12"> | ||
| 80 | + <div class="info-box shadow-sm"> | ||
| 81 | + <span class="info-box-icon bg-success"><i class="fas fa-credit-card"></i></span> | ||
| 82 | + <div class="info-box-content"> | ||
| 83 | + <span class="info-box-text" id="licentext">LICENCIAS</span> | ||
| 84 | + <span class="info-box-number" id="licennum">---</span> | ||
| 85 | + </div> | ||
| 61 | </div> | 86 | </div> |
| 62 | </div> | 87 | </div> |
| 63 | - <!-- Tarjeta 4 --> | ||
| 64 | - <div class="col-lg-3 col-6"> | ||
| 65 | - <div class="small-box bg-danger shadow-sm"> | ||
| 66 | - <div class="inner"> | ||
| 67 | - <h3>45%</h3> | ||
| 68 | - <p>Índice General de Morosidad</p> | 88 | + </div> |
| 89 | + | ||
| 90 | + <!-- FILA 2: BIENVENIDA Y SOPORTE --> | ||
| 91 | + <div class="row mt-4"> | ||
| 92 | + <div class="col-md-8"> | ||
| 93 | + <div class="card card-outline card-primary shadow-sm" style="border-top: 3px solid #0056b3;"> | ||
| 94 | + <div class="card-header"> | ||
| 95 | + <h3 class="card-title text-muted font-weight-bold" id="welcome-title"><i class="fas fa-map mr-1"></i> Bienvenido al Sistema Integrado de Gestión Municipal</h3> | ||
| 96 | + <div class="card-tools"> | ||
| 97 | + <button type="button" class="btn btn-tool" data-card-widget="collapse"><i class="fas fa-minus"></i></button> | ||
| 98 | + </div> | ||
| 99 | + </div> | ||
| 100 | + <div class="card-body p-0"> | ||
| 101 | + <div class="map-container"> | ||
| 102 | + <!-- Mapa embebido de Control de Gestión (Modo Limpio) --> | ||
| 103 | + <iframe id="welcome-map" src="/gis-geoserver/mapas?mode=embed"></iframe> | ||
| 104 | + </div> | ||
| 105 | + </div> | ||
| 106 | + </div> | ||
| 107 | + </div> | ||
| 108 | + | ||
| 109 | + <div class="col-md-4"> | ||
| 110 | + <!-- SOPORTE Y APOYO TECNICO --> | ||
| 111 | + <div class="info-box bg-gradient-info shadow-sm mx-auto" style="max-width: 80%;"> | ||
| 112 | + <span class="info-box-icon"><i class="fas fa-headset"></i></span> | ||
| 113 | + <div class="info-box-content text-center"> | ||
| 114 | + <span class="info-box-text font-weight-bold">SOPORTE Y APOYO TÉCNICO</span> | ||
| 115 | + <span class="info-box-number">CONSULTORA YVAGA</span> | ||
| 116 | + <div class="text-xs mt-2"> | ||
| 117 | + <i class="fas fa-globe mr-1"></i> www.yvaga.com.py<br> | ||
| 118 | + <i class="fas fa-envelope mr-1"></i> soporte@yvaga.com.py<br> | ||
| 119 | + <i class="fas fa-phone mr-1"></i> 0981-413151 | ||
| 120 | + </div> | ||
| 69 | </div> | 121 | </div> |
| 70 | - <div class="icon"> | ||
| 71 | - <i class="fas fa-chart-pie"></i> | 122 | + </div> |
| 123 | + | ||
| 124 | + <!-- INFRAESTRUCTURA Y TECNOLOGIA --> | ||
| 125 | + <div class="info-box bg-success shadow-sm mx-auto" style="max-width: 80%;"> | ||
| 126 | + <span class="info-box-icon"><i class="fas fa-cloud-upload-alt"></i></span> | ||
| 127 | + <div class="info-box-content text-center"> | ||
| 128 | + <span class="info-box-text font-weight-bold">INFRAESTRUCTURA Y TECNOLOGÍA</span> | ||
| 129 | + <span class="info-box-number">YVAGA EAS</span> | ||
| 130 | + <div class="text-xs mt-2"> | ||
| 131 | + <i class="fas fa-globe mr-1"></i> www.yvaga.com.py<br> | ||
| 132 | + <i class="fas fa-envelope mr-1"></i> soporte@yvaga.com.py<br> | ||
| 133 | + <i class="fas fa-phone mr-1"></i> 0981-413151 | ||
| 134 | + </div> | ||
| 72 | </div> | 135 | </div> |
| 73 | - <a href="#" class="small-box-footer" onclick="alert('OPCIÓN NO IMPLEMENTADA')">Más info <i class="fas fa-arrow-circle-right"></i></a> | ||
| 74 | </div> | 136 | </div> |
| 75 | </div> | 137 | </div> |
| 76 | </div> | 138 | </div> |
| 77 | - | 139 | + |
| 140 | + <!-- FILA 3 (INFERIOR): MÓDULOS DE GESTIÓN (ANCHO COMPLETO) --> | ||
| 78 | <div class="row mt-4"> | 141 | <div class="row mt-4"> |
| 79 | - <div class="col-12"> | ||
| 80 | - <div class="card card-outline card-primary shadow-sm" style="border-top: 3px solid #0056b3;"> | 142 | + <!-- GESTIÓN FINANCIERA --> |
| 143 | + <div class="col-md-4"> | ||
| 144 | + <div class="card card-outline card-success shadow-sm h-100"> | ||
| 145 | + <div class="card-header"> | ||
| 146 | + <h3 class="card-title font-weight-bold">GESTIÓN FINANCIERA</h3> | ||
| 147 | + <div class="card-tools"> | ||
| 148 | + <span class="badge badge-danger">Próximamente!</span> | ||
| 149 | + <button type="button" class="btn btn-tool" data-card-widget="collapse"><i class="fas fa-minus"></i></button> | ||
| 150 | + </div> | ||
| 151 | + </div> | ||
| 152 | + <div class="card-body p-0 text-center d-flex align-items-center justify-content-center"> | ||
| 153 | + <img src="https://sigemtest.yvaga.com.py/dist/img/sigem/gestion_financiera.png" alt="GESTIÓN FINANCIERA" class="img-fluid p-3" style="max-height: 200px;"> | ||
| 154 | + </div> | ||
| 155 | + <div class="card-footer text-center mt-auto"> | ||
| 156 | + <a href="javascript:void(0)" class="text-sm font-weight-bold text-uppercase">Acceder a Versión Escritorio</a> | ||
| 157 | + </div> | ||
| 158 | + </div> | ||
| 159 | + </div> | ||
| 160 | + | ||
| 161 | + <!-- GESTIÓN TRIBUTARIA --> | ||
| 162 | + <div class="col-md-4"> | ||
| 163 | + <div class="card card-outline card-success shadow-sm h-100"> | ||
| 81 | <div class="card-header"> | 164 | <div class="card-header"> |
| 82 | - <h3 class="card-title text-muted"><i class="fas fa-info-circle mr-1"></i> Estado del Sistema</h3> | 165 | + <h3 class="card-title font-weight-bold">GESTIÓN TRIBUTARIA</h3> |
| 166 | + <div class="card-tools"> | ||
| 167 | + <span class="badge badge-danger">Próximamente!</span> | ||
| 168 | + <button type="button" class="btn btn-tool" data-card-widget="collapse"><i class="fas fa-minus"></i></button> | ||
| 169 | + </div> | ||
| 170 | + </div> | ||
| 171 | + <div class="card-body p-0 text-center d-flex align-items-center justify-content-center"> | ||
| 172 | + <img src="https://sigemtest.yvaga.com.py/dist/img/sigem/gestion_tributaria.png" alt="GESTIÓN TRIBUTARIA" class="img-fluid p-3" style="max-height: 200px;"> | ||
| 173 | + </div> | ||
| 174 | + <div class="card-footer text-center mt-auto"> | ||
| 175 | + <a href="javascript:void(0)" class="text-sm font-weight-bold text-uppercase">Acceder a Versión Escritorio</a> | ||
| 176 | + </div> | ||
| 177 | + </div> | ||
| 178 | + </div> | ||
| 179 | + | ||
| 180 | + <!-- INFORMES GERENCIALES --> | ||
| 181 | + <div class="col-md-4"> | ||
| 182 | + <div class="card card-outline card-success shadow-sm h-100"> | ||
| 183 | + <div class="card-header"> | ||
| 184 | + <h3 class="card-title font-weight-bold">INFORMES GERENCIALES</h3> | ||
| 185 | + <div class="card-tools"> | ||
| 186 | + <button type="button" class="btn btn-tool" data-card-widget="collapse"><i class="fas fa-minus"></i></button> | ||
| 187 | + </div> | ||
| 188 | + </div> | ||
| 189 | + <div class="card-body p-0 text-center d-flex align-items-center justify-content-center"> | ||
| 190 | + <img src="https://sigemtest.yvaga.com.py/dist/img/sigem/informes.png" alt="INFORMES" class="img-fluid p-3" style="max-height: 200px;"> | ||
| 83 | </div> | 191 | </div> |
| 84 | - <div class="card-body"> | ||
| 85 | - <p class="text-secondary text-sm">Use el menú lateral para navegar por los distintos módulos administrativos. La funcionalidad de Mapas Tributarios se encuentra activa bajo "Control de Gestión -> Mapas". Otras opciones en despliegue.</p> | 192 | + <div class="card-footer text-center mt-auto"> |
| 193 | + <a href="javascript:void(0)" class="text-sm font-weight-bold text-uppercase">Acceder</a> | ||
| 86 | </div> | 194 | </div> |
| 87 | </div> | 195 | </div> |
| 88 | </div> | 196 | </div> |
| 89 | </div> | 197 | </div> |
| 198 | + <br> | ||
| 90 | 199 | ||
| 91 | <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> | 200 | <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> |
| 92 | <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script> | 201 | <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script> |
| 202 | +<script> | ||
| 203 | + // Dinamizar el título con el nombre de la entidad si está disponible | ||
| 204 | + const entidadText = localStorage.getItem('entidad_nombre') || ''; | ||
| 205 | + if (entidadText) { | ||
| 206 | + document.getElementById('welcome-title').innerHTML = `<i class="fas fa-map mr-1"></i> Bienvenido al Sistema Integrado de Gestión Municipal de ${entidadText}`; | ||
| 207 | + } | ||
| 208 | +</script> | ||
| 93 | </body> | 209 | </body> |
| 94 | </html> | 210 | </html> |
update_morosidad_505.sql
0 → 100644
| 1 | +-- Punto 1: Actualización de la Vista Maestra de Morosidad con Filtro de Entidad | ||
| 2 | +CREATE OR REPLACE VIEW public.vw_lotes_morosidad_505 AS | ||
| 3 | +SELECT | ||
| 4 | + l.cartodb_id, l.fid, l.dpto, l.dist, l.padron, l.zona, l.mz, l.lote, | ||
| 5 | + l.shape_area, l.shape_len, l.ccc, l.obs, l.cc_lote, l.cc_man, l.layer, | ||
| 6 | + l.borrado, l.geom, | ||
| 7 | + m.inm_ficha, m.inm_ctacatastral, m.trb_total_deuda, m.trb_total_pago, m.ultimo_pago | ||
| 8 | +FROM public.e505_lotes_conccc l | ||
| 9 | +LEFT JOIN fdw_505.v_liq_entidad_totalxobjeto m ON l.ccc::text = m.inm_ctacatastral::text AND m.entidad = '505'; | ||
| 10 | + | ||
| 11 | +-- Punto 2: Creación de la Vista de Percentiles Filtrada por Entidad (Nuevo Estándar) | ||
| 12 | +CREATE OR REPLACE VIEW public.vw_percentiles_505 AS | ||
| 13 | +SELECT * FROM fdw_505.v_liq_entidad_percentiles WHERE entidad = '505'; |