19 Commits

Author SHA1 Message Date
Samuele E. Locatelli 2dd142f1ab Merge branch 'develop' 2020-09-07 16:50:08 +02:00
Samuele E. Locatelli 09a67184f7 split deploy proj 2020-09-07 16:50:03 +02:00
Samuele E. Locatelli 2bedb19f88 fix librerire riferite... (snappy & co) 2020-09-07 16:44:16 +02:00
Samuele E. Locatelli 29f6441195 provo modifica compilemerge x IIS01/IIS02/IISDEV 2020-09-07 16:33:16 +02:00
Samuele E. Locatelli 9e62960f06 cambio ordine compilazione 2020-09-07 16:01:07 +02:00
Samuele E. Locatelli 8a04f0c058 eliminato fart.exe locale 2020-09-07 15:42:13 +02:00
Samuele E. Locatelli 8c7451aa9e refresh pacchetti 2020-09-07 15:38:34 +02:00
Samuele E. Locatelli 4036e15f22 Merge branch 'develop' 2020-09-07 14:00:31 +02:00
Samuele E. Locatelli 4829b81b42 typo 2020-09-07 13:23:16 +02:00
Samuele E. Locatelli 651a5c6d70 Ancora test x fix nuget pack 2020-09-07 13:22:55 +02:00
Samuele E. Locatelli 51aa8b4893 fix dll mancanti da steamwarelibs! 2020-09-07 13:00:12 +02:00
Samuele E. Locatelli 5d74f988d6 Merge branch 'develop' into bug/assemblyDep 2020-09-07 12:54:39 +02:00
Samuele E. Locatelli 1d8193fac0 new rel 2020-09-07 12:54:22 +02:00
Samuele E. Locatelli 8e1dcc2a7e Risolti errori versioni (maybe...) 2020-09-07 12:53:45 +02:00
Samuele E. Locatelli 96769dd5b1 ancora refresh codice... 2020-09-07 12:42:56 +02:00
Samuele E. Locatelli 535b04e3b6 fix null string check errors 2020-09-07 11:13:34 +02:00
Samuele E. Locatelli 485cd8cd6f update rimozione warnings vari 2020-09-07 11:03:21 +02:00
Samuele E. Locatelli c16e66fe01 continuo fix 2020-09-07 10:30:13 +02:00
Samuele E. Locatelli e4973c2d39 Fix warnings progetto ADM 2020-09-07 10:30:02 +02:00
118 changed files with 4371 additions and 4217 deletions
+25
View File
@@ -17,3 +17,28 @@ dotnet_code_quality_unused_parameters = all:none
# CA1305: Specificare IFormatProvider
dotnet_diagnostic.CA1305.severity = none
# CA1305: Specificare IFormatProvider
dotnet_diagnostic.CA1305.severity = none
# CA1051: Non dichiarare campi di istanza visibili
dotnet_diagnostic.CA1051.severity = none
# CA1044: Le proprietà non devono essere di sola scrittura
dotnet_diagnostic.CA1044.severity = none
# CA1304: Specificare CultureInfo
dotnet_diagnostic.CA1304.severity = silent
# CA1303: Non passare valori letterali come parametri localizzati
dotnet_diagnostic.CA1303.severity = none
# CA1030: Usare gli eventi dove appropriato
dotnet_diagnostic.CA1030.severity = none
# CA1056: Le proprietà Uri non devono essere stringhe
dotnet_diagnostic.CA1056.severity = none
# CA1055: I valori restituiti di Uri non devono essere stringhe
dotnet_diagnostic.CA1055.severity = none
+28
View File
@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SteamWare;
namespace GPW_Admin
{
public class BasePage : System.Web.UI.Page
{
void Page_Init(object sender, EventArgs e)
{
ViewStateUserKey = Session.SessionID;
}
/// <summary>
/// effettua traduzione del lemma
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(string lemma)
{
return user_std.UtSn.Traduci(lemma);
}
}
}
+36 -12
View File
@@ -24,6 +24,18 @@ namespace GPW_Admin
return user_std.UtSn.Traduci(lemma);
}
/// <summary>
/// wrapper traduzione
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(object lemma)
{
string answ = "";
if (lemma != null)
answ = traduci(lemma.ToString());
return answ;
}
/// <summary>
/// Verifica se il valore sia > 0
/// </summary>
/// <param name="_valore"></param>
@@ -31,9 +43,12 @@ namespace GPW_Admin
public bool gtZero(object _valore)
{
bool answ = false;
decimal valore = 0;
decimal.TryParse(_valore.ToString(), out valore);
answ = valore > 0;
if (_valore != null)
{
decimal valore = 0;
_ = decimal.TryParse(_valore.ToString(), out valore);
answ = valore > 0;
}
return answ;
}
/// <summary>
@@ -45,9 +60,12 @@ namespace GPW_Admin
public bool gtVal(object _valore, double maxVal)
{
bool answ = false;
double valore = 0;
double.TryParse(_valore.ToString(), out valore);
answ = valore > maxVal;
if (_valore != null)
{
double valore = 0;
_ = double.TryParse(_valore.ToString(), out valore);
answ = valore > maxVal;
}
return answ;
}
/// <summary>
@@ -59,9 +77,12 @@ namespace GPW_Admin
public bool ltVal(object _valore, double minVal)
{
bool answ = false;
double valore = 0;
double.TryParse(_valore.ToString(), out valore);
answ = valore < minVal;
if (_valore != null)
{
double valore = 0;
_ = double.TryParse(_valore.ToString(), out valore);
answ = valore < minVal;
}
return answ;
}
/// <summary>
@@ -74,9 +95,12 @@ namespace GPW_Admin
public bool betweenVal(object _valore, double minVal, double maxVal)
{
bool answ = false;
double valore = 0;
double.TryParse(_valore.ToString(), out valore);
answ = valore <= maxVal && valore >= minVal;
if (_valore != null)
{
double valore = 0;
_ = double.TryParse(_valore.ToString(), out valore);
answ = valore <= maxVal && valore >= minVal;
}
return answ;
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="GPW.AdminArea.Default" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="GPW_Admin.Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+2 -2
View File
@@ -1,9 +1,9 @@
using SteamWare;
using System;
namespace GPW.AdminArea
namespace GPW_Admin
{
public partial class Default : System.Web.UI.Page
public partial class Default : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
+9 -9
View File
@@ -1,13 +1,13 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// <generato automaticamente>
// Codice generato da uno strumento.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
// Le modifiche a questo file possono causare un comportamento non corretto e verranno perse se
// il codice viene rigenerato.
// </generato automaticamente>
//------------------------------------------------------------------------------
namespace GPW.AdminArea
namespace GPW_Admin
{
@@ -15,11 +15,11 @@ namespace GPW.AdminArea
{
/// <summary>
/// form1 control.
/// Controllo form1.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// 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.HtmlForm form1;
}
+6 -12
View File
@@ -10,7 +10,7 @@ using SteamWare;
namespace GPW_Admin
{
public partial class ExportCommesse : System.Web.UI.Page
public partial class ExportCommesse : BasePage
{
public override void VerifyRenderingInServerForm(Control control)
{
@@ -72,8 +72,11 @@ namespace GPW_Admin
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
grView.RenderControl(htmlWrite);
using (
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite))
{
grView.RenderControl(htmlWrite);
}
Response.Write(stringWrite.ToString());
Response.End();
}
@@ -101,15 +104,6 @@ namespace GPW_Admin
}
}
/// <summary>
/// effettua traduzione del lemma
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(string lemma)
{
return user_std.UtSn.Traduci(lemma);
}
/// <summary>
/// restituisce info se utente sia admin (vedi web.config x ruolo...)
/// </summary>
public bool userIsAdmin
+2 -2
View File
@@ -11,7 +11,7 @@ using SteamWare;
namespace GPW_Admin
{
public partial class ExportTimbZucchetti : System.Web.UI.Page
public partial class ExportTimbZucchetti : BasePage
{
protected DateTime inizio;
protected DateTime fine;
@@ -41,7 +41,7 @@ namespace GPW_Admin
idxDipendente = memLayer.ML.IntSessionObj("idxDip_sel");
if (idxDipendente == -1) idxDipendente = 0;
codTimbra = memLayer.ML.confReadString("codTimbra");
if (codTimbra == "")
if (string.IsNullOrEmpty(codTimbra))
{
codTimbra = "90"; // timbratrice 90: da web.config
}
+15 -16
View File
@@ -29,7 +29,7 @@
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<Use64BitIISExpress />
<TypeScriptToolsVersion>3.7</TypeScriptToolsVersion>
<TypeScriptToolsVersion>3.9</TypeScriptToolsVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -124,8 +124,8 @@
<Reference Include="StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46, processorArchitecture=MSIL">
<HintPath>..\packages\StackExchange.Redis.2.1.58\lib\net461\StackExchange.Redis.dll</HintPath>
</Reference>
<Reference Include="SteamWare, Version=4.1.2008.736, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SteamWare.4.1.2008.736\lib\net462\SteamWare.dll</HintPath>
<Reference Include="SteamWare, Version=4.1.2009.737, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SteamWare.4.1.2009.737\lib\net462\SteamWare.dll</HintPath>
</Reference>
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
@@ -138,11 +138,10 @@
<Reference Include="System.Diagnostics.PerformanceCounter, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.PerformanceCounter.4.7.0\lib\net461\System.Diagnostics.PerformanceCounter.dll</HintPath>
</Reference>
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<!-- <Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
</Reference> -->
<Reference Include="System.IO.Pipelines, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Pipelines.4.7.2\lib\net461\System.IO.Pipelines.dll</HintPath>
</Reference>
@@ -152,7 +151,6 @@
<Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
@@ -164,28 +162,23 @@
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.ServiceModel" />
<Reference Include="System.Text.Encoding.CodePages, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
@@ -321,9 +314,6 @@
<Content Include="Content\themes\base\tabs.css" />
<Content Include="Content\themes\base\theme.css" />
<Content Include="Content\themes\base\tooltip.css" />
<Content Include="Core\Compression\Snappy\lib\win\snappy32.dll" />
<Content Include="Core\Compression\Snappy\lib\win\snappy64.dll" />
<Content Include="Core\Compression\Zstandard\lib\win\libzstd.dll" />
<Content Include="dipendenti.aspx" />
<Content Include="ExportCommesse.aspx" />
<Content Include="ExportTimbZucchetti.aspx" />
@@ -387,8 +377,12 @@
<Content Include="images\view_m.png" />
<Content Include="images\view_s.png" />
<Content Include="infoPage.aspx" />
<Content Include="libzstd.dll" />
<Content Include="login.aspx" />
<Content Include="logs\PlaceHolder.file" />
<Content Include="..\.editorconfig">
<Link>.editorconfig</Link>
</Content>
<Content Include="App_Readme\SteamWare_demo\example-NLog.config" />
<Content Include="App_Readme\SteamWare_demo\example-app.config" />
<None Include="bundleconfig.json" />
@@ -522,6 +516,8 @@
<Content Include="Scripts\umd\popper-utils.min.js" />
<Content Include="Scripts\umd\popper.js" />
<Content Include="Scripts\umd\popper.min.js" />
<Content Include="snappy32.dll" />
<Content Include="snappy64.dll" />
<Content Include="WebMasterPages\AjaxSearch.master" />
<Content Include="WebMasterPages\AjaxTitle.master" />
<Content Include="WebMasterPages\MasterAjax.master" />
@@ -659,6 +655,9 @@
</Compile>
<Compile Include="App_Start\BundleConfig.cs" />
<Compile Include="App_Start\RouteConfig.cs" />
<Compile Include="BasePage.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="BaseUserControl.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
@@ -728,6 +727,7 @@
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>
<Compile Include="GlobalSuppressions.cs" />
<Compile Include="infoPage.aspx.cs">
<DependentUpon>infoPage.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -799,7 +799,6 @@
<Compile Include="unauthorized.aspx.designer.cs">
<DependentUpon>unauthorized.aspx</DependentUpon>
</Compile>
<Compile Include="utility.cs" />
<Compile Include="WebMasterPages\AjaxSearch.master.cs">
<DependentUpon>AjaxSearch.master</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
+16
View File
@@ -0,0 +1,16 @@
// This file is used by Code Analysis to maintain SuppressMessage
// attributes that are applied to this project.
// Project-level suppressions either have no target or are given
// a specific target and scoped to a namespace, type, member, etc.
using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("Design", "CA1062:Convalidare gli argomenti di metodi pubblici", Justification = "<In sospeso>", Scope = "member", Target = "~M:GPW_Admin.BundleConfig.RegisterBundles(System.Web.Optimization.BundleCollection)")]
[assembly: SuppressMessage("Design", "CA1052:I tipi che contengono membri static devono Static o NotInheritable", Justification = "<In sospeso>", Scope = "type", Target = "~T:GPW_Admin.BundleConfig")]
[assembly: SuppressMessage("Naming", "CA1716:Gli identificatori non devono corrispondere a parole chiave", Justification = "<In sospeso>", Scope = "type", Target = "~T:GPW_Admin.Default")]
[assembly: SuppressMessage("Design", "CA1051:Non dichiarare campi di istanza visibili", Justification = "<In sospeso>", Scope = "member", Target = "~F:GPW_Admin.ExportTimbZucchetti.inizio")]
[assembly: SuppressMessage("Design", "CA1051:Non dichiarare campi di istanza visibili", Justification = "<In sospeso>", Scope = "member", Target = "~F:GPW_Admin.ExportTimbZucchetti.fine")]
[assembly: SuppressMessage("Design", "CA1051:Non dichiarare campi di istanza visibili", Justification = "<In sospeso>", Scope = "member", Target = "~F:GPW_Admin.ExportTimbZucchetti.idxDipendente")]
[assembly: SuppressMessage("Naming", "CA1716:Gli identificatori non devono corrispondere a parole chiave", Justification = "<In sospeso>", Scope = "type", Target = "~T:GPW_Admin.Global")]
[assembly: SuppressMessage("Globalization", "CA1303:Non passare valori letterali come parametri localizzati", Justification = "<In sospeso>", Scope = "member", Target = "~M:GPW_Admin.infoPage.setupPanels(System.Boolean)")]
[assembly: SuppressMessage("Design", "CA1051:Non dichiarare campi di istanza visibili", Justification = "<In sospeso>", Scope = "member", Target = "~F:mod_filtro._css")]
@@ -27,6 +27,16 @@ by editing this MSBuild file. In order to learn more about this please visit htt
<Source MatchValue="Data Source=SQL-STEAM\SQL2012;Initial Catalog=GPW;Persist Security Info=True;User ID=sa;Password=keyhammer" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
</UpdateFrom>
</ObjectGroup>
<ObjectGroup Name="ErrorLog" Order="2" Enabled="False" xmlns="">
<Destination Path="" />
<Object Type="DbDacFx">
<PreSource Path="Data Source=SQL2016DEV;Initial Catalog=Elmah;Persist Security Info=True;User ID=sa;Password=keyhammer16" includeData="False" />
<Source Path="$(IntermediateOutputPath)AutoScripts\ErrorLog_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
</Object>
<UpdateFrom Type="Web.Config">
<Source MatchValue="Data Source=SQL2016DEV;Initial Catalog=Elmah;Persist Security Info=True;User ID=sa;Password=keyhammer16;" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
</UpdateFrom>
</ObjectGroup>
</Objects>
</PublishDatabaseSettings>
<LastUsedBuildConfiguration>IIS01</LastUsedBuildConfiguration>
@@ -41,6 +51,9 @@ by editing this MSBuild file. In order to learn more about this please visit htt
<WDPMergeOption>DonotMerge</WDPMergeOption>
</PropertyGroup>
<ItemGroup>
<MSDeployParameterValue Include="ErrorLog-Web.config Connection String">
<UpdateDestWebConfig>False</UpdateDestWebConfig>
</MSDeployParameterValue>
<MSDeployParameterValue Include="$(DeployParameterPrefix)GPW_data.Properties.Settings.GPWConnectionString-Web.config Connection String">
<UpdateDestWebConfig>False</UpdateDestWebConfig>
</MSDeployParameterValue>
@@ -6,6 +6,6 @@ by editing this MSBuild file. In order to learn more about this please visit htt
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<TimeStampOfAssociatedLegacyPublishXmlFile />
<EncryptedPassword>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAH0adXzrANk+QkSQiwkrZoAAAAAACAAAAAAADZgAAwAAAABAAAABb6ElOBZBmVABKAa+64QWdAAAAAASAAACgAAAAEAAAAKZikr2c60gIfjtO43fxbZgYAAAAjKLcXmFApdJ2m2qD8ZN2+TTwRGDknnL4FAAAAMTrb97lcPYF0s+lNLqCN5gzfLpj</EncryptedPassword>
<EncryptedPassword>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAlt716CBqn0mhrhx25JUQAwAAAAACAAAAAAADZgAAwAAAABAAAAARM1b5xtWbaBzdA9cl8IU7AAAAAASAAACgAAAAEAAAAKsVa1HsNQqIgAfKhnKcdHwYAAAA153iVqGru9SR7hEYHaA+RHgUzjNMyyB4FAAAAFWPRXci9mPCPU/xaaPQedaUcKh7</EncryptedPassword>
</PropertyGroup>
</Project>
@@ -27,6 +27,16 @@ by editing this MSBuild file. In order to learn more about this please visit htt
<Source MatchValue="Data Source=SQL-STEAM\SQL2012;Initial Catalog=GPW;Persist Security Info=True;User ID=sa;Password=keyhammer" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
</UpdateFrom>
</ObjectGroup>
<ObjectGroup Name="ErrorLog" Order="2" Enabled="False" xmlns="">
<Destination Path="" />
<Object Type="DbDacFx">
<PreSource Path="Data Source=SQL2016DEV;Initial Catalog=Elmah;Persist Security Info=True;User ID=sa;Password=keyhammer16" includeData="False" />
<Source Path="$(IntermediateOutputPath)AutoScripts\ErrorLog_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
</Object>
<UpdateFrom Type="Web.Config">
<Source MatchValue="Data Source=SQL2016DEV;Initial Catalog=Elmah;Persist Security Info=True;User ID=sa;Password=keyhammer16;" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
</UpdateFrom>
</ObjectGroup>
</Objects>
</PublishDatabaseSettings>
<LastUsedBuildConfiguration>IIS02</LastUsedBuildConfiguration>
@@ -41,6 +51,9 @@ by editing this MSBuild file. In order to learn more about this please visit htt
<WDPMergeOption>DonotMerge</WDPMergeOption>
</PropertyGroup>
<ItemGroup>
<MSDeployParameterValue Include="ErrorLog-Web.config Connection String">
<UpdateDestWebConfig>False</UpdateDestWebConfig>
</MSDeployParameterValue>
<MSDeployParameterValue Include="$(DeployParameterPrefix)GPW_data.Properties.Settings.GPWConnectionString-Web.config Connection String">
<UpdateDestWebConfig>False</UpdateDestWebConfig>
</MSDeployParameterValue>
@@ -27,6 +27,16 @@ by editing this MSBuild file. In order to learn more about this please visit htt
<Source MatchValue="Data Source=SQL-STEAM\SQL2012;Initial Catalog=GPW;Persist Security Info=True;User ID=sa;Password=keyhammer" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
</UpdateFrom>
</ObjectGroup>
<ObjectGroup Name="ErrorLog" Order="2" Enabled="False" xmlns="">
<Destination Path="" />
<Object Type="DbDacFx">
<PreSource Path="Data Source=SQL2016DEV;Initial Catalog=Elmah;Persist Security Info=True;User ID=sa;Password=keyhammer16" includeData="False" />
<Source Path="$(IntermediateOutputPath)AutoScripts\ErrorLog_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
</Object>
<UpdateFrom Type="Web.Config">
<Source MatchValue="Data Source=SQL2016DEV;Initial Catalog=Elmah;Persist Security Info=True;User ID=sa;Password=keyhammer16;" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
</UpdateFrom>
</ObjectGroup>
</Objects>
</PublishDatabaseSettings>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
@@ -41,6 +51,9 @@ by editing this MSBuild file. In order to learn more about this please visit htt
<WDPMergeOption>DonotMerge</WDPMergeOption>
</PropertyGroup>
<ItemGroup>
<MSDeployParameterValue Include="ErrorLog-Web.config Connection String">
<UpdateDestWebConfig>False</UpdateDestWebConfig>
</MSDeployParameterValue>
<MSDeployParameterValue Include="$(DeployParameterPrefix)GPW_data.Properties.Settings.GPWConnectionString-Web.config Connection String">
<UpdateDestWebConfig>False</UpdateDestWebConfig>
</MSDeployParameterValue>
@@ -9,6 +9,6 @@ by editing this MSBuild file. In order to learn more about this please visit htt
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<TimeStampOfAssociatedLegacyPublishXmlFile>
</TimeStampOfAssociatedLegacyPublishXmlFile>
<EncryptedPassword>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAH0adXzrANk+QkSQiwkrZoAAAAAACAAAAAAADZgAAwAAAABAAAAAfzRDxm3RWtMnQW8dF8T+eAAAAAASAAACgAAAAEAAAAILouDWF/BRhWGHI/pZRVI0YAAAAKmH9LnVNFsewQIo0Hkk8L/OzH3jFB7WwFAAAALKoQaTWums2r8sZR6QsPyfIPWBh</EncryptedPassword>
<EncryptedPassword>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAlt716CBqn0mhrhx25JUQAwAAAAACAAAAAAADZgAAwAAAABAAAAAItbwwteM0AffuP1GXoFwrAAAAAASAAACgAAAAEAAAAHrIAlZZk1GEz4QX1v9+t0EYAAAAEcQ1bRelJ+gbhBIHmVGWjwLvgUxI6ZHHFAAAALKnSbzj1lX5SAV62Rw7H8b58qmD</EncryptedPassword>
</PropertyGroup>
</Project>
+6 -6
View File
@@ -31,8 +31,8 @@ namespace GPW.WS
[WebMethod]
public CascadingDropDownNameValue[] GetClienti(string knownCategoryValues, string category)
{
public CascadingDropDownNameValue[] GetClienti(string knownCategoryValues)
{
if (knownCategoryValues is null)
{
throw new ArgumentNullException(nameof(knownCategoryValues));
@@ -50,8 +50,8 @@ namespace GPW.WS
}
[WebMethod]
public CascadingDropDownNameValue[] GetProgettiByCli(string knownCategoryValues, string category)
{
public CascadingDropDownNameValue[] GetProgettiByCli(string knownCategoryValues)
{
StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
int idxCliente;
if (!kv.ContainsKey("clienti") || !Int32.TryParse(kv["clienti"], out idxCliente))
@@ -69,8 +69,8 @@ namespace GPW.WS
return values.ToArray();
}
[WebMethod]
public CascadingDropDownNameValue[] GetFasiByProgetti(string knownCategoryValues, string category)
{
public CascadingDropDownNameValue[] GetFasiByProgetti(string knownCategoryValues)
{
StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
int idxCliente;
if (!kv.ContainsKey("clienti") || !Int32.TryParse(kv["clienti"], out idxCliente))
+7 -9
View File
@@ -22,8 +22,9 @@
<controls>
<add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt" />
<add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" /></controls>
<add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
</controls>
</pages>
<customErrors mode="Off" />
<globalization culture="it-IT" enableClientBasedCulture="true" uiCulture="it" />
@@ -49,9 +50,6 @@
<add key="copyRight" value="SteamWare" />
<add key="CodModulo" value="GPW" />
<add key="_safePages" value="unauthorized#forceUser#login#login.aspx#test#Test.aspx" />
<!--Ottimizzazioni liberie esterne-->
<add key="EnableCdnAjax" value="false" />
<add key="EnableCdnJQ" value="false" />
<!--Gestione forzatura priam timbratura ad entrata-->
<add key="firstIsIN" value="true" />
<!--Gestione notifiche anomalie-->
@@ -146,6 +144,10 @@
</connectionStrings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="B77A5C561934E089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.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" />
@@ -166,10 +168,6 @@
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.3" newVersion="4.1.1.3" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.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" />
@@ -26,8 +26,6 @@
</head>
<body class="body">
<form id="form1" runat="server">
<%--<asp:ScriptManager ID="sm" runat="server" EnablePartialRendering="true" EnableScriptGlobalization="true" EnableCdn='<%# GPW.utility.EnableCdnAjax %>'>
</asp:ScriptManager>--%>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" EnableScriptGlobalization="true" EnableCdn="false">
</asp:ScriptManager>
<div class="fullscreen">
@@ -140,8 +140,12 @@ namespace GPW_Admin.WebUserControls
/// <returns></returns>
protected DataColumnCollection colonneObj()
{
DS_Applicazione.AnagClientiDataTable tabella = new DS_Applicazione.AnagClientiDataTable();
DataColumnCollection colonne = tabella.Columns;
DataColumnCollection colonne = null;
using (
DS_Applicazione.AnagClientiDataTable tabella = new DS_Applicazione.AnagClientiDataTable())
{
colonne = tabella.Columns;
}
return colonne;
}
/// <summary>
@@ -153,16 +157,12 @@ namespace GPW_Admin.WebUserControls
{
bool answ = true;
// solo se ha diritti scrittura controllo
if (answ)
if (idxObj != null)
{
int trovati = 0;
// !!!FARE!!!
#if false
// controllo se ci siano tipo celle associate
trovati = MagClass.magazzino.taTipoCella.getByCodMag(memLayer.ML.StringSessionObj("CodCS"), idxObj.ToString()).Rows.Count;
// controllo se ci siano blocchi associati
trovati = trovati + MagClass.magazzino.taBlocchi.getByCodMag(memLayer.ML.StringSessionObj("CodCS"), idxObj.ToString()).Rows.Count;
#endif
int idxCli = 0;
_ = int.TryParse(idxObj.ToString(), out idxCli);
trovati = DataProxy.DP.taAP.getByIdxCli(idxCli, true, true).Rows.Count;
// controllo se ci sono record correlati...
if (trovati > 0)
{
@@ -189,51 +189,54 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void recuperaFooter(object sender, ObjectDataSourceMethodEventArgs e)
{
if (chkLicOk)
if (e != null)
{
//recupero la riga footer...
DataColumnCollection colonne = colonneObj();
string nomeCol;
string tipoColonna = "";
foreach (DataColumn colonna in colonne)
if (chkLicOk)
{
nomeCol = colonna.ColumnName;
// cerco un textbox o quello che sia...
if (grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol)) != null)
//recupero la riga footer...
DataColumnCollection colonne = colonneObj();
string nomeCol;
string tipoColonna = "";
foreach (DataColumn colonna in colonne)
{
tipoColonna = "textBox";
nomeCol = colonna.ColumnName;
// cerco un textbox o quello che sia...
if (grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol)) != null)
{
tipoColonna = "textBox";
}
else if (grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol)) != null)
{
tipoColonna = "dropDownList";
}
else if (grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol)) != null)
{
tipoColonna = "checkBox";
}
// in base al tipo salvo negli inputparameters dell'ODS
switch (tipoColonna)
{
case "textBox":
e.InputParameters[nomeCol] = ((TextBox)grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol))).Text;
break;
case "dropDownList":
e.InputParameters[nomeCol] = ((DropDownList)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).SelectedValue;
break;
case "checkBox":
e.InputParameters[nomeCol] = ((CheckBox)grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol))).Checked;
break;
default:
break;
}
tipoColonna = "";
}
else if (grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol)) != null)
{
tipoColonna = "dropDownList";
}
else if (grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol)) != null)
{
tipoColonna = "checkBox";
}
// in base al tipo salvo negli inputparameters dell'ODS
switch (tipoColonna)
{
case "textBox":
e.InputParameters[nomeCol] = ((TextBox)grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol))).Text;
break;
case "dropDownList":
e.InputParameters[nomeCol] = ((DropDownList)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).SelectedValue;
break;
case "checkBox":
e.InputParameters[nomeCol] = ((CheckBox)grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol))).Checked;
break;
default:
break;
}
tipoColonna = "";
}
}
else
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.DataBind();
else
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.DataBind();
}
}
}
/// <summary>
@@ -245,10 +248,13 @@ namespace GPW_Admin.WebUserControls
{
if (!licenzeGPW.checkLicenze)
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.EditIndex = -1;
grView.DataBind();
if (e != null)
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.EditIndex = -1;
grView.DataBind();
}
}
}
@@ -140,8 +140,11 @@ namespace GPW_Admin.WebUserControls
/// <returns></returns>
protected DataColumnCollection colonneObj()
{
DS_Applicazione.DipendentiDataTable tabella = new DS_Applicazione.DipendentiDataTable();
DataColumnCollection colonne = tabella.Columns;
DataColumnCollection colonne = null;
using (DS_Applicazione.DipendentiDataTable tabella = new DS_Applicazione.DipendentiDataTable())
{
colonne = tabella.Columns;
}
return colonne;
}
/// <summary>
@@ -153,16 +156,12 @@ namespace GPW_Admin.WebUserControls
{
bool answ = true;
// solo se ha diritti scrittura controllo
if (answ)
if (idxObj != null)
{
int trovati = 0;
// !!!FARE!!!
#if false
// controllo se ci siano tipo celle associate
trovati = MagClass.magazzino.taTipoCella.getByCodMag(memLayer.ML.StringSessionObj("CodCS"), idxObj.ToString()).Rows.Count;
// controllo se ci siano blocchi associati
trovati = trovati + MagClass.magazzino.taBlocchi.getByCodMag(memLayer.ML.StringSessionObj("CodCS"), idxObj.ToString()).Rows.Count;
#endif
int idxDip = 0;
_ = int.TryParse(idxObj.ToString(), out idxDip);
trovati = DataProxy.DP.taTimb.getLastByDip(idxDip).Count;
// controllo se ci sono record correlati...
if (trovati > 0)
{
@@ -189,54 +188,57 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void recuperaFooter(object sender, ObjectDataSourceMethodEventArgs e)
{
if (chkLicOk)
if (e != null)
{
//recupero la riga footer...
DataColumnCollection colonne = colonneObj();
string nomeCol;
string tipoColonna = "";
foreach (DataColumn colonna in colonne)
if (chkLicOk)
{
nomeCol = colonna.ColumnName;
// cerco un textbox o quello che sia...
if (grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol)) != null)
//recupero la riga footer...
DataColumnCollection colonne = colonneObj();
string nomeCol;
string tipoColonna = "";
foreach (DataColumn colonna in colonne)
{
tipoColonna = "textBox";
nomeCol = colonna.ColumnName;
// cerco un textbox o quello che sia...
if (grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol)) != null)
{
tipoColonna = "textBox";
}
else if (grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol)) != null)
{
tipoColonna = "dropDownList";
}
else if (grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol)) != null)
{
tipoColonna = "checkBox";
}
// in base al tipo salvo negli inputparameters dell'ODS
switch (tipoColonna)
{
case "textBox":
e.InputParameters[nomeCol] = ((TextBox)grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol))).Text;
break;
case "dropDownList":
e.InputParameters[nomeCol] = ((DropDownList)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).SelectedValue;
break;
case "checkBox":
e.InputParameters[nomeCol] = ((CheckBox)grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol))).Checked;
break;
default:
break;
}
tipoColonna = "";
}
else if (grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol)) != null)
{
tipoColonna = "dropDownList";
}
else if (grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol)) != null)
{
tipoColonna = "checkBox";
}
// in base al tipo salvo negli inputparameters dell'ODS
switch (tipoColonna)
{
case "textBox":
e.InputParameters[nomeCol] = ((TextBox)grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol))).Text;
break;
case "dropDownList":
e.InputParameters[nomeCol] = ((DropDownList)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).SelectedValue;
break;
case "checkBox":
e.InputParameters[nomeCol] = ((CheckBox)grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol))).Checked;
break;
default:
break;
}
tipoColonna = "";
// attivo imposto a true!
e.InputParameters["attivo"] = "true";
// sistemo calendario!
}
else
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.DataBind();
}
// attivo imposto a true!
e.InputParameters["attivo"] = "true";
// sistemo calendario!
}
else
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.DataBind();
}
}
/// <summary>
@@ -246,12 +248,15 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void ods_Updating(object sender, ObjectDataSourceMethodEventArgs e)
{
if (!licenzeGPW.checkLicenze)
if (e != null)
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.EditIndex = -1;
grView.DataBind();
if (!licenzeGPW.checkLicenze)
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.EditIndex = -1;
grView.DataBind();
}
}
}
+127 -110
View File
@@ -251,55 +251,58 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void recuperaFooter(object sender, ObjectDataSourceMethodEventArgs e)
{
if (chkLicOk)
if (e != null)
{
//recupero la riga footer...
DataColumnCollection colonne = colonneObj();
string nomeCol;
string tipoColonna = "";
foreach (DataColumn colonna in colonne)
if (chkLicOk)
{
nomeCol = colonna.ColumnName;
// cerco un textbox o quello che sia...
if (grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol)) != null)
//recupero la riga footer...
DataColumnCollection colonne = colonneObj();
string nomeCol;
string tipoColonna = "";
foreach (DataColumn colonna in colonne)
{
tipoColonna = "textBox";
nomeCol = colonna.ColumnName;
// cerco un textbox o quello che sia...
if (grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol)) != null)
{
tipoColonna = "textBox";
}
else if (grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol)) != null)
{
tipoColonna = "dropDownList";
}
else if (grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol)) != null)
{
tipoColonna = "checkBox";
}
// in base al tipo salvo negli inputparameters dell'ODS
switch (tipoColonna)
{
case "textBox":
e.InputParameters[nomeCol] = ((TextBox)grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol))).Text;
break;
case "dropDownList":
e.InputParameters[nomeCol] = ((DropDownList)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).SelectedValue;
break;
case "checkBox":
e.InputParameters[nomeCol] = ((CheckBox)grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol))).Checked;
break;
default:
break;
}
tipoColonna = "";
}
else if (grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol)) != null)
{
tipoColonna = "dropDownList";
}
else if (grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol)) != null)
{
tipoColonna = "checkBox";
}
// in base al tipo salvo negli inputparameters dell'ODS
switch (tipoColonna)
{
case "textBox":
e.InputParameters[nomeCol] = ((TextBox)grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol))).Text;
break;
case "dropDownList":
e.InputParameters[nomeCol] = ((DropDownList)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).SelectedValue;
break;
case "checkBox":
e.InputParameters[nomeCol] = ((CheckBox)grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol))).Checked;
break;
default:
break;
}
tipoColonna = "";
//// aggiungo fase ancestor!
//e.InputParameters["idxFaseAncest"] = memLayer.ML.IntSessionObj("idxFaseAncest");
// aggiungo progetto!
e.InputParameters["idxProgetto"] = idxProgetto;
}
else
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.DataBind();
}
//// aggiungo fase ancestor!
//e.InputParameters["idxFaseAncest"] = memLayer.ML.IntSessionObj("idxFaseAncest");
// aggiungo progetto!
e.InputParameters["idxProgetto"] = idxProgetto;
}
else
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.DataBind();
}
}
/// <summary>
@@ -309,29 +312,32 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
// controllo se c'è un argument x la fase...
string idxFaseAncest = "0";
try
if (e != null && sender != null)
{
idxFaseAncest = ((ImageButton)sender).CommandArgument;
}
catch
{ }
memLayer.ML.setSessionVal("idxFaseAncest", idxFaseAncest);
if (idxFaseAncest == "0")
{
// reset selezione...
resetSelezione();
}
// mostro il footer oppure la riga dei dettagli x nuovo...
if (grView.FooterRow != null)
{
grView.FooterRow.Visible = true;
}
// sollevo evento nuovo valore...
if (eh_nuovoValore != null)
{
eh_nuovoValore(this, new EventArgs());
// controllo se c'è un argument x la fase...
string idxFaseAncest = "0";
try
{
idxFaseAncest = ((ImageButton)sender).CommandArgument;
}
catch
{ }
memLayer.ML.setSessionVal("idxFaseAncest", idxFaseAncest);
if (idxFaseAncest == "0")
{
// reset selezione...
resetSelezione();
}
// mostro il footer oppure la riga dei dettagli x nuovo...
if (grView.FooterRow != null)
{
grView.FooterRow.Visible = true;
}
// sollevo evento nuovo valore...
if (eh_nuovoValore != null)
{
eh_nuovoValore(this, new EventArgs());
}
}
}
/// <summary>
@@ -356,8 +362,11 @@ namespace GPW_Admin.WebUserControls
/// <returns></returns>
protected DataColumnCollection colonneObj()
{
DS_Applicazione.AnagFasiDataTable tabella = new DS_Applicazione.AnagFasiDataTable();
DataColumnCollection colonne = tabella.Columns;
DataColumnCollection colonne = null;
using (DS_Applicazione.AnagFasiDataTable tabella = new DS_Applicazione.AnagFasiDataTable())
{
colonne = tabella.Columns;
}
return colonne;
}
/// <summary>
@@ -369,20 +378,19 @@ namespace GPW_Admin.WebUserControls
{
bool answ = isWritable();
// solo se ha diritti scrittura controllo
if (answ)
if (idxObj != null)
{
int trovati = 0;
// !!!FARE!!!
#if false
// controllo se ci siano tipo celle associate
trovati = MagClass.magazzino.taTipoCella.getByCodMag(memLayer.ML.StringSessionObj("CodCS"), idxObj.ToString()).Rows.Count;
// controllo se ci siano blocchi associati
trovati = trovati + MagClass.magazzino.taBlocchi.getByCodMag(memLayer.ML.StringSessionObj("CodCS"), idxObj.ToString()).Rows.Count;
#endif
// controllo se ci sono record correlati...
if (trovati > 0)
if (answ)
{
answ = false;
int trovati = 0;
int idxFase = 0;
_ = int.TryParse(idxObj.ToString(), out idxFase);
trovati = DataProxy.DP.taRA.getByFase(idxFase).Count;
// controllo se ci sono record correlati...
if (trovati > 0)
{
answ = false;
}
}
}
return answ;
@@ -395,22 +403,25 @@ namespace GPW_Admin.WebUserControls
public string classByCod(object codFase)
{
string answ = "";
int livello = 0;
// calcolo livello come num punti "." -1...
try
if (codFase != null)
{
string[] array = codFase.ToString().Split('.');
livello = array.Length;
}
catch
{ }
if (livello < 4)
{
answ = "fontNormale textNero";
}
else
{
answ = "fontPiccolo textAzzurro";
int livello = 0;
// calcolo livello come num punti "." -1...
try
{
string[] array = codFase.ToString().Split('.');
livello = array.Length;
}
catch
{ }
if (livello < 4)
{
answ = "fontNormale textNero";
}
else
{
answ = "fontPiccolo textAzzurro";
}
}
return answ;
}
@@ -421,19 +432,23 @@ namespace GPW_Admin.WebUserControls
/// <returns></returns>
public Unit widthByCod(object codFase)
{
Unit answ = new Unit(0, UnitType.Pixel);
int livello = 0;
// calcolo livello come num punti "." -1...
try
if (codFase != null)
{
string[] array = codFase.ToString().Split('.');
livello = array.Length;
}
catch
{ }
if (livello >= 4)
{
answ = new Unit((livello - 3) * 10, UnitType.Pixel);
// calcolo livello come num punti "." -1...
try
{
string[] array = codFase.ToString().Split('.');
livello = array.Length;
}
catch
{ }
if (livello >= 4)
{
answ = new Unit((livello - 3) * 10, UnitType.Pixel);
}
}
return answ;
}
@@ -597,14 +612,16 @@ namespace GPW_Admin.WebUserControls
{
if (!licenzeGPW.checkLicenze)
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.EditIndex = -1;
grView.DataBind();
if (e != null)
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.EditIndex = -1;
grView.DataBind();
}
}
}
#endregion
}
}
@@ -120,8 +120,11 @@ namespace GPW_Admin.WebUserControls
/// <returns></returns>
protected DataColumnCollection colonneObj()
{
DS_Applicazione.AnagOrariDataTable tabella = new DS_Applicazione.AnagOrariDataTable();
DataColumnCollection colonne = tabella.Columns;
DataColumnCollection colonne = null;
using (DS_Applicazione.AnagOrariDataTable tabella = new DS_Applicazione.AnagOrariDataTable())
{
colonne = tabella.Columns;
}
return colonne;
}
/// <summary>
@@ -133,7 +136,7 @@ namespace GPW_Admin.WebUserControls
{
bool answ = true;
// solo se ha diritti scrittura controllo
if (answ)
if (idxObj != null)
{
int trovati = 0;
// controllo se ci siano tipo celle associate
@@ -183,51 +186,54 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void recuperaFooter(object sender, ObjectDataSourceMethodEventArgs e)
{
if (chkLicOk)
if (e != null)
{
//recupero la riga footer...
DataColumnCollection colonne = colonneObj();
string nomeCol;
string tipoColonna = "";
foreach (DataColumn colonna in colonne)
if (chkLicOk)
{
nomeCol = colonna.ColumnName;
// cerco un textbox o quello che sia...
if (grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol)) != null)
//recupero la riga footer...
DataColumnCollection colonne = colonneObj();
string nomeCol;
string tipoColonna = "";
foreach (DataColumn colonna in colonne)
{
tipoColonna = "textBox";
nomeCol = colonna.ColumnName;
// cerco un textbox o quello che sia...
if (grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol)) != null)
{
tipoColonna = "textBox";
}
else if (grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol)) != null)
{
tipoColonna = "dropDownList";
}
else if (grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol)) != null)
{
tipoColonna = "checkBox";
}
// in base al tipo salvo negli inputparameters dell'ODS
switch (tipoColonna)
{
case "textBox":
e.InputParameters[nomeCol] = ((TextBox)grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol))).Text;
break;
case "dropDownList":
e.InputParameters[nomeCol] = ((DropDownList)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).SelectedValue;
break;
case "checkBox":
e.InputParameters[nomeCol] = ((CheckBox)grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol))).Checked;
break;
default:
break;
}
tipoColonna = "";
}
else if (grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol)) != null)
{
tipoColonna = "dropDownList";
}
else if (grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol)) != null)
{
tipoColonna = "checkBox";
}
// in base al tipo salvo negli inputparameters dell'ODS
switch (tipoColonna)
{
case "textBox":
e.InputParameters[nomeCol] = ((TextBox)grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol))).Text;
break;
case "dropDownList":
e.InputParameters[nomeCol] = ((DropDownList)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).SelectedValue;
break;
case "checkBox":
e.InputParameters[nomeCol] = ((CheckBox)grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol))).Checked;
break;
default:
break;
}
tipoColonna = "";
}
}
else
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.DataBind();
else
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.DataBind();
}
}
}
/// <summary>
@@ -239,10 +245,13 @@ namespace GPW_Admin.WebUserControls
{
if (!licenzeGPW.checkLicenze)
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.EditIndex = -1;
grView.DataBind();
if (e != null)
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.EditIndex = -1;
grView.DataBind();
}
}
}
@@ -7,6 +7,7 @@ using System.Web.UI.WebControls;
using System.Data;
using SteamWare;
using GPW_data;
using System.ServiceModel;
namespace GPW_Admin.WebUserControls
{
@@ -246,8 +247,11 @@ namespace GPW_Admin.WebUserControls
/// <returns></returns>
protected DataColumnCollection colonneObj()
{
DS_Applicazione.AnagProgettiDataTable tabella = new DS_Applicazione.AnagProgettiDataTable();
DataColumnCollection colonne = tabella.Columns;
DataColumnCollection colonne = null;
using (DS_Applicazione.AnagProgettiDataTable tabella = new DS_Applicazione.AnagProgettiDataTable())
{
colonne = tabella.Columns;
}
return colonne;
}
/// <summary>
@@ -259,16 +263,12 @@ namespace GPW_Admin.WebUserControls
{
bool answ = isWritable();
// solo se ha diritti scrittura controllo
if (answ)
if (idxObj != null)
{
int trovati = 0;
// !!!FARE!!!
#if false
// controllo se ci siano tipo celle associate
trovati = MagClass.magazzino.taTipoCella.getByCodMag(memLayer.ML.StringSessionObj("CodCS"), idxObj.ToString()).Rows.Count;
// controllo se ci siano blocchi associati
trovati = trovati + MagClass.magazzino.taBlocchi.getByCodMag(memLayer.ML.StringSessionObj("CodCS"), idxObj.ToString()).Rows.Count;
#endif
int idxProj = 0;
_ = int.TryParse(idxObj.ToString(), out idxProj);
trovati = DataProxy.DP.taAF.getByIdxProgetto(idxProj).Count;
// controllo se ci sono record correlati...
if (trovati > 0)
{
@@ -317,35 +317,38 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void grView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
// salvo progetto sel
memLayer.ML.setSessionVal("idxProgetto_sel", e.Keys["idxProgetto"]);
// quale comando?
string _comando = "";
if (SteamWare.memLayer.ML.isInSessionObject("nextObjCommand"))
if (e != null)
{
_comando = SteamWare.memLayer.ML.StringSessionObj("nextObjCommand");
SteamWare.memLayer.ML.emptySessionVal("nextObjCommand");
}
// verifico il tipo di richiesta (clona o update normale)
switch (_comando)
{
case "dettFasi":
// salvo idxCli...
int idxCli = 0;
try
{
idxCli = DataProxy.DP.taAP.getByIdxPrj(memLayer.ML.IntSessionObj("idxProgetto_sel"))[0].idxCliente;
}
catch
{ }
memLayer.ML.setSessionVal("idxCli_sel", idxCli);
Response.Redirect("fasi.aspx");
// blocco update!
e.Cancel = true;
break;
default:
// faccio update!
break;
// salvo progetto sel
memLayer.ML.setSessionVal("idxProgetto_sel", e.Keys["idxProgetto"]);
// quale comando?
string _comando = "";
if (SteamWare.memLayer.ML.isInSessionObject("nextObjCommand"))
{
_comando = SteamWare.memLayer.ML.StringSessionObj("nextObjCommand");
SteamWare.memLayer.ML.emptySessionVal("nextObjCommand");
}
// verifico il tipo di richiesta (clona o update normale)
switch (_comando)
{
case "dettFasi":
// salvo idxCli...
int idxCli = 0;
try
{
idxCli = DataProxy.DP.taAP.getByIdxPrj(memLayer.ML.IntSessionObj("idxProgetto_sel"))[0].idxCliente;
}
catch
{ }
memLayer.ML.setSessionVal("idxCli_sel", idxCli);
Response.Redirect("fasi.aspx");
// blocco update!
e.Cancel = true;
break;
default:
// faccio update!
break;
}
}
}
/// <summary>
@@ -454,51 +457,54 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void recuperaFooter(object sender, ObjectDataSourceMethodEventArgs e)
{
if (chkLicOk)
if (e != null)
{
//recupero la riga footer...
DataColumnCollection colonne = colonneObj();
string nomeCol;
string tipoColonna = "";
foreach (DataColumn colonna in colonne)
if (chkLicOk)
{
nomeCol = colonna.ColumnName;
// cerco un textbox o quello che sia...
if (grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol)) != null)
//recupero la riga footer...
DataColumnCollection colonne = colonneObj();
string nomeCol;
string tipoColonna = "";
foreach (DataColumn colonna in colonne)
{
tipoColonna = "textBox";
nomeCol = colonna.ColumnName;
// cerco un textbox o quello che sia...
if (grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol)) != null)
{
tipoColonna = "textBox";
}
else if (grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol)) != null)
{
tipoColonna = "dropDownList";
}
else if (grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol)) != null)
{
tipoColonna = "checkBox";
}
// in base al tipo salvo negli inputparameters dell'ODS
switch (tipoColonna)
{
case "textBox":
e.InputParameters[nomeCol] = ((TextBox)grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol))).Text;
break;
case "dropDownList":
e.InputParameters[nomeCol] = ((DropDownList)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).SelectedValue;
break;
case "checkBox":
e.InputParameters[nomeCol] = ((CheckBox)grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol))).Checked;
break;
default:
break;
}
tipoColonna = "";
}
else if (grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol)) != null)
{
tipoColonna = "dropDownList";
}
else if (grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol)) != null)
{
tipoColonna = "checkBox";
}
// in base al tipo salvo negli inputparameters dell'ODS
switch (tipoColonna)
{
case "textBox":
e.InputParameters[nomeCol] = ((TextBox)grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol))).Text;
break;
case "dropDownList":
e.InputParameters[nomeCol] = ((DropDownList)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).SelectedValue;
break;
case "checkBox":
e.InputParameters[nomeCol] = ((CheckBox)grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol))).Checked;
break;
default:
break;
}
tipoColonna = "";
}
}
else
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.DataBind();
else
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.DataBind();
}
}
}
/// <summary>
@@ -510,10 +516,13 @@ namespace GPW_Admin.WebUserControls
{
if (!licenzeGPW.checkLicenze)
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.EditIndex = -1;
grView.DataBind();
if (e != null)
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.EditIndex = -1;
grView.DataBind();
}
}
}
@@ -9,7 +9,7 @@ using GPW_data;
namespace GPW_Admin.WebUserControls
{
public partial class mod_autocomplete : System.Web.UI.UserControl
public partial class mod_autocomplete : BaseUserControl
{
/// <summary>
/// evento valore selezionato
@@ -49,19 +49,10 @@ namespace GPW_Admin.WebUserControls
txtSel.Attributes["placeholder"] = placeholder;
}
}
/// <summary>
/// wrapper traduzione
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(object lemma)
{
return user_std.UtSn.Traduci(lemma.ToString());
}
protected void txtSel_TextChanged(object sender, EventArgs e)
{
if (txtSel.Text.Trim() == "")
if (string.IsNullOrEmpty(txtSel.Text.Trim()))
{
hiddenFieldID.Text = defaultVal;
_valore = defaultVal;
@@ -130,7 +121,7 @@ namespace GPW_Admin.WebUserControls
{
answ = txtSel.Text.Trim();
}
if (answ == "")
if (string.IsNullOrEmpty(answ))
{
answ = txtSel.Text.Trim();
}
File diff suppressed because it is too large Load Diff
@@ -54,7 +54,7 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)// || txtData.Text == "")
if (!Page.IsPostBack)
{
setInitVal();
valoreDateTime = dataOra;
@@ -89,13 +89,16 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void chkAttivo_CheckedChanged(object sender, EventArgs e)
{
// chiamo update attivo/non attivo...
CheckBox chkBox = (CheckBox)sender;
DataProxy.DP.taAP.updateAttivo(chkBox.Checked, memLayer.ML.IntSessionObj("idxProgetto_sel"));
fmView.DataBind();
if (eh_nuovoValore != null)
if (sender != null)
{
eh_nuovoValore(this, new EventArgs());
// chiamo update attivo/non attivo...
CheckBox chkBox = (CheckBox)sender;
DataProxy.DP.taAP.updateAttivo(chkBox.Checked, memLayer.ML.IntSessionObj("idxProgetto_sel"));
fmView.DataBind();
if (eh_nuovoValore != null)
{
eh_nuovoValore(this, new EventArgs());
}
}
}
/// <summary>
@@ -105,13 +108,16 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void chkStarred_CheckedChanged(object sender, EventArgs e)
{
// chiamo update attivo/non attivo...
CheckBox chkBox = (CheckBox)sender;
DataProxy.DP.taAP.updateStarred(chkBox.Checked, memLayer.ML.IntSessionObj("idxProgetto_sel"));
fmView.DataBind();
if (eh_nuovoValore != null)
if (sender != null)
{
eh_nuovoValore(this, new EventArgs());
// chiamo update attivo/non attivo...
CheckBox chkBox = (CheckBox)sender;
DataProxy.DP.taAP.updateStarred(chkBox.Checked, memLayer.ML.IntSessionObj("idxProgetto_sel"));
fmView.DataBind();
if (eh_nuovoValore != null)
{
eh_nuovoValore(this, new EventArgs());
}
}
}
/// <summary>
+7 -7
View File
@@ -32,7 +32,7 @@ public partial class mod_filtro : ApplicationUserControl
{
get
{
bool answ=false;
bool answ = false;
try
{
memLayer.ML.isInSessionObject(string.Format("valFiltro_{0}", this.ID));
@@ -40,7 +40,7 @@ public partial class mod_filtro : ApplicationUserControl
catch
{ }
return answ;
}
}
}
protected bool _changeCheckEnabled = true;
protected bool _changeCheckVisible = true;
@@ -76,8 +76,8 @@ public partial class mod_filtro : ApplicationUserControl
base.OnInit(e);
if (!Page.IsPostBack)
{
if (_showFiltered == "") _showFiltered = "mostraSoloSelez";
if (_showAll == "") _showAll = "mostraTutti";
if (string.IsNullOrEmpty(_showFiltered)) _showFiltered = "mostraSoloSelez";
if (string.IsNullOrEmpty(_showAll)) _showAll = "mostraTutti";
}
}
@@ -296,7 +296,7 @@ public partial class mod_filtro : ApplicationUserControl
{
dlFilt.DataSource = _ods;
dlFilt.DataBind();
if (_valore != "")
if (!string.IsNullOrEmpty(_valore))
{
dlFilt.SelectedValue = _valore;
@@ -304,7 +304,7 @@ public partial class mod_filtro : ApplicationUserControl
chkFilt.Checked = true;
}
}
catch(Exception exc)
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Eccezione:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
dlFilt.SelectedIndex = 0;
@@ -376,7 +376,7 @@ public partial class mod_filtro : ApplicationUserControl
updateChkLbl();
}
}
/// <summary>
/// oggetto ODS con cui popolare il selettore, VINCOLO abbia campi value(key) / label
/// </summary>
@@ -9,125 +9,125 @@ using System.Web.UI.WebControls;
namespace GPW_Admin.WebUserControls
{
public partial class mod_gestCalendario : System.Web.UI.UserControl
{
public partial class mod_gestCalendario : System.Web.UI.UserControl
{
/// <summary>
/// effettua traduzione del lemma
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(string lemma)
{
return user_std.UtSn.Traduci(lemma);
}
protected void Page_Load(object sender, EventArgs e)
{
grView.PageSize = utils.pageSize;
if (!Page.IsPostBack)
{
anno = DateTime.Now.Year;
intervalloDate currAnno = new intervalloDate
/// <summary>
/// effettua traduzione del lemma
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(string lemma)
{
inizio = DateTime.Today.AddYears(-2),
fine = DateTime.Today.AddYears(1)
};
mod_periodoAnalisi.intervalloAnalisi = currAnno;
lbtSetupYear.DataBind();
DateTime oggi = DateTime.Today;
inizioFerie = oggi.AddDays(1);
fineFerie = oggi.AddDays(2);
}
}
DateTime inizioFerie
{
get
{
DateTime answ = DateTime.Today;
DateTime.TryParse(txtInizio.Text, out answ);
return answ;
}
set
{
txtInizio.Text = value.ToString("yyyy-MM-dd");
}
}
DateTime fineFerie
{
get
{
DateTime answ = DateTime.Today;
DateTime.TryParse(txtFine.Text, out answ);
return answ;
}
set
{
txtFine.Text = value.ToString("yyyy-MM-dd");
}
}
/// <summary>
/// Anno corrente
/// </summary>
protected int anno
{
get
{
int answ = 0;
int.TryParse(txtAnno.Text, out answ);
return answ;
}
set
{
txtAnno.Text = value.ToString();
}
}
protected void lbtSetupYear_Click(object sender, EventArgs e)
{
setupFestAnno(anno);
}
private void setupFestAnno(int reqYear)
{
// recupero elenco festività
List<EventDetail> elencoFest = SteamWare.calendarMan.elencoFestAnno(reqYear);
// inserisco 1:1
if (elencoFest.Count > 0)
{
foreach (var item in elencoFest)
{
DataProxy.DP.taCFF.upsertQuery(item.when, "FEST", item.what);
return user_std.UtSn.Traduci(lemma);
}
}
doUpdate();
}
public void doUpdate()
{
// aggiorno!
grView.DataBind();
}
protected void lbtShowFerie_Click(object sender, EventArgs e)
{
divInsFerie.Visible = !divInsFerie.Visible;
}
protected void lbtSave_Click(object sender, EventArgs e)
{
int numGG = (int)fineFerie.Subtract(inizioFerie).TotalDays;
DateTime currDate = inizioFerie;
int currYear = DateTime.Today.Year;
// aggiungo ferie x periodo selezionato...
for (int i = 0; i < numGG; i++)
{
var currDay = inizioFerie.AddDays(i).DayOfWeek;
// controllo che NON SIA sabato/domenica...
if (currDay != DayOfWeek.Saturday && currDay != DayOfWeek.Sunday)
protected void Page_Load(object sender, EventArgs e)
{
DataProxy.DP.taCFF.upsertQuery(inizioFerie.AddDays(i), ddlCodGiustInsNew.SelectedValue, txtDescrizione.Text);
grView.PageSize = utils.pageSize;
if (!Page.IsPostBack)
{
anno = DateTime.Now.Year;
intervalloDate currAnno = new intervalloDate
{
inizio = DateTime.Today.AddYears(-2),
fine = DateTime.Today.AddYears(1)
};
mod_periodoAnalisi.intervalloAnalisi = currAnno;
lbtSetupYear.DataBind();
DateTime oggi = DateTime.Today;
inizioFerie = oggi.AddDays(1);
fineFerie = oggi.AddDays(2);
}
}
DateTime inizioFerie
{
get
{
DateTime answ = DateTime.Today;
_=DateTime.TryParse(txtInizio.Text, out answ);
return answ;
}
set
{
txtInizio.Text = value.ToString("yyyy-MM-dd");
}
}
DateTime fineFerie
{
get
{
DateTime answ = DateTime.Today;
_ = DateTime.TryParse(txtFine.Text, out answ);
return answ;
}
set
{
txtFine.Text = value.ToString("yyyy-MM-dd");
}
}
/// <summary>
/// Anno corrente
/// </summary>
protected int anno
{
get
{
int answ = 0;
_ = int.TryParse(txtAnno.Text, out answ);
return answ;
}
set
{
txtAnno.Text = value.ToString();
}
}
protected void lbtSetupYear_Click(object sender, EventArgs e)
{
setupFestAnno(anno);
}
private void setupFestAnno(int reqYear)
{
// recupero elenco festività
List<EventDetail> elencoFest = SteamWare.calendarMan.elencoFestAnno(reqYear);
// inserisco 1:1
if (elencoFest.Count > 0)
{
foreach (var item in elencoFest)
{
DataProxy.DP.taCFF.upsertQuery(item.when, "FEST", item.what);
}
}
doUpdate();
}
public void doUpdate()
{
// aggiorno!
grView.DataBind();
}
protected void lbtShowFerie_Click(object sender, EventArgs e)
{
divInsFerie.Visible = !divInsFerie.Visible;
}
protected void lbtSave_Click(object sender, EventArgs e)
{
int numGG = (int)fineFerie.Subtract(inizioFerie).TotalDays;
DateTime currDate = inizioFerie;
int currYear = DateTime.Today.Year;
// aggiungo ferie x periodo selezionato...
for (int i = 0; i < numGG; i++)
{
var currDay = inizioFerie.AddDays(i).DayOfWeek;
// controllo che NON SIA sabato/domenica...
if (currDay != DayOfWeek.Saturday && currDay != DayOfWeek.Sunday)
{
DataProxy.DP.taCFF.upsertQuery(inizioFerie.AddDays(i), ddlCodGiustInsNew.SelectedValue, txtDescrizione.Text);
}
}
// rieseguo insert festività x anno del periodo...
setupFestAnno(inizioFerie.Year);
}
}
// rieseguo insert festività x anno del periodo...
setupFestAnno(inizioFerie.Year);
}
}
}
@@ -97,7 +97,7 @@ public partial class mod_menuTop : ApplicationUserControl
{
lnkShowHide.Text = user_std.UtSn.Traduci("lnkShowHide");
lblTitle.Text = user_std.UtSn.Traduci(SteamWare.memLayer.ML.confReadString("titleApp"));
if (_titleString != "")
if (!string.IsNullOrEmpty(_titleString))
{
// traduzione di tutti i termini
lblMessUtente.Text = user_std.UtSn.Traduci(_titleString);
@@ -151,7 +151,7 @@
<asp:Label ID="lblIsOkTim" runat="server" Text="T" ForeColor="Red" Visible='<%# invBool(Eval("isOkTim")) %>' ToolTip="Errore Entrata/Uscita: non corrispondono." />
<asp:Label ID="lblIsOkApp" runat="server" Text="A" ForeColor="Red" Visible='<%# invBool(Eval("isOkApp")) %>' ToolTip="Errore: timbrature non approvate." />
<asp:Label ID="lblIsOkLav" runat="server" Text="O" ForeColor="Red" Visible='<%# invBool(Eval("isOkLav")) %>' ToolTip="Errore: manca copertura ore ordinarie." />
<asp:Label ID="lblChkFun" runat="server" Text='<%# Eval("chkFunCod") %>' ForeColor='<%# coloreMPP(Eval("minMpp")) %>' Visible='<%# Eval("chkFunCod").ToString() != "" %>' ToolTip='<%# Eval("chkFunRes") %>' />
<asp:Label ID="lblChkFun" runat="server" Text='<%# Eval("chkFunCod") %>' ForeColor='<%# coloreMPP(Eval("minMpp")) %>' Visible='<%# !string.IsNullOrEmpty(Eval("chkFunCod").ToString()) %>' ToolTip='<%# Eval("chkFunRes") %>' />
<asp:Label ID="lblIsOk" runat="server" Text="Ok" ForeColor="Green" Visible='<%# toBool(Eval("isOk")) %>' ToolTip="Errore di uno o più fra timbrature / giustificativi / approvazione" />
</b>
</ItemTemplate>
@@ -12,499 +12,502 @@ using System.Drawing;
namespace GPW_Admin.WebUserControls
{
public partial class mod_reviewTimbrature : BaseUserControl
{
public partial class mod_reviewTimbrature : BaseUserControl
{
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
grViewExpl.PageSize = utils.pageSize;
if (!Page.IsPostBack)
{
// imposto intervallo date...1 mese...
intervalloDate date = new intervalloDate();
date.fine = DateTime.Now.Date.AddDays(1);
date.inizio = date.fine.AddMonths(-1);
mod_periodoAnalisi1.intervalloAnalisi = date;
// altri fix
filtroDip.ods = odsDip;
memLayer.ML.emptySessionVal("idxDip_sel");
memLayer.ML.setSessionVal("maxErrMin", memLayer.ML.confReadInt("maxErrMin"));
memLayer.ML.setSessionVal("maxErrPlus", memLayer.ML.confReadInt("maxErrPlus"));
filtroDip.reselFirst();
setDetailVisib(false);
// determino visibilità link export...
hlExport.Visible = memLayer.ML.cdvb("ExportORE_SPS");
hlExportComm.Visible = memLayer.ML.cdvb("ExportCommesse");
}
filtroDip.eh_selValore += new EventHandler(filtroDip_eh_selValore);
mod_elencoTimbr1.eh_nuovoValore += new EventHandler(mod_elencoTimbr1_eh_nuovoValore);
}
/// <summary>
/// valore selezionato x dettaglio giornaliero utente
/// </summary>
protected DateTime dataRif
{
get
{
DateTime answ = DateTime.Now;
try
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
answ = Convert.ToDateTime(memLayer.ML.objSessionObj("dataRif"));
grViewExpl.PageSize = utils.pageSize;
if (!Page.IsPostBack)
{
// imposto intervallo date...1 mese...
intervalloDate date = new intervalloDate();
date.fine = DateTime.Now.Date.AddDays(1);
date.inizio = date.fine.AddMonths(-1);
mod_periodoAnalisi1.intervalloAnalisi = date;
// altri fix
filtroDip.ods = odsDip;
memLayer.ML.emptySessionVal("idxDip_sel");
memLayer.ML.setSessionVal("maxErrMin", memLayer.ML.confReadInt("maxErrMin"));
memLayer.ML.setSessionVal("maxErrPlus", memLayer.ML.confReadInt("maxErrPlus"));
filtroDip.reselFirst();
setDetailVisib(false);
// determino visibilità link export...
hlExport.Visible = memLayer.ML.cdvb("ExportORE_SPS");
hlExportComm.Visible = memLayer.ML.cdvb("ExportCommesse");
}
filtroDip.eh_selValore += new EventHandler(filtroDip_eh_selValore);
mod_elencoTimbr1.eh_nuovoValore += new EventHandler(mod_elencoTimbr1_eh_nuovoValore);
}
catch
{ }
return answ;
}
set
{
memLayer.ML.setSessionVal("dataRif", value);
}
}
void mod_elencoTimbr1_eh_nuovoValore(object sender, EventArgs e)
{
checkFixOds();
}
/// <summary>
/// seleziono
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void filtroDip_eh_selValore(object sender, EventArgs e)
{
// imposto ods
grViewExpl.SelectedIndex = -1;
setDetailVisib(false);
checkFixOds();
}
/// <summary>
/// imposto ODS
/// </summary>
private void checkFixOds()
{
memLayer.ML.setSessionVal("idxDip_sel", filtroDip.valoreInt);
grViewExpl.DataBind();
mod_elencoTimbr1.doUpdate();
}
/// <summary>
/// calcola cognome-nome da idx
/// </summary>
/// <param name="idxDip"></param>
/// <returns></returns>
public string cognomeNome(object idxDip)
{
string answ = "";
try
{
DS_Applicazione.DipendentiRow rigaDip = DataProxy.DP.taDipendenti.getByIdx(Convert.ToInt32(idxDip))[0];
answ = string.Format("{0} {1}", rigaDip.Cognome, rigaDip.Nome);
}
catch
{ }
return answ;
}
/// <summary>
/// verifica se l'utente possa approvare la modifica oraria
/// </summary>
public bool userCanApprove
{
get
{
bool answ = false;
try
/// <summary>
/// valore selezionato x dettaglio giornaliero utente
/// </summary>
protected DateTime dataRif
{
answ = user_std.UtSn.userHasRight("GPW_admin");
get
{
DateTime answ = DateTime.Now;
try
{
answ = Convert.ToDateTime(memLayer.ML.objSessionObj("dataRif"));
}
catch
{ }
return answ;
}
set
{
memLayer.ML.setSessionVal("dataRif", value);
}
}
catch
{ }
return answ;
}
}
/// <summary>
/// idx dipendente loggato
/// </summary>
protected int IdxDipendente
{
get
{
int idx = 0;
try
void mod_elencoTimbr1_eh_nuovoValore(object sender, EventArgs e)
{
idx = memLayer.ML.IntSessionObj("IdxDipendente");
checkFixOds();
}
catch
{ }
return idx;
}
}
/// <summary>
/// inverte valore booleano
/// </summary>
/// <param name="isEnt"></param>
/// <returns></returns>
public bool invBool(object valore)
{
bool answ = true;
try
{
answ = !Convert.ToBoolean(valore);
}
catch
{ }
return answ;
}
/// <summary>
/// converte valore in booleano
/// </summary>
/// <param name="isEnt"></param>
/// <returns></returns>
public bool toBool(object valore)
{
bool answ = true;
try
{
answ = Convert.ToBoolean(valore);
}
catch
{ }
return answ;
}
/// <summary>
/// mostro visualizzazione dati di dettaglio!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grViewExpl_SelectedIndexChanged(object sender, EventArgs e)
{
dataRif = Convert.ToDateTime(grViewExpl.SelectedDataKey["dataLav"]).Date;
setDetailVisib(true);
// mostra timbrature
memLayer.ML.setSessionVal("inizioDet", dataRif);
memLayer.ML.setSessionVal("fineDet", dataRif.AddDays(1));
memLayer.ML.setSessionVal("idxDip_det", grViewExpl.SelectedDataKey["idxDipendente"]);
mod_elencoTimbr1.doUpdate();
// mostra commesse
memLayer.ML.setSessionVal("idxDipendente", grViewExpl.SelectedDataKey["idxDipendente"]);
CultureInfo ita = new CultureInfo("it-IT");
mod_commAttivitaDesk1.idxDipCurr = Convert.ToInt32(grViewExpl.SelectedDataKey["idxDipendente"]);
mod_commAttivitaDesk1.valoreDateTime = Convert.ToDateTime(dataRif, ita);
mod_commAttivitaDesk1.doUpdate();
grViewExpl.DataBind();
}
/// <summary>
/// set visibilità grView dettagli
/// </summary>
/// <param name="value"></param>
private void setDetailVisib(bool value)
{
pnlDettagli.Visible = value;
//mod_elencoTimbr1.Visible = value;
grViewGiust.Visible = value;
}
/// <summary>
/// reset della selezione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnReset_Click(object sender, EventArgs e)
{
resetSelezione();
}
/// <summary>
/// resetta la selezione dei valori in caso di modifiche su altri controlli
/// </summary>
public void resetSelezione()
{
grViewExpl.SelectedIndex = -1;
grViewExpl.DataBind();
setDetailVisib(false);
}
/// <summary>
/// evento update righe
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
grViewExpl.DataBind();
}
/// <summary>
/// evento cancellazione riga
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
grViewExpl.DataBind();
}
/// <summary>
///
/// </summary>
/// <param name="minutiNonLav"></param>
/// <returns></returns>
public string classByNL(object minutiNonLav)
{
string answ = "";
try
{
if (Convert.ToDouble(minutiNonLav) > 0)
/// <summary>
/// seleziono
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void filtroDip_eh_selValore(object sender, EventArgs e)
{
answ = "lblWarning";
// imposto ods
grViewExpl.SelectedIndex = -1;
setDetailVisib(false);
checkFixOds();
}
}
catch
{ }
return answ;
}
/// <summary>
/// prepara tooltip permessi/straordinarie
/// </summary>
/// <param name="minStra"></param>
/// <param name="minPerm"></param>
/// <param name="minPP"></param>
/// <returns></returns>
public string tooltipPermStra(object minStra, object minPerm, object minMpp)
{
string answ = "";
try
{
answ = string.Format("Straordinarie: {0:0.##} min, Permessi: {1:0.##} min", minStra, minPerm);
if (Convert.ToInt32(minMpp) > 0)
/// <summary>
/// imposto ODS
/// </summary>
private void checkFixOds()
{
answ += string.Format(", Pranzo: {0:0.##} min", minMpp);
memLayer.ML.setSessionVal("idxDip_sel", filtroDip.valoreInt);
grViewExpl.DataBind();
mod_elencoTimbr1.doUpdate();
}
}
catch
{ }
return answ;
}
#region editing giustificativi
/// <summary>
/// resetta la selezione dei valori in caso di modifiche su altri controlli
/// </summary>
public void resetSelezioneGiust()
{
grViewGiust.SelectedIndex = -1;
grViewGiust.DataBind();
}
/// <summary>
/// reset della selezione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnResetGiust_Click(object sender, EventArgs e)
{
resetSelezioneGiust();
}
/// <summary>
/// gestione evento richiesta nuovo valore (mostra footer, ...)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
// reset selezione...
resetSelezioneGiust();
int idxDip = memLayer.ML.IntSessionObj("idxDip_det");
// calcola ed inserisce giustificativi
DataProxy.DP.taGiust.giustInsByDate(idxDip, dataRif, "PERM");
updateVisual();
}
/// <summary>
/// inserisce nuovo valore da footer
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lblIns_click(object sender, EventArgs e)
{
// click su inserimento, chiamo il metodo insert dell'ObjectDataSource
odsGiust.Insert();
}
/// <summary>
/// annulla inserimento nuovo valore da footer
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lblCanc_click(object sender, EventArgs e)
{
// annullo inserimento: nascondo footer, bind controlli...
grViewGiust.FooterRow.Visible = false;
}
/// <summary>
/// inserisce un giust nuovo x dipendente/data
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btNewGiust_Click(object sender, EventArgs e)
{
int idxDip = memLayer.ML.IntSessionObj("idxDip_det");
// calcola ed inserisce giustificativi
DataProxy.DP.taGiust.giustInsByDate(idxDip, dataRif, "PERM");
updateVisual();
}
/// <summary>
/// aggiorna i 3 datagrid
/// </summary>
private void updateVisual()
{
// aggiorno visualizzazioni
grViewExpl.DataBind();
mod_elencoTimbr1.doUpdate();
grViewGiust.DataBind();
}
/// <summary>
/// aggiornamento x update
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void odsGiust_Updated(object sender, ObjectDataSourceStatusEventArgs e)
{
updateVisual();
}
/// <summary>
/// aggiornamento x delete
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void odsGiust_Deleted(object sender, ObjectDataSourceStatusEventArgs e)
{
updateVisual();
}
/// <summary>
/// calcola se sia visibile con criterio GREATER THAN ZERO
/// </summary>
/// <param name="valore"></param>
/// <returns></returns>
public bool isGTZ(object valore)
{
bool answ = false;
try
{
if (Convert.ToDouble(valore) > 0)
/// <summary>
/// calcola cognome-nome da idx
/// </summary>
/// <param name="idxDip"></param>
/// <returns></returns>
public string cognomeNome(object idxDip)
{
answ = true;
string answ = "";
try
{
DS_Applicazione.DipendentiRow rigaDip = DataProxy.DP.taDipendenti.getByIdx(Convert.ToInt32(idxDip))[0];
answ = string.Format("{0} {1}", rigaDip.Cognome, rigaDip.Nome);
}
catch
{ }
return answ;
}
}
catch
{ }
return answ;
}
#endregion
/// <summary>
/// cambia stato visibilità week-end...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void chkWE_CheckedChanged(object sender, EventArgs e)
{
// imposto ods
checkFixOds();
}
/// <summary>
/// ricalcola giornate periodo visualizzato per i dipendenti selezionati
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnRicalcPeriodo_Click(object sender, EventArgs e)
{
// eseguo la stored di update dato condizione di filtro x periodo e dipendente...
DataProxy.DP.taTimbExpl.stp_ricalcolaTimbExpl_byPeriodoUser(memLayer.ML.IntSessionObj("idxDip_sel"), Convert.ToDateTime(memLayer.ML.objSessionObj("_inizio")), Convert.ToDateTime(memLayer.ML.objSessionObj("_fine")));
DataProxy.DP.taRA.stp_ricalcolaRegAttivitaExpl_byPeriodoUser(memLayer.ML.IntSessionObj("idxDip_sel"), Convert.ToDateTime(memLayer.ML.objSessionObj("_inizio")), Convert.ToDateTime(memLayer.ML.objSessionObj("_fine")));
// aggiorno
checkFixOds();
}
/// <summary>
/// restituisce il colore data valore ok commessa
/// </summary>
/// <param name="okLavCom"></param>
/// <returns></returns>
public Color coloreComm(object okLavCom)
{
Color answ = Color.Orange;
try
{
if (toBool(okLavCom))
/// <summary>
/// verifica se l'utente possa approvare la modifica oraria
/// </summary>
public bool userCanApprove
{
answ = Color.Black;
get
{
bool answ = false;
try
{
answ = user_std.UtSn.userHasRight("GPW_admin");
}
catch
{ }
return answ;
}
}
}
catch
{ }
return answ;
}
/// <summary>
/// restituisce il colore dato minMpp (se > 0 è verde, altrimenti marrone)
/// </summary>
/// <param name="okLavCom"></param>
/// <returns></returns>
public Color coloreMPP(object minMpp)
{
Color answ = Color.FromName("#995511");
try
{
if (minMpp.ToString() != "0")
/// <summary>
/// idx dipendente loggato
/// </summary>
protected int IdxDipendente
{
answ = Color.FromName("#66AA22");
get
{
int idx = 0;
try
{
idx = memLayer.ML.IntSessionObj("IdxDipendente");
}
catch
{ }
return idx;
}
}
}
catch
{ }
return answ;
}
/// <summary>
/// determina se si debba mostrare cognome nome (altrimenti IDX anonimo)
/// </summary>
public bool showCognomeNome
{
get
{
return memLayer.ML.confReadBool("reviewShowCN");
}
}
/// <summary>
/// formatta la durata in ore secondo web.config (centesimale/ore:min)
/// </summary>
/// <param name="oreCent"></param>
/// <returns></returns>
public string formatDurata(object oreCent)
{
decimal ore = 0;
try
{
ore = Convert.ToDecimal(oreCent);
}
catch
{ }
string answ = "";
if (memLayer.ML.confReadBool("reviewShowOreMin"))
{
//answ = string.Format("{0}:{1:00}", Math.Floor(ore), Math.Round((ore - Math.Floor(ore)) * 60));
answ = utils.formOreMin(ore);
}
else
{
answ = ore.ToString("0.00");
}
return answ;
}
/// <summary>
/// inverte valore booleano
/// </summary>
/// <param name="isEnt"></param>
/// <returns></returns>
public bool invBool(object valore)
{
bool answ = true;
try
{
answ = !Convert.ToBoolean(valore);
}
catch
{ }
return answ;
}
/// <summary>
/// converte valore in booleano
/// </summary>
/// <param name="isEnt"></param>
/// <returns></returns>
public bool toBool(object valore)
{
bool answ = true;
try
{
answ = Convert.ToBoolean(valore);
}
catch
{ }
return answ;
}
/// <summary>
/// mostro visualizzazione dati di dettaglio!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grViewExpl_SelectedIndexChanged(object sender, EventArgs e)
{
dataRif = Convert.ToDateTime(grViewExpl.SelectedDataKey["dataLav"]).Date;
setDetailVisib(true);
protected void odsGiust_Inserting(object sender, ObjectDataSourceMethodEventArgs e)
{
// mostra timbrature
memLayer.ML.setSessionVal("inizioDet", dataRif);
memLayer.ML.setSessionVal("fineDet", dataRif.AddDays(1));
memLayer.ML.setSessionVal("idxDip_det", grViewExpl.SelectedDataKey["idxDipendente"]);
mod_elencoTimbr1.doUpdate();
// mostra commesse
memLayer.ML.setSessionVal("idxDipendente", grViewExpl.SelectedDataKey["idxDipendente"]);
CultureInfo ita = new CultureInfo("it-IT");
mod_commAttivitaDesk1.idxDipCurr = Convert.ToInt32(grViewExpl.SelectedDataKey["idxDipendente"]);
mod_commAttivitaDesk1.valoreDateTime = Convert.ToDateTime(dataRif, ita);
mod_commAttivitaDesk1.doUpdate();
grViewExpl.DataBind();
}
/// <summary>
/// set visibilità grView dettagli
/// </summary>
/// <param name="value"></param>
private void setDetailVisib(bool value)
{
pnlDettagli.Visible = value;
//mod_elencoTimbr1.Visible = value;
grViewGiust.Visible = value;
}
/// <summary>
/// reset della selezione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnReset_Click(object sender, EventArgs e)
{
resetSelezione();
}
/// <summary>
/// resetta la selezione dei valori in caso di modifiche su altri controlli
/// </summary>
public void resetSelezione()
{
grViewExpl.SelectedIndex = -1;
grViewExpl.DataBind();
setDetailVisib(false);
}
/// <summary>
/// evento update righe
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
grViewExpl.DataBind();
}
/// <summary>
/// evento cancellazione riga
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
grViewExpl.DataBind();
}
/// <summary>
///
/// </summary>
/// <param name="minutiNonLav"></param>
/// <returns></returns>
public string classByNL(object minutiNonLav)
{
string answ = "";
try
{
if (Convert.ToDouble(minutiNonLav) > 0)
{
answ = "lblWarning";
}
}
catch
{ }
return answ;
}
/// <summary>
/// prepara tooltip permessi/straordinarie
/// </summary>
/// <param name="minStra"></param>
/// <param name="minPerm"></param>
/// <param name="minPP"></param>
/// <returns></returns>
public string tooltipPermStra(object minStra, object minPerm, object minMpp)
{
string answ = "";
try
{
answ = string.Format("Straordinarie: {0:0.##} min, Permessi: {1:0.##} min", minStra, minPerm);
if (Convert.ToInt32(minMpp) > 0)
{
answ += string.Format(", Pranzo: {0:0.##} min", minMpp);
}
}
catch
{ }
return answ;
}
#region editing giustificativi
/// <summary>
/// resetta la selezione dei valori in caso di modifiche su altri controlli
/// </summary>
public void resetSelezioneGiust()
{
grViewGiust.SelectedIndex = -1;
grViewGiust.DataBind();
}
/// <summary>
/// reset della selezione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnResetGiust_Click(object sender, EventArgs e)
{
resetSelezioneGiust();
}
/// <summary>
/// gestione evento richiesta nuovo valore (mostra footer, ...)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
// reset selezione...
resetSelezioneGiust();
int idxDip = memLayer.ML.IntSessionObj("idxDip_det");
// calcola ed inserisce giustificativi
DataProxy.DP.taGiust.giustInsByDate(idxDip, dataRif, "PERM");
updateVisual();
}
/// <summary>
/// inserisce nuovo valore da footer
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lblIns_click(object sender, EventArgs e)
{
// click su inserimento, chiamo il metodo insert dell'ObjectDataSource
odsGiust.Insert();
}
/// <summary>
/// annulla inserimento nuovo valore da footer
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lblCanc_click(object sender, EventArgs e)
{
// annullo inserimento: nascondo footer, bind controlli...
grViewGiust.FooterRow.Visible = false;
}
/// <summary>
/// inserisce un giust nuovo x dipendente/data
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btNewGiust_Click(object sender, EventArgs e)
{
int idxDip = memLayer.ML.IntSessionObj("idxDip_det");
// calcola ed inserisce giustificativi
DataProxy.DP.taGiust.giustInsByDate(idxDip, dataRif, "PERM");
updateVisual();
}
/// <summary>
/// aggiorna i 3 datagrid
/// </summary>
private void updateVisual()
{
// aggiorno visualizzazioni
grViewExpl.DataBind();
mod_elencoTimbr1.doUpdate();
grViewGiust.DataBind();
}
/// <summary>
/// aggiornamento x update
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void odsGiust_Updated(object sender, ObjectDataSourceStatusEventArgs e)
{
updateVisual();
}
/// <summary>
/// aggiornamento x delete
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void odsGiust_Deleted(object sender, ObjectDataSourceStatusEventArgs e)
{
updateVisual();
}
/// <summary>
/// calcola se sia visibile con criterio GREATER THAN ZERO
/// </summary>
/// <param name="valore"></param>
/// <returns></returns>
public bool isGTZ(object valore)
{
bool answ = false;
try
{
if (Convert.ToDouble(valore) > 0)
{
answ = true;
}
}
catch
{ }
return answ;
}
#endregion
/// <summary>
/// cambia stato visibilità week-end...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void chkWE_CheckedChanged(object sender, EventArgs e)
{
// imposto ods
checkFixOds();
}
/// <summary>
/// ricalcola giornate periodo visualizzato per i dipendenti selezionati
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnRicalcPeriodo_Click(object sender, EventArgs e)
{
// eseguo la stored di update dato condizione di filtro x periodo e dipendente...
DataProxy.DP.taTimbExpl.stp_ricalcolaTimbExpl_byPeriodoUser(memLayer.ML.IntSessionObj("idxDip_sel"), Convert.ToDateTime(memLayer.ML.objSessionObj("_inizio")), Convert.ToDateTime(memLayer.ML.objSessionObj("_fine")));
DataProxy.DP.taRA.stp_ricalcolaRegAttivitaExpl_byPeriodoUser(memLayer.ML.IntSessionObj("idxDip_sel"), Convert.ToDateTime(memLayer.ML.objSessionObj("_inizio")), Convert.ToDateTime(memLayer.ML.objSessionObj("_fine")));
// aggiorno
checkFixOds();
}
/// <summary>
/// restituisce il colore data valore ok commessa
/// </summary>
/// <param name="okLavCom"></param>
/// <returns></returns>
public Color coloreComm(object okLavCom)
{
Color answ = Color.Orange;
try
{
if (toBool(okLavCom))
{
answ = Color.Black;
}
}
catch
{ }
return answ;
}
/// <summary>
/// restituisce il colore dato minMpp (se > 0 è verde, altrimenti marrone)
/// </summary>
/// <param name="okLavCom"></param>
/// <returns></returns>
public Color coloreMPP(object minMpp)
{
Color answ = Color.FromName("#995511");
if (minMpp != null)
{
try
{
if (minMpp.ToString() != "0")
{
answ = Color.FromName("#66AA22");
}
}
catch
{ }
}
return answ;
}
/// <summary>
/// determina se si debba mostrare cognome nome (altrimenti IDX anonimo)
/// </summary>
public bool showCognomeNome
{
get
{
return memLayer.ML.confReadBool("reviewShowCN");
}
}
/// <summary>
/// formatta la durata in ore secondo web.config (centesimale/ore:min)
/// </summary>
/// <param name="oreCent"></param>
/// <returns></returns>
public string formatDurata(object oreCent)
{
decimal ore = 0;
try
{
ore = Convert.ToDecimal(oreCent);
}
catch
{ }
string answ = "";
if (memLayer.ML.confReadBool("reviewShowOreMin"))
{
//answ = string.Format("{0}:{1:00}", Math.Floor(ore), Math.Round((ore - Math.Floor(ore)) * 60));
answ = utils.formOreMin(ore);
}
else
{
answ = ore.ToString("0.00");
}
return answ;
}
protected void odsGiust_Inserting(object sender, ObjectDataSourceMethodEventArgs e)
{
}
}
}
}
@@ -19,8 +19,8 @@ public partial class mod_ricercaGenerica : ApplicationUserControl
#endregion
# region area protected
#region area protected
protected override void Page_Load(object sender, EventArgs e)
{
base.Page_Load(sender, e);
@@ -64,7 +64,7 @@ public partial class mod_ricercaGenerica : ApplicationUserControl
/// </summary>
protected void salvaCerca()
{
if (testoRicerca == "")
if (string.IsNullOrEmpty(testoRicerca))
{
SteamWare.memLayer.ML.emptySessionVal("valoreCercato");
}
@@ -88,7 +88,7 @@ public partial class mod_ricercaGenerica : ApplicationUserControl
/// </summary>
public void updateText()
{
if (SteamWare.memLayer.ML.StringSessionObj("valoreCercato") != "" && !Page.IsPostBack)
if (!string.IsNullOrEmpty(memLayer.ML.StringSessionObj("valoreCercato")) && !Page.IsPostBack)
{
testoRicerca = SteamWare.memLayer.ML.StringSessionObj("valoreCercato");
}
+52 -55
View File
@@ -132,7 +132,6 @@ namespace GPW_Admin.WebUserControls
filtroFase.ods = odsFasi;
filtroDip.reselFirst();
setDetailVisib(false);
// filtro x spostamento
filtroCliDest.ods = odsClienti;
@@ -176,8 +175,6 @@ namespace GPW_Admin.WebUserControls
void filtroDip_eh_selValore(object sender, EventArgs e)
{
// imposto ods
//grViewExpl.SelectedIndex = -1;
setDetailVisib(false);
checkFixOds();
}
/// <summary>
@@ -262,15 +259,6 @@ namespace GPW_Admin.WebUserControls
{ }
}
/// <summary>
/// set visibilità grView dettagli
/// </summary>
/// <param name="value"></param>
private void setDetailVisib(bool value)
{
//pnlDettagli.Visible = value;
//grViewGiust.Visible = value;
}
/// <summary>
/// imposto ODS
/// </summary>
private void checkFixOds()
@@ -386,20 +374,23 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void btnSelAll_Click(object sender, EventArgs e)
{
// seleziono tutti i valori visibili nel datagrid
CheckBox chkbox = ((CheckBox)sender);
bool isChecked = chkbox.Checked;
if (!isChecked)
if (sender != null)
{
chkbox.ToolTip = "Seleziona tutti";
}
else
{
chkbox.ToolTip = "Deseleziona tutti";
}
foreach (GridViewRow riga in grView.Rows)
{
((CheckBox)riga.FindControl("chkSelect")).Checked = isChecked;
// seleziono tutti i valori visibili nel datagrid
CheckBox chkbox = ((CheckBox)sender);
bool isChecked = chkbox.Checked;
if (!isChecked)
{
chkbox.ToolTip = "Seleziona tutti";
}
else
{
chkbox.ToolTip = "Deseleziona tutti";
}
foreach (GridViewRow riga in grView.Rows)
{
((CheckBox)riga.FindControl("chkSelect")).Checked = isChecked;
}
}
}
/// <summary>
@@ -456,28 +447,31 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void ddlFaseDest_DataBound(object sender, EventArgs e)
{
// cerco eventuali controlli tipo "ancestor" e li disattivo!
DropDownList ddlFase_int = (DropDownList)sender;
ListItem li = new ListItem();
while (li != null)
if (sender != null)
{
li = ddlFase_int.Items.FindByValue("0");
// cerco eventuali controlli tipo "ancestor" e li disattivo!
DropDownList ddlFase_int = (DropDownList)sender;
ListItem li = new ListItem();
while (li != null)
{
li = ddlFase_int.Items.FindByValue("0");
try
{
li.Attributes.Add("style", "color:gray;");
li.Attributes.Add("disabled", "true");
li.Value = "-1";
li.Text = string.Format("[ {0} ]", li.Text);
}
catch
{ }
}
try
{
li.Attributes.Add("style", "color:gray;");
li.Attributes.Add("disabled", "true");
li.Value = "-1";
li.Text = string.Format("[ {0} ]", li.Text);
ddlFase_int.SelectedIndex = 1;
}
catch
{ }
}
try
{
ddlFase_int.SelectedIndex = 1;
}
catch
{ }
}
/// <summary>
/// sistemo eventuali "headers"
@@ -486,28 +480,31 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void ddlFase_DataBound(object sender, EventArgs e)
{
// cerco eventuali controlli tipo "ancestor" e li disattivo!
DropDownList ddlFase_int = (DropDownList)sender;
ListItem li = new ListItem();
while (li != null)
if (sender != null)
{
li = ddlFase_int.Items.FindByValue("0");
// cerco eventuali controlli tipo "ancestor" e li disattivo!
DropDownList ddlFase_int = (DropDownList)sender;
ListItem li = new ListItem();
while (li != null)
{
li = ddlFase_int.Items.FindByValue("0");
try
{
li.Attributes.Add("style", "color:gray;");
li.Attributes.Add("disabled", "true");
li.Value = "-1";
li.Text = string.Format("[ {0} ]", li.Text);
}
catch
{ }
}
try
{
li.Attributes.Add("style", "color:gray;");
li.Attributes.Add("disabled", "true");
li.Value = "-1";
li.Text = string.Format("[ {0} ]", li.Text);
ddlFase_int.SelectedIndex = 1;
}
catch
{ }
}
try
{
ddlFase_int.SelectedIndex = 1;
}
catch
{ }
}
protected void grView_PageIndexChanged(object sender, EventArgs e)
@@ -105,42 +105,45 @@ namespace GPW_Admin.WebUserControls
/// <param name="e"></param>
protected void recuperaFooter(object sender, ObjectDataSourceMethodEventArgs e)
{
//recupero la riga footer...
DataColumnCollection colonne = colonneObj();
string nomeCol;
string tipoColonna = "";
foreach (DataColumn colonna in colonne)
if (e != null)
{
nomeCol = colonna.ColumnName;
// cerco un textbox o quello che sia...
if (grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol)) != null)
//recupero la riga footer...
DataColumnCollection colonne = colonneObj();
string nomeCol;
string tipoColonna = "";
foreach (DataColumn colonna in colonne)
{
tipoColonna = "textBox";
nomeCol = colonna.ColumnName;
// cerco un textbox o quello che sia...
if (grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol)) != null)
{
tipoColonna = "textBox";
}
else if (grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol)) != null)
{
tipoColonna = "dropDownList";
}
else if (grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol)) != null)
{
tipoColonna = "checkBox";
}
// in base al tipo salvo negli inputparameters dell'ODS
switch (tipoColonna)
{
case "textBox":
e.InputParameters[nomeCol] = ((TextBox)grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol))).Text;
break;
case "dropDownList":
e.InputParameters[nomeCol] = ((DropDownList)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).SelectedValue;
break;
case "checkBox":
e.InputParameters[nomeCol] = ((CheckBox)grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol))).Checked;
break;
default:
break;
}
tipoColonna = "";
}
else if (grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol)) != null)
{
tipoColonna = "dropDownList";
}
else if (grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol)) != null)
{
tipoColonna = "checkBox";
}
// in base al tipo salvo negli inputparameters dell'ODS
switch (tipoColonna)
{
case "textBox":
e.InputParameters[nomeCol] = ((TextBox)grView.FooterRow.FindControl(string.Format("txt{0}", nomeCol))).Text;
break;
case "dropDownList":
e.InputParameters[nomeCol] = ((DropDownList)grView.FooterRow.FindControl(string.Format("dl{0}", nomeCol))).SelectedValue;
break;
case "checkBox":
e.InputParameters[nomeCol] = ((CheckBox)grView.FooterRow.FindControl(string.Format("chk{0}", nomeCol))).Checked;
break;
default:
break;
}
tipoColonna = "";
}
}
@@ -154,8 +157,11 @@ namespace GPW_Admin.WebUserControls
/// <returns></returns>
protected DataColumnCollection colonneObj()
{
DS_Applicazione.TimbMeseExplDataTable tabella = new DS_Applicazione.TimbMeseExplDataTable();
DataColumnCollection colonne = tabella.Columns;
DataColumnCollection colonne = null;
using (DS_Applicazione.TimbMeseExplDataTable tabella = new DS_Applicazione.TimbMeseExplDataTable())
{
colonne = tabella.Columns;
}
return colonne;
}
/// <summary>
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace GPW_Admin
{
public partial class approvTimbrature : System.Web.UI.Page
public partial class approvTimbrature : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace GPW_Admin
{
public partial class chLang : System.Web.UI.Page
public partial class chLang : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace GPW_Admin
{
public partial class clienti : System.Web.UI.Page
public partial class clienti :BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace GPW_Admin
{
public partial class dipendenti : System.Web.UI.Page
public partial class dipendenti :BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
+1 -1
View File
@@ -8,7 +8,7 @@ using SteamWare;
namespace GPW_Admin
{
public partial class fasi : System.Web.UI.Page
public partial class fasi :BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace GPW_Admin
{
public partial class gestCalendario : System.Web.UI.Page
public partial class gestCalendario :BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace GPW_Admin
{
public partial class gestOrario : System.Web.UI.Page
public partial class gestOrario :BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
+1 -1
View File
@@ -1,5 +1,5 @@
<%@ Page Title="GPW-ADM"Language="C#" MasterPageFile="~/WebMasterPages/AjaxSimpleFull.master" AutoEventWireup="true" CodeBehind="infoPage.aspx.cs"
Inherits="GPW.infoPage" %>
Inherits="GPW_Admin.infoPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="cph1" runat="server">
<div style="width: 100%;" class="divCenter placardSteamware">
+2 -2
View File
@@ -6,9 +6,9 @@ using System.Web.UI;
using System.Web.UI.WebControls;
using GPW_data;
namespace GPW
namespace GPW_Admin
{
public partial class infoPage : System.Web.UI.Page
public partial class infoPage : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
+35 -33
View File
@@ -1,68 +1,70 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// <generato automaticamente>
// Codice generato da uno strumento.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
// Le modifiche a questo file possono causare un comportamento non corretto e verranno perse se
// il codice viene rigenerato.
// </generato automaticamente>
//------------------------------------------------------------------------------
namespace GPW {
public partial class infoPage {
namespace GPW_Admin
{
public partial class infoPage
{
/// <summary>
/// pnlCheck control.
/// Controllo pnlCheck.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// 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.Panel pnlCheck;
/// <summary>
/// lblInstallation control.
/// Controllo lblInstallation.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// 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 lblInstallation;
/// <summary>
/// lblApplication control.
/// Controllo lblApplication.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// 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 lblApplication;
/// <summary>
/// lblNumLic control.
/// Controllo lblNumLic.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// 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 lblNumLic;
/// <summary>
/// lblExpiryDate control.
/// Controllo lblExpiryDate.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// 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 lblExpiryDate;
/// <summary>
/// lblAuthKey control.
/// Controllo lblAuthKey.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// 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 lblAuthKey;
}
Binary file not shown.
+2 -2
View File
@@ -7,14 +7,14 @@ using System.Web.UI.WebControls;
namespace GPW_Admin
{
public partial class login : System.Web.UI.Page
public partial class login : BasePage
{
protected string _nextPage
{
get
{
string pagina = SteamWare.memLayer.ML.StringSessionObj("nextPage");
if (pagina == "")
if (string.IsNullOrEmpty(pagina))
{
pagina = "menu.aspx";
}
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace GPW_Admin
{
public partial class menu : System.Web.UI.Page
public partial class menu :BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
+1 -1
View File
@@ -48,7 +48,7 @@
<package id="SharpZipLib" version="1.2.0" targetFramework="net462" />
<package id="Snappy.NET" version="1.1.1.8" targetFramework="net462" />
<package id="StackExchange.Redis" version="2.1.58" targetFramework="net462" />
<package id="SteamWare" version="4.1.2008.736" targetFramework="net462" />
<package id="SteamWare" version="4.1.2009.737" targetFramework="net462" />
<package id="System.Buffers" version="4.5.1" targetFramework="net462" />
<package id="System.Diagnostics.PerformanceCounter" version="4.7.0" targetFramework="net462" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace GPW_Admin
{
public partial class progetti : System.Web.UI.Page
public partial class progetti :BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace GPW_Admin
{
public partial class reportProgetti : System.Web.UI.Page
public partial class reportProgetti :BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace GPW_Admin
{
public partial class reviewTimbrature : System.Web.UI.Page
public partial class reviewTimbrature :BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
Binary file not shown.
Binary file not shown.
+1 -10
View File
@@ -9,17 +9,8 @@ using SteamWare;
namespace GPW_Admin
{
public partial class spostaFasi : System.Web.UI.Page
public partial class spostaFasi : BasePage
{
/// <summary>
/// effettua traduzione del lemma
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(string lemma)
{
return user_std.UtSn.Traduci(lemma);
}
/// <summary>
/// caricamento pagina
/// </summary>
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace GPW_Admin
{
public partial class spostaOre : System.Web.UI.Page
public partial class spostaOre :BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace GPW_Admin
{
public partial class timbratureMensili : System.Web.UI.Page
public partial class timbratureMensili :BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Web.UI.WebControls;
namespace GPW_Admin
{
public partial class unauthorized1 : System.Web.UI.Page
public partial class unauthorized1 :BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
-48
View File
@@ -1,48 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SteamWare;
namespace GPW_Admin
{
public class utility
{
/// <summary>
/// determina se si debba usare CDN x scaricare librerie asp.net ajax
/// </summary>
public static bool EnableCdnAjax
{
get
{
bool answ = false;
try
{
answ = memLayer.ML.confReadBool("EnableCdnAjax");
}
catch
{
}
return answ;
}
}
/// <summary>
/// determina se si debba usare CDN x scaricare librerie jquery
/// </summary>
public static bool EnableCdnJQ
{
get
{
bool answ = false;
try
{
answ = memLayer.ML.confReadBool("EnableCdnJQ");
}
catch
{
}
return answ;
}
}
}
}
+13 -17
View File
@@ -24,7 +24,7 @@
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<Use64BitIISExpress />
<TypeScriptToolsVersion>3.7</TypeScriptToolsVersion>
<TypeScriptToolsVersion>3.9</TypeScriptToolsVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -113,8 +113,8 @@
<Reference Include="StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46, processorArchitecture=MSIL">
<HintPath>..\packages\StackExchange.Redis.2.1.58\lib\net461\StackExchange.Redis.dll</HintPath>
</Reference>
<Reference Include="SteamWare, Version=4.1.2008.736, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SteamWare.4.1.2008.736\lib\net462\SteamWare.dll</HintPath>
<Reference Include="SteamWare, Version=4.1.2009.737, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SteamWare.4.1.2009.737\lib\net462\SteamWare.dll</HintPath>
</Reference>
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
@@ -127,11 +127,10 @@
<Reference Include="System.Diagnostics.PerformanceCounter, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.PerformanceCounter.4.7.0\lib\net461\System.Diagnostics.PerformanceCounter.dll</HintPath>
</Reference>
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<!-- <Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
</Reference> -->
<Reference Include="System.IO.Pipelines, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Pipelines.4.7.2\lib\net461\System.IO.Pipelines.dll</HintPath>
</Reference>
@@ -141,7 +140,6 @@
<Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
@@ -153,28 +151,23 @@
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.ServiceModel" />
<Reference Include="System.Text.Encoding.CodePages, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
@@ -503,21 +496,22 @@
<Content Include="Content\themes\base\tabs.css" />
<Content Include="Content\themes\base\theme.css" />
<Content Include="Content\themes\base\tooltip.css" />
<Content Include="Core\Compression\Snappy\lib\win\snappy32.dll" />
<Content Include="Core\Compression\Snappy\lib\win\snappy64.dll" />
<Content Include="Core\Compression\Zstandard\lib\win\libzstd.dll" />
<Content Include="images\favicon.png" />
<Content Include="images\logo_sw.png" />
<Content Include="libzstd.dll" />
<Content Include="logs\PlaceHolder.file" />
<Content Include="GPW_Barcode.wpp.targets" />
<Content Include="App_Readme\SteamWare_demo\example-NLog.config" />
<Content Include="App_Readme\SteamWare_demo\example-app.config" />
<Content Include="Content\bootstrap.min.css.map" />
<Content Include="Content\bootstrap.css.map" />
<Content Include="Content\bootstrap-reboot.min.css.map" />
<Content Include="Content\bootstrap-reboot.css.map" />
<Content Include="Content\bootstrap-grid.min.css.map" />
<Content Include="Content\bootstrap-grid.css.map" />
<Content Include="..\.editorconfig">
<Link>.editorconfig</Link>
</Content>
<Content Include="App_Readme\SteamWare_demo\example-NLog.config" />
<Content Include="App_Readme\SteamWare_demo\example-app.config" />
<None Include="Properties\PublishProfiles\ETS.pubxml" />
<None Include="Properties\PublishProfiles\IIS01.pubxml" />
<None Include="Properties\PublishProfiles\IISDEV.pubxml" />
@@ -624,6 +618,8 @@
<Content Include="Scripts\umd\popper-utils.min.js" />
<Content Include="Scripts\umd\popper.js" />
<Content Include="Scripts\umd\popper.min.js" />
<Content Include="snappy32.dll" />
<Content Include="snappy64.dll" />
<Content Include="WebUserControls\mod_bCodeTimb.ascx" />
<Content Include="WebUserControls\mod_menuBottomFullBCode.ascx" />
<Content Include="bundleconfig.json" />
+8 -11
View File
@@ -44,9 +44,6 @@
<add key="copyRight" value="SteamWare" />
<add key="CodModulo" value="GPW" />
<add key="_safePages" value="unauthorized.aspx#forceUser.aspx#login#login.aspx#test.aspx#Test.aspx" />
<!--Ottimizzazioni liberie esterne-->
<add key="EnableCdnAjax" value="false" />
<add key="EnableCdnJQ" value="false" />
<!--Gestione forzatura priam timbratura ad entrata-->
<add key="firstIsIN" value="true" />
<!--Gestione notifiche anomalie-->
@@ -137,6 +134,10 @@
</connectionStrings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="B77A5C561934E089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.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" />
@@ -157,18 +158,10 @@
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.3" newVersion="4.1.1.3" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.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.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.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" />
@@ -185,6 +178,10 @@
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.webServer>
+427 -427
View File
@@ -9,465 +9,465 @@ using GPW_data;
namespace GPW.WebUserControls
{
public partial class mod_bCodeTimb : System.Web.UI.UserControl
{
/// <summary>
/// salva il dato se il prox sia entrata...
/// </summary>
protected bool nextIsEntrata
public partial class mod_bCodeTimb : System.Web.UI.UserControl
{
get
{
return memLayer.ML.BoolSessionObj("nextIsEntrata");
}
set
{
memLayer.ML.setSessionVal("nextIsEntrata", value);
}
}
/// <summary>
/// dataora associata all'evento scansioen BCode
/// </summary>
protected DateTime orarioBCode
{
get
{
return (DateTime)memLayer.ML.objSessionObj("dataOraBCode");
}
set
{
memLayer.ML.setSessionVal("dataOraBCode", value);
}
}
/// <summary>
/// indica i secondi di countdown rimasti x auto-commit
/// </summary>
protected int countDown
{
get
{
return memLayer.ML.IntSessionObj("countDownBCode");
}
set
{
memLayer.ML.setSessionVal("countDownBCode", value);
}
}
/// <summary>
/// pagina corrente
/// </summary>
protected string paginaCorrente
{
get
{
string answ = "";
Uri MyUrl = Request.Url;
string delimStr = "/";
char[] delimiter = delimStr.ToCharArray();
string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter);
int n = finalUrl.Length;
answ = finalUrl[n - 1].ToString();
return answ;
}
}
/// <summary>
/// prox messaggio utente (da mostrare)
/// </summary>
protected string nextUsrMsg
{
get
{
string answ = "";
try
/// <summary>
/// salva il dato se il prox sia entrata...
/// </summary>
protected bool nextIsEntrata
{
answ = memLayer.ML.StringSessionObj("nextUsrMsg");
}
catch
{ }
if (answ == "")
{
answ = "...waiting...";
}
return answ;
}
set
{
memLayer.ML.setSessionVal("nextUsrMsg", value);
}
}
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
chekIpPostazione();
if (!Page.IsPostBack)
{
DataProxy.idxDipendente = -1;
bool visibile = false;
setCtrlState(visibile);
checkBarcode();
}
timerConf.Tick += new EventHandler<EventArgs>(timerConf_Tick);
lblDipendenteAttivo.Text = nextUsrMsg;
txtBarcode.Focus();
}
/// <summary>
/// verifica IP della postazione chiamante, se non è tra quelli permessi (o non è indicato "*") rimanda a pagina precedente...
/// </summary>
private void chekIpPostazione()
{
// recupero IP
string IPv4 = Request.UserHostName;
// controllo se IP locale = approvata...
if (!memLayer.ML.confReadString("ipv4StazBCode").Contains(IPv4) && memLayer.ML.confReadString("ipv4StazBCode") != "*")
{
Response.Redirect("~/Default.aspx");
}
}
/// <summary>
/// allo scadere del timer controllo countdown!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void timerConf_Tick(object sender, EventArgs e)
{
contatorePag = 0;
if (countDown > 1)
{
countDown = countDown - 1;
lblCountDown.Text = countDown.ToString();
txtBarcode.Focus();
}
else
{
// salvo operazione di default!
registraTimbratura(nextIsEntrata);
// reset visualizzazione
setCtrlState(false);
timerConf.Enabled = false;
// reset valori
Response.Redirect(paginaCorrente);
}
}
/// <summary>
/// imposta lo stato visibile dei controlli
/// </summary>
/// <param name="visibile"></param>
private void setCtrlState(bool visibile)
{
pnlTimer.Visible = visibile;
//imgRun.Visible = visibile;
if (DataProxy.idxDipendente > 0)
{
grView.Visible = true;
}
else
{
grView.Visible = visibile;
}
}
/// <summary>
/// verifica in che stato debbano essere i buttons (se barcode utente valido)
/// </summary>
private void checkButtons()
{
// controllo se il prox comando DOVREBBE essere entrata o uscita
nextIsEntrata = true;
// controllo dipendente
if (DataProxy.idxDipendente > 0)
{
// ricavo ultima timbratura..
nextIsEntrata = timbratrice.nextIsEntrata(DataProxy.idxDipendente);
string tipoTimb = "uscita";
// di conseguenza cambio abilitazione ad un buttons
if (nextIsEntrata)
{
btnEntrata.CssClass = "btnPreferred";
btnUscita.CssClass = "btnStd";
tipoTimb = "ENTRATA";
}
else
{
btnEntrata.CssClass = "btnStd";
btnUscita.CssClass = "btnPreferred";
tipoTimb = "USCITA";
}
lblNextTimbr.Text = string.Format("Allo scadere del timer verrà registrata una timbratura di <b>{0}</b>", tipoTimb);
}
else
{
btnEntrata.CssClass = "btnStd";
btnUscita.CssClass = "btnStd";
lblNextTimbr.Text = "";
}
}
/// <summary>
/// controlla se ci sia un barcode valido, tra:
/// - idxDipendente (INT, eventuale padding di zero...)
/// - matr dipendente
/// - cf dipendente
/// </summary>
private void checkBarcode()
{
if (barcodeIn != "")
{
// mostro i buttons enabled
btnEntrata.Enabled = true;
btnUscita.Enabled = true;
lblMessaggi.Text = "Barcode";
switch (tipoBCode)
{
case tipoCodiceBarcode.idxDipendente:
// calcolo idxOperatore...
int idxOper = 0;
try
get
{
idxOper = Convert.ToInt32(barcodeIn.ToLowerInvariant().Replace("idx", ""));
return memLayer.ML.BoolSessionObj("nextIsEntrata");
}
catch
{ }
// controllo esista il codice idxDipendente scansionato
if (DataProxy.DP.taDipendenti.getByIdx(idxOper).Rows.Count == 0)
set
{
setCtrlState(false);
DataProxy.idxDipendente = 0;
orarioBCode = DateTime.Now;
timerConf.Enabled = false;
nextUsrMsg = "...waiting...";
lblMessaggi.Text += " - codice non valido / non trovato.";
pnlAll.CssClass = "stileComandoKo";
memLayer.ML.setSessionVal("nextIsEntrata", value);
}
}
/// <summary>
/// dataora associata all'evento scansioen BCode
/// </summary>
protected DateTime orarioBCode
{
get
{
return (DateTime)memLayer.ML.objSessionObj("dataOraBCode");
}
set
{
memLayer.ML.setSessionVal("dataOraBCode", value);
}
}
/// <summary>
/// indica i secondi di countdown rimasti x auto-commit
/// </summary>
protected int countDown
{
get
{
return memLayer.ML.IntSessionObj("countDownBCode");
}
set
{
memLayer.ML.setSessionVal("countDownBCode", value);
}
}
/// <summary>
/// pagina corrente
/// </summary>
protected string paginaCorrente
{
get
{
string answ = "";
Uri MyUrl = Request.Url;
string delimStr = "/";
char[] delimiter = delimStr.ToCharArray();
string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter);
int n = finalUrl.Length;
answ = finalUrl[n - 1].ToString();
return answ;
}
}
/// <summary>
/// prox messaggio utente (da mostrare)
/// </summary>
protected string nextUsrMsg
{
get
{
string answ = "";
try
{
answ = memLayer.ML.StringSessionObj("nextUsrMsg");
}
catch
{ }
if (string.IsNullOrEmpty(answ))
{
answ = "...waiting...";
}
return answ;
}
set
{
memLayer.ML.setSessionVal("nextUsrMsg", value);
}
}
/// <summary>
/// caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
chekIpPostazione();
if (!Page.IsPostBack)
{
DataProxy.idxDipendente = -1;
bool visibile = false;
setCtrlState(visibile);
checkBarcode();
}
timerConf.Tick += new EventHandler<EventArgs>(timerConf_Tick);
lblDipendenteAttivo.Text = nextUsrMsg;
txtBarcode.Focus();
}
/// <summary>
/// verifica IP della postazione chiamante, se non è tra quelli permessi (o non è indicato "*") rimanda a pagina precedente...
/// </summary>
private void chekIpPostazione()
{
// recupero IP
string IPv4 = Request.UserHostName;
// controllo se IP locale = approvata...
if (!memLayer.ML.confReadString("ipv4StazBCode").Contains(IPv4) && memLayer.ML.confReadString("ipv4StazBCode") != "*")
{
Response.Redirect("~/Default.aspx");
}
}
/// <summary>
/// allo scadere del timer controllo countdown!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void timerConf_Tick(object sender, EventArgs e)
{
contatorePag = 0;
if (countDown > 1)
{
countDown = countDown - 1;
lblCountDown.Text = countDown.ToString();
txtBarcode.Focus();
}
else
{
setCtrlState(true);
DataProxy.idxDipendente = idxOper;
orarioBCode = DateTime.Now;
DS_Applicazione.DipendentiRow rigaDip = DataProxy.DP.taDipendenti.getByIdx(idxOper)[0];
nextUsrMsg = string.Format("{0} {1} - {2: HH:mm:ss}", rigaDip.Cognome, rigaDip.Nome, orarioBCode);
lblMessaggi.Text += " - impostato dipendente!";
pnlAll.CssClass = "stileComandoOk";
// faccio partire countdown
countDown = SteamWare.memLayer.ML.confReadInt("secTimeoutBCode");
lblCountDown.Text = countDown.ToString();
timerConf.Enabled = true;
// salvo operazione di default!
registraTimbratura(nextIsEntrata);
// reset visualizzazione
setCtrlState(false);
timerConf.Enabled = false;
// reset valori
Response.Redirect(paginaCorrente);
}
txtBarcode.Focus();
break;
case tipoCodiceBarcode.matrDipendente:
// fare!!!
txtBarcode.Focus();
break;
case tipoCodiceBarcode.cfDipendente:
// fare!!!
txtBarcode.Focus();
break;
case tipoCodiceBarcode.Comando:
// procedo SOLO se ho cod dipendente
if (DataProxy.DP.taDipendenti.getByIdx(DataProxy.idxDipendente).Rows.Count > 0)
}
/// <summary>
/// imposta lo stato visibile dei controlli
/// </summary>
/// <param name="visibile"></param>
private void setCtrlState(bool visibile)
{
pnlTimer.Visible = visibile;
//imgRun.Visible = visibile;
if (DataProxy.idxDipendente > 0)
{
timerConf.Enabled = false;
setCtrlState(false);
grView.Visible = true;
}
nextUsrMsg = "...waiting...";
// controlla se sia entra/esci (IN/OUT)
if (barcodeIn.ToUpperInvariant() == "CMDIN")
else
{
// registro ingresso!
registraTimbratura(true);
Response.Redirect(paginaCorrente);
grView.Visible = visibile;
}
else if (barcodeIn.ToUpperInvariant() == "CMDOUT")
}
/// <summary>
/// verifica in che stato debbano essere i buttons (se barcode utente valido)
/// </summary>
private void checkButtons()
{
// controllo se il prox comando DOVREBBE essere entrata o uscita
nextIsEntrata = true;
// controllo dipendente
if (DataProxy.idxDipendente > 0)
{
// registro uscita!
registraTimbratura(false);
Response.Redirect(paginaCorrente);
// ricavo ultima timbratura..
nextIsEntrata = timbratrice.nextIsEntrata(DataProxy.idxDipendente);
string tipoTimb = "uscita";
// di conseguenza cambio abilitazione ad un buttons
if (nextIsEntrata)
{
btnEntrata.CssClass = "btnPreferred";
btnUscita.CssClass = "btnStd";
tipoTimb = "ENTRATA";
}
else
{
btnEntrata.CssClass = "btnStd";
btnUscita.CssClass = "btnPreferred";
tipoTimb = "USCITA";
}
lblNextTimbr.Text = string.Format("Allo scadere del timer verrà registrata una timbratura di <b>{0}</b>", tipoTimb);
}
//else if (barcodeIn.ToUpperInvariant() == "CMD")
//{
// Response.Redirect(paginaCorrente);
//}
//DataProxy.idxDipendente = -1;
else
{
btnEntrata.CssClass = "btnStd";
btnUscita.CssClass = "btnStd";
lblNextTimbr.Text = "";
}
}
/// <summary>
/// controlla se ci sia un barcode valido, tra:
/// - idxDipendente (INT, eventuale padding di zero...)
/// - matr dipendente
/// - cf dipendente
/// </summary>
private void checkBarcode()
{
if (!string.IsNullOrEmpty(barcodeIn))
{
// mostro i buttons enabled
btnEntrata.Enabled = true;
btnUscita.Enabled = true;
lblMessaggi.Text = "Barcode";
switch (tipoBCode)
{
case tipoCodiceBarcode.idxDipendente:
// calcolo idxOperatore...
int idxOper = 0;
try
{
idxOper = Convert.ToInt32(barcodeIn.ToLowerInvariant().Replace("idx", ""));
}
catch
{ }
// controllo esista il codice idxDipendente scansionato
if (DataProxy.DP.taDipendenti.getByIdx(idxOper).Rows.Count == 0)
{
setCtrlState(false);
DataProxy.idxDipendente = 0;
orarioBCode = DateTime.Now;
timerConf.Enabled = false;
nextUsrMsg = "...waiting...";
lblMessaggi.Text += " - codice non valido / non trovato.";
pnlAll.CssClass = "stileComandoKo";
}
else
{
setCtrlState(true);
DataProxy.idxDipendente = idxOper;
orarioBCode = DateTime.Now;
DS_Applicazione.DipendentiRow rigaDip = DataProxy.DP.taDipendenti.getByIdx(idxOper)[0];
nextUsrMsg = string.Format("{0} {1} - {2: HH:mm:ss}", rigaDip.Cognome, rigaDip.Nome, orarioBCode);
lblMessaggi.Text += " - impostato dipendente!";
pnlAll.CssClass = "stileComandoOk";
// faccio partire countdown
countDown = SteamWare.memLayer.ML.confReadInt("secTimeoutBCode");
lblCountDown.Text = countDown.ToString();
timerConf.Enabled = true;
}
txtBarcode.Focus();
break;
case tipoCodiceBarcode.matrDipendente:
// fare!!!
txtBarcode.Focus();
break;
case tipoCodiceBarcode.cfDipendente:
// fare!!!
txtBarcode.Focus();
break;
case tipoCodiceBarcode.Comando:
// procedo SOLO se ho cod dipendente
if (DataProxy.DP.taDipendenti.getByIdx(DataProxy.idxDipendente).Rows.Count > 0)
{
timerConf.Enabled = false;
setCtrlState(false);
}
nextUsrMsg = "...waiting...";
// controlla se sia entra/esci (IN/OUT)
if (barcodeIn.ToUpperInvariant() == "CMDIN")
{
// registro ingresso!
registraTimbratura(true);
Response.Redirect(paginaCorrente);
}
else if (barcodeIn.ToUpperInvariant() == "CMDOUT")
{
// registro uscita!
registraTimbratura(false);
Response.Redirect(paginaCorrente);
}
//else if (barcodeIn.ToUpperInvariant() == "CMD")
//{
// Response.Redirect(paginaCorrente);
//}
//DataProxy.idxDipendente = -1;
txtBarcode.Focus();
break;
default:
txtBarcode.Focus();
break;
}
barcodeIn = "";
}
else
{
lblMessaggi.Text = "...attesa barcode...";
}
grView.DataBind();
checkButtons();
txtBarcode.Focus();
break;
default:
txtBarcode.Focus();
break;
}
barcodeIn = "";
}
else
{
lblMessaggi.Text = "...attesa barcode...";
}
grView.DataBind();
checkButtons();
txtBarcode.Focus();
}
/// <summary>
/// valore barcode
/// </summary>
public string barcodeIn
{
get
{
return txtBarcode.Text.Trim();
}
set
{
txtBarcode.Text = value;
}
}
/// <summary>
/// salvo entrata
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnEntrata_Click(object sender, EventArgs e)
{
// salvo entrata...
registraTimbratura(true);
Response.Redirect(paginaCorrente);
}
/// <summary>
/// salvo uscita
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnUscita_Click(object sender, EventArgs e)
{
// salvo uscita
registraTimbratura(false);
Response.Redirect(paginaCorrente);
}
/// <summary>
/// registro timbratura
/// </summary>
/// <param name="isEntrata"></param>
/// <returns></returns>
private void registraTimbratura(bool isEntrata)
{
// salvo evento entrata...
string IPv4 = Request.UserHostName;
// auto-approvazione da web.config
bool approvata = memLayer.ML.confReadBool("barcodeAutoApprove");
if (DataProxy.idxDipendente > 0)
{
string CognomeNome = "";
if (memLayer.ML.confReadBool("showNameAfterCmd"))
/// <summary>
/// valore barcode
/// </summary>
public string barcodeIn
{
CognomeNome = DataProxy.DP.CognomeNomeByIdx(DataProxy.idxDipendente);
get
{
return txtBarcode.Text.Trim();
}
set
{
txtBarcode.Text = value;
}
}
if (nextIsEntrata)
/// <summary>
/// salvo entrata
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnEntrata_Click(object sender, EventArgs e)
{
nextUsrMsg = string.Format("{1} ENTRATA {0:HH:mm:ss}", orarioBCode, CognomeNome);
// salvo entrata...
registraTimbratura(true);
Response.Redirect(paginaCorrente);
}
else
/// <summary>
/// salvo uscita
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnUscita_Click(object sender, EventArgs e)
{
nextUsrMsg = string.Format("{1} USCITA {0:HH:mm:ss}", orarioBCode, CognomeNome);
// salvo uscita
registraTimbratura(false);
Response.Redirect(paginaCorrente);
}
timbratrice.registraTimbratura(DataProxy.idxDipendente, orarioBCode, isEntrata, IPv4, "Web", approvata);
//aggiorno timbrature visualizzate
setButtons();
grView.DataBind();
}
else
{
lblMessaggi.Text = "IdxDipendente non trovato! timbratura impossibile";
pnlAll.CssClass = "stileComandoND";
}
}
/// <summary>
/// imposta i buttons secondo i valori in sessione...
/// </summary>
private void setButtons()
{
// mostrare e abilitare secondo condizioni al contorno
}
/// <summary>
/// decodifica il tipo barcode acquisito
/// </summary>
public tipoCodiceBarcode tipoBCode
{
get
{
tipoCodiceBarcode answ = tipoCodiceBarcode.ND;
// controllo non si tratti di un comando...
string preCmd = memLayer.ML.confReadString("prefComandi");
if (barcodeIn.StartsWith(preCmd, StringComparison.InvariantCultureIgnoreCase))
/// <summary>
/// registro timbratura
/// </summary>
/// <param name="isEntrata"></param>
/// <returns></returns>
private void registraTimbratura(bool isEntrata)
{
answ = tipoCodiceBarcode.Comando;
// salvo evento entrata...
string IPv4 = Request.UserHostName;
// auto-approvazione da web.config
bool approvata = memLayer.ML.confReadBool("barcodeAutoApprove");
if (DataProxy.idxDipendente > 0)
{
string CognomeNome = "";
if (memLayer.ML.confReadBool("showNameAfterCmd"))
{
CognomeNome = DataProxy.DP.CognomeNomeByIdx(DataProxy.idxDipendente);
}
if (nextIsEntrata)
{
nextUsrMsg = string.Format("{1} ENTRATA {0:HH:mm:ss}", orarioBCode, CognomeNome);
}
else
{
nextUsrMsg = string.Format("{1} USCITA {0:HH:mm:ss}", orarioBCode, CognomeNome);
}
timbratrice.registraTimbratura(DataProxy.idxDipendente, orarioBCode, isEntrata, IPv4, "Web", approvata);
//aggiorno timbrature visualizzate
setButtons();
grView.DataBind();
}
else
{
lblMessaggi.Text = "IdxDipendente non trovato! timbratura impossibile";
pnlAll.CssClass = "stileComandoND";
}
}
// controllo se sia un codice "idx"
else if (barcodeIn.StartsWith("idx", StringComparison.InvariantCultureIgnoreCase))
/// <summary>
/// imposta i buttons secondo i valori in sessione...
/// </summary>
private void setButtons()
{
answ = tipoCodiceBarcode.idxDipendente;
// mostrare e abilitare secondo condizioni al contorno
}
// controllo se sia un codice "matr"
else if (barcodeIn.StartsWith("matr", StringComparison.InvariantCultureIgnoreCase))
/// <summary>
/// decodifica il tipo barcode acquisito
/// </summary>
public tipoCodiceBarcode tipoBCode
{
answ = tipoCodiceBarcode.matrDipendente;
get
{
tipoCodiceBarcode answ = tipoCodiceBarcode.ND;
// controllo non si tratti di un comando...
string preCmd = memLayer.ML.confReadString("prefComandi");
if (barcodeIn.StartsWith(preCmd, StringComparison.InvariantCultureIgnoreCase))
{
answ = tipoCodiceBarcode.Comando;
}
// controllo se sia un codice "idx"
else if (barcodeIn.StartsWith("idx", StringComparison.InvariantCultureIgnoreCase))
{
answ = tipoCodiceBarcode.idxDipendente;
}
// controllo se sia un codice "matr"
else if (barcodeIn.StartsWith("matr", StringComparison.InvariantCultureIgnoreCase))
{
answ = tipoCodiceBarcode.matrDipendente;
}
// controllo se sia un codice "cf"
else if (barcodeIn.StartsWith("cf", StringComparison.InvariantCultureIgnoreCase))
{
answ = tipoCodiceBarcode.cfDipendente;
}
return answ;
}
}
// controllo se sia un codice "cf"
else if (barcodeIn.StartsWith("cf", StringComparison.InvariantCultureIgnoreCase))
/// <summary>
/// inverte valore booleano
/// </summary>
/// <param name="isEnt"></param>
/// <returns></returns>
public bool invBool(object valore)
{
answ = tipoCodiceBarcode.cfDipendente;
bool answ = true;
try
{
answ = !Convert.ToBoolean(valore);
}
catch
{ }
return answ;
}
/// <summary>
/// evento cambio testo
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void txtBarcode_TextChanged(object sender, EventArgs e)
{
// solo se ho ALMENO 3 char...
if (barcodeIn.Length >= 3)
{
contatorePag = 0;
checkBarcode();
}
}
return answ;
}
}
/// <summary>
/// inverte valore booleano
/// </summary>
/// <param name="isEnt"></param>
/// <returns></returns>
public bool invBool(object valore)
{
bool answ = true;
try
{
answ = !Convert.ToBoolean(valore);
}
catch
{ }
return answ;
}
/// <summary>
/// evento cambio testo
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void txtBarcode_TextChanged(object sender, EventArgs e)
{
// solo se ho ALMENO 3 char...
if (barcodeIn.Length >= 3)
{
contatorePag = 0;
checkBarcode();
}
}
/// <summary>
/// variabile che conta numero di refresh parziali prima di fare reload completo
/// </summary>
protected int contatorePag
{
get
{
return memLayer.ML.IntSessionObj("numChiamatePaginaBCode");
}
set
{
memLayer.ML.setSessionVal("numChiamatePaginaBCode", value);
}
}
/// <summary>
/// variabile che conta numero di refresh parziali prima di fare reload completo
/// </summary>
protected int contatorePag
{
get
{
return memLayer.ML.IntSessionObj("numChiamatePaginaBCode");
}
set
{
memLayer.ML.setSessionVal("numChiamatePaginaBCode", value);
}
}
}
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -36,7 +36,7 @@
<package id="SharpZipLib" version="1.2.0" targetFramework="net462" />
<package id="Snappy.NET" version="1.1.1.8" targetFramework="net462" />
<package id="StackExchange.Redis" version="2.1.58" targetFramework="net462" />
<package id="SteamWare" version="4.1.2008.736" targetFramework="net462" />
<package id="SteamWare" version="4.1.2009.737" targetFramework="net462" />
<package id="System.Buffers" version="4.5.1" targetFramework="net462" />
<package id="System.Diagnostics.PerformanceCounter" version="4.7.0" targetFramework="net462" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
Binary file not shown.
Binary file not shown.
+13 -14
View File
@@ -24,7 +24,8 @@
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<Use64BitIISExpress />
<TypeScriptToolsVersion>3.5</TypeScriptToolsVersion>
<TypeScriptToolsVersion>3.9</TypeScriptToolsVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -119,8 +120,8 @@
<Reference Include="StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46, processorArchitecture=MSIL">
<HintPath>..\packages\StackExchange.Redis.2.1.58\lib\net461\StackExchange.Redis.dll</HintPath>
</Reference>
<Reference Include="SteamWare, Version=4.1.2008.736, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SteamWare.4.1.2008.736\lib\net462\SteamWare.dll</HintPath>
<Reference Include="SteamWare, Version=4.1.2009.737, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SteamWare.4.1.2009.737\lib\net462\SteamWare.dll</HintPath>
</Reference>
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
@@ -128,14 +129,13 @@
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Diagnostics.PerformanceCounter, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.PerformanceCounter.4.7.0\lib\net461\System.Diagnostics.PerformanceCounter.dll</HintPath>
</Reference>
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<!-- <Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
</Reference>
</Reference> -->
<Reference Include="System.IO.Pipelines, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Pipelines.4.7.2\lib\net461\System.IO.Pipelines.dll</HintPath>
</Reference>
@@ -145,7 +145,6 @@
<Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.Formatting, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll</HintPath>
@@ -160,7 +159,6 @@
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
@@ -169,12 +167,10 @@
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
@@ -197,7 +193,6 @@
<Reference Include="System.Web.Http.WebHost, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.7\lib\net45\System.Web.Http.WebHost.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
@@ -227,6 +222,7 @@
<Reference Include="Microsoft.AspNet.FriendlyUrls">
<HintPath>..\packages\Microsoft.AspNet.FriendlyUrls.Core.1.0.2\lib\net45\Microsoft.AspNet.FriendlyUrls.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
<Private>True</Private>
@@ -256,6 +252,9 @@
<Content Include="Content\bootstrap-reboot.css.map" />
<Content Include="Content\bootstrap-grid.min.css.map" />
<Content Include="Content\bootstrap-grid.css.map" />
<Content Include="..\.editorconfig">
<Link>.editorconfig</Link>
</Content>
<Content Include="App_Readme\SteamWare_demo\example-NLog.config" />
<Content Include="App_Readme\SteamWare_demo\example-app.config" />
<None Include="Content\BuildBlocks.less" />
@@ -333,9 +332,6 @@
<Content Include="Content\themes\base\tabs.css" />
<Content Include="Content\themes\base\theme.css" />
<Content Include="Content\themes\base\tooltip.css" />
<Content Include="Core\Compression\Snappy\lib\win\snappy32.dll" />
<Content Include="Core\Compression\Snappy\lib\win\snappy64.dll" />
<Content Include="Core\Compression\Zstandard\lib\win\libzstd.dll" />
<Content Include="fonts\fontawesome-webfont.svg" />
<Content Include="images\ajax-loader.gif" />
<Content Include="images\back_l.png" />
@@ -368,6 +364,7 @@
<Content Include="images\StatoOk_l.png" />
<Content Include="images\StatoOk_m.png" />
<Content Include="images\StatoOk_s.png" />
<Content Include="libzstd.dll" />
<Content Include="login.aspx" />
<Content Include="logs\PlaceHolder.file" />
<None Include="bundleconfig.json" />
@@ -486,6 +483,8 @@
<Content Include="Scripts\umd\popper-utils.min.js" />
<Content Include="Scripts\umd\popper.js" />
<Content Include="Scripts\umd\popper.min.js" />
<Content Include="snappy32.dll" />
<Content Include="snappy64.dll" />
<Content Include="test01.aspx" />
<Content Include="WebMasterPages\AjaxSimpleFull.Master" />
<Content Include="WebUserControls\cmp_chart.ascx" />
+226 -221
View File
@@ -4,82 +4,86 @@
http://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" />
<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>
<!--
Per una descrizione delle modifiche al file web.config, vedere il sito Web all'indirizzo http://go.microsoft.com/fwlink/?LinkId=235367.
<add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" /></controls>
</pages>
<customErrors mode="Off" />
<globalization culture="it-IT" enableClientBasedCulture="true" uiCulture="it" />
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
<sessionState mode="Custom" customProvider="MySessionStateStore">
<providers>
<!-- For more details check https://github.com/Azure/aspnet-redis-providers/wiki -->
<add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="127.0.0.1" accessKey="" ssl="false" applicationName="GPW_WRKLG" />
</providers>
</sessionState>
</system.web>
<appSettings>
<!--Impostazione gestione serializzazione variabili in sessione (es per Redis)-->
<add key="serializeSession" value="true" />
<!--Conf generale-->
<add key="appName" value="GPW" />
<add key="titleApp" value="GPW" />
<add key="welcomeApp" value="GPW_welcome" />
<add key="SiteName" value="Steamware" />
<!--<add key="mainRev" value="1.8"/>
Gli attributi seguenti possono essere impostati sul tag <httpRuntime>.
<system.Web>
<httpRuntime targetFramework="4.7.2" />
</system.Web>
-->
<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>
<customErrors mode="Off" />
<globalization culture="it-IT" enableClientBasedCulture="true" uiCulture="it" />
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
<sessionState mode="Custom" customProvider="MySessionStateStore">
<providers>
<!-- For more details check https://github.com/Azure/aspnet-redis-providers/wiki -->
<add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="127.0.0.1" accessKey="" ssl="false" applicationName="GPW_WRKLG" />
</providers>
</sessionState>
</system.web>
<appSettings>
<!--Impostazione gestione serializzazione variabili in sessione (es per Redis)-->
<add key="serializeSession" value="true" />
<!--Conf generale-->
<add key="appName" value="GPW" />
<add key="titleApp" value="GPW" />
<add key="welcomeApp" value="GPW_welcome" />
<add key="SiteName" value="Steamware" />
<!--<add key="mainRev" value="1.8"/>
<add key="minRev" value="375"/>-->
<add key="copyRight" value="SteamWare" />
<add key="CodModulo" value="GPW" />
<add key="_safePages" value="unauthorized#forceUser#login#login#test#Test" />
<!--Ottimizzazioni liberie esterne-->
<add key="EnableCdnAjax" value="false" />
<add key="EnableCdnJQ" value="false" />
<!--Gestione forzatura priam timbratura ad entrata-->
<add key="firstIsIN" value="true" />
<!--Gestione notifiche anomalie-->
<add key="adminAnomalieEmail" value="samuele@steamware.net" />
<add key="adminContinuatoEmail" value="samuele@steamware.net" />
<add key="adminOreLavEmail" value="samuele@steamware.net" />
<add key="gg2Chk" value="60" />
<add key="gg2ChkCont" value="30" />
<add key="gg2ChkOreCaricate" value="30" />
<add key="checkAnomTimb" value="true" />
<add key="checkAnomAppr" value="true" />
<add key="checkAnomOreLav" value="true" />
<add key="checkAnomOreLavComm" value="true" />
<add key="checkAnomContinuato" value="true" />
<add key="sendEmailToUser" value="true" />
<add key="firstHour2Check" value="6" />
<add key="enableDailyCheck" value="true" />
<!--Timeout vari-->
<add key="intUpdatePagina_ms" value="120000" />
<add key="intUpdateFooter_ms" value="1000" />
<add key="maxRefreshToReload" value="30" />
<!--Abilitazione link timbrature-->
<add key="showRepTimb" value="true" />
<!--Gestione Barcode-->
<!--<add key="secTimeoutBCode" value="8" />
<add key="copyRight" value="SteamWare" />
<add key="CodModulo" value="GPW" />
<add key="_safePages" value="unauthorized#forceUser#login#login#test#Test" />
<!--Gestione forzatura priam timbratura ad entrata-->
<add key="firstIsIN" value="true" />
<!--Gestione notifiche anomalie-->
<add key="adminAnomalieEmail" value="samuele@steamware.net" />
<add key="adminContinuatoEmail" value="samuele@steamware.net" />
<add key="adminOreLavEmail" value="samuele@steamware.net" />
<add key="gg2Chk" value="60" />
<add key="gg2ChkCont" value="30" />
<add key="gg2ChkOreCaricate" value="30" />
<add key="checkAnomTimb" value="true" />
<add key="checkAnomAppr" value="true" />
<add key="checkAnomOreLav" value="true" />
<add key="checkAnomOreLavComm" value="true" />
<add key="checkAnomContinuato" value="true" />
<add key="sendEmailToUser" value="true" />
<add key="firstHour2Check" value="6" />
<add key="enableDailyCheck" value="true" />
<!--Timeout vari-->
<add key="intUpdatePagina_ms" value="120000" />
<add key="intUpdateFooter_ms" value="1000" />
<add key="maxRefreshToReload" value="30" />
<!--Abilitazione link timbrature-->
<add key="showRepTimb" value="true" />
<!--Gestione Barcode-->
<!--<add key="secTimeoutBCode" value="8" />
<add key="prefComandi" value="CMD" />
<add key="prefIdx" value="idx" />
<add key="prefMatr" value="matr" />
@@ -88,158 +92,159 @@
<add key="uscita" value="CMDOUT" />
<add key="ipv4StazBCode" value="*" />
<add key="showNameAfterCmd" value="true" />-->
<!--ricerca autocomplete-->
<add key="maxNumSuggest" value="30" />
<!--Logging-->
<add key="_logDir" value="~/logs/" />
<add key="doShrinkFolder" value="true" />
<add key="_logLevel" value="6" />
<add key="_logMaxMb" value="30" />
<!--Definizione default x registrazione commesse-->
<add key="defRegAttMin" value="60" />
<add key="maxErr" value="30" />
<add key="maxErrMin" value="-30" />
<add key="maxErrPlus" value="91" />
<!--default visualizzazione timbrature-->
<add key="reviewShowCN" value="true" />
<add key="reviewShowOreMin" value="false" />
<add key="reviewShowStraord" value="true" />
<!--gestione warning x calcolo real/budget-->
<add key="warningRatioPerc" value="80" />
<!--Definizione URL e rete locale-->
<add key="localNet" value="10.74.82" />
<add key="dhcpLeaseTime" value="15" />
<!--Conf x grafici a barre-->
<add key="maxBarplotLargh" value="1000" />
<!--Conf attivazione funzionalità opzionali-->
<add key="barcodeAutoApprove" value="true" />
<add key="regAttEnabled" value="true" />
<!--Gestione selettore periodo-->
<add key="defDayFrom" value="-10" />
<add key="mostraSelOra" value="false" />
<!--Timbratrice x Zucchetti-->
<add key="codTimbra" value="90" />
<!--Gestione email-->
<add key="_fromEmail" value="steamwarebot@gmail.com" />
<add key="_smtpCli" value="smtp.gmail.com" />
<add key="_emailUser" value="steamwarebot@gmail.com" />
<add key="_emailPwd" value="drmfsls16" />
<add key="_enableSSL" value="true" />
<!--gestione tac cloud-->
<add key="TagCloudMode" value="elenco" />
<!--Gestione auth dispositivi mobile-->
<add key="authKey" value="keyhammer" />
<add key="baseUrl" value="http://iis02/GPW/" />
<add key="baseWebUrl" value="http://seriate.steamware.net:8083/GPW/" />
<add key="GpwSmartUrl" value="../../GPW/SMART" />
<add key="GpwBCodeUrl" value="../../GPW/BCODE" />
<!--Gestione SSRS-->
<add key="reportBaseUrl" value="http://sql-steam/ReportServer?/Steamware/" />
<!--COnf DB-->
<add key="PermessiConnectionString" value="Data Source=SQL-STEAM\SQL2012;Initial Catalog=GPW;Persist Security Info=True;User ID=sa;Password=keyhammer" />
<add key="UtenteCdcConnectionString" value="Data Source=SQL-STEAM\SQL2012;Initial Catalog=Steamware_Anagrafica;Persist Security Info=True;User ID=sa;Password=keyhammer" />
<add key="VocabolarioConnectionString" value="Data Source=SQL-STEAM\SQL2012;Initial Catalog=GPW_vocabolario;Persist Security Info=True;User ID=sa;Password=keyhammer" />
<add key="GPWConnectionString" value="Data Source=SQL-STEAM\SQL2012;Initial Catalog=GPW;Persist Security Info=True;User ID=sa;Password=keyhammer" />
<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" />
</appSettings>
<connectionStrings>
<add name="GPW_data.Properties.Settings.GPWConnectionString" connectionString="Data Source=SQL-STEAM\SQL2012;Initial Catalog=GPW;Persist Security Info=True;User ID=sa;Password=keyhammer" 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.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.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="DnsClient" publicKeyToken="4574bb5573c51424" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.2.0" newVersion="1.3.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SharpCompress" publicKeyToken="afb0a02973931d96" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-0.26.0.0" newVersion="0.26.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.3" newVersion="4.1.1.3" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.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="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.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>
<staticContent>
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
<remove fileExtension=".woff2" />
<mimeMap fileExtension=".woff2" mimeType="application/x-font-woff" />
<remove fileExtension=".svg" />
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
<!--ricerca autocomplete-->
<add key="maxNumSuggest" value="30" />
<!--Logging-->
<add key="_logDir" value="~/logs/" />
<add key="doShrinkFolder" value="true" />
<add key="_logLevel" value="6" />
<add key="_logMaxMb" value="30" />
<!--Definizione default x registrazione commesse-->
<add key="defRegAttMin" value="60" />
<add key="maxErr" value="30" />
<add key="maxErrMin" value="-30" />
<add key="maxErrPlus" value="91" />
<!--default visualizzazione timbrature-->
<add key="reviewShowCN" value="true" />
<add key="reviewShowOreMin" value="false" />
<add key="reviewShowStraord" value="true" />
<!--gestione warning x calcolo real/budget-->
<add key="warningRatioPerc" value="80" />
<!--Definizione URL e rete locale-->
<add key="localNet" value="10.74.82" />
<add key="dhcpLeaseTime" value="15" />
<!--Conf x grafici a barre-->
<add key="maxBarplotLargh" value="1000" />
<!--Conf attivazione funzionalità opzionali-->
<add key="barcodeAutoApprove" value="true" />
<add key="regAttEnabled" value="true" />
<!--Gestione selettore periodo-->
<add key="defDayFrom" value="-10" />
<add key="mostraSelOra" value="false" />
<!--Timbratrice x Zucchetti-->
<add key="codTimbra" value="90" />
<!--Gestione email-->
<add key="_fromEmail" value="steamwarebot@gmail.com" />
<add key="_smtpCli" value="smtp.gmail.com" />
<add key="_emailUser" value="steamwarebot@gmail.com" />
<add key="_emailPwd" value="drmfsls16" />
<add key="_enableSSL" value="true" />
<!--gestione tac cloud-->
<add key="TagCloudMode" value="elenco" />
<!--Gestione auth dispositivi mobile-->
<add key="authKey" value="keyhammer" />
<add key="baseUrl" value="http://iis02/GPW/" />
<add key="baseWebUrl" value="http://seriate.steamware.net:8083/GPW/" />
<add key="GpwSmartUrl" value="../../GPW/SMART" />
<add key="GpwBCodeUrl" value="../../GPW/BCODE" />
<!--Gestione SSRS-->
<add key="reportBaseUrl" value="http://sql-steam/ReportServer?/Steamware/" />
<!--COnf DB-->
<add key="PermessiConnectionString" value="Data Source=SQL-STEAM\SQL2012;Initial Catalog=GPW;Persist Security Info=True;User ID=sa;Password=keyhammer" />
<add key="UtenteCdcConnectionString" value="Data Source=SQL-STEAM\SQL2012;Initial Catalog=Steamware_Anagrafica;Persist Security Info=True;User ID=sa;Password=keyhammer" />
<add key="VocabolarioConnectionString" value="Data Source=SQL-STEAM\SQL2012;Initial Catalog=GPW_vocabolario;Persist Security Info=True;User ID=sa;Password=keyhammer" />
<add key="GPWConnectionString" value="Data Source=SQL-STEAM\SQL2012;Initial Catalog=GPW;Persist Security Info=True;User ID=sa;Password=keyhammer" />
<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" />
</appSettings>
<connectionStrings>
<add name="GPW_data.Properties.Settings.GPWConnectionString" connectionString="Data Source=SQL-STEAM\SQL2012;Initial Catalog=GPW;Persist Security Info=True;User ID=sa;Password=keyhammer" 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.IO.Compression" publicKeyToken="B77A5C561934E089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.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.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="DnsClient" publicKeyToken="4574bb5573c51424" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.2.0" newVersion="1.3.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SharpCompress" publicKeyToken="afb0a02973931d96" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-0.26.0.0" newVersion="0.26.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.3" newVersion="4.1.1.3" />
</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.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.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="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
</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>
<staticContent>
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
<remove fileExtension=".woff2" />
<mimeMap fileExtension=".woff2" mimeType="application/x-font-woff" />
<remove fileExtension=".svg" />
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
<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>
</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>
<!--<location path="~/Controllers">
</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>
</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>
<!--<location path="~/Controllers">
<system.web>
<authorization>
<allow users="?"/>
@@ -61,7 +61,7 @@ namespace GPW_Commesse.WebUserControls
protected void txtSel_TextChanged(object sender, EventArgs e)
{
if (txtSel.Text.Trim() == "")
if (string.IsNullOrEmpty(txtSel.Text.Trim()))
{
hiddenFieldID.Text = defaultVal;
_valore = defaultVal;
@@ -130,7 +130,7 @@ namespace GPW_Commesse.WebUserControls
{
answ = txtSel.Text.Trim();
}
if (answ == "")
if (string.IsNullOrEmpty(answ))
{
answ = txtSel.Text.Trim();
}
File diff suppressed because it is too large Load Diff
@@ -54,7 +54,7 @@ namespace GPW_Commesse.WebUserControls
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)// || txtData.Text == "")
if (!Page.IsPostBack)
{
setInitVal();
valoreDateTime = dataOra;
@@ -32,7 +32,7 @@ public partial class mod_filtro : ApplicationUserControl
{
get
{
bool answ=false;
bool answ = false;
try
{
memLayer.ML.isInSessionObject(string.Format("valFiltro_{0}", this.ID));
@@ -40,7 +40,7 @@ public partial class mod_filtro : ApplicationUserControl
catch
{ }
return answ;
}
}
}
protected bool _changeCheckEnabled = true;
protected bool _changeCheckVisible = true;
@@ -76,8 +76,8 @@ public partial class mod_filtro : ApplicationUserControl
base.OnInit(e);
if (!Page.IsPostBack)
{
if (_showFiltered == "") _showFiltered = "mostraSoloSelez";
if (_showAll == "") _showAll = "mostraTutti";
if (string.IsNullOrEmpty(_showFiltered)) _showFiltered = "mostraSoloSelez";
if (string.IsNullOrEmpty(_showAll)) _showAll = "mostraTutti";
}
}
@@ -296,7 +296,7 @@ public partial class mod_filtro : ApplicationUserControl
{
dlFilt.DataSource = _ods;
dlFilt.DataBind();
if (_valore != "")
if (!string.IsNullOrEmpty(_valore))
{
dlFilt.SelectedValue = _valore;
@@ -304,7 +304,7 @@ public partial class mod_filtro : ApplicationUserControl
chkFilt.Checked = true;
}
}
catch(Exception exc)
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Eccezione:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
dlFilt.SelectedIndex = 0;
@@ -376,7 +376,7 @@ public partial class mod_filtro : ApplicationUserControl
updateChkLbl();
}
}
/// <summary>
/// oggetto ODS con cui popolare il selettore, VINCOLO abbia campi value(key) / label
/// </summary>
@@ -97,7 +97,7 @@ public partial class mod_menuTop : ApplicationUserControl
{
lnkShowHide.Text = user_std.UtSn.Traduci("lnkShowHide");
lblTitle.Text = user_std.UtSn.Traduci(SteamWare.memLayer.ML.confReadString("titleApp"));
if (_titleString != "")
if (!string.IsNullOrEmpty(_titleString))
{
// traduzione di tutti i termini
lblMessUtente.Text = user_std.UtSn.Traduci(_titleString);
@@ -41,7 +41,7 @@ namespace GPW_Commesse.WebUserControls
{
set
{
if (value != "")
if (!string.IsNullOrEmpty(value))
{
memLayer.ML.setSessionVal("returnUrl", value);
lbHome.Visible = true;
@@ -53,7 +53,7 @@ namespace GPW_Commesse.WebUserControls
/// </summary>
private void checkUser()
{
if (user_std.UtSn.CognomeNome == "")
if (string.IsNullOrEmpty(user_std.UtSn.CognomeNome))
{
// fix
memLayer.ML.setSessionVal("preUrlString", "", true);
@@ -19,8 +19,8 @@ public partial class mod_ricercaGenerica : ApplicationUserControl
#endregion
# region area protected
#region area protected
protected override void Page_Load(object sender, EventArgs e)
{
base.Page_Load(sender, e);
@@ -64,7 +64,7 @@ public partial class mod_ricercaGenerica : ApplicationUserControl
/// </summary>
protected void salvaCerca()
{
if (testoRicerca == "")
if (string.IsNullOrEmpty(testoRicerca))
{
SteamWare.memLayer.ML.emptySessionVal("valoreCercato");
}
@@ -88,7 +88,7 @@ public partial class mod_ricercaGenerica : ApplicationUserControl
/// </summary>
public void updateText()
{
if (SteamWare.memLayer.ML.StringSessionObj("valoreCercato") != "" && !Page.IsPostBack)
if (!string.IsNullOrEmpty(memLayer.ML.StringSessionObj("valoreCercato")) && !Page.IsPostBack)
{
testoRicerca = SteamWare.memLayer.ML.StringSessionObj("valoreCercato");
}
Binary file not shown.
+1 -1
View File
@@ -14,7 +14,7 @@ namespace GPW.A4
get
{
string pagina = SteamWare.memLayer.ML.StringSessionObj("nextPage");
if (pagina == "")
if (string.IsNullOrEmpty(pagina))
{
pagina = "commesseUtente";
}
+1 -1
View File
@@ -46,7 +46,7 @@
<package id="SharpZipLib" version="1.2.0" targetFramework="net462" />
<package id="Snappy.NET" version="1.1.1.8" targetFramework="net462" />
<package id="StackExchange.Redis" version="2.1.58" targetFramework="net462" />
<package id="SteamWare" version="4.1.2008.736" targetFramework="net462" />
<package id="SteamWare" version="4.1.2009.737" targetFramework="net462" />
<package id="System.Buffers" version="4.5.1" targetFramework="net462" />
<package id="System.Diagnostics.PerformanceCounter" version="4.7.0" targetFramework="net462" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
Binary file not shown.
Binary file not shown.
+38 -15
View File
@@ -26126,7 +26126,7 @@ SELECT idxRA, idxDipendente, idxFase, inizio, fine, descrizione, oreTot, importo
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
private void InitCommandCollection() {
this._commandCollection = new global::System.Data.SqlClient.SqlCommand[9];
this._commandCollection = new global::System.Data.SqlClient.SqlCommand[10];
this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand();
this._commandCollection[0].Connection = this.Connection;
this._commandCollection[0].CommandText = "SELECT idxRA, idxDipendente, idxFase, inizio, fine, descrizione, oreTot, i" +
@@ -26171,30 +26171,36 @@ SELECT idxRA, idxDipendente, idxFase, inizio, fine, descrizione, oreTot, importo
this._commandCollection[5].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@dataTo", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 23, 3, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[6] = new global::System.Data.SqlClient.SqlCommand();
this._commandCollection[6].Connection = this.Connection;
this._commandCollection[6].CommandText = "dbo.stp_RA_getByKey";
this._commandCollection[6].CommandText = "dbo.stp_RA_getByIdxFase";
this._commandCollection[6].CommandType = global::System.Data.CommandType.StoredProcedure;
this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RETURN_VALUE", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.ReturnValue, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idxRA", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idxFase", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[7] = new global::System.Data.SqlClient.SqlCommand();
this._commandCollection[7].Connection = this.Connection;
this._commandCollection[7].CommandText = "dbo.stp_ricalcolaRegAttivitaExpl_byPeriodoUser";
this._commandCollection[7].CommandText = "dbo.stp_RA_getByKey";
this._commandCollection[7].CommandType = global::System.Data.CommandType.StoredProcedure;
this._commandCollection[7].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RETURN_VALUE", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.ReturnValue, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[7].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idxDipendente", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[7].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@inizio", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 23, 3, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[7].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@fine", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 23, 3, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[7].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idxRA", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[8] = new global::System.Data.SqlClient.SqlCommand();
this._commandCollection[8].Connection = this.Connection;
this._commandCollection[8].CommandText = "dbo.stp_RA_updateQuery";
this._commandCollection[8].CommandText = "dbo.stp_ricalcolaRegAttivitaExpl_byPeriodoUser";
this._commandCollection[8].CommandType = global::System.Data.CommandType.StoredProcedure;
this._commandCollection[8].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RETURN_VALUE", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.ReturnValue, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[8].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idxDipendente", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[8].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idxFase", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[8].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@inizio", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 23, 3, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[8].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@fine", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 23, 3, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[8].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@descrizione", global::System.Data.SqlDbType.NVarChar, 500, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[8].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@importo", global::System.Data.SqlDbType.Decimal, 9, global::System.Data.ParameterDirection.Input, 19, 4, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[8].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idxRA", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[9] = new global::System.Data.SqlClient.SqlCommand();
this._commandCollection[9].Connection = this.Connection;
this._commandCollection[9].CommandText = "dbo.stp_RA_updateQuery";
this._commandCollection[9].CommandType = global::System.Data.CommandType.StoredProcedure;
this._commandCollection[9].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RETURN_VALUE", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.ReturnValue, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[9].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idxDipendente", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[9].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idxFase", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[9].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@inizio", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 23, 3, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[9].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@fine", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 23, 3, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[9].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@descrizione", global::System.Data.SqlDbType.NVarChar, 500, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[9].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@importo", global::System.Data.SqlDbType.Decimal, 9, global::System.Data.ParameterDirection.Input, 19, 4, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
this._commandCollection[9].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idxRA", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
@@ -26254,8 +26260,25 @@ SELECT idxRA, idxDipendente, idxFase, inizio, fine, descrizione, oreTot, importo
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
[global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")]
[global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)]
public virtual DS_Applicazione.RegAttivitaDataTable getByKey(global::System.Nullable<int> idxRA) {
public virtual DS_Applicazione.RegAttivitaDataTable getByFase(global::System.Nullable<int> idxFase) {
this.Adapter.SelectCommand = this.CommandCollection[6];
if ((idxFase.HasValue == true)) {
this.Adapter.SelectCommand.Parameters[1].Value = ((int)(idxFase.Value));
}
else {
this.Adapter.SelectCommand.Parameters[1].Value = global::System.DBNull.Value;
}
DS_Applicazione.RegAttivitaDataTable dataTable = new DS_Applicazione.RegAttivitaDataTable();
this.Adapter.Fill(dataTable);
return dataTable;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
[global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")]
[global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)]
public virtual DS_Applicazione.RegAttivitaDataTable getByKey(global::System.Nullable<int> idxRA) {
this.Adapter.SelectCommand = this.CommandCollection[7];
if ((idxRA.HasValue == true)) {
this.Adapter.SelectCommand.Parameters[1].Value = ((int)(idxRA.Value));
}
@@ -26605,7 +26628,7 @@ SELECT idxRA, idxDipendente, idxFase, inizio, fine, descrizione, oreTot, importo
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
[global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")]
public virtual int stp_ricalcolaRegAttivitaExpl_byPeriodoUser(global::System.Nullable<int> idxDipendente, global::System.Nullable<global::System.DateTime> inizio, global::System.Nullable<global::System.DateTime> fine) {
global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[7];
global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[8];
if ((idxDipendente.HasValue == true)) {
command.Parameters[1].Value = ((int)(idxDipendente.Value));
}
@@ -26646,7 +26669,7 @@ SELECT idxRA, idxDipendente, idxFase, inizio, fine, descrizione, oreTot, importo
[global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")]
[global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, false)]
public virtual int updateQuery(global::System.Nullable<int> idxDipendente, global::System.Nullable<int> idxFase, global::System.Nullable<global::System.DateTime> inizio, global::System.Nullable<global::System.DateTime> fine, string descrizione, global::System.Nullable<decimal> importo, global::System.Nullable<int> Original_idxRA) {
global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[8];
global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[9];
if ((idxDipendente.HasValue == true)) {
command.Parameters[1].Value = ((int)(idxDipendente.Value));
}
+40 -29
View File
@@ -1939,6 +1939,17 @@ SELECT idxRA, idxDipendente, idxFase, inizio, fine, descrizione, oreTot, importo
</DbCommand>
</SelectCommand>
</DbSource>
<DbSource ConnectionRef="GPWConnectionString (Settings)" DbObjectName="GPW.dbo.stp_RA_getByIdxFase" DbObjectType="StoredProcedure" GenerateMethods="Get" GenerateShortCommands="true" GeneratorGetMethodName="getByFase" GetMethodModifier="Public" GetMethodName="getByFase" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="getByFase" UserSourceName="getByFase">
<SelectCommand>
<DbCommand CommandType="StoredProcedure" ModifiedByUser="false">
<CommandText>dbo.stp_RA_getByIdxFase</CommandText>
<Parameters>
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="ReturnValue" ParameterName="@RETURN_VALUE" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@idxFase" Precision="10" ProviderType="Int" Scale="0" Size="4" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</SelectCommand>
</DbSource>
<DbSource ConnectionRef="GPWConnectionString (Settings)" DbObjectName="GPW.dbo.stp_RA_getByKey" DbObjectType="StoredProcedure" GenerateMethods="Get" GenerateShortCommands="true" GeneratorGetMethodName="getByKey" GetMethodModifier="Public" GetMethodName="getByKey" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="getByKey" UserSourceName="getByKey">
<SelectCommand>
<DbCommand CommandType="StoredProcedure" ModifiedByUser="false">
@@ -2866,7 +2877,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
<xs:element name="DS_Applicazione" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DS_Applicazione" msprop:Generator_UserDSName="DS_Applicazione">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Timbrature" msprop:Generator_TableClassName="TimbratureDataTable" msprop:Generator_TableVarName="tableTimbrature" msprop:Generator_TablePropName="Timbrature" msprop:Generator_RowDeletingName="TimbratureRowDeleting" msprop:Generator_RowChangingName="TimbratureRowChanging" msprop:Generator_RowEvHandlerName="TimbratureRowChangeEventHandler" msprop:Generator_RowDeletedName="TimbratureRowDeleted" msprop:Generator_UserTableName="Timbrature" msprop:Generator_RowChangedName="TimbratureRowChanged" msprop:Generator_RowEvArgName="TimbratureRowChangeEvent" msprop:Generator_RowClassName="TimbratureRow">
<xs:element name="Timbrature" msprop:Generator_TableClassName="TimbratureDataTable" msprop:Generator_TableVarName="tableTimbrature" msprop:Generator_RowChangedName="TimbratureRowChanged" msprop:Generator_TablePropName="Timbrature" msprop:Generator_RowDeletingName="TimbratureRowDeleting" msprop:Generator_RowChangingName="TimbratureRowChanging" msprop:Generator_RowEvHandlerName="TimbratureRowChangeEventHandler" msprop:Generator_RowDeletedName="TimbratureRowDeleted" msprop:Generator_RowClassName="TimbratureRow" msprop:Generator_UserTableName="Timbrature" msprop:Generator_RowEvArgName="TimbratureRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="dataOra" msprop:Generator_ColumnVarNameInTable="columndataOra" msprop:Generator_ColumnPropNameInRow="dataOra" msprop:Generator_ColumnPropNameInTable="dataOraColumn" msprop:Generator_UserColumnName="dataOra" type="xs:dateTime" />
@@ -2890,7 +2901,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TimbratureExpl" msprop:Generator_TableClassName="TimbratureExplDataTable" msprop:Generator_TableVarName="tableTimbratureExpl" msprop:Generator_TablePropName="TimbratureExpl" msprop:Generator_RowDeletingName="TimbratureExplRowDeleting" msprop:Generator_RowChangingName="TimbratureExplRowChanging" msprop:Generator_RowEvHandlerName="TimbratureExplRowChangeEventHandler" msprop:Generator_RowDeletedName="TimbratureExplRowDeleted" msprop:Generator_UserTableName="TimbratureExpl" msprop:Generator_RowChangedName="TimbratureExplRowChanged" msprop:Generator_RowEvArgName="TimbratureExplRowChangeEvent" msprop:Generator_RowClassName="TimbratureExplRow">
<xs:element name="TimbratureExpl" msprop:Generator_TableClassName="TimbratureExplDataTable" msprop:Generator_TableVarName="tableTimbratureExpl" msprop:Generator_RowChangedName="TimbratureExplRowChanged" msprop:Generator_TablePropName="TimbratureExpl" msprop:Generator_RowDeletingName="TimbratureExplRowDeleting" msprop:Generator_RowChangingName="TimbratureExplRowChanging" msprop:Generator_RowEvHandlerName="TimbratureExplRowChangeEventHandler" msprop:Generator_RowDeletedName="TimbratureExplRowDeleted" msprop:Generator_RowClassName="TimbratureExplRow" msprop:Generator_UserTableName="TimbratureExpl" msprop:Generator_RowEvArgName="TimbratureExplRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="dataLav" msprop:Generator_ColumnVarNameInTable="columndataLav" msprop:Generator_ColumnPropNameInRow="dataLav" msprop:Generator_ColumnPropNameInTable="dataLavColumn" msprop:Generator_UserColumnName="dataLav" type="xs:dateTime" />
@@ -2947,7 +2958,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AnagDevices" msprop:Generator_TableClassName="AnagDevicesDataTable" msprop:Generator_TableVarName="tableAnagDevices" msprop:Generator_TablePropName="AnagDevices" msprop:Generator_RowDeletingName="AnagDevicesRowDeleting" msprop:Generator_RowChangingName="AnagDevicesRowChanging" msprop:Generator_RowEvHandlerName="AnagDevicesRowChangeEventHandler" msprop:Generator_RowDeletedName="AnagDevicesRowDeleted" msprop:Generator_UserTableName="AnagDevices" msprop:Generator_RowChangedName="AnagDevicesRowChanged" msprop:Generator_RowEvArgName="AnagDevicesRowChangeEvent" msprop:Generator_RowClassName="AnagDevicesRow">
<xs:element name="AnagDevices" msprop:Generator_TableClassName="AnagDevicesDataTable" msprop:Generator_TableVarName="tableAnagDevices" msprop:Generator_RowChangedName="AnagDevicesRowChanged" msprop:Generator_TablePropName="AnagDevices" msprop:Generator_RowDeletingName="AnagDevicesRowDeleting" msprop:Generator_RowChangingName="AnagDevicesRowChanging" msprop:Generator_RowEvHandlerName="AnagDevicesRowChangeEventHandler" msprop:Generator_RowDeletedName="AnagDevicesRowDeleted" msprop:Generator_RowClassName="AnagDevicesRow" msprop:Generator_UserTableName="AnagDevices" msprop:Generator_RowEvArgName="AnagDevicesRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="IdxDevice" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnIdxDevice" msprop:Generator_ColumnPropNameInRow="IdxDevice" msprop:Generator_ColumnPropNameInTable="IdxDeviceColumn" msprop:Generator_UserColumnName="IdxDevice" type="xs:int" />
@@ -2985,7 +2996,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Dipendenti" msprop:Generator_TableClassName="DipendentiDataTable" msprop:Generator_TableVarName="tableDipendenti" msprop:Generator_TablePropName="Dipendenti" msprop:Generator_RowDeletingName="DipendentiRowDeleting" msprop:Generator_RowChangingName="DipendentiRowChanging" msprop:Generator_RowEvHandlerName="DipendentiRowChangeEventHandler" msprop:Generator_RowDeletedName="DipendentiRowDeleted" msprop:Generator_UserTableName="Dipendenti" msprop:Generator_RowChangedName="DipendentiRowChanged" msprop:Generator_RowEvArgName="DipendentiRowChangeEvent" msprop:Generator_RowClassName="DipendentiRow">
<xs:element name="Dipendenti" msprop:Generator_TableClassName="DipendentiDataTable" msprop:Generator_TableVarName="tableDipendenti" msprop:Generator_RowChangedName="DipendentiRowChanged" msprop:Generator_TablePropName="Dipendenti" msprop:Generator_RowDeletingName="DipendentiRowDeleting" msprop:Generator_RowChangingName="DipendentiRowChanging" msprop:Generator_RowEvHandlerName="DipendentiRowChangeEventHandler" msprop:Generator_RowDeletedName="DipendentiRowDeleted" msprop:Generator_RowClassName="DipendentiRow" msprop:Generator_UserTableName="Dipendenti" msprop:Generator_RowEvArgName="DipendentiRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="idxDipendente" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnidxDipendente" msprop:Generator_ColumnPropNameInRow="idxDipendente" msprop:Generator_ColumnPropNameInTable="idxDipendenteColumn" msprop:Generator_UserColumnName="idxDipendente" type="xs:int" />
@@ -3113,7 +3124,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AnagClienti" msprop:Generator_TableClassName="AnagClientiDataTable" msprop:Generator_TableVarName="tableAnagClienti" msprop:Generator_RowChangedName="AnagClientiRowChanged" msprop:Generator_TablePropName="AnagClienti" msprop:Generator_RowDeletingName="AnagClientiRowDeleting" msprop:Generator_RowChangingName="AnagClientiRowChanging" msprop:Generator_RowEvHandlerName="AnagClientiRowChangeEventHandler" msprop:Generator_RowDeletedName="AnagClientiRowDeleted" msprop:Generator_RowClassName="AnagClientiRow" msprop:Generator_UserTableName="AnagClienti" msprop:Generator_RowEvArgName="AnagClientiRowChangeEvent">
<xs:element name="AnagClienti" msprop:Generator_TableClassName="AnagClientiDataTable" msprop:Generator_TableVarName="tableAnagClienti" msprop:Generator_TablePropName="AnagClienti" msprop:Generator_RowDeletingName="AnagClientiRowDeleting" msprop:Generator_RowChangingName="AnagClientiRowChanging" msprop:Generator_RowEvHandlerName="AnagClientiRowChangeEventHandler" msprop:Generator_RowDeletedName="AnagClientiRowDeleted" msprop:Generator_UserTableName="AnagClienti" msprop:Generator_RowChangedName="AnagClientiRowChanged" msprop:Generator_RowEvArgName="AnagClientiRowChangeEvent" msprop:Generator_RowClassName="AnagClientiRow">
<xs:complexType>
<xs:sequence>
<xs:element name="idxCliente" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnidxCliente" msprop:Generator_ColumnPropNameInRow="idxCliente" msprop:Generator_ColumnPropNameInTable="idxClienteColumn" msprop:Generator_UserColumnName="idxCliente" type="xs:int" />
@@ -3206,7 +3217,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AnagProgetti" msprop:Generator_TableClassName="AnagProgettiDataTable" msprop:Generator_TableVarName="tableAnagProgetti" msprop:Generator_RowChangedName="AnagProgettiRowChanged" msprop:Generator_TablePropName="AnagProgetti" msprop:Generator_RowDeletingName="AnagProgettiRowDeleting" msprop:Generator_RowChangingName="AnagProgettiRowChanging" msprop:Generator_RowEvHandlerName="AnagProgettiRowChangeEventHandler" msprop:Generator_RowDeletedName="AnagProgettiRowDeleted" msprop:Generator_RowClassName="AnagProgettiRow" msprop:Generator_UserTableName="AnagProgetti" msprop:Generator_RowEvArgName="AnagProgettiRowChangeEvent">
<xs:element name="AnagProgetti" msprop:Generator_TableClassName="AnagProgettiDataTable" msprop:Generator_TableVarName="tableAnagProgetti" msprop:Generator_TablePropName="AnagProgetti" msprop:Generator_RowDeletingName="AnagProgettiRowDeleting" msprop:Generator_RowChangingName="AnagProgettiRowChanging" msprop:Generator_RowEvHandlerName="AnagProgettiRowChangeEventHandler" msprop:Generator_RowDeletedName="AnagProgettiRowDeleted" msprop:Generator_UserTableName="AnagProgetti" msprop:Generator_RowChangedName="AnagProgettiRowChanged" msprop:Generator_RowEvArgName="AnagProgettiRowChangeEvent" msprop:Generator_RowClassName="AnagProgettiRow">
<xs:complexType>
<xs:sequence>
<xs:element name="idxProgetto" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_ColumnVarNameInTable="columnidxProgetto" msprop:Generator_ColumnPropNameInRow="idxProgetto" msprop:Generator_ColumnPropNameInTable="idxProgettoColumn" msprop:Generator_UserColumnName="idxProgetto" type="xs:int" />
@@ -3251,7 +3262,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Dipendenti2Ruoli" msprop:Generator_TableClassName="Dipendenti2RuoliDataTable" msprop:Generator_TableVarName="tableDipendenti2Ruoli" msprop:Generator_RowChangedName="Dipendenti2RuoliRowChanged" msprop:Generator_TablePropName="Dipendenti2Ruoli" msprop:Generator_RowDeletingName="Dipendenti2RuoliRowDeleting" msprop:Generator_RowChangingName="Dipendenti2RuoliRowChanging" msprop:Generator_RowEvHandlerName="Dipendenti2RuoliRowChangeEventHandler" msprop:Generator_RowDeletedName="Dipendenti2RuoliRowDeleted" msprop:Generator_RowClassName="Dipendenti2RuoliRow" msprop:Generator_UserTableName="Dipendenti2Ruoli" msprop:Generator_RowEvArgName="Dipendenti2RuoliRowChangeEvent">
<xs:element name="Dipendenti2Ruoli" msprop:Generator_TableClassName="Dipendenti2RuoliDataTable" msprop:Generator_TableVarName="tableDipendenti2Ruoli" msprop:Generator_TablePropName="Dipendenti2Ruoli" msprop:Generator_RowDeletingName="Dipendenti2RuoliRowDeleting" msprop:Generator_RowChangingName="Dipendenti2RuoliRowChanging" msprop:Generator_RowEvHandlerName="Dipendenti2RuoliRowChangeEventHandler" msprop:Generator_RowDeletedName="Dipendenti2RuoliRowDeleted" msprop:Generator_UserTableName="Dipendenti2Ruoli" msprop:Generator_RowChangedName="Dipendenti2RuoliRowChanged" msprop:Generator_RowEvArgName="Dipendenti2RuoliRowChangeEvent" msprop:Generator_RowClassName="Dipendenti2RuoliRow">
<xs:complexType>
<xs:sequence>
<xs:element name="idxDipendente" msprop:Generator_ColumnVarNameInTable="columnidxDipendente" msprop:Generator_ColumnPropNameInRow="idxDipendente" msprop:Generator_ColumnPropNameInTable="idxDipendenteColumn" msprop:Generator_UserColumnName="idxDipendente" type="xs:int" />
@@ -3265,7 +3276,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AnagFasi" msprop:Generator_TableClassName="AnagFasiDataTable" msprop:Generator_TableVarName="tableAnagFasi" msprop:Generator_RowChangedName="AnagFasiRowChanged" msprop:Generator_TablePropName="AnagFasi" msprop:Generator_RowDeletingName="AnagFasiRowDeleting" msprop:Generator_RowChangingName="AnagFasiRowChanging" msprop:Generator_RowEvHandlerName="AnagFasiRowChangeEventHandler" msprop:Generator_RowDeletedName="AnagFasiRowDeleted" msprop:Generator_RowClassName="AnagFasiRow" msprop:Generator_UserTableName="AnagFasi" msprop:Generator_RowEvArgName="AnagFasiRowChangeEvent">
<xs:element name="AnagFasi" msprop:Generator_TableClassName="AnagFasiDataTable" msprop:Generator_TableVarName="tableAnagFasi" msprop:Generator_TablePropName="AnagFasi" msprop:Generator_RowDeletingName="AnagFasiRowDeleting" msprop:Generator_RowChangingName="AnagFasiRowChanging" msprop:Generator_RowEvHandlerName="AnagFasiRowChangeEventHandler" msprop:Generator_RowDeletedName="AnagFasiRowDeleted" msprop:Generator_UserTableName="AnagFasi" msprop:Generator_RowChangedName="AnagFasiRowChanged" msprop:Generator_RowEvArgName="AnagFasiRowChangeEvent" msprop:Generator_RowClassName="AnagFasiRow">
<xs:complexType>
<xs:sequence>
<xs:element name="idxFase" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnidxFase" msprop:Generator_ColumnPropNameInRow="idxFase" msprop:Generator_ColumnPropNameInTable="idxFaseColumn" msprop:Generator_UserColumnName="idxFase" type="xs:int" />
@@ -3315,7 +3326,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="v_logCommUt" msprop:Generator_TableClassName="v_logCommUtDataTable" msprop:Generator_TableVarName="tablev_logCommUt" msprop:Generator_TablePropName="v_logCommUt" msprop:Generator_RowDeletingName="v_logCommUtRowDeleting" msprop:Generator_RowChangingName="v_logCommUtRowChanging" msprop:Generator_RowEvHandlerName="v_logCommUtRowChangeEventHandler" msprop:Generator_RowDeletedName="v_logCommUtRowDeleted" msprop:Generator_UserTableName="v_logCommUt" msprop:Generator_RowChangedName="v_logCommUtRowChanged" msprop:Generator_RowEvArgName="v_logCommUtRowChangeEvent" msprop:Generator_RowClassName="v_logCommUtRow">
<xs:element name="v_logCommUt" msprop:Generator_TableClassName="v_logCommUtDataTable" msprop:Generator_TableVarName="tablev_logCommUt" msprop:Generator_RowChangedName="v_logCommUtRowChanged" msprop:Generator_TablePropName="v_logCommUt" msprop:Generator_RowDeletingName="v_logCommUtRowDeleting" msprop:Generator_RowChangingName="v_logCommUtRowChanging" msprop:Generator_RowEvHandlerName="v_logCommUtRowChangeEventHandler" msprop:Generator_RowDeletedName="v_logCommUtRowDeleted" msprop:Generator_RowClassName="v_logCommUtRow" msprop:Generator_UserTableName="v_logCommUt" msprop:Generator_RowEvArgName="v_logCommUtRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="Data" msdata:Caption="dataLav" msprop:Generator_ColumnVarNameInTable="columnData" msprop:Generator_ColumnPropNameInRow="Data" msprop:Generator_ColumnPropNameInTable="DataColumn" msprop:Generator_UserColumnName="Data" type="xs:dateTime" />
@@ -3351,7 +3362,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RegAttivita" msprop:Generator_TableClassName="RegAttivitaDataTable" msprop:Generator_TableVarName="tableRegAttivita" msprop:Generator_RowChangedName="RegAttivitaRowChanged" msprop:Generator_TablePropName="RegAttivita" msprop:Generator_RowDeletingName="RegAttivitaRowDeleting" msprop:Generator_RowChangingName="RegAttivitaRowChanging" msprop:Generator_RowEvHandlerName="RegAttivitaRowChangeEventHandler" msprop:Generator_RowDeletedName="RegAttivitaRowDeleted" msprop:Generator_RowClassName="RegAttivitaRow" msprop:Generator_UserTableName="RegAttivita" msprop:Generator_RowEvArgName="RegAttivitaRowChangeEvent">
<xs:element name="RegAttivita" msprop:Generator_TableClassName="RegAttivitaDataTable" msprop:Generator_TableVarName="tableRegAttivita" msprop:Generator_TablePropName="RegAttivita" msprop:Generator_RowDeletingName="RegAttivitaRowDeleting" msprop:Generator_RowChangingName="RegAttivitaRowChanging" msprop:Generator_RowEvHandlerName="RegAttivitaRowChangeEventHandler" msprop:Generator_RowDeletedName="RegAttivitaRowDeleted" msprop:Generator_UserTableName="RegAttivita" msprop:Generator_RowChangedName="RegAttivitaRowChanged" msprop:Generator_RowEvArgName="RegAttivitaRowChangeEvent" msprop:Generator_RowClassName="RegAttivitaRow">
<xs:complexType>
<xs:sequence>
<xs:element name="idxRA" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnidxRA" msprop:Generator_ColumnPropNameInRow="idxRA" msprop:Generator_ColumnPropNameInTable="idxRAColumn" msprop:Generator_UserColumnName="idxRA" type="xs:int" />
@@ -3371,7 +3382,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CalendFesteFerie" msprop:Generator_TableClassName="CalendFesteFerieDataTable" msprop:Generator_TableVarName="tableCalendFesteFerie" msprop:Generator_RowChangedName="CalendFesteFerieRowChanged" msprop:Generator_TablePropName="CalendFesteFerie" msprop:Generator_RowDeletingName="CalendFesteFerieRowDeleting" msprop:Generator_RowChangingName="CalendFesteFerieRowChanging" msprop:Generator_RowEvHandlerName="CalendFesteFerieRowChangeEventHandler" msprop:Generator_RowDeletedName="CalendFesteFerieRowDeleted" msprop:Generator_RowClassName="CalendFesteFerieRow" msprop:Generator_UserTableName="CalendFesteFerie" msprop:Generator_RowEvArgName="CalendFesteFerieRowChangeEvent">
<xs:element name="CalendFesteFerie" msprop:Generator_TableClassName="CalendFesteFerieDataTable" msprop:Generator_TableVarName="tableCalendFesteFerie" msprop:Generator_TablePropName="CalendFesteFerie" msprop:Generator_RowDeletingName="CalendFesteFerieRowDeleting" msprop:Generator_RowChangingName="CalendFesteFerieRowChanging" msprop:Generator_RowEvHandlerName="CalendFesteFerieRowChangeEventHandler" msprop:Generator_RowDeletedName="CalendFesteFerieRowDeleted" msprop:Generator_UserTableName="CalendFesteFerie" msprop:Generator_RowChangedName="CalendFesteFerieRowChanged" msprop:Generator_RowEvArgName="CalendFesteFerieRowChangeEvent" msprop:Generator_RowClassName="CalendFesteFerieRow">
<xs:complexType>
<xs:sequence>
<xs:element name="data" msprop:Generator_ColumnVarNameInTable="columndata" msprop:Generator_ColumnPropNameInRow="data" msprop:Generator_ColumnPropNameInTable="dataColumn" msprop:Generator_UserColumnName="data" type="xs:dateTime" />
@@ -3392,7 +3403,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AnagOrari" msprop:Generator_TableClassName="AnagOrariDataTable" msprop:Generator_TableVarName="tableAnagOrari" msprop:Generator_RowChangedName="AnagOrariRowChanged" msprop:Generator_TablePropName="AnagOrari" msprop:Generator_RowDeletingName="AnagOrariRowDeleting" msprop:Generator_RowChangingName="AnagOrariRowChanging" msprop:Generator_RowEvHandlerName="AnagOrariRowChangeEventHandler" msprop:Generator_RowDeletedName="AnagOrariRowDeleted" msprop:Generator_RowClassName="AnagOrariRow" msprop:Generator_UserTableName="AnagOrari" msprop:Generator_RowEvArgName="AnagOrariRowChangeEvent">
<xs:element name="AnagOrari" msprop:Generator_TableClassName="AnagOrariDataTable" msprop:Generator_TableVarName="tableAnagOrari" msprop:Generator_TablePropName="AnagOrari" msprop:Generator_RowDeletingName="AnagOrariRowDeleting" msprop:Generator_RowChangingName="AnagOrariRowChanging" msprop:Generator_RowEvHandlerName="AnagOrariRowChangeEventHandler" msprop:Generator_RowDeletedName="AnagOrariRowDeleted" msprop:Generator_UserTableName="AnagOrari" msprop:Generator_RowChangedName="AnagOrariRowChanged" msprop:Generator_RowEvArgName="AnagOrariRowChangeEvent" msprop:Generator_RowClassName="AnagOrariRow">
<xs:complexType>
<xs:sequence>
<xs:element name="codOrario" msprop:Generator_ColumnVarNameInTable="columncodOrario" msprop:Generator_ColumnPropNameInRow="codOrario" msprop:Generator_ColumnPropNameInTable="codOrarioColumn" msprop:Generator_UserColumnName="codOrario">
@@ -3428,7 +3439,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TimbMeseExpl" msprop:Generator_TableClassName="TimbMeseExplDataTable" msprop:Generator_TableVarName="tableTimbMeseExpl" msprop:Generator_TablePropName="TimbMeseExpl" msprop:Generator_RowDeletingName="TimbMeseExplRowDeleting" msprop:Generator_RowChangingName="TimbMeseExplRowChanging" msprop:Generator_RowEvHandlerName="TimbMeseExplRowChangeEventHandler" msprop:Generator_RowDeletedName="TimbMeseExplRowDeleted" msprop:Generator_UserTableName="TimbMeseExpl" msprop:Generator_RowChangedName="TimbMeseExplRowChanged" msprop:Generator_RowEvArgName="TimbMeseExplRowChangeEvent" msprop:Generator_RowClassName="TimbMeseExplRow">
<xs:element name="TimbMeseExpl" msprop:Generator_TableClassName="TimbMeseExplDataTable" msprop:Generator_TableVarName="tableTimbMeseExpl" msprop:Generator_RowChangedName="TimbMeseExplRowChanged" msprop:Generator_TablePropName="TimbMeseExpl" msprop:Generator_RowDeletingName="TimbMeseExplRowDeleting" msprop:Generator_RowChangingName="TimbMeseExplRowChanging" msprop:Generator_RowEvHandlerName="TimbMeseExplRowChangeEventHandler" msprop:Generator_RowDeletedName="TimbMeseExplRowDeleted" msprop:Generator_RowClassName="TimbMeseExplRow" msprop:Generator_UserTableName="TimbMeseExpl" msprop:Generator_RowEvArgName="TimbMeseExplRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="Anno" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnAnno" msprop:Generator_ColumnPropNameInRow="Anno" msprop:Generator_ColumnPropNameInTable="AnnoColumn" msprop:Generator_UserColumnName="Anno" type="xs:int" />
@@ -3453,7 +3464,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Giustificativi" msprop:Generator_TableClassName="GiustificativiDataTable" msprop:Generator_TableVarName="tableGiustificativi" msprop:Generator_TablePropName="Giustificativi" msprop:Generator_RowDeletingName="GiustificativiRowDeleting" msprop:Generator_RowChangingName="GiustificativiRowChanging" msprop:Generator_RowEvHandlerName="GiustificativiRowChangeEventHandler" msprop:Generator_RowDeletedName="GiustificativiRowDeleted" msprop:Generator_UserTableName="Giustificativi" msprop:Generator_RowChangedName="GiustificativiRowChanged" msprop:Generator_RowEvArgName="GiustificativiRowChangeEvent" msprop:Generator_RowClassName="GiustificativiRow">
<xs:element name="Giustificativi" msprop:Generator_TableClassName="GiustificativiDataTable" msprop:Generator_TableVarName="tableGiustificativi" msprop:Generator_RowChangedName="GiustificativiRowChanged" msprop:Generator_TablePropName="Giustificativi" msprop:Generator_RowDeletingName="GiustificativiRowDeleting" msprop:Generator_RowChangingName="GiustificativiRowChanging" msprop:Generator_RowEvHandlerName="GiustificativiRowChangeEventHandler" msprop:Generator_RowDeletedName="GiustificativiRowDeleted" msprop:Generator_RowClassName="GiustificativiRow" msprop:Generator_UserTableName="Giustificativi" msprop:Generator_RowEvArgName="GiustificativiRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="dataLav" msprop:Generator_ColumnVarNameInTable="columndataLav" msprop:Generator_ColumnPropNameInRow="dataLav" msprop:Generator_ColumnPropNameInTable="dataLavColumn" msprop:Generator_UserColumnName="dataLav" type="xs:dateTime" />
@@ -3469,7 +3480,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="stp_DipendentiAndAnomalie" msprop:Generator_TableClassName="stp_DipendentiAndAnomalieDataTable" msprop:Generator_TableVarName="tablestp_DipendentiAndAnomalie" msprop:Generator_TablePropName="stp_DipendentiAndAnomalie" msprop:Generator_RowDeletingName="stp_DipendentiAndAnomalieRowDeleting" msprop:Generator_RowChangingName="stp_DipendentiAndAnomalieRowChanging" msprop:Generator_RowEvHandlerName="stp_DipendentiAndAnomalieRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_DipendentiAndAnomalieRowDeleted" msprop:Generator_UserTableName="stp_DipendentiAndAnomalie" msprop:Generator_RowChangedName="stp_DipendentiAndAnomalieRowChanged" msprop:Generator_RowEvArgName="stp_DipendentiAndAnomalieRowChangeEvent" msprop:Generator_RowClassName="stp_DipendentiAndAnomalieRow">
<xs:element name="stp_DipendentiAndAnomalie" msprop:Generator_TableClassName="stp_DipendentiAndAnomalieDataTable" msprop:Generator_TableVarName="tablestp_DipendentiAndAnomalie" msprop:Generator_RowChangedName="stp_DipendentiAndAnomalieRowChanged" msprop:Generator_TablePropName="stp_DipendentiAndAnomalie" msprop:Generator_RowDeletingName="stp_DipendentiAndAnomalieRowDeleting" msprop:Generator_RowChangingName="stp_DipendentiAndAnomalieRowChanging" msprop:Generator_RowEvHandlerName="stp_DipendentiAndAnomalieRowChangeEventHandler" msprop:Generator_RowDeletedName="stp_DipendentiAndAnomalieRowDeleted" msprop:Generator_RowClassName="stp_DipendentiAndAnomalieRow" msprop:Generator_UserTableName="stp_DipendentiAndAnomalie" msprop:Generator_RowEvArgName="stp_DipendentiAndAnomalieRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="idxDipendente" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_ColumnVarNameInTable="columnidxDipendente" msprop:Generator_ColumnPropNameInRow="idxDipendente" msprop:Generator_ColumnPropNameInTable="idxDipendenteColumn" msprop:Generator_UserColumnName="idxDipendente" type="xs:int" />
@@ -3490,10 +3501,10 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TE_RA_Expl" msprop:Generator_TableClassName="TE_RA_ExplDataTable" msprop:Generator_TableVarName="tableTE_RA_Expl" msprop:Generator_TablePropName="TE_RA_Expl" msprop:Generator_RowDeletingName="TE_RA_ExplRowDeleting" msprop:Generator_RowChangingName="TE_RA_ExplRowChanging" msprop:Generator_RowEvHandlerName="TE_RA_ExplRowChangeEventHandler" msprop:Generator_RowDeletedName="TE_RA_ExplRowDeleted" msprop:Generator_UserTableName="TE_RA_Expl" msprop:Generator_RowChangedName="TE_RA_ExplRowChanged" msprop:Generator_RowEvArgName="TE_RA_ExplRowChangeEvent" msprop:Generator_RowClassName="TE_RA_ExplRow">
<xs:element name="TE_RA_Expl" msprop:Generator_TableClassName="TE_RA_ExplDataTable" msprop:Generator_TableVarName="tableTE_RA_Expl" msprop:Generator_RowChangedName="TE_RA_ExplRowChanged" msprop:Generator_TablePropName="TE_RA_Expl" msprop:Generator_RowDeletingName="TE_RA_ExplRowDeleting" msprop:Generator_RowChangingName="TE_RA_ExplRowChanging" msprop:Generator_RowEvHandlerName="TE_RA_ExplRowChangeEventHandler" msprop:Generator_RowDeletedName="TE_RA_ExplRowDeleted" msprop:Generator_RowClassName="TE_RA_ExplRow" msprop:Generator_UserTableName="TE_RA_Expl" msprop:Generator_RowEvArgName="TE_RA_ExplRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="dataLav" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columndataLav" msprop:Generator_ColumnPropNameInRow="dataLav" msprop:Generator_ColumnPropNameInTable="dataLavColumn" msprop:Generator_UserColumnName="dataLav" type="xs:dateTime" minOccurs="0" />
<xs:element name="dataLav" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columndataLav" msprop:Generator_ColumnPropNameInRow="dataLav" msprop:Generator_ColumnPropNameInTable="dataLavColumn" msprop:Generator_UserColumnName="dataLav" type="xs:dateTime" />
<xs:element name="idxDipendente" msdata:ReadOnly="true" msdata:AutoIncrement="true" msprop:Generator_ColumnVarNameInTable="columnidxDipendente" msprop:Generator_ColumnPropNameInRow="idxDipendente" msprop:Generator_ColumnPropNameInTable="idxDipendenteColumn" msprop:Generator_UserColumnName="idxDipendente" type="xs:int" />
<xs:element name="CognomeNome" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnCognomeNome" msprop:Generator_ColumnPropNameInRow="CognomeNome" msprop:Generator_ColumnPropNameInTable="CognomeNomeColumn" msprop:Generator_UserColumnName="CognomeNome" minOccurs="0">
<xs:simpleType>
@@ -3556,7 +3567,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="regAttDayExpl" msprop:Generator_TableClassName="regAttDayExplDataTable" msprop:Generator_TableVarName="tableregAttDayExpl" msprop:Generator_TablePropName="regAttDayExpl" msprop:Generator_RowDeletingName="regAttDayExplRowDeleting" msprop:Generator_RowChangingName="regAttDayExplRowChanging" msprop:Generator_RowEvHandlerName="regAttDayExplRowChangeEventHandler" msprop:Generator_RowDeletedName="regAttDayExplRowDeleted" msprop:Generator_UserTableName="regAttDayExpl" msprop:Generator_RowChangedName="regAttDayExplRowChanged" msprop:Generator_RowEvArgName="regAttDayExplRowChangeEvent" msprop:Generator_RowClassName="regAttDayExplRow">
<xs:element name="regAttDayExpl" msprop:Generator_TableClassName="regAttDayExplDataTable" msprop:Generator_TableVarName="tableregAttDayExpl" msprop:Generator_RowChangedName="regAttDayExplRowChanged" msprop:Generator_TablePropName="regAttDayExpl" msprop:Generator_RowDeletingName="regAttDayExplRowDeleting" msprop:Generator_RowChangingName="regAttDayExplRowChanging" msprop:Generator_RowEvHandlerName="regAttDayExplRowChangeEventHandler" msprop:Generator_RowDeletedName="regAttDayExplRowDeleted" msprop:Generator_RowClassName="regAttDayExplRow" msprop:Generator_UserTableName="regAttDayExpl" msprop:Generator_RowEvArgName="regAttDayExplRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="idxDipendente" msprop:Generator_ColumnVarNameInTable="columnidxDipendente" msprop:Generator_ColumnPropNameInRow="idxDipendente" msprop:Generator_ColumnPropNameInTable="idxDipendenteColumn" msprop:Generator_UserColumnName="idxDipendente" type="xs:int" />
@@ -3604,7 +3615,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AnagProgetti_Expl" msprop:Generator_TableClassName="AnagProgetti_ExplDataTable" msprop:Generator_TableVarName="tableAnagProgetti_Expl" msprop:Generator_RowChangedName="AnagProgetti_ExplRowChanged" msprop:Generator_TablePropName="AnagProgetti_Expl" msprop:Generator_RowDeletingName="AnagProgetti_ExplRowDeleting" msprop:Generator_RowChangingName="AnagProgetti_ExplRowChanging" msprop:Generator_RowEvHandlerName="AnagProgetti_ExplRowChangeEventHandler" msprop:Generator_RowDeletedName="AnagProgetti_ExplRowDeleted" msprop:Generator_RowClassName="AnagProgetti_ExplRow" msprop:Generator_UserTableName="AnagProgetti_Expl" msprop:Generator_RowEvArgName="AnagProgetti_ExplRowChangeEvent">
<xs:element name="AnagProgetti_Expl" msprop:Generator_TableClassName="AnagProgetti_ExplDataTable" msprop:Generator_TableVarName="tableAnagProgetti_Expl" msprop:Generator_TablePropName="AnagProgetti_Expl" msprop:Generator_RowDeletingName="AnagProgetti_ExplRowDeleting" msprop:Generator_RowChangingName="AnagProgetti_ExplRowChanging" msprop:Generator_RowEvHandlerName="AnagProgetti_ExplRowChangeEventHandler" msprop:Generator_RowDeletedName="AnagProgetti_ExplRowDeleted" msprop:Generator_UserTableName="AnagProgetti_Expl" msprop:Generator_RowChangedName="AnagProgetti_ExplRowChanged" msprop:Generator_RowEvArgName="AnagProgetti_ExplRowChangeEvent" msprop:Generator_RowClassName="AnagProgetti_ExplRow">
<xs:complexType>
<xs:sequence>
<xs:element name="RagSociale" msprop:Generator_ColumnVarNameInTable="columnRagSociale" msprop:Generator_ColumnPropNameInRow="RagSociale" msprop:Generator_ColumnPropNameInTable="RagSocialeColumn" msprop:Generator_UserColumnName="RagSociale" minOccurs="0">
@@ -3645,7 +3656,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RegistroEventi" msprop:Generator_TableClassName="RegistroEventiDataTable" msprop:Generator_TableVarName="tableRegistroEventi" msprop:Generator_TablePropName="RegistroEventi" msprop:Generator_RowDeletingName="RegistroEventiRowDeleting" msprop:Generator_RowChangingName="RegistroEventiRowChanging" msprop:Generator_RowEvHandlerName="RegistroEventiRowChangeEventHandler" msprop:Generator_RowDeletedName="RegistroEventiRowDeleted" msprop:Generator_UserTableName="RegistroEventi" msprop:Generator_RowChangedName="RegistroEventiRowChanged" msprop:Generator_RowEvArgName="RegistroEventiRowChangeEvent" msprop:Generator_RowClassName="RegistroEventiRow">
<xs:element name="RegistroEventi" msprop:Generator_TableClassName="RegistroEventiDataTable" msprop:Generator_TableVarName="tableRegistroEventi" msprop:Generator_RowChangedName="RegistroEventiRowChanged" msprop:Generator_TablePropName="RegistroEventi" msprop:Generator_RowDeletingName="RegistroEventiRowDeleting" msprop:Generator_RowChangingName="RegistroEventiRowChanging" msprop:Generator_RowEvHandlerName="RegistroEventiRowChangeEventHandler" msprop:Generator_RowDeletedName="RegistroEventiRowDeleted" msprop:Generator_RowClassName="RegistroEventiRow" msprop:Generator_UserTableName="RegistroEventi" msprop:Generator_RowEvArgName="RegistroEventiRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="DataOra" msprop:Generator_ColumnVarNameInTable="columnDataOra" msprop:Generator_ColumnPropNameInRow="DataOra" msprop:Generator_ColumnPropNameInTable="DataOraColumn" msprop:Generator_UserColumnName="DataOra" type="xs:dateTime" />
@@ -3666,7 +3677,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RilievoTemp" msprop:Generator_TableClassName="RilievoTempDataTable" msprop:Generator_TableVarName="tableRilievoTemp" msprop:Generator_TablePropName="RilievoTemp" msprop:Generator_RowDeletingName="RilievoTempRowDeleting" msprop:Generator_RowChangingName="RilievoTempRowChanging" msprop:Generator_RowEvHandlerName="RilievoTempRowChangeEventHandler" msprop:Generator_RowDeletedName="RilievoTempRowDeleted" msprop:Generator_UserTableName="RilievoTemp" msprop:Generator_RowChangedName="RilievoTempRowChanged" msprop:Generator_RowEvArgName="RilievoTempRowChangeEvent" msprop:Generator_RowClassName="RilievoTempRow">
<xs:element name="RilievoTemp" msprop:Generator_TableClassName="RilievoTempDataTable" msprop:Generator_TableVarName="tableRilievoTemp" msprop:Generator_RowChangedName="RilievoTempRowChanged" msprop:Generator_TablePropName="RilievoTemp" msprop:Generator_RowDeletingName="RilievoTempRowDeleting" msprop:Generator_RowChangingName="RilievoTempRowChanging" msprop:Generator_RowEvHandlerName="RilievoTempRowChangeEventHandler" msprop:Generator_RowDeletedName="RilievoTempRowDeleted" msprop:Generator_RowClassName="RilievoTempRow" msprop:Generator_UserTableName="RilievoTemp" msprop:Generator_RowEvArgName="RilievoTempRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="idxDipendente" msprop:Generator_ColumnVarNameInTable="columnidxDipendente" msprop:Generator_ColumnPropNameInRow="idxDipendente" msprop:Generator_ColumnPropNameInTable="idxDipendenteColumn" msprop:Generator_UserColumnName="idxDipendente" type="xs:int" />
@@ -3675,7 +3686,7 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="HistTemp" msprop:Generator_TableClassName="HistTempDataTable" msprop:Generator_TableVarName="tableHistTemp" msprop:Generator_TablePropName="HistTemp" msprop:Generator_RowDeletingName="HistTempRowDeleting" msprop:Generator_RowChangingName="HistTempRowChanging" msprop:Generator_RowEvHandlerName="HistTempRowChangeEventHandler" msprop:Generator_RowDeletedName="HistTempRowDeleted" msprop:Generator_UserTableName="HistTemp" msprop:Generator_RowChangedName="HistTempRowChanged" msprop:Generator_RowEvArgName="HistTempRowChangeEvent" msprop:Generator_RowClassName="HistTempRow">
<xs:element name="HistTemp" msprop:Generator_TableClassName="HistTempDataTable" msprop:Generator_TableVarName="tableHistTemp" msprop:Generator_RowChangedName="HistTempRowChanged" msprop:Generator_TablePropName="HistTemp" msprop:Generator_RowDeletingName="HistTempRowDeleting" msprop:Generator_RowChangingName="HistTempRowChanging" msprop:Generator_RowEvHandlerName="HistTempRowChangeEventHandler" msprop:Generator_RowDeletedName="HistTempRowDeleted" msprop:Generator_RowClassName="HistTempRow" msprop:Generator_UserTableName="HistTemp" msprop:Generator_RowEvArgName="HistTempRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="tempRil" msprop:Generator_ColumnVarNameInTable="columntempRil" msprop:Generator_ColumnPropNameInRow="tempRil" msprop:Generator_ColumnPropNameInTable="tempRilColumn" msprop:Generator_UserColumnName="tempRil" type="xs:decimal" />
@@ -3779,13 +3790,13 @@ SELECT idxDipendente, dtRilievo, tempRil FROM RilievoTemp WHERE (dtRilievo = @dt
</xs:element>
<xs:annotation>
<xs:appinfo>
<msdata:Relationship name="FK_Timbrature_Dipendenti" msdata:parent="Dipendenti" msdata:child="Timbrature" msdata:parentkey="idxDipendente" msdata:childkey="idxDipendente" msprop:Generator_UserChildTable="Timbrature" msprop:Generator_ChildPropName="GetTimbratureRows" msprop:Generator_UserRelationName="FK_Timbrature_Dipendenti" msprop:Generator_RelationVarName="relationFK_Timbrature_Dipendenti" msprop:Generator_UserParentTable="Dipendenti" msprop:Generator_ParentPropName="DipendentiRow" />
<msdata:Relationship name="FK_AnagProgetti_AnagClienti" msdata:parent="AnagClienti" msdata:child="AnagProgetti" msdata:parentkey="idxCliente" msdata:childkey="idxCliente" msprop:Generator_UserChildTable="AnagProgetti" msprop:Generator_ChildPropName="GetAnagProgettiRows" msprop:Generator_UserRelationName="FK_AnagProgetti_AnagClienti" msprop:Generator_RelationVarName="relationFK_AnagProgetti_AnagClienti" msprop:Generator_UserParentTable="AnagClienti" msprop:Generator_ParentPropName="AnagClientiRow" />
<msdata:Relationship name="FK_AnagFasi_AnagProgetti" msdata:parent="AnagProgetti" msdata:child="AnagFasi" msdata:parentkey="idxProgetto" msdata:childkey="idxProgetto" msprop:Generator_UserChildTable="AnagFasi" msprop:Generator_ChildPropName="GetAnagFasiRows" msprop:Generator_UserRelationName="FK_AnagFasi_AnagProgetti" msprop:Generator_RelationVarName="relationFK_AnagFasi_AnagProgetti" msprop:Generator_UserParentTable="AnagProgetti" msprop:Generator_ParentPropName="AnagProgettiRow" />
<msdata:Relationship name="FK_RegAttivita_AnagFasi" msdata:parent="AnagFasi" msdata:child="RegAttivita" msdata:parentkey="idxFase" msdata:childkey="idxFase" msprop:Generator_UserChildTable="RegAttivita" msprop:Generator_ChildPropName="GetRegAttivitaRows" msprop:Generator_UserRelationName="FK_RegAttivita_AnagFasi" msprop:Generator_RelationVarName="relationFK_RegAttivita_AnagFasi" msprop:Generator_UserParentTable="AnagFasi" msprop:Generator_ParentPropName="AnagFasiRow" />
<msdata:Relationship name="FK_RegAttivita_Dipendenti" msdata:parent="Dipendenti" msdata:child="RegAttivita" msdata:parentkey="idxDipendente" msdata:childkey="idxDipendente" msprop:Generator_UserChildTable="RegAttivita" msprop:Generator_ChildPropName="GetRegAttivitaRows" msprop:Generator_UserRelationName="FK_RegAttivita_Dipendenti" msprop:Generator_RelationVarName="relationFK_RegAttivita_Dipendenti" msprop:Generator_UserParentTable="Dipendenti" msprop:Generator_ParentPropName="DipendentiRow" />
<msdata:Relationship name="FK_Dipendenti_AnagOrari" msdata:parent="AnagOrari" msdata:child="Dipendenti" msdata:parentkey="codOrario" msdata:childkey="codOrario" msprop:Generator_UserChildTable="Dipendenti" msprop:Generator_ChildPropName="GetDipendentiRows" msprop:Generator_UserRelationName="FK_Dipendenti_AnagOrari" msprop:Generator_ParentPropName="AnagOrariRow" msprop:Generator_RelationVarName="relationFK_Dipendenti_AnagOrari" msprop:Generator_UserParentTable="AnagOrari" />
<msdata:Relationship name="FK_RilievoTemp_Dipendenti" msdata:parent="Dipendenti" msdata:child="RilievoTemp" msdata:parentkey="idxDipendente" msdata:childkey="idxDipendente" msprop:Generator_UserChildTable="RilievoTemp" msprop:Generator_ChildPropName="GetRilievoTempRows" msprop:Generator_UserRelationName="FK_RilievoTemp_Dipendenti" msprop:Generator_ParentPropName="DipendentiRow" msprop:Generator_RelationVarName="relationFK_RilievoTemp_Dipendenti" msprop:Generator_UserParentTable="Dipendenti" />
<msdata:Relationship name="FK_Timbrature_Dipendenti" msdata:parent="Dipendenti" msdata:child="Timbrature" msdata:parentkey="idxDipendente" msdata:childkey="idxDipendente" msprop:Generator_UserChildTable="Timbrature" msprop:Generator_ChildPropName="GetTimbratureRows" msprop:Generator_UserRelationName="FK_Timbrature_Dipendenti" msprop:Generator_ParentPropName="DipendentiRow" msprop:Generator_RelationVarName="relationFK_Timbrature_Dipendenti" msprop:Generator_UserParentTable="Dipendenti" />
<msdata:Relationship name="FK_AnagProgetti_AnagClienti" msdata:parent="AnagClienti" msdata:child="AnagProgetti" msdata:parentkey="idxCliente" msdata:childkey="idxCliente" msprop:Generator_UserChildTable="AnagProgetti" msprop:Generator_ChildPropName="GetAnagProgettiRows" msprop:Generator_UserRelationName="FK_AnagProgetti_AnagClienti" msprop:Generator_ParentPropName="AnagClientiRow" msprop:Generator_RelationVarName="relationFK_AnagProgetti_AnagClienti" msprop:Generator_UserParentTable="AnagClienti" />
<msdata:Relationship name="FK_AnagFasi_AnagProgetti" msdata:parent="AnagProgetti" msdata:child="AnagFasi" msdata:parentkey="idxProgetto" msdata:childkey="idxProgetto" msprop:Generator_UserChildTable="AnagFasi" msprop:Generator_ChildPropName="GetAnagFasiRows" msprop:Generator_UserRelationName="FK_AnagFasi_AnagProgetti" msprop:Generator_ParentPropName="AnagProgettiRow" msprop:Generator_RelationVarName="relationFK_AnagFasi_AnagProgetti" msprop:Generator_UserParentTable="AnagProgetti" />
<msdata:Relationship name="FK_RegAttivita_AnagFasi" msdata:parent="AnagFasi" msdata:child="RegAttivita" msdata:parentkey="idxFase" msdata:childkey="idxFase" msprop:Generator_UserChildTable="RegAttivita" msprop:Generator_ChildPropName="GetRegAttivitaRows" msprop:Generator_UserRelationName="FK_RegAttivita_AnagFasi" msprop:Generator_ParentPropName="AnagFasiRow" msprop:Generator_RelationVarName="relationFK_RegAttivita_AnagFasi" msprop:Generator_UserParentTable="AnagFasi" />
<msdata:Relationship name="FK_RegAttivita_Dipendenti" msdata:parent="Dipendenti" msdata:child="RegAttivita" msdata:parentkey="idxDipendente" msdata:childkey="idxDipendente" msprop:Generator_UserChildTable="RegAttivita" msprop:Generator_ChildPropName="GetRegAttivitaRows" msprop:Generator_UserRelationName="FK_RegAttivita_Dipendenti" msprop:Generator_ParentPropName="DipendentiRow" msprop:Generator_RelationVarName="relationFK_RegAttivita_Dipendenti" msprop:Generator_UserParentTable="Dipendenti" />
<msdata:Relationship name="FK_Dipendenti_AnagOrari" msdata:parent="AnagOrari" msdata:child="Dipendenti" msdata:parentkey="codOrario" msdata:childkey="codOrario" msprop:Generator_UserChildTable="Dipendenti" msprop:Generator_ChildPropName="GetDipendentiRows" msprop:Generator_UserRelationName="FK_Dipendenti_AnagOrari" msprop:Generator_RelationVarName="relationFK_Dipendenti_AnagOrari" msprop:Generator_UserParentTable="AnagOrari" msprop:Generator_ParentPropName="AnagOrariRow" />
<msdata:Relationship name="FK_RilievoTemp_Dipendenti" msdata:parent="Dipendenti" msdata:child="RilievoTemp" msdata:parentkey="idxDipendente" msdata:childkey="idxDipendente" msprop:Generator_UserChildTable="RilievoTemp" msprop:Generator_ChildPropName="GetRilievoTempRows" msprop:Generator_UserRelationName="FK_RilievoTemp_Dipendenti" msprop:Generator_RelationVarName="relationFK_RilievoTemp_Dipendenti" msprop:Generator_UserParentTable="Dipendenti" msprop:Generator_ParentPropName="DipendentiRow" />
</xs:appinfo>
</xs:annotation>
</xs:schema>
+17 -17
View File
@@ -4,29 +4,29 @@
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-35" ViewPortY="-47" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-35" ViewPortY="338" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:Timbrature" ZOrder="27" X="279" Y="76" Height="267" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:TimbratureExpl" ZOrder="5" X="622" Y="64" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TimbratureExpl" ZOrder="7" X="622" Y="64" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:AnagDevices" ZOrder="21" X="937" Y="134" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:Dipendenti" ZOrder="13" X="279" Y="478" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Dipendenti" ZOrder="1" X="279" Y="478" Height="381" Width="278" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:AnagClienti" ZOrder="15" X="1234" Y="528" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:AnagProgetti" ZOrder="9" X="886" Y="976" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:AnagProgetti" ZOrder="11" X="886" Y="976" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Dipendenti2Ruoli" ZOrder="26" X="579" Y="943" Height="153" Width="276" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:AnagFasi" ZOrder="8" X="871" Y="528" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:v_logCommUt" ZOrder="2" X="1204" Y="1309" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:RegAttivita" ZOrder="10" X="598" Y="591" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:CalendFesteFerie" ZOrder="6" X="597" Y="1126" Height="191" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:AnagFasi" ZOrder="10" X="871" Y="528" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:v_logCommUt" ZOrder="4" X="1204" Y="1309" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:RegAttivita" ZOrder="2" X="598" Y="591" Height="305" Width="237" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:CalendFesteFerie" ZOrder="8" X="597" Y="1126" Height="191" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:AnagOrari" ZOrder="18" X="278" Y="1055" Height="343" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TimbMeseExpl" ZOrder="20" X="1249" Y="134" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Giustificativi" ZOrder="7" X="885" Y="1385" Height="229" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:Giustificativi" ZOrder="9" X="885" Y="1385" Height="229" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:stp_DipendentiAndAnomalie" ZOrder="19" X="82" Y="1313" Height="134" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:TE_RA_Expl" ZOrder="12" X="-3" Y="176" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TE_RA_Expl" ZOrder="13" X="-3" Y="176" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:regAttDayExpl" ZOrder="16" X="19" Y="886" Height="381" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:AnagProgetti_Expl" ZOrder="14" X="1236" Y="992" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:RegistroEventi" ZOrder="11" X="85" Y="1476" Height="153" Width="229" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:RilievoTemp" ZOrder="4" X="-29" Y="522" Height="191" Width="233" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:HistTemp" ZOrder="1" X="-26" Y="727" Height="115" Width="228" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:RegistroEventi" ZOrder="12" X="85" Y="1476" Height="153" Width="229" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:RilievoTemp" ZOrder="6" X="-29" Y="522" Height="191" Width="233" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:HistTemp" ZOrder="3" X="-26" Y="727" Height="115" Width="228" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
</Shapes>
<Connectors>
<Connector ID="DesignRelation:FK_Timbrature_Dipendenti" ZOrder="28" LineWidth="11">
@@ -88,11 +88,11 @@
<Y>574</Y>
</Point>
<Point>
<X>854</X>
<X>835</X>
<Y>574</Y>
</Point>
<Point>
<X>854</X>
<X>835</X>
<Y>591</Y>
</Point>
</RoutePoints>
@@ -100,7 +100,7 @@
<Connector ID="DesignRelation:FK_RegAttivita_Dipendenti" ZOrder="23" LineWidth="11">
<RoutePoints>
<Point>
<X>579</X>
<X>557</X>
<Y>743</Y>
</Point>
<Point>
@@ -121,7 +121,7 @@
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_RilievoTemp_Dipendenti" ZOrder="3" LineWidth="11">
<Connector ID="DesignRelation:FK_RilievoTemp_Dipendenti" ZOrder="5" LineWidth="11">
<RoutePoints>
<Point>
<X>279</X>
Binary file not shown.
+1 -1
View File
@@ -19,7 +19,7 @@
<package id="SharpZipLib" version="1.2.0" targetFramework="net462" />
<package id="Snappy.NET" version="1.1.1.8" targetFramework="net462" />
<package id="StackExchange.Redis" version="2.1.58" targetFramework="net462" />
<package id="SteamWare" version="4.1.2008.736" targetFramework="net462" />
<package id="SteamWare" version="4.1.2009.737" targetFramework="net462" />
<package id="System.Buffers" version="4.5.1" targetFramework="net462" />
<package id="System.Diagnostics.PerformanceCounter" version="4.7.0" targetFramework="net462" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
Binary file not shown.
Binary file not shown.
+325 -325
View File
@@ -7,352 +7,352 @@ using SteamWare;
namespace GPW_data
{
public class utils
{
/// <summary>
/// avvio oggetti utils
/// </summary>
protected utils()
public class utils
{
}
/// <summary>
/// restituisce elenco clienti trasformato in dictionary
/// </summary>
/// <returns></returns>
protected Dictionary<string, string> ricaricaElencoClienti()
{
Dictionary<string, string> answ = new Dictionary<string, string>();
// recupero elenco clienti da dataproxy
foreach (DS_Applicazione.AnagClientiRow riga in DataProxy.DP.taAnCli.GetData())
{
answ.Add(riga.idxCliente.ToString(), riga.RagSociale);
}
return answ;
}
/// <summary>
/// singleton accesso metodo
/// </summary>
public static utils mng = new utils();
/// <summary>
/// dim pagina gridView in sessione
/// </summary>
public static int pageSize
{
get
{
int answ = 20;
try
/// <summary>
/// avvio oggetti utils
/// </summary>
protected utils()
{
answ = SteamWare.memLayer.ML.IntSessionObj("pageSize");
if (answ <= 0) answ = 20;
}
catch
{ }
return answ;
}
set
{
SteamWare.memLayer.ML.setSessionVal("pageSize", value);
}
}
/// <summary>
/// oggetto elenco clienti organizzato come dizionario con chiave idxCliente e valore la ragione sociale
/// </summary>
public Dictionary<string, string> elencoClienti
{
set
{
string redKey = memLayer.ML.redHash("elencoClienti");
string rawData = JsonConvert.SerializeObject(value);
memLayer.ML.setRSV(redKey, rawData, 60);
}
get
{
Dictionary<string, string> answ = new Dictionary<string, string>();
string redKey = memLayer.ML.redHash("elencoClienti");
string rawData = memLayer.ML.getRSV(redKey);
if (!string.IsNullOrEmpty(rawData))
/// <summary>
/// restituisce elenco clienti trasformato in dictionary
/// </summary>
/// <returns></returns>
protected Dictionary<string, string> ricaricaElencoClienti()
{
try
{
answ = JsonConvert.DeserializeObject<Dictionary<string, string>>(rawData);
}
catch
{ }
Dictionary<string, string> answ = new Dictionary<string, string>();
// recupero elenco clienti da dataproxy
foreach (DS_Applicazione.AnagClientiRow riga in DataProxy.DP.taAnCli.GetData())
{
answ.Add(riga.idxCliente.ToString(), riga.RagSociale);
}
return answ;
}
if (answ.Count == 0)
/// <summary>
/// singleton accesso metodo
/// </summary>
public static utils mng = new utils();
/// <summary>
/// dim pagina gridView in sessione
/// </summary>
public static int pageSize
{
answ = ricaricaElencoClienti();
elencoClienti = answ;
}
return answ;
}
}
/// <summary>
/// Effettua un insieme di controlli sulle anomalie delel timbrature/orari e invia le relative eventuali email
/// </summary>
/// <returns></returns>
public bool checkAnomalie()
{
bool answ = false;
try
{
// log richiesta!
logger.lg.scriviLog("Richiesto controllo anomalie!", tipoLog.INFO);
/*******************************************************
* controllo le varie anomalie delle timbrature:
*
* (A) mancate approvazioni --> admin
* (B) entrate <> uscite --> admin, user
* (C) mancata copertura orario --> admin
*
* (D) mancata copertura commesse (2 be done)
*
* recupero elenco dip interessati x le varie anomalie con stp_DipendentiAndAnomalie
* e poi da timbrExpl recupero le singole istanze di record errori
*
*******************************************************/
// setup valori base
string fromEmail = memLayer.ML.confReadString("_fromEmail");
string adminEmail = memLayer.ML.confReadString("adminAnomalieEmail");
string adminContinuatoEmail = memLayer.ML.confReadString("adminContinuatoEmail");
string adminOreLavEmail = memLayer.ML.confReadString("adminOreLavEmail");
string oggettoEmail = "";
string corpoEmail = "";
DS_Applicazione.stp_DipendentiAndAnomalieDataTable tabDipAndAnom = new DS_Applicazione.stp_DipendentiAndAnomalieDataTable();
DS_Applicazione.TimbratureExplDataTable tabTimbExpl = new DS_Applicazione.TimbratureExplDataTable();
DS_Applicazione.TE_RA_ExplDataTable tabTimbRegAtt = new DS_Applicazione.TE_RA_ExplDataTable();
DateTime adesso = DateTime.Now;
int gg2Chk = memLayer.ML.confReadInt("gg2Chk");
int gg2ChkCont = memLayer.ML.confReadInt("gg2ChkCont");
int gg2ChkOreCaricate = memLayer.ML.confReadInt("gg2ChkOreCaricate");
// (A) recupero mancate approvazioni, mando solo ad admin
if (memLayer.ML.confReadBool("checkAnomAppr"))
{
tabTimbExpl = DataProxy.DP.taTimbExpl.getByDipAnomalia(0, adesso.AddDays(-gg2Chk), adesso.AddHours(1), true, false, false);
// se ho trovato record...
if (tabTimbExpl.Rows.Count > 0)
{
logger.lg.scriviLog("Trovate anomalie mancate approvazioni, invio email ad admin", tipoLog.INFO);
oggettoEmail = "Anomalie GPW: Approvazione Timbrature";
if (memLayer.ML.confReadBool("includeDirectUrl"))
get
{
corpoEmail = string.Format("Risultano a sistema le seguenti anomalie:<br/><a href=\"{0}A1/approvTimbrature.aspx\">timbrature da approvare</a><br/><br/>", memLayer.ML.confReadString("baseUrl"));
}
else
{
corpoEmail = "Risultano a sistema le seguenti anomalie: timbrature da approvare<br/>";
}
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
corpoEmail += "| -- DATA --\t| Dipendente<br/>";
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
foreach (DS_Applicazione.TimbratureExplRow riga in tabTimbExpl)
{
corpoEmail += string.Format("| {0:yyyy.MM.dd ddd}\t| {1}<br/>", riga.dataLav, riga.CognomeNome);
}
corpoEmail += SteamwareStrings.charLine('-', 80);
gestEmail.geAuth.mandaEmail(fromEmail, adminEmail, oggettoEmail, corpoEmail);
}
}
// (B) recupero errori entrate/uscite, mando ad admin + utenti
if (memLayer.ML.confReadBool("checkAnomTimb"))
{
tabDipAndAnom = DataProxy.DP.taDipAnom.GetData(adesso.AddDays(-gg2Chk), adesso.AddHours(1), false, true, false);
tabTimbExpl = DataProxy.DP.taTimbExpl.getByDipAnomalia(0, adesso.AddDays(-gg2Chk), adesso.AddHours(1), false, true, false);
// se ho trovato record...
if (tabTimbExpl.Rows.Count > 0)
{
logger.lg.scriviLog("Trovate anomalie timbrature IN/OUT non corrispondenti, invio email!", tipoLog.INFO);
// mando email ad admin!
oggettoEmail = "Anomalie GPW: Timbrature mancanti";
if (memLayer.ML.confReadBool("includeDirectUrl"))
{
corpoEmail = string.Format("Risultano a sistema le seguenti anomalie:<br/><a href=\"{0}A1/reviewTimbrature.aspx\">timbrature mancanti / non corrispondenti</a><br/><br/>", memLayer.ML.confReadString("baseUrl"));
}
else
{
corpoEmail = "Risultano a sistema le seguenti anomalie: timbrature mancanti<br/>";
}
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
corpoEmail += "| -- DATA --\t| Dipendente<br/>";
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
foreach (DS_Applicazione.TimbratureExplRow riga in tabTimbExpl)
{
corpoEmail += string.Format("| {0:yyyy.MM.dd ddd}\t| {1}<br/>", riga.dataLav, riga.CognomeNome);
}
corpoEmail += SteamwareStrings.charLine('-', 80);
gestEmail.geAuth.mandaEmail(fromEmail, adminEmail, oggettoEmail, corpoEmail);
// re richiesto invio email utenti x warning entrate/uscrite
if (memLayer.ML.confReadBool("sendEmailToUser"))
{
// mando singole email ai dipendenti SE C'è EMAIL!!!!
foreach (DS_Applicazione.stp_DipendentiAndAnomalieRow rigaDip in tabDipAndAnom)
{
if (rigaDip.email != "")
int answ = 20;
try
{
tabTimbExpl = DataProxy.DP.taTimbExpl.getByDipAnomalia(rigaDip.idxDipendente, adesso.AddDays(-gg2Chk), adesso.AddHours(1), false, true, false);
// reimposto testo
if (memLayer.ML.confReadBool("includeDirectUrl"))
{
corpoEmail = string.Format("Risultano a sistema le seguenti anomalie:<br/><a href=\"{0}A4/commesseUtente.aspx\">timbrature mancanti / non corrispondenti</a><br/><br/>", memLayer.ML.confReadString("baseUrl"));
}
else
{
corpoEmail = "Risultano a sistema le seguenti anomalie: timbrature mancanti / non corrispondenti<br/>";
}
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
corpoEmail += "| -- DATA --\t| -- Dipendente --<br/>";
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
foreach (DS_Applicazione.TimbratureExplRow riga in tabTimbExpl)
{
corpoEmail += string.Format("| {0:yyyy.MM.dd ddd}\t| {1}<br/>", riga.dataLav, riga.CognomeNome);
}
corpoEmail += SteamwareStrings.charLine('-', 80);
gestEmail.geAuth.mandaEmail(fromEmail, rigaDip.email, oggettoEmail, corpoEmail);
answ = SteamWare.memLayer.ML.IntSessionObj("pageSize");
if (answ <= 0) answ = 20;
}
}
catch
{ }
return answ;
}
set
{
SteamWare.memLayer.ML.setSessionVal("pageSize", value);
}
}
}
/// <summary>
/// oggetto elenco clienti organizzato come dizionario con chiave idxCliente e valore la ragione sociale
/// </summary>
public Dictionary<string, string> elencoClienti
{
set
{
string redKey = memLayer.ML.redHash("elencoClienti");
string rawData = JsonConvert.SerializeObject(value);
memLayer.ML.setRSV(redKey, rawData, 60);
}
get
{
Dictionary<string, string> answ = new Dictionary<string, string>();
string redKey = memLayer.ML.redHash("elencoClienti");
string rawData = memLayer.ML.getRSV(redKey);
if (!string.IsNullOrEmpty(rawData))
{
try
{
answ = JsonConvert.DeserializeObject<Dictionary<string, string>>(rawData);
}
catch
{ }
}
if (answ.Count == 0)
{
answ = ricaricaElencoClienti();
elencoClienti = answ;
}
return answ;
}
}
/// <summary>
/// Effettua un insieme di controlli sulle anomalie delel timbrature/orari e invia le relative eventuali email
/// </summary>
/// <returns></returns>
public bool checkAnomalie()
{
bool answ = false;
try
{
// log richiesta!
logger.lg.scriviLog("Richiesto controllo anomalie!", tipoLog.INFO);
/*******************************************************
* controllo le varie anomalie delle timbrature:
*
* (A) mancate approvazioni --> admin
* (B) entrate <> uscite --> admin, user
* (C) mancata copertura orario --> admin
*
* (D) mancata copertura commesse (2 be done)
*
* recupero elenco dip interessati x le varie anomalie con stp_DipendentiAndAnomalie
* e poi da timbrExpl recupero le singole istanze di record errori
*
*******************************************************/
// (C) recupero errori mancata copertura orario, mando ad admin
if (memLayer.ML.confReadBool("checkAnomOreLav"))
{
tabDipAndAnom = DataProxy.DP.taDipAnom.GetData(adesso.AddDays(-gg2Chk), adesso.AddHours(1), false, false, true);
tabTimbExpl = DataProxy.DP.taTimbExpl.getByDipAnomalia(0, adesso.AddDays(-gg2Chk), adesso.AddHours(1), false, false, true);
// se ho trovato record...
if (tabTimbExpl.Rows.Count > 0)
{
logger.lg.scriviLog("Trovate anomalie copertura orario, invio email!", tipoLog.INFO);
// mando email ad admin!
oggettoEmail = "Anomalie GPW: Ore timbrate";
if (memLayer.ML.confReadBool("includeDirectUrl"))
{
corpoEmail = string.Format("Risultano a sistema le seguenti anomalie:<br/><a href=\"{0}A1/reviewTimbrature.aspx\">Orario timbrato non suff a copertura standard</a><br/><br/>", memLayer.ML.confReadString("baseUrl"));
}
else
{
corpoEmail = "Risultano a sistema le seguenti anomalie: Orario timbrato non suff a copertura standard<br/>";
}
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
corpoEmail += "| -- DATA --\t| -- Dipendente --<br/>";
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
foreach (DS_Applicazione.TimbratureExplRow riga in tabTimbExpl)
{
corpoEmail += string.Format("| {0:yyyy.MM.dd ddd}\t| {1}<br/>", riga.dataLav, riga.CognomeNome);
}
corpoEmail += SteamwareStrings.charLine('-', 80);
gestEmail.geAuth.mandaEmail(fromEmail, adminEmail, oggettoEmail, corpoEmail);
}
}
// setup valori base
string fromEmail = memLayer.ML.confReadString("_fromEmail");
string adminEmail = memLayer.ML.confReadString("adminAnomalieEmail");
string adminContinuatoEmail = memLayer.ML.confReadString("adminContinuatoEmail");
string adminOreLavEmail = memLayer.ML.confReadString("adminOreLavEmail");
string oggettoEmail = "";
string corpoEmail = "";
DS_Applicazione.stp_DipendentiAndAnomalieDataTable tabDipAndAnom = new DS_Applicazione.stp_DipendentiAndAnomalieDataTable();
DS_Applicazione.TimbratureExplDataTable tabTimbExpl = new DS_Applicazione.TimbratureExplDataTable();
DS_Applicazione.TE_RA_ExplDataTable tabTimbRegAtt = new DS_Applicazione.TE_RA_ExplDataTable();
DateTime adesso = DateTime.Now;
int gg2Chk = memLayer.ML.confReadInt("gg2Chk");
int gg2ChkCont = memLayer.ML.confReadInt("gg2ChkCont");
int gg2ChkOreCaricate = memLayer.ML.confReadInt("gg2ChkOreCaricate");
// (D) recupero errori copertura ore lavorate / ore caricate a commessa...
if (memLayer.ML.confReadBool("checkAnomOreLavComm"))
{
tabTimbRegAtt = DataProxy.DP.taTimbRegAtt.GetData(0, adesso.AddDays(-gg2ChkOreCaricate), adesso.AddHours(1), true, memLayer.ML.confReadInt("maxErrMin"), memLayer.ML.confReadInt("maxErrPlus"));
// sulla tabella seleziono SE NON E' OK colonna okLavCom
if (((DS_Applicazione.TE_RA_ExplRow[])tabTimbRegAtt.Select(" okLavCom = 0 ")).Length > 0)
{
logger.lg.scriviLog("Trovate anomalie ore lavorate / commesse caricate, invio email!", tipoLog.INFO);
// mando email ad admin!
oggettoEmail = "Anomalie GPW: Ore Caricate a commessa";
if (memLayer.ML.confReadBool("includeDirectUrl"))
// (A) recupero mancate approvazioni, mando solo ad admin
if (memLayer.ML.confReadBool("checkAnomAppr"))
{
tabTimbExpl = DataProxy.DP.taTimbExpl.getByDipAnomalia(0, adesso.AddDays(-gg2Chk), adesso.AddHours(1), true, false, false);
// se ho trovato record...
if (tabTimbExpl.Rows.Count > 0)
{
logger.lg.scriviLog("Trovate anomalie mancate approvazioni, invio email ad admin", tipoLog.INFO);
oggettoEmail = "Anomalie GPW: Approvazione Timbrature";
if (memLayer.ML.confReadBool("includeDirectUrl"))
{
corpoEmail = string.Format("Risultano a sistema le seguenti anomalie:<br/><a href=\"{0}A1/approvTimbrature.aspx\">timbrature da approvare</a><br/><br/>", memLayer.ML.confReadString("baseUrl"));
}
else
{
corpoEmail = "Risultano a sistema le seguenti anomalie: timbrature da approvare<br/>";
}
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
corpoEmail += "| -- DATA --\t| Dipendente<br/>";
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
foreach (DS_Applicazione.TimbratureExplRow riga in tabTimbExpl)
{
corpoEmail += string.Format("| {0:yyyy.MM.dd ddd}\t| {1}<br/>", riga.dataLav, riga.CognomeNome);
}
corpoEmail += SteamwareStrings.charLine('-', 80);
gestEmail.geAuth.mandaEmail(fromEmail, adminEmail, oggettoEmail, corpoEmail);
}
}
// (B) recupero errori entrate/uscite, mando ad admin + utenti
if (memLayer.ML.confReadBool("checkAnomTimb"))
{
tabDipAndAnom = DataProxy.DP.taDipAnom.GetData(adesso.AddDays(-gg2Chk), adesso.AddHours(1), false, true, false);
tabTimbExpl = DataProxy.DP.taTimbExpl.getByDipAnomalia(0, adesso.AddDays(-gg2Chk), adesso.AddHours(1), false, true, false);
// se ho trovato record...
if (tabTimbExpl.Rows.Count > 0)
{
logger.lg.scriviLog("Trovate anomalie timbrature IN/OUT non corrispondenti, invio email!", tipoLog.INFO);
// mando email ad admin!
oggettoEmail = "Anomalie GPW: Timbrature mancanti";
if (memLayer.ML.confReadBool("includeDirectUrl"))
{
corpoEmail = string.Format("Risultano a sistema le seguenti anomalie:<br/><a href=\"{0}A1/reviewTimbrature.aspx\">timbrature mancanti / non corrispondenti</a><br/><br/>", memLayer.ML.confReadString("baseUrl"));
}
else
{
corpoEmail = "Risultano a sistema le seguenti anomalie: timbrature mancanti<br/>";
}
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
corpoEmail += "| -- DATA --\t| Dipendente<br/>";
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
foreach (DS_Applicazione.TimbratureExplRow riga in tabTimbExpl)
{
corpoEmail += string.Format("| {0:yyyy.MM.dd ddd}\t| {1}<br/>", riga.dataLav, riga.CognomeNome);
}
corpoEmail += SteamwareStrings.charLine('-', 80);
gestEmail.geAuth.mandaEmail(fromEmail, adminEmail, oggettoEmail, corpoEmail);
// re richiesto invio email utenti x warning entrate/uscrite
if (memLayer.ML.confReadBool("sendEmailToUser"))
{
// mando singole email ai dipendenti SE C'è EMAIL!!!!
foreach (DS_Applicazione.stp_DipendentiAndAnomalieRow rigaDip in tabDipAndAnom)
{
if (!string.IsNullOrEmpty(rigaDip.email))
{
tabTimbExpl = DataProxy.DP.taTimbExpl.getByDipAnomalia(rigaDip.idxDipendente, adesso.AddDays(-gg2Chk), adesso.AddHours(1), false, true, false);
// reimposto testo
if (memLayer.ML.confReadBool("includeDirectUrl"))
{
corpoEmail = string.Format("Risultano a sistema le seguenti anomalie:<br/><a href=\"{0}A4/commesseUtente.aspx\">timbrature mancanti / non corrispondenti</a><br/><br/>", memLayer.ML.confReadString("baseUrl"));
}
else
{
corpoEmail = "Risultano a sistema le seguenti anomalie: timbrature mancanti / non corrispondenti<br/>";
}
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
corpoEmail += "| -- DATA --\t| -- Dipendente --<br/>";
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
foreach (DS_Applicazione.TimbratureExplRow riga in tabTimbExpl)
{
corpoEmail += string.Format("| {0:yyyy.MM.dd ddd}\t| {1}<br/>", riga.dataLav, riga.CognomeNome);
}
corpoEmail += SteamwareStrings.charLine('-', 80);
gestEmail.geAuth.mandaEmail(fromEmail, rigaDip.email, oggettoEmail, corpoEmail);
}
}
}
}
}
// (C) recupero errori mancata copertura orario, mando ad admin
if (memLayer.ML.confReadBool("checkAnomOreLav"))
{
tabDipAndAnom = DataProxy.DP.taDipAnom.GetData(adesso.AddDays(-gg2Chk), adesso.AddHours(1), false, false, true);
tabTimbExpl = DataProxy.DP.taTimbExpl.getByDipAnomalia(0, adesso.AddDays(-gg2Chk), adesso.AddHours(1), false, false, true);
// se ho trovato record...
if (tabTimbExpl.Rows.Count > 0)
{
logger.lg.scriviLog("Trovate anomalie copertura orario, invio email!", tipoLog.INFO);
// mando email ad admin!
oggettoEmail = "Anomalie GPW: Ore timbrate";
if (memLayer.ML.confReadBool("includeDirectUrl"))
{
corpoEmail = string.Format("Risultano a sistema le seguenti anomalie:<br/><a href=\"{0}A1/reviewTimbrature.aspx\">Orario timbrato non suff a copertura standard</a><br/><br/>", memLayer.ML.confReadString("baseUrl"));
}
else
{
corpoEmail = "Risultano a sistema le seguenti anomalie: Orario timbrato non suff a copertura standard<br/>";
}
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
corpoEmail += "| -- DATA --\t| -- Dipendente --<br/>";
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
foreach (DS_Applicazione.TimbratureExplRow riga in tabTimbExpl)
{
corpoEmail += string.Format("| {0:yyyy.MM.dd ddd}\t| {1}<br/>", riga.dataLav, riga.CognomeNome);
}
corpoEmail += SteamwareStrings.charLine('-', 80);
gestEmail.geAuth.mandaEmail(fromEmail, adminEmail, oggettoEmail, corpoEmail);
}
}
// (D) recupero errori copertura ore lavorate / ore caricate a commessa...
if (memLayer.ML.confReadBool("checkAnomOreLavComm"))
{
tabTimbRegAtt = DataProxy.DP.taTimbRegAtt.GetData(0, adesso.AddDays(-gg2ChkOreCaricate), adesso.AddHours(1), true, memLayer.ML.confReadInt("maxErrMin"), memLayer.ML.confReadInt("maxErrPlus"));
// sulla tabella seleziono SE NON E' OK colonna okLavCom
if (((DS_Applicazione.TE_RA_ExplRow[])tabTimbRegAtt.Select(" okLavCom = 0 ")).Length > 0)
{
logger.lg.scriviLog("Trovate anomalie ore lavorate / commesse caricate, invio email!", tipoLog.INFO);
// mando email ad admin!
oggettoEmail = "Anomalie GPW: Ore Caricate a commessa";
if (memLayer.ML.confReadBool("includeDirectUrl"))
{
corpoEmail = string.Format("Risultano a sistema le seguenti anomalie:<br/><a href=\"{0}A1/reviewTimbrature.aspx\">ore caricate a commessa non corrispondenti ad ore lavorate secondo range {1} min / {2} min</a><br/><br/>", memLayer.ML.confReadString("baseUrl"), memLayer.ML.confReadInt("maxErrMin"), memLayer.ML.confReadInt("maxErrPlus"));
}
else
{
corpoEmail = "Risultano a sistema le seguenti anomalie: ore caricate a commessa non corrispondenti ad ore lavorate<br/>";
}
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
corpoEmail += "| -- DATA --\t| -- Dipendente --\t\t| Progetti<br/>";
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
foreach (DS_Applicazione.TE_RA_ExplRow riga in (DS_Applicazione.TE_RA_ExplRow[])tabTimbRegAtt.Select(" okLavCom = 0 "))
{
corpoEmail += string.Format("| {0:yyyy.MM.dd ddd}\t| {1}\t| {2}<br/>", riga.dataLav, riga.CognomeNome, riga.progetti);
}
corpoEmail += SteamwareStrings.charLine('-', 80);
gestEmail.geAuth.mandaEmail(fromEmail, adminOreLavEmail, oggettoEmail, corpoEmail);
}
}
// (E) cerco anomalie x orario continuato (no Pausa Pranzo, solo 1 IN, 1 OUT)
if (memLayer.ML.confReadBool("checkAnomContinuato"))
{
tabTimbExpl = DataProxy.DP.taTimbExpl.getContinuato(0, adesso.AddDays(-gg2ChkCont), adesso.AddHours(1));
// se ho trovato record...
if (tabTimbExpl.Rows.Count > 0)
{
logger.lg.scriviLog("Trovate anomalie orario continuato, invio email ad admin", tipoLog.INFO);
oggettoEmail = "Anomalie GPW: Orario Continuato";
if (memLayer.ML.confReadBool("includeDirectUrl"))
{
corpoEmail = string.Format("Risultano a sistema le seguenti anomalie:<br/><a href=\"{0}A1/approvTimbrature.aspx\">orari continuati da approvare</a><br/><br/>", memLayer.ML.confReadString("baseUrl"));
}
else
{
corpoEmail = "Risultano a sistema le seguenti anomalie: orari continuati da approvare<br/>";
}
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
corpoEmail += "| -- DATA --\t| Dipendente<br/>";
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
foreach (DS_Applicazione.TimbratureExplRow riga in tabTimbExpl)
{
corpoEmail += string.Format("| {0:yyyy.MM.dd ddd}\t| {1}<br/>", riga.dataLav, riga.CognomeNome);
}
corpoEmail += SteamwareStrings.charLine('-', 80);
gestEmail.geAuth.mandaEmail(fromEmail, adminContinuatoEmail, oggettoEmail, corpoEmail);
}
}
answ = true;
}
catch (Exception exc)
{
corpoEmail = string.Format("Risultano a sistema le seguenti anomalie:<br/><a href=\"{0}A1/reviewTimbrature.aspx\">ore caricate a commessa non corrispondenti ad ore lavorate secondo range {1} min / {2} min</a><br/><br/>", memLayer.ML.confReadString("baseUrl"), memLayer.ML.confReadInt("maxErrMin"), memLayer.ML.confReadInt("maxErrPlus"));
logger.lg.scriviLog(string.Format("Errore in procedura check & invio email{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
answ = false;
}
//registro evento
DataProxy.DP.taRE.Insert(DateTime.Now, "checkAnomalie", "-");
return answ;
}
/// <summary>
/// Verifica ed eventualmente esegue gli script quotidiani tra cui il check anomalie
/// </summary>
/// <returns></returns>
public bool dailyDuties()
{
bool answ = false;
if (memLayer.ML.confReadBool("enableDailyCheck"))
{
if (memLayer.ML.confReadInt("_logLevel") > 5) logger.lg.scriviLog("Richiesto Check Daily Duties", tipoLog.INFO);
int firstHour2Check = memLayer.ML.confReadInt("firstHour2Check");
// controllo sfasato di x ore come da we.config se ci sia già stato il check quotidiano anomalie (con relative email)
if (DataProxy.DP.taRE.getByDataEv("checkAnomalie", DateTime.Now.AddHours(-firstHour2Check).Date).Rows.Count == 0)
{
// chiamo check anomalie
checkAnomalie();
//registro evento
DataProxy.DP.taRE.Insert(DateTime.Now.AddHours(-firstHour2Check), "dailyDuties", "-");
}
}
else
{
corpoEmail = "Risultano a sistema le seguenti anomalie: ore caricate a commessa non corrispondenti ad ore lavorate<br/>";
if (memLayer.ML.confReadInt("_logLevel") > 5) logger.lg.scriviLog("DISABILITATO Check Daily Duties", tipoLog.INFO);
}
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
corpoEmail += "| -- DATA --\t| -- Dipendente --\t\t| Progetti<br/>";
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
foreach (DS_Applicazione.TE_RA_ExplRow riga in (DS_Applicazione.TE_RA_ExplRow[])tabTimbRegAtt.Select(" okLavCom = 0 "))
{
corpoEmail += string.Format("| {0:yyyy.MM.dd ddd}\t| {1}\t| {2}<br/>", riga.dataLav, riga.CognomeNome, riga.progetti);
}
corpoEmail += SteamwareStrings.charLine('-', 80);
gestEmail.geAuth.mandaEmail(fromEmail, adminOreLavEmail, oggettoEmail, corpoEmail);
}
return answ;
}
// (E) cerco anomalie x orario continuato (no Pausa Pranzo, solo 1 IN, 1 OUT)
if (memLayer.ML.confReadBool("checkAnomContinuato"))
/// <summary>
/// formatta le ore in ore:minuti
/// </summary>
/// <param name="oreCent">ore centesimali (0,00)</param>
/// <returns></returns>
public static string formOreMin(decimal oreCent)
{
tabTimbExpl = DataProxy.DP.taTimbExpl.getContinuato(0, adesso.AddDays(-gg2ChkCont), adesso.AddHours(1));
// se ho trovato record...
if (tabTimbExpl.Rows.Count > 0)
{
logger.lg.scriviLog("Trovate anomalie orario continuato, invio email ad admin", tipoLog.INFO);
oggettoEmail = "Anomalie GPW: Orario Continuato";
if (memLayer.ML.confReadBool("includeDirectUrl"))
{
corpoEmail = string.Format("Risultano a sistema le seguenti anomalie:<br/><a href=\"{0}A1/approvTimbrature.aspx\">orari continuati da approvare</a><br/><br/>", memLayer.ML.confReadString("baseUrl"));
}
else
{
corpoEmail = "Risultano a sistema le seguenti anomalie: orari continuati da approvare<br/>";
}
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
corpoEmail += "| -- DATA --\t| Dipendente<br/>";
corpoEmail += string.Format("{0}<br/>", SteamwareStrings.charLine('-', 80));
foreach (DS_Applicazione.TimbratureExplRow riga in tabTimbExpl)
{
corpoEmail += string.Format("| {0:yyyy.MM.dd ddd}\t| {1}<br/>", riga.dataLav, riga.CognomeNome);
}
corpoEmail += SteamwareStrings.charLine('-', 80);
gestEmail.geAuth.mandaEmail(fromEmail, adminContinuatoEmail, oggettoEmail, corpoEmail);
}
return string.Format("{0}:{1:00}", Math.Floor(oreCent), Math.Round((oreCent - Math.Floor(oreCent)) * 60));
}
answ = true;
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("Errore in procedura check & invio email{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
answ = false;
}
//registro evento
DataProxy.DP.taRE.Insert(DateTime.Now, "checkAnomalie", "-");
return answ;
}
/// <summary>
/// Verifica ed eventualmente esegue gli script quotidiani tra cui il check anomalie
/// </summary>
/// <returns></returns>
public bool dailyDuties()
{
bool answ = false;
if (memLayer.ML.confReadBool("enableDailyCheck"))
{
if (memLayer.ML.confReadInt("_logLevel") > 5) logger.lg.scriviLog("Richiesto Check Daily Duties", tipoLog.INFO);
int firstHour2Check = memLayer.ML.confReadInt("firstHour2Check");
// controllo sfasato di x ore come da we.config se ci sia già stato il check quotidiano anomalie (con relative email)
if (DataProxy.DP.taRE.getByDataEv("checkAnomalie", DateTime.Now.AddHours(-firstHour2Check).Date).Rows.Count == 0)
{
// chiamo check anomalie
checkAnomalie();
//registro evento
DataProxy.DP.taRE.Insert(DateTime.Now.AddHours(-firstHour2Check), "dailyDuties", "-");
}
}
else
{
if (memLayer.ML.confReadInt("_logLevel") > 5) logger.lg.scriviLog("DISABILITATO Check Daily Duties", tipoLog.INFO);
}
return answ;
}
/// <summary>
/// formatta le ore in ore:minuti
/// </summary>
/// <param name="oreCent">ore centesimali (0,00)</param>
/// <returns></returns>
public static string formOreMin(decimal oreCent)
{
return string.Format("{0}:{1:00}", Math.Floor(oreCent), Math.Round((oreCent - Math.Floor(oreCent)) * 60));
}
}
}

Some files were not shown because too many files have changed in this diff Show More