Vista: Recepciones Pendientes
Proposito
Esta vista permite al encargado de almacen dar seguimiento al material comprado que esta pendiente de recepcion. Muestra las demandas de abastecimiento que ya fueron pagadas o pedidas, junto con la cantidad ya recibida y la cantidad pendiente. El almacenista utiliza esta vista para saber que material espera, registrar cada entrega del proveedor, y manejar recepciones parciales o discrepancias.
Vista: Recepciones Pendientes
La pestana vista_recepciones_pendientes es una vista de solo lectura (Capa 3a) que muestra las demandas de abastecimiento en etapa de recepcion. Se actualiza automaticamente cada vez que se procesan cambios.
Columnas de la vista
| Columna | Descripcion |
|---|---|
| Folio Demanda | Identificador unico de la demanda de abastecimiento |
| Descripcion Solicitada | Descripcion del material o servicio esperado |
| Cantidad Requerida | Cantidad total solicitada en la demanda |
| Proveedor Nombre | Nombre del proveedor de la opcion seleccionada |
| Cantidad Ya Recibida | Suma de cantidades recibidas en todas las recepciones anteriores |
| Cantidad Pendiente | Diferencia entre requerida y recibida (cantidad_requerida - cantidad_ya_recibida) |
| Estado Demanda | Estado actual de la demanda (ver filtros) |
Filtros
Solo aparecen demandas en los siguientes estados:
pagada— el proveedor ya fue pagado y se espera la entrega del materialpedida— el pedido fue enviado al proveedorrecepcion_parcial— se recibio parte del material, falta el resto
Las demandas en otros estados (capturada, cotizando, aprobada, recibida_total, surtida_os, cerrada, etc.) no aparecen en esta vista.
Ordenamiento
Las demandas se muestran ordenadas por:
- recepcion_parcial — las que ya tienen entregas parciales aparecen primero (material en proceso de llegar).
- pedida — las que ya fueron pedidas al proveedor.
- pagada — las que fueron pagadas y estan en espera.
Como Registrar una Recepcion
Las recepciones se registran a traves de la pestana stg_recepcion_abastecimiento (o el formulario en AppSheet).
Recepcion completa (caso normal)
- Identificar la demanda en
vista_recepciones_pendientes. - Verificar fisicamente que el material entregado coincide con la descripcion y cantidad.
- Abrir
stg_recepcion_abastecimientoy llenar:- demanda_id: ID de la demanda.
- opcion_id: ID de la opcion seleccionada (la del proveedor que entrega).
- proveedor_id: ID del proveedor.
- producto_id: (Opcional) ID del producto si esta en catalogo. Si no se llena, se toma del producto de la demanda.
- cantidad_recibida: Cantidad fisicamente recibida.
- receipt_mode_code: Modo de recepcion (ver abajo).
- received_by_user_id: Su ID de usuario.
- receipt_doc_refs_json: Referencias a documentos (remision, fotos, etc.), ej.
["remision_001.pdf"].
- El sistema:
- Crea la recepcion en
_recepciones_abastecimiento. - Si es
entrada_stock: crea movimiento de inventario y actualizastock_actualen_productos. - Si la cantidad recibida completa la demanda: transiciona a
recibida_total. - Si queda cantidad pendiente: transiciona a
recepcion_parcial.
- Crea la recepcion en
Modos de recepcion
| Modo | Codigo | Cuando usar |
|---|---|---|
| Entrada a stock | entrada_stock | El material se recibe en almacen y se agrega al inventario general. Uso normal. |
| Directo a OS | directo_os | El material se entrega directamente a la orden de servicio sin pasar por inventario. Para piezas especificas o urgentes. |
Importante: Si se usa directo_os y no se llena allocated_os_id, el sistema lo toma automaticamente de la demanda.
Recepcion parcial
Cuando el proveedor entrega solo una parte del pedido:
- Registrar la recepcion con la cantidad fisicamente recibida (no la total).
- El sistema calcula
cantidad_pendienteautomaticamente. - La demanda queda en estado
recepcion_parcial. - La demanda sigue visible en la vista hasta que se complete.
- Cuando llega el resto: registrar una nueva recepcion con la cantidad restante.
Recepcion con discrepancia
Cuando lo recibido no coincide con lo pedido (cantidad incorrecta, producto equivocado, dano):
- Registrar la recepcion con la cantidad realmente recibida.
- Llenar discrepancy_code con el codigo correspondiente:
cantidad_incorrecta— el proveedor entrego mas o menos de lo acordadoproducto_equivocado— el material no es el solicitadomaterial_danado— el material llego en malas condicionesbackorder_proveedor— el proveedor confirma que el faltante llegara despuesrecepcion_con_discrepancia— discrepancia general
- El sistema marca la recepcion como
discrepancia_abierta. - La demanda queda en
recepcion_parcialpara seguimiento. - Escalar a compras para que gestione con el proveedor.
Efectos en Inventario
Cada recepcion con modo entrada_stock genera automaticamente:
- Un registro en
_movimientos_inventariocon:tipo_movimiento=entradacantidad= lo recibidoreferencia_tipo=recepcion_abastecimientoreferencia_id= ID de la recepcion
- Actualizacion de
stock_actualen_productos(se suma la cantidad recibida).
Para modo directo_os:
- Se genera un movimiento con
tipo_movimiento=asignacion_directa_os. - No se actualiza stock (el material no paso por inventario).
Cuando Escalar
- Material danado. Documentar con fotos (en receipt_doc_refs_json), registrar la discrepancia, y notificar a compras para gestion con el proveedor.
- Proveedor entrega producto equivocado. No recibir el material incorrecto. Registrar discrepancia y coordinar devolucion con compras.
- Cantidad recibida excede la pendiente. El sistema rechaza la recepcion con error “cantidad_recibida excede pendiente”. Verificar contra recepciones anteriores y coordinar con compras.
- Proveedor no aparece o no entrega. Si pasan mas de 5 dias habiles desde el pago sin entrega, notificar a compras para seguimiento.
- Producto no esta en catalogo. Si el material recibido no tiene
producto_iden catalogo, solicitar alta a compras antes de registrar comoentrada_stock.
Reglas Importantes
- La opcion debe estar seleccionada. El sistema verifica que la opcion de abastecimiento este en estado
seleccionadaantes de permitir la recepcion. - El proveedor debe coincidir con la opcion. El proveedor_id de la recepcion debe ser el mismo de la opcion aprobada.
- La demanda debe estar en estado que acepte recepcion. Estados validos:
aprobada,pago_pendiente,pagada,pedida,recepcion_parcial. - No exceder la cantidad pendiente. El sistema rechaza recepciones donde
cantidad_recibida>cantidad_pendiente. - Siempre documentar la entrega. Llenar
receipt_doc_refs_jsoncon la referencia de la remision, factura o foto. - Verificar fisicamente antes de registrar. Contar el material y comparar con la descripcion y cantidad antes de ingresar la recepcion.
- Recepciones parciales son normales. No esperar a tener todo el pedido; registrar cada entrega conforme llega.
Errores Comunes
| Campo | Valor |
|---|---|
status_procesamiento | ok (exito) o error (fallo) |
error_code | Codigo del error |
error_detail | Descripcion detallada del problema |
procesado_at | Fecha y hora del procesamiento |
Errores frecuentes y solucion
| Error | Causa | Solucion |
|---|---|---|
| ”demanda_id es obligatorio” | No se selecciono la demanda | Verificar el campo demanda_id |
| ”demanda_id=X no encontrada” | El ID no existe | Verificar el ID correcto en la vista |
| ”Demanda en estado X no acepta recepcion” | La demanda no esta en estado valido | Verificar que la demanda este en pagada, pedida, o recepcion_parcial |
| ”opcion_id=X no pertenece a demanda_id=Y” | La opcion no corresponde a esta demanda | Verificar los IDs correctos |
| ”proveedor_id no coincide con la opcion recibida” | El proveedor difiere del de la opcion | Usar el proveedor_id de la opcion seleccionada |
| ”La opcion debe estar seleccionada” | La opcion no fue aprobada | Verificar con compras/direccion que la opcion fue aprobada |
| ”cantidad_recibida excede pendiente” | Se intento recibir mas de lo que falta | Verificar recepciones anteriores; la cantidad maxima es cantidad_pendiente |
| ”producto_id=X no encontrado” | El producto no existe en catalogo | Solicitar alta del producto antes de registrar |
| ”received_by_user_id invalid” | El usuario no esta activo | Verificar que la cuenta este activa en _usuarios |
| ”allocated_os_id=X no encontrada” | La OS de asignacion directa no existe | Verificar el ID correcto de la OS |
Que hacer si una fila tiene error
- Revisar los campos
error_codeyerror_detailen la fila de staging. - Corregir el dato incorrecto.
- Limpiar el campo
status_procesamiento(dejarlo vacio) para que el sistema vuelva a procesar la fila. - Esperar el siguiente ciclo de procesamiento o ejecutar manualmente.
Referencias
- Especificacion tecnica:
docs/views/int-5_almacen.yaml - Contrato autoritativo:
docs/plans/2026-03-25-compras-whatsapp-process-model.md - Arquitectura de datos:
docs/architecture/dec_001_modelo-de-datos-canonico.md - Capas de datos:
docs/architecture/dec_002_capa-canonica-y-vistas-operativas.md - Vistas por rol:
docs/architecture/dec_003_vistas-decision-support-por-rol.md