159 lines
9.3 KiB
C#
159 lines
9.3 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 PDFGenerator.BusinessLayer;
|
|
using System.Collections.Generic;
|
|
|
|
namespace PDFGenerator.BusinessLayer.DataSection
|
|
{
|
|
class DSS128ProfiliRischioAdeguatezza : IDataSection
|
|
{
|
|
|
|
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
|
|
|
public DSS128ProfiliRischioAdeguatezza()
|
|
{
|
|
//
|
|
// TODO: Add constructor logic here
|
|
//
|
|
}
|
|
#region IDataSection Members
|
|
|
|
/// <summary>
|
|
/// Implement the getDataSection function of the interface IDataSection.
|
|
/// </summary>
|
|
/// <param name="tabelleSessione"></param>
|
|
/// <param name="querySql"> Sql Statment to be executed to return the Profile Risk of the certain customer in a certain network</param>
|
|
/// <param name="dataThread"></param>
|
|
/// <returns> Data Table to be shown in the report</returns>
|
|
public DataSectionResult getDataSection(List<SessionStruct> tabelleSessione, string querySql, DataThread dataThread)
|
|
{
|
|
try
|
|
{
|
|
DataSectionResult customerProfiliRischioAdeguatezzaDataSectionResult = new DataSectionResult();
|
|
|
|
//Random rnd = new Random();
|
|
DataRow customerProfiliRischioAdeguatezzaDataRow;
|
|
DataTable customerProfiliRischioAdeguatezzaDataTable = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread);
|
|
DataSetS128 customerProfiliRischioAdeguatezzaRecordsDataSetS128 = new DataSetS128();
|
|
|
|
if (dataThread.profiloIsAct && customerProfiliRischioAdeguatezzaDataTable.Rows.Count > 0)
|
|
{
|
|
int profiloRischioClienteAssegnato = Convert.ToInt32(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["codiceProfilo"]);
|
|
|
|
|
|
#region Creazione righe datatable ProfiloRischio
|
|
// Profilo di Rischio
|
|
|
|
customerProfiliRischioAdeguatezzaDataRow = customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiloRischio.NewRow();
|
|
customerProfiliRischioAdeguatezzaDataRow["Descrizione"] = "Profilo Finanziario";
|
|
customerProfiliRischioAdeguatezzaDataRow["Valore"] = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["codiceProfilo"].ToString() + " " + customerProfiliRischioAdeguatezzaDataTable.Rows[0]["nomeProfilo"].ToString();
|
|
customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiloRischio.Rows.Add(customerProfiliRischioAdeguatezzaDataRow);
|
|
|
|
#endregion
|
|
|
|
#region Creazione righe datatable Colonne
|
|
// Colonne
|
|
|
|
customerProfiliRischioAdeguatezzaDataRow = customerProfiliRischioAdeguatezzaRecordsDataSetS128.ColonneRed.NewRow();
|
|
customerProfiliRischioAdeguatezzaDataRow["Limite"] = "Limite massimo profilo finanziario";
|
|
customerProfiliRischioAdeguatezzaDataRow["Patrimonio"] = "Patrimonio " + dataThread.NomeRete;
|
|
customerProfiliRischioAdeguatezzaRecordsDataSetS128.ColonneRed.Rows.Add(customerProfiliRischioAdeguatezzaDataRow);
|
|
|
|
#endregion
|
|
|
|
|
|
string varr = SoglieVar.ConvOld(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["varMassimo"]);
|
|
if (dataThread.IsProffesionalClient && dataThread.RiskArea == 5)
|
|
varr = "50,00";
|
|
|
|
string x = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["varPatrimonioBF"].ToString();
|
|
|
|
#region Creazione righe datatable Rischio Mercato
|
|
// Rischio Mercato
|
|
customerProfiliRischioAdeguatezzaDataRow = customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiliRischioAdeguatezza.NewRow();
|
|
customerProfiliRischioAdeguatezzaDataRow["Descrizione"] = "Rischio Mercato (VaR%)";
|
|
customerProfiliRischioAdeguatezzaDataRow["LimiteMax"] = varr;
|
|
customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["varPatrimonioBF"].ToString();
|
|
customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiliRischioAdeguatezza.Rows.Add(customerProfiliRischioAdeguatezzaDataRow);
|
|
|
|
#endregion
|
|
|
|
#region Creazione righe datatable Rischio Credito
|
|
// Rischio Credito
|
|
customerProfiliRischioAdeguatezzaDataRow = customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiliRischioAdeguatezza.NewRow();
|
|
customerProfiliRischioAdeguatezzaDataRow["Descrizione"] = "Rischio Credito";
|
|
customerProfiliRischioAdeguatezzaDataRow["LimiteMax"] = UtilityBusinessLayer.GetRiskCreditClassName(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["RiskClass"].ToString());
|
|
if (UtilityBusinessLayer.GetRiskCreditClassName(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["riskClassBF"].ToString()) == "")
|
|
customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = "n.a.";
|
|
else
|
|
customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = UtilityBusinessLayer.GetRiskCreditClassName(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["riskClassBF"].ToString());
|
|
customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiliRischioAdeguatezza.Rows.Add(customerProfiliRischioAdeguatezzaDataRow);
|
|
|
|
#endregion
|
|
|
|
#region Creazione righe datatable Complessità
|
|
// Rischio Credito
|
|
customerProfiliRischioAdeguatezzaDataRow = customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiliRischioAdeguatezza.NewRow();
|
|
customerProfiliRischioAdeguatezzaDataRow["Descrizione"] = "Complessità";
|
|
//customerProfiliRischioAdeguatezzaDataRow["LimiteMax"] = UtilityBusinessLayer.GetRiskCreditClassName(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["RiskClass"].ToString());
|
|
//if (UtilityBusinessLayer.GetRiskCreditClassName(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["riskClassBF"].ToString()) == "")
|
|
// customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = "n.a.";
|
|
//else
|
|
// customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = UtilityBusinessLayer.GetRiskCreditClassName(customerProfiliRischioAdeguatezzaDataTable.Rows[0]["riskClassBF"].ToString());
|
|
//customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiliRischioAdeguatezza.Rows.Add(customerProfiliRischioAdeguatezzaDataRow);
|
|
|
|
//MIFID2 20180702 CR Napolitano
|
|
// Per i clienti professionali i valori relativi alla Complessità vanno impostati a "n.a."
|
|
if (dataThread.IsProffesionalClient)
|
|
{
|
|
customerProfiliRischioAdeguatezzaDataRow["LimiteMax"] = "n.a.";
|
|
//20180914 su segnalazione Napolitano
|
|
//customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = "n.a.";
|
|
customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["LimiteComplessitaPatrimonio"].ToString();
|
|
//--20180914
|
|
}
|
|
else
|
|
{
|
|
customerProfiliRischioAdeguatezzaDataRow["LimiteMax"] = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["LimiteComplessitaProfilo"].ToString();
|
|
customerProfiliRischioAdeguatezzaDataRow["ValoreBF"] = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["LimiteComplessitaPatrimonio"].ToString();
|
|
}
|
|
customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiliRischioAdeguatezza.Rows.Add(customerProfiliRischioAdeguatezzaDataRow);
|
|
#endregion
|
|
|
|
}
|
|
customerProfiliRischioAdeguatezzaDataSectionResult.DatiSezione = customerProfiliRischioAdeguatezzaRecordsDataSetS128;
|
|
customerProfiliRischioAdeguatezzaDataSectionResult.Esito = customerProfiliRischioAdeguatezzaRecordsDataSetS128.ProfiloRischio.Rows.Count;
|
|
|
|
//MIFID2 20180531 Gestire anche la copertura (serve per il testo sulla copertura nella S128
|
|
DataRow CoperturaRow = customerProfiliRischioAdeguatezzaRecordsDataSetS128.Copertura.NewRow();
|
|
CoperturaRow["Valore"] = customerProfiliRischioAdeguatezzaDataTable.Rows[0]["CoperturaBF"].ToString();
|
|
customerProfiliRischioAdeguatezzaRecordsDataSetS128.Copertura.Rows.Add(CoperturaRow);
|
|
//--MIFID2
|
|
|
|
return customerProfiliRischioAdeguatezzaDataSectionResult;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
try
|
|
{
|
|
logger.Error(String.Concat(ex.Message, " ", dataThread.CodiceFiscale));
|
|
}
|
|
catch { }
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|