Files
lux/EgwCoreLib.Lux.Data/Services/Sales/IOrderService.cs
T
Samuele E. Locatelli (W11-AI) d6c32c34fd Continuo fix interfacce
2026-03-25 15:02:26 +01:00

51 lines
1.8 KiB
C#

namespace EgwCoreLib.Lux.Data.Services.Sales
{
public interface IOrderService
{
#region Public Methods
/// <summary>
/// Genera un nuovo record ordine:
/// - cloning completo di un offerta + TUTTE le relative righe di offerta + rif offerta
/// - generazione prodItems x etichette
/// </summary>
/// <param name="rec2clone"></param>
/// <returns></returns>
Task<OrderModel?> CloneOfferAsync(OfferModel rec2clone);
/// <summary>
/// Reset cache sistema x Ordini modalità async
/// </summary>
Task<bool> FlushCacheOrdersAsync();
/// <summary>
/// Elenco completo Order da DB
/// </summary>
/// <returns></returns>
Task<List<OrderModel>> GetFiltAsync(DateTime inizio, DateTime fine);
/// <summary>
/// Recupera un ordine per ID con opzione di forzare il caricamento dal database.
/// Se doForce è true, carica sempre dal DB altrimenti usa la cache.
/// </summary>
/// <param name="recId">ID del record da recuperare</param>
/// <param name="doForce">Se true forza il caricamento dal database</param>
Task<OrderModel?> GetByIdAsync(int recId, bool doForce);
/// <summary>
/// Effettua update dei costi di tutte le righe dell'ordine indicato
/// </summary>
/// <param name="OrderId">ID dell'ordine da aggiornare</param>
Task<bool> UpdateCostAsync(int OrderId);
/// <summary>
/// Inserisce o aggiorna un record ordine in base all'esistenza dell'ID.
/// Invalida automaticamente le cache correlate.
/// </summary>
/// <param name="upsRec">Record da inserire o aggiornare</param>
Task<bool> UpsertAsync(OrderModel upsRec);
#endregion Public Methods
}
}