Files
ERP_Distribution/Distribution/Features/Reconciliation/ReconciliationRepository.cs
T
2026-08-31 12:14:30 +05:30

52 lines
1.9 KiB
C#

using Distribution.Data;
using Distribution.Models;
using Microsoft.EntityFrameworkCore;
namespace Distribution.Features.Reconciliation;
public class ReconciliationRepository(AppDBContext db) : IReconciliationRepository
{
public async Task AddItemCountAsync(RideItemCount count)
=> await db.RideItemCounts.AddAsync(count);
public async Task<List<RideItemCount>> GetItemCountsByRideAsync(Guid rideId)
=> await db.RideItemCounts
.Where(c => c.FK_RideId == rideId)
.ToListAsync();
public async Task AddVarianceAsync(RideVariance variance)
=> await db.RideVariances.AddAsync(variance);
public async Task<List<RideVariance>> GetVariancesByRideAsync(Guid rideId)
=> await db.RideVariances
.Include(v => v.Item)
.Include(v => v.ResolvedBy)
.Where(v => v.FK_RideId == rideId)
.ToListAsync();
public async Task<RideVariance?> GetVarianceByIdAsync(Guid id)
=> await db.RideVariances
.Include(v => v.Item)
.Include(v => v.ResolvedBy)
.FirstOrDefaultAsync(v => v.Id == id);
public void UpdateVariance(RideVariance variance)
=> db.RideVariances.Update(variance);
public async Task<bool> HasPendingVariancesAsync(Guid rideId)
=> await db.RideVariances
.AnyAsync(v => v.FK_RideId == rideId && v.Status == VarianceStatus.Pending);
public async Task AddCloseSummaryAsync(RideCloseSummary summary)
=> await db.RideCloseSummaries.AddAsync(summary);
public async Task<RideCloseSummary?> GetCloseSummaryByRideAsync(Guid rideId)
=> await db.RideCloseSummaries
.FirstOrDefaultAsync(s => s.FK_RideId == rideId);
public async Task<decimal> GetCashCollectedByRideAsync(Guid rideId)
=> await db.Payments
.Where(p => p.Sale.FK_RideId == rideId && p.Method == PaymentMethod.Cash)
.SumAsync(p => p.Amount);
}