← Volver a MonedasController

💰 Gestión de Monedas

Endpoints para consultar información de monedas del sistema

Descripción General

Los endpoints de Gestión de Monedas proporcionan las operaciones de lectura para obtener información sobre las monedas configuradas en el sistema. Estos endpoints permiten consultar monedas por diferentes criterios, desde obtener todas las monedas hasta buscar una específica por su ID.

🎯 Características de la Gestión de Monedas

  • Consulta de todas las monedas: Obtener lista completa de monedas
  • Consulta de moneda específica: Obtener información de una moneda por ID
  • Información de tipos de cambio: Datos de conversión entre monedas
  • Estados de monedas: Información sobre monedas activas/inactivas
  • Moneda base: Identificación de la moneda principal del sistema
  • Manejo de errores: Respuestas apropiadas para casos no encontrados
  • Logging estructurado: Registro de errores y eventos
  • Validación de datos: Verificación de parámetros de entrada
  • Respuestas tipadas: Uso de modelos específicos para respuestas
  • Configuración del sistema: Datos maestros de configuración monetaria

Endpoints Disponibles

GET /Master/Monedas/GetMonedas

Obtiene todas las monedas configuradas en el sistema. Este endpoint devuelve una lista completa de todas las monedas registradas en la base de datos.
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Lista de monedas devuelta exitosamente
[ { "id": "EUR", "nombre": "Euro", "simbolo": "€", "tipoCambio": 1.0, "activa": true, "esBase": true }, { "id": "USD", "nombre": "Dólar Estadounidense", "simbolo": "$", "tipoCambio": 1.18, "activa": true, "esBase": false }, { "id": "GBP", "nombre": "Libra Esterlina", "simbolo": "£", "tipoCambio": 0.86, "activa": true, "esBase": false } ]
500 Internal Server Error
Error interno del servidor
{ "message": "Internal server error" }

GET /Master/Monedas/GetMoneda/{id}

Obtiene una moneda específica por su ID. Este endpoint permite recuperar la información detallada de una moneda en particular.
Parámetros de ruta:
  • id (string, requerido): ID único de la moneda
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Moneda encontrada y devuelta
{ "id": "EUR", "nombre": "Euro", "simbolo": "€", "tipoCambio": 1.0, "activa": true, "esBase": true }
404 Not Found
Moneda no encontrada
{ "message": "Moneda no encontrada" }
500 Internal Server Error
Error interno del servidor
{ "message": "Internal server error" }

Modelo de Datos - Moneda

Propiedades del modelo Moneda:
  • Id (string): Identificador único de la moneda (ej: "EUR", "USD")
  • Nombre (string): Nombre completo de la moneda
  • Símbolo (string): Símbolo de la moneda (ej: "€", "$", "£")
  • TipoCambio (decimal): Tipo de cambio respecto a la moneda base
  • Activa (bool): Indica si la moneda está activa en el sistema
  • EsBase (bool): Indica si es la moneda base del sistema

📝 Estados de Moneda

  • Activa: Moneda disponible para uso en el sistema
  • Inactiva: Moneda deshabilitada pero mantenida en la base de datos
  • Base: Moneda principal del sistema (tipoCambio = 1.0)
  • Secundaria: Otras monedas con tipos de cambio específicos

💱 Tipos de Cambio

  • Moneda Base: Siempre tiene tipoCambio = 1.0
  • Monedas Secundarias: Tienen tipos de cambio respecto a la base
  • Conversión: Para convertir de moneda A a B: valor * (tipoCambioB / tipoCambioA)
  • Actualización: Los tipos de cambio pueden actualizarse periódicamente

Servicio Utilizado

IMonedaService - Servicio principal para la gestión de monedas
  • GetMonedas(): Obtiene todas las monedas del sistema
  • GetMoneda(): Obtiene una moneda específica por ID

🔍 Casos de Uso Comunes

📋 Escenarios de Aplicación

  • Configuración inicial: Establecer monedas disponibles en el sistema
  • Selección de moneda: Permitir al usuario elegir moneda para transacciones
  • Cálculo de tipos de cambio: Convertir precios entre diferentes monedas
  • Facturación multi-moneda: Emitir facturas en diferentes monedas
  • Reportes financieros: Generar reportes en la moneda deseada
  • Configuración de POS: Configurar monedas en sistemas de punto de venta
  • Integración con sistemas externos: Sincronizar monedas con sistemas de terceros
  • Auditoría financiera: Revisar configuraciones monetarias
  • Gestión de reservas: Manejar reservas en diferentes monedas
  • Análisis de ventas: Analizar ventas por moneda

🔒 Consideraciones de Seguridad

⚠️ Protección de Datos de Configuración

  • Auditoría de consultas: Registrar quién consulta configuraciones de monedas
  • Validación de permisos: Solo usuarios autorizados pueden consultar
  • Filtrado de datos sensibles: No exponer información de tipos de cambio sin autorización
  • Control de acceso: Restringir acceso según roles de usuario
  • Logs de consultas: Mantener registro de consultas realizadas
  • Validación de parámetros: Verificar que los IDs sean válidos
  • Rate limiting: Limitar frecuencia de consultas
  • Sanitización de datos: Limpiar parámetros de entrada
  • Protección de tipos de cambio: Controlar acceso a información de conversión
  • Validación de integridad: Verificar que las monedas estén correctamente configuradas

📊 Ejemplos de Uso

💡 Casos Prácticos

Configuración de Monedas
// Obtener todas las monedas para configuración inicial GET /Master/Monedas/GetMonedas?initialCatalog=RestMasterDB // Resultado: Lista de monedas disponibles [ { "id": "EUR", "nombre": "Euro", "simbolo": "€", "tipoCambio": 1.0, "activa": true, "esBase": true }, { "id": "USD", "nombre": "Dólar", "simbolo": "$", "tipoCambio": 1.18, "activa": true, "esBase": false } ]
Consulta de Moneda Específica
// Obtener información de una moneda específica GET /Master/Monedas/GetMoneda/EUR?initialCatalog=RestMasterDB // Resultado: Información detallada de la moneda { "id": "EUR", "nombre": "Euro", "simbolo": "€", "tipoCambio": 1.0, "activa": true, "esBase": true }
Cálculo de Conversión
// Convertir 100 EUR a USD // 1. Obtener tipo de cambio EUR (base): 1.0 // 2. Obtener tipo de cambio USD: 1.18 // 3. Calcular: 100 * (1.18 / 1.0) = 118 USD