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