From b81cb2f5367c090fb05c3983d7e36dff301fad7c Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 19 Oct 2021 18:55:23 +0200 Subject: [PATCH] inserimento controllo licenza utente in SMART --- .../WebUserControls/mod_commAttivita.ascx | 120 +++--- .../WebUserControls/mod_commAttivita.ascx.cs | 372 ++++++++++-------- .../mod_commAttivita.ascx.designer.cs | 60 +-- .../WebUserControls/mod_timbrature.ascx.cs | 41 +- 4 files changed, 326 insertions(+), 267 deletions(-) diff --git a/GPW_Smart/WebUserControls/mod_commAttivita.ascx b/GPW_Smart/WebUserControls/mod_commAttivita.ascx index 9d3d593..414f6ea 100644 --- a/GPW_Smart/WebUserControls/mod_commAttivita.ascx +++ b/GPW_Smart/WebUserControls/mod_commAttivita.ascx @@ -1,66 +1,66 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_commAttivita.ascx.cs" Inherits="GPW.WebUserControls.mod_commAttivita" %>
-
- -
-
- Aggiungi -
-
-
- +
+ +
+
+ Aggiungi +
+
+
+ +
-
-
- - - - - -
-
- -
-
- -
-
-
-
- -
-
-
-  -  -
-
-
-
-
- -
-
-
-
-
- - - - - -
-
- - - - - - - -
-
+
+ + + + + +
+
+ +
+
+ +
+
+
+
+ +
+
+
+  -  +
+
+
+
+
+ +
+
+
+
+
+ + + + + +
+
+ + + + + + + +
+
\ No newline at end of file diff --git a/GPW_Smart/WebUserControls/mod_commAttivita.ascx.cs b/GPW_Smart/WebUserControls/mod_commAttivita.ascx.cs index 157e9f0..432bf22 100644 --- a/GPW_Smart/WebUserControls/mod_commAttivita.ascx.cs +++ b/GPW_Smart/WebUserControls/mod_commAttivita.ascx.cs @@ -9,42 +9,70 @@ namespace GPW.WebUserControls { public partial class mod_commAttivita : System.Web.UI.UserControl { + #region Protected Properties + /// /// Hash di base x ricerca CLIENTE da idxFase /// protected string rhCliByIF { get; set; } - /// - /// Hash di base x ricerca PROGETTO da idxFase - /// - protected string rhProjByIF { get; set; } - /// - /// Hash di base x ricerca IdxProgetto da idxFase - /// - protected string rhIPByIF { get; set; } + /// /// Hash di base x ricerca FASE da idxFase /// protected string rhFaseByIF { get; set; } + /// + /// Hash di base x ricerca IdxProgetto da idxFase + /// + protected string rhIPByIF { get; set; } + /// + /// Hash di base x ricerca PROGETTO da idxFase + /// + protected string rhProjByIF { get; set; } - protected void Page_Load(object sender, EventArgs e) + protected bool userEnabled { - if (!Page.IsPostBack) - { - // controllo se ho una data selezionata da URL - if (!string.IsNullOrEmpty(memLayer.ML.QSS("dataRif"))) - { - dataRif = memLayer.ML.QSD("dataRif"); - } - setupPage(); - } - rhCliByIF = memLayer.ML.redHash("cliByIdxFase:"); - rhIPByIF = memLayer.ML.redHash("idxProjByIdxFase:"); - rhProjByIF = memLayer.ML.redHash("projByIdxFase:"); - rhFaseByIF = memLayer.ML.redHash("faseByIdxFase:"); - grView.DataBind(); + get => (DataProxy.currDipIsActive && DataProxy.currDipHasPayloadActive); } + + #endregion Protected Properties + + #region Public Properties + + /// + /// data riferimento (selezionata) da session + /// + public DateTime dataRif + { + get + { + DateTime answ = DateTime.Now; + // cerco in session... + if (memLayer.ML.isInSessionObject("dataRif")) + { + try + { + answ = Convert.ToDateTime(memLayer.ML.objSessionObj("dataRif")); + } + catch + { } + } + // altrimenti cerco in URL e salvo in session... + else if (!string.IsNullOrEmpty(memLayer.ML.QSS("dataRif"))) + { + answ = memLayer.ML.QSD("dataRif"); + dataRif = answ; + } + // restituisco! + return answ; + } + set + { + memLayer.ML.setSessionVal("dataRif", value); + } + } + /// /// pagina di return a fine editing /// @@ -67,39 +95,66 @@ namespace GPW.WebUserControls } } - /// - /// data riferimento (selezionata) da session - /// - public DateTime dataRif - { - get - { - DateTime answ = DateTime.Now; - // cerco in session... - if (memLayer.ML.isInSessionObject("dataRif")) - { - try - { + #endregion Public Properties - answ = Convert.ToDateTime(memLayer.ML.objSessionObj("dataRif")); - } - catch - { } - } - // altrimenti cerco in URL e salvo in session... - else if (!string.IsNullOrEmpty(memLayer.ML.QSS("dataRif"))) - { - answ = memLayer.ML.QSD("dataRif"); - dataRif = answ; - } - // restituisco! - return answ; - } - set + #region Private Methods + + /// + /// Cerca dati cliente da idxFase su DB + /// + /// + /// + private string getCliByDb(int idxFase) + { + string answ = ""; + try { - memLayer.ML.setSessionVal("dataRif", value); + int idxPrj = idxProjByIdxFase(idxFase); + DS_Applicazione.AnagProgettiRow progetto = DataProxy.DP.taAP.getByIdxProjSmart(idxPrj)[0]; + answ = DataProxy.DP.taAnCli.getByIdx(progetto.idxCliente)[0].RagSociale; } + catch + { } + return answ; } + + /// + /// Cerca dati fase da idxFase su DB + /// + /// + /// + private string getFaseByDb(int idxFase) + { + string answ = ""; + try + { + DS_Applicazione.AnagFasiRow fase = DataProxy.DP.taAF.getByIdxSmart(idxFase)[0]; + answ = string.Format("{0} ({1})", fase.nomeFase, fase.descrizioneFase); + } + catch + { } + return answ; + } + + /// + /// Cerca dati progetto da idxFase su DB + /// + /// + /// + private string getProjByDb(int idxFase) + { + string answ = ""; + try + { + int idxPrj = idxProjByIdxFase(idxFase); + DS_Applicazione.AnagProgettiRow progetto = DataProxy.DP.taAP.getByIdxProjSmart(idxPrj)[0]; + answ = progetto.nomeProj; + } + catch + { } + return answ; + } + /// /// imposta la pagina /// @@ -121,7 +176,14 @@ namespace GPW.WebUserControls } memLayer.ML.setSessionVal("dataFromRA", dataRif.Date); memLayer.ML.setSessionVal("dataToRA", dataRif.AddDays(1).Date); + // controllo aggiunta da licenza + lnkCreateNew.Visible = userEnabled; } + + #endregion Private Methods + + #region Protected Methods + /// /// Cerca associazione idxProj <--> idxFase da cache o da Db /// @@ -145,6 +207,90 @@ namespace GPW.WebUserControls return idxPrj; } + /// + /// rimanda ad edit + /// + /// + /// + protected void lnkClona_Click(object sender, EventArgs e) + { + if (userEnabled) + { + // salvo + LinkButton lbtn = (LinkButton)sender; + int idxRa = 0; + try + { + idxRa = Convert.ToInt32(lbtn.CommandArgument); + } + catch + { } + // chiamo clona! + DataProxy.DP.taRA.clonaRecord(idxRa); + } + //update! + setupPage(); + grView.DataBind(); + } + + protected void lnkCreateNew_Click(object sender, EventArgs e) + { + memLayer.ML.emptySessionVal("idxRASel"); + if (userEnabled) + { + // redirect! + Response.Redirect("attivitaIns.aspx"); + } + } + + /// + /// rimanda ad edit + /// + /// + /// + protected void lnkEdit_Click(object sender, EventArgs e) + { + // salvo + LinkButton lbtn = (LinkButton)sender; + if (userEnabled) + { + memLayer.ML.setSessionVal("idxRASel", lbtn.CommandArgument); + // redirect! + Response.Redirect("attivitaIns.aspx"); + } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + // controllo se ho una data selezionata da URL + if (!string.IsNullOrEmpty(memLayer.ML.QSS("dataRif"))) + { + dataRif = memLayer.ML.QSD("dataRif"); + } + setupPage(); + } + rhCliByIF = memLayer.ML.redHash("cliByIdxFase:"); + rhIPByIF = memLayer.ML.redHash("idxProjByIdxFase:"); + rhProjByIF = memLayer.ML.redHash("projByIdxFase:"); + rhFaseByIF = memLayer.ML.redHash("faseByIdxFase:"); + grView.DataBind(); + } + + protected void txtData_TextChanged(object sender, EventArgs e) + { + DateTime newData = DateTime.Today; + DateTime.TryParse(txtData.Text, out newData); + dataRif = newData; + setupPage(); + grView.DataBind(); + } + + #endregion Protected Methods + + #region Public Methods + /// /// recupera cliente da idxFase /// @@ -163,61 +309,6 @@ namespace GPW.WebUserControls } return answ; } - /// - /// Cerca dati cliente da idxFase su DB - /// - /// - /// - private string getCliByDb(int idxFase) - { - string answ = ""; - try - { - int idxPrj = idxProjByIdxFase(idxFase); - DS_Applicazione.AnagProgettiRow progetto = DataProxy.DP.taAP.getByIdxProjSmart(idxPrj)[0]; - answ = DataProxy.DP.taAnCli.getByIdx(progetto.idxCliente)[0].RagSociale; - } - catch - { } - return answ; - } - - /// - /// recupera progetto da idxFase - /// - /// - /// - public string prjByIdxFase(object _idxFase) - { - string answ = ""; - int idxFase = 0; - int.TryParse(_idxFase.ToString(), out idxFase); - answ = memLayer.ML.getRSV($"{rhProjByIF}{idxFase}"); - if (string.IsNullOrEmpty(answ)) - { - answ = getProjByDb(idxFase); - memLayer.ML.setRSV($"{rhProjByIF}{idxFase}", answ, memLayer.ML.CRI("shotTimeCache")); - } - return answ; - } - /// - /// Cerca dati progetto da idxFase su DB - /// - /// - /// - private string getProjByDb(int idxFase) - { - string answ = ""; - try - { - int idxPrj = idxProjByIdxFase(idxFase); - DS_Applicazione.AnagProgettiRow progetto = DataProxy.DP.taAP.getByIdxProjSmart(idxPrj)[0]; - answ = progetto.nomeProj; - } - catch - { } - return answ; - } /// /// recupera descrizione e nome fase da idxFase @@ -237,73 +328,26 @@ namespace GPW.WebUserControls } return answ; } + /// - /// Cerca dati fase da idxFase su DB + /// recupera progetto da idxFase /// /// /// - private string getFaseByDb(int idxFase) + public string prjByIdxFase(object _idxFase) { string answ = ""; - try + int idxFase = 0; + int.TryParse(_idxFase.ToString(), out idxFase); + answ = memLayer.ML.getRSV($"{rhProjByIF}{idxFase}"); + if (string.IsNullOrEmpty(answ)) { - DS_Applicazione.AnagFasiRow fase = DataProxy.DP.taAF.getByIdxSmart(idxFase)[0]; - answ = string.Format("{0} ({1})", fase.nomeFase, fase.descrizioneFase); + answ = getProjByDb(idxFase); + memLayer.ML.setRSV($"{rhProjByIF}{idxFase}", answ, memLayer.ML.CRI("shotTimeCache")); } - catch - { } return answ; } - /// - /// rimanda ad edit - /// - /// - /// - protected void lnkEdit_Click(object sender, EventArgs e) - { - // salvo - LinkButton lbtn = (LinkButton)sender; - memLayer.ML.setSessionVal("idxRASel", lbtn.CommandArgument); - // redirect! - Response.Redirect("attivitaIns.aspx"); - } - /// - /// rimanda ad edit - /// - /// - /// - protected void lnkClona_Click(object sender, EventArgs e) - { - // salvo - LinkButton lbtn = (LinkButton)sender; - int idxRa = 0; - try - { - idxRa = Convert.ToInt32(lbtn.CommandArgument); - } - catch - { } - // chiamo clona! - DataProxy.DP.taRA.clonaRecord(idxRa); - //update! - setupPage(); - grView.DataBind(); - } - protected void lnkCreateNew_Click(object sender, EventArgs e) - { - memLayer.ML.emptySessionVal("idxRASel"); - // redirect! - Response.Redirect("attivitaIns.aspx"); - } - - protected void txtData_TextChanged(object sender, EventArgs e) - { - DateTime newData = DateTime.Today; - DateTime.TryParse(txtData.Text, out newData); - dataRif = newData; - setupPage(); - grView.DataBind(); - } + #endregion Public Methods } } \ No newline at end of file diff --git a/GPW_Smart/WebUserControls/mod_commAttivita.ascx.designer.cs b/GPW_Smart/WebUserControls/mod_commAttivita.ascx.designer.cs index bb81ed6..850bfac 100644 --- a/GPW_Smart/WebUserControls/mod_commAttivita.ascx.designer.cs +++ b/GPW_Smart/WebUserControls/mod_commAttivita.ascx.designer.cs @@ -1,59 +1,61 @@ //------------------------------------------------------------------------------ -// -// Codice generato da uno strumento. +// +// This code was generated by a tool. // -// Le modifiche a questo file possono causare un comportamento non corretto e verranno perse se -// il codice viene rigenerato. -// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// //------------------------------------------------------------------------------ -namespace GPW.WebUserControls { - - - public partial class mod_commAttivita { - +namespace GPW.WebUserControls +{ + + + public partial class mod_commAttivita + { + /// - /// Controllo txtData. + /// txtData control. /// /// - /// Campo generato automaticamente. - /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.TextBox txtData; - + /// - /// Controllo lnkCreateNew. + /// lnkCreateNew control. /// /// - /// Campo generato automaticamente. - /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.LinkButton lnkCreateNew; - + /// - /// Controllo lblTotOreRA. + /// lblTotOreRA control. /// /// - /// Campo generato automaticamente. - /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.Label lblTotOreRA; - + /// - /// Controllo grView. + /// grView control. /// /// - /// Campo generato automaticamente. - /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.GridView grView; - + /// - /// Controllo odsRegAtt. + /// odsRegAtt control. /// /// - /// Campo generato automaticamente. - /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.ObjectDataSource odsRegAtt; } diff --git a/GPW_Smart/WebUserControls/mod_timbrature.ascx.cs b/GPW_Smart/WebUserControls/mod_timbrature.ascx.cs index cdb692c..48dcc79 100644 --- a/GPW_Smart/WebUserControls/mod_timbrature.ascx.cs +++ b/GPW_Smart/WebUserControls/mod_timbrature.ascx.cs @@ -23,6 +23,11 @@ namespace GPW.WebUserControls } } + protected bool userEnabled + { + get => (DataProxy.currDipIsActive && DataProxy.currDipHasPayloadActive); + } + #endregion Protected Properties #region Private Methods @@ -91,34 +96,42 @@ namespace GPW.WebUserControls /// private void setButtons() { - // controllo SE voglio inibire i buttons... - if (forceButtons) + // se utente ok... + if (userEnabled) { - // controllo se il prox comando DOVREBBE essere entrata o uscita - bool nextIsEntrata = true; - // controllo dipendente - if (IdxDipendente > 0) + // controllo SE voglio inibire i buttons... + if (forceButtons) { - // ricavo ultima timbratura.. - nextIsEntrata = timbratrice.nextIsEntrata(IdxDipendente); - // di conseguenza cambio abilitazione ad un buttons - if (nextIsEntrata) + // controllo se il prox comando DOVREBBE essere entrata o uscita + bool nextIsEntrata = true; + // controllo dipendente + if (IdxDipendente > 0) { - fixBtnInOut(true, false); + // 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, true); + fixBtnInOut(false, false); } } else { - fixBtnInOut(false, false); + fixBtnInOut(true, true); } } else { - fixBtnInOut(true, true); + fixBtnInOut(false, false); } }