namespace EgwCoreLib.Lux.Data.Repository.Warehouse
{
public interface IMatReqRepository : IBaseRepository
{
#region Public Methods
///
/// Inserisce un nuovo record MatReq nel database.
///
/// Record da inserire
Task AddAsync(MatReqModel entity);
///
/// Inserisce una lista di record MatReq nel database.
///
/// Record da inserire
Task AddManyAsync(List listEntity);
///
/// Elimina un record MatReq dal database.
///
/// Record da eliminare
Task DeleteAsync(MatReqModel entity);
///
/// Elimina un set di record MatReq dato OrderRowId.
///
/// ID dell'OrderRow relativo
/// forza cancellazione anche per già ordinati
Task DeleteByOrderRowAsync(int orderRowId, bool force = false);
///
/// Recupera un record MatReq specifico per ID.
///
/// ID dell'MatReq da recuperare
Task GetByIdAsync(int recId);
///
/// Recupera gli MatReq filtrati per uno o pù criteri
///
/// ID dell'Ordine Cliente di riferimento
/// ID della Riga Ordine Cliente di riferimento
/// ID dell'item ordinato
/// true = solo processati / false = solo aperti / null = tutti
Task> GetFiltAsync(int? orderID, int? orderRowID, int? itemID, bool? processed);
///
/// Aggiorna un record MatReq esistente nel database.
///
/// Record aggiornato
Task UpdateAsync(MatReqModel entity);
///
/// Inserisce o aggiorna una lista di record MatReq nel database.
///
/// Record da inserire
Task UpsertManyAsync(List listEntity);
#endregion Public Methods
}
}