Files
WebGIM/GIM_site/WebUserControls/mod_periodoAnalisi.ascx.cs
2017-05-18 10:26:07 +02:00

263 lines
8.2 KiB
C#

using SteamWare;
using System;
using System.Web.UI;
public partial class mod_periodoAnalisi : System.Web.UI.UserControl
{
#region area protected
/// <summary>
/// stringa UID univoca
/// </summary>
public string uid
{
get
{
return this.UniqueID.Replace("$", "_").Replace("-", "_");
}
}
protected intervalloDate _intervallo;
protected override void OnInit(EventArgs e)
{ base.OnInit(e);
setIntervallo();
}
/// <summary>
/// gestione del selettore rapido dell'intervallo temporale...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPeriodo_SelectedIndexChanged(object sender, EventArgs e)
{
intervalloDate _intervallo = new intervalloDate();
// verifico cosa sia cambiato ed imposto date...
datario _datario = new datario();
switch (ddlPeriodo.SelectedValue)
{
case "1_today":
_intervallo = _datario.giornata(DateTime.Now);
break;
case "2_yesterday":
_intervallo = _datario.giornata(DateTime.Now.AddDays(-1));
break;
case "3_last_7":
_intervallo = _datario.ultimiGiorni(DateTime.Now, 7);
break;
case "4_this_week":
_intervallo = _datario.questaSett(DateTime.Now);
break;
case "5_last_30":
_intervallo = _datario.ultimiGiorni(DateTime.Now, 30);
break;
case "6_this_month":
_intervallo = _datario.questoMese(DateTime.Now);
break;
case "7_last_month":
_intervallo = _datario.estremiMese(DateTime.Now.AddMonths(-1));
break;
case "8_this_year":
_intervallo = _datario.estremiAnno(DateTime.Now);
break;
case "9_last_year":
_intervallo = _datario.estremiAnno(DateTime.Now.AddYears(-1));
break;
case "10_next_7":
_intervallo = _datario.prossimiGiorni(DateTime.Now, 7);
break;
case "11_next_15":
_intervallo = _datario.prossimiGiorni(DateTime.Now, 15);
break;
case "12_next_30":
_intervallo = _datario.prossimiGiorni(DateTime.Now, 30);
break;
default:
break;
}
intervalloAnalisi = _intervallo;
aggiornaDateMostrate();
}
private void aggiornaDateMostrate()
{
txtInizio.Text = intervalloAnalisi.inizio.ToString(memLayer.ML.CRS("ddMMyyyy")); // .ToShortDateString();
txtFine.Text = intervalloAnalisi.fine.AddDays(-1).ToString(memLayer.ML.CRS("ddMMyyyy")); // .ToShortDateString(); // mostro 1 gg in meno xché termina alle 00:00...
reportUpdate();
}
private void setIntervallo()
{
intervalloDate _intervallo;
try
{
_intervallo = (intervalloDate)Session["_intervallo"];
}
catch
{
_intervallo = new intervalloDate();
// in base al tipo intervallo (futuro/all) decido cosa mostrare...
if(periodo== datario.periodo.future)
{
_intervallo.inizio = DateTime.Now.Subtract(DateTime.Now.TimeOfDay);
_intervallo.fine = _intervallo.inizio.AddDays(7);
}
else
{
_intervallo.fine = DateTime.Now.Subtract(DateTime.Now.TimeOfDay).AddDays(1);
_intervallo.inizio = _intervallo.fine.AddMonths(-1);
}
Session["_intervallo"] = _intervallo;
Session["_inizio"] = _intervallo.inizio;
Session["_fine"] = _intervallo.fine;
}
txtInizio.Text = _intervallo.inizio.ToString(memLayer.ML.CRS("ddMMyyyy")); //.ToShortDateString();
txtFine.Text = _intervallo.fine.ToString(memLayer.ML.CRS("ddMMyyyy")); //.ToShortDateString();
}
/// <summary>
/// wrapper traduzione
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(object lemma)
{
return user_std.UtSn.Traduci(lemma.ToString());
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
lblPeriodo.Text = traduci("periodoRif");
txtInizio.ToolTip = traduci("inizioPeriodo");
txtFine.ToolTip = traduci("finePeriodo");
CalendarExtender1.Format = memLayer.ML.CRS("ddMMyyyy");
CalendarExtender2.Format = memLayer.ML.CRS("ddMMyyyy");
}
}
protected void txtInizio_TextChanged(object sender, EventArgs e)
{
// imposto il selettore a discesa...
ddlPeriodo.SelectedIndex = 0;
// se campo vuoto imposto oggi...
if (txtInizio.Text == "")
{
txtInizio.Text = DateTime.Now.ToString(memLayer.ML.CRS("ddMMyyyy")); //.ToShortDateString();
}
else
{
txtInizio.Text = WebGimUtils.convDate(txtInizio.Text, memLayer.ML.CRS("ddMMyyyy"), memLayer.ML.CRS("culture")).ToString(memLayer.ML.CRS("ddMMyyyy")); //Convert.ToDateTime(txtInizio.Text).ToShortDateString();
}
// aggiorno dati in session...
aggiornaPeriodo();
}
private void aggiornaPeriodo()
{
_intervallo = new intervalloDate();
_intervallo.inizio = WebGimUtils.convDate(txtInizio.Text, memLayer.ML.CRS("ddMMyyyy"), memLayer.ML.CRS("culture")); // Convert.ToDateTime(txtInizio.Text);
_intervallo.fine = WebGimUtils.convDate(txtFine.Text, memLayer.ML.CRS("ddMMyyyy"), memLayer.ML.CRS("culture")).Date.AddDays(1); //((DateTime)Convert.ToDateTime(txtFine.Text)).Date.AddDays(1);
//_intervallo.fine = ((DateTime)Convert.ToDateTime(txtFine.Text)).Date.AddDays(1).AddMinutes(-1);
intervalloAnalisi = _intervallo;
reportUpdate();
}
protected void txtFine_TextChanged(object sender, EventArgs e)
{
// imposto il selettore a discesa...
ddlPeriodo.SelectedIndex = 0;
// se campo vuoto imposto oggi...
if (txtFine.Text == "")
{
txtFine.Text = DateTime.Now.AddDays(1).ToString(memLayer.ML.CRS("ddMMyyyy")); //.ToShortDateString();
}
else
{
txtFine.Text = WebGimUtils.convDate(txtFine.Text, memLayer.ML.CRS("ddMMyyyy"), memLayer.ML.CRS("culture")).ToString(memLayer.ML.CRS("ddMMyyyy")); //Convert.ToDateTime(txtFine.Text).ToShortDateString();
}
// aggiorno dati in session...
aggiornaPeriodo();
}
protected void reportUpdate()
{
// 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;
}
}
public void doUpdate()
{
aggiornaDateMostrate();
}
public void setPeriodoFree()
{
ddlPeriodo.SelectedIndex = 0;
}
protected datario.periodo _periodo { get; set; }
/// <summary>
/// Tipologia periodo mostrato...
/// </summary>
public datario.periodo periodo
{
get
{
return _periodo;
}
set
{
_periodo = value;
switch (_periodo)
{
case datario.periodo.past:
hfTPer.Value = "-1";
break;
case datario.periodo.future:
hfTPer.Value = "1";
break;
case datario.periodo.all:
case datario.periodo.nd:
default:
hfTPer.Value = "0";
break;
}
ddlPeriodo.DataBind();
}
}
#region gestione eventi
public event EventHandler eh_doUpdate;
#endregion
#endregion
}