Backport de mejoras genéricas de backend (desde cliente/tagumedica) + limpieza de datos de cliente en main

Mejoras genéricas traídas:
- core/crud_router.py: el PATCH genérico reenvía cualquier header B1S-* recibido del caller en vez de decidirlo el backend.
- routers/catalogs.py: nuevo endpoint /api/Catalogs/UdfValidValues (valores válidos de cualquier UDF vía Service Layer).
- routers/batch.py: /api/batch/stock (stock de un lote por almacén) y /api/batch/lot-source-warehouse (resuelve contra HANA de qué almacén salió un lote, repartiendo por origen).
- routers/inventory_transfer_requests.py + core/inventory_transfer_requests.py: CRUD genérico de Solicitudes de Transferencia de Inventario.
- routers/series.py + core/series.py: series activas de un tipo de documento.
- routers/user_tables.py: catálogo Code/Name genérico de tablas de usuario (mapeo USER_TABLES vacío, cada cliente completa el suyo).
- routers/reports.py / templates/reports/stickers.html: fix de márgenes/alto de página del reporte de etiquetas.
- mini-backend/test/ -> mini-backend/tools/ (rename organizativo).

Limpieza de datos de Tagumedica que ya estaban en el commit base de main (anteriores a la branch cliente/tagumedica, no relacionados con el backport):
- tools/sap-tagumedica/sl.http: eliminado (tenía CompanyDB y password reales).
- tools/ApiGateway/Login.yml: CompanyDB/host/password reemplazados por placeholders.
- templates/reports/stickers.html: título hardcodeado "TAGUMEDICA" reemplazado por "EMPRESA".
- menu_permissions.json: reemplazado por un ejemplo demo (usuarios/módulos ficticios) en vez de emails reales.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
GeorgeandClaude Sonnet 5 committed 2026-09-28 14:18:42 -05:00
1 parent b2fb4e2d0a
commit fef21898f9
30 files changed
+462 -112

No files matched your search

+11 -7
View File
@@ -10,7 +10,7 @@
@page {
size: {{ paper_size }} landscape;
margin: 0.3in;
margin: 1.6cm 3cm 1cm 2.2cm;
}
body {
@@ -33,8 +33,9 @@
}
.sticker {
height: 100%;
border: 2px solid #000;
padding: 0.3in 0.35in;
padding: 0.15in 0.35in;
box-sizing: border-box;
position: relative;
display: flex;
@@ -47,15 +48,15 @@
font-size: 20pt;
font-weight: bold;
letter-spacing: 1px;
margin-bottom: 16px;
margin-bottom: 10px;
}
.campo {
margin-bottom: 14px;
margin-bottom: 8px;
}
.campo-direccion {
min-height: 0.65in;
min-height: 0.5in;
}
.campo-label {
@@ -77,10 +78,13 @@
}
.documento-linea {
position: absolute;
left: 0.35in;
right: 0.35in;
bottom: 0.15in;
display: flex;
justify-content: space-between;
align-items: flex-end;
margin-top: auto;
}
.documento-linea .campo {
@@ -94,7 +98,7 @@
<div class="pagina">
{% for sticker in pagina %}
<div class="sticker">
<div class="titulo">TAGUMEDICA</div>
<div class="titulo">EMPRESA</div>
<div class="campo">
<div class="campo-label">DATOS DEL CLIENTE:</div>