← Volver a MonedasController

💵 Gestión de Billetes

Endpoints para consultar información de billetes y denominaciones del sistema

Descripción General

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

🎯 Características de la Gestión de Billetes

  • Consulta de todas las denominaciones: Obtener lista completa de billetes y monedas
  • Consulta de denominación específica: Obtener información de una denominación por ID
  • Información de valores: Datos de denominaciones y valores nominales
  • Estados de denominaciones: Información sobre denominaciones activas/inactivas
  • Tipos de denominación: Diferenciación entre billetes y monedas
  • Asociación con monedas: Relación entre denominaciones y monedas
  • 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 denominaciones monetarias

Endpoints Disponibles

GET /Master/Monedas/GetBilletes

Obtiene todas las denominaciones (billetes y monedas) configuradas en el sistema. Este endpoint devuelve una lista completa de todas las denominaciones 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 denominaciones devuelta exitosamente
[ { "id": "EUR_500", "monedaId": "EUR", "denominacion": 500.00, "descripcion": "Billete de 500 Euros", "activo": true, "esMoneda": false }, { "id": "EUR_200", "monedaId": "EUR", "denominacion": 200.00, "descripcion": "Billete de 200 Euros", "activo": true, "esMoneda": false }, { "id": "EUR_100", "monedaId": "EUR", "denominacion": 100.00, "descripcion": "Billete de 100 Euros", "activo": true, "esMoneda": false }, { "id": "EUR_50", "monedaId": "EUR", "denominacion": 50.00, "descripcion": "Billete de 50 Euros", "activo": true, "esMoneda": false }, { "id": "EUR_20", "monedaId": "EUR", "denominacion": 20.00, "descripcion": "Billete de 20 Euros", "activo": true, "esMoneda": false }, { "id": "EUR_10", "monedaId": "EUR", "denominacion": 10.00, "descripcion": "Billete de 10 Euros", "activo": true, "esMoneda": false }, { "id": "EUR_5", "monedaId": "EUR", "denominacion": 5.00, "descripcion": "Billete de 5 Euros", "activo": true, "esMoneda": false }, { "id": "EUR_2", "monedaId": "EUR", "denominacion": 2.00, "descripcion": "Moneda de 2 Euros", "activo": true, "esMoneda": true }, { "id": "EUR_1", "monedaId": "EUR", "denominacion": 1.00, "descripcion": "Moneda de 1 Euro", "activo": true, "esMoneda": true }, { "id": "EUR_050", "monedaId": "EUR", "denominacion": 0.50, "descripcion": "Moneda de 50 céntimos", "activo": true, "esMoneda": true }, { "id": "EUR_020", "monedaId": "EUR", "denominacion": 0.20, "descripcion": "Moneda de 20 céntimos", "activo": true, "esMoneda": true }, { "id": "EUR_010", "monedaId": "EUR", "denominacion": 0.10, "descripcion": "Moneda de 10 céntimos", "activo": true, "esMoneda": true }, { "id": "EUR_005", "monedaId": "EUR", "denominacion": 0.05, "descripcion": "Moneda de 5 céntimos", "activo": true, "esMoneda": true }, { "id": "EUR_002", "monedaId": "EUR", "denominacion": 0.02, "descripcion": "Moneda de 2 céntimos", "activo": true, "esMoneda": true }, { "id": "EUR_001", "monedaId": "EUR", "denominacion": 0.01, "descripcion": "Moneda de 1 céntimo", "activo": true, "esMoneda": true } ]
500 Internal Server Error
Error interno del servidor
{ "message": "Internal server error" }

GET /Master/Monedas/GetBillete/{id}

Obtiene una denominación específica por su ID. Este endpoint permite recuperar la información detallada de una denominación en particular.
Parámetros de ruta:
  • id (string, requerido): ID único de la denominación
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
Denominación encontrada y devuelta
{ "id": "EUR_100", "monedaId": "EUR", "denominacion": 100.00, "descripcion": "Billete de 100 Euros", "activo": true, "esMoneda": false }
404 Not Found
Denominación no encontrada
{ "message": "Billete no encontrado" }
500 Internal Server Error
Error interno del servidor
{ "message": "Internal server error" }

Modelo de Datos - MonedasBillete

Propiedades del modelo MonedasBillete:
  • Id (string): Identificador único de la denominación (ej: "EUR_100", "EUR_2")
  • MonedaId (string): ID de la moneda asociada (ej: "EUR", "USD")
  • Denominacion (decimal): Valor nominal de la denominación
  • Descripcion (string): Descripción de la denominación
  • Activo (bool): Indica si la denominación está activa en el sistema
  • EsMoneda (bool): Indica si es moneda (true) o billete (false)

💵 Tipos de Denominación

  • Billetes (esMoneda = false): Denominaciones en papel
  • Monedas (esMoneda = true): Denominaciones en metal
  • Activas: Denominaciones disponibles para uso
  • Inactivas: Denominaciones deshabilitadas pero mantenidas

💰 Denominaciones Comunes

  • Billetes: 500€, 200€, 100€, 50€, 20€, 10€, 5€
  • Monedas: 2€, 1€, 0.50€, 0.20€, 0.10€, 0.05€, 0.02€, 0.01€
  • Valores Altos: Para transacciones grandes
  • Valores Bajos: Para cambio y transacciones pequeñas

Servicio Utilizado

IMonedasBilleteService - Servicio principal para la gestión de billetes y denominaciones
  • GetBilletes(): Obtiene todas las denominaciones del sistema
  • GetBillete(): Obtiene una denominación específica por ID

🔍 Casos de Uso Comunes

📋 Escenarios de Aplicación

  • Configuración de caja: Establecer denominaciones disponibles para arqueos
  • Cálculo de cambio: Determinar qué denominaciones usar para dar cambio
  • Arqueo de caja: Contar dinero por denominaciones
  • Configuración de POS: Configurar denominaciones en sistemas de punto de venta
  • Gestión de efectivo: Controlar flujo de efectivo por denominaciones
  • Reportes de caja: Generar reportes detallados por denominaciones
  • Validación de pagos: Verificar que el pago se puede dar con las denominaciones disponibles
  • Optimización de cambio: Calcular la mejor combinación de denominaciones para dar cambio
  • Auditoría de caja: Revisar movimientos por denominaciones
  • Configuración de máquinas: Configurar dispensadores automáticos
  • Gestión de reservas: Mantener stock de denominaciones
  • Análisis de uso: Analizar qué denominaciones se usan más

🔒 Consideraciones de Seguridad

⚠️ Protección de Datos de Configuración

  • Auditoría de consultas: Registrar quién consulta configuraciones de denominaciones
  • Validación de permisos: Solo usuarios autorizados pueden consultar
  • Filtrado de datos sensibles: No exponer información de denominaciones 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 denominaciones: Controlar acceso a información de valores
  • Validación de integridad: Verificar que las denominaciones estén correctamente configuradas

📊 Ejemplos de Uso

💡 Casos Prácticos

Configuración de Denominaciones
// Obtener todas las denominaciones para configuración de caja GET /Master/Monedas/GetBilletes?initialCatalog=RestMasterDB // Resultado: Lista de denominaciones disponibles [ { "id": "EUR_100", "monedaId": "EUR", "denominacion": 100.00, "descripcion": "Billete de 100 Euros", "activo": true, "esMoneda": false }, { "id": "EUR_50", "monedaId": "EUR", "denominacion": 50.00, "descripcion": "Billete de 50 Euros", "activo": true, "esMoneda": false }, { "id": "EUR_20", "monedaId": "EUR", "denominacion": 20.00, "descripcion": "Billete de 20 Euros", "activo": true, "esMoneda": false } ]
Consulta de Denominación Específica
// Obtener información de una denominación específica GET /Master/Monedas/GetBillete/EUR_100?initialCatalog=RestMasterDB // Resultado: Información detallada de la denominación { "id": "EUR_100", "monedaId": "EUR", "denominacion": 100.00, "descripcion": "Billete de 100 Euros", "activo": true, "esMoneda": false }
Cálculo de Cambio
// Calcular cambio para 47.50€ con pago de 50€ // 1. Obtener todas las denominaciones activas // 2. Calcular cambio necesario: 50€ - 47.50€ = 2.50€ // 3. Seleccionar denominaciones: 2€ + 0.50€ // 4. Verificar disponibilidad en caja
Arqueo de Caja
// Contar dinero por denominaciones // 1. Obtener todas las denominaciones activas // 2. Contar cantidad de cada denominación // 3. Calcular total: cantidad * denominacion // 4. Generar reporte de arqueo