TP_SEI_Project/root/ContrattoSEI/PDFGenerator-dontSaveOnline/BusinessLayer/DataSection/DSS171PatrimonioNonRappresentabileAssettClass.cs
2025-04-15 12:10:19 +02:00

237 lines
7.6 KiB
C#

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>
/// Summary description for DSS76PatrimonioNonRappresentabileAssettClass
/// </summary>
public class DSS171PatrimonioNonRappresentabileAssettClass : IDataSection
{
private ArrayList _parametriFiltro;
private bool _Filtra;
private bool HasColumnCtvNonCoperto;
private bool _flagS86;
private bool _flagS86BIS;
/// <summary>
/// Indica se è stato flaggato sull'albero la sezione S86
/// </summary>
public bool FlagS86
{
get { return _flagS86; }
set { _flagS86 = value; }
}
/// <summary>
/// Indica se è stato flaggato sull'albero la sezione S86BIS
/// </summary>
public bool FlagS86BIS
{
get { return _flagS86BIS; }
set { _flagS86BIS = value; }
}
/// <summary>
/// Costruttore
/// </summary>
public DSS171PatrimonioNonRappresentabileAssettClass()
{
_parametriFiltro = new ArrayList();
_Filtra = false;
}
/// <summary>
/// Costruttore
/// </summary>
/// <param name="modalitavisualizzazione"></param>
public DSS171PatrimonioNonRappresentabileAssettClass(EmodalitaRappresentazione modalitavisualizzazione)
{
_modalitaRappresentazione = modalitavisualizzazione;
_parametriFiltro = new ArrayList();
_Filtra = false;
}
/// <summary>
/// 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.
/// </summary>
public enum EmodalitaRappresentazione
{
normale,
alternativa
}
private EmodalitaRappresentazione _modalitaRappresentazione = EmodalitaRappresentazione.normale;
/// <summary>
/// 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.
/// </summary>
public EmodalitaRappresentazione modalitaRappresentazione
{
get { return _modalitaRappresentazione; }
set { _modalitaRappresentazione = value; }
}
public DataSectionResult getDataSection(List<SessionStruct> 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["<IMAGE>"] = UtilityManager.getAppSetting("PartiteViaggianti");
//else
dr["<IMAGE>"] = 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;
}
}
}