diff --git a/MP-TAB-SERV/Components/FixOdl.razor b/MP-TAB-SERV/Components/FixOdl.razor
index f16f5f60..e8998715 100644
--- a/MP-TAB-SERV/Components/FixOdl.razor
+++ b/MP-TAB-SERV/Components/FixOdl.razor
@@ -82,7 +82,7 @@
@if (IdxOdlSel > 0)
{
-
+
}
diff --git a/MP-TAB-SERV/Components/FixOdl.razor.cs b/MP-TAB-SERV/Components/FixOdl.razor.cs
index 76fb2c2d..1604446c 100644
--- a/MP-TAB-SERV/Components/FixOdl.razor.cs
+++ b/MP-TAB-SERV/Components/FixOdl.razor.cs
@@ -13,9 +13,25 @@ namespace MP_TAB_SERV.Components
#endregion Public Properties
+ #region Protected Fields
+
+ protected bool enableRPO = true;
+ protected int NumRecPage = 5;
+ protected int PageNum = 1;
+ protected int TotalCount = 0;
+
+ #endregion Protected Fields
+
#region Protected Properties
- private List ListSelODL { 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!;
+
+ [Inject]
+ protected NavigationManager NavMan { get; set; } = null!;
protected bool ShowAll
{
@@ -35,6 +51,9 @@ namespace MP_TAB_SERV.Components
}
}
+ [Inject]
+ protected SharedMemService SMServ { get; set; } = null!;
+
[Inject]
protected TabDataService TabDServ { get; set; } = null!;
@@ -44,16 +63,67 @@ namespace MP_TAB_SERV.Components
#region Protected Methods
+ protected override void OnInitialized()
+ {
+ enableRPO = SMServ.GetConfBool("enableRPO");
+ }
+
protected override async Task OnParametersSetAsync()
{
await ReloadData();
}
+ protected void SaveNumRec(int newNum)
+ {
+ NumRecPage = newNum;
+ UpdateTable();
+ }
+
+ protected void SavePage(int newNum)
+ {
+ PageNum = newNum;
+ UpdateTable();
+ }
+
+ protected async Task SetupOdl()
+ {
+ await Task.Delay(1);
+ if (!string.IsNullOrEmpty(IdxMaccCurr) && IdxOdlSel > 0)
+ {
+ if (enableRPO)
+ {
+ // registro ODL retroattivamente...
+ await TabDServ.OdlSetupPromPostuma(IdxOdlSel, MServ.MatrOpr, IdxMaccCurr);
+ }
+ else
+ {
+ // registro ODL retroattivamente...
+ await TabDServ.OdlSetupPostumo(IdxOdlSel, IdxMaccCurr);
+ }
+ }
+
+ // redirect
+ NavMan.NavigateTo(NavMan.Uri, true);
+ }
+
protected void toggleFixOdl()
{
showFixOdl = !showFixOdl;
}
+ protected void UpdateTable()
+ {
+ // esegue paginazione
+ if (TotalCount > NumRecPage)
+ {
+ ListPaged = ListComplete.Skip((PageNum - 1) * NumRecPage).Take(NumRecPage).ToList();
+ }
+ else
+ {
+ ListPaged = ListComplete;
+ }
+ }
+
#endregion Protected Methods
#region Private Fields
@@ -65,6 +135,8 @@ namespace MP_TAB_SERV.Components
#region Private Properties
+ private int IdxOdlSel { get; set; } = 0;
+ private List ListSelODL { get; set; } = new List();
private int numDayOdl { get; set; } = 30;
#endregion Private Properties
@@ -84,45 +156,7 @@ namespace MP_TAB_SERV.Components
UpdateTable();
}
}
- protected void UpdateTable()
- {
- // esegue paginazione
- if (TotalCount > NumRecPage)
- {
- ListPaged = ListComplete.Skip((PageNum - 1) * NumRecPage).Take(NumRecPage).ToList();
- }
- else
- {
- ListPaged = ListComplete;
- }
- }
- protected void SaveNumRec(int newNum)
- {
- NumRecPage = newNum;
- UpdateTable();
- }
- protected void SavePage(int newNum)
- {
- PageNum = newNum;
- UpdateTable();
- }
-
- protected async Task setupOdl()
- {
- await Task.Delay(1);
- }
-
-
- protected List ListComplete { get; set; } = new List();
-
- protected List ListPaged { get; set; } = new List();
- protected int NumRecPage = 5;
- protected int PageNum = 1;
- protected int TotalCount = 0;
-
-
- private int IdxOdlSel { get; set; } = 0;
#endregion Private Methods
}
}
\ No newline at end of file
diff --git a/MP.Data/Controllers/MpTabController.cs b/MP.Data/Controllers/MpTabController.cs
index ee497037..f4207d3b 100644
--- a/MP.Data/Controllers/MpTabController.cs
+++ b/MP.Data/Controllers/MpTabController.cs
@@ -768,6 +768,64 @@ namespace MP.Data.Controllers
return dbResult;
}
+ ///
+ /// Setup ODL Postumo
+ ///
+ ///
+ ///
+ ///
+ public bool OdlSetupPostumo(int idxODL, string idxMacchina)
+ {
+ bool fatto = false;
+ using (var dbCtx = new MoonProContext(_configuration))
+ {
+ try
+ {
+ var IdxODL = new SqlParameter("@idxODL", idxODL);
+ var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina);
+ var result = dbCtx
+ .Database
+ .ExecuteSqlRaw("EXEC stp_ODL_insPostumo @idxODL, @IdxMacchina", IdxODL, IdxMacc);
+ fatto = result != 0;
+ }
+ catch (Exception exc)
+ {
+ Log.Error($"Eccezione durante OdlSetupPostumo{Environment.NewLine}{exc}");
+ }
+ }
+ return fatto;
+ }
+
+ ///
+ /// Setup PODL Postumo
+ ///
+ ///
+ ///
+ ///
+ ///
+ public bool OdlSetupPromPostuma(int idxPromOdl, int matrOpr, string idxMacchina)
+ {
+ bool fatto = false;
+ using (var dbCtx = new MoonProContext(_configuration))
+ {
+ try
+ {
+ var IdxPODL = new SqlParameter("@idxPromessa", idxPromOdl);
+ var MatrOpr = new SqlParameter("@MatrOpr", matrOpr);
+ var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina);
+ var result = dbCtx
+ .Database
+ .ExecuteSqlRaw("EXEC stp_ODL_inizioSetupPromessaPostuma @idxPromessa, @MatrOpr, @IdxMacchina", IdxPODL, MatrOpr, IdxMacc);
+ fatto = result != 0;
+ }
+ catch (Exception exc)
+ {
+ Log.Error($"Eccezione durante OdlSetupPromPostuma{Environment.NewLine}{exc}");
+ }
+ }
+ return fatto;
+ }
+
///
/// Stato prod macchina
///
diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs
index ee730a11..d3b5101a 100644
--- a/MP.Data/Services/TabDataService.cs
+++ b/MP.Data/Services/TabDataService.cs
@@ -1033,6 +1033,92 @@ namespace MP.Data.Services
return answ;
}
+ ///
+ /// Elenco ODL data macchina e periodo
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task> OdlListByMacc(string idxMacchina, DateTime dtStart, DateTime dtEnd)
+ {
+ string source = "DB";
+ Stopwatch sw = new Stopwatch();
+ sw.Start();
+ List? result = new List();
+ // cerco in redis...
+ string currKey = $"{redisBaseKey}:ODL:{idxMacchina}:{dtStart:yyyyMMdd-HHmmss}:{dtEnd:yyyyMMdd-HHmmss}";
+ RedisValue rawData = await redisDb.StringGetAsync(currKey);
+ if (rawData.HasValue)
+ {
+ result = JsonConvert.DeserializeObject>($"{rawData}");
+ source = "REDIS";
+ }
+ else
+ {
+ result = await Task.FromResult(dbTabController.OdlListByMacc(idxMacchina, dtStart, dtEnd));
+ // riordino
+ result = result.OrderByDescending(x => x.DataInizio).ToList();
+ // serializzp e salvo...
+ rawData = JsonConvert.SerializeObject(result);
+ await redisDb.StringSetAsync(currKey, rawData, UltraLongCache);
+ }
+ if (result == null)
+ {
+ result = new List();
+ }
+ sw.Stop();
+ Log.Debug($"OdlListByMacc | {source} | {sw.Elapsed.TotalMilliseconds}ms");
+ return result;
+ }
+
+ ///
+ /// Setup ODL Postumo
+ ///
+ ///
+ ///
+ ///
+ public async Task OdlSetupPostumo(int idxODL, string idxMacchina)
+ {
+ bool answ = false;
+ try
+ {
+ // inserisco evento
+ answ = dbTabController.OdlSetupPostumo(idxODL, idxMacchina);
+ await FlushCache("ODL");
+ }
+ catch (Exception exc)
+ {
+ string logMsg = $"Eccezione in OdlSetupPostumo | macchina: {idxMacchina} | idxODL: {idxODL}{Environment.NewLine}{exc}";
+ Log.Error(logMsg);
+ }
+ return answ;
+ }
+
+ ///
+ /// Setup ODL Postumo
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task OdlSetupPromPostuma(int idxPromOdl, int matrOpr, string idxMacchina)
+ {
+ bool answ = false;
+ try
+ {
+ // inserisco evento
+ answ = dbTabController.OdlSetupPromPostuma(idxPromOdl, matrOpr, idxMacchina);
+ await FlushCache("ODL");
+ }
+ catch (Exception exc)
+ {
+ string logMsg = $"Eccezione in OdlSetupPromPostuma | macchina: {idxMacchina} | idxPromOdl: {idxPromOdl} | MatrOpr: {matrOpr}{Environment.NewLine}{exc}";
+ Log.Error(logMsg);
+ }
+ return answ;
+ }
+
///
/// Stato prod macchina
///
@@ -1990,45 +2076,6 @@ namespace MP.Data.Services
return result;
}
- ///
- /// Elenco ODL data macchina e periodo
- ///
- ///
- ///
- ///
- ///
- public async Task> OdlListByMacc(string idxMacchina, DateTime dtStart, DateTime dtEnd)
- {
- string source = "DB";
- Stopwatch sw = new Stopwatch();
- sw.Start();
- List? result = new List();
- // cerco in redis...
- string currKey = $"{redisBaseKey}:ODL:{idxMacchina}:{dtStart:yyyyMMdd-HHmmss}:{dtEnd:yyyyMMdd-HHmmss}";
- RedisValue rawData = await redisDb.StringGetAsync(currKey);
- if (rawData.HasValue)
- {
- result = JsonConvert.DeserializeObject>($"{rawData}");
- source = "REDIS";
- }
- else
- {
- result = await Task.FromResult(dbTabController.OdlListByMacc(idxMacchina, dtStart, dtEnd));
- // riordino
- result = result.OrderByDescending(x => x.DataInizio).ToList();
- // serializzp e salvo...
- rawData = JsonConvert.SerializeObject(result);
- await redisDb.StringSetAsync(currKey, rawData, UltraLongCache);
- }
- if (result == null)
- {
- result = new List();
- }
- sw.Stop();
- Log.Debug($"OdlListByMacc | {source} | {sw.Elapsed.TotalMilliseconds}ms");
- return result;
- }
-
///
/// Elenco ultimi ODL x macchina
///