158 lines
11 KiB
Markdown
158 lines
11 KiB
Markdown
---
|
|
title: "Cómo funciona el portal para compras e inventario: el flujo acordado en la junta del 28-oct"
|
|
date: 2026-10-28
|
|
tags: [project-drogheda, hbox, compras, inventario, cotizador, integracion, portal]
|
|
estado: 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](integracion-cotizador.md) 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](integracion-cotizador-instrucciones.md).
|
|
|
|
!!! 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](/tableros/inventario/). |
|
|
| 7 | **Centro de mando** | **El responsable del sitio** | Abre [Compras](/tableros/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](/tableros/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](/tableros/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](integracion-cotizador-instrucciones.md) 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](/hardware/costeo-jlc-26oct/) 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.
|