Files

116 lines
4.6 KiB
C#

namespace EgwCoreLib.Lux.Data.Services.Sales
{
public interface IOfferRowService
{
#region Public Methods
/// <summary>
/// Eliminazione record
/// </summary>
/// <param name="rec2del"></param>
/// <returns></returns>
Task<bool> DeleteAsync(OfferRowModel model);
/// <summary>
/// Effettua fix TipoImg righe child dell' Offer indicato
/// </summary>
/// <param name="offerId">Key</param>
/// <returns></returns>
Task<bool> FixImgTypeAsync(int offerId);
/// <summary>
/// Effettua fix UID righe child del temoplate indicato e restituisce elenco UID da chiamare x refresh
/// </summary>
/// <param name="offerId">Key</param>
/// <returns></returns>
Task<List<string>> FixUidAsync(int offerId);
/// <summary>
/// Recupera record OfferRow per ID
/// </summary>
/// <param name="offerRowId">ID Riga Offer</param>
/// <returns></returns>
Task<OfferRowModel?> GetByIdAsync(int offerRowId);
/// <summary>
/// Elenco filtrato (parent) OfferRow da DB
/// </summary>
/// <param name="offerId">ID Padre</param>
/// <returns></returns>
Task<List<OfferRowModel>> GetByParentAsync(int offerId);
/// <summary>
/// Recupera record OfferRow per UID
/// </summary>
/// <param name="offerRowUid">UID Riga Offer</param>
/// <returns></returns>
Task<OfferRowModel?> GetByUidAsync(string offerRowUid);
/// <summary>
/// Aggiorna stato await per riga offer
/// </summary>
/// <param name="offerRowId">ID Riga Offer</param>
/// <param name="awaitBom">Nuovo valore flag AwaitBom</param>
/// <param name="awaitPrice">Nuovo valore flag AwaitPrice</param>
/// <param name="flushCache">Se true, invalida cache correlata</param>
/// <returns></returns>
Task<bool> UpdateAwaitStateAsync(int offerRowId, bool? awaitBom, bool? awaitPrice, bool flushCache = false);
/// <summary>
/// Effettua update della BOM (esplicita) della Riga Offer
/// </summary>
/// <param name="OfferRowID">ID Riga Offer da aggiornare</param>
/// <param name="newBomList">BOM List esplicita</param>
/// <returns></returns>
Task<bool> UpdateBomAsync(int OfferRowID, List<BomItemDTO> newBomList);
/// <summary>
/// Effettua update della BOM (esplicita) della Riga Offer
/// </summary>
/// <param name="uID">UID Riga Offer da aggiornare</param>
/// <param name="newBomList">BOM List esplicita</param>
/// <returns></returns>
Task<bool> UpdateBomAsync(string uID, List<BomItemDTO> newBomList);
/// <summary>
/// Effettua update delle info legate al file per il Offer indicato
/// </summary>
/// <param name="updRec">Riga Offer coi dati da aggiornare</param>
/// <returns></returns>
Task<bool> UpdateFileDataAsync(OfferRowModel updRec);
/// <summary>
/// Effettua update del dizionario richieste ancora da applicare (stato dirty)
/// </summary>
/// <param name="offerRowID">ID Riga Offer da aggiornare</param>
/// <param name="reqDict">Dizionario richieste da salvare x review manuale</param>
/// <returns></returns>
Task<bool> UpdatePendReqAsync(int offerRowID, Dictionary<string, string> reqDict);
/// <summary>
/// Effettua update del valore serializzato della Riga Offer
/// </summary>
/// <param name="offerRowID">ID Riga Offer da aggiornare</param>
/// <param name="serStruct">Serializzazione oggetto (es JWD)</param>
/// <returns></returns>
Task<bool> UpdateSerStructAsync(int offerRowID, string serStruct);
/// <summary>
/// Effettua update del valore serializzato della Riga Offer + dizionario richieste ancora da applicare (stato dirty)
/// </summary>
/// <param name="offerRowID">ID Riga Offer da aggiornare</param>
/// <param name="serStruct">Serializzazione oggetto (es JWD)</param>
/// <param name="reqDict">Dizionario richieste da salvare x review manuale</param>
/// <returns></returns>
Task<bool> UpdateSerStructDirtyAsync(int offerRowID, string serStruct, Dictionary<string, string> reqDict);
/// <summary>
/// Upsert record OfferRow
/// </summary>
/// <param name="upsRec"></param>
/// <returns></returns>
Task<OfferRowModel?> UpsertAsync(OfferRowModel upsRec);
#endregion Public Methods
}
}