namespace EgwCoreLib.Lux.Data.Repository.Sales { /// /// Interfaccia per la gestione delle righe degli ordini. /// public interface IOrderRowRepository : IBaseRepository { /// /// Inserisce una nuova riga d'ordine nel database. /// /// La riga d'ordine da inserire. /// True se l'inserimento ha successo, false altrimenti. Task AddAsync(OrderRowModel entity); /// /// Elimina una riga d'ordine e adegua i numeri di riga successivi. /// /// La riga d'ordine da eliminare. /// True se l'eliminazione ha successo, false altrimenti. Task DeleteAsync(OrderRowModel entity); /// /// Recupera l'elenco degli elementi BOM (Bill of Materials). /// /// L'elenco degli elementi BOM. Task> GetBomItemsAsync(); /// /// Recupera una riga d'ordine per il suo identificatore. /// /// L'identificatore della riga d'ordine. /// La riga d'ordine corrispondente, o null se non esiste. Task GetByIdAsync(int OrderRowId); /// /// Recupera tutte le righe d'ordine per un ordine specifico. /// /// L'identificatore dell'ordine. /// L'elenco delle righe d'ordine associate all'ordine. Task> GetByParentAsync(int orderId); /// /// Recupera le righe d'ordine per stato e intervallo di date. /// /// Lo stato richiesto della riga. /// La data di inizio del periodo. /// La data di fine del periodo. /// L'elenco delle righe d'ordine con lo stato e le date specificate. Task> GetByStateAsync(OrderStates reqState, DateTime dtStart, DateTime dtEnd); /// /// Recupera le righe d'ordine per stato minimo e intervallo di date. /// /// Lo stato minimo richiesto. /// La data di inizio del periodo. /// La data di fine del periodo. /// L'elenco delle righe d'ordine con stato >= a quello specificato. Task> GetByStateMinAsync(OrderStates reqState, DateTime dtStart, DateTime dtEnd); /// /// Recupera una riga d'ordine per il suo UID. /// /// L'UID della riga d'ordine. /// La riga d'ordine corrispondente, o null se non esiste. Task GetByUidAsync(string OrderRowUid); /// /// Recupera l'elenco dei gruppi di articoli. /// /// L'elenco dei gruppi di articoli. Task> GetItemGroupsAsync(); /// /// Aggiorna la stima di produzione per una riga d'ordine. /// /// L'UID della riga d'ordine. /// La nuova stima di produzione. /// True se l'aggiornamento ha successo, false altrimenti. Task SaveProdEstAsync(string uID, string prodEstim); /// /// Aggiorna in batch le righe d'ordine. /// /// L'elenco delle righe da aggiornare. /// True se l'aggiornamento ha successo, false altrimenti. Task SaveRowsAsync(List rows); /// /// Aggiorna una riga d'ordine esistente. /// /// La riga d'ordine aggiornata. /// True se l'aggiornamento ha successo, false altrimenti. Task UpdateAsync(OrderRowModel entity); /// /// Convalida un elenco di righe d'ordine e aggiorna lo stato se necessario. /// /// L'elenco delle righe da convalidare. /// Il numero di righe elaborate correttamente. Task ValidateAsync(List list2chk); } }