using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections; using PDFGenerator.BusinessLayer.DataSection; using System.Collections.Generic; using PDFGenerator.BusinessLayer; /// /// Summary description for DSS76PatrimonioNonRappresentabileAssettClass /// public class DSS76PatrimonioNonRappresentabileAssettClass : IDataSection { private ArrayList _parametriFiltro; private bool _Filtra; private bool HasColumnCtvNonCoperto; private bool _flagS86; private bool _flagS86BIS; /// /// Indica se è stato flaggato sull'albero la sezione S86 /// public bool FlagS86 { get { return _flagS86; } set { _flagS86 = value; } } /// /// Indica se è stato flaggato sull'albero la sezione S86BIS /// public bool FlagS86BIS { get { return _flagS86BIS; } set { _flagS86BIS = value; } } /// /// Costruttore /// public DSS76PatrimonioNonRappresentabileAssettClass() { _parametriFiltro = new ArrayList(); _Filtra = false; } /// /// Costruttore /// /// public DSS76PatrimonioNonRappresentabileAssettClass(EmodalitaRappresentazione modalitavisualizzazione) { _modalitaRappresentazione = modalitavisualizzazione; _parametriFiltro = new ArrayList(); _Filtra = false; } /// /// Modalità di visualizzazione: /// La modalità normale mostra la colonna Intermediario(S76 in modalità normale), /// La modalità alternativa mostra la colonna AreaProgetto(S76 in modalità alternativa). /// Se non specificato di default viene impostata la modalità normale. /// public enum EmodalitaRappresentazione { normale, alternativa } private EmodalitaRappresentazione _modalitaRappresentazione = EmodalitaRappresentazione.normale; /// /// Modalità di visualizzazione: /// La modalità normale mostra la colonna Intermediario(S76 in modalità normale), /// La modalità alternativa mostra la colonna AreaProgetto(S76 in modalità alternativa). /// Se non specificato di default viene impostata la modalità normale. /// public EmodalitaRappresentazione modalitaRappresentazione { get { return _modalitaRappresentazione; } set { _modalitaRappresentazione = value; } } public DataSectionResult getDataSection(List tabelleSessione, string querySql, DataThread dataThread) { DataSectionResult dsr = new DataSectionResult(); DataTable dt; if(_modalitaRappresentazione==EmodalitaRappresentazione.normale) { dt = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread); } else { dt = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread); if (_Filtra) { if (_parametriFiltro.Count > 0) { string parametriFiltro = "need_area in("; for (int i = 0; i < _parametriFiltro.Count; i++) { parametriFiltro += "'" + _parametriFiltro[i].ToString() + "',"; } parametriFiltro = parametriFiltro.Remove(parametriFiltro.Length - 1); parametriFiltro += ")"; DataView dtFiltrata = new DataView(dt); dtFiltrata.RowFilter = parametriFiltro; dt = dtFiltrata.ToTable(); } else { dt.Rows.Clear(); } } } DataRow dr; Decimal ctvTotale = 0; Decimal ctvTotaleNonCoperto = 0; DataSetS76 ds76 = new DataSetS76(); foreach (DataRow r in dt.Rows) { // attraverso il metodo ClsFunzioniGeneriche recupero la data del contartto dr = ds76.ContoCorrente.NewRow(); dr["Contratto"] = r["Contratto"]; dr["Descrizione"] = r["Descrizione"]; //if (r["PartitaViaggiante"] != DBNull.Value && Convert.ToDouble(r["PartitaViaggiante"]) > 0) // dr[""] = UtilityManager.getAppSetting("PartiteViaggianti"); //else dr[""] = string.Empty; switch (_modalitaRappresentazione) { case EmodalitaRappresentazione.normale: dr["Intermediario"] = r["Intermediario"]; break; case EmodalitaRappresentazione.alternativa: dr["AreaProgetto"] = r["Area"].ToString(); //V se il progetto è progetto investimento non deve apparire la riga / progetto string progetto = r["Progetto"].ToString(); if (r["Area"].ToString().ToUpper() == "INVESTIMENTO") if(progetto != "Progetto investimento") dr["AreaProgetto"] += " / " + progetto; // break; } dr["ControvaloreNonCoperto"] = r["Controvalore"]; dr["Controvalore"] = r["controvalore_contratto"]; dr["DataSottoscrizione"] = r["DataSottoscrizione"]; #region Getstione controvalore non coperto decimal ctv = 0; decimal ctvContratto = 0; if (r["Controvalore"] != DBNull.Value) ctv = Convert.ToDecimal(r["Controvalore"]); if (r["controvalore_contratto"] != DBNull.Value) ctvContratto = Convert.ToDecimal(r["controvalore_contratto"]); if (ctv != ctvContratto) HasColumnCtvNonCoperto = true; #endregion ds76.ContoCorrente.Rows.Add(dr); ctvTotale += (Decimal)r["controvalore_contratto"]; ctvTotaleNonCoperto += (Decimal)r["Controvalore"]; } DataRow drTot = ds76.TotaleConti.NewRow(); drTot["Descrizione"] = "Totale Patrimonio non rappresentabile".ToUpper(); drTot["Valore"] = ctvTotale; drTot["ValoreNonCoperto"] = ctvTotaleNonCoperto; ds76.TotaleConti.Rows.Add(drTot); // Aggiungo l'informazione per la parte grafica if (ds76.ContoCorrente.ExtendedProperties.Contains("HasColumnCtvNonCoperto")) ds76.ContoCorrente.ExtendedProperties["HasColumnCtvNonCoperto"] = HasColumnCtvNonCoperto; else ds76.ContoCorrente.ExtendedProperties.Add("HasColumnCtvNonCoperto", HasColumnCtvNonCoperto); //Patrimonio non rappresentabile per asset class- //se presente patrimonio non rappresentabile ed è stata selezionata solo la vista a livello di portafoglio complessivo, //nella tabella non deve essere riportata la colonna Area/progetto if (_flagS86 == false && _flagS86BIS == false) ds76.ContoCorrente.AreaProgettoColumn.ExtendedProperties.Add("ToRemove", true); dsr.DatiSezione = ds76; dsr.Esito = ds76.ContoCorrente.Rows.Count; return dsr; } public ArrayList ParametriFiltro { set { _Filtra = true; _parametriFiltro = value; } } }