641 lines
26 KiB
YAML
641 lines
26 KiB
YAML
# TRACEABILITY - MAE-012: Compras
|
|
metadata:
|
|
modulo: MAE-012
|
|
nombre: Compras
|
|
tipo: Maestro
|
|
version: 1.0.0
|
|
fecha: 2025-12-06
|
|
reutilizacion_core: 85%
|
|
descripcion: Gestión integral del proceso de compras incluyendo requisiciones, cotizaciones, órdenes de compra y recepción de materiales
|
|
dependencias:
|
|
- MGN-001 # Usuarios y Autenticación
|
|
- MGN-002 # RBAC
|
|
- MGN-003 # Multi-tenancy
|
|
- MGN-005 # Catálogos
|
|
- MAE-013 # Inventarios
|
|
apps_moviles:
|
|
- MOB-002 # Almacenista (para recepción en campo)
|
|
|
|
# ============================================================================
|
|
# REQUERIMIENTOS FUNCIONALES
|
|
# ============================================================================
|
|
|
|
requerimientos:
|
|
- id: RF-COMP-001
|
|
titulo: Requisiciones de Compra
|
|
descripcion: Gestión de solicitudes de compra de materiales y servicios
|
|
prioridad: alta
|
|
especificaciones:
|
|
- id: ESP-COMP-001-01
|
|
descripcion: Crear requisiciones de compra con múltiples partidas
|
|
- id: ESP-COMP-001-02
|
|
descripcion: Definir proveedor sugerido, cantidad, unidad y fecha requerida
|
|
- id: ESP-COMP-001-03
|
|
descripcion: Flujo de aprobación multinivel configurable
|
|
- id: ESP-COMP-001-04
|
|
descripcion: Estados (borrador, enviada, aprobada, rechazada, convertida, cancelada)
|
|
- id: ESP-COMP-001-05
|
|
descripcion: Conversión de requisiciones aprobadas a órdenes de compra
|
|
- id: ESP-COMP-001-06
|
|
descripcion: Vinculación con proyectos y centros de costo
|
|
historias_usuario:
|
|
- id: US-COMP-001-01
|
|
titulo: Como usuario autorizado necesito crear requisiciones de compra
|
|
criterios_aceptacion:
|
|
- Seleccionar tipo de requisición (material, servicio, activo)
|
|
- Agregar partidas con descripción, cantidad y especificaciones
|
|
- Definir proveedor sugerido (opcional)
|
|
- Establecer fecha requerida y prioridad
|
|
- Adjuntar documentos de soporte
|
|
- Guardar como borrador o enviar a aprobación
|
|
- id: US-COMP-001-02
|
|
titulo: Como aprobador necesito revisar y aprobar/rechazar requisiciones
|
|
criterios_aceptacion:
|
|
- Ver lista de requisiciones pendientes de mi aprobación
|
|
- Revisar detalle completo de la requisición
|
|
- Aprobar, rechazar o solicitar modificaciones
|
|
- Agregar comentarios y observaciones
|
|
- Recibir notificación de nuevas requisiciones
|
|
- id: US-COMP-001-03
|
|
titulo: Como comprador necesito consultar requisiciones aprobadas
|
|
criterios_aceptacion:
|
|
- Ver requisiciones aprobadas pendientes de proceso
|
|
- Filtrar por fecha, solicitante, tipo, prioridad
|
|
- Agrupar requisiciones para órdenes consolidadas
|
|
- Exportar listados para análisis
|
|
tablas:
|
|
- purchasing_management.requisiciones
|
|
- purchasing_management.requisiciones_detalle
|
|
- purchasing_management.requisiciones_aprobaciones
|
|
- purchasing_management.requisiciones_documentos
|
|
endpoints:
|
|
- POST /api/v1/requisiciones
|
|
- GET /api/v1/requisiciones
|
|
- GET /api/v1/requisiciones/:id
|
|
- PUT /api/v1/requisiciones/:id
|
|
- DELETE /api/v1/requisiciones/:id
|
|
- POST /api/v1/requisiciones/:id/enviar
|
|
- POST /api/v1/requisiciones/:id/aprobar
|
|
- POST /api/v1/requisiciones/:id/rechazar
|
|
- POST /api/v1/requisiciones/:id/cancelar
|
|
- GET /api/v1/requisiciones/pendientes-aprobacion
|
|
componentes_ui:
|
|
- RequisicionesListView
|
|
- RequisicionFormModal
|
|
- RequisicionDetailView
|
|
- RequisicionApprovalPanel
|
|
- RequisicionItemsTable
|
|
- RequisicionWorkflowTimeline
|
|
- RequisicionAttachmentsPanel
|
|
integraciones:
|
|
- modulo: MGN-005
|
|
descripcion: Catálogo de proveedores, materiales y servicios
|
|
- modulo: MAE-013
|
|
descripcion: Validación de existencias antes de requisicionar
|
|
estado: pendiente
|
|
|
|
- id: RF-COMP-002
|
|
titulo: Órdenes de Compra
|
|
descripcion: Gestión completa del ciclo de vida de órdenes de compra
|
|
prioridad: alta
|
|
especificaciones:
|
|
- id: ESP-COMP-002-01
|
|
descripcion: Crear órdenes de compra manual o desde requisiciones
|
|
- id: ESP-COMP-002-02
|
|
descripcion: Definir condiciones comerciales (precio, descuentos, plazo, forma de pago)
|
|
- id: ESP-COMP-002-03
|
|
descripcion: Generar folio consecutivo automático por ejercicio
|
|
- id: ESP-COMP-002-04
|
|
descripcion: Cálculo automático de subtotales, impuestos y total
|
|
- id: ESP-COMP-002-05
|
|
descripcion: Estados (borrador, enviada, confirmada, recibida parcial, recibida total, cancelada)
|
|
- id: ESP-COMP-002-06
|
|
descripcion: Generación de documento PDF con formato personalizable
|
|
- id: ESP-COMP-002-07
|
|
descripcion: Envío automático por email al proveedor
|
|
- id: ESP-COMP-002-08
|
|
descripcion: Control de recepciones parciales y totales
|
|
historias_usuario:
|
|
- id: US-COMP-002-01
|
|
titulo: Como comprador necesito crear órdenes de compra
|
|
criterios_aceptacion:
|
|
- Seleccionar proveedor del catálogo
|
|
- Agregar partidas manualmente o desde requisiciones
|
|
- Definir precio unitario, descuentos y condiciones
|
|
- Calcular impuestos según configuración fiscal
|
|
- Especificar condiciones de pago y entrega
|
|
- Agregar notas y observaciones
|
|
- Guardar como borrador o enviar
|
|
- id: US-COMP-002-02
|
|
titulo: Como comprador necesito enviar órdenes de compra a proveedores
|
|
criterios_aceptacion:
|
|
- Generar PDF con formato corporativo
|
|
- Previsualizar documento antes de enviar
|
|
- Enviar por email al proveedor automáticamente
|
|
- Registrar fecha y hora de envío
|
|
- Reenviar si es necesario
|
|
- id: US-COMP-002-03
|
|
titulo: Como comprador necesito dar seguimiento a órdenes de compra
|
|
criterios_aceptacion:
|
|
- Ver dashboard con estado de todas las órdenes
|
|
- Consultar órdenes pendientes de recepción
|
|
- Identificar órdenes con atraso en entrega
|
|
- Generar reportes de órdenes por período
|
|
- Filtrar por proveedor, estado, proyecto
|
|
tablas:
|
|
- purchasing_management.ordenes_compra
|
|
- purchasing_management.ordenes_compra_detalle
|
|
- purchasing_management.ordenes_compra_condiciones
|
|
- purchasing_management.ordenes_compra_documentos
|
|
- purchasing_management.ordenes_compra_seguimiento
|
|
endpoints:
|
|
- POST /api/v1/ordenes-compra
|
|
- GET /api/v1/ordenes-compra
|
|
- GET /api/v1/ordenes-compra/:id
|
|
- PUT /api/v1/ordenes-compra/:id
|
|
- DELETE /api/v1/ordenes-compra/:id
|
|
- POST /api/v1/ordenes-compra/:id/enviar
|
|
- POST /api/v1/ordenes-compra/:id/confirmar
|
|
- POST /api/v1/ordenes-compra/:id/cancelar
|
|
- GET /api/v1/ordenes-compra/:id/pdf
|
|
- POST /api/v1/ordenes-compra/:id/enviar-email
|
|
- GET /api/v1/ordenes-compra/pendientes-recepcion
|
|
componentes_ui:
|
|
- OrdenesCompraListView
|
|
- OrdenCompraFormModal
|
|
- OrdenCompraDetailView
|
|
- OrdenCompraItemsTable
|
|
- OrdenCompraPDFPreview
|
|
- OrdenCompraStatusBadge
|
|
- OrdenCompraTimelineView
|
|
- OrdenCompraEmailModal
|
|
integraciones:
|
|
- modulo: RF-COMP-001
|
|
descripcion: Generación desde requisiciones aprobadas
|
|
- modulo: RF-COMP-004
|
|
descripcion: Vinculación con recepciones de material
|
|
- modulo: MGN-005
|
|
descripcion: Catálogo de proveedores y productos
|
|
estado: pendiente
|
|
|
|
- id: RF-COMP-003
|
|
titulo: Cotizaciones
|
|
descripcion: Gestión del proceso de solicitud y comparación de cotizaciones
|
|
prioridad: media
|
|
especificaciones:
|
|
- id: ESP-COMP-003-01
|
|
descripcion: Crear solicitudes de cotización a múltiples proveedores
|
|
- id: ESP-COMP-003-02
|
|
descripcion: Definir partidas a cotizar con especificaciones técnicas
|
|
- id: ESP-COMP-003-03
|
|
descripcion: Establecer fecha límite de recepción de cotizaciones
|
|
- id: ESP-COMP-003-04
|
|
descripcion: Registrar cotizaciones recibidas de proveedores
|
|
- id: ESP-COMP-003-05
|
|
descripcion: Comparar cotizaciones en tabla comparativa
|
|
- id: ESP-COMP-003-06
|
|
descripcion: Seleccionar proveedor ganador y generar orden de compra
|
|
- id: ESP-COMP-003-07
|
|
descripcion: Estados (borrador, enviada, recibiendo, evaluación, adjudicada, cancelada)
|
|
historias_usuario:
|
|
- id: US-COMP-003-01
|
|
titulo: Como comprador necesito solicitar cotizaciones a proveedores
|
|
criterios_aceptacion:
|
|
- Crear solicitud con partidas a cotizar
|
|
- Definir especificaciones técnicas requeridas
|
|
- Seleccionar proveedores a invitar
|
|
- Establecer fecha límite de respuesta
|
|
- Generar y enviar documento de solicitud
|
|
- id: US-COMP-003-02
|
|
titulo: Como comprador necesito registrar cotizaciones recibidas
|
|
criterios_aceptacion:
|
|
- Capturar cotización recibida por cada proveedor
|
|
- Registrar precios, plazos y condiciones
|
|
- Adjuntar documento de cotización (PDF)
|
|
- Marcar cotización como recibida
|
|
- Notificar recepción al solicitante
|
|
- id: US-COMP-003-03
|
|
titulo: Como comprador necesito comparar cotizaciones
|
|
criterios_aceptacion:
|
|
- Ver tabla comparativa de todas las cotizaciones
|
|
- Comparar precios unitarios y totales
|
|
- Evaluar condiciones de pago y entrega
|
|
- Identificar mejor opción por partida
|
|
- Generar cuadro comparativo para aprobación
|
|
- Seleccionar proveedor ganador
|
|
- Convertir a orden de compra
|
|
tablas:
|
|
- purchasing_management.solicitudes_cotizacion
|
|
- purchasing_management.solicitudes_cotizacion_detalle
|
|
- purchasing_management.solicitudes_cotizacion_proveedores
|
|
- purchasing_management.cotizaciones
|
|
- purchasing_management.cotizaciones_detalle
|
|
- purchasing_management.comparativo_cotizaciones
|
|
endpoints:
|
|
- POST /api/v1/cotizaciones/solicitudes
|
|
- GET /api/v1/cotizaciones/solicitudes
|
|
- GET /api/v1/cotizaciones/solicitudes/:id
|
|
- PUT /api/v1/cotizaciones/solicitudes/:id
|
|
- POST /api/v1/cotizaciones/solicitudes/:id/enviar
|
|
- POST /api/v1/cotizaciones
|
|
- GET /api/v1/cotizaciones
|
|
- GET /api/v1/cotizaciones/:id
|
|
- PUT /api/v1/cotizaciones/:id
|
|
- GET /api/v1/cotizaciones/comparativo/:solicitud_id
|
|
- POST /api/v1/cotizaciones/:id/adjudicar
|
|
componentes_ui:
|
|
- SolicitudCotizacionListView
|
|
- SolicitudCotizacionFormModal
|
|
- SolicitudCotizacionDetailView
|
|
- CotizacionFormModal
|
|
- CotizacionDetailView
|
|
- ComparativoCotizacionesTable
|
|
- CotizacionAdjudicacionModal
|
|
integraciones:
|
|
- modulo: RF-COMP-001
|
|
descripcion: Generación desde requisiciones
|
|
- modulo: RF-COMP-002
|
|
descripcion: Conversión a órdenes de compra
|
|
- modulo: MGN-005
|
|
descripcion: Catálogo de proveedores
|
|
estado: pendiente
|
|
|
|
- id: RF-COMP-004
|
|
titulo: Recepción de Materiales
|
|
descripcion: Registro y control de recepción de materiales en almacén y campo
|
|
prioridad: alta
|
|
especificaciones:
|
|
- id: ESP-COMP-004-01
|
|
descripcion: Registrar recepción completa o parcial de órdenes de compra
|
|
- id: ESP-COMP-004-02
|
|
descripcion: Validar cantidad recibida vs cantidad ordenada
|
|
- id: ESP-COMP-004-03
|
|
descripcion: Registrar diferencias, faltantes o daños
|
|
- id: ESP-COMP-004-04
|
|
descripcion: Captura de información de lote, serie, caducidad
|
|
- id: ESP-COMP-004-05
|
|
descripcion: Generación automática de entrada a inventario
|
|
- id: ESP-COMP-004-06
|
|
descripcion: Firma digital del almacenista receptor
|
|
- id: ESP-COMP-004-07
|
|
descripcion: Modo offline en app móvil con sincronización posterior
|
|
- id: ESP-COMP-004-08
|
|
descripcion: Actualización automática del estado de la orden de compra
|
|
historias_usuario:
|
|
- id: US-COMP-004-01
|
|
titulo: Como almacenista necesito registrar recepciones desde escritorio
|
|
criterios_aceptacion:
|
|
- Ver lista de órdenes pendientes de recepción
|
|
- Seleccionar orden de compra a recibir
|
|
- Registrar cantidad recibida por partida
|
|
- Capturar información de lote/serie si aplica
|
|
- Documentar diferencias o daños
|
|
- Generar comprobante de recepción
|
|
- Actualizar automáticamente inventario
|
|
- id: US-COMP-004-02
|
|
titulo: Como almacenista necesito registrar recepciones desde app móvil (MOB-002)
|
|
criterios_aceptacion:
|
|
- Consultar órdenes pendientes en dispositivo móvil
|
|
- Escanear código de barras de productos
|
|
- Registrar cantidad recibida con teclado numérico
|
|
- Capturar fotos de material recibido
|
|
- Registrar firma digital del proveedor
|
|
- Documentar incidencias (faltantes, daños)
|
|
- Trabajar en modo offline si no hay conexión
|
|
- Sincronizar recepciones al recuperar conexión
|
|
- Recibir confirmación de registro exitoso
|
|
- id: US-COMP-004-03
|
|
titulo: Como comprador necesito consultar recepciones realizadas
|
|
criterios_aceptacion:
|
|
- Ver historial de recepciones por orden
|
|
- Identificar recepciones parciales pendientes
|
|
- Consultar diferencias reportadas
|
|
- Generar reporte de materiales recibidos
|
|
- Dar seguimiento a incidencias
|
|
tablas:
|
|
- purchasing_management.recepciones
|
|
- purchasing_management.recepciones_detalle
|
|
- purchasing_management.recepciones_incidencias
|
|
- purchasing_management.recepciones_documentos
|
|
endpoints:
|
|
- POST /api/v1/recepciones
|
|
- GET /api/v1/recepciones
|
|
- GET /api/v1/recepciones/:id
|
|
- PUT /api/v1/recepciones/:id
|
|
- GET /api/v1/recepciones/orden-compra/:oc_id
|
|
- POST /api/v1/recepciones/:id/incidencia
|
|
- POST /api/v1/recepciones/:id/firmar
|
|
- POST /api/v1/recepciones/sync # Para sincronización móvil
|
|
componentes_ui:
|
|
- RecepcionesListView
|
|
- RecepcionFormModal
|
|
- RecepcionDetailView
|
|
- RecepcionItemsTable
|
|
- RecepcionIncidenciasPanel
|
|
- RecepcionSignaturePad
|
|
- RecepcionPhotoGallery
|
|
app_movil: MOB-002
|
|
funcionalidades_movil:
|
|
- Consultar órdenes pendientes de recepción
|
|
- Escanear códigos de barras/QR
|
|
- Registrar cantidades recibidas
|
|
- Capturar fotos de materiales
|
|
- Registrar firma digital del proveedor
|
|
- Documentar incidencias (faltantes, daños)
|
|
- Modo offline con almacenamiento local
|
|
- Sincronización automática en background
|
|
- Notificaciones push de nuevas órdenes
|
|
integraciones:
|
|
- modulo: RF-COMP-002
|
|
descripcion: Actualización de estado de órdenes de compra
|
|
- modulo: MAE-013
|
|
descripcion: Generación de entradas a inventario
|
|
- modulo: MOB-002
|
|
descripcion: Registro de recepciones en campo
|
|
estado: pendiente
|
|
|
|
# ============================================================================
|
|
# APLICACIÓN MÓVIL
|
|
# ============================================================================
|
|
|
|
app_movil:
|
|
id: MOB-002
|
|
nombre: Almacenista
|
|
descripcion: Aplicación móvil para almacenistas en campo y almacén
|
|
plataformas:
|
|
- Android
|
|
- iOS
|
|
tecnologias:
|
|
- React Native
|
|
- Expo
|
|
- SQLite (offline storage)
|
|
- Axios (API sync)
|
|
- React Native Camera
|
|
- React Native Signature Capture
|
|
funcionalidades:
|
|
- login_offline: Autenticación con modo offline
|
|
- consulta_ordenes: Consulta de órdenes pendientes de recepción
|
|
- escaneo_codigos: Escaneo de códigos de barras y QR
|
|
- registro_recepciones: Registro de recepciones con cantidades
|
|
- captura_fotos: Captura de fotografías de materiales
|
|
- firma_digital: Captura de firma del proveedor
|
|
- documentar_incidencias: Registro de faltantes y daños
|
|
- sincronizacion: Sincronización automática con servidor
|
|
- notificaciones_push: Notificaciones de nuevas órdenes
|
|
- modo_offline: Funcionamiento sin conexión
|
|
requerimientos_vinculados:
|
|
- RF-COMP-002 # Consulta de órdenes de compra
|
|
- RF-COMP-004 # Recepción de materiales
|
|
estado: pendiente
|
|
|
|
# ============================================================================
|
|
# ESQUEMAS DE BASE DE DATOS
|
|
# ============================================================================
|
|
|
|
esquemas:
|
|
- nombre: purchasing_management
|
|
descripcion: Esquema para gestión de compras
|
|
tablas:
|
|
- requisiciones
|
|
- requisiciones_detalle
|
|
- requisiciones_aprobaciones
|
|
- requisiciones_documentos
|
|
- ordenes_compra
|
|
- ordenes_compra_detalle
|
|
- ordenes_compra_condiciones
|
|
- ordenes_compra_documentos
|
|
- ordenes_compra_seguimiento
|
|
- solicitudes_cotizacion
|
|
- solicitudes_cotizacion_detalle
|
|
- solicitudes_cotizacion_proveedores
|
|
- cotizaciones
|
|
- cotizaciones_detalle
|
|
- comparativo_cotizaciones
|
|
- recepciones
|
|
- recepciones_detalle
|
|
- recepciones_incidencias
|
|
- recepciones_documentos
|
|
|
|
# ============================================================================
|
|
# POLÍTICAS RLS
|
|
# ============================================================================
|
|
|
|
rls_policies:
|
|
archivo: ET-COMP-rls-policies.sql
|
|
descripcion: Políticas de seguridad a nivel de fila para multi-tenancy
|
|
tablas_protegidas:
|
|
- purchasing_management.requisiciones
|
|
- purchasing_management.ordenes_compra
|
|
- purchasing_management.cotizaciones
|
|
- purchasing_management.recepciones
|
|
|
|
# ============================================================================
|
|
# REPORTES
|
|
# ============================================================================
|
|
|
|
reportes:
|
|
- id: REP-COMP-001
|
|
nombre: Requisiciones por Estado
|
|
descripcion: Listado de requisiciones agrupadas por estado
|
|
parametros: [fecha_inicio, fecha_fin, estado, solicitante_id]
|
|
- id: REP-COMP-002
|
|
nombre: Órdenes de Compra Emitidas
|
|
descripcion: Detalle de órdenes de compra emitidas por período
|
|
parametros: [fecha_inicio, fecha_fin, proveedor_id, proyecto_id]
|
|
- id: REP-COMP-003
|
|
nombre: Órdenes Pendientes de Recepción
|
|
descripcion: Órdenes con recepciones parciales o pendientes
|
|
parametros: [dias_atraso, proveedor_id, almacen_id]
|
|
- id: REP-COMP-004
|
|
nombre: Comparativo de Cotizaciones
|
|
descripcion: Cuadro comparativo de cotizaciones recibidas
|
|
parametros: [solicitud_cotizacion_id]
|
|
- id: REP-COMP-005
|
|
nombre: Incidencias en Recepciones
|
|
descripcion: Reporte de faltantes y daños en recepciones
|
|
parametros: [fecha_inicio, fecha_fin, tipo_incidencia, proveedor_id]
|
|
- id: REP-COMP-006
|
|
nombre: Análisis de Compras por Proveedor
|
|
descripcion: Estadísticas de compras realizadas por proveedor
|
|
parametros: [fecha_inicio, fecha_fin, proveedor_id]
|
|
|
|
# ============================================================================
|
|
# NOTIFICACIONES
|
|
# ============================================================================
|
|
|
|
notificaciones:
|
|
- evento: requisicion_enviada
|
|
destinatarios: [aprobadores, jefe_compras]
|
|
canal: [email, app]
|
|
- evento: requisicion_aprobada
|
|
destinatarios: [solicitante, comprador_asignado]
|
|
canal: [email, app]
|
|
- evento: requisicion_rechazada
|
|
destinatarios: [solicitante]
|
|
canal: [email, app]
|
|
- evento: orden_compra_creada
|
|
destinatarios: [proveedor, solicitante]
|
|
canal: [email]
|
|
- evento: orden_compra_enviada
|
|
destinatarios: [proveedor, almacenista]
|
|
canal: [email]
|
|
- evento: orden_pendiente_recepcion
|
|
destinatarios: [almacenista]
|
|
canal: [app, push_movil]
|
|
- evento: recepcion_registrada
|
|
destinatarios: [comprador, solicitante]
|
|
canal: [app]
|
|
- evento: incidencia_recepcion
|
|
destinatarios: [comprador, jefe_almacen]
|
|
canal: [email, app]
|
|
- evento: cotizacion_venciendo
|
|
destinatarios: [comprador]
|
|
canal: [email, app]
|
|
|
|
# ============================================================================
|
|
# MÉTRICAS Y KPIs
|
|
# ============================================================================
|
|
|
|
metricas:
|
|
- nombre: tiempo_aprobacion_requisiciones
|
|
descripcion: Tiempo promedio de aprobación de requisiciones
|
|
unidad: horas
|
|
objetivo: "< 24 horas"
|
|
- nombre: tasa_rechazo_requisiciones
|
|
descripcion: Porcentaje de requisiciones rechazadas
|
|
unidad: porcentaje
|
|
objetivo: "< 10%"
|
|
- nombre: cumplimiento_entregas
|
|
descripcion: Porcentaje de órdenes entregadas a tiempo
|
|
unidad: porcentaje
|
|
objetivo: "> 90%"
|
|
- nombre: ahorro_por_cotizaciones
|
|
descripcion: Ahorro obtenido por proceso de cotización
|
|
unidad: porcentaje
|
|
objetivo: "> 8%"
|
|
- nombre: incidencias_recepcion
|
|
descripcion: Porcentaje de recepciones con incidencias
|
|
unidad: porcentaje
|
|
objetivo: "< 5%"
|
|
- nombre: tiempo_registro_recepcion
|
|
descripcion: Tiempo promedio de registro de recepción
|
|
unidad: minutos
|
|
objetivo: "< 15 minutos"
|
|
|
|
# ============================================================================
|
|
# VALIDACIONES Y REGLAS DE NEGOCIO
|
|
# ============================================================================
|
|
|
|
reglas_negocio:
|
|
- codigo: RN-COMP-001
|
|
descripcion: Toda requisición debe tener al menos un aprobador asignado
|
|
- codigo: RN-COMP-002
|
|
descripcion: No se puede crear orden de compra sin requisición aprobada o autorización especial
|
|
- codigo: RN-COMP-003
|
|
descripcion: El total de la orden de compra debe calcularse con impuestos según configuración fiscal
|
|
- codigo: RN-COMP-004
|
|
descripcion: Las cotizaciones deben tener al menos 3 proveedores para compras mayores a monto configurado
|
|
- codigo: RN-COMP-005
|
|
descripcion: La cantidad recibida puede ser menor o igual a la ordenada, nunca mayor
|
|
- codigo: RN-COMP-006
|
|
descripcion: Toda recepción con incidencias debe generar notificación al comprador
|
|
- codigo: RN-COMP-007
|
|
descripcion: Las recepciones parciales deben actualizar el estado de la orden a "recibida parcial"
|
|
|
|
# ============================================================================
|
|
# SEGURIDAD
|
|
# ============================================================================
|
|
|
|
seguridad:
|
|
permisos:
|
|
- compras.requisiciones.crear
|
|
- compras.requisiciones.leer
|
|
- compras.requisiciones.editar
|
|
- compras.requisiciones.eliminar
|
|
- compras.requisiciones.aprobar
|
|
- compras.ordenes.crear
|
|
- compras.ordenes.leer
|
|
- compras.ordenes.editar
|
|
- compras.ordenes.eliminar
|
|
- compras.ordenes.enviar
|
|
- compras.cotizaciones.crear
|
|
- compras.cotizaciones.leer
|
|
- compras.cotizaciones.evaluar
|
|
- compras.recepciones.crear
|
|
- compras.recepciones.leer
|
|
- compras.recepciones.firmar
|
|
- compras.reportes.generar
|
|
roles_sugeridos:
|
|
- nombre: solicitante
|
|
permisos: [compras.requisiciones.crear, compras.requisiciones.leer]
|
|
- nombre: aprobador
|
|
permisos: [compras.requisiciones.leer, compras.requisiciones.aprobar]
|
|
- nombre: comprador
|
|
permisos: [compras.requisiciones.*, compras.ordenes.*, compras.cotizaciones.*]
|
|
- nombre: almacenista
|
|
permisos: [compras.ordenes.leer, compras.recepciones.*]
|
|
- nombre: jefe_compras
|
|
permisos: [compras.*]
|
|
|
|
# ============================================================================
|
|
# PRUEBAS
|
|
# ============================================================================
|
|
|
|
pruebas:
|
|
unitarias:
|
|
- validar_flujo_aprobacion_requisiciones
|
|
- calcular_totales_orden_compra
|
|
- validar_cantidad_recibida_vs_ordenada
|
|
- procesar_sincronizacion_movil
|
|
integracion:
|
|
- flujo_completo_requisicion_a_orden
|
|
- proceso_cotizacion_y_adjudicacion
|
|
- recepcion_y_actualizacion_inventario
|
|
- sincronizacion_app_movil_offline
|
|
e2e:
|
|
- proceso_completo_compra_material
|
|
- aprobacion_multinivel_requisiciones
|
|
- recepcion_movil_con_incidencias
|
|
- comparativo_cotizaciones_y_adjudicacion
|
|
|
|
# ============================================================================
|
|
# CRONOGRAMA ESTIMADO
|
|
# ============================================================================
|
|
|
|
cronograma:
|
|
- fase: Análisis y Diseño
|
|
duracion: 2 semanas
|
|
entregables: [modelos_datos, diagramas_flujo, especificaciones_api]
|
|
- fase: Desarrollo Backend
|
|
duracion: 5 semanas
|
|
entregables: [api_requisiciones, api_ordenes, api_cotizaciones, api_recepciones, rls_policies]
|
|
- fase: Desarrollo Frontend
|
|
duracion: 4 semanas
|
|
entregables: [ui_requisiciones, ui_ordenes, ui_cotizaciones, ui_recepciones]
|
|
- fase: Desarrollo App Móvil
|
|
duracion: 3 semanas
|
|
entregables: [app_almacenista_mob002, modo_offline, sincronizacion]
|
|
- fase: Integración
|
|
duracion: 2 semanas
|
|
entregables: [integracion_inventarios, integracion_catalogos]
|
|
- fase: Pruebas
|
|
duracion: 2 semanas
|
|
entregables: [pruebas_unitarias, pruebas_integracion, pruebas_usuario, pruebas_movil]
|
|
- fase: Documentación y Capacitación
|
|
duracion: 1 semana
|
|
entregables: [manual_usuario, manual_tecnico, manual_app_movil, videos_capacitacion]
|
|
|
|
# ============================================================================
|
|
# NOTAS DE IMPLEMENTACIÓN
|
|
# ============================================================================
|
|
|
|
notas:
|
|
- Priorizar desarrollo de RF-COMP-001 y RF-COMP-002 (flujo básico de compras)
|
|
- Desarrollar app móvil MOB-002 en paralelo con RF-COMP-004 (recepciones)
|
|
- Implementar sincronización offline-online robusta para app móvil
|
|
- Considerar integración futura con proveedores vía EDI o API
|
|
- Evaluar uso de códigos QR para trazabilidad de materiales
|
|
- La app MOB-002 es crítica para recepción en campo, priorizar su estabilidad
|
|
- Documentar protocolo de resolución de conflictos en sincronización offline
|
|
- Implementar versionado de recepciones para auditoría completa
|