diff --git a/MP-TAB-SERV/Components/TechSheetMan.razor.cs b/MP-TAB-SERV/Components/TechSheetMan.razor.cs index cd6dc337..69e1b733 100644 --- a/MP-TAB-SERV/Components/TechSheetMan.razor.cs +++ b/MP-TAB-SERV/Components/TechSheetMan.razor.cs @@ -22,7 +22,7 @@ namespace MP_TAB_SERV.Components protected List ListGruppi { get; set; } = new List(); [Inject] - protected TabDataService TabServ { get; set; } = null!; + protected TabDataService TabDServ { get; set; } = null!; #endregion Protected Properties @@ -34,7 +34,7 @@ namespace MP_TAB_SERV.Components return; if (IdxOdl > 0) { - await TabServ.ST_CheckCleanByOdl(IdxOdl); + await TabDServ.ST_CheckCleanByOdl(IdxOdl); } checkReset(); } @@ -82,7 +82,7 @@ namespace MP_TAB_SERV.Components if (!string.IsNullOrEmpty(CodArticolo)) { // controllo se la macchina è in attrezzaggio... - var rigaStato = TabServ.StatoMacchina(IdxMaccSel); + var rigaStato = TabDServ.StatoMacchina(IdxMaccSel); if (rigaStato != null) { inAttr = (rigaStato.IdxStato == 2); @@ -95,7 +95,7 @@ namespace MP_TAB_SERV.Components private async Task ReloadData() { - ListGruppi = await TabServ.ST_AnagGruppiList(); + ListGruppi = await TabDServ.ST_AnagGruppiList(); } #endregion Private Methods diff --git a/MP-TAB-SERV/Components/TechSheet_ST_ObjView.razor b/MP-TAB-SERV/Components/TechSheet_ST_ObjView.razor index ee9e55fd..445c8ab6 100644 --- a/MP-TAB-SERV/Components/TechSheet_ST_ObjView.razor +++ b/MP-TAB-SERV/Components/TechSheet_ST_ObjView.razor @@ -11,7 +11,7 @@ } else { - + } } @if (!string.IsNullOrEmpty(CurrRec.ValueRead)) diff --git a/MP-TAB-SERV/Components/TechSheet_ST_ObjView.razor.cs b/MP-TAB-SERV/Components/TechSheet_ST_ObjView.razor.cs index a0c20621..86752163 100644 --- a/MP-TAB-SERV/Components/TechSheet_ST_ObjView.razor.cs +++ b/MP-TAB-SERV/Components/TechSheet_ST_ObjView.razor.cs @@ -1,5 +1,7 @@ using global::Microsoft.AspNetCore.Components; +using Microsoft.JSInterop; using MP.Data.DatabaseModels; +using MP.Data.Objects; using MP.Data.Services; namespace MP_TAB_SERV.Components @@ -47,38 +49,66 @@ namespace MP_TAB_SERV.Components public string Traduci(string lemma) { - return SMServ.Traduci($"{baseLang}_{lemma}"); + return SMServ.Traduci($"{baseLang}_{lemma}".ToUpper()); } #endregion Public Methods #region Protected Properties + [Inject] + protected MessageService MServ { get; set; } = null!; + + [Inject] + protected NavigationManager NavMan { get; set; } = null!; + [Inject] protected SharedMemService SMServ { get; set; } = null!; + [Inject] + protected TabDataService TabDServ { get; set; } = null!; + #endregion Protected Properties #region Protected Methods + protected async Task ForceParam() + { + if (!await JSRuntime.InvokeAsync("confirm", Traduci("ConfirmForceParamST"))) + return; + + // registro abilitazione forzatura parametro per un periodo limitato + StCheckOverride newDeroga = new StCheckOverride() + { + CanForce = enableForceParamSchedaTecnica, + Num = CurrRec.Num, + Oggetto = CurrRec.Oggetto, + CodTipo = CurrRec.CodTipo, + CodGruppo = CurrRec.CodGruppo, + IdxST = CurrRec.IdxST, + Utente = $"{MatrOpr}" + }; + // salvo + TabDServ.ST_DerogaSet(newDeroga); + // redirect + NavMan.NavigateTo(NavMan.Uri, true); + } + [Inject] + protected IJSRuntime JSRuntime { get; set; } = null!; + protected override void OnParametersSet() { enableForceParamSchedaTecnica = SMServ.GetConfBool("enableForceParamSchedaTecnica"); baseLang = SMServ.GetConf("baseLang"); - hasDeroga = false; -#if false - try + if (CurrRec != null) + { + hasDeroga = false; + var currDeroga = TabDServ.ST_DerogaGet($"{MatrOpr}", CurrRec.IdxST); + if (currDeroga != null) { - var currDeroga = DataLayerObj.getDerogaSt(idxST); - answ = (currDeroga != null); - if (answ) - { - answ = (currDeroga.CanForce && currDeroga.Num == dataNum && currDeroga.CodGruppo == dataGroup && currDeroga.CodTipo == dataType && currDeroga.Oggetto == dataOggetto); - } + hasDeroga = (currDeroga.IdxST == CurrRec.IdxST && currDeroga.CanForce && currDeroga.Num == CurrRec.Num && currDeroga.CodGruppo == CurrRec.CodGruppo && currDeroga.CodTipo == CurrRec.CodTipo && currDeroga.Oggetto == CurrRec.Oggetto); } - catch - { } -#endif + } } #endregion Protected Methods @@ -86,9 +116,20 @@ namespace MP_TAB_SERV.Components #region Private Fields private string baseLang = "IT"; + private bool enableForceParamSchedaTecnica = false; + private bool hasDeroga = false; #endregion Private Fields + + #region Private Properties + + private int MatrOpr + { + get => MServ.MatrOpr; + } + + #endregion Private Properties } } \ No newline at end of file diff --git a/MP-TAB-SERV/MP-TAB-SERV.csproj b/MP-TAB-SERV/MP-TAB-SERV.csproj index 3892bde8..d01e463a 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.2615 + 6.16.2310.2617 enable MP_TAB_SERV diff --git a/MP-TAB-SERV/Resources/ChangeLog.html b/MP-TAB-SERV/Resources/ChangeLog.html index fc02882c..dbc924c8 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.2615

+

Versione: 6.16.2310.2617


Note di rilascio:
  • diff --git a/MP-TAB-SERV/Resources/VersNum.txt b/MP-TAB-SERV/Resources/VersNum.txt index 5875c55f..654a3c88 100644 --- a/MP-TAB-SERV/Resources/VersNum.txt +++ b/MP-TAB-SERV/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2310.2615 +6.16.2310.2617 diff --git a/MP-TAB-SERV/Resources/manifest.xml b/MP-TAB-SERV/Resources/manifest.xml index 82b2e04d..262bcc28 100644 --- a/MP-TAB-SERV/Resources/manifest.xml +++ b/MP-TAB-SERV/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2310.2615 + 6.16.2310.2617 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 5751af8a..ce03850c 100644 --- a/MP.Data/Controllers/MpTabController.cs +++ b/MP.Data/Controllers/MpTabController.cs @@ -2,6 +2,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using MP.Data.DatabaseModels; +using MP.Data.Objects; using NLog; using System; using System.Collections.Generic; @@ -1248,6 +1249,23 @@ namespace MP.Data.Controllers return dbResult; } + public bool SetDerogaSt(StCheckOverride deroga) + { + bool fatto = false; +#if false + try + { + string keyDerogaST = memLayer.ML.redHash($"DerogaSt:{user_std.UtSn.utente}:{deroga.IdxST:000}"); + string rawData = JsonConvert.SerializeObject(deroga); + memLayer.ML.setRSV(keyDerogaST, rawData, 60 * 2); + fatto = true; + } + catch + { } +#endif + return fatto; + } + /// /// Elenco causali scarto /// diff --git a/MP.Data/Objects/StCheckOverride.cs b/MP.Data/Objects/StCheckOverride.cs new file mode 100644 index 00000000..71c381f8 --- /dev/null +++ b/MP.Data/Objects/StCheckOverride.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MP.Data.Objects +{ + public class StCheckOverride + { + #region Public Properties + + public bool CanForce { get; set; } = false; + public string CodGruppo { get; set; } = ""; + public string CodTipo { get; set; } = ""; + public int IdxST { get; set; } = 0; + public int Num { get; set; } = 0; + public int Oggetto { get; set; } = 0; + public string Utente { get; set; } = ""; + + #endregion Public Properties + } +} diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs index 0fe7075e..63aa906f 100644 --- a/MP.Data/Services/TabDataService.cs +++ b/MP.Data/Services/TabDataService.cs @@ -1077,6 +1077,44 @@ namespace MP.Data.Services Log.Debug($"ST_AnagGruppiList | {source} | {sw.Elapsed.TotalMilliseconds}ms"); return result; } + public bool ST_DerogaSet(StCheckOverride deroga) + { + bool fatto = false; + try + { + string keyDerogaST = redHash($"DerogaSt:{deroga.Utente}:{deroga.IdxST:000}"); + string rawData = JsonConvert.SerializeObject(deroga); + redisDb.StringSet(keyDerogaST, rawData, TimeSpan.FromMinutes(2)); + fatto = true; + } + catch (Exception exc) + { + Log.Error($"Eccezione in ST_DerogaSet | Utente: {deroga.Utente} | IdxST: {deroga.IdxST}{Environment.NewLine}{exc}"); + } + return fatto; + } + + /// + /// Dati deroga SchedaTecnica serializzati in REDIS + /// + public StCheckOverride ST_DerogaGet(string Utente, int IdxST) + { + StCheckOverride answ = new StCheckOverride() { IdxST = 0 }; + string keyDerogaST = redHash($"DerogaSt:{Utente}:{IdxST:000}"); + string rawData = redisDb.StringGet(keyDerogaST); + if (!string.IsNullOrEmpty(rawData)) + { + try + { + answ = JsonConvert.DeserializeObject(rawData); + } + catch (Exception exc) + { + Log.Error($"Eccezione in ST_DerogaSet | Utente: {Utente} | IdxST: {IdxST}{Environment.NewLine}{exc}"); + } + } + return answ; + } public List VocabolarioGetAll() {