using Microsoft.EntityFrameworkCore; using Rs_system.Data; using Rs_system.Models; namespace Rs_system.Services; public class DiezmoReciboService : IDiezmoReciboService { private readonly ApplicationDbContext _context; public DiezmoReciboService(ApplicationDbContext context) { _context = context; } /// public async Task GenerarNumeroReciboAsync(long salidaId) { var salida = await _context.DiezmoSalidas .FirstOrDefaultAsync(s => s.Id == salidaId && !s.Eliminado) ?? throw new InvalidOperationException("Salida no encontrada."); // Si ya tiene correlativo, devolverlo if (!string.IsNullOrEmpty(salida.NumeroRecibo)) return salida.NumeroRecibo; var anio = salida.CreadoEn.Year; var correlativo = $"RECDZ-{anio}-{salidaId:D6}"; salida.NumeroRecibo = correlativo; salida.ActualizadoEn = DateTime.UtcNow; await _context.SaveChangesAsync(); return correlativo; } /// public async Task GetSalidaParaReciboAsync(long salidaId) => await _context.DiezmoSalidas .Include(s => s.DiezmoCierre) .Include(s => s.TipoSalida) .Include(s => s.Beneficiario) .FirstOrDefaultAsync(s => s.Id == salidaId && !s.Eliminado); }