UNIVERSIDAD NACIONAL DEL ALTIPLANO · INGENIERÍA DE SISTEMAS INFORME DE PROYECTO

MÓDULO OMS
Gestión de Órdenes de Pedido

Proyecto de Gestión de Cadena de Suministro aplicado a un supermercado.

Equipo de proyectoWilian Yuber Condori Ccama
Juan Mamani Pari
Mayk Oliver Pilco Supo
Ronald Vargas Ccoa
CursoAnálisis y Diseño de AlgoritmosDocenteIng. Zulema Lilian Mamani Huacani
Semestre2026-II
Escudo de la Universidad Nacional del Altiplano
Puno · Perú · 2026

Justificación: el problema no es guardar pedidos, sino coordinarlos

Solicitudcliente, SKU y cantidades
→
Disponibilidadstock físico − reservado
→
Confirmacióntodo el pedido o pendiente
→
Preparaciónprioridad por límite y registro

En un supermercado, una orden atraviesa varias áreas. Si atención, inventario y almacén trabajan con información distinta, aparecen errores: se promete mercadería que ya estaba reservada, se pierde el seguimiento del estado o se prepara primero un pedido que tiene un plazo menos urgente.

El módulo OMS mantiene un registro común y aplica reglas antes de modificar el inventario. Esto permite saber qué se pidió, qué se confirmó, qué quedó pendiente, qué está en preparación y qué ya fue despachado o entregado.

Disponible=Stock físico−Stock reservado

Objetivo del proyecto y qué debe demostrar

Diseñar un módulo OMS para un supermercado que permita registrar y validar pedidos, controlar la reserva de productos, ordenar la preparación y seguir el estado de cada pedido mediante algoritmos y estructuras de datos apropiados.
AnálisisEntradas, salidas, responsables, reglas y restricciones.
DiseñoPseudocódigo, diagrama de flujo, estructuras y criterio de orden.
AlgoritmosBúsqueda, ordenamiento, validación, filtrado y control de estados.
EficienciaTiempo, memoria auxiliar y límites del diseño.
ImplementaciónPrototipo planteado en C++ y pruebas verificables.
Gestión del proyectoCronograma, presupuesto, Gantt, referencias y anexos.

El OMS dentro de la cadena de suministro

El OMS mantiene la orden del cliente coherente mientras pasa por distintas áreas. Atención registra la solicitud, Inventario informa la disponibilidad, Almacén prepara y despacha, Transporte continúa la entrega y Abastecimiento repone existencias cuando aparecen faltantes.

INVENTARIO · RELACIÓN CRÍTICA

Determina si el pedido puede confirmarse sin comprometer unidades ya reservadas

AportaSKU, precio, stock físico y stock reservado.

El OMS registrareservas al confirmar y salidas al despachar.

ReglaDisponible = Físico − Reservado.

Análisis del problema: actores, entradas, salidas y alcance

Actores

Operador de atención: registra, consulta y cancela dentro de las reglas. Almacén y despacho: consulta la lista de preparación y actualiza preparación, despacho y entrega. Administrador: carga catálogo, actualiza existencias y revisa resúmenes.

Entradas

Cliente, momento de registro, límite de preparación, SKU, cantidades, catálogo, ID de pedido, acción y responsable.

Salidas

ID correlativo, total, estado, motivo de faltante, lista ordenada de confirmados, historial y resumen por estado.

Alcance

Una sola sede, datos simulados y pedidos completos. El OMS coordina con inventario, almacén, despacho y el traspaso hacia transporte; quedan fuera pagos, compra a proveedores, optimización de rutas y vehículos, lotes, vencimientos, devoluciones posteriores al despacho y concurrencia entre varias cajas.

Requerimientos y restricciones que condicionan el diseño

Requerimientos funcionales

RF01–RF03. Registrar un ID único, validar el detalle y localizar SKU en un catálogo ordenado.

RF04–RF07. Calcular total, reservar todo o nada, ordenar confirmados y consultar pedidos por ID.

RF08–RF12. Controlar estados, cancelar con liberación, despachar una sola vez, reintentar pendientes y guardar consistentemente.

Restricciones e invariantes

Hasta 2 000 productos, 1 000 pedidos y 50 líneas por pedido; de 1 a 999 unidades por SKU agrupado.

No se permiten entregas parciales ni sustituciones automáticas. Si falta un producto, el pedido queda pendiente.

0 ≤ reservado ≤ físico
disponible = físico − reservado

Estructuras de datos y ciclo de vida de la orden

Catálogo de productos

Vector ordenado por SKU con nombre, precio, stock físico y stock reservado.

Registro de pedidos

Cabecera, detalle normalizado e historial; conserva el orden de registro.

Detalle del pedido

Una línea por SKU después de agrupar productos repetidos.

Lista de preparación

Referencias a pedidos confirmados, ordenadas sin copiar el pedido completo.

Vector auxiliar

Memoria temporal usada durante la mezcla de Merge Sort.

Arrastra horizontalmente y toca una etapa para ver qué controla el OMS.
Control del OMSValidar cabecera, detalle, SKU y cantidades.
Dato que cambiaSe crea el ID y el historial inicial.
Regla importanteUn dato inválido se rechaza antes de modificar inventario.

Diseño algorítmico del OMS

El diseño combina secuencia para registrar, condiciones para aceptar o rechazar operaciones, ciclos para recorrer productos y pedidos, y recursividad para ordenar. Merge Sort no decide quién recibe stock escaso: la reserva ocurre antes; el ordenamiento organiza únicamente los pedidos ya confirmados.

ARRASTRA HORIZONTALMENTE PARA EXPLORAR LOS ALGORITMOS Y PROCEDIMIENTOS
ALGORITMOBúsqueda binaria

Localiza un SKU en el catálogo de productos ordenado.

O(log m)
PROCEDIMIENTONormalización de detalle

Merge Sort por SKU + recorrido para unificar repetidos.

O(k log k)
PROCEDIMIENTOValidación y reserva en dos pasadas

Comprueba todo y después reserva todo.

O(u)
PROCEDIMIENTOFiltro de confirmados

Construye la lista de preparación desde el registro de pedidos.

O(N)
ALGORITMOMerge Sort

Ordena la lista de preparación por límite y registro de forma estable.

O(q log q)
ALGORITMOBúsqueda lineal

Localiza un pedido por ID en el registro de pedidos.

O(N)
PROCEDIMIENTOControl de transiciones

Autoriza únicamente cambios de estado permitidos.

O(1)*

Pseudocódigo de registro y diagrama de flujo

PROCEDIMIENTO DEL OMS · REGISTRAR_PEDIDO

Lógica del registro antes de modificar inventario

El pseudocódigo resume la secuencia principal del módulo: validar, normalizar, localizar productos, calcular el total, intentar confirmar y guardar un estado coherente.

REGISTRAR_PEDIDO(datos, catalogo, pedidos)
  validar cabecera y líneas
  detalle = NORMALIZAR_DETALLE(datos.detalle)
  para cada línea de detalle:
      pos = BUSCAR_PRODUCTO(catalogo, línea.SKU)
      fijar precio y acumular total
  crear pedido con estado RECIBIDO
  INTENTAR_CONFIRMAR(pedido, catalogo)
  guardar pedido, inventario e ID siguiente
  devolver ID, estado, total y observaciones
Validación previa

Un dato incorrecto termina la operación antes de tocar existencias o reservas.

Reserva completa

Si falta un SKU, el pedido queda pendiente y no se inmoviliza una parte del pedido.

Consistencia

Pedido, inventario e identificador siguiente deben conservarse como un mismo estado lógico.

Diagrama de flujo del registro de pedido
Toca la imagen para ampliarla.
ALGORITMO · BÚSQUEDA

Búsqueda binaria

Uso en el OMS: localizar un SKU dentro del catálogo de productos previamente ordenado.

O(log m)
Producto objetivo:
0 comparaciones12 elementos en el intervaloen búsqueda resultado OMS
1001Arroz
1002Leche
1003Aceite
1004Azúcar
1005Fideos
1006Atún
1007Harina
1008Avena
1009Café
1010Sal
1011Galletas
1012Jabón
Catálogo ordenado

Cada comparación toma el elemento central. Según el resultado, el OMS descarta la mitad que ya no puede contener el SKU.

PROCEDIMIENTO DEL OMS

Normalización de detalle

Usa Merge Sort por SKU y después un recorrido para consolidar productos repetidos.

O(k log k)
4 líneas de entrada4 líneas actualesen proceso resultado OMS
SKU 1001Arroz × 2
SKU 1002Leche × 4
SKU 1001Arroz × 3
SKU 1003Aceite × 2
Entrada original del pedido
Antes de validar stock

El pedido puede repetir un producto en líneas distintas. Validarlas por separado puede ocultar la cantidad total solicitada.

PROCEDIMIENTO DEL OMS

Validación y reserva en dos pasadas

Primero verifica todos los SKU; solo después modifica las reservas.

O(u)
0 SKU revisados0 SKU reservadossin ejecutar resultado OMS
ArrozSKU 1001
Físico 30Reservado 8Disponible 22
Pedido: 5
LecheSKU 1002
Físico 20Reservado 5Disponible 15
Pedido: 4
AceiteSKU 1003
Físico 10Reservado 2Disponible 8
Pedido: 2
Reserva completa

Primero se comprueba el pedido completo. Solo si no existe ningún faltante se modifica el stock reservado.

PROCEDIMIENTO DEL OMS

Filtro de pedidos confirmados

Construye la lista de preparación con los pedidos que realmente pueden pasar a almacén.

O(N)
0 pedidos revisados3 confirmadossin ejecutar resultado OMS
P101CONFIRMADOLímite 10:00
P102PENDIENTELímite 09:30
P103CONFIRMADOLímite 10:00
P104EN PREPARACIÓNLímite 09:45
P105CONFIRMADOLímite 09:30
P106CANCELADOLímite 09:30
Lista de preparaciónsolo confirmados
Razón para filtrar antes de ordenar

Merge Sort no debe considerar cancelados, pendientes ni pedidos que ya están en preparación. El filtro entrega únicamente los confirmados vigentes.

ALGORITMO · ORDENAMIENTO RECURSIVO

Merge Sort

Uso en el OMS: ordenar la lista de preparación por límite de preparación y luego por momento de registro.

O(q log q)
0 comparaciones0 mezclas completadasen proceso resultado OMS
Lista original
P10110:0009:00
P10209:3009:02
P10310:0009:04
P10409:4509:05
P10509:3009:06
P10609:3009:06
P105misma claveP106Conservan el orden de ingreso
Criterio de orden: límite y registro

El OMS toma solo pedidos confirmados y prioriza el límite de preparación; el registro sirve de desempate.

ALGORITMO · BÚSQUEDA

Búsqueda lineal

Uso en el OMS: localizar un pedido por ID dentro del vector de pedidos.

O(N)
Objetivo: P202
0 pedidos revisadosNo coincidenciaen recorrido resultado OMS
0P198
1P199
2P200
3P201
4P202
5P203
El vector conserva el orden de registro

La búsqueda compara cada identificador hasta encontrar el objetivo o llegar al final.

PROCEDIMIENTO DEL OMS

Control de transiciones de estado

Autoriza únicamente cambios definidos por las reglas del pedido.

O(1)*
Estado actual: RECIBIDO
0 intentos0 transiciones registradasRECIBIDO estado OMS
Secuencia principal: RECIBIDO, CONFIRMADO, EN PREPARACIÓN, LISTO, DESPACHADO y ENTREGADO.
RECIBIDO
Estado inicial: RECIBIDO

Los estados resaltados son los únicos destinos permitidos desde el estado actual.

Eficiencia y estructura tecnológica

OperaciónTiempoMemoria
Merge Sort de la listaO(q log q)O(q)
Búsqueda binariaO(log m)O(1)
Búsqueda linealO(N)O(1)
NormalizaciónO(k log k)O(k)
Validación + reservaO(u)O(u)

Estructura tecnológica

C++: implementación de los algoritmos, estructuras de datos y reglas principales del OMS.

ASP.NET Core + Blazor (.NET 10): interfaz interactiva, manejo de estado y eventos táctiles.

HTML + CSS: estructura visual, distribución de las diapositivas y adaptación a pantalla grande.

JavaScript: pantalla completa, ampliación de diagramas y desplazamientos automáticos.

Visual Studio: edición, compilación y depuración del proyecto.

Ubuntu 26.04 + Nginx: entorno de ejecución y servidor web para la aplicación.

Plan de pruebas y criterios de aceptación

T01 · P201Confirmado; total S/ 58.90; reservas correctas.
T03 · P202Pendiente por falta de aceite; ninguna reserva parcial.
T04–T06Cantidad inválida, SKU inexistente o límite incorrecto → rechazo sin modificar inventario.
T08 · Merge SortP102, P105, P106, P104, P101, P103; se conserva el empate.
T10–T11Cancelar o despachar una sola vez; no duplicar liberaciones ni descuentos.
T13–T16Bloquear transiciones inválidas y comprobar persistencia, límites y catálogo.
Reservado nunca supera físicoLa lista no pierde ni duplica pedidosOrden correcto y estableEl guardado recupera el último estado válido

Cronograma de actividades y diagrama de Gantt

ActividadInicioFinProducto esperado
Investigación preliminar06/1011/10Fuentes y alcance
Análisis del problema12/1018/10Requerimientos y reglas
Diseño de algoritmos19/1025/10Pseudocódigo y diagramas
Análisis de eficiencia26/1001/11Tiempo, memoria y límites
Implementación02/1115/11Prototipo local en C++
Pruebas y depuración16/1122/11Evidencias y correcciones
Documentación06/1029/11Informe actualizado
Revisión y presentación30/1104/12Entrega y exposición

Presupuesto actualizado para implementación y demostración

Esta estimación corresponde a la etapa completa del proyecto: análisis, implementación, pruebas, integración de la interfaz interactiva y recursos técnicos de demostración. Se diferencia el desembolso previsto del aporte humano valorizado.

Impresión y anilladoS/ 50.00
Coordinación y trasladosS/ 64.00
Energía y conectividadS/ 120.00
Infraestructura web y dominioS/ 100.00
Respaldo y materialesS/ 45.00
Imprevistos 10%S/ 37.90
Desembolso estimadoS/ 416.90servicios, materiales, conectividad y presentación Aporte humano valorizadoS/ 1 440.004 integrantes × 24 h × S/ 15.00 Costo referencial actualizado: S/ 1 856.90 Las 96 horas totales del equipo mantienen la carga prevista en el cronograma; se actualiza la valorización y los recursos técnicos.

Referencias y anexos: cómo se documenta el funcionamiento del OMS

2025

Amorim, Eng-Larsson & Rooderkerk

Fallas en el cumplimiento de pedidos y efecto sobre compras posteriores. Journal of Retailing, 101(3), 382–408.

10.1016/j.jretai.2025.04.008
2016

Paira, Chandra & Alam

Trabajo sobre el proceso de división y mezcla de Merge Sort. Procedia Computer Science, 93, 982–987.

10.1016/j.procs.2016.07.292
2024

Prencipe et al.

Relación entre datos de pedidos, OMS, almacén y distribución de compras de alimentos. Research in Transportation Economics, 104, 101429.

10.1016/j.retrec.2024.101429
Escudo UNA
MÓDULO OMS · GESTIÓN DE ÓRDENES DE PEDIDO

Gracias por su atención

Pasemos a la demostración

ABRIR DEMOSTRACIÓN oms.sistemas.lat
Código QR para abrir oms.sistemas.latEscanea para abrir la demostración
Toca el enlace o escanea el código QR.