From ce4a42265ef9bc929d55c1a00a2e538ed12f35fa Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 14 Apr 2026 11:40:11 +0200 Subject: [PATCH] Bozza itnerfacce BuyOrder/OrderRow --- .../Supplier/IBuyOrderRepository.cs | 83 ++++++++++++++ .../Supplier/IBuyOrderRowrepository.cs | 102 ++++++++++++++++++ 2 files changed, 185 insertions(+) create mode 100644 EgwCoreLib.Lux.Data/Repository/Supplier/IBuyOrderRepository.cs create mode 100644 EgwCoreLib.Lux.Data/Repository/Supplier/IBuyOrderRowrepository.cs diff --git a/EgwCoreLib.Lux.Data/Repository/Supplier/IBuyOrderRepository.cs b/EgwCoreLib.Lux.Data/Repository/Supplier/IBuyOrderRepository.cs new file mode 100644 index 0000000..b0b9681 --- /dev/null +++ b/EgwCoreLib.Lux.Data/Repository/Supplier/IBuyOrderRepository.cs @@ -0,0 +1,83 @@ +namespace EgwCoreLib.Lux.Data.Repository.Supplier +{ + /// + /// Interfaccia per la gestione degli ordini. + /// + public interface IBuyOrderRepository : IBaseRepository + { + /// + /// Inserisce un nuovo ordine nel database. + /// + /// L'ordine da inserire. + /// True se l'inserimento ha successo, false altrimenti. + Task AddAsync(BuyOrderModel 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(BuyOrderModel 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(BuyOrderModel entity); + } +} diff --git a/EgwCoreLib.Lux.Data/Repository/Supplier/IBuyOrderRowrepository.cs b/EgwCoreLib.Lux.Data/Repository/Supplier/IBuyOrderRowrepository.cs new file mode 100644 index 0000000..446dd97 --- /dev/null +++ b/EgwCoreLib.Lux.Data/Repository/Supplier/IBuyOrderRowrepository.cs @@ -0,0 +1,102 @@ +namespace EgwCoreLib.Lux.Data.Repository.Supplier +{ + /// + /// Interfaccia per la gestione delle righe degli ordini. + /// + public interface IBuyOrderRowrepository : 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(BuyOrderRowModel 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(BuyOrderRowModel 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 BuyOrderRowId); + + /// + /// 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 BuyOrderRowUid); + + /// + /// 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(BuyOrderRowModel 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); + } +}