diff --git a/MP.Data/Controllers/MpSpecController.cs b/MP.Data/Controllers/MpSpecController.cs
index f9229d82..39568dbe 100644
--- a/MP.Data/Controllers/MpSpecController.cs
+++ b/MP.Data/Controllers/MpSpecController.cs
@@ -465,6 +465,8 @@ namespace MP.Data.Controllers
.DbSetPODL
.Where(x => (x.IdxOdl == 0) && (x.KeyRichiesta.Contains(keyRichPart) || keyRichPart == "*") && (codArt == "*" || x.CodArticolo.Contains(codArt)))
.AsNoTracking()
+ .Include(m => m.MachineNav)
+ .Include(a => a.ArticoloNav)
.OrderBy(x => x.InsertDate)
.ToList();
}
@@ -625,6 +627,7 @@ namespace MP.Data.Controllers
currRec.KeyRichiesta = editRec.KeyRichiesta;
currRec.NumPezzi = editRec.NumPezzi;
currRec.Tcassegnato = editRec.Tcassegnato;
+ currRec.Note = editRec.Note;
dbCtx.Entry(currRec).State = EntityState.Modified;
}
else
diff --git a/MP.Data/DatabaseModels/PODLModel.cs b/MP.Data/DatabaseModels/PODLModel.cs
index 73b5b19d..2575e287 100644
--- a/MP.Data/DatabaseModels/PODLModel.cs
+++ b/MP.Data/DatabaseModels/PODLModel.cs
@@ -55,6 +55,17 @@ namespace MP.Data.DatabaseModels
}
}
+ ///
+ /// Navigazione oggetto Machine
+ ///
+ [ForeignKey("IdxMacchina")]
+ public virtual Macchine MachineNav { get; set; } = null!;
+ ///
+ /// Navigazione oggetto Articolo
+ ///
+ [ForeignKey("CodArticolo")]
+ public virtual AnagArticoli ArticoloNav { get; set; } = null!;
+
#endregion Public Properties
}
}
\ No newline at end of file
diff --git a/MP.SPEC/Components/ListODL.razor.cs b/MP.SPEC/Components/ListODL.razor.cs
index 3acc8de4..13af41c6 100644
--- a/MP.SPEC/Components/ListODL.razor.cs
+++ b/MP.SPEC/Components/ListODL.razor.cs
@@ -133,10 +133,6 @@ namespace MP.SPEC.Components
}
private int totalCount { get; set; } = 0;
- //{
- // get => MessageService.totalCount;
- // set => MessageService.totalCount = value;
- //}
#endregion Private Properties
diff --git a/MP.SPEC/Components/ListPODL.razor b/MP.SPEC/Components/ListPODL.razor
index 966b1e2e..b7bf7cb8 100644
--- a/MP.SPEC/Components/ListPODL.razor
+++ b/MP.SPEC/Components/ListPODL.razor
@@ -25,6 +25,7 @@ else
|
-
+
+
|
@record.CodArticolo
+ @record.ArticoloNav.DescArticolo
|
@tradFase(record.KeyRichiesta) |
@record.IdxMacchina
+ @record.MachineNav.Descrizione
|
@record.NumPezzi
@@ -49,6 +53,16 @@ else
@record.Tcassegnato.ToString("N3")
|
@record.Note |
+
+ @if (@record.Attivabile)
+ {
+
+ }
+ else
+ {
+
+ }
+ |
@if (POdlDelEnabled(record.IdxOdl))
{
diff --git a/MP.SPEC/Components/ListPODL.razor.cs b/MP.SPEC/Components/ListPODL.razor.cs
index 6e3d1422..08e811b7 100644
--- a/MP.SPEC/Components/ListPODL.razor.cs
+++ b/MP.SPEC/Components/ListPODL.razor.cs
@@ -15,6 +15,9 @@ namespace MP.SPEC.Components
[Parameter]
public EventCallback RecordSel { get; set; }
+ [Parameter]
+ public EventCallback updateRecordCount { get; set; }
+
#endregion Public Properties
#region Public Methods
@@ -51,6 +54,31 @@ namespace MP.SPEC.Components
#region Protected Methods
+ protected async Task cloneRecord(PODLModel selRec)
+ {
+ // creo record duplicato...
+ PODLModel newRec = new PODLModel()
+ {
+ Attivabile = selRec.Attivabile,
+ CodArticolo = selRec.CodArticolo,
+ CodCli = selRec.CodCli,
+ CodGruppo = selRec.CodGruppo,
+ DueDate = selRec.DueDate,
+ IdxMacchina = selRec.IdxMacchina,
+ IdxOdl = selRec.IdxOdl,
+ IdxPromessa = 0,
+ InsertDate = selRec.InsertDate,
+ KeyBCode = selRec.KeyBCode,
+ KeyRichiesta = selRec.KeyRichiesta,
+ Note = $"DUPLICATED - {selRec.Note}",
+ NumPezzi = selRec.NumPezzi,
+ Priorita = selRec.Priorita,
+ PzPallet = selRec.PzPallet,
+ Tcassegnato = selRec.Tcassegnato
+ };
+ await RecordSel.InvokeAsync(newRec);
+ }
+
///
/// Eliminazione record selezionato (previa conferma)
///
@@ -73,6 +101,10 @@ namespace MP.SPEC.Components
MsgService.EA_SearchUpdated += OnSeachUpdated;
MsgService.EA_StatoSearch += MsgService_EA_StatoSearch;
ListStati = await MDService.AnagStatiComm();
+ }
+
+ protected override async Task OnParametersSetAsync()
+ {
await reloadData();
}
@@ -148,11 +180,7 @@ namespace MP.SPEC.Components
set => MsgService.StateSel = value;
}
- private int totalCount
- {
- get => MsgService.totalCount;
- set => MsgService.totalCount = value;
- }
+ private int totalCount { get; set; } = 0;
#endregion Private Properties
@@ -182,6 +210,7 @@ namespace MP.SPEC.Components
ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
await Task.Delay(1);
await InvokeAsync(() => StateHasChanged());
+ await updateRecordCount.InvokeAsync(totalCount);
isLoading = false;
}
diff --git a/MP.SPEC/Components/ParamsFilter.razor b/MP.SPEC/Components/ParamsFilter.razor
index 7642a4c3..1be0c622 100644
--- a/MP.SPEC/Components/ParamsFilter.razor
+++ b/MP.SPEC/Components/ParamsFilter.razor
@@ -98,14 +98,16 @@
}
}
- @if (dtMax == null)
+ @if (selDtMax == null)
{
}
else
{
-
-
+
+
+
+
}
diff --git a/MP.SPEC/Components/ParamsFilter.razor.cs b/MP.SPEC/Components/ParamsFilter.razor.cs
index f2989711..fba1461c 100644
--- a/MP.SPEC/Components/ParamsFilter.razor.cs
+++ b/MP.SPEC/Components/ParamsFilter.razor.cs
@@ -182,6 +182,7 @@ namespace MP.SPEC.Components
currFilt.CurrPage = 0;
currFilt.lastUpdate = $"{DateTime.Now:yyyy/MM/dd HH:mm:ss}";
currFilt.dtMax = RoundDatetime(5);
+ currFilt.dtMin = RoundDatetime(5).AddHours(-2);
SelFilter = currFilt;
}
@@ -201,11 +202,11 @@ namespace MP.SPEC.Components
// fermo udpate
liveUpdate = false;
// se non ho data rif uso adesso...
- DateTime dtMax = SelFilter.dtMax == null ? DateTime.Now : (DateTime)SelFilter.dtMax;
- DateTime dtMin = SelFilter.dtMin == null ? DateTime.Now : (DateTime)SelFilter.dtMin;
+ DateTime dtMax = selDtMax == null ? DateTime.Now : (DateTime)selDtMax;
+ DateTime dtMin = selDtMin == null ? DateTime.Now : (DateTime)selDtMin;
// aggiungo 2 sec
dtMax = dtMax.AddSeconds(15);
- dtMin = dtMin.AddMinutes(-30);
+ //dtMin = dtMin.AddMinutes(-30);
await MDService.DossiersTakeParamsSnapshotLast(selMacchina, dtMin, dtMax);
lastUpdate = $"{DateTime.Now:yyyy/MM/dd HH:mm:ss}";
}
@@ -213,6 +214,7 @@ namespace MP.SPEC.Components
protected void toggleParams()
{
showEditPar = !showEditPar;
+ selDtMax = null;
}
protected async Task toggleUpdate()
@@ -225,7 +227,7 @@ namespace MP.SPEC.Components
}
else
{
- dtMax = null;
+ selDtMax = null;
}
}
@@ -244,7 +246,7 @@ namespace MP.SPEC.Components
#region Private Properties
- private DateTime? dtMax
+ private DateTime? selDtMax
{
get => SelFilter.dtMax;
set
@@ -263,7 +265,7 @@ namespace MP.SPEC.Components
}
}
}
- private DateTime? dtMin
+ private DateTime? selDtMin
{
get => SelFilter.dtMin;
set
diff --git a/MP.SPEC/Data/MpDataService.cs b/MP.SPEC/Data/MpDataService.cs
index ab2d312b..2c9116a5 100644
--- a/MP.SPEC/Data/MpDataService.cs
+++ b/MP.SPEC/Data/MpDataService.cs
@@ -368,7 +368,7 @@ namespace MP.SPEC.Data
redisDb.StringSet(currKey, "", TimeSpan.FromSeconds(1));
return answ;
}
-
+
///
/// Effettua salvataggio snapshot parametri (con stored) + svuota eventuale cache redis
///
@@ -421,35 +421,6 @@ namespace MP.SPEC.Data
return answ;
}
- ///
- /// Esegue flush memoria redis dato pattern
- ///
- ///
- ///
- private async Task ExecFlushRedisPattern(RedisValue pattern)
- {
- bool answ = false;
- var listEndpoints = redisConnAdmin.GetEndPoints();
- foreach (var endPoint in listEndpoints)
- {
- //var server = redisConnAdmin.GetServer(listEndpoints[0]);
- var server = redisConnAdmin.GetServer(endPoint);
- if (server != null)
- {
- var keyList = server.Keys(redisDb.Database, pattern);
- foreach (var item in keyList)
- {
- await redisDb.KeyDeleteAsync(item);
- }
- // brutalmente rimuovo intero contenuto DB... DANGER
- //await server.FlushDatabaseAsync();
- answ = true;
- }
- }
-
- return answ;
- }
-
///
/// Elenco ultimi n record flux log dato macchina e flusso (ordinato x data registrazione)
///
@@ -670,15 +641,25 @@ namespace MP.SPEC.Data
#region Private Fields
private const string redisBaseAddr = "MP:";
+
private const string redisConfKey = redisBaseAddr + "SPEC:Cache:Config";
+
private const string redisDossByMac = redisBaseAddr + "SPEC:Cache:DossByMac";
+
private const string redisFluxByMac = redisBaseAddr + "SPEC:Cache:FluxByMac";
+
private const string redisMacByFlux = redisBaseAddr + "SPEC:Cache:MacByFlux";
+
private const string redisMacList = redisBaseAddr + "SPEC:Cache:MacList";
+
private const string redisStatoCom = redisBaseAddr + "SPEC:Cache:StatoCom";
+
private const string redisTipoArt = redisBaseAddr + "SPEC:Cache:TipoArt";
+
private static IConfiguration _configuration = null!;
+
private static ILogger _logger = null!;
+
private static Logger Log = LogManager.GetCurrentClassLogger();
///
@@ -699,5 +680,38 @@ namespace MP.SPEC.Data
private int redisLongTimeCache = 5;
#endregion Private Fields
+
+ #region Private Methods
+
+ ///
+ /// Esegue flush memoria redis dato pattern
+ ///
+ ///
+ ///
+ private async Task ExecFlushRedisPattern(RedisValue pattern)
+ {
+ bool answ = false;
+ var listEndpoints = redisConnAdmin.GetEndPoints();
+ foreach (var endPoint in listEndpoints)
+ {
+ //var server = redisConnAdmin.GetServer(listEndpoints[0]);
+ var server = redisConnAdmin.GetServer(endPoint);
+ if (server != null)
+ {
+ var keyList = server.Keys(redisDb.Database, pattern);
+ foreach (var item in keyList)
+ {
+ await redisDb.KeyDeleteAsync(item);
+ }
+ // brutalmente rimuovo intero contenuto DB... DANGER
+ //await server.FlushDatabaseAsync();
+ answ = true;
+ }
+ }
+
+ return answ;
+ }
+
+ #endregion Private Methods
}
}
\ No newline at end of file
diff --git a/MP.SPEC/MP.SPEC.csproj b/MP.SPEC/MP.SPEC.csproj
index 0a551df9..0c5728b0 100644
--- a/MP.SPEC/MP.SPEC.csproj
+++ b/MP.SPEC/MP.SPEC.csproj
@@ -5,7 +5,7 @@
enable
enable
MP.SPEC
- 6.16.2209.2717
+ 6.16.2210.510
diff --git a/MP.SPEC/Pages/Articoli.razor b/MP.SPEC/Pages/Articoli.razor
index 8e161a2b..2cc76697 100644
--- a/MP.SPEC/Pages/Articoli.razor
+++ b/MP.SPEC/Pages/Articoli.razor
@@ -135,7 +135,8 @@
{
|
-
+
+
|
@record.CodArticolo
diff --git a/MP.SPEC/Pages/Articoli.razor.cs b/MP.SPEC/Pages/Articoli.razor.cs
index 2dabf683..577db802 100644
--- a/MP.SPEC/Pages/Articoli.razor.cs
+++ b/MP.SPEC/Pages/Articoli.razor.cs
@@ -136,6 +136,10 @@ namespace MP.SPEC.Pages
}
ListAziende = await MDService.ElencoAziende();
ListTipoArt = await MDService.AnagTipoArtLV();
+ }
+
+ protected override async Task OnParametersSetAsync()
+ {
await reloadData();
}
@@ -155,6 +159,21 @@ namespace MP.SPEC.Pages
currRecord = selRec;
await Task.Delay(1);
}
+ protected async Task cloneRecord(AnagArticoli selRec)
+ {
+ // creo record duplicato...
+ AnagArticoli newRec = new AnagArticoli()
+ {
+ Azienda = selRec.Azienda,
+ CodArticolo = selRec.CodArticolo,
+ DescArticolo = $"CLONE - { selRec.DescArticolo }",
+ Disegno = selRec.Disegno,
+ Tipo=selRec.Tipo
+ };
+ currRecord = newRec;
+ await Task.Delay(1);
+ }
+
protected async Task update(AnagArticoli selRec)
{
diff --git a/MP.SPEC/Pages/PODL.razor b/MP.SPEC/Pages/PODL.razor
index 46c6fe3e..9ce35a87 100644
--- a/MP.SPEC/Pages/PODL.razor
+++ b/MP.SPEC/Pages/PODL.razor
@@ -42,7 +42,7 @@
-
+
@if (currRecord != null)
{
@@ -77,6 +77,12 @@
+
+
+
+
@@ -195,7 +217,7 @@
}
else
{
-
+
}
| |