namespace EgwCoreLib.Lux.Data.Repository.Items { public interface IItemRepository : IBaseRepository { #region Public Methods /// /// Inserisce un nuovo record Item nel database. /// /// Record da inserire Task AddAsync(ItemModel entity); /// /// Elimina un record Item dal database. /// /// Record da eliminare Task DeleteAsync(ItemModel entity); /// /// Recupera un record Item specifico per ID. /// /// ID dell'item da recuperare Task GetByIdAsync(int recId); /// /// Recupera l'elenco degli item alternativi per un item specifico (stesso parent o child). /// /// ID dell'item di riferimento Task> GetAltAsync(int recId); /// /// Recupera gli item filtrati per gruppo e tipo classe. /// /// Codice del gruppo filtro (vuoto = tutti) /// Tipo di classe filtro (ND = tutti) Task> GetFiltAsync(string CodGroup, ItemClassType ItemType); /// /// Cerca item per descrizione, codice esterno o codice fornitore. /// /// Termine di ricerca Task> GetSearchAsync(string term); /// /// Aggiorna in massa costi e margini basati su dimensioni (larghezza x altezza). /// /// Lista di item da aggiornare /// Costo base per unità /// Margine predefinito /// Quantità massima predefinita /// Unità di misura predefinita /// Value per arrotondamento (0 = nessun arrotondamento) /// Fattore di scala per il calcolo costo Task MassUpdateAsync(List list2upd, double setCost, double defMargin, double defQtyMax, string defUM, int roundVal = 0, double scaleFactor = 1_000_000.0); /// /// Aggiorna un record Item esistente nel database. /// /// Record aggiornato Task UpdateAsync(ItemModel entity); /// /// Inserisce item mancanti dalla BOM nel database con valori predefiniti. /// /// Lista BOM da processare Task UpsertFromBomAsync(List bomList); #endregion Public Methods } }