Files
SSC/CMS_SC/Collaudi.aspx.cs
T
2017-03-13 12:52:29 +01:00

473 lines
15 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CMS_SC_Data;
using SteamWare;
namespace CMS_SC
{
public partial class Collaudi : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
((Bootstrap)this.Master).showSearch = true;
// default: nascondo dettagli e storico!
showDetail = false;
showHist = false;
fixPaginazione();
tryGetParam();
fixPanels();
fixControls();
fixControlsPrev();
}
mod_righePagStato.eh_newNum += mod_righePagStato_eh_newNum;
mod_righePag.eh_newNum += mod_righePag_eh_newNum;
mod_righePagPrev.eh_newNum += mod_righePagPrev_eh_newNum;
mod_StatoCollaudi.eh_ucev += Mod_StatoCollaudi_eh_ucev;
}
/// <summary>
/// gestione eventi selezione panel stato collaudi
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Mod_StatoCollaudi_eh_ucev(object sender, EventArgs e)
{
// verifico se devo fare un cambio di visibilità dettagli...
ucEvent evento = (ucEvent)e;
switch (evento.tipoEvento)
{
case ucEvType.ReqUpdateParent:
case ucEvType.Selected:
showDetail = true;
break;
case ucEvType.Reset:
default:
showDetail = false;
break;
}
// fix pannelli
fixPanels();
if (showDetail)
{
fixControls();
fixControlsPrev();
}
}
/// <summary>
/// sistemazione controlli paginazione
/// </summary>
private void fixPaginazione()
{
// pannello stato schede
mod_righePagStato.numRowPag = 10;
if (getPar("numRowPagColl_Stato") != "")
{
try
{
mod_righePagStato.numRowPag = Convert.ToInt32(getPar("numRowPagColl_Stato"));
}
catch
{ }
}
mod_StatoCollaudi.pageSize = mod_righePagStato.numRowPag;
// pannello principale
mod_righePag.numRowPag = 10;
if (getPar("numRowPagColl_Main") != "")
{
try
{
mod_righePag.numRowPag = Convert.ToInt32(getPar("numRowPagColl_Main"));
}
catch
{ }
}
mod_collaudi.pageSize = mod_righePag.numRowPag;
// pannello secondario
mod_righePagPrev.numRowPag = 20;
if (getPar("numRowPagColl_Sec") != "")
{
try
{
mod_righePagPrev.numRowPag = Convert.ToInt32(getPar("numRowPagColl_Sec"));
}
catch
{ }
}
mod_collaudiPrev.pageSize = mod_righePagPrev.numRowPag;
}
/// <summary>
/// cerca di recuperare i 3 parametri selezionati dall'utente (SE ci sono su DB)
/// </summary>
private void tryGetParam()
{
// rileggo SE CI SONO i parametri filtrati...
if (getPar("ddlFase") != "")
{
ddlFase.DataBind();
try
{
ddlFase.SelectedValue = getPar("ddlFase");
}
catch
{
ddlFase.SelectedIndex = 0;
}
}
// rileggo SE CI SONO i parametri filtrati...
if (getPar("ddlDossier") != "")
{
ddlDossier.DataBind();
try
{
ddlDossier.SelectedValue = getPar("ddlDossier");
}
catch
{
ddlDossier.SelectedIndex = 0;
}
}
}
/// <summary>
/// recupera (se c'è) da db il parametro selezionato dall'utente
/// </summary>
/// <param name="paramName"></param>
/// <returns></returns>
protected string getPar(string paramName)
{
string answ = "";
try
{
answ = DtProxy.man.taUsrPar.getByKey(OpAuth.currAuth.email, paramName)[0].ParValue;
}
catch
{ }
return answ;
}
/// <summary>
/// salva su DB il parametro scelto dall'utente
/// </summary>
/// <param name="paramName"></param>
/// <param name="paramValue"></param>
protected void savePar(string paramName, string paramValue)
{
DtProxy.man.taUsrPar.upsert(OpAuth.currAuth.email, paramName, paramValue);
}
private void mod_righePagStato_eh_newNum(object sender, EventArgs e)
{
savePar("numRowPagColl_Stato", mod_righePagStato.numRowPag.ToString());
mod_StatoCollaudi.pageSize = mod_righePagStato.numRowPag;
}
void mod_righePag_eh_newNum(object sender, EventArgs e)
{
savePar("numRowPagColl_Main", mod_righePag.numRowPag.ToString());
mod_collaudi.pageSize = mod_righePag.numRowPag;
}
void mod_righePagPrev_eh_newNum(object sender, EventArgs e)
{
savePar("numRowPagColl_Sec", mod_righePagPrev.numRowPag.ToString());
mod_collaudiPrev.pageSize = mod_righePagPrev.numRowPag;
}
void mod_collaudi_eh_selezioneValore(object sender, EventArgs e)
{
fixControls();
}
/// <summary>
/// sistema pannelli PRINCIPALI
/// </summary>
private void fixPanels()
{
// tolgo css a blocco stato, main, hist
divStato.Attributes.Remove("class");
// verifico SE devo mostrare detail...
if (showDetail)
{
divStato.Attributes.Add("class", "col-md-5 col-lg-4");
divMain.Visible = true;
}
else
{
divStato.Attributes.Add("class", "col-sm-12");
divMain.Visible = false;
}
}
/// <summary>
/// sistema DropDownList
/// </summary>
private void fixControls()
{
btnShowHideHist.DataBind();
btnAddNewSetMis.DataBind();
btnAddNewSetMis.Visible = addNewVisible;
btnRemSetMis.DataBind();
btnRemSetMis.Visible = !addNewVisible && remMisVisible; // non devo inserire nulla e non ho nessuna misura inserita...
// aggiorno modulo stato..
mod_StatoCollaudi.Fase = Fase;
mod_StatoCollaudi.idxDossier = IdxDossier.ToString();
// rileggo SE CI SONO i parametri filtrati...
if (getPar("ddlSelScheda") != "")
{
mod_StatoCollaudi.CodSchedaVersNum = getPar("ddlSelScheda");
}
// aggiorno modulo collaudi
mod_collaudi.IdxDossier = IdxDossier;
mod_collaudi.CodSchedaVers = CodSchedaVers;
mod_collaudi.Fase = Fase;
mod_collaudi.doUpdate();
}
private void fixControlsPrev()
{
// aggiorno modulo stato..
mod_StatoCollaudi.idxDossier = IdxDossier.ToString();
mod_StatoCollaudi.Fase = Fase;
// tolgo css a blocco main
divMain.Attributes.Remove("class");
// verifico SE devo mostrare storico...
if (showHist)
{
// imposto css x mostrare 2 blocchi
divMain.Attributes.Add("class", "col-md-4 col-lg-4");
btnShowHideHist.Text = traduci("btnHideHist");
divHist.Visible = true;
// sistemo dati storici
mod_collaudiPrev.IdxDossier = IdxDossier;
mod_collaudiPrev.CodSchedaVers = CodSchedaVers;
mod_collaudiPrev.Fase = FasePrev;
mod_collaudiPrev.doUpdate();
}
else
{
// imposto css x mostrare solo blocco corrente e nascondo altro...
divMain.Attributes.Add("class", "col-md-7 col-lg-8");
btnShowHideHist.Text = traduci("btnShowHist");
divHist.Visible = false;
}
}
protected int IdxDossier
{
get
{
int answ = -1;
if (ddlDossier.SelectedValue != "")
{
try
{
answ = Convert.ToInt32(ddlDossier.SelectedValue);
}
catch
{ }
}
return answ;
}
set
{
ddlDossier.SelectedValue = value.ToString();
}
}
protected string CodSchedaVers
{
get
{
return mod_StatoCollaudi.CodSchedaVersNum;
}
set
{
mod_StatoCollaudi.CodSchedaVersNum = value;
}
}
protected string Fase
{
get
{
string answ = "-";
try
{
answ = ddlFase.SelectedValue;
}
catch
{
answ = "-";
}
return answ;
}
set
{
ddlFase.SelectedValue = value;
}
}
protected string FasePrev
{
get
{
string answ = "-";
try
{
answ = ddlFasePrev.SelectedValue;
}
catch
{
answ = "-";
}
return answ;
}
}
protected void ddlDossier_SelectedIndexChanged(object sender, EventArgs e)
{
// salvo!
savePar("ddlDossier", ddlDossier.SelectedValue);
// fix visualizzazione
fixControls();
fixControlsPrev();
}
protected void ddlFase_SelectedIndexChanged(object sender, EventArgs e)
{
// salvo!
savePar("ddlFase", ddlFase.SelectedValue);
// fix visualizzazione
ddlDossier.DataBind();
fixControls();
// salvo anche dossier!
savePar("ddlDossier", ddlDossier.SelectedValue);
}
protected void ddlFasePrev_SelectedIndexChanged(object sender, EventArgs e)
{
fixControlsPrev();
}
/// <summary>
/// wrapper traduzione
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(string lemma)
{
return user_std.UtSn.Traduci(lemma);
}
/// <summary>
/// aggiungo set misure (eventualmente) mancanti
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAddNewSetMis_click(object sender, EventArgs e)
{
int idxDossier = Convert.ToInt32(ddlDossier.SelectedValue);
DtProxy.man.taMis.insMissing(idxDossier, CodSchedaVers, ddlFase.SelectedValue);
mod_collaudi.doUpdate();
fixControls();
}
/// <summary>
/// elimina set misure poiché VUOTE
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnRemSetMis_click(object sender, EventArgs e)
{
int idxDossier = Convert.ToInt32(ddlDossier.SelectedValue);
DtProxy.man.taMis.remSetMis(idxDossier, CodSchedaVers, ddlFase.SelectedValue);
mod_collaudi.doUpdate();
fixControls();
}
/// <summary>
/// verifico se sia possibile aggiungere records (= mancano misure x lo stato indicato...)
/// </summary>
public bool addNewVisible
{
get
{
bool answ = false;
if (ddlDossier.SelectedValue != "")
{
try
{
int idxDossier = Convert.ToInt32(ddlDossier.SelectedValue);
answ = DtProxy.man.taMis.getNum2Ins(idxDossier, CodSchedaVers, ddlFase.SelectedValue).Rows.Count > 0;
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("{0}", exc));
}
}
return answ;
}
}
/// <summary>
/// verifico se sia possibile rimuovere records (= NESSUNA misura INSERITA x lo stato indicato...)
/// </summary>
public bool remMisVisible
{
get
{
bool answ = false;
// in primis: deve essere selezionata SINGOLA scheda...
if (CodSchedaVers != "")
{
try
{
int idxDossier = Convert.ToInt32(ddlDossier.SelectedValue);
answ = DtProxy.man.taMis.getDataFilt(idxDossier, CodSchedaVers, ddlFase.SelectedValue).Select("Valoremis <> ''").Length == 0;
}
catch (Exception exc)
{
logger.lg.scriviLog(string.Format("{0}", exc));
}
}
return answ;
}
}
protected void ddlFase_DataBound(object sender, EventArgs e)
{
fixControls();
}
/// <summary>
/// show/hide archivio collaudi
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnShowHideHist_Click(object sender, EventArgs e)
{
// toggle visibilità
showHist = !showHist;
// fixControls();
fixControlsPrev();
}
public bool showHist
{
get
{
return memLayer.ML.BoolSessionObj("showHist");
}
set
{
memLayer.ML.setSessionVal("showHist", value);
}
}
public bool showDetail
{
get
{
return memLayer.ML.BoolSessionObj("showDetail");
}
set
{
memLayer.ML.setSessionVal("showDetail", value);
}
}
}
}