fix(pos): remove hardcoded demo data from inventory, customers, invoicing, accounting pages

Demo/sample rows in HTML tables were visible on first render before JS
populated real data. Replaced all hardcoded tbody rows and finance cards
with empty containers that JS populates from API on load.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-04 23:20:06 +00:00
parent c1d0638b45
commit 04340f2f29
4 changed files with 42 additions and 1409 deletions

View File

@@ -1662,65 +1662,12 @@
</tr>
</thead>
<tbody>
<tr>
<td class="td--mono">ENT-2026-0312</td>
<td>01/04/2026</td>
<td class="td--primary">Distribuidora AutoMax S.A.</td>
<td style="text-align:right">48</td>
<td style="text-align:right" class="td--amount">$38,420.00</td>
<td><span class="badge badge--complete">Recibido</span></td>
<td>H. García</td>
<td><button class="btn btn--ghost btn--sm">Ver</button></td>
</tr>
<tr>
<td class="td--mono">ENT-2026-0311</td>
<td>31/03/2026</td>
<td class="td--primary">Refacciones Nacionales RENA</td>
<td style="text-align:right">22</td>
<td style="text-align:right" class="td--amount">$14,880.00</td>
<td><span class="badge badge--pending">Pendiente</span></td>
<td></td>
<td><button class="btn btn--primary btn--sm">Recibir</button></td>
</tr>
<tr>
<td class="td--mono">ENT-2026-0310</td>
<td>30/03/2026</td>
<td class="td--primary">Gates México Distribución</td>
<td style="text-align:right">75</td>
<td style="text-align:right" class="td--amount">$92,150.00</td>
<td><span class="badge badge--complete">Recibido</span></td>
<td>M. Torres</td>
<td><button class="btn btn--ghost btn--sm">Ver</button></td>
</tr>
<tr>
<td class="td--mono">ENT-2026-0309</td>
<td>29/03/2026</td>
<td class="td--primary">SKF de México S. de R.L.</td>
<td style="text-align:right">31</td>
<td style="text-align:right" class="td--amount">$27,600.00</td>
<td><span class="badge badge--partial">Parcial</span></td>
<td>H. García</td>
<td><button class="btn btn--secondary btn--sm">Completar</button></td>
</tr>
<tr>
<td class="td--mono">ENT-2026-0308</td>
<td>28/03/2026</td>
<td class="td--primary">Bosch Automotive Parts</td>
<td style="text-align:right">120</td>
<td style="text-align:right" class="td--amount">$145,900.00</td>
<td><span class="badge badge--complete">Recibido</span></td>
<td>L. Ramírez</td>
<td><button class="btn btn--ghost btn--sm">Ver</button></td>
</tr>
<!-- Populated by JS -->
</tbody>
</table>
<div class="table-footer">
<span>Mostrando 15 de 14 entradas este mes</span>
<div class="pagination">
<button class="page-btn is-active">1</button>
<button class="page-btn">2</button>
<button class="page-btn">3</button>
</div>
<span></span>
<div class="pagination"></div>
</div>
</div>
</div>
@@ -1760,71 +1707,12 @@
</tr>
</thead>
<tbody>
<tr>
<td class="td--mono">SAL-2026-1044</td>
<td>01/04/2026</td>
<td><span class="badge badge--ok" style="text-transform:none;font-size:var(--text-caption)">Venta</span></td>
<td style="text-align:right">5</td>
<td class="td--primary">Ticket #T-9821 — Cliente: Taller Ramos</td>
<td><span class="badge badge--complete">Completado</span></td>
<td>H. García</td>
</tr>
<tr>
<td class="td--mono">SAL-2026-1043</td>
<td>01/04/2026</td>
<td><span class="badge badge--pending" style="text-transform:none;font-size:var(--text-caption)">Garantía</span></td>
<td style="text-align:right">2</td>
<td class="td--primary">Nota crédito NCR-112 — Autoservicio</td>
<td><span class="badge badge--complete">Completado</span></td>
<td>M. Torres</td>
</tr>
<tr>
<td class="td--mono">SAL-2026-1042</td>
<td>31/03/2026</td>
<td><span class="badge badge--ok" style="text-transform:none;font-size:var(--text-caption)">Venta</span></td>
<td style="text-align:right">18</td>
<td class="td--primary">Ticket #T-9820 — Cliente: FleetAuto</td>
<td><span class="badge badge--complete">Completado</span></td>
<td>L. Ramírez</td>
</tr>
<tr>
<td class="td--mono">SAL-2026-1041</td>
<td>31/03/2026</td>
<td><span class="badge badge--transit" style="text-transform:none;font-size:var(--text-caption)">Traspaso</span></td>
<td style="text-align:right">12</td>
<td class="td--primary">Traspaso TRP-2026-044 → Sucursal Norte</td>
<td><span class="badge badge--transit">En tránsito</span></td>
<td>H. García</td>
</tr>
<tr>
<td class="td--mono">SAL-2026-1040</td>
<td>30/03/2026</td>
<td><span class="badge badge--ok" style="text-transform:none;font-size:var(--text-caption)">Venta</span></td>
<td style="text-align:right">7</td>
<td class="td--primary">Ticket #T-9818 — Mostrador</td>
<td><span class="badge badge--complete">Completado</span></td>
<td>M. Torres</td>
</tr>
<tr>
<td class="td--mono">SAL-2026-1039</td>
<td>30/03/2026</td>
<td><span class="badge badge--damage" style="text-transform:none;font-size:var(--text-caption)">Devolución</span></td>
<td style="text-align:right">3</td>
<td class="td--primary">Dev. proveedor ENT-2026-0305</td>
<td><span class="badge badge--cancelled">Cancelado</span></td>
<td>H. García</td>
</tr>
<!-- Populated by JS -->
</tbody>
</table>
<div class="table-footer">
<span>Mostrando 16 de 312 salidas este mes</span>
<div class="pagination">
<button class="page-btn">&lsaquo;</button>
<button class="page-btn is-active">1</button>
<button class="page-btn">2</button>
<button class="page-btn">3</button>
<button class="page-btn">&rsaquo;</button>
</div>
<span></span>
<div class="pagination"></div>
</div>
</div>
</div>
@@ -1869,53 +1757,12 @@
</tr>
</thead>
<tbody>
<tr>
<td class="td--mono">TRP-2026-044</td>
<td>31/03/2026</td>
<td class="td--primary">Sucursal Centro</td>
<td>Sucursal Norte</td>
<td style="text-align:right">12</td>
<td><span class="badge badge--transit">En tránsito</span></td>
<td>H. García</td>
<td><button class="btn btn--primary btn--sm">Confirmar</button></td>
</tr>
<tr>
<td class="td--mono">TRP-2026-043</td>
<td>29/03/2026</td>
<td class="td--primary">Sucursal Sur</td>
<td>Sucursal Centro</td>
<td style="text-align:right">25</td>
<td><span class="badge badge--complete">Recibido</span></td>
<td>L. Ramírez</td>
<td><button class="btn btn--ghost btn--sm">Ver</button></td>
</tr>
<tr>
<td class="td--mono">TRP-2026-042</td>
<td>28/03/2026</td>
<td class="td--primary">Sucursal Centro</td>
<td>Sucursal Oriente</td>
<td style="text-align:right">8</td>
<td><span class="badge badge--pending">Pendiente</span></td>
<td>M. Torres</td>
<td><button class="btn btn--secondary btn--sm">Preparar</button></td>
</tr>
<tr>
<td class="td--mono">TRP-2026-041</td>
<td>27/03/2026</td>
<td class="td--primary">Sucursal Norte</td>
<td>Sucursal Centro</td>
<td style="text-align:right">40</td>
<td><span class="badge badge--complete">Recibido</span></td>
<td>H. García</td>
<td><button class="btn btn--ghost btn--sm">Ver</button></td>
</tr>
<!-- Populated by JS -->
</tbody>
</table>
<div class="table-footer">
<span>4 traspasos activos</span>
<div class="pagination">
<button class="page-btn is-active">1</button>
</div>
<span></span>
<div class="pagination"></div>
</div>
</div>
</div>
@@ -1955,58 +1802,12 @@
</tr>
</thead>
<tbody>
<tr>
<td class="td--mono">AJU-2026-088</td>
<td>01/04/2026</td>
<td><span class="badge badge--damage">Daño</span></td>
<td class="td--primary">Filtro de Aceite F026407006</td>
<td style="text-align:right;color:var(--color-error)">3</td>
<td>Daño en almacenamiento, caja aplastada</td>
<td>H. García</td>
</tr>
<tr>
<td class="td--mono">AJU-2026-087</td>
<td>31/03/2026</td>
<td><span class="badge badge--shrinkage">Merma</span></td>
<td class="td--primary">Aceite Motor 5W-30 1L</td>
<td style="text-align:right;color:var(--color-error)">6</td>
<td>Derrame detectado durante conteo físico</td>
<td>M. Torres</td>
</tr>
<tr>
<td class="td--mono">AJU-2026-086</td>
<td>30/03/2026</td>
<td><span class="badge badge--correction">Corrección</span></td>
<td class="td--primary">Rodamiento SKF 6204</td>
<td style="text-align:right;color:var(--color-success)">+4</td>
<td>Error de captura en recepción ENT-0302</td>
<td>Gerente General</td>
</tr>
<tr>
<td class="td--mono">AJU-2026-085</td>
<td>29/03/2026</td>
<td><span class="badge badge--damage">Daño</span></td>
<td class="td--primary">Amortiguador Monroe G8114</td>
<td style="text-align:right;color:var(--color-error)">2</td>
<td>Daño por caída en bodega</td>
<td>H. García</td>
</tr>
<tr>
<td class="td--mono">AJU-2026-084</td>
<td>28/03/2026</td>
<td><span class="badge badge--correction">Corrección</span></td>
<td class="td--primary">Bujía NGK LFR6A (caja 4)</td>
<td style="text-align:right;color:var(--color-success)">+16</td>
<td>Unidades halladas en lote sin registrar</td>
<td>Gerente General</td>
</tr>
<!-- Populated by JS -->
</tbody>
</table>
<div class="table-footer">
<span>5 ajustes este mes</span>
<div class="pagination">
<button class="page-btn is-active">1</button>
</div>
<span></span>
<div class="pagination"></div>
</div>
</div>
</div>
@@ -2051,66 +1852,12 @@
</tr>
</thead>
<tbody>
<tr>
<td class="td--mono">CNT-2026-018</td>
<td>01/04/2026</td>
<td class="td--primary">Zona C — Eléctrico</td>
<td style="text-align:right">312</td>
<td style="text-align:right;color:var(--color-error)">7</td>
<td><span class="badge badge--partial">En proceso</span></td>
<td>H. García</td>
<td><button class="btn btn--primary btn--sm">Continuar</button></td>
</tr>
<tr>
<td class="td--mono">CNT-2026-017</td>
<td>28/03/2026</td>
<td class="td--primary">Zona A — Motor</td>
<td style="text-align:right">856</td>
<td style="text-align:right;color:var(--color-success)">0</td>
<td><span class="badge badge--complete">Completado</span></td>
<td>L. Ramírez</td>
<td><button class="btn btn--ghost btn--sm">Ver</button></td>
</tr>
<tr>
<td class="td--mono">CNT-2026-016</td>
<td>25/03/2026</td>
<td class="td--primary">Zona B — Suspensión</td>
<td style="text-align:right">544</td>
<td style="text-align:right;color:var(--color-error)">12</td>
<td><span class="badge badge--complete">Completado</span></td>
<td>M. Torres</td>
<td><button class="btn btn--ghost btn--sm">Ver</button></td>
</tr>
<tr>
<td class="td--mono">CNT-2026-015</td>
<td>10/04/2026</td>
<td class="td--primary">Zona D — Filtros</td>
<td style="text-align:right"></td>
<td style="text-align:right"></td>
<td><span class="badge badge--pending">Programado</span></td>
<td>H. García</td>
<td><button class="btn btn--secondary btn--sm">Iniciar</button></td>
</tr>
<tr>
<td class="td--mono">CNT-2026-014</td>
<td>20/03/2026</td>
<td class="td--primary">Zona E — Frenos</td>
<td style="text-align:right">628</td>
<td style="text-align:right;color:var(--color-warning)">+3</td>
<td><span class="badge badge--complete">Completado</span></td>
<td>L. Ramírez</td>
<td><button class="btn btn--ghost btn--sm">Ver</button></td>
</tr>
<!-- Populated by JS -->
</tbody>
</table>
<div class="table-footer">
<span>Mostrando 15 de 18 conteos en 2026</span>
<div class="pagination">
<button class="page-btn is-active">1</button>
<button class="page-btn">2</button>
<button class="page-btn">3</button>
<button class="page-btn">4</button>
</div>
<span></span>
<div class="pagination"></div>
</div>
</div>
</div>
@@ -2120,184 +1867,7 @@
=================================================================== -->
<div class="tab-panel" id="panel-alertas" role="tabpanel">
<div id="alertsContent">
<!-- Low Stock -->
<div class="section-heading">
<span class="section-heading__title">Stock Bajo</span>
<div class="section-heading__line"></div>
<span class="badge badge--low">12 críticas</span>
</div>
<div class="alerts-grid" style="margin-bottom: var(--space-7)">
<div class="alert-card alert-card--critical">
<div class="alert-card__icon">
<svg viewBox="0 0 24 24"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
</div>
<div class="alert-card__body">
<div class="alert-card__title">Bujía Bosch BKR6EIX — Stock Crítico</div>
<div class="alert-card__desc">SKU BOC-0258 · Zona C-08-2 · Mínimo requerido: 10 unidades</div>
<div class="alert-card__meta">
<span class="alert-card__count">3</span>
<span class="alert-card__count-label">unidades restantes</span>
<button class="btn btn--primary btn--sm">Generar OC</button>
</div>
</div>
</div>
<div class="alert-card alert-card--critical">
<div class="alert-card__icon">
<svg viewBox="0 0 24 24"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
</div>
<div class="alert-card__body">
<div class="alert-card__title">Rodamiento SKF 6204 — Stock Bajo</div>
<div class="alert-card__desc">SKU SKF-6204 · Zona B-05-1 · Mínimo requerido: 15 unidades</div>
<div class="alert-card__meta">
<span class="alert-card__count">8</span>
<span class="alert-card__count-label">unidades restantes</span>
<button class="btn btn--primary btn--sm">Generar OC</button>
</div>
</div>
</div>
<div class="alert-card alert-card--critical">
<div class="alert-card__icon">
<svg viewBox="0 0 24 24"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
</div>
<div class="alert-card__body">
<div class="alert-card__title">Filtro de Aceite Bosch F026 — Crítico</div>
<div class="alert-card__desc">SKU BOC-F026 · Zona D-01-2 · Mínimo requerido: 20 unidades</div>
<div class="alert-card__meta">
<span class="alert-card__count">5</span>
<span class="alert-card__count-label">unidades restantes</span>
<button class="btn btn--primary btn--sm">Generar OC</button>
</div>
</div>
</div>
</div>
<!-- Overstock -->
<div class="section-heading">
<span class="section-heading__title">Sobrestock</span>
<div class="section-heading__line"></div>
<span class="badge badge--over">4 productos</span>
</div>
<div class="alerts-grid" style="margin-bottom: var(--space-7)">
<div class="alert-card alert-card--warning">
<div class="alert-card__icon">
<svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
</div>
<div class="alert-card__body">
<div class="alert-card__title">Amortiguador Monroe G8114 — Sobrestock</div>
<div class="alert-card__desc">SKU MON-G8114 · Zona B-14-5 · Máximo permitido: 40 unidades</div>
<div class="alert-card__meta">
<span class="alert-card__count">67</span>
<span class="alert-card__count-label">unidades (+27 sobre máx)</span>
<button class="btn btn--ghost btn--sm">Ver opciones</button>
</div>
</div>
</div>
<div class="alert-card alert-card--warning">
<div class="alert-card__icon">
<svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
</div>
<div class="alert-card__body">
<div class="alert-card__title">Aceite 10W-40 5L — Sobrestock</div>
<div class="alert-card__desc">SKU ACE-10W5L · Zona D-09-1 · Máximo: 80 unidades</div>
<div class="alert-card__meta">
<span class="alert-card__count">134</span>
<span class="alert-card__count-label">unidades (+54 sobre máx)</span>
<button class="btn btn--ghost btn--sm">Ver opciones</button>
</div>
</div>
</div>
</div>
<!-- Vencimientos -->
<div class="section-heading">
<span class="section-heading__title">Próximos a Vencer</span>
<div class="section-heading__line"></div>
<span class="badge badge--over">3 lotes</span>
</div>
<div class="alerts-grid" style="margin-bottom: var(--space-7)">
<div class="alert-card alert-card--warning">
<div class="alert-card__icon">
<svg viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg>
</div>
<div class="alert-card__body">
<div class="alert-card__title">Líquido de Frenos DOT 4 — Lote AB-2022</div>
<div class="alert-card__desc">SKU FRE-DOT4 · Vence el 15/06/2026 · 24 unidades afectadas</div>
<div class="alert-card__meta">
<span class="alert-card__count">75</span>
<span class="alert-card__count-label">días restantes</span>
<button class="btn btn--ghost btn--sm">Marcar prioritario</button>
</div>
</div>
</div>
</div>
<!-- Órdenes Pendientes -->
<div class="section-heading">
<span class="section-heading__title">Órdenes de Compra Pendientes</span>
<div class="section-heading__line"></div>
<span class="badge badge--pending">4 órdenes</span>
</div>
<div class="alerts-grid">
<div class="alert-card alert-card--accent">
<div class="alert-card__icon">
<svg viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/></svg>
</div>
<div class="alert-card__body">
<div class="alert-card__title">OC-2026-0084 — Gates México</div>
<div class="alert-card__desc">72 productos · Emitida 28/03/2026 · Entrega estimada 05/04/2026</div>
<div class="alert-card__meta">
<span class="alert-card__count">$88,400</span>
<span class="alert-card__count-label">MXN pendiente</span>
<button class="btn btn--ghost btn--sm">Seguimiento</button>
</div>
</div>
</div>
<div class="alert-card alert-card--accent">
<div class="alert-card__icon">
<svg viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/></svg>
</div>
<div class="alert-card__body">
<div class="alert-card__title">OC-2026-0083 — Bosch Automotive</div>
<div class="alert-card__desc">120 productos · Emitida 27/03/2026 · Entrega estimada 07/04/2026</div>
<div class="alert-card__meta">
<span class="alert-card__count">$142,000</span>
<span class="alert-card__count-label">MXN pendiente</span>
<button class="btn btn--ghost btn--sm">Seguimiento</button>
</div>
</div>
</div>
<div class="alert-card alert-card--info">
<div class="alert-card__icon">
<svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
</div>
<div class="alert-card__body">
<div class="alert-card__title">OC-2026-0082 — SKF de México</div>
<div class="alert-card__desc">31 productos · Entrega parcial recibida · Pendiente: 8 artículos</div>
<div class="alert-card__meta">
<span class="alert-card__count">8</span>
<span class="alert-card__count-label">artículos faltantes</span>
<button class="btn btn--ghost btn--sm">Reclamar</button>
</div>
</div>
</div>
</div>
<!-- Populated by JS -->
</div><!-- /alertsContent -->
</div>