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;
using DataAccessLayer;
namespace PDFGenerator.BusinessLayer.DataSection
{
public class DSFD76PatrimonioNonRappresentabileAssettClass : 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 DSFD76PatrimonioNonRappresentabileAssettClass()
{
_parametriFiltro = new ArrayList();
_Filtra = false;
}
///
/// Costruttore
///
///
public DSFD76PatrimonioNonRappresentabileAssettClass(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();
List _listaPNRAC = new List();
ds76.ContoCorrente.Columns.Add(new DataColumn("Tipo_Prodotto", System.Type.GetType("System.String")));
foreach (DataRow r in dt.Rows)
{
// attraverso il metodo ClsFunzioniGeneriche recupero la data del contartto
dr = ds76.ContoCorrente.NewRow();
dr["Contratto"] = r["Contratto"];
dr["Tipo_Prodotto"] = r["Tipo_Prodotto"];
dr["Descrizione"] = r["Descrizione"];
dr["isAPC"] = r["isAPC"];
// SavingMap New
dr[""] = string.Empty;
if (dr["Contratto"].ToString().IndexOf("VP") > 0 && dr["Tipo_Prodotto"].ToString().Trim() == "CC")
dr[""] = WebConfigParameter.getParameter("SavingMap");
else
{
if (dr["Contratto"].ToString().IndexOf("FO") > 0)
{
if (isSavingMap(dataThread.Rete, dataThread.CodiceFiscale.Trim(), dr["Contratto"].ToString().Trim(), dataThread.Periodico))
dr[""] = WebConfigParameter.getParameter("SavingMap");
}
}
// End SavingMap
if (dr["isAPC"].ToString() == "S")
{
dr[""] = WebConfigParameter.getParameter("APC103");
dataThread.IsAPC103 = true;
}
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"];
}
/*** Fix per escludere il DataSet Tipizzato solo per la tabella ContoCorrente - 03/02/2023 - Pino ***/
//foreach (DataRow r in dt.Rows)
//{
// // attraverso il metodo ClsFunzioniGeneriche recupero la data del contartto
// PatrimonioNonRappresentabileAssettClass _clsPNRAC = new PatrimonioNonRappresentabileAssettClass();
// _clsPNRAC.Contratto = r["Contratto"].ToString();
// _clsPNRAC.Tipo_Prodotto = r["Tipo_Prodotto"].ToString();
// _clsPNRAC.Descrizione = r["Descrizione"].ToString();
// _clsPNRAC.isAPC = r["isAPC"].ToString();
// // SavingMap New
// _clsPNRAC.Image = string.Empty;
// if (_clsPNRAC.Contratto.IndexOf("VP") > 0 && _clsPNRAC.Tipo_Prodotto.Trim() == "CC")
// _clsPNRAC.Image = WebConfigParameter.getParameter("SavingMap");
// else
// {
// if (_clsPNRAC.Contratto.IndexOf("FO") > 0)
// {
// if (isSavingMap(dataThread.Rete, dataThread.CodiceFiscale.Trim(), _clsPNRAC.Contratto.Trim(), dataThread.Periodico))
// _clsPNRAC.Image = WebConfigParameter.getParameter("SavingMap");
// }
// }
// // End SavingMap
// if (_clsPNRAC.isAPC == "S")
// {
// _clsPNRAC.Image = WebConfigParameter.getParameter("APC103");
// dataThread.IsAPC103 = true;
// }
// switch (_modalitaRappresentazione)
// {
// case EmodalitaRappresentazione.normale:
// _clsPNRAC.Intermediario = r["Intermediario"].ToString();
// break;
// case EmodalitaRappresentazione.alternativa:
// _clsPNRAC.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")
// _clsPNRAC.AreaProgetto += " / " + progetto;
// //
// break;
// }
// _clsPNRAC.ControvaloreNonCoperto = r["Controvalore"].ToString();
// _clsPNRAC.Controvalore = r["controvalore_contratto"].ToString();
// _clsPNRAC.DataSottoscrizione = r["DataSottoscrizione"].ToString();
// #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
// _listaPNRAC.Add(_clsPNRAC);
// ctvTotale += (Decimal)r["controvalore_contratto"];
// ctvTotaleNonCoperto += (Decimal)r["Controvalore"];
//}
//// Converto la lista in un datatable
//DataTable _dt = UtilityBusinessLayer.ToDataTable(_listaPNRAC);
//_dt.TableName = "ContoCorrente";
//ds76.Tables.Add(_dt);
/************************************************************************************************************/
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;
}
}
public bool isSavingMap(string pRete, string pCodFis, string pContratto, bool pPeriodico)
{
//dataThread.Rete, dataThread.CodiceFiscale, dr.Contratto, dr.Tipo_Prodotto, dataThread.Periodico
var parametri = new List
{
new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.String,
ParameterName = "Rete",
Value = pRete
},
new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.String,
ParameterName = "CodFis",
Value = pCodFis
},
new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.String,
ParameterName = "CodConf",
Value = pContratto
}
};
string sSql = "";
if (pPeriodico)
sSql = "[C6MartPeriodico].[PL_SavingMap]";
else
sSql = "[C6Mart].[PL_SavingMap]";
DataAccessDE dataAccess = new DataAccessDE(DBProvider.SqlServerStampeC6);
DataTable dt = dataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerStampeC6, sSql, parametri);
if ((dt == null) || (dt.Rows.Count == 0))
return false;
else
{
if ((dt.Rows[0][0].ToString() == "0"))
return false;
else
return true;
}
}
}
public class PatrimonioNonRappresentabileAssettClass
{
public string DataSottoscrizione { get; set; }
public string Contratto { get; set; }
public string Descrizione { get; set; }
public string isAPC { get; set; }
public string Image { get; set; }
public string Intermediario { get; set; }
public string AreaProgetto { get; set; }
public string Controvalore { get; set; }
public string ControvaloreNonCoperto { get; set; }
public string Tipo_Prodotto { get; set; }
}
}