@@ -67,7 +34,7 @@ else
|
- Elenco Controlli
+ Registro Scarti
|
@@ -81,33 +48,27 @@ else
Art: @item.CodArticolo
-
- ODL:
@($"ODL{item.IdxOdl:000000000}")
+
+ @item.Descrizione
- @if (item.EsitoOk)
- {
-
- }
- else
- {
-
- }
+ @item.Qta pz
- @($"{item.DataOra:ddd dd.MM.yy HH:mm:ss}")
+ @($"{item.DataOra:ddd dd.MM.yy HH:mm:ss}")
+
@item.Operatore
-
+
@if (!string.IsNullOrEmpty(item.Note))
{
-
@item.Note
+
Nota: @item.Note
}
diff --git a/MP-TAB-SERV/Components/ScrapMan.razor.cs b/MP-TAB-SERV/Components/ScrapMan.razor.cs
index 84c0e14c..a9c8c9f6 100644
--- a/MP-TAB-SERV/Components/ScrapMan.razor.cs
+++ b/MP-TAB-SERV/Components/ScrapMan.razor.cs
@@ -27,7 +27,7 @@ namespace MP_TAB_SERV.Components
await Task.Delay(1);
if (!string.IsNullOrEmpty(IdxMaccSel))
{
- ListComplete = await TabDServ.RegControlliFilt(IdxMaccSel, IdxOdl, CurrPeriodo.Inizio, CurrPeriodo.Fine, false);
+ ListComplete = await TabDServ.RegScartiGetFilt(IdxMaccSel, IdxOdl, CurrPeriodo.Inizio, CurrPeriodo.Fine, false);
TotalCount = ListComplete.Count;
// esegue paginazione
UpdateTable();
@@ -40,13 +40,10 @@ namespace MP_TAB_SERV.Components
#region Protected Properties
- protected string ConfTitle
- {
- get => showInsert ? "Nascondi Controllo" : "Registra Controllo";
- }
+
- protected List
ListComplete { get; set; } = new List();
- protected List ListPaged { get; set; } = new List();
+ protected List ListComplete { get; set; } = new List();
+ protected List ListPaged { get; set; } = new List();
[Inject]
protected MessageService MServ { get; set; } = null!;
@@ -69,15 +66,7 @@ namespace MP_TAB_SERV.Components
}
}
- protected async Task SaveKo()
- {
- isProcessing = true;
- await TabDServ.RegControlliInsert(IdxMaccSel, MServ.MatrOpr, false, noteKo, DateTime.Now);
- showInsert = false;
- showNote = false;
- await doUpdate();
- isProcessing = false;
- }
+
protected void SaveNumRec(int newNum)
{
@@ -85,15 +74,7 @@ namespace MP_TAB_SERV.Components
UpdateTable();
}
- protected async Task SaveOk()
- {
- isProcessing = true;
- await TabDServ.RegControlliInsert(IdxMaccSel, MServ.MatrOpr, true, noteKo, DateTime.Now);
- showInsert = false;
- showNote = false;
- await doUpdate();
- isProcessing = false;
- }
+
protected void SavePage(int newNum)
{
@@ -127,20 +108,7 @@ namespace MP_TAB_SERV.Components
await doUpdate();
}
- protected void ShowKo()
- {
- showNote = true;
- }
-
- protected void ToggleBtn()
- {
- showInsert = !showInsert;
- if (showInsert)
- {
- noteKo = "";
- showNote = false;
- }
- }
+
protected void UpdateTable()
{
@@ -161,11 +129,8 @@ namespace MP_TAB_SERV.Components
private static Logger Log = LogManager.GetCurrentClassLogger();
private bool isProcessing = false;
- private string noteKo = "";
private int NumRecPage = 10;
private int PageNum = 1;
- private bool showInsert = false;
- private bool showNote = false;
private int TotalCount = 0;
private bool useOdl = false;
diff --git a/MP-TAB-SERV/MP-TAB-SERV.csproj b/MP-TAB-SERV/MP-TAB-SERV.csproj
index f1c4f6a3..b5d122d0 100644
--- a/MP-TAB-SERV/MP-TAB-SERV.csproj
+++ b/MP-TAB-SERV/MP-TAB-SERV.csproj
@@ -3,7 +3,7 @@
net6.0
enable
- 6.16.2310.1614
+ 6.16.2310.1616
enable
MP_TAB_SERV
diff --git a/MP-TAB-SERV/Resources/ChangeLog.html b/MP-TAB-SERV/Resources/ChangeLog.html
index f6f6de29..8dbeecb3 100644
--- a/MP-TAB-SERV/Resources/ChangeLog.html
+++ b/MP-TAB-SERV/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
Modulo MAPOSPEC
- Versione: 6.16.2310.1614
+ Versione: 6.16.2310.1616
Note di rilascio:
-
diff --git a/MP-TAB-SERV/Resources/VersNum.txt b/MP-TAB-SERV/Resources/VersNum.txt
index 8bf83e7e..82d7e6ce 100644
--- a/MP-TAB-SERV/Resources/VersNum.txt
+++ b/MP-TAB-SERV/Resources/VersNum.txt
@@ -1 +1 @@
-6.16.2310.1614
+6.16.2310.1616
diff --git a/MP-TAB-SERV/Resources/manifest.xml b/MP-TAB-SERV/Resources/manifest.xml
index 8437644c..87dba021 100644
--- a/MP-TAB-SERV/Resources/manifest.xml
+++ b/MP-TAB-SERV/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 6.16.2310.1614
+ 6.16.2310.1616
https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/MP-TAB-SERV.zip
https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/ChangeLog.html
false
diff --git a/MP.Data/Controllers/MpTabController.cs b/MP.Data/Controllers/MpTabController.cs
index 4a9ab556..c5ac908c 100644
--- a/MP.Data/Controllers/MpTabController.cs
+++ b/MP.Data/Controllers/MpTabController.cs
@@ -5,6 +5,7 @@ using MP.Data.DatabaseModels;
using NLog;
using System;
using System.Collections.Generic;
+using System.Data;
using System.Linq;
using System.Threading.Tasks;
using static MP.Data.Objects.Enums;
@@ -754,6 +755,60 @@ namespace MP.Data.Controllers
return fatto;
}
+ ///
+ /// Aggiunta record RegistroScarti
+ ///
+ ///
+ ///
+ public async Task RegScartiInsert(RegistroScartiModel newRec)
+ {
+ bool fatto = false;
+ using (var dbCtx = new MoonProContext(_configuration))
+ {
+ var IdxMacchina = new SqlParameter("@idxMacchina", newRec.IdxMacchina);
+ var DataOra = new SqlParameter("@DataOra", newRec.DataOra);
+ var Causale = new SqlParameter("@Causale", newRec.Causale);
+ var Qta = new SqlParameter("@Qta", newRec.Qta);
+ var Note = new SqlParameter("@Note", newRec.Note);
+ var MatrOpr = new SqlParameter("@MatrOpr", newRec.MatrOpr);
+
+ var result = await dbCtx
+ .Database
+ .ExecuteSqlRawAsync("exec dbo.stp_RS_insert @idxMacchina, @DataOra, @Causale, @Qta, @Note, @MatrOpr", IdxMacchina, DataOra, Causale, Qta, Note, MatrOpr);
+ // indico eseguito!
+ fatto = result > 0;
+ }
+ return fatto;
+ }
+ ///
+ /// Aggiunta record RegistroScarti
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public List RegScartiGetFilt(string idxMacchina, int idxODL, DateTime dataFrom, DateTime dataTo, bool showMulti)
+ {
+ List dbResult = new List();
+ using (var dbCtx = new MoonProContext(_configuration))
+ {
+ var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina);
+ var IdxODL = new SqlParameter("@IdxODL", idxODL);
+ var DataFrom = new SqlParameter("@DataFrom", dataFrom);
+ var DataTo = new SqlParameter("@DataTo", dataTo);
+ var ShowMulti = new SqlParameter("@showMulti", showMulti);
+
+ dbResult = dbCtx
+ .DbSetRegScarti
+ .FromSqlRaw("EXEC .stp_RS_getByFilt @IdxMacchina, @IdxODL, @DataFrom, @DataTo, @ShowMulti", IdxMacc, IdxODL, DataFrom, DataTo, ShowMulti)
+ .AsNoTracking()
+ .ToList();
+ }
+ return dbResult;
+ }
+
///
/// Effettua ricalcolo MSE x macchina indicata
///
@@ -1042,6 +1097,23 @@ namespace MP.Data.Controllers
return answ;
}
+ ///
+ /// Elenco causali scarto
+ ///
+ ///
+ public List VSCS_getAll()
+ {
+ List dbResult = new List();
+ using (var dbCtx = new MoonProContext(_configuration))
+ {
+ dbResult = dbCtx
+ .DbSetVSCS
+ .AsNoTracking()
+ .ToList();
+ }
+ return dbResult;
+ }
+
///
/// Elenco ultimi ODL x macchina
///
diff --git a/MP.Data/DatabaseModels/RegistroScartiModel.cs b/MP.Data/DatabaseModels/RegistroScartiModel.cs
new file mode 100644
index 00000000..2082712d
--- /dev/null
+++ b/MP.Data/DatabaseModels/RegistroScartiModel.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+
+
+#nullable disable
+//
+// This is here so CodeMaid doesn't reorganize this document
+//
+namespace MP.Data.DatabaseModels
+{
+ public partial class RegistroScartiModel
+ {
+ #region Public Properties
+
+ public string IdxMacchina { get; set; } = "";
+ public DateTime DataOra { get; set; } = DateTime.Now;
+ public string Causale { get; set; } = "";
+ public string Operatore { get; set; } = "";
+
+ public int Qta { get; set; } = 0;
+ public string Note { get; set; } = "";
+ public string CodArticolo { get; set; } = "";
+ public int MatrOpr { get; set; } = 0;
+ public DateTime? DataOraProdRec { get; set; } = null;
+ public string Descrizione { get; set; } = "";
+ public string cssClass { get; set; } = "";
+ public string icona { get; set; } = "";
+
+ #endregion Public Properties
+ }
+}
\ No newline at end of file
diff --git a/MP.Data/DatabaseModels/vSelCauScartoModel.cs b/MP.Data/DatabaseModels/vSelCauScartoModel.cs
new file mode 100644
index 00000000..05b41c1a
--- /dev/null
+++ b/MP.Data/DatabaseModels/vSelCauScartoModel.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+
+#nullable disable
+//
+// This is here so CodeMaid doesn't reorganize this document
+//
+namespace MP.Data.DatabaseModels
+{
+ public partial class vSelCauScartoModel
+ {
+ [Key]
+ public string value { get; set; } = "";
+ public string label { get; set; } = "";
+ public string cssClass { get; set; } = "";
+ public string icona { get; set; } = "";
+ }
+}
diff --git a/MP.Data/MoonProContext.cs b/MP.Data/MoonProContext.cs
index 4368603a..d3fccf85 100644
--- a/MP.Data/MoonProContext.cs
+++ b/MP.Data/MoonProContext.cs
@@ -37,7 +37,7 @@ namespace MP.Data
#region Public Properties
-
+
public virtual DbSet DbSetAlarmLog { get; set; }
public virtual DbSet DbSetStatArticoli { get; set; }
public virtual DbSet DbSetArticoli { get; set; }
@@ -58,7 +58,7 @@ namespace MP.Data
public virtual DbSet DbSetStatOdl { get; set; }
public virtual DbSet DbSetPzProd { get; set; }
public virtual DbSet DbSetEvList { get; set; }
- public virtual DbSet DbSetDDB { get; set; }
+ public virtual DbSet DbSetDDB { get; set; }
public virtual DbSet DbSetVocabolario { get; set; }
public virtual DbSet DbOperatori { get; set; }
public virtual DbSet DbSetGrp2Oper { get; set; }
@@ -74,6 +74,7 @@ namespace MP.Data
public virtual DbSet DbSetStatoProd { get; set; }
public virtual DbSet DbSetTurniMacc { get; set; }
public virtual DbSet DbSetRegControlli { get; set; }
+ public virtual DbSet DbSetRegScarti { get; set; }
public virtual DbSet DbSetStAct { get; set; }
@@ -90,6 +91,7 @@ namespace MP.Data
public virtual DbSet DbSetVSEB { get; set; }
public virtual DbSet DbSetVSODL { get; set; }
+ public virtual DbSet DbSetVSCS { get; set; }
#endregion Public Properties
@@ -541,6 +543,10 @@ namespace MP.Data
{
entity.HasKey(e => new { e.IdxMacchina, e.InizioStato });
});
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => new { e.IdxMacchina, e.DataOra, e.Causale});
+ });
modelBuilder.Entity(entity =>
{
@@ -548,9 +554,12 @@ namespace MP.Data
});
modelBuilder.Entity(entity =>
{
- //entity.HasKey(e => e.value);
entity.ToView("v_selODL");
});
+ modelBuilder.Entity(entity =>
+ {
+ entity.ToView("v_selCauScarto");
+ });
OnModelCreatingPartial(modelBuilder);
diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs
index 2949513d..556db2a9 100644
--- a/MP.Data/Services/TabDataService.cs
+++ b/MP.Data/Services/TabDataService.cs
@@ -486,7 +486,7 @@ namespace MP.Data.Services
}
catch (Exception exc)
{
- string logMsg = $"Eccezione in checkCambiaStatoBatch(6) | tipoInputEvento: {tipoEv} |macchina: {newRec.IdxMacchina} | IdxTipo: {newRec.IdxTipo} | CodArticolo: {newRec.CodArticolo} | Value {newRec.Value} | MatrOpr {newRec.MatrOpr} | Pallet {newRec.pallet}{Environment.NewLine}{exc}";
+ string logMsg = $"Eccezione in checkCambiaStatoBatch(6) | tipoInputEvento: {tipoEv} |macchina: {newRec.IdxMacchina} | IdxTipo: {newRec.IdxTipo} | CodArticolo: {newRec.CodArticolo} | Value: {newRec.Value} | MatrOpr: {newRec.MatrOpr} | Pallet: {newRec.pallet}{Environment.NewLine}{exc}";
Log.Error(logMsg);
}
}
@@ -670,6 +670,46 @@ namespace MP.Data.Services
return result;
}
+ ///
+ /// Restituisce elenco RS filtrato
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task
> RegScartiGetFilt(string idxMacchina, int idxODL, DateTime dataFrom, DateTime dataTo, bool showMulti)
+ {
+ // setup parametri costanti
+ string source = "DB";
+ Stopwatch sw = new Stopwatch();
+ sw.Start();
+ List? result = new List();
+ // cerco in redis...
+ string currKey = $"{redisBaseKey}:RegScarti:{idxMacchina}:{idxODL}:{dataFrom:yyyyyMMdd-HHmm}:{dataFrom:yyyyyMMdd-HHmm}:{showMulti}";
+ RedisValue rawData = await redisDb.StringGetAsync(currKey);
+ if (rawData.HasValue)
+ {
+ result = JsonConvert.DeserializeObject>($"{rawData}");
+ source = "REDIS";
+ }
+ else
+ {
+ result = dbTabController.RegScartiGetFilt(idxMacchina, idxODL, dataFrom, dataTo, showMulti);
+ // serializzp e salvo...
+ rawData = JsonConvert.SerializeObject(result);
+ await redisDb.StringSetAsync(currKey, rawData, FastCache);
+ }
+ if (result == null)
+ {
+ result = new List();
+ }
+ sw.Stop();
+ Log.Debug($"RegScartiGetFilt | {source} | {sw.Elapsed.TotalMilliseconds}ms");
+ return result;
+ }
+
///
/// Registra controllo
///
@@ -686,6 +726,29 @@ namespace MP.Data.Services
return answ;
}
+ ///
+ /// Aggiunta record RegistroScarti
+ ///
+ ///
+ ///
+ public async Task RegScartiInsert(RegistroScartiModel newRec)
+ {
+ bool answ = false;
+ try
+ {
+ // inserisco evento
+ answ = await dbTabController.RegScartiInsert(newRec);
+ // reset cache eventi/commenti
+ await FlushCache("RegScarti");
+ }
+ catch (Exception exc)
+ {
+ string logMsg = $"Eccezione in RegScartiInsert | macchina: {newRec.IdxMacchina} | DataOra: {newRec.DataOra} | Causale: {newRec.Causale} | MatrOpr: {newRec.MatrOpr} | Qta {newRec.Qta} | Note: {newRec.Note}{Environment.NewLine}{exc}";
+ Log.Error(logMsg);
+ }
+ return answ;
+ }
+
///
/// Resetta (rileggendo) i dati della macchina
///
@@ -1163,6 +1226,40 @@ namespace MP.Data.Services
return result;
}
+ ///
+ /// Elenco causali scarto
+ ///
+ ///
+ public async Task> VSCS_getAll()
+ {
+ string source = "DB";
+ Stopwatch sw = new Stopwatch();
+ sw.Start();
+ List? result = new List();
+ // cerco in redis...
+ string currKey = $"{redisBaseKey}:VSCS";
+ RedisValue rawData = await redisDb.StringGetAsync(currKey);
+ if (rawData.HasValue)
+ {
+ result = JsonConvert.DeserializeObject>($"{rawData}");
+ source = "REDIS";
+ }
+ else
+ {
+ result = await Task.FromResult(dbTabController.VSCS_getAll());
+ // serializzp e salvo...
+ rawData = JsonConvert.SerializeObject(result);
+ await redisDb.StringSetAsync(currKey, rawData, UltraLongCache);
+ }
+ if (result == null)
+ {
+ result = new List();
+ }
+ sw.Stop();
+ Log.Debug($"VSCS_getAll | {source} | {sw.Elapsed.TotalMilliseconds}ms");
+ return result;
+ }
+
///
/// Elenco ultimi ODL x macchina
///