Fix gestione filtro completo x ODL

This commit is contained in:
Samuele Locatelli
2022-11-24 15:48:35 +01:00
parent d866ba3d95
commit 2ec0254e4c
16 changed files with 297 additions and 62 deletions
+35 -9
View File
@@ -3,6 +3,7 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using MP.Data.DatabaseModels;
using NLog;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -546,22 +547,47 @@ namespace MP.Data.Controllers
/// <param name="inCorso">Stato ODL: true=in corso/completato</param>
/// <param name="codArt">Cod articolo</param>
/// <param name="keyRichPart">KeyRich (parziale) da cercare (es cod stato x yacht)</param>
/// <param name="Reparto">Reparto selezionato</param>
/// <param name="IdxMacchina">Macchina selezionata</param>
/// <param name="startDate">Data inizio</param>
/// <param name="endDate">Data fine</param>
/// <returns></returns>
public List<ODLModel> ListODLFilt(bool inCorso, string codArt, string keyRichPart, string IdxMacchina, DateTime startDate, DateTime endDate)
public List<ODLExpModel> ListODLFilt(bool inCorso, string codArt, string keyRichPart, string Reparto, string IdxMacchina, DateTime startDate, DateTime endDate)
{
List<ODLModel> dbResult = new List<ODLModel>();
List<ODLExpModel> dbResult = new List<ODLExpModel>();
using (var dbCtx = new MoonProContext(_configuration))
{
var InCorso = new SqlParameter("@InCorso", inCorso);
var CodArt = new SqlParameter("@CodArt", codArt);
var KeyRich = new SqlParameter("@KeyRich", keyRichPart);
var CodGruppo = new SqlParameter("@CodGruppo", Reparto);
var IdxMacc = new SqlParameter("@IdxMacchina", IdxMacchina);
var DataFrom = new SqlParameter("@DataFrom", startDate);
var DataTo = new SqlParameter("@DataTo", endDate);
dbResult = dbCtx
.DbSetODL
.Where(x => ((inCorso && x.DataFine == null) || ((!inCorso && x.DataFine != null) && x.DataInizio >= startDate && x.DataInizio <= endDate)) && (x.KeyRichiesta.Contains(keyRichPart) || keyRichPart == "*") && (x.IdxMacchina.Contains(IdxMacchina) || IdxMacchina == "*") && (codArt == "*" || x.CodArticolo.Contains(codArt)))
.AsNoTracking()
.Include(m => m.MachineNav)
.Include(a => a.ArticoloNav)
.OrderByDescending(x => x.IdxOdl)
.ToList();
.DbSetODLExp
.FromSqlRaw("EXEC stp_ODL_getByFiltSpec @InCorso, @CodArt, @KeyRich, @CodGruppo, @IdxMacchina, @DataFrom, @DataTo", InCorso, CodArt, KeyRich, CodGruppo, IdxMacc, DataFrom, DataTo)
.AsNoTracking()
//.AsEnumerable()
.ToList();
#if false
dbResult = dbCtx
.DbSetODL
.Where(x => ((inCorso && x.DataFine == null) || ((!inCorso && x.DataFine != null)
&& x.DataInizio >= startDate && x.DataInizio <= endDate))
&& (x.KeyRichiesta.Contains(keyRichPart) || keyRichPart == "*")
//&& (x.MachineNav.Contains(IdxMacchina) || Reparto == "*")
&& (x.IdxMacchina.Contains(IdxMacchina) || IdxMacchina == "*")
&& (codArt == "*" || x.CodArticolo.Contains(codArt)))
.AsNoTracking()
.Include(m => m.MachineNav)
.Include(a => a.ArticoloNav)
.OrderByDescending(x => x.IdxOdl)
.ToList();
#endif
}
return dbResult;
}