Files
GPW/GPW_Smart/WebUserControls/mod_timbrature.ascx.cs
T
Samuele E. Locatelli 70fb774033 Fix parametri timbrature
2019-10-03 18:38:02 +02:00

265 lines
6.2 KiB
C#

using GPW_data;
using SteamWare;
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace GPW.WebUserControls
{
public partial class mod_timbrature : System.Web.UI.UserControl
{
protected bool forceButtons
{
get
{
return !abilitaAll;
}
set
{
abilitaAll = !(value);
}
}
public bool abilitaAll
{
get
{
bool answ = false;
try
{
string rawData = memLayer.ML.getRSV("abilitaAll");
bool.TryParse(rawData, out answ);
}
catch
{ }
return answ;
}
set
{
int ttlSec = value ? memLayer.ML.CRI("ttlAbilitaAll") : 0;
memLayer.ML.setRSV("abilitaAll", value.ToString(), ttlSec);
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// verifico se ci sia un numero di righe selezionate altrimenti lo imposto...
if (!memLayer.ML.isInSessionObject("numColEU")) numColEU = 2;
if (!memLayer.ML.isInSessionObject("numRowTimb")) numRowTimb = 10;
memLayer.ML.setSessionVal("dataRif", DateTime.Today);
}
setButtons();
}
public int numColEU
{
get
{
int answ = 2;
try
{
answ = memLayer.ML.IntSessionObj("numColEU");
}
catch
{ }
if (answ <= 0) answ = 2;
return answ;
}
set
{
memLayer.ML.setSessionVal("numColEU", value);
}
}
public int numRowTimb
{
get
{
return memLayer.ML.IntSessionObj("numRowTimb");
}
set
{
memLayer.ML.setSessionVal("numRowTimb", value);
}
}
/// <summary>
/// fix buttons button
/// </summary>
private void setButtons()
{
// controllo SE voglio inibire i buttons...
if (forceButtons)
{
// controllo se il prox comando DOVREBBE essere entrata o uscita
bool nextIsEntrata = true;
// controllo dipendente
if (IdxDipendente > 0)
{
// ricavo ultima timbratura..
nextIsEntrata = timbratrice.nextIsEntrata(IdxDipendente);
// di conseguenza cambio abilitazione ad un buttons
if (nextIsEntrata)
{
fixBtnInOut(true, false);
}
else
{
fixBtnInOut(false, true);
}
}
else
{
fixBtnInOut(false, false);
}
}
else
{
fixBtnInOut(true, true);
}
}
private void fixBtnInOut(bool showIn, bool showOut)
{
lbtEntrata.Enabled = showIn;
lbtUscita.Enabled = showOut;
lbtEntrata.CssClass = showIn ? "btn btn-primary btn-block" : "btn btn-outline-primary disabled btn-block";
lbtUscita.CssClass = showOut ? "btn btn-success btn-block" : "btn btn-outline-success disabled btn-block";
}
/// <summary>
/// timbro entrata...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtEntrata_Click(object sender, EventArgs e)
{
bool isEntrata = true;
registraTimbratura(isEntrata);
}
/// <summary>
/// uscita...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtUscita_Click(object sender, EventArgs e)
{
bool isEntrata = false;
registraTimbratura(isEntrata);
}
#if false
/// <summary>
/// Abilita tutti i buttons
/// </summary>
public void abilitaAll()
{
forceButtons = false;
}
#endif
/// <summary>
/// Aggiorno visualizzazione
/// </summary>
public void doUpdate()
{
setButtons();
grView.DataBind();
}
/// <summary>
/// update elenco ultime timbrature
/// </summary>
private void updateTimbrature()
{
// aggiorno datagrid
}
/// <summary>
/// registro timbratura
/// </summary>
/// <param name="isEntrata"></param>
/// <returns></returns>
private int registraTimbratura(bool isEntrata)
{
// salvo evento entrata...
string IPv4 = "";
bool approvata = false;
if (IdxDipendente > 0)
{
// recupero IP
IPv4 = Request.UserHostName;
// controllo se IP locale = approvata...
if (IPv4.Contains(memLayer.ML.confReadString("localNet")))
{
approvata = true;
}
timbratrice.registraTimbratura(IdxDipendente, DateTime.Now, isEntrata, IPv4, "Web", approvata);
lblWarning.Visible = false;
abilitaAll = false;
//aggiorno timbrature visualizzate
setButtons();
updateTimbrature();
grView.DataBind();
}
else
{
lblWarning.Text = "IdxDipendente non trovato! timbratura impossibile";
lblWarning.Visible = true;
}
return IdxDipendente;
}
/// <summary>
/// idx dipendente loggato
/// </summary>
protected int IdxDipendente
{
get
{
int idx = 0;
try
{
idx = memLayer.ML.IntSessionObj("IdxDipendente");
}
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;
}
protected void grView_RowCreated(object sender, GridViewRowEventArgs e)
{
int maxNum = e.Row.Cells.Count - 2;
for (int i = numColEU * 2 + 1; i < maxNum; i++)
{
e.Row.Cells[i].Visible = false;
}
}
protected void grView_SelectedIndexChanged(object sender, EventArgs e)
{
// rimando ai progetti sulla data indicata...
DateTime dataRif = DateTime.Today;
try
{
dataRif = Convert.ToDateTime(grView.SelectedDataKey["dataLav"]);
}
catch
{ }
// salvo in sessione...
memLayer.ML.setSessionVal("dataRif", dataRif);
// reinvio
Response.Redirect(string.Format("Progetti?dataRif={0:yyyy-MM-dd}", dataRif));
}
}
}