feat(herramientas): impresion de etiquetas QR y manifiesto HTML responsive para escaneo de cajas de herramientas

This commit is contained in:
2026-11-01 09:13:39 -05:00
parent 83cbfcefa8
commit e71e531b51
15 changed files with 1252 additions and 22 deletions
+26 -10
View File
@@ -154,9 +154,14 @@
</div>
<% } %>
<div class="d-flex align-items-center justify-content-between mb-2">
<span class="badge bg-dark text-white font-monospace" style="font-size: 0.7rem;">
<%= s.codigo || 'KIT-' + s.id %>
</span>
<div class="d-flex align-items-center gap-1.5">
<span class="badge bg-dark text-white font-monospace" style="font-size: 0.7rem;">
<%= s.codigo || 'KIT-' + s.id %>
</span>
<a href="/admin/herramientas/sets/<%= s.id %>/etiqueta" target="_blank" class="badge bg-light text-dark border text-decoration-none d-inline-flex align-items-center gap-1" style="font-size: 0.68rem;" title="Ver e Imprimir Etiqueta QR">
<i class="fas fa-qrcode text-primary"></i> <span>QR</span>
</a>
</div>
<span class="badge <%= s.is_active ? 'bg-success' : 'bg-secondary' %>" style="font-size: 0.68rem;">
<%= s.is_active ? 'Activo' : 'Inactivo' %>
</span>
@@ -199,11 +204,17 @@
</div>
</div>
<div class="border-top pt-3 d-flex align-items-center justify-content-between mt-auto">
<button type="button" class="btn btn-sm btn-outline-primary d-inline-flex align-items-center gap-1" data-bs-toggle="modal" data-bs-target="#modalAsignarDirecto<%= s.id %>">
<i class="fas fa-user-plus"></i>
<span>Asignar</span>
</button>
<div class="border-top pt-3 d-flex flex-wrap align-items-center justify-content-between gap-2 mt-auto">
<div class="d-flex align-items-center gap-1.5">
<button type="button" class="btn btn-sm btn-outline-primary d-inline-flex align-items-center gap-1" data-bs-toggle="modal" data-bs-target="#modalAsignarDirecto<%= s.id %>">
<i class="fas fa-user-plus"></i>
<span>Asignar</span>
</button>
<a href="/admin/herramientas/sets/<%= s.id %>/etiqueta" target="_blank" class="btn btn-sm btn-outline-dark d-inline-flex align-items-center gap-1" title="Imprimir Etiqueta QR para Caja">
<i class="fas fa-qrcode"></i>
<span>Etiqueta QR</span>
</a>
</div>
<div class="d-flex align-items-center gap-1">
<button type="button" class="btn btn-sm btn-light border" data-bs-toggle="modal" data-bs-target="#modalEditarSet<%= s.id %>" title="Editar Kit">
<i class="fas fa-edit text-secondary"></i>
@@ -575,6 +586,11 @@
</td>
<td>
<div class="d-flex flex-column gap-1">
<% if (a.qr_token) { %>
<a href="/qr/asignacion/<%= a.qr_token %>" target="_blank" class="badge bg-dark-subtle text-dark border text-decoration-none d-inline-flex align-items-center gap-1" style="font-size: 0.7rem;" title="Ver Manifiesto Digital QR">
<i class="fas fa-qrcode"></i> <span>Manifiesto QR</span>
</a>
<% } %>
<% if (a.foto_entrega_url) { %>
<a href="<%= a.foto_entrega_url %>" target="_blank" class="badge bg-primary-subtle text-primary border border-primary-subtle text-decoration-none d-inline-flex align-items-center gap-1" style="font-size: 0.7rem;">
<i class="fas fa-camera"></i> <span>Foto Entrega</span>
@@ -585,8 +601,8 @@
<i class="fas fa-camera"></i> <span>Foto Devolución</span>
</a>
<% } %>
<% if (!a.foto_entrega_url && !a.foto_devolucion_url) { %>
<span class="text-muted small" style="font-size: 0.72rem;">Sin fotos</span>
<% if (!a.foto_entrega_url && !a.foto_devolucion_url && !a.qr_token) { %>
<span class="text-muted small" style="font-size: 0.72rem;">Sin datos</span>
<% } %>
</div>
</td>