workspace-v1/projects/erp-construccion/docs/02-definicion-modulos/MAI-004-compras-inventarios/requerimientos/RF-PURCH-002-requisiciones-ordenes-compra.md
rckrdmrd 66161b1566 feat: Workspace-v1 complete migration with NEXUS v3.4
Sistema NEXUS v3.4 migrado con:

Estructura principal:
- core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles)
- core/catalog: Catalogo de funcionalidades reutilizables
- shared/knowledge-base: Base de conocimiento compartida
- devtools/scripts: Herramientas de desarrollo
- control-plane/registries: Control de servicios y CI/CD
- orchestration/: Configuracion de orquestacion de agentes

Proyectos incluidos (11):
- gamilit (submodule -> GitHub)
- trading-platform (OrbiquanTIA)
- erp-suite con 5 verticales:
  - erp-core, construccion, vidrio-templado
  - mecanicas-diesel, retail, clinicas
- betting-analytics
- inmobiliaria-analytics
- platform_marketing_content
- pos-micro, erp-basico

Configuracion:
- .gitignore completo para Node.js/Python/Docker
- gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git)
- Sistema de puertos estandarizado (3005-3199)

Generated with NEXUS v3.4 Migration System
EPIC-010: Configuracion Git y Repositorios
2026-01-04 03:37:42 -06:00

8.9 KiB

RF-PURCH-002: Requisiciones y Órdenes de Compra

Épica: MAI-004 - Compras e Inventarios Versión: 1.0 Fecha: 2025-11-17


1. Descripción General

Sistema de requisiciones desde obra y generación automatizada de órdenes de compra con flujos de aprobación, vinculación a presupuesto, control de entregas parciales y registro de facturas.


2. Objetivos de Negocio

  • Trazabilidad: Cada compra vinculada a proyecto, partida presupuestal y requisición
  • Control: Flujos de aprobación según montos
  • Eficiencia: Generación automática de OC desde cotizaciones
  • Transparencia: Historial completo de autorizaciones

3. Alcance Funcional

3.1 Requisiciones desde Obra

Formulario:

┌──────────────────────────────────────────────┐
│ NUEVA REQUISICIÓN                            │
├──────────────────────────────────────────────┤
│ Proyecto: [Fracc. Los Pinos ▼]              │
│ Solicitante: Ing. Pedro Ramírez (Residente)  │
│ Fecha necesaria: [25/Nov/2025]              │
│ Urgencia: [●] Normal  [ ] Urgente           │
│                                              │
│ Materiales:                [+ Agregar]       │
│ ┌────────────────┬────────┬──────┬─────────┐│
│ │ Material       │ Cant.  │ Unid │ Presup. ││
│ ├────────────────┼────────┼──────┼─────────┤│
│ │ Cemento CPC 30R│ 120    │ ton  │ $516K   ││
│ │ Grava 3/4"     │ 85     │ m³   │ $32.3K  ││
│ └────────────────┴────────┴──────┴─────────┘│
│                                              │
│ Justificación: *                             │
│ [Cimentación etapa 2 según programa]        │
│                                              │
│           [Guardar Borrador]  [Enviar]       │
└──────────────────────────────────────────────┘

Validaciones:

  • Material existe en presupuesto del proyecto
  • Cantidad no excede pendiente por ejercer
  • Fecha necesaria >= hoy + lead time proveedor

3.2 Flujos de Aprobación

Matriz de Autorización:

Monto Aprobador 1 Aprobador 2 Aprobador 3
<$50K Residente - -
$50K-$200K Residente Gerente Compras -
$200K-$500K Residente Gerente Compras Director Proyectos
>$500K Residente Gerente Compras Dirección General

Estados de Requisición:

draft → pending_approval → approved → quoted → ordered → received
          ↓
        rejected (con motivo)

3.3 Órdenes de Compra

Generación Automática:

  • Desde cotización aprobada
  • Datos pre-llenados: proveedor, materiales, precios, condiciones
  • Numeración secuencial: OC-2025-00145

Estructura de OC:

╔═══════════════════════════════════════════════════════╗
║ ORDEN DE COMPRA #OC-2025-00145                        ║
╠═══════════════════════════════════════════════════════╣
║ Fecha: 15/Nov/2025             Folio: OC-2025-00145   ║
║ Proveedor: Cemex México S.A.                          ║
║ RFC: CEM850101ABC                                     ║
║ Contacto: Juan Pérez - 81-8888-1234                   ║
║                                                       ║
║ Proyecto: Fraccionamiento Los Pinos                   ║
║ Lugar entrega: Av. Los Pinos #100, Monterrey, N.L.   ║
║ Fecha entrega requerida: 25/Nov/2025                  ║
║                                                       ║
╠═══════════════════════════════════════════════════════╣
║ Partida │ Descripción        │ Cant │ U │ PU   │ Total║
╠═════════╪════════════════════╪══════╪═══╪══════╪══════╣
║ 1       │ Cemento CPC 30R    │ 120  │ton│$4,350│$522K ║
║ 2       │ Grava 3/4"         │ 85   │m³ │$380  │$32.3K║
║ 3       │ Arena              │ 100  │m³ │$295  │$29.5K║
╠═════════╧════════════════════╧══════╧═══╧══════╧══════╣
║ Subtotal:                                    $583,800  ║
║ IVA (16%):                                   $93,408   ║
║ TOTAL:                                       $677,208  ║
╠═══════════════════════════════════════════════════════╣
║ Condiciones:                                          ║
║ • Forma de pago: 30 días fecha factura                ║
║ • Entrega: LAB (libre a bordo) en obra                ║
║ • Descuento pronto pago: 2% a 10 días                 ║
║ • Garantía: 30 días                                   ║
║                                                       ║
║ Autorizado por: Gerente de Compras                    ║
║ Firma: _______________________                        ║
╚═══════════════════════════════════════════════════════╝

3.4 Recepción de Material

Proceso:

  1. Proveedor entrega material
  2. Almacenista registra entrada
  3. Vincula a OC
  4. Puede ser parcial o completa

Ejemplo Recepción Parcial:

OC-2025-00145: Cemento CPC 30R
Ordenado: 120 ton
Recibido: 80 ton (66.7%)
Pendiente: 40 ton

Status: Parcialmente recibida
Próxima entrega: 22/Nov/2025

3.5 Registro de Facturas

Vinculación OC → Factura:

Factura: A-12345
Proveedor: Cemex
Fecha: 20/Nov/2025
UUID: 1234-5678-90AB-CDEF

Vinculada a:
  OC-2025-00145: $677,208
  Recibido: 80 ton (entrega parcial)
  Monto factura: $451,472 (80/120 de $677K)

Status pago:
  Fecha vencimiento: 20/Dic/2025 (30 días)
  Descuento PP (2%): Disponible hasta 30/Nov
  Status: Pendiente

4. Casos de Uso Principales

CU-001: Crear Requisición

Actor: Residente de Obra Flujo:

  1. Accede a proyecto
  2. Crea requisición con 3 materiales
  3. Sistema valida contra presupuesto
  4. Envía a aprobación
  5. Gerente Compras aprueba en 2h
  6. Genera RFQ automáticamente

CU-002: Aprobar OC

Actor: Gerente de Compras Flujo:

  1. Recibe 3 cotizaciones
  2. Compara y selecciona mejor
  3. Sistema genera OC-2025-00145
  4. Revisa condiciones
  5. Aprueba OC
  6. Sistema envía email a proveedor con PDF

5. Modelo de Datos

// requisitions
{
  id: UUID,
  code: VARCHAR(20),
  projectId: UUID,
  requestedBy: UUID,
  requiredDate: DATE,
  urgency: ENUM('normal', 'urgent'),
  items: JSONB,
  status: ENUM('draft', 'pending', 'approved', 'rejected', 'ordered'),
  approvalFlow: JSONB, // [{level, userId, status, date}]
}

// purchase_orders
{
  id: UUID,
  code: VARCHAR(20),
  supplierId: UUID,
  projectId: UUID,
  requisitionId: UUID,
  rfqId: UUID,
  quoteId: UUID,
  
  items: JSONB,
  subtotal: DECIMAL(15,2),
  tax: DECIMAL(15,2),
  total: DECIMAL(15,2),
  
  deliveryDate: DATE,
  deliveryAddress: TEXT,
  paymentTerms: VARCHAR(50),
  
  status: ENUM('pending', 'approved', 'sent', 'partially_received', 'received', 'cancelled'),
  approvedBy: UUID,
  approvedAt: TIMESTAMP,
}

// purchase_order_receipts
{
  id: UUID,
  purchaseOrderId: UUID,
  receiptDate: DATE,
  receivedBy: UUID,
  items: JSONB, // [{itemId, quantityReceived}]
  notes: TEXT,
  attachments: VARCHAR[],
}

// invoices
{
  id: UUID,
  supplierId: UUID,
  purchaseOrderId: UUID,
  invoiceNumber: VARCHAR(50),
  fiscalUUID: VARCHAR(36),
  invoiceDate: DATE,
  dueDate: DATE,
  amount: DECIMAL(15,2),
  status: ENUM('pending', 'approved', 'paid'),
}

6. Criterios de Aceptación

  • Requisiciones desde obra
  • Flujos de aprobación configurables
  • Generación automática de OC desde cotización
  • Numeración secuencial de OCs
  • Recepción parcial/completa
  • Vinculación OC → Recepción → Factura
  • Alertas de vencimiento de pago
  • Dashboard de OCs pendientes
  • Exportación de OC a PDF

Estado: Ready for Development