namespace EgwCoreLib.Lux.Data.Services.Sales
{
public interface IOrderRowService
{
#region Public Methods
///
/// Eliminazione record
///
///
///
Task DeleteAsync(OrderRowModel model);
///
/// Effettua fix TipoImg righe child dell' Order indicato
///
/// Key
///
Task FixImgTypeAsync(int OrderId);
///
/// Effettua fix UID righe child del temoplate indicato e restituisce elenco UID da chiamare x refresh
///
/// Key
///
Task> FixUidAsync(int OrderId);
///
/// Recupera una riga ordine per ID. Utilizza la cache se doForce è false.
///
/// ID della riga ordine da recuperare
Task GetByIdAsync(int OrderRowId);
///
/// Elenco filtrato (parent) OrderRow da DB
///
///
///
Task> GetByParentAsync(int OrderId);
///
/// Recupera le righe ordine filtrate per stato in un intervallo di date.
/// Utilizza la cache automaticamente.
///
/// Stato richiesto
/// Data inizio periodo
/// Data fine periodo
Task> GetByStateAsync(OrderStates reqState, DateTime dtStart, DateTime dtEnd);
///
/// Recupera le righe ordine con stato minimo in un intervallo di date.
/// Utilizza la cache automaticamente.
///
/// Stato minimo richiesto
/// Data inizio periodo
/// Data fine periodo
Task> GetByStateMinAsync(OrderStates reqState, DateTime dtStart, DateTime dtEnd);
///
/// Recupera una riga ordine per UID. Utilizza la cache automaticamente.
///
/// UID della riga ordine da recuperare
Task GetByUidAsync(string OrderRowUid);
///
/// Aggiorna lo stato di attesa (BOM/Prezzo) per una riga ordine.
///
/// ID della riga da aggiornare
/// Nuovo valore AwaitBom
/// Nuovo valore AwaitPrice
/// Se true invalida la cache
Task UpdateAwaitStateAsync(int OrderRowId, bool? awaitBom, bool? awaitPrice, bool flushCache = false);
///
/// Effettua update del valore serializzato della Riga Order
///
/// ID Riga Order da aggiornare
/// Serializzazione oggetto (es JWD)
///
Task UpdateBomAsync(int OrderRowID, List newBomList);
///
/// Effettua update della BOM (esplicita) della Riga Order
///
/// UID Riga Offer da aggiornare
/// BOM List esplicita
///
Task UpdateBomAsync(string uID, List newBomList);
///
/// Effettua update delle info legate al file per il Order indicato
///
/// Riga Order coi dati da aggiornare
///
Task UpdateFileDataAsync(OrderRowModel updRec);
///
/// Effettua update del valore serializzato della Riga Order
///
/// ID Riga Order da aggiornare
/// Serializzazione oggetto (es JWD)
///
Task UpdateSerStructAsync(int OrderRowID, string serStruct);
///
/// Effettua update dello stato della Riga Order
///
/// ID Riga Order da aggiornare
/// Serializzazione oggetto (es JWD)
///
Task UpdateStateAsync(int orderRowID, OrderStates reqState);
///
/// Upsert record OrderRow
///
///
///
Task UpsertAsync(OrderRowModel upsRec);
///
/// Esegue salvataggio ProdEstimate (per riga ordine) sul DB
///
/// UID dell'item offerta di cui si è ricevuto la ProdEstim
/// Environment dell'item
/// Stima ProdEstimate serializzata
///
Task SaveProdEstAsync(string uID, string prodEstim);
///
/// Validazione record:
/// - controllo state vs estimate
/// - segnala il numero dei record aggiornati
///
/// Elenco record da verificare
Task ValidateAsync(List list2chk);
#endregion Public Methods
}
}