Files

80 lines
2.9 KiB
C#

namespace EgwCoreLib.Lux.Data.Services.Warehouse
{
public interface IMatReqService
{
#region Public Methods
#if false
/// <summary>
/// Inserisce un nuovo record MatReq nel database.
/// </summary>
/// <param name="entity">Record da inserire</param>
Task<bool> AddAsync(MatReqModel entity);
/// <summary>
/// Inserisce una lista di record MatReq nel database.
/// </summary>
/// <param name="entity">Record da inserire</param>
Task<bool> AddManyAsync(List<MatReqModel> listEntity);
/// <summary>
/// Eliminazione record
/// </summary>
/// <param name="rec2del"></param>
/// <returns></returns>
Task<bool> DeleteAsync(MatReqModel model);
/// <summary>
/// Recupera gli MatReq filtrati per uno o pù criteri
/// </summary>
/// <param name="orderID">ID dell'Ordine Cliente di riferimento</param>
/// <param name="orderRowID">ID della Riga Ordine Cliente di riferimento</param>
/// <param name="itemID">ID dell'item ordinato</param>
/// <param name="processed">true = solo processati / false = solo aperti / null = tutti</param>
Task<List<MatReqModel>> GetFiltAsync(int? orderID, int? orderRowID, int? itemID, bool? processed);
/// <summary>
/// Aggiorna un record MatReq esistente nel database.
/// </summary>
/// <param name="entity">Record aggiornato</param>
Task<bool> UpdateAsync(MatReqModel entity);
#endif
/// <summary>
/// Effettua pulizia di tutta la cache Redis gestita
/// </summary>
/// <returns></returns>
Task ClearClassCache();
/// <summary>
/// Recupera elenco record MatReq non ancora processati
/// </summary>
Task<List<MatReqModel>> GetUnprocAsync();
/// <summary>
/// Recupera elenco record MatReq dato OrderID.
/// </summary>
/// <param name="orderId">ID dell'Ordine da recuperare</param>
Task<List<MatReqModel>> GetByOrderAsync(int orderId);
/// <summary>
/// Recupera elenco record MatReq dato OrderID.
/// </summary>
/// <param name="orderRowId">ID della OrderRow da recuperare</param>
Task<List<MatReqModel>> GetByOrderRowAsync(int orderRowId);
/// <summary>
/// Riconcilia i fabbisogni x un set di RigheOrdine:
/// - verifica ogni riga d'orine e le relative BOM
/// - verifica eventuali fabbisogni presenti (tiene se ordinati, elimina se solo promessi)
/// - genera un set di record fabbisogni (MatReq) per garantire evazione BOM
/// </summary>
/// <param name="ListOrderRow">Lista OrderRow da processare</param>
/// <returns></returns>
Task<bool> ReconcileOrderRowsAsync(List<OrderRowModel> ListOrderRow, bool forceReset = false);
#endregion Public Methods
}
}