hbox-docs/docs/inventario/flujo-compras-28oct.md

11 KiB

title date tags estado
Cómo funciona el portal para compras e inventario: el flujo acordado en la junta del 28-oct 2026-10-28
project-drogheda
hbox
compras
inventario
cotizador
integracion
portal
flujo acordado en la junta del 28-oct; fase 1 del portal construida y probada (58 pruebas)

Cómo funciona el portal para compras e inventario

28-oct-2026 · v1.0 · Claude (CTO/CSO), de la junta de dirección del 28-oct (10:17) con Leo y Adriana. Reemplaza el flujo de Cotizador ↔ centro de mando del 27-oct en la parte del proceso: aquel documento describía una sola puerta de autorización en compras; en la junta quedaron dos puertas de Adriana y el orden real de cotización y pago. El contrato técnico entre los dos sistemas (las rutas firmadas, los avisos, la base) no cambia y sigue siendo el de ese documento y el de las instrucciones para el cotizador.

!!! warning "Arranca mañana" Leo, en la junta: «a partir de mañana todas las requisiciones relacionadas HBOX se van a hacer por el sistema». Alcance: solo instalaciones de HBOX; mantenimiento se evalúa en enero. Lo que llegue por WhatsApp se regresa al sistema.

Por qué

Hoy el material se pide por WhatsApp, por teléfono y en tres direcciones a la vez. Leo, en la junta: «te hablan a ti, le hablan a Tania, me hablan a mí y ya es un cagadero». El resultado es que nadie sabe qué se pidió, qué se autorizó, qué viene en camino ni qué llegó — y cuando llega, no entra al inventario de nadie. Un solo hilo, del que pide al que recibe, arregla las dos cosas: la trazabilidad del gasto y las existencias por sitio.

El flujo, paso por paso

# Dónde Quién Qué pasa
1 Cotizador El responsable del sitio Levanta la requisición en el proyecto DROGHEDA, con sitio de entrega y los renglones de material. Sin precios: solo qué necesita y cuánto.
2 Cotizador Adriana Autoriza renglón por renglón. Puede regresar un renglón con comentarios; es ida y vuelta con quien pidió hasta que queda limpio. Leo: «vamos a autorizar ítem por ítem si es necesario, para que no pidan tampoco de más».
3 Cotizador Tania (con Efraín y Leo) Con la requisición autorizada, cotiza: ferreterías (incluido Edwin), Mercado Libre, o Jesús lleva la lista a la ferretería. Marca por renglón si existe el ítem exacto, si el proveedor ofrece otra marca, o si hay que aclararlo.
4 Cotizador Adriana Visto bueno de la cotización: que sea el material correcto, las cantidades correctas y el lugar de entrega correcto.
5 Cotizador Tania Con el visto bueno sale la orden de pago; paga y empieza el tiempo de entrega.
6 Cotizador Compras o quien pidió Cuando el proveedor manda el material: En camino, con paquetería, guía y fecha estimada. → El centro de mando lo pone en camino en la pestaña del sitio en Inventario.
7 Centro de mando El responsable del sitio Abre Compras y da Recibir con lo que llegó de verdad (puede ser menos). Eso da de alta el material en el inventario de su sitio.
8 Cotizador (solo) — Cada 15 min consulta las recepciones: si llegó todo, cierra la requisición solo; si llegó una parte, lo anota.

Quién recibe en cada sitio: Alán (VER · ICAVE) · Jesús Honorato (ZLO · TIMSA) · Miguel (ESE · EIT) · Antonio (LZC · LCT) · Jesús Romero (QRO · Querétaro).

Quién puede levantar requisiciones (lo que Leo nombró en la junta, a confirmar por Adriana): Jesús Romero, Miguel, Antonio, Daniel, Alán — que entra en lugar de Paola — y Adriana.

Lo que decide cada sistema

El reparto no cambió y conviene tenerlo claro porque es lo que evita duplicar trabajo:

Cotizador Centro de mando
Dinero, montos, cotizaciones, pagos, proveedores Sí nunca
Autorización de la requisición y de la OC Sí (Adriana, dos puertas) nunca
Qué material, cuánto y a qué sitio va Sí lo recibe y lo refleja
Existencias por sitio, en camino, kit de instalación — Sí
Quién recibió, cuánto llegó y cuándo lo consulta Sí
El pendiente de cada OC, con su responsable y su fecha — Sí

El centro de mando no recibe montos. Si un aviso del cotizador los trae, se descartan antes de guardar: esta página la ve todo el equipo (D-27-4, confirmado en la junta).

Decisiones

# Decisión Estado
D-28-1 La autorización de la requisición es de Adriana, renglón por renglón, y hay un segundo visto bueno suyo sobre la cotización antes del pago. Corrige D-27-4, que dejaba la autorización en compras (Efraín, Tania, Leo). Tomada (junta 28-oct)
D-28-2 El sistema arranca el 29-oct, solo para instalaciones de HBOX. Mantenimiento se evalúa en enero. Tomada (junta 28-oct)
D-28-3 Alán entra en lugar de Paola como autorizado para levantar requisiciones. Tomada (junta 28-oct)
D-28-4 El material se recibe en el centro de mando desde el celular, ítem por ítem, y eso crea el movimiento de entrada en el inventario del sitio. Es D-27-1, ahora con la pantalla que lo hace. Tomada (junta 28-oct)
D-28-5 El conteo físico de inventario es recurrente: una vez al mes (Querétaro ya quedó; los puertos, esta semana). Tomada (junta 28-oct)
D-27-3 Códigos de sitio VER · ZLO · ESE · LZC · QRO. Leo ya agregó el campo de sitio en el cotizador durante la junta. Falta el «sí» formal (d-27-3-sitios-oc)
D-27-2 Base SQLite en el servidor del sitio. Construida y probada. Tomada (27-oct) · hecha

Lo que ya está construido (fase 1 del portal)

Todo esto está escrito y probado; falta que Leo lo publique.

  • backend/compras.py — las órdenes de compra en SQLite (/srv/projects/drogheda/drogheda.db, modo WAL), las tres rutas firmadas de integración, los envíos «en camino» por sitio, el pendiente de cada OC y el cierre automático al recibir todo. 58 pruebas (backend/tests-1028.sh), todas pasando.
  • Página Compras — una pestaña por sitio, una tarjeta por OC con sus renglones, el botón Recibir (completo o en parte) y el botón Ligar para los renglones que llegaron sin ítem de inventario. Sin montos.
  • Las dos puertas para recibir funcionan: desde Compras (la OC completa de una vez) o desde el envío «en camino» de Inventario. Las dos terminan en lo mismo y Compras se entera de ambas.
  • Un pendiente por OC: «Recibir OC-… en ZLO», pista Compras, el sitio de entrega, el responsable del sitio y vence el día de la entrega. Se cierra solo cuando llega todo; si llega una parte, se queda abierto y dice qué falta. No se cierra a mano.
  • Las rondas de PRUEBA del cotizador ("prueba": true) se guardan aparte: no tocan el inventario ni el tablero.

Para encenderlo Leo genera el secreto (openssl rand -hex 32) y lo pone en los dos lados: COTIZADOR_SECRETO en actas-hbox.service y PORTAL_SECRETO en las propiedades del script del cotizador. Mientras no esté, las rutas de integración contestan 503 con un mensaje claro, la página lo avisa y el resto del sitio funciona igual.

Lo que falta del lado del cotizador

Los pasos 1 a 7 de las instrucciones del 27-oct siguen vigentes, con dos cosas que salieron en la junta:

  1. El formulario no deja guardar la requisición sin cotización adjunta y eso está al revés: la requisición la levanta quien necesita el material, la cotización la adjunta compras después. Leo: «eso se tiene que modificar». Es lo primero, porque bloquea el arranque del 29-oct.
  2. El campo de sitio de entrega ya lo agregó Leo en la junta; falta la regla que lo hace obligatorio en los proyectos ligados (del lado del servidor, no solo de la interfaz).

Movimientos de inventario: cómo se nombra cada salida

Lo que se acordó en la junta, con lo que el inventario ya sabe hacer:

Lo que pasó Cómo se registra
Llegó material comprado Recibir la OC en Compras (o el envío en Inventario). No se captura a mano.
Material de un puerto a otro (Manzanillo → Ensenada) Envío desde el sitio que lo manda; el que lo recibe da Recibir y revisa que esté completo.
Se usó en una instalación Salida, con la unidad o el acta como referencia.
Se dio de baja o se destruyó Salida, con el motivo.
Contamos y no cuadra Conteo físico: lo que hay en ese sitio queda exactamente en ese número.

Las salidas no se autorizan: se supervisan. Lo que las cuadra es el conteo físico mensual (D-28-5).

Lo que el equipo reportó del sitio en la junta

Se levantan como incidencias o pendientes; ninguna es de compras, pero todas estorban el arranque:

Qué Quién lo vio Estado
Las horas se ven en UTC (6 h adelantadas) todo el equipo arreglado: TZ=America/Mexico_City en el servicio. Lo guardado antes del 28-oct sigue en UTC.
Un acta con fotos se perdió al salir de la pantalla y volver Daniel pendiente — es pérdida de trabajo, va primero
El formulario no deja escoger fotos de la galería del celular Jesús Romero pendiente — mientras tanto, se guardan y se reabre el acta para subirlas
Gibran no puede entrar (su usuario es gibranlp) Gibran pendiente
La bandera de «contraseña inicial» no se apaga aunque ya la cambiaron Adriana pendiente
Dos sesiones en el mismo navegador no funcionan (cookies) Leo pendiente
Se quiere descargar un acta como documento Adriana pendiente
La flecha de cambio de estado del tablero no respondía Leo se arregló reiniciando el servicio
Pendientes sin sentido creados solos desde la minuta de la junta anterior Leo el agente diario los crea; hay que afinarlo

Lo que no cuadra con lo escrito

  • El agente aduanal de los tres pedimentos es «Tera Mercurio», no Grupo Lorenzo. El costeo del 26-oct supone Grupo Lorenzo (patente 3927) y MX$6,500 por pedimento: esas cifras hay que rehacerlas con la cotización real.
  • La cotización de la herrería de las bases de RTG: Adriana dice que Jesús y Tania ya la mandaron; Leo dice que nunca le llegó. Las medidas y fotos sí están; nada se ha pedido. Sigue bloqueada por el pago.

Riesgos

  • El arranque es mañana y el cotizador todavía no manda avisos. No es bloqueante: las requisiciones pueden correr en el cotizador desde el día uno y el material entrar al inventario a mano; lo que se pierde mientras tanto es el «en camino» automático y el cierre solo. Se gana en cuanto Leo ponga el secreto.
  • Seis personas nuevas usando un sistema nuevo el mismo día. Por eso la sesión general que va a programar Adriana, y por eso el alcance chico (solo HBOX): Leo lo dijo en la junta, es para «probar y sacar todos los errores».
  • Renglones sin ítem de inventario. Un renglón que el cotizador manda sin ítem no entra solo al inventario. Queda visible como «por ligar» en Compras y se puede recibir igual (se anota sin tocar existencias), pero si nadie lo liga, el material llega y no aparece contado en ningún lado.