+
+
+ @($" {CRecMSE.PezziConf}")
+
+
+ @if (datiProdAct != null && datiProdAct.PzConfScarto > 0)
{
-
- }
- else
- {
-
+ @($"(- {datiProdAct.PzConfScarto})")
}
- }
- else
- {
-
-
-
+
+
+ @($" {CRecMSE.PezziProd}")
- }
+
+
+
+
+
+
+
+
ART:
+
@($"{CRecMSE.CodArticolo}")
+
+
+
ODL:
+
@($"ODL{CRecMSE.IdxOdl:00000000}")
+
+
+
PODL:
+
@($"PODL{CRecMSE.IdxPOdl:00000000}")
+
+
+
}
- @if (enableDisegno && showDraw)
+ else
{
- string docUrl = string.IsNullOrEmpty(CRecMSE.Disegno) ? $"disegni/{CRecMSE.CodArticolo}.pdf" : $"disegni/{CRecMSE.Disegno}.pdf";
-
-
+
+
)
+
+
+
+
+
+ @CRecMSE.DescrizioneStato
+
+
+
+ @(FormatDurata(CRecMSE.Durata))
+
+
+
+
+
+
+
+ @($" {CRecMSE.PezziConf}")
+
+
+ @if (datiProdAct != null && datiProdAct.PzConfScarto > 0)
+ {
+ @($"(- {datiProdAct.PzConfScarto})")
+ }
+
+
+
+
+ @($" {CRecMSE.PezziProd}")
+
+
+
+
+
+
+
+
+
+
+
ART:
+
@($"{CRecMSE.CodArticolo}")
+
+
+
ODL:
+
@($"ODL{CRecMSE.IdxOdl:00000000}")
+
+
+
PODL:
+
@($"PODL{CRecMSE.IdxPOdl:00000000}")
+
+
+
+
}
- @if (showPodl)
- {
-
- }
+ }
+ else
+ {
+
+
+
+
+ @CRecMSE.Nome
+
+
+
+
+
+
+ Cicli Prod
+
+ @if (datiProdAct != null)
+ {
+
@($"{datiProdAct.PzTotODL}")
+ }
+ else
+ {
+
@($"{CRecMSE.PezziProd}")
+ }
+
+ @if (datiProdAct != null)
+ {
+ @if (datiProdAct.Pz2RecTot > 0)
+ {
+
+
+ Da Confermare
+
+
+ @($"{datiProdAct.Pz2RecTot}")
+
+
+ }
+ else
+ {
+
+
+ Da Confermare
+
+
+ @($"{datiProdAct.Pz2RecTot}")
+
+
+ }
+ @if (NumScartiConf > 0)
+ {
+
+
+ Scarti Versati
+
+
+ @($"{NumScartiConf}")
+
+
+ }
+ @if (datiProdAct.PzConfRilav > 0)
+ {
+
+
+ Rilav Versati
+
+
+ @($"{datiProdAct.PzConfRilav}")
+
+
+ }
+
+
+ Buoni Versati
+
+
+ @($"{datiProdAct.PzConfBuoni}")
+
+
+ }
+ @if (CRecMSE.extraVal > 0)
+ {
+
+
+ Qta Extra
+
+
@($"{CRecMSE.extraVal}")
+
+ }
+
+
+
+
+
+
+
+ @if (!string.IsNullOrEmpty(IdxMacchSub))
+ {
+
+ @IdxMacchSub
+
+ }
+
+
+
+
ART
+
@CRecMSE.CodArticolo
+
+
+
ODL
+
@CRecMSE.IdxOdl
+
+
+
PODL:
+
@CRecMSE.IdxPOdl
+
+
+
+
+
+
+
+ @if (showPodl)
+ {
+
+ }
+ else
+ {
+
+ }
+
+
+
+
+
+ @CRecMSE.DescrizioneStato
+
+
+ @(FormatDurata(CRecMSE.Durata))
+
+
+
+ @if (enableDisegno)
+ {
+
+
+ @if (showDraw)
+ {
+
+ }
+ else
+ {
+
+ }
+
+
+ }
+ else
+ {
+
+ }
+
+
+ }
+ @if (enableDisegno && showDraw)
+ {
+ string docUrl = string.IsNullOrEmpty(CRecMSE.Disegno) ? $"disegni/{CRecMSE.CodArticolo}.pdf" : $"disegni/{CRecMSE.Disegno}.pdf";
+
+ }
+ @if (showPodl)
+ {
+
}
}
\ No newline at end of file
diff --git a/MP-TAB3/Components/MachineBlock.razor.cs b/MP-TAB3/Components/MachineBlock.razor.cs
index 69aefb01..ab79bfd9 100644
--- a/MP-TAB3/Components/MachineBlock.razor.cs
+++ b/MP-TAB3/Components/MachineBlock.razor.cs
@@ -428,16 +428,6 @@ namespace MP_TAB3.Components
datiProdAct = SDService.MachProdStGet(IdxMaccCur);
}
isMulti = SMServ.DictMacchMulti[IdxMaccMain] == 1;
-#if false
- if (!string.IsNullOrEmpty(IdxMacchSub))
- {
- }
- else
- {
- //isMulti = false;
- isMulti = SMServ.DictMacchMulti[IdxMaccMain] == 1;
- }
-#endif
// verificare
if (!FullMode || !detailLoaded || doForce)
{
diff --git a/MP-TAB3/Components/MachineBlock.razor.css b/MP-TAB3/Components/MachineBlock.razor.css
index b29e5e7e..04d545b5 100644
--- a/MP-TAB3/Components/MachineBlock.razor.css
+++ b/MP-TAB3/Components/MachineBlock.razor.css
@@ -136,10 +136,6 @@
height: 10rem;
object-fit: cover;
}
-.pholderHeight {
- height: 7rem;
- object-fit: cover;
-}
@media (max-width: 640.98px) {
.imgFitToSize {
height: 7.5rem;
@@ -147,7 +143,4 @@
.card-body {
background-color: transparent;
}
- .pholderHeight {
- height: 5rem;
- }
}
\ No newline at end of file
diff --git a/MP-TAB3/Components/MachineBlock.razor.less b/MP-TAB3/Components/MachineBlock.razor.less
index affeb12c..82838e08 100644
--- a/MP-TAB3/Components/MachineBlock.razor.less
+++ b/MP-TAB3/Components/MachineBlock.razor.less
@@ -152,7 +152,6 @@
--bs-shadow-rgb: var(--bs-dark-rgb);
}
-
.card-body {
background-color: currentColor;
background-image: linear-gradient(121deg, rgba(255, 255, 255, 0.20) -0.71%, rgba(255, 255, 255, 0.05) 97.66%);
@@ -163,11 +162,6 @@
object-fit: cover;
}
-.pholderHeight {
- height: 7rem;
- object-fit: cover;
-}
-
@media (max-width: 640.98px){
.imgFitToSize{
height: 7.5rem;
@@ -175,9 +169,6 @@
.card-body{
background-color: transparent;
}
- .pholderHeight {
- height: 5rem;
- }
}
diff --git a/MP-TAB3/Components/MachineBlock.razor.min.css b/MP-TAB3/Components/MachineBlock.razor.min.css
index 6a0714e0..bea89d3d 100644
--- a/MP-TAB3/Components/MachineBlock.razor.min.css
+++ b/MP-TAB3/Components/MachineBlock.razor.min.css
@@ -1 +1 @@
-.mapBlock{font-family:'Open Sans Condensed',sans-serif;color:#fff;background-image:linear-gradient(#111,#000);min-width:8em;}.text-sizer{font-size:1.1rem;}.labelTop{padding:.1em;width:auto;min-height:0;top:0;left:auto;bottom:auto;color:#fff;background:#2200de;background:rgba(33,36,39,.75);border-radius:15px 15px 0 0;}.scroll-left{height:1.5em;overflow:hidden;position:relative;width:70%;white-space:nowrap;}.scroll-left span{position:absolute;width:100%;height:100%;margin:0;line-height:1.5em;-moz-transform:translateX(0%);-webkit-transform:translateX(0%);transform:translateX(0%);-moz-animation:scroll-left 8s ease infinite;-webkit-animation:scroll-left 8s ease infinite;animation:scroll-left 8s ease infinite;}@keyframes scroll-left{0%{transform:translateX(0%);}30%{transform:translateX(0%);}80%{transform:translateX(-50%);}}.sVe{text-align:left;background:#198754;color:#fff;}.sGi{text-align:left;background:#ffc107;background:rgba(255,220,0,.6);color:#fff;}.sRo{text-align:left;background-color:#e2001a;background:rgba(240,0,10,.6);color:#fff;}.sBl{text-align:left;background:#3690ff;background:rgba(0,80,255,.6);color:#fff;}.sGr{text-align:left;background-color:#bcbcbc;background:rgba(180,180,180,.6);color:#fff;}.shadow{--bs-shadow-rgb:0,0,0;box-shadow:0 .5rem 1rem rgba(var(--bs-shadow-rgb),.15)!important;}.shadow-sm{--bs-shadow-rgb:0,0,0;box-shadow:0 .125rem .25rem rgba(var(--bs-shadow-rgb),.075)!important;}.shadow-lg{--bs-shadow-rgb:0,0,0;box-shadow:0 1rem 3rem rgba(var(--bs-shadow-rgb),.175)!important;}.shadow-none{box-shadow:none!important;}.shadow-primary{--bs-shadow-rgb:var(--bs-primary-rgb);}.shadow-secondary{--bs-shadow-rgb:var(--bs-secondary-rgb);}.shadow-success{--bs-shadow-rgb:var(--bs-success-rgb);}.shadow-info{--bs-shadow-rgb:var(--bs-info-rgb);}.shadow-warning{--bs-shadow-rgb:var(--bs-warning-rgb);}.shadow-danger{--bs-shadow-rgb:var(--bs-danger-rgb);}.shadow-light{--bs-shadow-rgb:var(--bs-light-rgb);}.shadow-dark{--bs-shadow-rgb:var(--bs-dark-rgb);}.card-body{background-color:currentColor;background-image:linear-gradient(121deg,rgba(255,255,255,.2) -.71%,rgba(255,255,255,.05) 97.66%);}.imgFitToSize{height:10rem;object-fit:cover;}.pholderHeight{height:7rem;object-fit:cover;}@media(max-width:640.98px){.imgFitToSize{height:7.5rem;}.card-body{background-color:transparent;}.pholderHeight{height:5rem;}}
\ No newline at end of file
+.mapBlock{font-family:'Open Sans Condensed',sans-serif;color:#fff;background-image:linear-gradient(#111,#000);min-width:8em;}.text-sizer{font-size:1.1rem;}.labelTop{padding:.1em;width:auto;min-height:0;top:0;left:auto;bottom:auto;color:#fff;background:#2200de;background:rgba(33,36,39,.75);border-radius:15px 15px 0 0;}.scroll-left{height:1.5em;overflow:hidden;position:relative;width:70%;white-space:nowrap;}.scroll-left span{position:absolute;width:100%;height:100%;margin:0;line-height:1.5em;-moz-transform:translateX(0%);-webkit-transform:translateX(0%);transform:translateX(0%);-moz-animation:scroll-left 8s ease infinite;-webkit-animation:scroll-left 8s ease infinite;animation:scroll-left 8s ease infinite;}@keyframes scroll-left{0%{transform:translateX(0%);}30%{transform:translateX(0%);}80%{transform:translateX(-50%);}}.sVe{text-align:left;background:#198754;color:#fff;}.sGi{text-align:left;background:#ffc107;background:rgba(255,220,0,.6);color:#fff;}.sRo{text-align:left;background-color:#e2001a;background:rgba(240,0,10,.6);color:#fff;}.sBl{text-align:left;background:#3690ff;background:rgba(0,80,255,.6);color:#fff;}.sGr{text-align:left;background-color:#bcbcbc;background:rgba(180,180,180,.6);color:#fff;}.shadow{--bs-shadow-rgb:0,0,0;box-shadow:0 .5rem 1rem rgba(var(--bs-shadow-rgb),.15)!important;}.shadow-sm{--bs-shadow-rgb:0,0,0;box-shadow:0 .125rem .25rem rgba(var(--bs-shadow-rgb),.075)!important;}.shadow-lg{--bs-shadow-rgb:0,0,0;box-shadow:0 1rem 3rem rgba(var(--bs-shadow-rgb),.175)!important;}.shadow-none{box-shadow:none!important;}.shadow-primary{--bs-shadow-rgb:var(--bs-primary-rgb);}.shadow-secondary{--bs-shadow-rgb:var(--bs-secondary-rgb);}.shadow-success{--bs-shadow-rgb:var(--bs-success-rgb);}.shadow-info{--bs-shadow-rgb:var(--bs-info-rgb);}.shadow-warning{--bs-shadow-rgb:var(--bs-warning-rgb);}.shadow-danger{--bs-shadow-rgb:var(--bs-danger-rgb);}.shadow-light{--bs-shadow-rgb:var(--bs-light-rgb);}.shadow-dark{--bs-shadow-rgb:var(--bs-dark-rgb);}.card-body{background-color:currentColor;background-image:linear-gradient(121deg,rgba(255,255,255,.2) -.71%,rgba(255,255,255,.05) 97.66%);}.imgFitToSize{height:10rem;object-fit:cover;}@media(max-width:640.98px){.imgFitToSize{height:7.5rem;}.card-body{background-color:transparent;}}
\ No newline at end of file
diff --git a/MP-TAB3/Components/NotesMan.razor.cs b/MP-TAB3/Components/NotesMan.razor.cs
index 0b41c589..f2621695 100644
--- a/MP-TAB3/Components/NotesMan.razor.cs
+++ b/MP-TAB3/Components/NotesMan.razor.cs
@@ -9,6 +9,18 @@ namespace MP_TAB3.Components
{
public partial class NotesMan
{
+ #region Private Fields
+
+ private int durataMinCurr = 5;
+
+ private int durataMinLast = 0;
+
+ private int numGiorniCurr = 3;
+
+ private int numGiorniLast = 0;
+
+ #endregion Private Fields
+
#region Public Properties
[Parameter]
@@ -18,6 +30,7 @@ namespace MP_TAB3.Components
#region Protected Properties
+ protected CommentiModel? currComm { get; set; } = null;
protected EventListModel? currEv { get; set; } = null;
protected int DurataMin
@@ -43,11 +56,6 @@ namespace MP_TAB3.Components
[Inject]
protected MessageService MsgServ { get; set; } = null!;
-#if false
- [Inject]
- protected NavigationManager NavMan { get; set; } = null!;
-#endif
-
protected int NumGiorni
{
get => numGiorniCurr;
@@ -88,27 +96,6 @@ namespace MP_TAB3.Components
await ReloadData();
}
- protected async Task reloadAfterDelOrUpd(bool rel)
- {
- if (rel)
- {
- await ReloadData();
- currComm = null;
- await InvokeAsync(StateHasChanged);
- }
- }
-
- protected CommentiModel? currComm { get; set; } = null;
-
- protected async Task setCurrComm(CommentiModel _CurrComm)
- {
- await Task.Delay(1);
- if(_CurrComm != null)
- {
- currComm = _CurrComm;
- }
- }
-
protected async Task EditRec(CommentiModel currRec)
{
await Task.Delay(1);
@@ -129,20 +116,27 @@ namespace MP_TAB3.Components
}
}
+ protected async Task reloadAfterDelOrUpd(bool rel)
+ {
+ if (rel)
+ {
+ await ReloadData();
+ currComm = null;
+ await InvokeAsync(StateHasChanged);
+ }
+ }
+
+ protected async Task setCurrComm(CommentiModel _CurrComm)
+ {
+ await Task.Delay(1);
+ if (_CurrComm != null)
+ {
+ currComm = _CurrComm;
+ }
+ }
+
#endregion Protected Methods
- #region Private Fields
-
- private int durataMinCurr = 5;
-
- private int durataMinLast = 0;
-
- private int numGiorniCurr = 3;
-
- private int numGiorniLast = 0;
-
- #endregion Private Fields
-
#region Private Methods
private async Task DoUpdate(bool forceReload)
diff --git a/MP-TAB3/Components/OdlMan.razor.cs b/MP-TAB3/Components/OdlMan.razor.cs
index 23958164..cd3c805c 100644
--- a/MP-TAB3/Components/OdlMan.razor.cs
+++ b/MP-TAB3/Components/OdlMan.razor.cs
@@ -12,6 +12,82 @@ namespace MP_TAB3.Components
{
public partial class OdlMan
{
+ #region Private Fields
+
+ private static Logger Log = LogManager.GetCurrentClassLogger();
+
+ private bool approvTCEnabled = false;
+
+ private bool confRett = true;
+
+ private double currVal = 0;
+
+ private List
emailAdmDest = new List();
+
+ private bool enableAnnullaSetup = false;
+
+ private bool enableFixSetup = false;
+
+ private bool enableRiattrezzaggio = false;
+
+ private bool enableRPO = true;
+
+ private bool enableSchedaTecnica = false;
+
+ private bool enableSplitODL = false;
+
+ private int expTimeMsec = 500;
+
+ private bool forceCloseOdl = true;
+
+ private int gPeriodReopenOdlTav = 1;
+
+ private int idxPOdlSel = 0;
+
+ private bool isMaster = false;
+
+ private bool isMulti = false;
+
+ private bool isProcessing = false;
+
+ private bool isSlave = false;
+
+ private int lastIdxPOdl = 0;
+
+ private string lblOut = "";
+
+ private int MaxVal = 10;
+
+ private int modoConfProd = 0;
+
+ private double nextVal = 0;
+
+ private string noteAttr = "";
+
+ private int numDayOdl = 5;
+
+ private int PzPallet = 0;
+
+ private string searchPodl = "";
+
+ private bool showAll = false;
+
+ private bool showChkCloseOdlVal = false;
+
+ private bool showOdlDetail = false;
+
+ private bool showOdlProvv = false;
+
+ private bool showPOdlData = true;
+
+ private bool showReopenOdlTav = false;
+
+ private bool showSplitOdlOnTav = false;
+
+ private bool showSplitOdlRiattr = false;
+
+ #endregion Private Fields
+
#region Public Properties
[Parameter]
@@ -180,6 +256,248 @@ namespace MP_TAB3.Components
#endregion Protected Properties
+ #region Private Properties
+
+ private bool annullaSetupVisible
+ {
+ get
+ {
+ bool answ = inAttr && enableAnnullaSetup && RecMSE != null && RecMSE.PezziConf == 0;
+ // forzato: se è doppia tavola è SEMPRE false...
+ if (isMulti)
+ {
+ answ = false;
+ }
+ // 2024.04.15 deciso con Gian di togliere la possibilità di annullare su doppia tavola (problema di doppio reset con conferme aperte su altra tavola)
+ //DateTime adesso = DateTime.Now;
+ //if (isMulti)
+ //{
+ // var pUpd = Task.Run(async () =>
+ // {
+ // // controllo ANCHE che la tav correntemente selezionata NON abbia pezzi da confermare
+ // datiProdAct = await TabDServ.StatoProdMacchina(IdxMaccMain, adesso);
+ // answ = datiProdAct.PzConfBuoni == 0 && datiProdAct.Pz2RecScarto == 0;
+ // });
+ // pUpd.Wait();
+ //}
+ return answ;
+ }
+ }
+
+ private string baseLang
+ {
+ get => MsgServ.UserPrefGet("Lang");
+ }
+
+ private bool cancelSetupEnabled
+ {
+ //get => InAttr && enableSchedaTecnica && enableAnnullaSetup;
+ get => inAttr && enableAnnullaSetup;
+ }
+
+ private ODLExpModel currOdl { get; set; } = new ODLExpModel();
+
+ private PODLExpModel currPodl { get; set; } = new PODLExpModel();
+
+ private MappaStatoExpl? currRecMSE { get; set; } = null;
+
+ ///
+ /// Verifica se l'ALTRA macchina NON abbia ODL valido (== 0)
+ ///
+ private bool emptyOdlAltraMacc
+ {
+ get => IdxOdlAltra == 0;
+ }
+
+ ///
+ /// Verifica se la macchina NON abbia ODL valido (== 0)
+ ///
+ private bool emptyOdlMacc
+ {
+ get => IdxOdl == 0;
+ }
+
+ private bool endProdDisabled
+ {
+ get => !odlOk || needConfProd;
+ }
+
+ ///
+ /// Variabile idxMacc parent x selezione ODL
+ ///
+ private string IdxMaccParent { get; set; } = "";
+
+ private string IdxMaccSel { get; set; } = "";
+
+ ///
+ /// Valore calcolato key ODL corrente...
+ ///
+ private int IdxOdl { get; set; } = 0;
+
+ ///
+ /// Valore calcolato key ODL altra tavola attivo...
+ ///
+ private int IdxOdlAltra { get; set; } = 0;
+
+ private bool inAttr { get; set; } = false;
+
+ private bool isLoading { get; set; } = false;
+
+ private MappaStatoExpl? lastRecMSE { get; set; } = null;
+
+ private string lblWarnBody
+ {
+ get => odlOk ? Traduci("ConfProdBeforeContinueBody") : Traduci("setOdlBeforeContinueBody");
+ }
+
+ private string lblWarnHead
+ {
+ get => odlOk ? Traduci("ConfProdBeforeContinueHead") : Traduci("setOdlBeforeContinueHead");
+ }
+
+ private int MatrOpr
+ {
+ get => MsgServ.MatrOpr;
+ }
+
+ private bool needConfProd { get; set; } = false;
+
+ private int numPz2Conf
+ {
+ get
+ {
+ int answ = -1;
+ if (datiProdAct != null)
+ {
+ answ = datiProdAct.Pz2RecTot;
+ }
+ else
+ {
+ answ = RecMSE != null ? RecMSE.PezziProd - RecMSE.PezziConf : 0;
+ }
+ return answ;
+ }
+ }
+
+ private int numRil2Conf
+ {
+ get
+ {
+ int answ = -1;
+ if (datiProdAct != null)
+ {
+ answ = datiProdAct.Pz2RecRilav;
+ }
+ return answ;
+ }
+ }
+
+ private int numSca2Conf
+ {
+ get
+ {
+ int answ = -1;
+ if (datiProdAct != null)
+ {
+ answ = datiProdAct.Pz2RecScarto;
+ }
+ return answ;
+ }
+ }
+
+ private bool setupActive { get; set; } = false;
+
+ ///
+ /// Verifica visibilità btn riprendi ODL su 2° tavola SE:
+ /// - sia un impianto MULTI (= con + tavole)
+ /// - sia disattrezzata la tavola
+ /// - in tab congif: se sia abilitato la ripresa ODL sulla seconda tavola
+ /// - in tab config: sia il grace period
+ /// - NON SIANO passati i minuti indicati dalla chiusura
+ ///
+ private bool showReopOdlTav
+ {
+ get
+ {
+ bool answ = false;
+ // se è multi controllo
+ if (isMulti)
+ {
+ // verifico se NON HA ODL...
+ if (emptyOdlMacc)
+ {
+ if (!emptyOdlAltraMacc)
+ {
+ // verifico SE siamo nel gracePeriod... chiuso da meno di 1h
+ DateTime adesso = DateTime.Now;
+ DateTime dtChiusura = DateTime.Now.AddHours(-1);
+ try
+ {
+ var lastOdl = TabDServ.OdlLastByMacc(IdxMaccSel, true);
+ if (lastOdl != null)
+ {
+ dtChiusura = lastOdl.DataFine ?? DateTime.Now.AddHours(-1);
+ }
+ }
+ catch
+ { }
+
+ // ora verifico SE E SOLO SE è ANCORA in attrezzaggio ora verifico SE
+ // ALTRA TAVOLA ha ODL...
+ if (dtChiusura.AddMinutes(gPeriodReopenOdlTav) > adesso)
+ {
+ answ = showReopenOdlTav;
+ }
+ }
+ }
+ }
+ return answ;
+ }
+ }
+
+ ///
+ /// Verifica visibilità btn split ODL su 2° tavola SE:
+ /// - sia un impianto MULTI (= con + tavole)
+ /// - sia già attrezzata la prima tavola
+ /// - in tab Congif: se sia abilitato lo split ODL sulla seconda tavola
+ /// - la macchina SIA ANCORA in attrezzaggio (2019.07.08) = 2
+ ///
+ private bool showSplitOdlOnTavVal
+ {
+ get
+ {
+ bool answ = false;
+ // se è multi controllo
+ if (isMulti)
+ {
+ // verifico se NON HA ODL ma ce l'ha altra tavola...
+ if (emptyOdlMacc)
+ {
+ // ora verifico SE ALTRA TAVOLA ha ODL...
+ if (!emptyOdlAltraMacc)
+ {
+ answ = showSplitOdlOnTav;
+ }
+ }
+ }
+ return answ;
+ }
+ }
+
+ private decimal tcRichAttr { get; set; } = 0;
+
+ private string txtBtnOdlDetail
+ {
+ get => showOdlDetail ? "Nascondi Dettaglio PODL" : "MOSTRA Dettaglio ODL Corrente";
+ }
+
+ private string txtForceCloseOdl
+ {
+ get => forceCloseOdl ? Traduci("ForceCloseODL") : Traduci("SplitCurrODL");
+ }
+
+ #endregion Private Properties
+
#region Protected Methods
///
@@ -195,10 +513,6 @@ namespace MP_TAB3.Components
protected async Task CheckAttr()
{
-#if false
- // rileggo ODL
- await updateIdxOdl();
-#endif
// verifico attrezzaggio su macchina corrente o se multi su parent
string idxMacc2check = isMulti ? IdxMaccParent : IdxMaccSel;
StatoMacchineModel rigaStato = TabDServ.StatoMacchina(idxMacc2check);
@@ -1147,323 +1461,6 @@ namespace MP_TAB3.Components
#endregion Protected Methods
- #region Private Fields
-
- private static Logger Log = LogManager.GetCurrentClassLogger();
-
- private bool approvTCEnabled = false;
-
- private bool confRett = true;
-
- private double currVal = 0;
-
- private List emailAdmDest = new List();
-
- private bool enableAnnullaSetup = false;
-
- private bool enableFixSetup = false;
-
- private bool enableRiattrezzaggio = false;
-
- private bool enableRPO = true;
-
- private bool enableSchedaTecnica = false;
-
- private bool enableSplitODL = false;
-
- private int expTimeMsec = 500;
-
- private bool forceCloseOdl = true;
-
- private int gPeriodReopenOdlTav = 1;
-
- private int idxPOdlSel = 0;
-
- private bool isMaster = false;
-
- private bool isMulti = false;
-
- private bool isProcessing = false;
-
- private bool isSlave = false;
-
- private int lastIdxPOdl = 0;
-
- private string lblOut = "";
-
- private int MaxVal = 10;
-
- private int modoConfProd = 0;
-
- private double nextVal = 0;
-
- private string noteAttr = "";
-
- private int numDayOdl = 5;
-
- private int PzPallet = 0;
-
- private string searchPodl = "";
-
- private bool showAll = false;
-
- private bool showChkCloseOdlVal = false;
-
- private bool showOdlDetail = false;
-
- private bool showOdlProvv = false;
-
- private bool showPOdlData = true;
-
- private bool showReopenOdlTav = false;
-
- private bool showSplitOdlOnTav = false;
-
- private bool showSplitOdlRiattr = false;
-
- #endregion Private Fields
-
- #region Private Properties
-
- private bool annullaSetupVisible
- {
- get
- {
- bool answ = inAttr && enableAnnullaSetup && RecMSE != null && RecMSE.PezziConf == 0;
- // forzato: se è doppia tavola è SEMPRE false...
- if (isMulti)
- {
- answ = false;
- }
- // 2024.04.15 deciso con Gian di togliere la possibilità di annullare su doppia tavola (problema di doppio reset con conferme aperte su altra tavola)
- //DateTime adesso = DateTime.Now;
- //if (isMulti)
- //{
- // var pUpd = Task.Run(async () =>
- // {
- // // controllo ANCHE che la tav correntemente selezionata NON abbia pezzi da confermare
- // datiProdAct = await TabDServ.StatoProdMacchina(IdxMaccMain, adesso);
- // answ = datiProdAct.PzConfBuoni == 0 && datiProdAct.Pz2RecScarto == 0;
- // });
- // pUpd.Wait();
- //}
- return answ;
- }
- }
-
- private string baseLang
- {
- get => MsgServ.UserPrefGet("Lang");
- }
-
- private bool cancelSetupEnabled
- {
- //get => InAttr && enableSchedaTecnica && enableAnnullaSetup;
- get => inAttr && enableAnnullaSetup;
- }
-
- private ODLExpModel currOdl { get; set; } = new ODLExpModel();
-
- private PODLExpModel currPodl { get; set; } = new PODLExpModel();
-
- private MappaStatoExpl? currRecMSE { get; set; } = null;
-
- ///
- /// Verifica se l'ALTRA macchina NON abbia ODL valido (== 0)
- ///
- private bool emptyOdlAltraMacc
- {
- get => IdxOdlAltra == 0;
- }
-
- ///
- /// Verifica se la macchina NON abbia ODL valido (== 0)
- ///
- private bool emptyOdlMacc
- {
- get => IdxOdl == 0;
- }
-
- private bool endProdDisabled
- {
- get => !odlOk || needConfProd;
- }
-
- ///
- /// Variabile idxMacc parent x selezione ODL
- ///
- private string IdxMaccParent { get; set; } = "";
-
- private string IdxMaccSel { get; set; } = "";
-
- ///
- /// Valore calcolato key ODL corrente...
- ///
- private int IdxOdl { get; set; } = 0;
-
- ///
- /// Valore calcolato key ODL altra tavola attivo...
- ///
- private int IdxOdlAltra { get; set; } = 0;
-
- private bool inAttr { get; set; } = false;
-
- private bool isLoading { get; set; } = false;
-
- private MappaStatoExpl? lastRecMSE { get; set; } = null;
-
- private string lblWarnBody
- {
- get => odlOk ? Traduci("ConfProdBeforeContinueBody") : Traduci("setOdlBeforeContinueBody");
- }
-
- private string lblWarnHead
- {
- get => odlOk ? Traduci("ConfProdBeforeContinueHead") : Traduci("setOdlBeforeContinueHead");
- }
-
- private int MatrOpr
- {
- get => MsgServ.MatrOpr;
- }
-
- private bool needConfProd { get; set; } = false;
-
- private int numPz2Conf
- {
- get
- {
- int answ = -1;
- if (datiProdAct != null)
- {
- answ = datiProdAct.Pz2RecTot;
- }
- else
- {
- answ = RecMSE != null ? RecMSE.PezziProd - RecMSE.PezziConf : 0;
- }
- return answ;
- }
- }
-
- private int numSca2Conf
- {
- get
- {
- int answ = -1;
- if (datiProdAct != null)
- {
- answ = datiProdAct.Pz2RecScarto;
- }
- return answ;
- }
- }
- private int numRil2Conf
- {
- get
- {
- int answ = -1;
- if (datiProdAct != null)
- {
- answ = datiProdAct.Pz2RecRilav;
- }
- return answ;
- }
- }
-
- private bool setupActive { get; set; } = false;
-
- ///
- /// Verifica visibilità btn riprendi ODL su 2° tavola SE:
- /// - sia un impianto MULTI (= con + tavole)
- /// - sia disattrezzata la tavola
- /// - in tab congif: se sia abilitato la ripresa ODL sulla seconda tavola
- /// - in tab config: sia il grace period
- /// - NON SIANO passati i minuti indicati dalla chiusura
- ///
- private bool showReopOdlTav
- {
- get
- {
- bool answ = false;
- // se è multi controllo
- if (isMulti)
- {
- // verifico se NON HA ODL...
- if (emptyOdlMacc)
- {
- if (!emptyOdlAltraMacc)
- {
- // verifico SE siamo nel gracePeriod... chiuso da meno di 1h
- DateTime adesso = DateTime.Now;
- DateTime dtChiusura = DateTime.Now.AddHours(-1);
- try
- {
- var lastOdl = TabDServ.OdlLastByMacc(IdxMaccSel, true);
- if (lastOdl != null)
- {
- dtChiusura = lastOdl.DataFine ?? DateTime.Now.AddHours(-1);
- }
- }
- catch
- { }
-
- // ora verifico SE E SOLO SE è ANCORA in attrezzaggio ora verifico SE
- // ALTRA TAVOLA ha ODL...
- if (dtChiusura.AddMinutes(gPeriodReopenOdlTav) > adesso)
- {
- answ = showReopenOdlTav;
- }
- }
- }
- }
- return answ;
- }
- }
-
- ///
- /// Verifica visibilità btn split ODL su 2° tavola SE:
- /// - sia un impianto MULTI (= con + tavole)
- /// - sia già attrezzata la prima tavola
- /// - in tab Congif: se sia abilitato lo split ODL sulla seconda tavola
- /// - la macchina SIA ANCORA in attrezzaggio (2019.07.08) = 2
- ///
- private bool showSplitOdlOnTavVal
- {
- get
- {
- bool answ = false;
- // se è multi controllo
- if (isMulti)
- {
- // verifico se NON HA ODL ma ce l'ha altra tavola...
- if (emptyOdlMacc)
- {
- // ora verifico SE ALTRA TAVOLA ha ODL...
- if (!emptyOdlAltraMacc)
- {
- answ = showSplitOdlOnTav;
- }
- }
- }
- return answ;
- }
- }
-
- private decimal tcRichAttr { get; set; } = 0;
-
- private string txtBtnOdlDetail
- {
- get => showOdlDetail ? "Nascondi Dettaglio PODL" : "MOSTRA Dettaglio ODL Corrente";
- }
-
- private string txtForceCloseOdl
- {
- get => forceCloseOdl ? Traduci("ForceCloseODL") : Traduci("SplitCurrODL");
- }
-
- #endregion Private Properties
-
#region Private Methods
private void checkAll()
diff --git a/MP-TAB3/Components/PlaceholderDetail.razor b/MP-TAB3/Components/PlaceholderDetail.razor
new file mode 100644
index 00000000..1ec38f42
--- /dev/null
+++ b/MP-TAB3/Components/PlaceholderDetail.razor
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MP-TAB3/Components/PlaceholderDetail.razor.css b/MP-TAB3/Components/PlaceholderDetail.razor.css
new file mode 100644
index 00000000..61bad387
--- /dev/null
+++ b/MP-TAB3/Components/PlaceholderDetail.razor.css
@@ -0,0 +1,4 @@
+.pholderHeight {
+ height: 5rem;
+ object-fit: cover;
+}
\ No newline at end of file
diff --git a/MP-TAB3/Components/PlaceholderDetail.razor.less b/MP-TAB3/Components/PlaceholderDetail.razor.less
new file mode 100644
index 00000000..73045d73
--- /dev/null
+++ b/MP-TAB3/Components/PlaceholderDetail.razor.less
@@ -0,0 +1,6 @@
+
+.pholderHeight {
+ height: 5rem;
+ object-fit: cover;
+}
+
diff --git a/MP-TAB3/Components/PlaceholderDetail.razor.min.css b/MP-TAB3/Components/PlaceholderDetail.razor.min.css
new file mode 100644
index 00000000..b22a0149
--- /dev/null
+++ b/MP-TAB3/Components/PlaceholderDetail.razor.min.css
@@ -0,0 +1 @@
+.pholderHeight{height:5rem;object-fit:cover;}
\ No newline at end of file
diff --git a/MP-TAB3/Components/PlaceholderStatusMap.razor b/MP-TAB3/Components/PlaceholderStatusMap.razor
new file mode 100644
index 00000000..8d12accf
--- /dev/null
+++ b/MP-TAB3/Components/PlaceholderStatusMap.razor
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MP-TAB3/Components/PlaceholderStatusMap.razor.css b/MP-TAB3/Components/PlaceholderStatusMap.razor.css
new file mode 100644
index 00000000..218fdd85
--- /dev/null
+++ b/MP-TAB3/Components/PlaceholderStatusMap.razor.css
@@ -0,0 +1,4 @@
+.pholderHeight {
+ height: 3rem;
+ object-fit: cover;
+}
\ No newline at end of file
diff --git a/MP-TAB3/Components/PlaceholderStatusMap.razor.less b/MP-TAB3/Components/PlaceholderStatusMap.razor.less
new file mode 100644
index 00000000..90d74c36
--- /dev/null
+++ b/MP-TAB3/Components/PlaceholderStatusMap.razor.less
@@ -0,0 +1,6 @@
+
+.pholderHeight {
+ height: 3rem;
+ object-fit: cover;
+}
+
diff --git a/MP-TAB3/Components/PlaceholderStatusMap.razor.min.css b/MP-TAB3/Components/PlaceholderStatusMap.razor.min.css
new file mode 100644
index 00000000..66d7e09e
--- /dev/null
+++ b/MP-TAB3/Components/PlaceholderStatusMap.razor.min.css
@@ -0,0 +1 @@
+.pholderHeight{height:3rem;object-fit:cover;}
\ No newline at end of file
diff --git a/MP-TAB3/Components/ProdConfirm.razor b/MP-TAB3/Components/ProdConfirm.razor
index 86615958..82e4e231 100644
--- a/MP-TAB3/Components/ProdConfirm.razor
+++ b/MP-TAB3/Components/ProdConfirm.razor
@@ -131,7 +131,7 @@
@if (isProcessing)
{
-
+
}
else
{
@@ -148,7 +148,7 @@
@if (isProcessing)
{
-
+
}
else
{
@@ -165,7 +165,7 @@
@if (isProcessing)
{
-
+
}
else
{
@@ -182,7 +182,7 @@
@if (isProcessing)
{
-
+
}
else
{
@@ -199,7 +199,7 @@
@if (isProcessing)
{
-
+
}
else
{
diff --git a/MP-TAB3/Components/ProdConfirm.razor.cs b/MP-TAB3/Components/ProdConfirm.razor.cs
index 5809c2c9..901bbc51 100644
--- a/MP-TAB3/Components/ProdConfirm.razor.cs
+++ b/MP-TAB3/Components/ProdConfirm.razor.cs
@@ -8,6 +8,26 @@ namespace MP_TAB3.Components
{
public partial class ProdConfirm
{
+ #region Private Fields
+
+ private static Logger Log = LogManager.GetCurrentClassLogger();
+
+ private bool chkPzBuoniNeg = false;
+
+ private bool confRett = false;
+
+ private bool enableMagPrint = false;
+
+ private bool enablePzProdLasciati = false;
+
+ private bool isMulti = false;
+
+ private string lblOut = "";
+
+ private int modoConfProd = 0;
+
+ #endregion Private Fields
+
#region Public Properties
///
@@ -155,8 +175,8 @@ namespace MP_TAB3.Components
protected int numPzProdotti2Rec { get; set; } = 0;
- protected int numPzRilavConf { get; set; } = 0;
protected int numPzRilav2Rec { get; set; } = 0;
+ protected int numPzRilavConf { get; set; } = 0;
protected int numPzScaConf { get; set; } = 0;
protected int numPzScarto2Rec { get; set; } = 0;
@@ -206,6 +226,31 @@ namespace MP_TAB3.Components
#endregion Protected Properties
+ #region Private Properties
+
+ private bool confProdActive { get; set; } = false;
+
+ private MappaStatoExpl? currRecMSE { get; set; } = null;
+
+ private DateTime dtReqUpdate { get; set; } = DateTime.Now;
+
+ private string IdxMaccSel { get; set; } = "";
+
+ private bool isProcessing { get; set; } = false;
+
+ private MappaStatoExpl? lastRecMSE { get; set; } = null;
+
+ private int MatrOpr
+ {
+ get => MsgServ.MatrOpr;
+ }
+
+ private int numPzLasc { get; set; } = 0;
+
+ private bool showConfirm { get; set; } = true;
+
+ #endregion Private Properties
+
#region Protected Methods
///
@@ -274,19 +319,12 @@ namespace MP_TAB3.Components
protected async Task SalvaConfPz()
{
- int delay = 1;
isProcessing = true;
- Log.Info("Conf 01");
// effettua conferma con conf da DB del tipo (giorni / turni / periodo
bool fatto = effettuaConfermaProd();
- await Task.Delay(delay);
await TabDServ.FlushCache("StatoProd");
- await Task.Delay(delay);
- Log.Info("Conf 02");
// refresh tabella dati tablet...
await TabDServ.RicalcMse(IdxMaccSel, 0);
- await Task.Delay(delay);
- Log.Info("Conf 03");
// rileggo e salvo..
var ListMSE = await SDService.MseGetAll(true);
if (ListMSE != null)
@@ -296,22 +334,17 @@ namespace MP_TAB3.Components
// aggiorno MSE attuale
RecMSE = ListMSE.Find(x => x.IdxMacchina == IdxMaccSel);
}
- await Task.Delay(delay);
// mostro output
lblOut = $"Confermata produzione {numPzConfermati - numPzLasciati} pezzi (+{numPzLasciati} pz lasciati, +{numPzScarto2Rec} pz scarto) |{dtReqUpdate:HH:mm:ss} | {dtReqUpdate:ddd yyyy.MM.dd}";
// cambio button conferma...
confProdActive = false;
numPzLasciati = 0;
- await Task.Delay(delay);
dtReqUpdate = DateTime.Now;
// azzero cache pezzi conf
SDService.MachNumPzSet(IdxMaccSel, -1);
await DoUpdate();
- await Task.Delay(delay);
await RefreshData();
- await Task.Delay(delay);
TabDServ.NotifyDataInvalidated(IdxMaccSel);
- Log.Info("Conf 04");
isProcessing = false;
}
@@ -349,39 +382,6 @@ namespace MP_TAB3.Components
#endregion Protected Methods
- #region Private Fields
-
- private static Logger Log = LogManager.GetCurrentClassLogger();
- private bool chkPzBuoniNeg = false;
- private bool confRett = false;
- private bool enableMagPrint = false;
- private bool enablePzProdLasciati = false;
- private bool isMulti = false;
- private string lblOut = "";
- private int modoConfProd = 0;
-
- #endregion Private Fields
-
- #region Private Properties
-
- private bool confProdActive { get; set; } = false;
- private MappaStatoExpl? currRecMSE { get; set; } = null;
- private DateTime dtReqUpdate { get; set; } = DateTime.Now;
- private string IdxMaccSel { get; set; } = "";
- private bool isProcessing { get; set; } = false;
- private MappaStatoExpl? lastRecMSE { get; set; } = null;
-
- private int MatrOpr
- {
- get => MsgServ.MatrOpr;
- }
-
- private int numPzLasc { get; set; } = 0;
-
- private bool showConfirm { get; set; } = true;
-
- #endregion Private Properties
-
#region Private Methods
///
diff --git a/MP-TAB3/Components/SelTempoMSMC.razor.cs b/MP-TAB3/Components/SelTempoMSMC.razor.cs
index 060c6baf..90b6b067 100644
--- a/MP-TAB3/Components/SelTempoMSMC.razor.cs
+++ b/MP-TAB3/Components/SelTempoMSMC.razor.cs
@@ -54,14 +54,6 @@ namespace MP_TAB3.Components
[Parameter]
public timeControlMode modoControllo { get; set; } = timeControlMode.testo;
-#if false
- ///
- /// modalit� controllo tempo
- ///
- [Parameter]
- public timeMode modoTempo { get; set; } = timeMode.MC;
-#endif
-
///
/// Valore tempo (centesimale)
///
@@ -88,15 +80,12 @@ namespace MP_TAB3.Components
[Inject]
protected MessageService MsgServ { get; set; } = null!;
- ///
- /// tempo selezionato in formato Minuti Secondi
- ///
- protected DateTime selTempoMS
+ protected int selMin
{
- get => DateTime.Today.Add(TempoMS);
+ get => TempoMS.Minutes;
set
{
- TempoMS = value.Subtract(value.Date);
+ TempoMS = new TimeSpan(selOre, value, selSec);
E_TCRich.InvokeAsync(TempoMC);
}
}
@@ -110,15 +99,7 @@ namespace MP_TAB3.Components
E_TCRich.InvokeAsync(TempoMC);
}
}
- protected int selMin
- {
- get => TempoMS.Minutes;
- set
- {
- TempoMS = new TimeSpan(selOre,value, selSec);
- E_TCRich.InvokeAsync(TempoMC);
- }
- }
+
protected int selSec
{
get => TempoMS.Seconds;
@@ -129,6 +110,19 @@ namespace MP_TAB3.Components
}
}
+ ///
+ /// tempo selezionato in formato Minuti Secondi
+ ///
+ protected DateTime selTempoMS
+ {
+ get => DateTime.Today.Add(TempoMS);
+ set
+ {
+ TempoMS = value.Subtract(value.Date);
+ E_TCRich.InvokeAsync(TempoMC);
+ }
+ }
+
protected bool ShowMS { get; set; } = true;
[Inject]
@@ -162,48 +156,6 @@ namespace MP_TAB3.Components
#endregion Protected Properties
- #region Protected Methods
-
- ///
- /// conversione da tempo minuti centesimali a minuti/secondi
- ///
- ///
- ///
- protected TimeSpan minCent2Sec(decimal valore)
- {
- TimeSpan answ = TimeSpan.FromSeconds(Math.Round((double)(valore * 60)));
- return answ;
- }
-
- ///
- /// conversione da tempo minuti/secondi a minuti centesimali
- ///
- ///
- ///
- protected decimal minSec2Cent(TimeSpan valore)
- {
- decimal answ = 0;
- decimal.TryParse($"{Math.Floor(valore.TotalMinutes) + (double)valore.Seconds / 60}", out answ);
- return answ;
- }
-
- protected override void OnInitialized()
- {
- //baseLang = SMServ.GetConf("baseLang");
- }
-
- protected override void OnParametersSet()
- {
- showControls();
- }
-
- protected string Traduci(string lemma)
- {
- return SMServ.Traduci($"{baseLang}_{lemma}".ToUpper());
- }
-
- #endregion Protected Methods
-
#region Private Properties
private string _baseLang { get; set; } = "IT";
@@ -278,6 +230,48 @@ namespace MP_TAB3.Components
#endregion Private Properties
+ #region Protected Methods
+
+ ///
+ /// conversione da tempo minuti centesimali a minuti/secondi
+ ///
+ ///
+ ///
+ protected TimeSpan minCent2Sec(decimal valore)
+ {
+ TimeSpan answ = TimeSpan.FromSeconds(Math.Round((double)(valore * 60)));
+ return answ;
+ }
+
+ ///
+ /// conversione da tempo minuti/secondi a minuti centesimali
+ ///
+ ///
+ ///
+ protected decimal minSec2Cent(TimeSpan valore)
+ {
+ decimal answ = 0;
+ decimal.TryParse($"{Math.Floor(valore.TotalMinutes) + (double)valore.Seconds / 60}", out answ);
+ return answ;
+ }
+
+ protected override void OnInitialized()
+ {
+ //baseLang = SMServ.GetConf("baseLang");
+ }
+
+ protected override void OnParametersSet()
+ {
+ showControls();
+ }
+
+ protected string Traduci(string lemma)
+ {
+ return SMServ.Traduci($"{baseLang}_{lemma}".ToUpper());
+ }
+
+ #endregion Protected Methods
+
#region Private Methods
///
diff --git a/MP-TAB3/MP-TAB3.csproj b/MP-TAB3/MP-TAB3.csproj
index 13c9afb6..6b9504fc 100644
--- a/MP-TAB3/MP-TAB3.csproj
+++ b/MP-TAB3/MP-TAB3.csproj
@@ -3,7 +3,7 @@
net6.0
enable
- 6.16.2503.722
+ 6.16.2503.809
enable
MP_TAB3
diff --git a/MP-TAB3/Pages/Controls.razor.cs b/MP-TAB3/Pages/Controls.razor.cs
index 5063203f..5fabe458 100644
--- a/MP-TAB3/Pages/Controls.razor.cs
+++ b/MP-TAB3/Pages/Controls.razor.cs
@@ -2,22 +2,20 @@ namespace MP_TAB3.Pages
{
public partial class Controls
{
- #region Public Methods
+ #region Private Fields
+ private string IdxMaccSubSel = "";
- #endregion Public Methods
+ private bool IsLoading = false;
- #region Protected Properties
-
-
- #endregion Protected Properties
+ #endregion Private Fields
#region Protected Methods
protected async Task ForceReload()
{
IsLoading = true;
- await Task.Delay(50);
+ await Task.Delay(5);
IsLoading = false;
}
@@ -33,19 +31,5 @@ namespace MP_TAB3.Pages
}
#endregion Protected Methods
-
- #region Private Fields
-
- private string IdxMaccSubSel = "";
-
- private bool IsLoading = false;
-
- #endregion Private Fields
-
- #region Private Methods
-
-
-
- #endregion Private Methods
}
}
\ No newline at end of file
diff --git a/MP-TAB3/Resources/ChangeLog.html b/MP-TAB3/Resources/ChangeLog.html
index eae63147..52865357 100644
--- a/MP-TAB3/Resources/ChangeLog.html
+++ b/MP-TAB3/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
Modulo MAPOSPEC
- Versione: 6.16.2503.722
+ Versione: 6.16.2503.809
Note di rilascio:
-
diff --git a/MP-TAB3/Resources/VersNum.txt b/MP-TAB3/Resources/VersNum.txt
index 8a473663..b11f2077 100644
--- a/MP-TAB3/Resources/VersNum.txt
+++ b/MP-TAB3/Resources/VersNum.txt
@@ -1 +1 @@
-6.16.2503.722
+6.16.2503.809
diff --git a/MP-TAB3/Resources/manifest.xml b/MP-TAB3/Resources/manifest.xml
index 95ddc311..1158244c 100644
--- a/MP-TAB3/Resources/manifest.xml
+++ b/MP-TAB3/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 6.16.2503.722
+ 6.16.2503.809
https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/MP-TAB3.zip
https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/ChangeLog.html
false
diff --git a/MP-TAB3/compilerconfig.json b/MP-TAB3/compilerconfig.json
index 52388af1..ecaeb067 100644
--- a/MP-TAB3/compilerconfig.json
+++ b/MP-TAB3/compilerconfig.json
@@ -58,5 +58,13 @@
{
"outputFile": "Components/ProdStopMan.razor.css",
"inputFile": "Components/ProdStopMan.razor.less"
+ },
+ {
+ "outputFile": "Components/PlaceholderDetail.razor.css",
+ "inputFile": "Components/PlaceholderDetail.razor.less"
+ },
+ {
+ "outputFile": "Components/PlaceholderStatusMap.razor.css",
+ "inputFile": "Components/PlaceholderStatusMap.razor.less"
}
]
\ No newline at end of file
diff --git a/MP.Data/Services/SharedMemService.cs b/MP.Data/Services/SharedMemService.cs
index 9cd161c8..0ce1654c 100644
--- a/MP.Data/Services/SharedMemService.cs
+++ b/MP.Data/Services/SharedMemService.cs
@@ -1,7 +1,6 @@
using MP.Data.DatabaseModels;
using NLog;
using StackExchange.Redis;
-using System;
using System.Collections.Generic;
using System.Linq;
@@ -9,6 +8,17 @@ namespace MP.Data.Services
{
public class SharedMemService : BaseServ
{
+ #region Private Fields
+
+ private static Logger Log = LogManager.GetCurrentClassLogger();
+
+ ///
+ /// Oggetto vocabolario x uso continuo traduzione
+ ///
+ private List ObjVocabolario = new List();
+
+ #endregion Private Fields
+
#region Public Properties
///
@@ -56,6 +66,11 @@ namespace MP.Data.Services
///
public List ListEventi { get; set; } = new List();
+ ///
+ /// Lista macchine master2slave stati
+ ///
+ public List ListM2S { get; set; } = new List();
+
///
/// List configurazione attiva da tab DB
///
@@ -66,13 +81,6 @@ namespace MP.Data.Services
///
public List ListStati { get; set; } = new List();
- ///
- /// Lista macchine master2slave stati
- ///
- public List ListM2S { get; set; } = new List();
-
-
-
///
/// Lista completa stati
///
@@ -85,6 +93,12 @@ namespace MP.Data.Services
#endregion Public Properties
+ #region Private Properties
+
+ private List AllMenuData { get; set; } = new List();
+
+ #endregion Private Properties
+
#region Public Methods
///
@@ -199,6 +213,12 @@ namespace MP.Data.Services
Log.Info("SharedMemService | SetEventi executed!");
}
+ public void SetM2S(List newList)
+ {
+ ListM2S = newList ?? new List();
+ Log.Info("SharedMemService | SetM2S executed!");
+ }
+
public void SetMsfd(List newList)
{
ListMSFD = newList ?? new List();
@@ -207,12 +227,6 @@ namespace MP.Data.Services
Log.Info("SharedMemService | SetMsfd executed!");
}
- public void SetM2S(List newList)
- {
- ListM2S = newList ?? new List();
- Log.Info("SharedMemService | SetM2S executed!");
- }
-
public void SetStati(List allStati)
{
ListStati = allStati ?? new List();
@@ -282,22 +296,5 @@ namespace MP.Data.Services
}
#endregion Public Methods
-
- #region Private Fields
-
- private static Logger Log = LogManager.GetCurrentClassLogger();
-
- ///
- /// Oggetto vocabolario x uso continuo traduzione
- ///
- private List ObjVocabolario = new List();
-
- #endregion Private Fields
-
- #region Private Properties
-
- private List AllMenuData { get; set; } = new List();
-
- #endregion Private Properties
}
}
\ No newline at end of file
diff --git a/MP.Data/Services/StatusData.cs b/MP.Data/Services/StatusData.cs
index c0a46009..6484659c 100644
--- a/MP.Data/Services/StatusData.cs
+++ b/MP.Data/Services/StatusData.cs
@@ -373,10 +373,6 @@ namespace MP.Data.Services
#endregion Private Properties
-#if false
- private string redisMseKey = "MP:MON:Cache:MSE";
-#endif
-
#region Private Methods
///
diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs
index 50791ece..faa8b9c0 100644
--- a/MP.Data/Services/TabDataService.cs
+++ b/MP.Data/Services/TabDataService.cs
@@ -82,6 +82,7 @@ namespace MP.Data.Services
/// Evento richiesta rilettura dati pagina (x refresh pagine aperte)
///
public event EventHandler ReloadRequest = delegate { };
+
///
/// Evento report dati invalidati x rilettura
///
@@ -1314,6 +1315,7 @@ namespace MP.Data.Services
ReloadRequest.Invoke(this, rea);
}
}
+
///
/// Invio notifica dati invalidati x impianto
///