fix(audit): corrige errores criticos y mayores, mejora UX/accesibilidad y optimiza rendimiento
Some checks failed
CI / lint-and-test (3.11) (push) Has been cancelled
CI / lint-and-test (3.13) (push) Has been cancelled

- Arregla @require_auth, permisos, race conditions, locks de caja/stock
- Elimina N+1 en layaway, flotilla, dashboard y global_invoice
- Asegura folios atomicos para CFDI, ordenes de servicio y polizas
- Protege client_secret de MercadoLibre en backend
- Conecta botones/filtros de config, customers, accounting e invoicing
- Mejora accesibilidad (labels/aria-label) y estados de carga/vacio
- Limpia accounting.js obsoleto y consolida accounting.v9.js
- Actualiza cache busting a v32 y Service Worker a v32
- Documenta todo en docs/AUDIT_Y_MEJORAS_2026-06-15.md

Tests: 35 passed
This commit is contained in:
2026-06-29 23:54:58 +00:00
parent 59a4893e84
commit 2bdeb2973a
61 changed files with 2879 additions and 706 deletions

View File

@@ -8,14 +8,14 @@
<link rel="stylesheet" href="/pos/static/css/chat.css" />
<link rel="stylesheet" href="/pos/static/css/tokens.css" />
<link rel="stylesheet" href="/pos/static/css/common.css" />
<link rel="stylesheet" href="/pos/static/css/pos-ui.css?v=2" />
<link rel="stylesheet" href="/pos/static/css/pos-ui.css?v=32" />
<link rel="stylesheet" href="/pos/static/css/sidebar.css" />
<link rel="stylesheet" href="/pos/static/css/pos-glass.css" />
<link rel="manifest" href="/pos/static/pwa/manifest.json" />
<meta name="theme-color" content="#F5A623" />
<link rel="shortcut icon" type="image/png" href="/pos/static/pwa/icon-192.png" />
<link rel="stylesheet" href="/pos/static/css/dashboard.css?v=3">
<link rel="stylesheet" href="/pos/static/css/dashboard.css?v=32">
</head>
<body>
@@ -511,6 +511,40 @@
</div><!-- end alerts-grid -->
</section>
<!-- =================================================================
CRÉDITOS POR VENCER
================================================================= -->
<section>
<div class="table-card">
<div class="table-header">
<div>
<div class="section-title">Créditos por Cobrar</div>
<div style="font-size:var(--text-caption);color:var(--color-text-muted);margin-top:2px;" id="credit-alerts-meta">Vencidos: -- / Por vencer: --</div>
</div>
<a href="/pos/accounting" class="section-action" style="text-decoration:none;color:inherit;">Ir a contabilidad &rarr;</a>
</div>
<div class="table-wrap themed-scrollbar">
<table>
<thead>
<tr>
<th>Cliente</th>
<th>Folio</th>
<th>Vencimiento</th>
<th>Días</th>
<th class="align-right">Saldo</th>
<th>Estado</th>
</tr>
</thead>
<tbody id="credit-alerts-tbody">
<tr><td colspan="6"><div class="skeleton skeleton--text" style="width:100%;"></div></td></tr>
<tr><td colspan="6"><div class="skeleton skeleton--text" style="width:80%;"></div></td></tr>
</tbody>
</table>
</div>
</div>
</section>
<!-- =================================================================
RECENT SALES TABLE
================================================================= -->
@@ -564,11 +598,11 @@
<script src="/pos/static/js/chart.umd.min.js" defer></script>
<script src="/pos/static/js/i18n.js" defer></script>
<script src="/pos/static/js/app-init.js" defer></script>
<script src="/pos/static/js/splash-loader.js?v=1" defer></script>
<script src="/pos/static/js/pos-utils.js?v=2" defer></script>
<script src="/pos/static/js/splash-loader.js?v=32" defer></script>
<script src="/pos/static/js/pos-utils.js?v=32" defer></script>
<script src="/pos/static/js/sidebar.js" defer></script>
<script src="/pos/static/js/dashboard-stats.js?v=3" defer></script>
<script src="/pos/static/js/dashboard.js?v=7" defer></script>
<script src="/pos/static/js/dashboard-stats.js?v=32" defer></script>
<script src="/pos/static/js/dashboard.js?v=32" defer></script>
<script src="/pos/static/js/sync-engine.js" defer></script>
<script>if('serviceWorker' in navigator){navigator.serviceWorker.register('/pos/sw.js',{scope:'/pos/'});}</script>
<script src="/pos/static/js/pwa-install.js" defer></script>