using System;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections.Generic;
///
/// Gestisce il report di diagnosi.
/// In questa versione č presente l'alberatura.
/// Si basa sulla stored " R6_S_Generator 1, 'idmodello' ".
///
public partial class ReportDiagnosi : System.Web.UI.Page
{
private Cliente _cliente;
private string codiceFiscale;
private string codiceRete;
private string codicePB;
private bool reportNominativo = false;
public string pathNav;
public int idReport; //indica il modello (fixed) COMPLETO di QUESTO report da cui costruire la treeview iniziale
public static int tpReport = 1; //valore proprietario (fixed) di QUESTO report //DA VALUTARE!!
public static int idReportAlbero = 1; //valore proprietario (fixed) di QUESTO report //DA VALUTARE!!
public static int idReportBase = 2;
public static int idReportCompleto = 1;
public string ambiente;
public int lastSavedReportId;
public static string nomeReport = "DIAGNOSI"; //valore proprietario (fixed) di QUESTO report
public static string nomeReportCompleto = "Diagnosi completo"; //valore proprietario (fixed) di QUESTO report
public static string nomeReportDiagnosi = "DIAGNOSI"; //valore proprietario (fixed) di QUESTO report
string nomeReportPerLabel;
string descrizioneReportPerLabel;
string reportIdToPass;
public int reportIdToLoadBack = -1;
public string endOfjob = "0";
private string token;
int IDReportToLoad = -1;
string baseCompleto = "";
protected void Page_Load(object sender, EventArgs e)
{
#region Add attribute to controls
rbl_scelte.Attributes.Add("OnClick", "CallCheck_all_in_document()");
ddl_Modello.Attributes.Add("OnChange", "CallCheck_all_in_document()");
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");
ambiente = Request.QueryString.Get("ambiente");
pathNav = Request.QueryString.Get("pathNav");
_cliente = Cliente.getCliente(codiceRete + codicePB, codiceFiscale);
if (Request.QueryString["lastReportPrinted"] != null)
IDReportToLoad = Convert.ToInt32(Request.QueryString.Get("lastReportPrinted"));
if (!Page.IsPostBack)
{
#region Nuova gestione privacy
if (_cliente.SottoscrizioneContrattoSei)
{
rbl_Privacy.Items[0].Selected = true;
rbl_Privacy.Items[0].Enabled = true;
rbl_Privacy.Items[1].Enabled = true;
reportNominativo = true;
}
else
{
rbl_Privacy.Items[1].Selected = true;
rbl_Privacy.Items[0].Enabled = false;
this.lbl_Privacy.Visible = true;
lbl_Privacy.Text = "La reportistica nominativa puņ essere stampata per i clienti che hanno sottoscritto la consulenza evoluta SEI";
reportNominativo = false;
}
#endregion
#region From Gestione Modelli e stampa
if (Request.QueryString["baseCompleto"] != null && Request.QueryString["baseCompleto"] != "")
baseCompleto = Request.QueryString.Get("baseCompleto").ToString();
string loadingReport = "";
if (baseCompleto == "")
loadingReport = Request.QueryString.Get("idReportToLoad");
else
loadingReport = baseCompleto;
nomeReportPerLabel = Request.QueryString.Get("nomeInizialeReport");
descrizioneReportPerLabel = Request.QueryString.Get("descrizioneInizialeReport");
fillModelli();
if (loadingReport != null && loadingReport != "")
{
if (loadingReport == "loadBASE")
{
rbl_scelte.SelectedIndex = 0;
IDReportToLoad = idReportBase;
}
else
{
IDReportToLoad = Convert.ToInt32(loadingReport);
// Carico il report base
if (IDReportToLoad != idReportBase && IDReportToLoad != idReportCompleto)
{
if (nomeReportPerLabel != null && nomeReportPerLabel != "")
{
txb_nomeModello.Text = nomeReportPerLabel;
this.ddl_Modello.Enabled = true;
this.ddl_Modello.Items.FindByText(nomeReportPerLabel).Selected = true;
if (descrizioneReportPerLabel != null && descrizioneReportPerLabel != "")
txb_descrizione.Text = descrizioneReportPerLabel;
//rbl_scelte.Items[2].Selected = true;
rbl_scelte.SelectedIndex = 2;
}
}
else if (IDReportToLoad == idReportCompleto)
{
//rbl_scelte.Items[1].Selected = true;
rbl_scelte.SelectedIndex = 1;
}
else if (IDReportToLoad == idReportBase)
{
//rbl_scelte.Items[0].Selected = true;
rbl_scelte.SelectedIndex = 0;
}
}
//if (IDReportToLoad == -1) //vuol dire che devo caricare l'ultimo report da modello "salvato"
//{
// IDReportToLoad = loadLastSavedUserModel(); //da attivare x sapere quale modello e' stato usato per ultimo da quell'operatore x quel cliente
//}
}
#endregion
LoadVincoliInSession(codiceFiscale, codicePB, codiceRete);
if (IDReportToLoad == -1)
createTreeView(idReportAlbero, idReportBase, false);
else
createTreeView(idReportAlbero, IDReportToLoad, false);
if (!ClientScript.IsStartupScriptRegistered("gestAnalisiRischio"))
{
String cstext = "";
ClientScript.RegisterStartupScript(this.GetType(), "gestAnalisiRischio", cstext);
}
}
}
protected void btn_Stampa_Click(object sender, EventArgs e)
{
int idCliente = _cliente.IdCliente_SEIReport;
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);
if (rbl_scelte.SelectedItem.Value == "1")
{
baseCompleto = idReportCompleto.ToString();
}
else if (rbl_scelte.SelectedItem.Value == "2")
{
baseCompleto = idReportBase.ToString();
}
else if (rbl_scelte.SelectedItem.Value == "")
{
if (ddl_Modello.SelectedIndex == 0)
baseCompleto = idReportBase.ToString();
else
{
string[] split = ddl_Modello.SelectedItem.Value.Split('|');
if (split.Length > 0)
baseCompleto = split[0];
}
}
string nomeInizialeReport = this.txb_nomeModello.Text;
string descrizioneInizialeReport = this.txb_descrizione.Text;
reportNominativo = this.rbl_Privacy.Items[0].Selected ? true : false;
idReport = scriviNuovoModelloReportIntoDB("LAST USED CONFIG" + "_" + idCliente.ToString(), idCliente);
rc = InsertDatiInReportSezioniPers(idReport, "|", HiddenFieldStampa.Value, codiceRete + codicePB);
if (rc > 0)
{
Session["HIDDENFIELD"] = HiddenFieldStampa.Value;
ClassLibraryWS.Debug.ScriviLog(" HiddenFieldStampa.Value = " + HiddenFieldStampa.Value);
string command = "generaPDF(\"Generator.aspx\",\"tipoReport=DIAGNOSI&action=createDiagnosi&codicePB=" + codicePB + "&codiceFiscale=" + codiceFiscale + "&token=" + token + "&codiceRete=" + codiceRete + "&idReport=" + idReport.ToString() + "&ambiente=" + ambiente + "&nomeInizialeReport=" + nomeInizialeReport + "&descrizioneInizialeReport=" + descrizioneInizialeReport + "&baseCompleto=" + baseCompleto + "&checkPrivacy=" + reportNominativo + "\");";
ClientScript.RegisterStartupScript(typeof(string), "pppppp",
"");
#region Gestione custom del ritorno alla pagina di diagnosi
createTreeView(idReportAlbero, idReport, false);
#endregion
}
}
}
private int InsertDatiInReportSezioniPers(int idReport, string delimiter, string hiddensezioniselezionate, string utente)
{
#region Salvataggio Modello
SezioneVincolo vincoli = (SezioneVincolo)Session["VINCOLIDIAGNOSI"];
int rc = 0;
List parametri = new List();
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);
//Variabili per i vincoli
parametro = new Parametro();
parametro.DbType = DbType.Int16;
parametro.Value = Convert.ToInt16(vincoli.CustomerHaBFWallet);
parametro.ParameterName = "CustomerHaPatrimonioBF";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int16;
parametro.Value = Convert.ToInt16(vincoli.CustomerHasOnlyBFWallet);
parametro.ParameterName = "CustomerHasOnlyBFWallet";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int16;
parametro.Value = Convert.ToInt16(vincoli.CustomerHaPatrimonioTerziEdHaUnSoloIntermediario);
parametro.ParameterName = "CustomerHaPatrimonioTerziEdHaUnSoloIntermediario";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int16;
parametro.Value = Convert.ToInt16(vincoli.CustomerHaPatrimonioTerzi);
parametro.ParameterName = "CustomerHaPatrimonioTerzi";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int16;
parametro.Value = Convert.ToInt16(vincoli.CustomerHasOnlyWalletByOtherInstitutes);
parametro.ParameterName = "CustomerHasOnlyWalletByOtherInstitutes";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int16;
parametro.Value = Convert.ToInt16(vincoli.CustomerHasNoPiramideModello);
parametro.ParameterName = "CustomerHasNoPiramideModello";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int16;
parametro.Value = Convert.ToInt16(vincoli.CustomerHasNoPatNonRapPoliticaInv);
parametro.ParameterName = "CustomerHasNoPatNonRapPoliticaInv";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.Int16;
parametro.Value = Convert.ToInt16(vincoli.CustomerHasNoPatNonRapAsset);
parametro.ParameterName = "CustomerHasNoPatNonRapAsset";
parametri.Add(parametro);
rc = DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServer, "sp_InsertIdSezioniIntoReportSezioniPers_Diagnosi", parametri);
return rc;
#endregion
}
private int scriviNuovoModelloReportIntoDB(string reportName, int idCliente)
{
int rc = -1;
List parametri = new List();
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 = this.txb_descrizione.Text; ;
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 = _cliente.CodiceRete + _cliente.CodicePB;
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.SelectedIndex;
parametro.ParameterName = "Privacy";
parametri.Add(parametro);
rc = DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServer, "sp_insertNewReportModelNew", parametri);
return rc;
}
protected void rbl_scelte_SelectedIndexChanged(object sender, EventArgs e)
{
int tiporeport = -1;
this.txb_nomeModello.Text = "";
this.txb_descrizione.Text = "";
lbl_message.Text = "";
if (rbl_scelte.SelectedItem.Value != "")
{
tiporeport = Convert.ToInt32(rbl_scelte.SelectedItem.Value);
ddl_Modello.Enabled = false;
ddl_Modello.SelectedIndex = 0;
}
else
{
ddl_Modello.Enabled = true;
ddl_Modello.SelectedIndex = 0;
}
// Carico il report selezionato che puo essere base o completo visto che Modelli risuleterebbe vuoto
if (tiporeport != -1)
{
createTreeView(idReportAlbero, tiporeport, false);
}
else
{
createTreeView(idReportAlbero, idReportCompleto, true);
}
if (tiporeport == idReportBase)
{
if (!ClientScript.IsStartupScriptRegistered("gestAnalisiRischio"))
{
String cstext = "";
ClientScript.RegisterStartupScript(this.GetType(), "gestAnalisiRischio", cstext);
}
}
if (tiporeport == idReportCompleto)
{
//if (!ClientScript.IsStartupScriptRegistered("dis2grafici"))
//{
// String cstext = "";
// ClientScript.RegisterStartupScript(this.GetType(), "dis2grafici", cstext);
//}
if (!ClientScript.IsStartupScriptRegistered("abilitaPerimetro"))
{
String cstext = "";
ClientScript.RegisterStartupScript(this.GetType(), "abilitaPerimetro", cstext);
}
}
}
private void createTreeView(int tipoAlbero, int tipoReport, bool viewstate)
{
DataTable dtAlbero = null;
DataTable dtVincoli = null;
dtVincoli = getVincoliAlbero(tipoAlbero);
dtAlbero = CreateDataSource(tipoAlbero, tipoReport, Convert.ToInt16(viewstate));
// Rimozione dati previdenziali
for (int i = 79; i >= 73; i--)
{
dtAlbero.Rows[i].Delete();
}
//ISPB elimino il ramo patrimonio terzi
for (int i = 68; i >= 45; i--)
{
dtAlbero.Rows[i].Delete();
}
if (dtAlbero.Columns.Contains("SezionePers"))
dtAlbero.Columns["SezionePers"].ReadOnly = false;
if (viewstate)
setStatoSezioni(ref dtAlbero);
// Ritorna l'albero con i vincoli gestiti
gestioneVincoliAlbero(ref dtAlbero, dtVincoli);
TreeViewCompositeControl1.DataSource = dtAlbero;
TreeViewCompositeControl1.DataBind();
String cstext = "";
ClientScript.RegisterStartupScript(this.GetType(), "max2check", cstext);
}
DataTable CreateDataSource(int idreportAlbero, int idreport, int flagViewState)
{
List parametri = new List();
Parametro parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = idreportAlbero;
parametro.ParameterName = "pIdReportAlbero";
parametri.Add(parametro);
// flagViewState = 0 (false)
// flagViewState = 1 (true)
parametro = new Parametro();
parametro.DbType = DbType.Int32;
parametro.Value = flagViewState;
parametro.ParameterName = "flagViewState";
parametri.Add(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 = codiceRete;
parametro.ParameterName = "pRete";
parametri.Add(parametro);
return DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getSezioni_ByIdReport_TreeView", parametri);
}
private DataTable getVincoliAlbero(int idReport)
{
DataTable dt = null;
// I vincoli relativi alla privacy li recupero sempre
string codiceVincoli = Resources.GlobalResource.Vincolo_Flag_Privacy_Anomima;
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_Flag_Privacy_Nominativa;
SezioneVincolo vincoli = (SezioneVincolo)Session["VINCOLIDIAGNOSI"];
#region SEZIONE VINCOLO
//// d.lisena 06/12/2010
//// Se il cliente ha solo il cc presso fideuram devo abilitare la parte di albero relativa a SintesiPatrimonio, PatrimonioBF e Analisi rischio.
//// Metto questa condizione con la speranza di poter cambiare questa gestione dei vincoli
//if (vincoli.CustomerHasCCBancaFideuram == true)
//{
// vincoli.CustomerHasOnlyBFWallet = true;
// vincoli.CustomerHasNoWalletAtAll = false;
//}
// Vincolo cliente non ha
if (vincoli.CustomerHasOnlyBFWallet)
{
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHasOnlyBFWallet;
}
// Il cliente ha solo patrimonio presso altri istituti
if (vincoli.CustomerHasOnlyWalletByOtherInstitutes)
{
if (!vincoli.CustomerHasCCBancaFideuram)
{
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHasOnlyWalletByOtherInstitutes;
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHaSoloCCPressoBF;
}
}
// Customer Ha Patrimonio Terzi Ed Ha Un Solo Intermediario
if (vincoli.CustomerHaPatrimonioTerziEdHaUnSoloIntermediario)
{
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHaPatrimonioTerziEdHaUnSoloIntermediario;
}
// // Customer Ha Patrimonio Terzi Ed Ha Un Solo Intermediario
//if (vincoli.CustomerHaPatrimonioTerziEdHaUnSoloIntermediario)
//{
// codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHaPatrimonioTerziEdHaUnSoloIntermediario;
//}
// Customer Ha Patrimonio Terzi
if (!vincoli.CustomerHaPatrimonioTerzi)
{
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHaPatrimonioTerzi;
}
// Customer Non ha piramide modello
if (vincoli.CustomerHasNoPiramideModello)
{
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHasNoPiramideModello;
}
// Customer Non ha portafogli
if (vincoli.CustomerHasNoWalletAtAll)
{
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHasNoWalletAtAll;
if (!vincoli.CustomerHasCCBancaFideuram)
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHaSoloCCPressoBF;
if (vincoli.CustomerHasPatrimionioImmobiliareOAltroPatrimonio)
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHasPatrimionioImmobiliareOAltroPatrimonio;
if (vincoli.CustomerHasNoRischio)
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHasNoRischio;
}
if (vincoli.CustomerHasNoDatiProfessionali)
{
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHasNoDatiProfessionali;
}
if (vincoli.CustomerHasNoFabbisognoPrevidenziale)
{
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHasNoFabbisognoPrevidenziale;
}
if (vincoli.CustomerHasNoDatiProfessionali && vincoli.CustomerHasNoFabbisognoPrevidenziale)
{
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_NoDatiProfessionali_NoFabbisognoPrevidenziale;
}
if (vincoli.CustomerCheckImmobiliareEdAltroPatrimonio != 3)
{
if (vincoli.CustomerCheckImmobiliareEdAltroPatrimonio == 0)
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerCheckImmobiliareEdAltroPatrimonio_0;
else if (vincoli.CustomerCheckImmobiliareEdAltroPatrimonio == 1)
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerCheckImmobiliareEdAltroPatrimonio_1;
else if (vincoli.CustomerCheckImmobiliareEdAltroPatrimonio == 2)
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerCheckImmobiliareEdAltroPatrimonio_2;
}
if (vincoli.CustomerHasNoPatNonRapAsset)
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHasNoPatNonRapAsset;
if (vincoli.CustomerHasNoPatNonRapPoliticaInv)
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_CustomerHasNoPatNonRapPoliticaInv;
// NUOVI VINCOLI
if (!vincoli.IsVarProxati)
codiceVincoli += "|" + Resources.GlobalResource.Vincolo_VarProxati;
#endregion
#region Recupero dal db il datatable vincoli passando la stringa
List parametri = new List();
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 = "|";
parametro.ParameterName = "delimiter";
parametri.Add(parametro);
parametro = new Parametro();
parametro.DbType = DbType.String;
parametro.Value = codiceVincoli;
parametro.ParameterName = "splitstring";
parametri.Add(parametro);
dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getVincoliSezioni", parametri);
#endregion
return dt;
}
private void setStatoSezioni(ref DataTable dtAlbero)
{
string words = HiddenFieldSezioni.Value.Trim();
if (words == "")
if (Session["HIDDENFIELD"] != null && Session["HIDDENFIELD"] != "")
words = Session["HIDDENFIELD"].ToString();
DataRow key = null;
if (words.Length > 0)
{
if (dtAlbero.PrimaryKey.Length == 0)
{
DataColumn[] primarykeys = new DataColumn[1];
primarykeys[0] = dtAlbero.Columns["IDSezione"];
dtAlbero.PrimaryKey = primarykeys;
}
string[] split = words.Split('|');
foreach (string s in split)
{
if (s.Trim() != "")
{
key = dtAlbero.Rows.Find(s);
if (key != null)
key["SezionePers"] = 1;
}
}
}
}
private void gestioneVincoliAlbero(ref DataTable dtAlbero, DataTable dtVincoli)
{
DataRow key = null;
#region Cancello le righe del vincolo privacy se non selezionalto o selezionabile
if (rbl_Privacy.Visible == true && rbl_Privacy.Items[0].Selected == true)
{
// Privacy Nominativa
// Elimini le righe della privacy anonima
DataRow[] drs = dtVincoli.Select(" IDVincolo = '" + Resources.GlobalResource.Vincolo_Flag_Privacy_Anomima.Trim() + "'");
foreach (DataRow rowVincolo in drs)
{
dtVincoli.Rows.Remove(rowVincolo);
}
}
else if ((rbl_Privacy.Visible == true && rbl_Privacy.Items[1].Selected == true) || (rbl_Privacy.Visible == false))
{
// Privacy Anonima
// Eliminio le righe della privacy nominativa
DataRow[] drs = dtVincoli.Select(" IDVincolo = '" + Resources.GlobalResource.Vincolo_Flag_Privacy_Nominativa.Trim() + "'");
foreach (DataRow rowVincolo in drs)
{
dtVincoli.Rows.Remove(rowVincolo);
}
}
#endregion
// settaggio della primary key
if (dtAlbero.PrimaryKey.Length == 0)
{
DataColumn[] primarykeys = new DataColumn[1];
primarykeys[0] = dtAlbero.Columns["IDSezione"];
dtAlbero.PrimaryKey = primarykeys;
}
// recupero idsesione per ogni
foreach (DataRow rowVincolo in dtVincoli.Rows)
{
key = dtAlbero.Rows.Find(rowVincolo["IDSEZIONE"]);
// trova la chiave
if (key != null)
{
#region Gestione Vincoli
switch (rowVincolo["TIPOVINCOLO"].ToString())
{
case "CHECKED":
key["SezionePers"] = 1;
break;
case "CHECKED|DISABLE":
key["SezionePers"] = 1;
key["IsDefault"] = 0;
break;
case "UNCHECKED|DISABLE":
key["IsDefault"] = 0;
key["SezionePers"] = 0;
break;
case "UNCHECKED|ENABLE":
key["IsDefault"] = 1;
key["SezionePers"] = 0;
break;
case "LABELGREY":
key["CSSClass"] = "lblTestoDescrizioneGrigio";
key["IsSectionPrinting"] = 0;
break;
case "LABELGREYBOLD":
key["CSSClass"] = "lblTestoDescrizioneGrigioBold";
key["IsSectionPrinting"] = 0;
break;
case "UNCHECKED|DISABLE|UNMANDATORY":
key["IsDefault"] = 0;
key["SezionePers"] = 0;
key["IsMandatory"] = 0;
break;
default:
break;
}
#endregion
}
}
}
public void LoadVincoliInSession(string codiceFiscale, string codiceAgente, string codiceRete)
{
CTable tbl = new CTable();
SezioneVincolo SezVincolo = new SezioneVincolo();
bool conPatrimonioTerzi = false;
bool conPatrimonioBF = false;
//set variabili per abilitare pulsanti
tbl.LoadDati(codiceFiscale, codicePB, codiceRete);
conPatrimonioBF = tbl.Diagnosi_CustomerHasBFWallet();
conPatrimonioTerzi = tbl.Diagnosi_CustomerHaPatrimonioTerzi();
SezVincolo.CustomerHasCCBancaFideuram = tbl.Diagnosi_CustomerHaCCPressoBF();
SezVincolo.CustomerHasNoWalletAtAll = tbl.Diagnosi_CustomerHasNoWalletAtAll();
SezVincolo.CustomerHaBFWallet = conPatrimonioBF;
if (conPatrimonioBF && (conPatrimonioTerzi == false))
SezVincolo.CustomerHasOnlyBFWallet = true;
else
SezVincolo.CustomerHasOnlyBFWallet = false;
SezVincolo.CustomerHasOnlyWalletByOtherInstitutes = tbl.Diagnosi_CustomerHasOnlyWalletByOtherInstitutes();
SezVincolo.CustomerHasPatrimionioImmobiliareOAltroPatrimonio = tbl.Diagnosi_CustomerHasPatrimionioImmobiliareOAltroPatrimonio();
SezVincolo.CustomerHasNoFabbisognoPrevidenziale = tbl.Diagnosi_CustomerHasNoFabbisognoPrevidenziale();
SezVincolo.CustomerHasNoDatiProfessionali = tbl.Diagnosi_CustomerHasNoDatiProfessionali();
SezVincolo.CustomerHasNoPiramideModello = tbl.Diagnosi_CustomerHasNoPiramideModello();
SezVincolo.CustomerHasNoRischio = tbl.Diagnosi_CustomerHasNoRischio(codiceFiscale, codicePB, codiceRete, token);
SezVincolo.CustomerCheckImmobiliareEdAltroPatrimonio = tbl.Diagnosi_CustomerCheckImmobiliareEdAltroPatrimonio(_cliente.ChiaveClientePB);
SezVincolo.CustomerHaPatrimonioTerzi = conPatrimonioTerzi;
SezVincolo.CustomerHaSoloCCPressoBF = tbl.Diagnosi_CustomerHaSoloCCPressoBF();
SezVincolo.CustomerHaPatrimonioTerziEdHaUnSoloIntermediario = tbl.Diagnosi_CustomerHaPatrimonioTerziEdHaUnSoloIntermediario();
SezVincolo.IsVarProxati = tbl.Diagnosi_CustomerHasProdottiNonCatalogati();
// La funzione sotto popola la varianile Diag_CustomerHasNoPatNonRapAsset
// Sono vincolato alla gestione fantastica precedente
tbl.Diagnosi_CustomerHasNoPatNonRapAsset();
SezVincolo.CustomerHasNoPatNonRapAsset = tbl.Diag_CustomerHasNoPatNonRapAsset;
// La funzione sotto popola la varianile Diag_CustomerHasNoPatNonRapAsset
// SONO VINCOLATO ALLA GESTIONE FANTASTICA PRECEDENTE
tbl.Diagnosi_CustomerHasNoPatNonRapPoliticaInv();
SezVincolo.CustomerHasNoPatNonRapPoliticaInv = tbl.Diag_CustomerHasNoPatNonRapPoliticaInv;
Session["VINCOLIDIAGNOSI"] = SezVincolo;
}
protected void btn_Salva_Click(object sender, EventArgs e)
{
int idReport;
int rc = 0;
string nomeModello = txb_nomeModello.Text;
nomeModello = nomeModello.Trim();
int idCliente = _cliente.IdCliente_SEIReport;
idReport = scriviNuovoModelloReportIntoDB(nomeModello, idCliente); //salvo il modello che non va stampato...
fillModelli();
if (idReport != -1)
{
#region Salvataggio Modello
rc = InsertDatiInReportSezioniPers(idReport, "|", HiddenFieldSezioni.Value, codiceRete + codicePB);
#endregion
}
else this.lbl_message.Text = "Errore nel salvataggio del modello " + nomeModello + ".";
if (rc > 0)
{
this.lbl_message.ForeColor = System.Drawing.Color.Black;
this.lbl_message.Text = "Il Modello " + nomeModello + " e' stato salvato correttamente.";
createTreeView(idReportAlbero, idReport, false);
}
else
{
this.lbl_message.Text = "Errore nel salvataggio del modello " + nomeModello + ".";
createTreeView(idReportAlbero, idReportBase, false);
}
#region Modello Salvato
this.ddl_Modello.Enabled = true;
this.ddl_Modello.Items.FindByValue(idReport.ToString() + "|" + txb_descrizione.Text).Selected = true;
//rbl_scelte.Items[2].Selected = true;
rbl_scelte.SelectedIndex = 2;
#endregion
}
protected void btn_GestioneModelli_Click(object sender, EventArgs e)
{
if (rbl_scelte.SelectedItem.Value == "1")
{
reportIdToPass = idReportCompleto.ToString();
}
else if (rbl_scelte.SelectedItem.Value == "2")
{
reportIdToPass = idReportBase.ToString();
}
else if (rbl_scelte.SelectedItem.Value == "")
{
if (ddl_Modello.SelectedIndex == 0)
reportIdToPass = idReportBase.ToString();
else
{
string[] split = ddl_Modello.SelectedItem.Value.Split('|');
if (split.Length > 0)
reportIdToPass = split[0];
}
}
string nomeInizialeReport = this.txb_nomeModello.Text;
string descrizioneInizialeReport = this.txb_descrizione.Text;
if (this.rbl_Privacy.Items[0].Selected == true)
reportNominativo = true;
else
reportNominativo = false;
Session["HIDDENFIELD"] = "";
Response.Redirect("archivioModelli.aspx?codCliente=" + codiceFiscale + "&tipoRete=" + codiceRete + "&codPB=" + codicePB + "&pathNav=" + pathNav + "&tpReport=" + tpReport + "&utente=" + _cliente.CodiceRete + _cliente.CodicePB + "&caller=" + nomeReportDiagnosi + "&idReport=" + reportIdToPass + "&nomeInizialeReport=" + nomeInizialeReport + "&descrizioneInizialeReport=" + descrizioneInizialeReport + "&checkPrivacy=" + reportNominativo + "&token=" + token);
}
protected void ddl_Modello_SelectedIndexChanged(object sender, EventArgs e)
{
string[] split = ddl_Modello.SelectedItem.Value.Split('|');
string idreport = "";
string desc = "";
if (split.Length > 0)
{
if (split[0] != null)
idreport = split[0];
if (split.Length == 2)
if (split[1] != null)
desc = split[1];
}
if (ddl_Modello.SelectedIndex != 0)
createTreeView(idReportAlbero, Convert.ToInt32(idreport), false);
else
createTreeView(idReportAlbero, idReportCompleto, true);
lbl_message.Text = "";
this.txb_nomeModello.Text = ddl_Modello.SelectedItem.Text;
this.txb_descrizione.Text = desc;
}
protected void rbl_Privacy_SelectedIndexChanged(object sender, EventArgs e)
{
int tiporeport = -1;
this.txb_nomeModello.Text = "";
this.txb_descrizione.Text = "";
lbl_message.Text = "";
if (rbl_scelte.SelectedItem.Value != "")
{
tiporeport = Convert.ToInt32(rbl_scelte.SelectedItem.Value);
ddl_Modello.Enabled = false;
ddl_Modello.SelectedIndex = 0;
}
else
{
ddl_Modello.Enabled = true;
ddl_Modello.SelectedIndex = 0;
}
// Carico il report selezionato che puo essere base o completo visto che Modelli risuleterebbe vuoto
if (tiporeport != -1)
{
createTreeView(idReportAlbero, tiporeport, false);
}
else
{
createTreeView(idReportAlbero, idReportCompleto, true);
}
if (tiporeport == idReportBase)
{
if (!ClientScript.IsStartupScriptRegistered("gestAnalisiRischio"))
{
String cstext = "";
ClientScript.RegisterStartupScript(this.GetType(), "gestAnalisiRischio", cstext);
}
}
}
private void fillModelli()
{
this.ddl_Modello.Items.Clear();
List parametri = new List();
Parametro parametro = new Parametro();
parametro.ParameterName = "pIdReportModello";
parametro.Value = idReportAlbero;
parametro.DbType = DbType.Int32;
parametri.Add(parametro);
parametro = new Parametro();
parametro.ParameterName = "pUtente";
if ((_cliente.CodiceRete + _cliente.CodicePB).Length > 0)
parametro.Value = _cliente.CodiceRete + _cliente.CodicePB;
else
parametro.Value = System.DBNull.Value;
parametro.DbType = DbType.String;
parametri.Add(parametro);
DataTable dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServer, "sp_getReport_ByUtenteAndModello", parametri);
ddl_Modello.Items.Add("Selezione Modelli");
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
string nome = dr["Nome"].ToString();
if (nome.IndexOf("LAST USED CONFIG") == -1)
{
ListItem li = new ListItem(dr["Nome"].ToString(), dr["IdReport"].ToString() + "|" + dr["Descrizione"].ToString());
this.ddl_Modello.Items.Add(li);
}
}
}
}
}