Skip to content

Diagrama de Edicion de Ingresos

Diagrama de Edicion de Ingresos

Resumen del Sistema

🎯 Operaciones Principales

  • CONSULTAR: Lista de ingresos con opción de edición
  • VALIDAR: Verificación completa de permisos y datos
  • EDITAR: Formulario modal con datos pre-cargados
  • ACTUALIZAR: Procesamiento completo con transacciones
  • RESULTADO: Confirmación de actualización exitosa

🔧 Componentes Técnicos

  • Controlador: UpdateIngresos para manejo de rutas y vistas
  • Servicio Principal: UpdateIngresosService que coordina todo el proceso
  • Servicios Especializados: 6 servicios específicos para diferentes aspectos
  • Vistas: Modal de edición con formulario completo
  • Rutas: RESTful con método PUT para actualización

🛡️ Características de Seguridad

  • Validación de permisos por usuario (solo sus ingresos)
  • Transacciones de base de datos para consistencia
  • Validación robusta de datos antes de procesamiento
  • Rollback automático en caso de errores
  • Logging completo para auditoría y debugging

📊 Flujo de Edición

1. Inicio del Proceso

  • Usuario accede a lista de ingresos
  • Selecciona ingreso para editar
  • Sistema valida permisos del usuario

2. Carga del Formulario

  • Datos Generales: Fecha, tercero, medio de pago, tipo de venta
  • Ingresos Existentes: Productos/servicios ya registrados
  • Nuevos Ingresos: Opción de agregar más productos
  • Ingresos a Eliminar: Opción de quitar productos

3. Validación Completa

  • Validar Ingresos Existentes: Verificar que pertenezcan al usuario
  • Validar Datos Básicos: Fecha, tercero, medio de pago obligatorios
  • Validar Stock de Inventario: Verificar disponibilidad de productos
  • Validar Nuevos Ingresos: Código, cantidad, precio válidos
  • Validar Abono para Crédito: No exceder total de venta

4. Procesamiento de Actualización

  • Analizar Cambios: Detectar modificaciones en tipo de venta, medio de pago, cantidades, precios
  • Eliminar Ingresos: Procesar eliminaciones solicitadas
  • Actualizar Existentes: Modificar ingresos existentes
  • Procesar Nuevos: Crear nuevos ingresos
  • Actualizar Disponibilidad: Ajustar disponibilidad de dinero
  • Manejar Cuentas por Pagar: Gestionar cuentas de crédito

5. Finalización

  • Confirmar Transacción: Commit de todos los cambios
  • Mostrar Resultado: Confirmación de actualización exitosa

🔌 Servicios Especializados

✅ ValidacionIngresosService

  • Validación de coherencia de datos
  • Verificación de permisos y existencia
  • Validación de stock de inventario
  • Validación de abonos para crédito

📦 InventarioService

  • Actualización de inventario cuando cambian cantidades
  • Manejo de lotes con lógica FIFO
  • Registro en historial de inventario
  • Restauración de stock al eliminar ingresos

💵 DisponibilidadService

  • Actualización de disponibilidad de dinero
  • Manejo de cambios entre contado y crédito
  • Ajuste de montos según tipo de venta
  • Cálculo de diferencias por cambios

💳 CuentasPorPagarService

  • Creación de cuentas por pagar para ventas a crédito
  • Actualización de montos y fechas de vencimiento
  • Manejo de abonos iniciales
  • Eliminación de cuentas al cambiar a contado

➕ NuevosIngresosService

  • Creación de nuevos ingresos dentro de una actualización
  • Asignación de consecutivos secuenciales
  • Cálculo de totales e impuestos
  • Integración con inventario y disponibilidad

🗑️ EliminarIngresosService

  • Eliminación segura de ingresos existentes
  • Restauración de stock de inventario
  • Ajuste de disponibilidad de dinero
  • Limpieza de cuentas por pagar relacionadas

📄 Tipos de Cambios Detectados

🔄 Cambio de Tipo de Venta

  • Contado → Crédito: Crear cuenta por pagar, ajustar disponibilidad
  • Crédito → Contado: Eliminar cuenta por pagar, ajustar disponibilidad
  • Otros Ingresos: Manejo especial sin inventario

💳 Cambio de Medio de Pago

  • Efectivo → Transferencia: Ajustar disponibilidad por tipo
  • Transferencia → Efectivo: Cambiar categoría de disponibilidad
  • Otros Medios: Manejo específico por tipo

📦 Cambio de Cantidad

  • Aumento: Verificar stock disponible, actualizar inventario
  • Disminución: Restaurar stock, ajustar lotes
  • Eliminación: Restaurar completamente el stock

💰 Cambio de Precio

  • Aumento: Ajustar totales y disponibilidad
  • Disminución: Recalcular montos y cuentas por pagar
  • IVA/Descuentos: Recalcular totales netos

⚙️ Arquitectura Escalable

  • Servicios Especializados: Separación clara de responsabilidades
  • Transacciones de BD: Consistencia garantizada
  • Validación Robusta: Múltiples capas de validación
  • Manejo de Errores: Rollback automático y logging completo
  • Flexibilidad: Soporte para múltiples tipos de cambios

📋 Rutas Disponibles

  • GET /ingresos/{consecutivo}/edit: Mostrar formulario de edición
  • PUT /ingresos/{consecutivo}: Procesar actualización de ingresos

🔍 Validaciones Específicas

  • Permisos: Solo el usuario propietario puede editar
  • Existencia: Verificar que los ingresos existan
  • Stock: Validar disponibilidad de productos
  • Coherencia: Datos básicos obligatorios
  • Abonos: No exceder total de venta en crédito
  • Nuevos Ingresos: Código, cantidad y precio válidos

📊 Procesamiento de Datos

  • Cálculo de Totales: Montos, descuentos, IVA, total neto
  • Actualización de Inventario: Stock, lotes, historial
  • Manejo de Disponibilidad: Dinero disponible por tipo
  • Gestión de Cuentas: Por pagar, abonos, vencimientos
  • Transacciones: Commit/Rollback automático