namespace EgwCoreLib.Lux.Data.Services.Production
{
public interface IProductionOdlService
{
#region Public Methods
///
/// Assegnazione in blocco degli item agli ODL corrispondenti
///
/// Lista record DB
/// Dizionario parti assegnate
///
Task AssignProdItem2OdlAsync(List dbList, Dictionary<(int phaseId, int resId, string machine, int index), List> dictParts);
///
/// Insert sul DB di un elenco ODL con calcolo della relativa KEY a cui poter, successivamente, collegare i record child (items)
///
/// Lista ODL da inserire
///
///
Task> CreateAsync(List listOdl2ins);
///
/// Recupero record ProdOdl dato Tag/uID
///
/// UID del record
///
Task GetByUidAsync(string uID);
///
/// Elenco PODL non assegnati con struttura DTO appiattita
///
///
Task> GetUnassignOdlDtoAsync();
///
/// Aggiorna record ProdOdl (se trovato) con BOM (raw) ricevuta
///
/// UID del record
/// BOM serializzata
///
Task UpdateBomAsync(string uID, string bomRaw);
///
/// Aggiorna record ProdOdl (se trovato) con ItemListRaw (raw) inviata x calcolo PROD
///
/// UID del record
/// ItemList serializzata
///
Task UpdateItemRawAsync(string uID, string itemListRaw);
///
/// Aggiorna record ProdOdl (se trovato) con RawMaterialList (raw) ricevuta da calcolo PROD
///
/// UID del record
/// Lista materiali serializzata
///
Task UpdateRawMaterialAsync(string uID, string materialListRaw);
///
/// Aggiorna record ProdOdl (se trovato) con BOM (raw) ricevuta
///
/// Record da aggiornare/inserire
///
Task UpsertAsync(ProductionODLModel upsRec);
#endregion Public Methods
}
}