Files
mapo-core/MP.Data/Repository/Anag/IAnagRepository.cs
T
Samuele Locatelli 9055eaf73c SPEC:
- aggiunta pagina operatori
- completato fix
2026-06-03 18:05:59 +02:00

208 lines
8.3 KiB
C#

using MP.Core.DTO;
using MP.Data.DbModels;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace MP.Data.Repository.Anag
{
public interface IAnagRepository
{
#region Public Methods
/// <summary>
/// Stacca un nuovo counter x il tipo richiesto
/// </summary>
/// <param name="cntType">Tipo di contatore</param>
/// <returns>Modello del contatore aggiornato</returns>
Task<AnagCountersModel> AnagCountersGetNextAsync(string cntType);
/// <summary>
/// Restituisce l'anagrafica EVENTI generalmente disponibile per OGNI macchina
/// </summary>
/// <param name="TableName">Nome Table x filtro (std: EvList)</param>
/// <param name="FieldName">Nome Field x filtro (std: Common)</param>
/// <returns>Lista di eventi generali</returns>
Task<List<vSelEventiBCodeModel>> AnagEventiGeneralAsync(string TableName = "EvList", string FieldName = "Common");
/// <summary>
/// Elenco Gruppi tipo Azienda
/// </summary>
/// <returns>Lista di modelli anagrafica gruppi</returns>
Task<List<AnagGruppiModel>> AnagGruppiAziendeAsync();
/// <summary>
/// Delete record AnagraficaGruppi
/// </summary>
/// <param name="updRec">Record da eliminare</param>
/// <returns>True se l'eliminazione avvenuta</returns>
Task<bool> AnagGruppiDeleteAsync(AnagGruppiModel updRec);
/// <summary>
/// Elenco Gruppi tipo Fasi
/// </summary>
/// <returns>Lista di modelli anagrafica gruppi</returns>
Task<List<AnagGruppiModel>> AnagGruppiFaseAsync();
/// <summary>
/// Gruppi x tipo modalit Async
/// </summary>
/// <param name="tipoGruppo">Tipo di gruppo (es. REPARTO, FASE, AZIENDA)</param>
/// <returns>Lista di modelli anagrafica gruppi</returns>
Task<List<AnagGruppiModel>> AnagGruppiGetTipoAsync(string tipoGruppo);
/// <summary>
/// Elenco Gruppi tipo REPARTO (x associazione Macchine-Operatori) in formato DTO con conteggi del numero record trovati
/// </summary>
/// <returns>Lista di DTO reparti con conteggio macchine e operatori</returns>
Task<List<RepartiDTO>> AnagGruppiRepartoDtoAsync();
/// <summary>
/// Upsert record AnagraficaGruppi (solo codice/descrizione)
/// </summary>
/// <param name="updRec">Record da inserire o aggiornare</param>
/// <returns>True se l'operazione riuscita</returns>
Task<bool> AnagGruppiUpsertAsync(AnagGruppiModel updRec);
/// <summary>
/// Elenco valori ammessi x Stati commessa (es Yacht Baglietto)
/// </summary>
/// <returns>Lista di valori ammessi</returns>
Task<List<ListValuesModel>> AnagStatiCommAsync();
/// <summary>
/// Elenco valori ammessi x Tipo articoli
/// </summary>
/// <returns>Lista di valori ammessi</returns>
Task<List<ListValuesModel>> AnagTipoArtLvAsync();
/// <summary>
/// Conteggio num articoli Async
/// </summary>
/// <returns>Conteggio totale articoli</returns>
Task<int> ArticoliCountAsync();
/// <summary>
/// Conteggio articoli data condizione ricerca
/// </summary>
/// <param name="tipoArt">Tipo articolo</param>
/// <param name="azienda">Azienda</param>
/// <param name="searchVal">Valore di ricerca</param>
/// <returns>Conteggio risultati ricerca</returns>
Task<int> ArticoliCountSearchAsync(string tipoArt = "*", string azienda = "*", string searchVal = "");
/// <summary>
/// Conteggio articoli IMPIEGATI (da stored stp_ART_getUsed) Async
/// </summary>
/// <returns>Conteggio articoli impiegati</returns>
Task<int> ArticoliCountUsedAsync();
/// <summary>
/// Eliminazione Record Articolo
/// </summary>
/// <param name="currRec">Record da eliminare</param>
/// <returns>True se eliminato</returns>
Task<bool> ArticoliDeleteRecordAsync(AnagArticoliModel currRec);
/// <summary>
/// Restituisce elenco articoli dato tipo (es KIT)
/// </summary>
/// <param name="tipo">Tipo articolo (es. KIT)</param>
/// <param name="azienda">Azienda (opzionale)</param>
/// <returns>Lista di articoli per tipo</returns>
Task<List<AnagArticoliModel>> ArticoliGetByTipoAsync(string tipo, string azienda = "*");
/// <summary>
/// Elenco tabella Articoli da filtro
/// </summary>
/// <param name="numRecord">Numero massimo di record</param>
/// <param name="tipoArt">Tipo articolo</param>
/// <param name="azienda">Azienda</param>
/// <param name="searchVal">Valore di ricerca</param>
/// <returns>Lista di articoli cercati</returns>
Task<List<AnagArticoliModel>> ArticoliGetSearchAsync(int numRecord, string tipoArt = "*", string azienda = "*", string searchVal = "");
/// <summary>
/// Elenco tabella Articoli NON IMPIEGATI (da stored stp_ART_getNotUsed) Async
/// </summary>
/// <returns>Lista di articoli non impiegati</returns>
Task<List<AnagArticoliModel>> ArticoliGetUnusedAsync();
/// <summary>
/// Elenco tabella Articoli IMPIEGATI (da stored stp_ART_getUsed) Async
/// </summary>
/// <returns>Lista di articoli non impiegati</returns>
Task<List<AnagArticoliModel>> ArticoliGetUsedAsync();
/// <summary>
/// Dizionario associazione ODL/PODL
/// </summary>
/// <returns>Lista di articoli in kit</returns>
Task<List<AnagArticoliModel>> ArticoliInKitAsync();
/// <summary>
/// Update Record Articolo
/// </summary>
/// <param name="editRec">Record da aggiornare</param>
/// <returns>True se aggiornato</returns>
Task<bool> ArticoliUpdateRecord(AnagArticoliModel editRec);
/// <summary>
/// Elenco Gruppi tipo REPARTOin formato DTO con conteggi del numero record trovati filtrati per operatore
/// </summary>
/// <returns>Lista di DTO reparti con conteggio macchine e operatori</returns>
Task<List<RepartiDTO>> GruppiRepartoDtoByOperAsync(int matrOpr);
#if false
/// <summary>
/// Elenco codice articoli che abbiano dati Dossier
/// </summary>
/// <returns>Lista di codici articolo</returns>
Task<List<string>> ArticleWithDossierAsync();
#endif
/// <summary>
/// Elenco valori ammessi x tabella/colonna Async
/// </summary>
/// <param name="tabName">Nome tabella</param>
/// <param name="fieldName">Nome colonna</param>
/// <returns>Lista di valori ammessi</returns>
Task<List<ListValuesModel>> ListValuesFiltAsync(string tabName, string fieldName);
/// <summary>
/// Elenco Macchine dato operatore secondo gruppi (macchine/operatore)
/// </summary>
/// <param name="MatrOpr">Matricola operatore</param>
/// <returns>Lista di macchine</returns>
Task<List<MacchineModel>> MacchineByMatrOperAsync(int MatrOpr);
/// <summary>
/// Elenco da tabella Macchine filtro x gruppo
/// </summary>
/// <param name="codGruppo">Codice gruppo</param>
/// <returns>Lista di macchine</returns>
Task<List<MacchineModel>> MacchineGetFiltAsync(string codGruppo);
/// <summary>
/// Elenco operatori dato filtro gruppo
/// </summary>
/// <param name="codGruppo">Codice gruppo</param>
/// <returns>Lista di operatori</returns>
Task<List<AnagOperatoriModel>> OperatoriGetFiltAsync(string codGruppo);
/// <summary>
/// Dizionario associazione ODL/PODL
/// </summary>
/// <param name="missingIds">Lista di ID mancanti</param>
/// <returns>Dizionario di associazione</returns>
Task<Dictionary<int, int>> PODL_getDictOdlPodlAsync(List<int> missingIds);
/// <summary>
/// Recupero dizionario traduzioni
/// </summary>
/// <param name="lingua">Codice lingua</param>
/// <returns>Dizionario di traduzioni</returns>
Dictionary<string, string> VocabolarioGetLang(string lingua);
#endregion Public Methods
}
}