Modifica x caricamento manuale commesse + visualizzazione

This commit is contained in:
Samuele E. Locatelli
2020-10-25 15:46:41 +01:00
parent 12ca01f984
commit 5ef9137522
6 changed files with 638 additions and 503 deletions
+118 -82
View File
@@ -4,84 +4,116 @@ namespace AppData
{
public class mUtils
{
#region Public Fields
#region definizione Regexp
/// <summary>
/// RegExp x Cod ARTICOLO
/// Array di regole di sostituzione per valori Time
/// </summary>
public static string reCodArt = memLayer.ML.cdv("regExp_CodArt");
public static string[] lRepCleanTime = memLayer.ML.CRS("confAddTaskCleanTime").Split('#');
/// <summary>
/// RegExp x Cod OPERATORE
/// OPZIONE: indica che è da eseguire il preprocessing
/// </summary>
public static string reCodOper = memLayer.ML.cdv("regExp_CodOper");
/// <summary>
/// RegExp x Cod POSTAZIONE
/// </summary>
public static string reCodPost = memLayer.ML.cdv("regExp_CodPost");
/// <summary>
/// RegExp x Cod COMMESSA (NumTask)
/// </summary>
public static string reNumTask = memLayer.ML.cdv("regExp_NumTask");
/// <summary>
/// RegExp x QTA
/// </summary>
public static string reQta = memLayer.ML.cdv("regExp_QtaRic");
/// <summary>
/// RegExp x RESET / CANCEL
/// </summary>
public static string reReset = memLayer.ML.cdv("regExp_KO");
/// <summary>
/// RegExp x CONFERMA ADD
/// </summary>
public static string reAddNew = memLayer.ML.cdv("regExp_AddNew");
/// <summary>
/// RegExp x CONFERMA DELETE
/// </summary>
public static string reDelete = memLayer.ML.cdv("regExp_DEL");
/// <summary>
/// Comando x RESET OPERATORE
/// </summary>
public static string reCmdResetOper = memLayer.ML.cdv("regExp_CmdResetOper");
/// <summary>
/// Comando x RESET COMMESSA (NumTask)
/// </summary>
public static string reCmdResetNumTask = memLayer.ML.cdv("regExp_CmdResetNumTask");
/// <summary>
/// Comando x PAUSA (es COMMESSA/NumTask)
/// </summary>
public static string reCmdPause = memLayer.ML.cdv("regExp_CmdPause");
/// <summary>
/// Comando x CHIUSURA COMMESSA (NumTask)
/// </summary>
public static string reCmdClose = memLayer.ML.cdv("regExp_CmdClose");
public static bool OptBCodePrepDo = memLayer.ML.CRB("OptBCodePrepDo");
/// <summary>
/// OPZIONE: indica che è abilitato BCode
/// </summary>
public static bool OptUseBCode = memLayer.ML.CRB("OptUseBCode");
/// <summary>
/// OPZIONE: indica che è abilitata selezione TASK/COMMESSA
/// </summary>
public static bool OptUseSelTask = memLayer.ML.CRB("OptUseSelTask");
/// <summary>
/// OPZIONE: indica che è abilitata selezione TAG
/// </summary>
public static bool OptUseSelTag = memLayer.ML.CRB("OptUseSelTag");
/// <summary>
/// OPZIONE: indica che è da eseguire il preprocessing
/// OPZIONE: indica che è abilitata selezione TASK/COMMESSA
/// </summary>
public static bool OptBCodePrepDo = memLayer.ML.CRB("OptBCodePrepDo");
public static bool OptUseSelTask = memLayer.ML.CRB("OptUseSelTask");
/// <summary>
/// RegExp x CONFERMA ADD
/// </summary>
public static string reAddNew = memLayer.ML.cdv("regExp_AddNew");
/// <summary>
/// Comando x CHIUSURA COMMESSA (NumTask)
/// </summary>
public static string reCmdClose = memLayer.ML.cdv("regExp_CmdClose");
/// <summary>
/// Comando x PAUSA (es COMMESSA/NumTask)
/// </summary>
public static string reCmdPause = memLayer.ML.cdv("regExp_CmdPause");
/// <summary>
/// Comando x RESET COMMESSA (NumTask)
/// </summary>
public static string reCmdResetNumTask = memLayer.ML.cdv("regExp_CmdResetNumTask");
/// <summary>
/// Comando x RESET OPERATORE
/// </summary>
public static string reCmdResetOper = memLayer.ML.cdv("regExp_CmdResetOper");
/// <summary>
/// RegExp x Cod ARTICOLO
/// </summary>
public static string reCodArt = memLayer.ML.cdv("regExp_CodArt");
/// <summary>
/// RegExp x Cod OPERATORE
/// </summary>
public static string reCodOper = memLayer.ML.cdv("regExp_CodOper");
/// <summary>
/// RegExp x Cod POSTAZIONE
/// </summary>
public static string reCodPost = memLayer.ML.cdv("regExp_CodPost");
/// <summary>
/// RegExp x CONFERMA DELETE
/// </summary>
public static string reDelete = memLayer.ML.cdv("regExp_DEL");
/// <summary>
/// RegExp x Cod COMMESSA (NumTask)
/// </summary>
public static string reNumTask = memLayer.ML.cdv("regExp_NumTask");
/// <summary>
/// RegExp x Cod dati raw x preprocessare
/// </summary>
public static string rePreproc = memLayer.ML.cdv("regExp_Preproc");
/// <summary>
/// RegExp x Cod dati da TENERE post preprocessing
/// </summary>
public static string rePreprocKeep = memLayer.ML.cdv("regExp_PreprocKeep");
#endregion
/// <summary>
/// RegExp x QTA
/// </summary>
public static string reQta = memLayer.ML.cdv("regExp_QtaRic");
/// <summary>
/// RegExp x RESET / CANCEL
/// </summary>
public static string reReset = memLayer.ML.cdv("regExp_KO");
/// <summary>
/// RegExp x TempoPrevisto
/// </summary>
public static string reTempoPrev = memLayer.ML.cdv("regExp_TimePrev");
/// <summary>
/// Fattore conversione tempo stimato letto da BCode (def 1 = NO conversione, 10=da dividere per 10)
/// </summary>
public static int TimeEstFactor = memLayer.ML.cdvi("confAddTaskTimeFactor");
#endregion Public Fields
#region Public Properties
/// <summary>
/// Codice Operatore
@@ -96,7 +128,7 @@ namespace AppData
if (answ == "")
{
answ = memLayer.ML.getCookieVal("CTrack_CodOpr");
// se non vuoto salvo...
// se non vuoto salvo...
memLayer.ML.setSessionVal("CodOpr", answ);
}
return answ;
@@ -108,6 +140,7 @@ namespace AppData
memLayer.ML.emptySessionVal("NomeOpr");
}
}
/// <summary>
/// Codice postazione di lavoro
/// </summary>
@@ -120,7 +153,7 @@ namespace AppData
if (string.IsNullOrEmpty(answ))
{
answ = memLayer.ML.getCookieVal("CTrack_CodPost");
// se non vuoto salvo...
// se non vuoto salvo...
memLayer.ML.setSessionVal("CodPost", answ);
}
return answ;
@@ -132,33 +165,6 @@ namespace AppData
memLayer.ML.emptySessionVal("DescPost");
}
}
/// <summary>
/// Restituisce boolean se post corrente sia multi operatore
/// </summary>
public static bool postIsMulti
{
get
{
bool answ = false;
if (memLayer.ML.isInSessionObject("postIsMulti"))
{
answ = memLayer.ML.BoolSessionObj("postIsMulti");
}
else
{
string rawAnsw = memLayer.ML.getCookieVal("CTrack_postIsMulti");
bool.TryParse(rawAnsw, out answ);
// se non vuoto salvo...
memLayer.ML.setSessionVal("postIsMulti", answ);
}
return answ;
}
set
{
memLayer.ML.setSessionVal("postIsMulti", value);
memLayer.ML.setCookieVal("CTrack_postIsMulti", value.ToString());
}
}
/// <summary>
/// oggetto valore opzionale letto 8e scorporato da barcode), es TAG in commessa + tag
@@ -183,5 +189,35 @@ namespace AppData
memLayer.ML.setSessionVal("optValueBC", value, false);
}
}
/// <summary>
/// Restituisce boolean se post corrente sia multi operatore
/// </summary>
public static bool postIsMulti
{
get
{
bool answ = false;
if (memLayer.ML.isInSessionObject("postIsMulti"))
{
answ = memLayer.ML.BoolSessionObj("postIsMulti");
}
else
{
string rawAnsw = memLayer.ML.getCookieVal("CTrack_postIsMulti");
bool.TryParse(rawAnsw, out answ);
// se non vuoto salvo...
memLayer.ML.setSessionVal("postIsMulti", answ);
}
return answ;
}
set
{
memLayer.ML.setSessionVal("postIsMulti", value);
memLayer.ML.setCookieVal("CTrack_postIsMulti", value.ToString());
}
}
#endregion Public Properties
}
}
}
+152 -151
View File
@@ -4,69 +4,72 @@
https://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<configSections>
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>
</configSections>
<system.web>
<compilation debug="true" targetFramework="4.6.2" />
<httpRuntime targetFramework="4.6.2" />
<pages>
<namespaces>
<add namespace="System.Web.Optimization" />
</namespaces>
<controls>
<add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt" />
<add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" /></controls>
</pages>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
<sessionState timeout="600" mode="Custom" customProvider="MySessionStateStore">
<providers>
<add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="localhost" accessKey="localhost" ssl="false" applicationName="C.TRACK" databaseId="2" />
</providers>
</sessionState>
<customErrors mode="RemoteOnly" defaultRedirect="error.html" />
</system.web>
<!--<system.web.extensions>
<configSections>
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>
</configSections>
<system.web>
<compilation debug="true" targetFramework="4.6.2" />
<httpRuntime targetFramework="4.6.2" />
<pages>
<namespaces>
<add namespace="System.Web.Optimization" />
</namespaces>
<controls>
<add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt" />
<add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
</controls>
</pages>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
<sessionState timeout="600" mode="Custom" customProvider="MySessionStateStore">
<providers>
<add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="localhost" accessKey="localhost" ssl="false" applicationName="C.TRACK" databaseId="2" />
</providers>
</sessionState>
<customErrors mode="RemoteOnly" defaultRedirect="error.html" />
</system.web>
<!--<system.web.extensions>
<scripting>
<scriptResourceHandler enableCompression="true" enableCaching="true" />
</scripting>
</system.web.extensions>-->
<appSettings>
<add key="CodModulo" value="C.TRACK" />
<add key="cacheOnRedis" value="true" />
<add key="maxAgeAppConf_min" value="15" />
<add key="_logDir" value="~/logs/" />
<add key="logMitigSec" value="1" />
<!--Conf generale-->
<add key="appVers" value="stable" />
<add key="downloadPath" value="c:\Steamware\installers\CTRACK\" />
<!--Redis conn-->
<add key="RedisConn" value="localhost,abortConnect=false,ssl=false" />
<add key="RedisConnAdmin" value="localhost,abortConnect=false,ssl=false" />
<add key="redisDb" value="2" />
<add key="_safePages" value="chLang#jumper#unauthorized#forceUser#login#test#UserAdmin#UpdMan#about#contact" />
<!--area DB-->
<add key="CTrackConnectionString" value="Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User id=sa;Password=keyhammer16;" />
<add key="DbConfConnectionString" value="Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User id=sa;Password=keyhammer16;" />
<add key="DevicesAuthConnectionString" value="Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User id=sa;Password=keyhammer16;" />
<add key="PermessiConnectionString" value="Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User id=sa;Password=keyhammer16;" />
<add key="UtenteCdcConnectionString" value="Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User id=sa;Password=keyhammer16;" />
<add key="VocabolarioConnectionString" value="Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User id=sa;Password=keyhammer16;" />
</appSettings>
<connectionStrings>
<add name="AppData.Properties.Settings.C_TRACKConnectionString" connectionString="Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User ID=sa;Password=keyhammer16;" providerName="System.Data.SqlClient" />
</connectionStrings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<appSettings>
<add key="CodModulo" value="C.TRACK" />
<add key="cacheOnRedis" value="true" />
<add key="maxAgeAppConf_min" value="15" />
<add key="_logDir" value="~/logs/" />
<add key="logMitigSec" value="1" />
<!--Conf generale-->
<add key="appVers" value="stable" />
<add key="downloadPath" value="c:\Steamware\installers\CTRACK\" />
<!--Redis conn-->
<add key="RedisConn" value="localhost,abortConnect=false,ssl=false" />
<add key="RedisConnAdmin" value="localhost,abortConnect=false,ssl=false" />
<add key="redisDb" value="2" />
<add key="_safePages" value="chLang#jumper#unauthorized#forceUser#login#test#UserAdmin#UpdMan#about#contact" />
<!--area DB-->
<add key="CTrackConnectionString" value="Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User id=sa;Password=keyhammer16;" />
<add key="DbConfConnectionString" value="Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User id=sa;Password=keyhammer16;" />
<add key="DevicesAuthConnectionString" value="Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User id=sa;Password=keyhammer16;" />
<add key="PermessiConnectionString" value="Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User id=sa;Password=keyhammer16;" />
<add key="UtenteCdcConnectionString" value="Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User id=sa;Password=keyhammer16;" />
<add key="VocabolarioConnectionString" value="Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User id=sa;Password=keyhammer16;" />
</appSettings>
<connectionStrings>
<add name="AppData.Properties.Settings.C_TRACKConnectionString" connectionString="Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User ID=sa;Password=keyhammer16;" providerName="System.Data.SqlClient" />
<add name="ErrorLog" connectionString="Data Source=SQL2016DEV;Initial Catalog=Elmah;Persist Security Info=True;User ID=sa;Password=keyhammer16;"
providerName="System.Data.SqlClient" />
</connectionStrings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
@@ -279,101 +282,99 @@
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.1" newVersion="4.0.2.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SharpCompress" publicKeyToken="afb0a02973931d96" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-0.24.0.0" newVersion="0.24.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
<remove name="Session" />
<add name="Session" type="Microsoft.AspNet.SessionState.SessionStateModuleAsync, Microsoft.AspNet.SessionState.SessionStateModule, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode" />
</modules>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers></system.webServer>
<elmah>
<!--
See http://code.google.com/p/elmah/wiki/SecuringErrorLogPages for
more information on remote access and securing ELMAH.
-->
<security allowRemoteAccess="false" />
</elmah>
<location path="elmah.axd" inheritInChildApplications="false">
<system.web>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<!--
See http://code.google.com/p/elmah/wiki/SecuringErrorLogPages for
<dependentAssembly>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.1" newVersion="4.0.2.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SharpCompress" publicKeyToken="afb0a02973931d96" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-0.24.0.0" newVersion="0.24.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
<remove name="Session" />
<add name="Session" type="Microsoft.AspNet.SessionState.SessionStateModuleAsync, Microsoft.AspNet.SessionState.SessionStateModule, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode" />
</modules>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
<elmah>
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="ErrorLog" />
<security allowRemoteAccess="false" />
</elmah>
<location path="elmah.axd" inheritInChildApplications="false">
<system.web>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<!--
See http://code.google.com/p/elmah/wiki/SecuringErrorLogPages for
more information on using ASP.NET authorization securing ELMAH.
<authorization>
<allow roles="admin" />
<deny users="*" />
<deny users="*" />
</authorization>
-->
</system.web>
<system.webServer>
<handlers>
<add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
</handlers>
</system.webServer>
</location>
</configuration>
</system.web>
<system.webServer>
<handlers>
<add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
</handlers>
</system.webServer>
</location>
</configuration>
+22 -18
View File
@@ -1,20 +1,24 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_addTask.ascx.cs" Inherits="C_TRACK.WebUserControls.mod_addTask" %>
<div runat="server" id="divAddNew">
<div class="row font-weight-bold py-2">
<div class="col-3 text-center" runat="server" id="divArticolo">
<asp:Label runat="server" ID="lblCodArt" CssClass="text-secondary">Cod.ARTICOLO</asp:Label>
<div><%: CodArticolo %></div>
<div runat="server" id="divAddNew">
<div class="row font-weight-bold py-2">
<div class="col text-center" runat="server" id="divArticolo">
<asp:Label runat="server" ID="lblCodArt" CssClass="text-secondary">Cod.ARTICOLO</asp:Label>
<div><%: CodArticolo %></div>
</div>
<div class="col text-center" runat="server" id="divCommessa">
<asp:Label runat="server" ID="lblNumTask" CssClass="text-secondary">COMMESSA</asp:Label>
<div><%: NumTask %></div>
</div>
<div class="col text-center" runat="server" id="divQta">
<asp:Label runat="server" ID="lblQta" CssClass="text-secondary">QUANTITA</asp:Label>
<div><%: Quantita %></div>
</div>
<div class="col text-center" runat="server" id="divTime">
<asp:Label runat="server" ID="Label1" CssClass="text-secondary">TEMPO <sub>prev</sub></asp:Label>
<div><%: TimeEst %></div>
</div>
<div class="col text-center" runat="server" id="divReset">
<asp:LinkButton runat="server" ID="lbtReset" CssClass="btn btn-info btn-block" OnClick="lbtReset_Click"><i class="fas fa-sync-alt"></i> RESET</asp:LinkButton>
</div>
</div>
<div class="col-3 text-center" runat="server" id="divCommessa">
<asp:Label runat="server" ID="lblNumTask" CssClass="text-secondary">COMMESSA</asp:Label>
<div><%: NumTask %></div>
</div>
<div class="col-3 text-center" runat="server" id="divQta">
<asp:Label runat="server" ID="lblQta" CssClass="text-secondary">QUANTITA</asp:Label>
<div><%: Quantita %></div>
</div>
<div class="col-3 text-center" runat="server" id="divReset">
<asp:LinkButton runat="server" ID="lbtReset" CssClass="btn btn-info btn-block" OnClick="lbtReset_Click"><i class="fas fa-sync-alt"></i> RESET</asp:LinkButton>
</div>
</div>
</div>
</div>
+230 -157
View File
@@ -1,182 +1,255 @@
using AppData;
using SteamWare;
using System;
using System.Linq;
using System.Text.RegularExpressions;
namespace C_TRACK.WebUserControls
{
public partial class mod_addTask : System.Web.UI.UserControl
{
/// <summary>
/// evento aggiunta record
/// </summary>
public event EventHandler eh_created;
protected void Page_Load(object sender, EventArgs e)
public partial class mod_addTask : System.Web.UI.UserControl
{
if (!Page.IsPostBack)
{
CodArticolo = "";
NumTask = "";
Quantita = 0;
}
checkValori();
}
#region Public Events
private void checkValori()
{
// verifica quali valori siano disponibili e di conseguenza visualizza COLORE...
divArticolo.Attributes.Remove("class");
divCommessa.Attributes.Remove("class");
divQta.Attributes.Remove("class");
divArticolo.Attributes.Add("class", CodArticolo != "" ? "col-3 text-center table-success text-success" : "col-3 text-center text-secondary");
divCommessa.Attributes.Add("class", NumTask != "" ? "col-3 text-center table-success text-success" : "col-3 text-center text-secondary");
divQta.Attributes.Add("class", Quantita > 0 ? "col-3 text-center table-success text-success" : "col-3 text-center text-secondary");
}
/// <summary>
/// Input da processare...
/// </summary>
public string newInput
{
set
{
processInput(value);
}
}
/// <summary>
/// Effettua riconoscimento input e determina valori commessa / articolo / qta
/// </summary>
/// <param name="value"></param>
private void processInput(string value)
{
// verifico se sia un articolo...
Match testReset = Regex.Match(value, mUtils.reReset);
Match testDelete = Regex.Match(value, mUtils.reDelete);
Match testAddNew = Regex.Match(value, mUtils.reAddNew);
Match testCodArt = Regex.Match(value, mUtils.reCodArt);
Match testNumTask = Regex.Match(value, mUtils.reNumTask);
Match testQta = Regex.Match(value, mUtils.reQta);
/// <summary>
/// evento aggiunta record
/// </summary>
public event EventHandler eh_created;
#endregion Public Events
if (testReset.Success)
{
CodArticolo = "";
NumTask = "";
Quantita = 0;
}
else if (testDelete.Success)
{
// creo...
dataLayer.man.taTL.deleteQuery(NumTask);
// resetto!
CodArticolo = "";
NumTask = "";
Quantita = 0;
// invoco update...
if (eh_created != null)
#region Public Properties
/// <summary>
/// Cod ARTICOLO corrente
/// </summary>
public string CodArticolo
{
eh_created(this, new EventArgs());
get
{
return memLayer.ML.StringSessionObj("currCodArt");
}
set
{
memLayer.ML.setSessionVal("currCodArt", value);
}
}
}
else if (testAddNew.Success)
{
// se qta > 0 ed ho articolo e commessa...
if (Quantita > 0 && CodArticolo != "" && NumTask != "")
/// <summary>
/// Input da processare...
/// </summary>
public string newInput
{
// creo...
dataLayer.man.taTL.insertQuery(NumTask, CodArticolo, Quantita);
// resetto!
CodArticolo = "";
NumTask = "";
Quantita = 0;
// invoco update...
if (eh_created != null)
{
eh_created(this, new EventArgs());
}
set
{
processInput(value);
}
}
}
else if (testCodArt.Success)
{
CodArticolo = value;
}
else if (testNumTask.Success)
{
NumTask = value;
}
else if (testQta.Success)
{
int qta = 0;
int.TryParse(value, out qta);
Quantita = qta;
}
// non match con RegExp --> ricerca ESPLICITA, se abilitato ricerca estesa
if (memLayer.ML.CRB("OptEnableMapoIn") && !(testCodArt.Success || testNumTask.Success))
{
var tabArt = dataLayer.man.taAnArt.getByKey(value);
if (tabArt.Rows.Count > 0)
/// <summary>
/// Cod COMMESSA corrente
/// </summary>
public string NumTask
{
CodArticolo = value;
get
{
return memLayer.ML.StringSessionObj("currNumTask");
}
set
{
memLayer.ML.setSessionVal("currNumTask", value);
}
}
else
/// <summary>
/// QTA da produrre
/// </summary>
public int Quantita
{
var tabTask = dataLayer.man.taTL.getByKey(value);
if (tabTask.Rows.Count > 0)
{
NumTask = value;
}
get
{
return memLayer.ML.IntSessionObj("currQta");
}
set
{
memLayer.ML.setSessionVal("currQta", value);
}
}
}
checkValori();
}
/// <summary>
/// Tempo stimato x produzione
/// </summary>
public float TimeEst
{
get
{
float answ = -1;
string rawVal = memLayer.ML.StringSessionObj("currTimeEst");
float.TryParse(rawVal, out answ);
return answ;
}
set
{
memLayer.ML.setSessionVal("currTimeEst", value);
}
}
/// <summary>
/// Cod ARTICOLO corrente
/// </summary>
public string CodArticolo
{
get
{
return memLayer.ML.StringSessionObj("currCodArt");
}
set
{
memLayer.ML.setSessionVal("currCodArt", value);
}
}
/// <summary>
/// Cod COMMESSA corrente
/// </summary>
public string NumTask
{
get
{
return memLayer.ML.StringSessionObj("currNumTask");
}
set
{
memLayer.ML.setSessionVal("currNumTask", value);
}
}
/// <summary>
/// QTA da produrre
/// </summary>
public int Quantita
{
get
{
return memLayer.ML.IntSessionObj("currQta");
}
set
{
memLayer.ML.setSessionVal("currQta", value);
}
}
#endregion Public Properties
protected void lbtReset_Click(object sender, EventArgs e)
{
processInput(memLayer.ML.CRS("regExp_KO"));
#region Private Methods
private void checkValori()
{
// verifica quali valori siano disponibili e di conseguenza visualizza COLORE...
divArticolo.Attributes.Remove("class");
divCommessa.Attributes.Remove("class");
divQta.Attributes.Remove("class");
divTime.Attributes.Remove("class");
divArticolo.Attributes.Add("class", CodArticolo != "" ? "col text-center table-success text-success" : "col text-center text-secondary");
divCommessa.Attributes.Add("class", NumTask != "" ? "col text-center table-success text-success" : "col text-center text-secondary");
divQta.Attributes.Add("class", Quantita > 0 ? "col text-center table-success text-success" : "col text-center text-secondary");
divTime.Attributes.Add("class", TimeEst > 0 ? "col text-center table-success text-success" : "col text-center text-secondary");
}
/// <summary>
/// Effettua riconoscimento input e determina valori commessa / articolo / qta
/// </summary>
/// <param name="value"></param>
private void processInput(string value)
{
// verifico se sia un articolo...
Match testReset = Regex.Match(value, mUtils.reReset);
Match testDelete = Regex.Match(value, mUtils.reDelete);
Match testAddNew = Regex.Match(value, mUtils.reAddNew);
Match testCodArt = Regex.Match(value, mUtils.reCodArt);
Match testNumTask = Regex.Match(value, mUtils.reNumTask);
Match testQta = Regex.Match(value, mUtils.reQta);
Match testTempo = Regex.Match(value, mUtils.reTempoPrev);
if (testReset.Success)
{
CodArticolo = "";
NumTask = "";
Quantita = 0;
TimeEst = 0;
}
else if (testDelete.Success)
{
// creo...
dataLayer.man.taTL.deleteQuery(NumTask);
// resetto!
CodArticolo = "";
NumTask = "";
Quantita = 0;
// invoco update...
if (eh_created != null)
{
eh_created(this, new EventArgs());
}
}
else if (testAddNew.Success)
{
// controllo condizione richiesta tempo x setup Task
bool confAddTaskReqTime = memLayer.ML.CRB("confAddTaskReqTime");
// se NON richiesto --> Time=0
if (!confAddTaskReqTime)
{
TimeEst = 0;
}
// se qta > 0 ed ho articolo e commessa...
if (Quantita > 0 && !string.IsNullOrEmpty(CodArticolo) && !string.IsNullOrEmpty(NumTask) && (!confAddTaskReqTime || TimeEst > 0))
{
// creo...
dataLayer.man.taTL.insertQuery(NumTask, CodArticolo, Quantita, TimeEst);
// resetto!
CodArticolo = "";
NumTask = "";
Quantita = 0;
// invoco update...
if (eh_created != null)
{
eh_created(this, new EventArgs());
}
}
}
else if (testTempo.Success)
{
string newVal = value;
// effettuo pulizia variabile da conf...
foreach (var item in mUtils.lRepCleanTime)
{
string[] repVal = item.Split('|');
if (repVal.Length > 1)
{
newVal = newVal.Replace(repVal[0], repVal[1]);
}
}
float tPrev = 0;
float.TryParse(newVal, out tPrev);
// se configurata conversione procedo
if (mUtils.TimeEstFactor != 1)
{
tPrev = tPrev / mUtils.TimeEstFactor;
}
// assegno!
TimeEst = tPrev;
}
else if (testCodArt.Success)
{
CodArticolo = value;
}
else if (testNumTask.Success)
{
NumTask = value;
}
else if (testQta.Success)
{
int qta = 0;
int.TryParse(value, out qta);
Quantita = qta;
}
// non match con RegExp --> ricerca ESPLICITA, se abilitato ricerca estesa
if (memLayer.ML.CRB("OptEnableMapoIn") && !(testCodArt.Success || testNumTask.Success))
{
var tabArt = dataLayer.man.taAnArt.getByKey(value);
if (tabArt.Rows.Count > 0)
{
CodArticolo = value;
}
else
{
var tabTask = dataLayer.man.taTL.getByKey(value);
if (tabTask.Rows.Count > 0)
{
NumTask = value;
}
}
}
checkValori();
}
#endregion Private Methods
#region Protected Methods
protected void lbtReset_Click(object sender, EventArgs e)
{
processInput(memLayer.ML.CRS("regExp_KO"));
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
CodArticolo = "";
NumTask = "";
Quantita = 0;
}
checkValori();
}
#endregion Protected Methods
}
}
}
+33 -13
View File
@@ -7,11 +7,13 @@
// </generato automaticamente>
//------------------------------------------------------------------------------
namespace C_TRACK.WebUserControls {
public partial class mod_addTask {
namespace C_TRACK.WebUserControls
{
public partial class mod_addTask
{
/// <summary>
/// Controllo divAddNew.
/// </summary>
@@ -20,7 +22,7 @@ namespace C_TRACK.WebUserControls {
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divAddNew;
/// <summary>
/// Controllo divArticolo.
/// </summary>
@@ -29,7 +31,7 @@ namespace C_TRACK.WebUserControls {
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divArticolo;
/// <summary>
/// Controllo lblCodArt.
/// </summary>
@@ -38,7 +40,7 @@ namespace C_TRACK.WebUserControls {
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblCodArt;
/// <summary>
/// Controllo divCommessa.
/// </summary>
@@ -47,7 +49,7 @@ namespace C_TRACK.WebUserControls {
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divCommessa;
/// <summary>
/// Controllo lblNumTask.
/// </summary>
@@ -56,7 +58,7 @@ namespace C_TRACK.WebUserControls {
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblNumTask;
/// <summary>
/// Controllo divQta.
/// </summary>
@@ -65,7 +67,7 @@ namespace C_TRACK.WebUserControls {
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divQta;
/// <summary>
/// Controllo lblQta.
/// </summary>
@@ -74,7 +76,25 @@ namespace C_TRACK.WebUserControls {
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblQta;
/// <summary>
/// Controllo divTime.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divTime;
/// <summary>
/// Controllo Label1.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label1;
/// <summary>
/// Controllo divReset.
/// </summary>
@@ -83,7 +103,7 @@ namespace C_TRACK.WebUserControls {
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divReset;
/// <summary>
/// Controllo lbtReset.
/// </summary>
+83 -82
View File
@@ -3,90 +3,91 @@
<%@ Register Src="~/WebUserControls/mod_fasiAttive.ascx" TagPrefix="uc1" TagName="mod_fasiAttive" %>
<div class="row text-uppercase mb-2">
<div class="col">
<asp:LinkButton runat="server" ID="lbCaricati" CssClass="btn btn-sm btn-success btn-block" OnClick="lbCaricati_Click" AccessKey="1">[1] Caricate</asp:LinkButton>
</div>
<div class="col">
<asp:LinkButton runat="server" ID="lbInCorso" CssClass="btn btn-sm btn-warning btn-block" OnClick="lbInCorso_Click" AccessKey="2">[2] In Corso</asp:LinkButton>
</div>
<div class="col">
<asp:LinkButton runat="server" ID="lbConclusi" CssClass="btn btn-sm btn-secondary btn-block" OnClick="lbConclusi_Click" AccessKey="3">[3] Concluse</asp:LinkButton>
</div>
<div class="col">
<asp:LinkButton runat="server" ID="lbTutti" CssClass="btn btn-sm btn-dark btn-block" OnClick="lbTutti_Click" AccessKey="0">[0] Tutte Comm</asp:LinkButton>
</div>
<div class="col">
<asp:LinkButton runat="server" ID="lbFasiAttive" CssClass="btn btn-sm btn-outline-primary btn-block" AccessKey="4" OnClick="lbFasiAttive_Click">[4] Fasi Attive</asp:LinkButton>
</div>
<div class="col">
<asp:LinkButton runat="server" ID="lbCaricati" CssClass="btn btn-sm btn-success btn-block" OnClick="lbCaricati_Click" AccessKey="1">[1] Caricate</asp:LinkButton>
</div>
<div class="col">
<asp:LinkButton runat="server" ID="lbInCorso" CssClass="btn btn-sm btn-warning btn-block" OnClick="lbInCorso_Click" AccessKey="2">[2] In Corso</asp:LinkButton>
</div>
<div class="col">
<asp:LinkButton runat="server" ID="lbConclusi" CssClass="btn btn-sm btn-secondary btn-block" OnClick="lbConclusi_Click" AccessKey="3">[3] Concluse</asp:LinkButton>
</div>
<div class="col">
<asp:LinkButton runat="server" ID="lbTutti" CssClass="btn btn-sm btn-dark btn-block" OnClick="lbTutti_Click" AccessKey="0">[0] Tutte Comm</asp:LinkButton>
</div>
<div class="col">
<asp:LinkButton runat="server" ID="lbFasiAttive" CssClass="btn btn-sm btn-outline-primary btn-block" AccessKey="4" OnClick="lbFasiAttive_Click">[4] Fasi Attive</asp:LinkButton>
</div>
</div>
<div class="row">
<div class="col-12">
<uc1:mod_fasiAttive runat="server" ID="mod_fasiAttive" Visible="false" />
<uc1:mod_taskRec runat="server" ID="mod_taskRec" tipoSelezione="byTask" />
<i>NB: tempi espressi in minuti.centesimi</i>
<asp:GridView ID="grView" runat="server" AutoGenerateColumns="False" DataKeyNames="NumTask" DataSourceID="ods" CssClass="table table-striped table-condensed table-sm small" AllowPaging="True" AllowSorting="True" OnSelectedIndexChanged="grView_SelectedIndexChanged">
<HeaderStyle CssClass="default" />
<PagerStyle CssClass="active GridPager" />
<PagerSettings Mode="NumericFirstLast" />
<SelectedRowStyle CssClass="table-info" />
<EmptyDataTemplate>
Nessun Risultato
</EmptyDataTemplate>
<Columns>
<asp:TemplateField ItemStyle-Width="2em">
<HeaderTemplate>
<asp:LinkButton ID="lbtReset" runat="server" OnClick="lbtReset_Click" CssClass="btn btn-sm btn-primary" Visible="true"><i class="fas fa-sync-alt"></i></asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="lbSelect" runat="server" CausesValidation="False" CommandName="Select" CssClass="btn btn-sm btn-info"><i class="fas fa-search"></i></asp:LinkButton>
</ItemTemplate>
<div class="col-12">
<uc1:mod_fasiAttive runat="server" ID="mod_fasiAttive" Visible="false" />
<uc1:mod_taskRec runat="server" ID="mod_taskRec" tipoSelezione="byTask" />
<i>NB: tempi espressi in minuti.centesimi</i>
<asp:GridView ID="grView" runat="server" AutoGenerateColumns="False" DataKeyNames="NumTask" DataSourceID="ods" CssClass="table table-striped table-condensed table-sm small" AllowPaging="True" AllowSorting="True" OnSelectedIndexChanged="grView_SelectedIndexChanged">
<HeaderStyle CssClass="default" />
<PagerStyle CssClass="active GridPager" />
<PagerSettings Mode="NumericFirstLast" />
<SelectedRowStyle CssClass="table-info" />
<EmptyDataTemplate>
Nessun Risultato
</EmptyDataTemplate>
<Columns>
<asp:TemplateField ItemStyle-Width="2em">
<HeaderTemplate>
<asp:LinkButton ID="lbtReset" runat="server" OnClick="lbtReset_Click" CssClass="btn btn-sm btn-primary" Visible="true"><i class="fas fa-sync-alt"></i></asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="lbSelect" runat="server" CausesValidation="False" CommandName="Select" CssClass="btn btn-sm btn-info"><i class="fas fa-search"></i></asp:LinkButton>
</ItemTemplate>
<ItemStyle Width="2em"></ItemStyle>
</asp:TemplateField>
<asp:BoundField DataField="NumTask" HeaderText="Commessa" ReadOnly="True" SortExpression="NumTask" />
<asp:BoundField DataField="CodGruppo" HeaderText="Gruppo" SortExpression="CodGruppo" />
<asp:BoundField DataField="CodArt" HeaderText="Articolo" SortExpression="CodArt" />
<asp:BoundField DataField="QtaRic" HeaderText="Qta Ord" SortExpression="QtaRic" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField DataField="QtaEv" HeaderText="Qta Ev" SortExpression="QtaEv" ItemStyle-HorizontalAlign="Center" ItemStyle-CssClass="text-success" />
<asp:BoundField DataField="MinTotWrk" HeaderText="Tot Lav." SortExpression="MinTotWrk" DataFormatString="{0:N3}" />
<asp:BoundField DataField="TCMedio" HeaderText="T.Ciclo" SortExpression="TCMedio" DataFormatString="{0:N2}"/>
<asp:BoundField DataField="MinTotFix" HeaderText="Tot Rip." SortExpression="MinTotFix" DataFormatString="{0:N3}"/>
<asp:BoundField DataField="DataIns" HeaderText="Inserita" SortExpression="DataIns" />
<asp:TemplateField HeaderText="St" SortExpression="CurrStatus" ItemStyle-Width="4em">
<ItemTemplate>
<div class="text-center">
<b>
<asp:Label ID="Label1" runat="server" Font-Size="1.3em" Text='<%# Eval("CurrStatus") %>' /></b><br />
<asp:Label ID="Label2" runat="server" Text='<%# tradStatus(Eval("CurrStatus")) %>' />
</div>
</ItemTemplate>
<ItemStyle Width="2em"></ItemStyle>
</asp:TemplateField>
<asp:BoundField DataField="NumTask" HeaderText="Commessa" ReadOnly="True" SortExpression="NumTask" />
<asp:BoundField DataField="CodGruppo" HeaderText="Gruppo" SortExpression="CodGruppo" />
<asp:BoundField DataField="CodArt" HeaderText="Articolo" SortExpression="CodArt" />
<asp:BoundField DataField="QtaRic" HeaderText="Qta Ord" SortExpression="QtaRic" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField DataField="QtaEv" HeaderText="Qta Ev" SortExpression="QtaEv" ItemStyle-HorizontalAlign="Center" ItemStyle-CssClass="text-success" />
<asp:BoundField DataField="MinTotWrk" HeaderText="Tot Lav." SortExpression="MinTotWrk" DataFormatString="{0:N3}" />
<asp:BoundField DataField="TCMedio" HeaderText="T.Ciclo" SortExpression="TCMedio" DataFormatString="{0:N2}" />
<asp:BoundField DataField="MinTotFix" HeaderText="Tot Rip." SortExpression="MinTotFix" DataFormatString="{0:N3}" />
<asp:BoundField DataField="TimeEst" HeaderText="T.Prev" SortExpression="TimeEst" DataFormatString="{0:N3}" />
<asp:BoundField DataField="DataIns" HeaderText="Inserita" SortExpression="DataIns" />
<asp:TemplateField HeaderText="St" SortExpression="CurrStatus" ItemStyle-Width="4em">
<ItemTemplate>
<div class="text-center">
<b>
<asp:Label ID="Label1" runat="server" Font-Size="1.3em" Text='<%# Eval("CurrStatus") %>' /></b><br />
<asp:Label ID="Label2" runat="server" Text='<%# tradStatus(Eval("CurrStatus")) %>' />
</div>
</ItemTemplate>
<ItemStyle Width="4em"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False" ItemStyle-Width="2em">
<ItemTemplate>
<div class="row">
<div class="col text-right">
<asp:LinkButton ID="lbDelete" runat="server" CausesValidation="False" CommandName="Delete" CssClass="btn btn-sm btn-danger" OnClientClick='<%# SteamWare.jsUtils.getCBE("confermaDel") %>' Visible='<%# Eval("NumRec").ToString()=="0" %>'><i class="fas fa-trash"></i></asp:LinkButton>
<asp:LinkButton ID="lbtReopen" runat="server" CausesValidation="False" CommandName="Select" CommandArgument="reopenTask" CssClass="btn btn-block btn-warning" Visible='<%# Convert.ToBoolean(Eval("Concluso")) %>' ToolTip="Riapertura Commessa" OnClick="lbtReopen_Click" OnClientClick='<%# SteamWare.jsUtils.getCBE("confermaReopenTask") %>'><i class="fas fa-angle-double-up"></i></asp:LinkButton>
</div>
</div>
</ItemTemplate>
<ItemStyle Width="4em"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False" ItemStyle-Width="2em">
<ItemTemplate>
<div class="row">
<div class="col text-right">
<asp:LinkButton ID="lbDelete" runat="server" CausesValidation="False" CommandName="Delete" CssClass="btn btn-sm btn-danger" OnClientClick='<%# SteamWare.jsUtils.getCBE("confermaDel") %>' Visible='<%# Eval("NumRec").ToString()=="0" %>'><i class="fas fa-trash"></i></asp:LinkButton>
<asp:LinkButton ID="lbtReopen" runat="server" CausesValidation="False" CommandName="Select" CommandArgument="reopenTask" CssClass="btn btn-block btn-warning" Visible='<%# Convert.ToBoolean(Eval("Concluso")) %>' ToolTip="Riapertura Commessa" OnClick="lbtReopen_Click" OnClientClick='<%# SteamWare.jsUtils.getCBE("confermaReopenTask") %>'><i class="fas fa-angle-double-up"></i></asp:LinkButton>
</div>
</div>
</ItemTemplate>
<ItemStyle Width="2em"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:HiddenField runat="server" ID="hfCurrStatus" />
<asp:ObjectDataSource ID="ods" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByFilt" TypeName="AppData.DS_AppTableAdapters.TaskListTableAdapter" DeleteMethod="deleteQuery" OnDeleted="ods_Deleted">
<DeleteParameters>
<asp:Parameter Name="Original_NumTask" Type="String" />
</DeleteParameters>
<SelectParameters>
<asp:ControlParameter ControlID="hfCurrStatus" DefaultValue="0" Name="CurrStatus" PropertyName="Value" Type="Int32" />
<asp:SessionParameter Name="CodArt" SessionField="currCodArt" Type="String" />
<asp:SessionParameter Name="NumTask" SessionField="currNumTask" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
</div>
</div>
<ItemStyle Width="2em"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:HiddenField runat="server" ID="hfCurrStatus" />
<asp:ObjectDataSource ID="ods" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByFilt" TypeName="AppData.DS_AppTableAdapters.TaskListTableAdapter" DeleteMethod="deleteQuery" OnDeleted="ods_Deleted">
<DeleteParameters>
<asp:Parameter Name="Original_NumTask" Type="String" />
</DeleteParameters>
<SelectParameters>
<asp:ControlParameter ControlID="hfCurrStatus" DefaultValue="0" Name="CurrStatus" PropertyName="Value" Type="Int32" />
<asp:SessionParameter Name="CodArt" SessionField="currCodArt" Type="String" />
<asp:SessionParameter Name="NumTask" SessionField="currNumTask" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
</div>
</div>