Update ricerfa articoli x tipo

This commit is contained in:
Samuele Locatelli
2026-05-27 16:20:09 +02:00
parent 9d513edab4
commit fcf3bc8400
6 changed files with 137 additions and 121 deletions
+37 -11
View File
@@ -502,25 +502,51 @@ namespace MP.Data.Controllers
/// Elenco tabella Articoli da filtro
/// </summary>
/// <param name="numRecord"></param>
/// <param name="tipoArt"></param>
/// <param name="azienda"></param>
/// <param name="searchVal"></param>
/// <returns></returns>
public async Task<List<AnagArticoliModel>> ArticoliGetSearchAsync(int numRecord, string azienda = "*", string searchVal = "")
public async Task<List<AnagArticoliModel>> ArticoliGetSearchAsync(int numRecord, string tipoArt = "*", string azienda = "*", string searchVal = "")
{
List<AnagArticoliModel> dbResult = new List<AnagArticoliModel>();
using (var dbCtx = new MoonProContext(options))
using var dbCtx = new MoonProContext(options);
IQueryable<AnagArticoliModel> query = dbCtx.DbSetArticoli
.AsNoTracking();
// filtro tipo articolo
if (tipoArt != "*")
{
dbResult = await dbCtx
.DbSetArticoli
.AsNoTracking()
.Where(x => (azienda == "*" || x.Azienda.ToUpper() == azienda.ToUpper()) && (string.IsNullOrEmpty(searchVal) || x.CodArticolo.Contains(searchVal) || x.DescArticolo.Contains(searchVal) || x.Disegno.Contains(searchVal)))
.OrderBy(x => x.CodArticolo)
.Take(numRecord)
.ToListAsync();
//query = query.Where(x => x.Tipo.ToLower() == tipoArt.ToLower());
query = query.Where(x => EF.Functions.Like(x.Tipo, tipoArt));
}
return dbResult;
// filtro azienda
if (azienda != "*")
{
//query = query.Where(x => x.Azienda.ToLower() == azienda.ToLower());
query = query.Where(x => EF.Functions.Like(x.Azienda, azienda));
}
// filtro ricerca
if (!string.IsNullOrWhiteSpace(searchVal))
{
//query = query.Where(x =>
// x.CodArticolo.Contains(searchVal) ||
// x.DescArticolo.Contains(searchVal) ||
// x.Disegno.Contains(searchVal));
string pattern = $"%{searchVal}%";
query = query.Where(x =>
EF.Functions.Like(x.CodArticolo, pattern) ||
EF.Functions.Like(x.DescArticolo, pattern) ||
EF.Functions.Like(x.Disegno, pattern));
}
return await query
.OrderBy(x => x.CodArticolo)
.Take(numRecord)
.ToListAsync();
}
/// <summary>
/// Elenco tabella Articoli NON IMPIEGATI (da stored stp_ART_getUsed) Async
/// </summary>