phronCare/Models/Interfaces/IPhSQuoteHeaderRepository.cs

48 lines
1.9 KiB
C#
Raw Normal View History

2025-04-27 02:19:29 -03:00
using Domain.Entities;
using Domain.Generics;
2025-05-06 21:00:03 -03:00
using Microsoft.EntityFrameworkCore.Storage;
2025-04-27 02:19:29 -03:00
namespace Models.Interfaces
{
public interface IPhSQuoteHeaderRepository
{
Task<PagedResult<EQuoteHeader>> GetAllAsync(int page = 1, int pageSize = 50);
Task<EQuoteHeader?> GetByIdAsync(int id);
Task<IEnumerable<EQuoteHeader>> GetByCustomerIdAsync(int customerId);
Task<PagedResult<EQuoteHeader>> SearchAsync(int? customerId, string? quoteNumber, int? professionalId,
int? institutionId, int? patientId, DateTime? issueDateFrom, DateTime? issueDateTo, string? status,
int page = 1, int pageSize = 50);
2025-04-27 02:19:29 -03:00
Task<EQuoteHeader> AddAsync(EQuoteHeader quoteHeader);
Task UpdateAsync(EQuoteHeader quoteHeader);
Task DeleteAsync(int id);
// Ajustes
Task<IEnumerable<EQuoteAdjustment>> GetAdjustmentsByQuoteIdAsync(int quoteId);
Task<EQuoteAdjustment> AddAdjustmentAsync(EQuoteAdjustment adjustment);
Task UpdateAdjustmentAsync(EQuoteAdjustment adjustment);
Task DeleteAdjustmentAsync(int adjustmentId);
/// <summary>
/// Obtiene todos los impuestos asociados a un presupuesto dado por su ID.
/// </summary>
Task<IEnumerable<EQuoteTax>> GetTaxesByQuoteIdAsync(int quoteId);
/// <summary>
/// Agrega un nuevo impuesto al presupuesto correspondiente.
/// </summary>
Task<EQuoteTax> AddTaxAsync(EQuoteTax tax);
/// <summary>
/// Actualiza los datos de un impuesto existente en un presupuesto.
/// </summary>
Task UpdateTaxAsync(EQuoteTax tax);
/// <summary>
/// Elimina un impuesto asociado a un presupuesto a partir de su ID.
/// </summary>
Task DeleteTaxAsync(int taxId);
2025-05-06 21:00:03 -03:00
Task<string> CreateFullQuoteAsync(EQuoteHeader quote, int formSeriesId);
Task<IDbContextTransaction> BeginTransactionAsync();
2025-04-27 02:19:29 -03:00
}
}