From 145399b6d2aaf2cbc2b1ae42a2610b4c217677a7 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 13 Apr 2026 17:59:45 +0200 Subject: [PATCH] Fix errore data-ora ODL in retrieve stored multirow in single record --- MP.Data/Controllers/MpIocController.cs | 84 ++++++++++++++++---------- 1 file changed, 53 insertions(+), 31 deletions(-) diff --git a/MP.Data/Controllers/MpIocController.cs b/MP.Data/Controllers/MpIocController.cs index 6e9e2e69..3a3cfa77 100644 --- a/MP.Data/Controllers/MpIocController.cs +++ b/MP.Data/Controllers/MpIocController.cs @@ -101,7 +101,7 @@ namespace MP.Data.Controllers bool fatto = false; using (var dbCtx = new MoonProContext(_configuration)) { - var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina); + var IdxMacchina = new SqlParameter("@pIdxMacchina", idxMacchina); var InizioStato = new SqlParameter("@InizioStato", inizioStato); var IdxStato = new SqlParameter("@IdxStato", idxStato); var CodArticolo = new SqlParameter("@CodArticolo", codArt); @@ -111,7 +111,7 @@ namespace MP.Data.Controllers var result = dbCtx .Database - .ExecuteSqlRaw("exec dbo.stp_DDB_InsStatoBatch @IdxMacchina, @InizioStato, @IdxStato, @CodArticolo, @Value, @MatrOpr, @pallet", IdxMacchina, InizioStato, IdxStato, CodArticolo, Value, MatrOpr, Pallet); + .ExecuteSqlRaw("exec dbo.stp_DDB_InsStatoBatch @pIdxMacchina, @InizioStato, @IdxStato, @CodArticolo, @Value, @MatrOpr, @pallet", IdxMacchina, InizioStato, IdxStato, CodArticolo, Value, MatrOpr, Pallet); // indico eseguito! fatto = result > 0; @@ -504,12 +504,12 @@ namespace MP.Data.Controllers { try { - var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina); - var dbRes = dbCtx - .DbSetODLExp - .FromSqlRaw("EXEC stp_ODL_getByMacchina @IdxMacchina", IdxMacchina) - .AsNoTracking() - .FirstOrDefault(); + var pIdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina); + var dbRes = (dbCtx.DbSetODLExp + .FromSqlRaw("EXEC stp_ODL_getByMacchina @IdxMacchina", pIdxMacchina) + .AsNoTracking() + .ToList()) // Esegue la query e scarica i risultati in memoria + .FirstOrDefault(); // Prende il primo elemento dalla lista in RAM answ = dbRes ?? new(); } catch (Exception exc) @@ -532,12 +532,13 @@ namespace MP.Data.Controllers { try { - var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina); - var dbRes = await dbCtx - .DbSetODLExp - .FromSqlRaw("EXEC stp_ODL_getByMacchina @IdxMacchina", IdxMacchina) - .AsNoTracking() - .FirstOrDefaultAsync(); + var pIdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina); + // attenzione: se la stored resituisce una tabella, il primo elemento va recuperato in RAM!!! + var dbRes = (await dbCtx.DbSetODLExp + .FromSqlRaw("EXEC stp_ODL_getByMacchina @IdxMacchina", pIdxMacchina) + .AsNoTracking() + .ToListAsync()) // Esegue la query e scarica i risultati in memoria + .FirstOrDefault(); // Prende il primo elemento dalla lista in RAM answ = dbRes ?? new(); } catch (Exception exc) @@ -562,12 +563,12 @@ namespace MP.Data.Controllers { try { - var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina); + var IdxMacchina = new SqlParameter("@pIdxMacchina", idxMacchina); var DataFrom = new SqlParameter("@dataFrom", dtStart); var DataTo = new SqlParameter("@dataTo", dtEnd); dbResult = dbCtx .DbSetODLExp - .FromSqlRaw("EXEC stp_ODL_getByMacchinaPeriodo @IdxMacchina, @dataFrom, @dataTo", IdxMacchina, DataFrom, DataTo) + .FromSqlRaw("EXEC stp_ODL_getByMacchinaPeriodo @pIdxMacchina, @dataFrom, @dataTo", IdxMacchina, DataFrom, DataTo) .AsNoTracking() .ToList(); } @@ -580,7 +581,7 @@ namespace MP.Data.Controllers } /// - /// Stato prod macchina + /// Conteggio PzProd Macchina /// /// /// @@ -589,12 +590,33 @@ namespace MP.Data.Controllers PzProdModel dbResult = new PzProdModel(); using (var dbCtx = new MoonProContext(_configuration)) { - var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina); - dbResult = dbCtx + var pIdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina); + dbResult = (dbCtx .DbSetPzProd - .FromSqlRaw("EXEC stp_PzProd_getByMacchina @IdxMacchina", IdxMacchina) + .FromSqlRaw("EXEC stp_PzProd_getByMacchina @IdxMacchina", pIdxMacchina) .AsNoTracking() - .FirstOrDefault(); + .ToList()) + .FirstOrDefault(); // recupero da RAM + } + return dbResult; + } + /// + /// Conteggio PzProd Macchina Async + /// + /// + /// + public async Task PezziProdMacchinaAsync(string idxMacchina) + { + PzProdModel dbResult = new PzProdModel(); + using (var dbCtx = new MoonProContext(_configuration)) + { + var pIdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina); + dbResult = (await dbCtx + .DbSetPzProd + .FromSqlRaw("EXEC stp_PzProd_getByMacchina @IdxMacchina", pIdxMacchina) + .AsNoTracking() + .ToListAsync()) + .FirstOrDefault(); // recupero da RAM } return dbResult; } @@ -716,11 +738,11 @@ namespace MP.Data.Controllers List dbResult = new List(); using (var dbCtx = new MoonProContext(_configuration)) { - var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina); + var IdxMacchina = new SqlParameter("@pIdxMacchina", idxMacchina); var IdxTipo = new SqlParameter("@IdxTipo", idxTipo); dbResult = dbCtx .DbSetSMES - .FromSqlRaw("exec dbo.stp_TS_getByIdxMacchIdxTipoEv @IdxMacchina, @IdxTipo", IdxMacchina, IdxTipo) + .FromSqlRaw("exec dbo.stp_TS_getByIdxMacchIdxTipoEv @pIdxMacchina, @IdxTipo", IdxMacchina, IdxTipo) .AsNoTracking() .AsEnumerable() .ToList(); @@ -738,11 +760,11 @@ namespace MP.Data.Controllers List dbResult = new List(); using (var dbCtx = new MoonProContext(_configuration)) { - var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina); + var IdxMacchina = new SqlParameter("@pIdxMacchina", idxMacchina); var IdxTipo = new SqlParameter("@IdxTipo", idxTipo); dbResult = dbCtx .DbSetSMES - .FromSqlRaw("exec dbo.stp_TS_getUserForcedTrans @IdxMacchina, @IdxTipo", IdxMacchina, IdxTipo) + .FromSqlRaw("exec dbo.stp_TS_getUserForcedTrans @pIdxMacchina, @IdxTipo", IdxMacchina, IdxTipo) .AsNoTracking() .AsEnumerable() .ToList(); @@ -781,11 +803,11 @@ namespace MP.Data.Controllers StatoProdModel dbResult = new StatoProdModel(); using (var dbCtx = new MoonProContext(_configuration)) { - var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina); + var IdxMacchina = new SqlParameter("@pIdxMacchina", idxMacchina); var DataOra = new SqlParameter("@DataOra ", dtReq); var rawData = dbCtx .DbSetStatoProd - .FromSqlRaw("EXEC stp_StatoProd_getByMacchina @IdxMacchina, @DataOra ", IdxMacchina, DataOra) + .FromSqlRaw("EXEC stp_StatoProd_getByMacchina @pIdxMacchina, @DataOra ", IdxMacchina, DataOra) .AsNoTracking() .AsEnumerable() .ToList(); @@ -823,11 +845,11 @@ namespace MP.Data.Controllers List dbResult = new List(); using (var dbCtx = new MoonProContext(_configuration)) { - var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacc); + var IdxMacchina = new SqlParameter("@pIdxMacchina", idxMacc); dbResult = dbCtx .DbSetMSFD - .FromSqlRaw("exec dbo.stp_MSFD_getMacc @IdxMacchina", IdxMacchina) + .FromSqlRaw("exec dbo.stp_MSFD_getMacc @pIdxMacchina", IdxMacchina) .AsNoTracking() .AsEnumerable() .ToList(); @@ -845,11 +867,11 @@ namespace MP.Data.Controllers List dbResult = new List(); using (var dbCtx = new MoonProContext(_configuration)) { - var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacc); + var IdxMacchina = new SqlParameter("@pIdxMacchina", idxMacc); dbResult = dbCtx .DbSetMSFD - .FromSqlRaw("exec dbo.stp_MSFD_getMulti @IdxMacchina", IdxMacchina) + .FromSqlRaw("exec dbo.stp_MSFD_getMulti @pIdxMacchina", IdxMacchina) .AsNoTracking() .AsEnumerable() .ToList();