Reporte de Solicitud de Material
Página 3 de streamlit-reportes.
Reporte a nivel línea de Solicitud de Material, con las mismas
métricas de disponibilidad que ya usa el negocio en pantalla
(RP_CTR_SM2), más columnas de compras propias de este reporte.
Grano y fuente
Grano: línea (Sm_Folio, Pr_Cve_Producto). Fuente: TRIVASADB3
(.205) / TRIVASADB (.207) — mismo esquema (ver
Servidores y bases). Para
cifras oficiales usar .207; la query se validó en vivo contra .205
el 2026-08-28 y luego se corrió tal cual contra .207 al desplegar el
Streamlit — mismos resultados, mismos nombres de tabla/columna.
De dónde sale cada columna
| Columna | Origen | Nota |
|---|---|---|
solicitado, apartado, existencia, surtido, saldo_a_surtir |
Replica RP_CTR_SM2 ("REPORTE DE CONTROL DE SOLICITUD DE MATERIAL V2", Reporte.Rp_SQL) |
Es el reporte que el negocio ya usa — definición operativa de esas métricas. Ver Reportes nativos. |
existencia |
Existencia.Ex_Cantidad_Control_1 − ZTRV_Apartado (total en ese almacén) |
Existencia libre = física − apartado, no física a secas. |
requisicion, requisicion_cantidad |
Requisicion_Compra vía patrón polimórfico Rc_Tabla/Rc_Documento = 'ZTRV_Solicitud_Material'/Sm_Folio |
Adición de este reporte, no viene del reporte nativo. Patrón validado en Calidad de datos. |
pedido, pedido_cantidad, comprado (Orden_Compra/Compra) |
— | Quitadas por ahora a pedido del usuario. La lógica ya está probada (mismo patrón OUTER APPLY con TOP 1 de los notebooks 52/53 de AB/PR — el OR en el ON fuerza escaneo completo de Orden_Compra y entra en timeout con rango de meses) y queda comentada en el .sql para cuando se retome. |
tipo |
CASE Sm_Es_Servicio WHEN 1 THEN 'SERVICIO' ELSE 'MATERIAL' END |
Inferencia, no hay columna "TIPO" confirmada con ese nombre exacto en pantalla/reporte nativo — verificar contra ZTRV098 si hace falta exactitud. |
estado_detalle |
Es_Cve_Estado crudo de ZTRV_Solicitud_Material_Detalle |
No es el indicador de pestaña de ZTRV098 (ese se deriva de Requisicion_Compra/Orden_Compra activas) — comparten catálogo de letras (AC/CE/AB/PR/FN) por coincidencia, no por ser el mismo dato. Se expone a nivel línea porque cabecera y detalle divergen con frecuencia (ver Calidad de datos). |
producto |
Sm_Concepto |
Trae "NUEVO - <concepto>" cuando Pr_Cve_Producto viene vacío, igual que el reporte nativo. |
Otras notas de esquema confirmadas y usadas aquí: Sm_Fecha_Cierre =
'2001-01-01' es sentinela de "no cerrado" (no NULL) — ver
Solicitud de material.
Query base
queries/reporte_solicitud_material.sql
en streamlit-reportes, parametrizada con :desde/:hasta. Diseño
original en
reporte_basico_solicitud_material.sql
(trivasa-bi) — ese .sql archivado trae un rango fijo
(Sm_Fecha >= DATEADD(MONTH, -1, GETDATE())) pensado para ajustarse a mano.
El Streamlit
Código: pages/3_Reporte_Solicitud_Material.py.
- Filtros: rango de fechas (default últimos 30 días, mismo default que la query original), Sucursal, Solicitante, Tipo, Estado de línea — cada uno como checkboxes dentro de un expander (con botones "Todos" / "Ninguno"), no un multiselect de selector único.
- Tabla:
streamlit-aggridcon filtro inline tipado por columna (texto/número/fecha), mismo patrón que Transferencias sin recepción. - Métricas: folios distintos, líneas, solicitado total, saldo a surtir total. Descarga CSV del resultado ya filtrado. Query cacheada 10 min.
Fuente de exploración
Lógica validada en
trivasa-bi/proyectos-bi/sm-reporte.
Pendiente
- Retomar
pedido/pedido_cantidad/comprado(Orden_Compra/Compra) cuando el usuario lo pida — lógica ya probada, ver tabla arriba. - Confirmar
tipocontraZTRV098si se necesita exactitud (hoy es inferencia deSm_Es_Servicio).