diff --git a/ES3/WebUserControls/cmp_dispStats.ascx b/ES3/WebUserControls/cmp_dispStats.ascx
index df86bc2e..9524675f 100644
--- a/ES3/WebUserControls/cmp_dispStats.ascx
+++ b/ES3/WebUserControls/cmp_dispStats.ascx
@@ -8,4 +8,5 @@ statistiche disponibilità:
SOMMA ORE CUMULATE di apertura
SOMMA ORE CUMULATE già allocate
SOMMA ORE CUMULATE disponibili
+ SOMMA ORE CUMULATE LAVORATE (passate)
\ No newline at end of file
diff --git a/Jenkinsfile b/Jenkinsfile
index 0a21338b..e0bb1385 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -12,7 +12,7 @@ pipeline {
steps {
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
- withEnv(['NEXT_BUILD_NUMBER=1276']) {
+ withEnv(['NEXT_BUILD_NUMBER=1277']) {
// env.versionNumber = VersionNumber(versionNumberString : '6.9.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true)
env.versionNumber = VersionNumber(versionNumberString : '6.9.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.APP_NAME = 'MAPO'
diff --git a/MAPO.sln b/MAPO.sln
index 066a18d0..746fb20f 100644
--- a/MAPO.sln
+++ b/MAPO.sln
@@ -27,8 +27,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MP-SITE", "MP-SITE\MP-SITE.
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MapoSDK", "MapoSDK\MapoSDK.csproj", "{D07211B6-CF67-4C7F-8040-5B8C3B12BB4B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ES3", "ES3\ES3.csproj", "{C5296C93-4738-4B42-8C9D-B7E5A75110FD}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -185,22 +183,6 @@ Global
{D07211B6-CF67-4C7F-8040-5B8C3B12BB4B}.Prod|Any CPU.Build.0 = Release|Any CPU
{D07211B6-CF67-4C7F-8040-5B8C3B12BB4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D07211B6-CF67-4C7F-8040-5B8C3B12BB4B}.Release|Any CPU.Build.0 = Release|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Donati|Any CPU.ActiveCfg = Debug|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Donati|Any CPU.Build.0 = Debug|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.IIS01|Any CPU.ActiveCfg = Release|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.IIS01|Any CPU.Build.0 = Release|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.IIS02|Any CPU.ActiveCfg = Release|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.IIS02|Any CPU.Build.0 = Release|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Jetco|Any CPU.ActiveCfg = Release|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Jetco|Any CPU.Build.0 = Release|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.OVH-Demo|Any CPU.ActiveCfg = Release|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.OVH-Demo|Any CPU.Build.0 = Release|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Prod|Any CPU.ActiveCfg = Release|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Prod|Any CPU.Build.0 = Release|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C5296C93-4738-4B42-8C9D-B7E5A75110FD}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/MapoDb/DataLayer.cs b/MapoDb/DataLayer.cs
index 00f0714f..2b3b0a58 100644
--- a/MapoDb/DataLayer.cs
+++ b/MapoDb/DataLayer.cs
@@ -7,6 +7,7 @@ using System.Data;
using System.Data.SqlClient;
using System.Globalization;
using System.Reflection;
+using System.Threading;
namespace MapoDb
{
@@ -1340,6 +1341,15 @@ namespace MapoDb
return mHash(string.Format("CurrStatoMacc:{0}", idxMacchina));
}
///
+ /// Hash x VETO dello SPLIT ODL la macchina specificata
+ ///
+ ///
+ ///
+ public static string vetoSplitOdlMaccHash(string idxMacchina)
+ {
+ return mHash(string.Format("VetoOdlMacc:{0}", idxMacchina));
+ }
+ ///
/// Hash dati tabella AnagStati macchina
///
///
@@ -1577,40 +1587,60 @@ namespace MapoDb
#region gestione attrezzaggi
+ ///
+ /// Effettua split ODL
+ ///
+ ///
+ ///
public static string forceSplitOdl(string idxMacchina)
{
string answ = "KO";
- DS_ProdTempi.ODLDataTable currData = null;
- DateTime adesso = DateTime.Now;
- // chiamo metodo redis/db...
- try
+ // verifico NON CI SIA un veto a NUOVI split... 2 min di default...
+ string redKey = vetoSplitOdlMaccHash(idxMacchina);
+ string rawData = memLayer.ML.getRSV(redKey);
+ if (rawData == "")
{
- // recupero ODL corrente
- currData = currODLRowTab(idxMacchina);
- if (currData.Count > 0)
+ // registro VETO x altri split... 2 minuti
+ memLayer.ML.setRSV(redKey, $"Inizio SPLIT-ODL {DateTime.Now}", 120);
+ // proseguo
+ DS_ProdTempi.ODLDataTable currData = null;
+ DateTime adesso = DateTime.Now;
+ // chiamo metodo redis/db...
+ try
{
- // registro un evento di inizio attrezzaggio (idxTipoEv = 2)
- int idxEvento = 2;
- logger.lg.scriviLog($"Invio evento ODL-SPLIT per macchina {idxMacchina}, evento {idxEvento}, articolo {currData[0].CodArticolo}", tipoLog.INFO);
- inputComando resCmd = MapoDb.obj.scriviRigaEventoBarcode(idxMacchina, idxEvento, currData[0].CodArticolo, "ODL-SPLIT", 0, "", adesso.AddMinutes(-1), adesso);
- // chiamo splitOdl
- MapoDb.obj.taODL.splitODL(currData[0].IdxODL, 0, idxMacchina, currData[0].TCRichAttr, currData[0].PzPallet, $"Nuovo ODL da forceSplitOdl", true);
- // registro fine ODL (idxTipoEv = 1)
- idxEvento = 1;
- logger.lg.scriviLog($"Invio evento FINE ODL-SPLIT per macchina {idxMacchina}, evento {idxEvento}, articolo {currData[0].CodArticolo}", tipoLog.INFO);
- resCmd = MapoDb.obj.scriviRigaEventoBarcode(idxMacchina, idxEvento, currData[0].CodArticolo, "ODL-START");
- // chiamo refresh MSE
- obj.taMSE.forceRecalc(0, idxMacchina);
- // resetto stato macchina...
- memLayer.ML.redDelKey(currStatoMaccHash(idxMacchina));
- answ = "OK";
- logger.lg.scriviLog($"Effettuato reset e ricalcoli x split ODL per macchina {idxMacchina}", tipoLog.INFO);
+ // recupero ODL corrente
+ currData = currODLRowTab(idxMacchina);
+ if (currData.Count > 0)
+ {
+ // registro un evento di inizio attrezzaggio (idxTipoEv = 2)
+ int idxEvento = 2;
+ logger.lg.scriviLog($"Invio evento ODL-SPLIT per macchina {idxMacchina}, evento {idxEvento}, articolo {currData[0].CodArticolo}", tipoLog.INFO);
+ inputComando resCmd = MapoDb.obj.scriviRigaEventoBarcode(idxMacchina, idxEvento, currData[0].CodArticolo, "ODL-SPLIT", 0, "", adesso, adesso);
+ // attendo 1 sec
+ Thread.Sleep(1000);
+ adesso = DateTime.Now;
+ // chiamo splitOdl
+ MapoDb.obj.taODL.splitODL(currData[0].IdxODL, 0, idxMacchina, currData[0].TCRichAttr, currData[0].PzPallet, $"Nuovo ODL da forceSplitOdl", true);
+ // attendo 1 sec
+ Thread.Sleep(1000);
+ adesso = DateTime.Now;
+ // registro fine ODL (idxTipoEv = 1)
+ idxEvento = 1;
+ logger.lg.scriviLog($"Invio evento FINE ODL-SPLIT per macchina {idxMacchina}, evento {idxEvento}, articolo {currData[0].CodArticolo}", tipoLog.INFO);
+ resCmd = MapoDb.obj.scriviRigaEventoBarcode(idxMacchina, idxEvento, currData[0].CodArticolo, "ODL-START");
+ // chiamo refresh MSE
+ obj.taMSE.forceRecalc(0, idxMacchina);
+ // resetto stato macchina...
+ memLayer.ML.redDelKey(currStatoMaccHash(idxMacchina));
+ answ = "OK";
+ logger.lg.scriviLog($"Effettuato reset e ricalcoli x split ODL per macchina {idxMacchina}", tipoLog.INFO);
+ }
+ }
+ catch (Exception exc)
+ {
+ logger.lg.scriviLog($"Eccezione in forceSplitOdl{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
}
- }
- catch (Exception exc)
- {
- logger.lg.scriviLog($"Eccezione in forceSplitOdl{Environment.NewLine}{exc}", tipoLog.EXCEPTION);
}
return answ;
}