- completato fix editing lista valori ammissibili x tipo
- ok editing
This commit is contained in:
Samuele Locatelli
2022-07-23 16:05:38 +02:00
parent 190e572bce
commit 0ad15c90c3
6 changed files with 147 additions and 73 deletions
+70 -42
View File
@@ -32,8 +32,6 @@ namespace MP.Data.Controllers
return AnagGruppiGetTipo("AZIENDA");
}
/// <summary>
/// Elenco Gruppi
/// </summary>
@@ -73,28 +71,14 @@ namespace MP.Data.Controllers
}
/// <summary>
/// Elenco tabella Articoli da filtro
/// Elenco valori ammessi x Tipo articoli
/// </summary>
/// <param name="numRecord"></param>
/// <param name="searchVal"></param>
/// <returns></returns>
public List<DatabaseModels.AnagArticoli> ArticoliGetSearch(int numRecord, string searchVal = "")
public List<DatabaseModels.ListValues> AnagTipoArtLV()
{
List<DatabaseModels.AnagArticoli> dbResult = new List<DatabaseModels.AnagArticoli>();
using (var dbCtx = new MoonProContext(_configuration))
{
dbResult = dbCtx
.DbSetArticoli
.AsNoTracking()
.Where(x => x.CodArticolo.Contains(searchVal) || x.DescArticolo.Contains(searchVal) || x.Disegno.Contains(searchVal) || string.IsNullOrEmpty(searchVal))
.OrderBy(x => x.CodArticolo)
.Take(numRecord)
.ToList();
}
return dbResult;
return ListValuesFilt("AnagArticoli", "Tipo");
}
/// <summary>
/// Eliminazione Record
/// </summary>
@@ -124,6 +108,52 @@ namespace MP.Data.Controllers
}
return fatto;
}
/// <summary>
/// Elenco tabella Articoli da filtro
/// </summary>
/// <param name="numRecord"></param>
/// <param name="searchVal"></param>
/// <returns></returns>
public List<DatabaseModels.AnagArticoli> ArticoliGetSearch(int numRecord, string searchVal = "")
{
List<DatabaseModels.AnagArticoli> dbResult = new List<DatabaseModels.AnagArticoli>();
using (var dbCtx = new MoonProContext(_configuration))
{
dbResult = dbCtx
.DbSetArticoli
.AsNoTracking()
.Where(x => x.CodArticolo.Contains(searchVal) || x.DescArticolo.Contains(searchVal) || x.Disegno.Contains(searchVal) || string.IsNullOrEmpty(searchVal))
.OrderBy(x => x.CodArticolo)
.Take(numRecord)
.ToList();
}
return dbResult;
}
/// <summary>
/// Elenco tabella Articoli da filtro
/// </summary>
/// <param name="numRecord"></param>
/// <param name="azienda"></param>
/// <param name="searchVal"></param>
/// <returns></returns>
public List<DatabaseModels.AnagArticoli> ArticoliGetSearch(int numRecord, string azienda = "*", string searchVal = "")
{
List<DatabaseModels.AnagArticoli> dbResult = new List<DatabaseModels.AnagArticoli>();
using (var dbCtx = new MoonProContext(_configuration))
{
dbResult = dbCtx
.DbSetArticoli
.AsNoTracking()
.Where(x => (x.Azienda == azienda || azienda == "*") && (x.CodArticolo.Contains(searchVal) || x.DescArticolo.Contains(searchVal) || x.Disegno.Contains(searchVal) || string.IsNullOrEmpty(searchVal)))
.OrderBy(x => x.CodArticolo)
.Take(numRecord)
.ToList();
}
return dbResult;
}
/// <summary>
/// Update Record
/// </summary>
@@ -165,29 +195,6 @@ namespace MP.Data.Controllers
return fatto;
}
/// <summary>
/// Elenco tabella Articoli da filtro
/// </summary>
/// <param name="numRecord"></param>
/// <param name="azienda"></param>
/// <param name="searchVal"></param>
/// <returns></returns>
public List<DatabaseModels.AnagArticoli> ArticoliGetSearch(int numRecord, string azienda = "*", string searchVal = "")
{
List<DatabaseModels.AnagArticoli> dbResult = new List<DatabaseModels.AnagArticoli>();
using (var dbCtx = new MoonProContext(_configuration))
{
dbResult = dbCtx
.DbSetArticoli
.AsNoTracking()
.Where(x => (x.Azienda == azienda || azienda == "*") && (x.CodArticolo.Contains(searchVal) || x.DescArticolo.Contains(searchVal) || x.Disegno.Contains(searchVal) || string.IsNullOrEmpty(searchVal)))
.OrderBy(x => x.CodArticolo)
.Take(numRecord)
.ToList();
}
return dbResult;
}
/// <summary>
/// Elenco da tabella Macchine
/// </summary>
@@ -210,6 +217,27 @@ namespace MP.Data.Controllers
{
}
/// <summary>
/// Elenco valori ammessi x tabella/colonna
/// </summary>
/// <param name="tabName"></param>
/// <param name="fieldName"></param>
/// <returns></returns>
public List<DatabaseModels.ListValues> ListValuesFilt(string tabName, string fieldName)
{
List<DatabaseModels.ListValues> dbResult = new List<DatabaseModels.ListValues>();
using (var dbCtx = new MoonProContext(_configuration))
{
dbResult = dbCtx
.DbSetListValues
.Where(x => x.TableName == tabName && x.FieldName == fieldName)
.AsNoTracking()
.OrderBy(x => x.ordinal)
.ToList();
}
return dbResult;
}
/// <summary>
/// Elenco da tabella Macchine
/// </summary>
+15 -14
View File
@@ -1,27 +1,28 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
#nullable disable
namespace MP.Data.DatabaseModels
{
[Table("AnagraficaGruppi")]
public partial class AnagGruppi
[Table("ListValues")]
public partial class ListValues
{
#region Public Properties
//[Key, DatabaseGenerated(DatabaseGeneratedOption.None), MaxLength(50)]
public string CodGruppo { get; set; }
//[MaxLength(50)]
public string TipoGruppo { get; set; }
//[MaxLength(250)]
public string DescrGruppo { get; set; }
[MaxLength(50)]
public string TableName { get; set; }
public bool SelEnabled { get; set; }
[MaxLength(50)]
public string FieldName { get; set; }
[MaxLength(50)]
public string value { get; set; }
[MaxLength(50)]
public string label { get; set; }
public int ordinal { get; set; }
#endregion Public Properties
}
+25
View File
@@ -40,6 +40,7 @@ namespace MP.Data
public virtual DbSet<MappaStatoExpl> DbSetMSE { get; set; }
public virtual DbSet<ConfigModel> DbSetConfig { get; set; }
public virtual DbSet<AnagGruppi> DbSetAnagGruppi { get; set; }
public virtual DbSet<ListValues> DbSetListValues { get; set; }
#endregion Public Properties
@@ -278,6 +279,30 @@ namespace MP.Data
entity.Property(e => e.SelEnabled)
.HasColumnName("SelEnabled");
});
modelBuilder.Entity<ListValues>(entity =>
{
entity.HasKey(e => new { e.TableName, e.FieldName, e.value});
//entity.Property(e => e.TableName)
// .HasMaxLength(50)
// .HasColumnName("TableName");
//entity.Property(e => e.FieldName)
// .HasMaxLength(50)
// .HasColumnName("FieldName");
//entity.Property(e => e.value)
// .HasMaxLength(50)
// .HasColumnName("value");
//entity.Property(e => e.label)
// .HasMaxLength(50)
// .HasColumnName("label");
//entity.Property(e => e.ordinal)
// .HasColumnName("ordinal");
});
OnModelCreatingPartial(modelBuilder);
+8 -2
View File
@@ -78,9 +78,15 @@ namespace MP.SPEC.Data
/// <param name="numRecord"></param>
/// <param name="searchVal"></param>
/// <returns></returns>
public Task<List<AnagArticoli>> ArticoliGetSearch(int numRecord, string azienda, string searchVal)
public async Task<List<AnagArticoli>> ArticoliGetSearch(int numRecord, string azienda, string searchVal)
{
return Task.FromResult(dbController.ArticoliGetSearch(numRecord, azienda, searchVal));
return await Task.FromResult(dbController.ArticoliGetSearch(numRecord, azienda, searchVal));
}
public async Task<List<ListValues>> AnagTipoArtLV()
{
return await Task.FromResult(dbController.AnagTipoArtLV());
}
/// <summary>
+27 -15
View File
@@ -49,16 +49,24 @@
<input type="text" class="form-control" placeholder="Disegno" @bind-value="@currRecord.Disegno">
</div>
</div>
<div class="col-2">
<div class="input-group">
<span class="input-group-text">Tipo</span>
<input type="text" class="form-control" placeholder="Tipo" @bind-value="@currRecord.Tipo">
<div class="col-1">
<div class="input-group" title="Tipo">
@*<span class="input-group-text">T</span>*@
<select @bind="@currRecord.Tipo" class="form-select text-end">
@if (ListTipoArt != null)
{
foreach (var item in ListTipoArt)
{
<option value="@item.value">@item.label</option>
}
}
</select>
</div>
</div>
<div class="col-2">
<div class="input-group">
@*<span class="input-group-text">Azienda</span>*@
<select @bind="@currRecord.Azienda" class="form-select">
<div class="col-3">
<div class="input-group" title="Azienda">
@*<span class="input-group-text">A</span>*@
<select @bind="@currRecord.Azienda" class="form-select text-end">
@if (ListAziende != null)
{
foreach (var item in ListAziende.Where(x => x.CodGruppo != "*").ToList())
@@ -71,15 +79,19 @@
</div>
</div>
</div>
<div class="row">
<div class="col">
<input type="text" class="form-control" placeholder="Descrizione" @bind-value="@currRecord.DescArticolo">
<div class="row mt-2">
<div class="col-8">
<input type="text" class="form-control" placeholder="Descrizione Articolo" @bind-value="@currRecord.DescArticolo">
</div>
<div class="col">
<button class="btn btn-warning" @onclick="() => cancel()">Annulla <i class="bi bi-x-circle"></i></button>
<div class="col-2">
<div class="d-grid gap-2">
<button class="btn btn-warning" @onclick="() => cancel()">Annulla <i class="bi bi-x-circle"></i></button>
</div>
</div>
<div class="col">
<button class="btn btn-success" @onclick="() => update(currRecord)">Salva <i class="bi bi-save"></i></button>
<div class="col-2">
<div class="d-grid gap-2">
<button class="btn btn-success" @onclick="() => update(currRecord)">Salva <i class="bi bi-save"></i></button>
</div>
</div>
</div>
</div>
+2
View File
@@ -48,6 +48,7 @@ namespace MP.SPEC.Pages
private List<MP.Data.DatabaseModels.AnagArticoli>? ListRecords;
private List<MP.Data.DatabaseModels.AnagArticoli>? SearchRecords;
private List<MP.Data.DatabaseModels.AnagGruppi>? ListAziende;
private List<MP.Data.DatabaseModels.ListValues>? ListTipoArt;
#endregion Private Fields
@@ -199,6 +200,7 @@ namespace MP.SPEC.Pages
MessageService.ShowSearch = false;
MessageService.EA_SearchUpdated += OnSeachUpdated;
ListAziende = await MDService.ElencoAziende();
ListTipoArt = await MDService.AnagTipoArtLV();
await reloadData();
}