diff --git a/GMW/Bootstrap.Master b/GMW/Bootstrap.Master index f6df2113..ad4401bf 100644 --- a/GMW/Bootstrap.Master +++ b/GMW/Bootstrap.Master @@ -5,6 +5,7 @@ + @@ -85,13 +86,16 @@ diff --git a/GMW/GMW.csproj b/GMW/GMW.csproj index e219fc8d..0140832b 100644 --- a/GMW/GMW.csproj +++ b/GMW/GMW.csproj @@ -413,6 +413,7 @@ + @@ -1453,6 +1454,13 @@ mod_selLineaNtDt.ascx + + mod_selPeriodo.ascx + ASPXCodeBehind + + + mod_selPeriodo.ascx + mod_spostaDataMatrix.ascx ASPXCodeBehind diff --git a/GMW/PostProveMecc.aspx b/GMW/PostProveMecc.aspx index cf49e004..9dff9de2 100644 --- a/GMW/PostProveMecc.aspx +++ b/GMW/PostProveMecc.aspx @@ -1,6 +1,6 @@ <%@ Page Title="" Language="C#" MasterPageFile="~/FullPage.master" AutoEventWireup="true" CodeBehind="PostProveMecc.aspx.cs" Inherits="GMW.PostProveMecc" %> -<%@ Register Src="WebUserControls/mod_selLineaNtDt.ascx" TagName="mod_selLineaNtDt" TagPrefix="uc1" %> +<%@ Register Src="WebUserControls/mod_selPeriodo.ascx" TagName="mod_selPeriodo" TagPrefix="uc1" %> <%@ Register Src="WebUserControls/mod_storicoAzioniOperatore.ascx" TagName="mod_storicoAzioniOperatore" TagPrefix="uc2" %> <%@ Register Src="WebUserControls/mod_PostProveMecc.ascx" TagName="mod_PostProveMecc" TagPrefix="uc3" %> @@ -8,10 +8,16 @@ - +
+
+
+ +
+
+
-
+
diff --git a/GMW/PostProveMecc.aspx.designer.cs b/GMW/PostProveMecc.aspx.designer.cs index 4354b37c..4120e161 100644 --- a/GMW/PostProveMecc.aspx.designer.cs +++ b/GMW/PostProveMecc.aspx.designer.cs @@ -13,13 +13,13 @@ namespace GMW { public partial class PostProveMecc { /// - /// mod_selLineaNtDt1 control. + /// mod_selPeriodo1 control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::GMW.WebUserControls.mod_selLineaNtDt mod_selLineaNtDt1; + protected global::GMW.WebUserControls.mod_selPeriodo mod_selPeriodo1; /// /// pnlAll control. diff --git a/GMW/WebUserControls/mod_PostProveMecc.ascx b/GMW/WebUserControls/mod_PostProveMecc.ascx index 85edc99a..da33414a 100644 --- a/GMW/WebUserControls/mod_PostProveMecc.ascx +++ b/GMW/WebUserControls/mod_PostProveMecc.ascx @@ -53,11 +53,10 @@ - <%-- - --%> - - - + + + <%-- + --%> @@ -138,11 +137,10 @@ - <%-- - --%> - - - + + + <%-- + --%> diff --git a/GMW/WebUserControls/mod_selPeriodo.ascx b/GMW/WebUserControls/mod_selPeriodo.ascx new file mode 100644 index 00000000..62fe2881 --- /dev/null +++ b/GMW/WebUserControls/mod_selPeriodo.ascx @@ -0,0 +1,110 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_selPeriodo.ascx.cs" Inherits="GMW.WebUserControls.mod_selPeriodo" %> + + + +   + + + 00 + 01 + 02 + 03 + 04 + 05 + 06 + 07 + 08 + 09 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + + + →  + + + 00 + 01 + 02 + 03 + 04 + 05 + 06 + 07 + 08 + 09 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + + +    + + selezione + oggi + ieri + questa settimana + ultimi 7gg + questo mese + ultimi 30gg + 1 anno + +    + +    + +   + diff --git a/GMW/WebUserControls/mod_selPeriodo.ascx.cs b/GMW/WebUserControls/mod_selPeriodo.ascx.cs new file mode 100644 index 00000000..b49f60d5 --- /dev/null +++ b/GMW/WebUserControls/mod_selPeriodo.ascx.cs @@ -0,0 +1,313 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using SteamWare; + + +namespace GMW.WebUserControls +{ + public partial class mod_selPeriodo : System.Web.UI.UserControl + { + #region area protected + + protected intervalloDate _intervallo; + + /// + /// avvio componente + /// + /// + protected override void OnInit(EventArgs e) + { + base.OnInit(e); + setIntervallo(); + setDurataMin(); + } + /// + /// definisce se sia da mostrare il selettore delle ore nel controllo + /// + protected bool mostraSelOra + { + get + { + bool answ = false; + if (memLayer.ML.isInSessionObject("mostraSelOra")) + { + answ = memLayer.ML.BoolSessionObj("mostraSelOra"); + } + else + { + // leggo da sessione e salvo... + try + { + answ = memLayer.ML.confReadBool("mostraSelOra"); + } + catch + { } + memLayer.ML.setSessionVal("mostraSelOra", answ); + } + return answ; + } + } + + /// + /// gestione del selettore rapido dell'intervallo temporale... + /// + /// + /// + protected void ddlSelPeriodo_SelectedIndexChanged(object sender, EventArgs e) + { + // verifico cosa sia cambiato ed imposto date... + datario _datario = new datario(); + switch (ddlSelPeriodo.SelectedValue) + { + case "oggi": + _intervallo = _datario.giornata(DateTime.Now); + break; + case "ieri": + _intervallo = _datario.giornata(DateTime.Now.AddDays(-1)); + break; + case "ultimi 7gg": + _intervallo = _datario.ultimiGiorni(DateTime.Now, 7); + break; + case "questa settimana": + _intervallo = _datario.questaSett(DateTime.Now); + break; + case "ultimi 30gg": + _intervallo = _datario.ultimiGiorni(DateTime.Now, 30); + break; + case "questo mese": + _intervallo = _datario.questoMese(DateTime.Now); + break; + case "1 anno": + _intervallo = _datario.ultimiGiorni(DateTime.Now, 366); + break; + default: + break; + } + if ((intervalloAnalisi.inizio != _intervallo.inizio) || (intervalloAnalisi.fine != _intervallo.fine)) + { + verificaCoerenzaDate(); + aggiornaDateMostrate(false); + // mostro btn update + btnUpdate.Visible = true; + } + } + /// + /// effettua update delle date mostrate da intervallo analisi (ed eventualmente riporta update...) + /// + /// + private void aggiornaDateMostrate(bool doReportUpdate) + { + scriviDate(); + if (doReportUpdate) + { + reportUpdate(); + } + } + /// + /// scrive nuove date in controllo + /// + private void scriviDate() + { + // se intervallo non è valorizzato leggo da sessione... + if (!_intervallo.isValid) + { + _intervallo = intervalloAnalisi; + } + txtInizio.Text = _intervallo.inizio.ToShortDateString(); + ddlOraInizio.SelectedValue = _intervallo.inizio.Hour.ToString("00"); + txtFine.Text = _intervallo.fine.ToShortDateString(); + ddlOraFine.SelectedValue = _intervallo.fine.Hour.ToString("00"); + if (mostraSelOra) + { + ddlOraInizio.Visible = true; + ddlOraFine.Visible = true; + } + else + { + ddlOraInizio.Visible = false; + ddlOraFine.Visible = false; + } + } + /// + /// imposta intervallo da sessione o di default + /// + private void setIntervallo() + { + intervalloDate _intervallo; + try + { + _intervallo = (intervalloDate)Session["_intervallo"]; + } + catch + { + _intervallo = new intervalloDate(); + _intervallo.inizio = DateTime.Now.AddDays(memLayer.ML.confReadInt("defDayFrom")); + _intervallo.fine = DateTime.Now.AddDays(1); + Session["_intervallo"] = _intervallo; + Session["_inizio"] = _intervallo.inizio; + Session["_fine"] = _intervallo.fine; + } + scriviDate(); + } + /// + /// imposta durata minima + /// + private void setDurataMin() + { + int _durataMin; + try + { + _durataMin = (int)Session["_durataMin"]; + } + catch + { + _durataMin = 0; + Session["_durataMin"] = _durataMin; + } + txtDurataMin.Text = _durataMin.ToString(); + } + /// + /// caricamento pagina + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + lblPeriodo.Text = "Periodo di riferimento: "; + txtInizio.ToolTip = "inizio periodo di riferimento per i dati mostrati"; + txtFine.ToolTip = "fine periodo di riferimento per i dati mostrati"; + lblDurataMin.Text = "Visualizza eventi con durata superiore a"; + } + + + private void aggiornaPeriodo() + { + _intervallo = new intervalloDate(); + // calcolo tempi arrotondati + int oraInizio = Convert.ToInt32(ddlOraInizio.SelectedValue); + int oraFine = Convert.ToInt32(ddlOraFine.SelectedValue); + _intervallo.inizio = Convert.ToDateTime(txtInizio.Text).AddHours(oraInizio); + _intervallo.fine = Convert.ToDateTime(txtFine.Text).AddHours(oraFine); + verificaCoerenzaDate(); + int _durataMin; + _durataMin = Convert.ToInt32(txtDurataMin.Text); + Session["_durataMin"] = _durataMin; + reportUpdate(); + + } + /// + /// verifica che le date dell'intervallo siano coerenti (inizio < fine) + /// + private void verificaCoerenzaDate() + { + // controllo date siano coerenti (fine > inizio)... + if (_intervallo.inizio >= _intervallo.fine) + { + // controllo non siano date successive ad oggi... + if (_intervallo.fine > DateTime.Now) + { + _intervallo.fine = DateTime.Now; + } + _intervallo.inizio = _intervallo.fine.AddDays(-1); + } + //intervalloAnalisi = _intervallo; + aggiornaDateMostrate(false); + } + /// + /// evento cambio testo data inizio + /// + /// + /// + protected void txtInizio_TextChanged(object sender, EventArgs e) + { + // imposto il selettore a discesa... + setPeriodoFree(); + // mostro btn update + btnUpdate.Visible = true; + } + /// + /// evento cambio testo data fine + /// + /// + /// + protected void txtFine_TextChanged(object sender, EventArgs e) + { + // imposto il selettore a discesa... + setPeriodoFree(); + // mostro btn update + btnUpdate.Visible = true; + } + /// + /// in questo caso faccio udpate periodo mostrato + /// + /// + /// + protected void btnUpdate_Click(object sender, EventArgs e) + { + aggiornaPeriodo(); + // nascondo btn update + btnUpdate.Visible = false; + } + /// + /// riporta aggiornamento a controller + /// + protected void reportUpdate() + { + intervalloAnalisi = _intervallo; + // alzo l'evento d update/inserimento e ricarico cache... + if (eh_doUpdate != null) + { + eh_doUpdate(this, new EventArgs()); + } + } + + #endregion + + #region area public + + public intervalloDate intervalloAnalisi + { + get + { + return (intervalloDate)Session["_intervallo"]; + } + set + { + intervalloDate interv = value; + Session["_intervallo"] = interv; + Session["_inizio"] = interv.inizio; + Session["_fine"] = interv.fine; + _intervallo = interv; + aggiornaDateMostrate(false); + } + } + /// + /// effettua update + /// + /// + public void doUpdate(bool doReportUpdate) + { + aggiornaDateMostrate(doReportUpdate); + } + /// + /// imposta periodo libero di selezione + /// + public void setPeriodoFree() + { + ddlSelPeriodo.SelectedIndex = 0; + } + + #region gestione eventi + + public event EventHandler eh_doUpdate; + + #endregion + + + #endregion + } +} \ No newline at end of file diff --git a/GMW/WebUserControls/mod_selPeriodo.ascx.designer.cs b/GMW/WebUserControls/mod_selPeriodo.ascx.designer.cs new file mode 100644 index 00000000..b4382491 --- /dev/null +++ b/GMW/WebUserControls/mod_selPeriodo.ascx.designer.cs @@ -0,0 +1,96 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GMW.WebUserControls { + + + public partial class mod_selPeriodo { + + /// + /// lblPeriodo control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblPeriodo; + + /// + /// txtInizio control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtInizio; + + /// + /// ddlOraInizio control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.DropDownList ddlOraInizio; + + /// + /// txtFine control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtFine; + + /// + /// ddlOraFine control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.DropDownList ddlOraFine; + + /// + /// ddlSelPeriodo control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.DropDownList ddlSelPeriodo; + + /// + /// btnUpdate control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btnUpdate; + + /// + /// lblDurataMin control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblDurataMin; + + /// + /// txtDurataMin control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtDurataMin; + } +} diff --git a/GMW/bin/GMW.dll b/GMW/bin/GMW.dll index b07b6d91..8ee65cf8 100644 Binary files a/GMW/bin/GMW.dll and b/GMW/bin/GMW.dll differ diff --git a/GMW/bin/GMW_data.dll b/GMW/bin/GMW_data.dll index f75e4859..dd7dc51c 100644 Binary files a/GMW/bin/GMW_data.dll and b/GMW/bin/GMW_data.dll differ diff --git a/GMW/bin/SteamWare.dll b/GMW/bin/SteamWare.dll index b3a907ec..b0ac08fb 100644 Binary files a/GMW/bin/SteamWare.dll and b/GMW/bin/SteamWare.dll differ