89 lines
3.7 KiB
C#
89 lines
3.7 KiB
C#
namespace EgwCoreLib.Lux.Data.Repository.Sales
|
|
{
|
|
/// <summary>
|
|
/// Interfaccia per la gestione delle offerte.
|
|
/// </summary>
|
|
public interface IOfferRepository : IBaseRepository
|
|
{
|
|
/// <summary>
|
|
/// Inserisce una nuova offerta nel database.
|
|
/// </summary>
|
|
/// <param name="entity">L'offerta da inserire.</param>
|
|
/// <returns>True se l'inserimento ha successo, false altrimenti.</returns>
|
|
Task<bool> AddAsync(OfferModel entity);
|
|
|
|
/// <summary>
|
|
/// Segna come scadute le offerte la cui data di validità è passata e che sono ancora aperte.
|
|
/// </summary>
|
|
/// <returns>True se almeno un'offerta è stata aggiornata, false altrimenti.</returns>
|
|
Task<bool> CheckExpiredAsync();
|
|
|
|
/// <summary>
|
|
/// Esegue il cloning completo di un'Offerta e di tutte le relative righe.
|
|
/// </summary>
|
|
/// <param name="rec2clone">L'offerta da clonare.</param>
|
|
/// <returns>True se il cloning ha successo, false altrimenti.</returns>
|
|
Task<bool> CloneAsync(OfferModel rec2clone);
|
|
|
|
/// <summary>
|
|
/// Elimina un'offerta dal database.
|
|
/// </summary>
|
|
/// <param name="entity">L'offerta da eliminare.</param>
|
|
/// <returns>True se l'eliminazione ha successo, false altrimenti.</returns>
|
|
Task<bool> DeleteAsync(OfferModel entity);
|
|
|
|
/// <summary>
|
|
/// Recupera l'elenco di tutte le offerte.
|
|
/// </summary>
|
|
/// <returns>L'elenco di tutte le offerte con clienti, rivenditori e righe associate.</returns>
|
|
Task<List<OfferModel>> GetAllAsync();
|
|
|
|
/// <summary>
|
|
/// Recupera l'elenco degli elementi BOM (Bill of Materials) utilizzati nelle offerte.
|
|
/// </summary>
|
|
/// <returns>L'elenco degli elementi BOM.</returns>
|
|
Task<List<ItemModel>> GetBomItemsAsync();
|
|
|
|
/// <summary>
|
|
/// Recupera un'offerta per il suo identificatore.
|
|
/// </summary>
|
|
/// <param name="recId">L'identificatore dell'offerta.</param>
|
|
/// <returns>L'offerta corrispondente, o null se non esiste.</returns>
|
|
Task<OfferModel?> GetByIdAsync(int recId);
|
|
|
|
/// <summary>
|
|
/// Recupera le offerte inserite in un intervallo di date specifico.
|
|
/// </summary>
|
|
/// <param name="inizio">La data di inizio del periodo.</param>
|
|
/// <param name="fine">La data di fine del periodo.</param>
|
|
/// <returns>L'elenco delle offerte nell'intervallo specificato.</returns>
|
|
Task<List<OfferModel>> GetFiltAsync(DateTime inizio, DateTime fine);
|
|
|
|
/// <summary>
|
|
/// Recupera l'elenco dei gruppi di articoli.
|
|
/// </summary>
|
|
/// <returns>L'elenco dei gruppi di articoli.</returns>
|
|
Task<List<ItemGroupModel>> GetItemGroupsAsync();
|
|
|
|
/// <summary>
|
|
/// Recupera le righe dell'offerta per un'offerta specifica.
|
|
/// </summary>
|
|
/// <param name="recId">L'identificatore dell'offerta.</param>
|
|
/// <returns>L'elenco delle righe dell'offerta.</returns>
|
|
Task<List<OfferRowModel>> GetRowsAsync(int recId);
|
|
|
|
/// <summary>
|
|
/// Aggiorna in batch le righe di un'offerta.
|
|
/// </summary>
|
|
/// <param name="rows">L'elenco delle righe da aggiornare.</param>
|
|
/// <returns>True se l'aggiornamento ha successo, false altrimenti.</returns>
|
|
Task<bool> SaveRowsAsync(List<OfferRowModel> rows);
|
|
|
|
/// <summary>
|
|
/// Aggiorna un'offerta esistente nel database.
|
|
/// </summary>
|
|
/// <param name="entity">L'offerta aggiornata.</param>
|
|
/// <returns>True se l'aggiornamento ha successo, false altrimenti.</returns>
|
|
Task<bool> UpdateAsync(OfferModel entity);
|
|
}
|
|
} |