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