namespace EgwCoreLib.Lux.Data.Repository.Sales { /// /// Interfaccia per la gestione degli ordini. /// public interface IOrderRepository : IBaseRepository { /// /// Inserisce un nuovo ordine nel database. /// /// L'ordine da inserire. /// True se l'inserimento ha successo, false altrimenti. Task AddAsync(OrderModel entity); /// /// Esegue il cloning completo di un'Offerta e di tutte le relative righe. /// /// L'offerta da clonare. /// L'ordine creato, o null se l'offerta non esiste. Task CloneOfferAsync(OfferModel rec2clone); /// /// Elimina un ordine dal database. /// /// L'ordine da eliminare. /// True se l'eliminazione ha successo, false altrimenti. Task DeleteAsync(OrderModel entity); /// /// Recupera l'elenco di tutti gli ordini. /// /// L'elenco di tutti gli ordini con clienti, rivenditori e righe associate. Task> GetAllAsync(); /// /// Recupera l'elenco degli elementi BOM (Bill of Materials) utilizzati negli ordini. /// /// L'elenco degli elementi BOM. Task> GetBomItemsAsync(); /// /// Recupera un ordine per il suo identificatore. /// /// L'identificatore dell'ordine. /// L'ordine corrispondente, o null se non esiste. Task GetByIdAsync(int recId); /// /// Recupera gli ordini inseriti in un intervallo di date specifico. /// /// La data di inizio del periodo. /// La data di fine del periodo. /// L'elenco degli ordini nell'intervallo specificato. Task> GetFiltAsync(DateTime inizio, DateTime fine); /// /// Recupera l'elenco dei gruppi di articoli. /// /// L'elenco dei gruppi di articoli. Task> GetItemGroupsAsync(); /// /// Recupera le righe dell'ordine per un ordine specifico. /// /// L'identificatore dell'ordine. /// L'elenco delle righe dell'ordine. Task> GetRowsAsync(int recId); /// /// Aggiorna in batch le righe di un ordine. /// /// L'elenco delle righe da aggiornare. /// True se l'aggiornamento ha successo, false altrimenti. Task SaveRowsAsync(List rows); /// /// Aggiorna un ordine esistente nel database. /// /// L'ordine aggiornato. /// True se l'aggiornamento ha successo, false altrimenti. Task UpdateAsync(OrderModel entity); } }