2025-04-15 12:10:19 +02:00

569 lines
23 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Data;
using System.Web;
using System.Web.UI;
using PrometeiaMessage.bancafideuram.nac.profilazione;
public partial class reportRischioNew : System.Web.UI.Page
{
private Cliente _cliente;
public string pathNav;
public int idReport; //indica il modello (fixed) COMPLETO di QUESTO report da cui costruire la treeview iniziale
private string sUtente;
public string codiceFiscale;
public static int tpReport = 7; //valore proprietario (fixed) di QUESTO report //DA VALUTARE!!
public static int idReportAlbero = 15; //valore proprietario (fixed) di QUESTO report //DA VALUTARE!!
public static int idReportBase = 15;
public static int idReportCompleto = 15;
public string codiceRete;
public string codicePB;
public string ambiente;
public int lastSavedReportId;
public static string nomeReport = "RISCHIO"; //valore proprietario (fixed) di QUESTO report
public static string nomeReportCompleto = "Rischio completo"; //valore proprietario (fixed) di QUESTO report
public static string nomeReportRischio = "RISCHIO"; //valore proprietario (fixed) di QUESTO report
public static string nomeReportBaseRischio = "Rischio base"; //valore proprietario (fixed) di QUESTO report
public static string nomeReportCompletoRischio = "Rischio completo"; //valore proprietario (fixed) di QUESTO report
string nomeReportPerLabel;
string descrizioneReportPerLabel;
public int reportIdToLoadBack = -1;
public string endOfjob = "0";
private string token;
private bool reportNominativo = false;
int IDReportToLoad = -1;
public string baseCompleto;
public string reportName;
private int idCliente;
private int IdModello;
private GestReport m = new GestReport();
protected void Page_Load(object sender, EventArgs e)
{
#region Add attribute to controls
rbl_Privacy.Attributes.Add("OnClick", "CallCheck_all_in_document()");
#endregion
token = Request.QueryString.Get("token");
codiceRete = Request.QueryString.Get("tipoRete");
codicePB = Request.QueryString.Get("codPB");
codiceFiscale = Request.QueryString.Get("codCliente");
baseCompleto = Request.QueryString.Get("baseCompleto");
IdModello = codiceRete.Equals("S") ? 2 : 1;
_cliente = Cliente.getCliente(codiceRete + codicePB, codiceFiscale);
if (Request.QueryString["lastReportPrinted"] != null)
IDReportToLoad = Convert.ToInt32(Request.QueryString.Get("lastReportPrinted"));
ambiente = Request.QueryString.Get("ambiente");
pathNav = Request.QueryString.Get("pathNav");
reportName = Request.QueryString.Get("nomeInizialeReport");
if (!Page.IsPostBack)
HFidCliente.Value = _cliente.IdCliente_SEIReport.ToString();
idCliente = int.Parse(HFidCliente.Value);
if (!Page.IsPostBack)
{
#region From Gestione Modelli
string loadingReport = Request.QueryString.Get("idReportToLoad");
nomeReportPerLabel = Request.QueryString.Get("nomeInizialeReport");
descrizioneReportPerLabel = Request.QueryString.Get("descrizioneInizialeReport");
#endregion
#region Controllo su profilo del cliente
DataTable dtQuestionario;
#region Recupero dati dal WS Profilazione
ProfilazioneWS profiloQuestionario = new ProfilazioneWS();
ParametriChiamataWS paramWS = new ParametriChiamataWS();
// Chiave
ChiaveCliente chiave = new ChiaveCliente();
chiave.codiceAgente = codicePB;
chiave.codiceRete = codiceRete;
chiave.potenzialeClienteNAC = true;
chiave.codicefiscale = _cliente.Definizione == Cliente.TipoDefinizione.Fiduciaria ? _cliente.PIVAFiduciaria : codiceFiscale;
chiave.codiceMandato = _cliente.Definizione == Cliente.TipoDefinizione.Fiduciaria ? _cliente.CodiceMandatoFiduciaria : string.Empty;
// InfoClient
InfoClient info = new InfoClient();
info.codiceApplicazione = WebConfigParameter.getParameter("CODICEAPPLICAZIONE");
info.codiceRete = codiceRete;
info.versioneDatabaseSIMPB = Convert.ToInt32(token);
paramWS.ChiaveClienteProperty_Profilazione = chiave;
paramWS.InfoClienteProperty_Profilazione = info;
dtQuestionario = profiloQuestionario.GetQuestionariClienteMiFIDAll(paramWS);
dtQuestionario.TableName = "QUESTIONARIOCLIENTE";
bool? questionarioMiFIDAttivo = false;
if (dtQuestionario.Rows.Count <= 0)
questionarioMiFIDAttivo = null;
else
if (dtQuestionario.Rows[0]["stato"] != DBNull.Value && int.Parse(dtQuestionario.Rows[0]["stato"].ToString()) == 1)
questionarioMiFIDAttivo = true;
else
questionarioMiFIDAttivo = false;
#endregion
#region Recupero le autorizzazioni a stampare il Report di Rischio
HFERRORMSG.Value = RecuperaAutorizzazioni(Utente.DeserializeMessage(Session["UtenteLoggatoDiSessione"].ToString()), Utente.DeserializeMessage(Session["UtenteImpersonificatoDiSessione"].ToString()), _cliente, questionarioMiFIDAttivo);
#endregion
#endregion
if (HFERRORMSG.Value.Equals(""))
{
if (Session["DatiHidden"] != null)
{
m.SetHtmlClient(Session["DatiHidden"].ToString());
DatiHidden.Value = m.GetHtmlClient();
HFNomeTemplate.Value = Session["HFNomeTemplate"].ToString();
HDMENU.Value = Session["HDMENU"].ToString();
Session["DatiHidden"] = null;
Session["HFNomeTemplate"] = null;
Session["HDMENU"] = null;
}
else
{
if (Session["HFNomeTemplate"] != null)
{
HFNomeTemplate.Value = Session["HFNomeTemplate"].ToString();
Session["HFNomeTemplate"] = null;
}
m.TipoRete = codiceRete.Equals("F") ? "Fideuram" : "SanPaolo Invest";
m.AcquisisciModello(IdModello);
}
m.SetEnableSchedeRischio(codiceRete, codicePB, codiceFiscale);
if (m.PatrimonioTerzi)
{
rbl_Privacy.Items[1].Enabled = true;
rbl_Privacy.Items[1].Selected = true;
}
else
{
rbl_Privacy.Items[1].Enabled = false;
rbl_Privacy.Items[1].Selected = false;
}
if (_cliente.SottoscrizioneContrattoSei)
{
rbl_Privacy.Items[0].Enabled = true;
rbl_Privacy.Items[0].Selected = true;
}
else
{
rbl_Privacy.Items[0].Enabled = false;
rbl_Privacy.Items[0].Selected = false;
}
CaricaTemplate();
DatiHidden.Value = m.GetHtmlClient();
if (Session["HFOPZTerzi"] != null && Session["HFOPZNominat"] != null)
{
if (Session["HFOPZNominat"].Equals("S")
&& _cliente.SottoscrizioneContrattoSei)
rbl_Privacy.Items[0].Selected = true;
else
rbl_Privacy.Items[0].Selected = false;
if (Session["HFOPZTerzi"].Equals("S") &&
m.PatrimonioTerzi)
rbl_Privacy.Items[1].Selected = true;
else
rbl_Privacy.Items[1].Selected = false;
Session["HFOPZTerzi"] = null;
Session["HFOPZNominat"] = null;
}
}
}
}
private int scriviNuovoModelloReportIntoDB(string reportName, int idCliente)
{
int rc = -1;
List<Parametro> parametri = new List<Parametro>();
Parametro parametro = new Parametro();
parametro.DbType = DbType.String;
parametro.Value = reportName;
parametro.ParameterName = "nome";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.String;
parametro.Value = string.Empty;
parametro.ParameterName = "descrizione";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Boolean;
parametro.Value = false;
parametro.ParameterName = "flgModello";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int16;
parametro.Value = idReportAlbero;
parametro.ParameterName = "idReportModello";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int16;
parametro.Value = tpReport;
parametro.ParameterName = "tpReport";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.String;
parametro.Value = sUtente;
parametro.ParameterName = "utente";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idCliente;
parametro.ParameterName = "idCliente";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int16;
parametro.Value = rbl_Privacy.Items[0].Selected ? 0 : 1;
parametro.ParameterName = "Privacy";
parametri.Add(parametro);
rc = DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServer, "sp_insertNewReportModelNew", parametri);
return rc;
}
private int InsertDatiInReportSezioniPers(int idReport, string delimiter, string hiddensezioniselezionate, string utente)
{
#region Salvataggio Modello
SezioneVincolo vincoli = (SezioneVincolo)Session["VINCOLIRISCHIO"];
int rc = 0;
List<Parametro> parametri = new List<Parametro>();
Parametro parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idReport;
parametro.ParameterName = "pIdReport";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.String;
parametro.Value = delimiter;
parametro.ParameterName = "delimiter";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.String;
parametro.Value = hiddensezioniselezionate;
parametro.ParameterName = "splitstring";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.String;
parametro.Value = utente;
parametro.ParameterName = "utente";
parametri.Add(parametro);
rc = DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServer, "sp_InsertIdSezioniIntoReportSezioniPers", parametri);
return rc;
#endregion
}
protected void ButCarica_Click(object sender, EventArgs e)
{
try
{
if (!DDLTemplate.Text.Equals("Seleziona"))
{
m.SetHtmlClient(DatiHidden.Value);
CaricaTemplate();
}
}
catch { }
finally
{
DatiHidden.Value = m.GetHtmlClient();
}
}
protected void ButElimina_Click(object sender, EventArgs e)
{
string alertMsg = "1";
try
{
if (!DDLTemplate.Text.Equals("Seleziona"))
{
m.SetHtmlClient(DatiHidden.Value);
m.CancellaTemplate(int.Parse(DDLTemplate.Text));
CaricaTemplate();
}
else
{
alertMsg = "2";
}
}
catch { alertMsg = "3"; }
finally
{
DatiHidden.Value = m.GetHtmlClient();
}
HFERRORMSG.Value = alertMsg;
}
protected void ButSalva_Click(object sender, EventArgs e)
{
string alertMsg = "4";
try
{
m.SetHtmlClient(DatiHidden.Value);
int[] idSez = new int[m.Template.Length];
for (int i = 0; i < m.Template.Length; i++)
idSez[i] = m.Template[i].Id;
foreach (DataRow dr in m.AcquisisciTemplate(codicePB, codiceRete, IdModello).Rows)
{
if (dr["NOMETEMPLATE"].ToString().Equals(HFNomeTemplate.Value) &&
dr["DEFAULT"].ToString().Equals("N") &&
!dr["codicePB"].ToString().Equals(""))
{
m.CancellaTemplate(int.Parse(dr["IDTEMPLATE"].ToString()));
m.SetHtmlClient(DatiHidden.Value);
alertMsg = "5";
break;
}
}
m.SalvaTemplate(HFNomeTemplate.Value, codicePB, codiceRete, IdModello, idSez, rbl_Privacy.Items[0].Selected, rbl_Privacy.Items[1].Selected);
CaricaTemplate();
}
catch { alertMsg = "6"; }
finally
{
DatiHidden.Value = m.GetHtmlClient();
}
HFERRORMSG.Value = alertMsg;
}
protected void ButStampa_Click(object sender, EventArgs e)
{
m.SetHtmlClient(DatiHidden.Value);
#region Generator.aspx
if (idCliente != -1)
{
int rc = 0;
//inizializzo il cookie che segnala la possibilita' di mostrare la pagina di inserimento note (reportStampa.aspx)
HttpCookie ck_endOfJob = new HttpCookie("endOfJob");
ck_endOfJob.Value = "0";
Response.Cookies.Add(ck_endOfJob);
reportNominativo = this.rbl_Privacy.Items[0].Selected ? true : false;
idReport = scriviNuovoModelloReportIntoDB("LAST USED CONFIG" + "_" + idCliente.ToString(), idCliente);
string s345 = "";
if (rbl_Privacy.Items[1].Selected) s345 = "|345";
// il modello è prefissato
rc = InsertDatiInReportSezioniPers(idReport, "|", m.GetSchedeReport() + s345, codiceRete + codicePB);
if (rc > 0)
{
Session["DatiHidden"] = DatiHidden.Value;
Session["HFNomeTemplate"] = HFNomeTemplate.Value;
Session["HFOPZTerzi"] = rbl_Privacy.Items[1].Selected ? "S" : "N";
Session["HFOPZNominat"] = rbl_Privacy.Items[0].Selected ? "S" : "N";
Session["HDMENU"] = HDMENU.Value;
Session["HIDDENFIELD"] = HiddenFieldStampa.Value;
HFRETURN.Value = Request.QueryString.ToString();
HFGENERAPDF.Value = "tipoReport=RISCHIO&isnew=1&action=createRischio&codicePB=" + codicePB + "&codiceFiscale=" + codiceFiscale + "&token=" + token + "&codiceRete=" + codiceRete + "&idReport=" + idReport.ToString() + "&ambiente=" + ambiente + "&nomeInizialeReport=" + nomeReport + "&descrizioneInizialeReport=" + nomeReportCompleto + "&baseCompleto=" + baseCompleto + "&checkPrivacy=" + reportNominativo;
}
}
#endregion
}
private void CaricaTemplate()
{
DataTable dt = m.AcquisisciTemplate(codicePB, codiceRete, IdModello);
DDLTemplate.DataSource = dt;
DDLTemplate.DataTextField = "NOMETEMPLATE";
DDLTemplate.DataValueField = "IDTEMPLATE";
DDLTemplate.DataBind();
for (int r = 0; r < dt.Rows.Count; r++)
{
if (dt.Rows[r]["default"].ToString().Equals("S"))
{
DDLTemplate.Items[r].Text = "* - " + dt.Rows[r]["NOMETEMPLATE"];
}
string DDL = DDLTemplate.Items[r].Text;
string HF = HFNomeTemplate.Value;
if (DDL.Equals(HF))
{
DDLTemplate.Items[r].Selected = true;
if (rbl_Privacy.Items[0].Enabled)
rbl_Privacy.Items[0].Selected = bool.Parse(dt.Rows[r]["opznominativa"].ToString());
if (rbl_Privacy.Items[1].Enabled)
rbl_Privacy.Items[1].Selected = bool.Parse(dt.Rows[r]["opzterzi"].ToString());
m.SetTamplate(int.Parse(dt.Rows[r]["IDTEMPLATE"].ToString()), dt.Rows[r]["default"].ToString());
}
}
DDLTemplate.Items.Insert(0, "Seleziona");
}
/// <summary>
/// Ritorna una stringa che rappresenta la motivazione per l'autorizzazione negata a stampare il report di rischio.
/// </summary>
/// <param name="utenteLoggato">Utente che si è loggato al sistema</param>
/// <param name="utenteImpersonificato">Utente che si sta impersonificando (Private Banker) </param>
/// <param name="cliente">Cliente</param>
/// <returns></returns>
private string RecuperaAutorizzazioni(Utente utenteLoggato, Utente utenteImpersonificato, Cliente cliente, bool? questionarioMiFIDAttivo)
{
// vedi C:\inetpub\wwwroot\SeiReportEvoluzione\reportRischioNew.aspx
/*
Labilitazione alla stampa del Report di rischio viene inibita se utenteImpersonificato ricade nelle seguenti tipologie:
Non attivo
Mai attivato
User (ed il cliente non è contrattualizzato SEI)
Starting User (ed il cliente non è contrattualizzato SEI)
Nel caso in cui lutente che si è loggato al SEI è un Manager il Report di rischio può essere stampato anche se il PB ricade nelle casistiche sopra indicate.
*/
string stringAutorizzazioneNegataStampaReport = string.Empty;
// i Supervisor (SPV) sono classificati come "MG" e non devono essere esclusi da questa categoria.
if (utenteLoggato.ProfiloUtenteLoggato == ProfiloUtenteLoggato.MG || utenteLoggato.GradoManagerUtenteLoggato == GradoManagerUtenteLoggato.GM_SPV || utenteLoggato.ProfiloUtenteLoggato == ProfiloUtenteLoggato.US || utenteLoggato.ProfiloUtenteLoggato == ProfiloUtenteLoggato.AP)
{
stringAutorizzazioneNegataStampaReport = string.Empty;
}
else
{
if (utenteImpersonificato.TipologiaUtenteImpersonificato == TipologiaUtenteImpersonificato.NonAttivo || utenteImpersonificato.TipologiaUtenteImpersonificato == TipologiaUtenteImpersonificato.MaiAttivato)
{
stringAutorizzazioneNegataStampaReport = "Attenzione. Non è possibile stampare il Report di Rischio per utenti non attivi o mai attivati.";
}
else if (utenteImpersonificato.TipologiaUtenteImpersonificato == TipologiaUtenteImpersonificato.User)
{
if (cliente.SottoscrizioneContrattoSei == false)
stringAutorizzazioneNegataStampaReport = "Attenzione. Non è possibile stampare il Report di Rischio in quanto il cliente non ha firmato il contratto di consulenza evoluta Sei. Il Report di Rischio è disponibile per i soli clienti Sei.";
else
{
stringAutorizzazioneNegataStampaReport = string.Empty;
}
}
else if (utenteImpersonificato.TipologiaUtenteImpersonificato == TipologiaUtenteImpersonificato.StartingUser)
{
if (cliente.SottoscrizioneContrattoSei == false)
stringAutorizzazioneNegataStampaReport = "Attenzione. Non è possibile stampare il Report di Rischio in quanto il cliente non ha firmato il contratto di consulenza evoluta Sei. Il Report di Rischio è disponibile per i soli clienti Sei.";
else
{
stringAutorizzazioneNegataStampaReport = string.Empty;
}
}
if (stringAutorizzazioneNegataStampaReport.Equals(string.Empty))
{
// Ho superato i controlli precedenti.
// Ora faccio un controllo sul questionario del cliente e la sua sottoscrizione SEI.
if (utenteImpersonificato.TipologiaUtenteImpersonificato == TipologiaUtenteImpersonificato.FrequentUser)
{
// Se utenteImpersonificato (PB) è FrequentUser lascio solo i controlli sul profilo (questionarioMiFIDAttivo)
if (questionarioMiFIDAttivo == null) // profilo non presente
{
stringAutorizzazioneNegataStampaReport = "Attenzione. Non è possibile stampare il Report di Rischio in quanto il cliente non ha il profilo di rischio"; // SN
}
else
{
if (questionarioMiFIDAttivo == true) // profilo attivo
{
stringAutorizzazioneNegataStampaReport = string.Empty;
}
else // profilo non attivo
{
stringAutorizzazioneNegataStampaReport = "Attenzione. Non è possibile stampare il Report di Rischio in quanto il cliente ha il profilo di rischio scaduto.";
}
}
}
else
{
if (questionarioMiFIDAttivo == null) // profilo non presente
{
if (_cliente.SottoscrizioneContrattoSei)
stringAutorizzazioneNegataStampaReport = "Attenzione. Non è possibile stampare il Report di Rischio in quanto il cliente non ha il profilo di rischio"; // SN
else
stringAutorizzazioneNegataStampaReport = "Attenzione. Non è possibile stampare il Report di Rischio in quanto il cliente non ha firmato il contratto di consulenza evoluta Sei e non ha il profilo di rischio."; // NN
}
else
{
if (questionarioMiFIDAttivo == true) // profilo attivo
{
if (_cliente.SottoscrizioneContrattoSei)
stringAutorizzazioneNegataStampaReport = string.Empty;
else
stringAutorizzazioneNegataStampaReport = "Attenzione. Non è possibile stampare il Report di Rischio in quanto il cliente non ha firmato il contratto di consulenza evoluta Sei. Il Report di Rischio è disponibile per i soli clienti Sei."; // NS
}
else
{
if (_cliente.SottoscrizioneContrattoSei) // profilo scaduto
stringAutorizzazioneNegataStampaReport = "Attenzione. Non è possibile stampare il Report di Rischio in quanto il cliente ha il profilo di rischio scaduto.";
else
stringAutorizzazioneNegataStampaReport = "Attenzione. Non è possibile stampare il Report di Rischio in quanto il cliente non ha firmato il contratto di consulenza evoluta Sei e ha il profilo di rischio scaduto.";
}
}
}
}
}
return stringAutorizzazioneNegataStampaReport;
}
}