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;
using System.ComponentModel;
using System.Linq;
namespace PDFGenerator.BusinessLayer.DataSection
{
class DSS180ProdottiAltaComplessita : IDataSection
{
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
//private int _experince;
//public int Experince
//{
// set
// {
// _experince = value;
// }
// get
// {
// return _experince;
// }
//}
public DSS180ProdottiAltaComplessita()
{
//
// TODO: Add constructor logic here
//
}
#region IDataSection Members
///
/// Implement the getDataSection function of the interface IDataSection.
///
///
/// Sql Statment to be executed to return the Profile Risk of the certain customer in a certain network
///
/// Data Table to be shown in the report
public DataSectionResult getDataSectionOld(List tabelleSessione, string querySql, DataThread dataThread)
{
try
{
FormatNum num = new FormatNum();
DataSectionResult dsr = new DataSectionResult();
DataSetS180 ds180 = new DataSetS180();
// La sezione va stampata se non si verificano i seguenti 3 casi:
// Copertura = 0
string preQuerySql = dataThread.Periodico ? "[C6MartPeriodico].[PL_D_S178CasiParticolari]" : "[C6Mart].[PL_D_S178CasiParticolari]";
DataTable dtTestoKO = SectionManager.GetDataSection(tabelleSessione, preQuerySql, dataThread);
//Se la verifica ha dato un KO significa che la sezione non deve essere stampata
if (dtTestoKO.Rows.Count > 0)
{
dsr.Esito = 0;
return dsr;
}
else
{
DataTable dt = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread);
DataRow drProdotto;
DataRow drTotaleProdotti;
DataRow drTotalePatrimonio;
decimal totaleControvaloreProdotti = 0;
decimal totalePesoProdotti = 0;
decimal totalePatrimonio = 0;
if (dt.Rows.Count > 0)
{
drTotaleProdotti = ds180.TotaleProdotti.NewRow();
drTotaleProdotti["Descrizione"] = @"TOTALE PRODOTTI CON COMPLESSITA’ ""ALTA"" e ""MOLTO ALTA""";
foreach (DataRow r in dt.Rows)
{
drProdotto = ds180.ProdottiAltaComplessita.NewRow();
drProdotto["CodiceContratto"] = r["CodiceContratto"].ToString();
drProdotto["NomeProdotto"] = r["NomeProdotto"].ToString();
//drEmittente["ObbligazioniControvalore"] = Convert.ToDecimal(r["ObbligazioniControvalore"]).ToString("#,##0.00");
//drEmittente["ObbligazioniConcentrazione"] = Convert.ToDecimal(r["ObbligazioniConcentrazione"]).ToString("#,##0.00");
//drEmittente["AzioniControvalore"] = Convert.ToDecimal(r["AzioniControvalore"]).ToString("#,##0.00");
//drEmittente["AzioniConcentrazione"] = Convert.ToDecimal(r["AzioniConcentrazione"]).ToString("#,##0.00");
//drEmittente["ObbligazioniControvalore"] = r["ObbligazioniControvalore"] == null ? "-" : Convert.ToDecimal(r["ObbligazioniControvalore"]).ToString("C", System.Globalization.CultureInfo.CurrentCulture);
//drEmittente["ObbligazioniConcentrazione"] = r["ObbligazioniConcentrazione"] == null ? "-" : Convert.ToDecimal(r["ObbligazioniConcentrazione"]).ToString("P", System.Globalization.CultureInfo.CurrentCulture);
//drEmittente["AzioniControvalore"] = r["AzioniControvalore"] == null ? "-" : Convert.ToDecimal(r["AzioniControvalore"]).ToString("C");
//drEmittente["AzioniConcentrazione"] = r["AzioniConcentrazione"] == null ? "-" : Convert.ToDecimal(r["AzioniConcentrazione"]).ToString("P2");
//drEmittente["ObbligazioniControvalore"] = num.ConvertNum(r["ObbligazioniControvalore"]);
//drEmittente["ObbligazioniConcentrazione"] = num.ConvertNum(r["ObbligazioniConcentrazione"]);
//drEmittente["AzioniControvalore"] = num.ConvertNum(r["AzioniControvalore"]);
//drEmittente["AzioniConcentrazione"] = num.ConvertNum(r["AzioniConcentrazione"]);
//MIFID2 CR Napolitano i simboli vanno solo nell'intestazione
//drProdotto["Controvalore"] = string.IsNullOrEmpty(r["Controvalore"].ToString()) ? "-" : string.Concat(num.ConvertNum(r["Controvalore"]), " €");
drProdotto["Controvalore"] = string.IsNullOrEmpty(r["Controvalore"].ToString()) ? "-" : num.ConvertNum(r["Controvalore"]);
//--MIFID2
drProdotto["Peso"] = string.IsNullOrEmpty(r["Peso"].ToString()) ? "-" : num.ConvertNum(r["Peso"]);
totalePatrimonio = Convert.ToDecimal(r["TotalePatrimonio"].ToString());
ds180.ProdottiAltaComplessita.Rows.Add(drProdotto);
totaleControvaloreProdotti += Convert.ToDecimal(r["Controvalore"]);
totalePesoProdotti += Convert.ToDecimal(r["Peso"]);
}
//MIFID2 CR Napolitano i simboli vanno solo nell'intestazione
//drTotaleProdotti["TotaleControvalore"] = string.Concat(num.ConvertNum(Convert.ToDecimal(totaleControvaloreProdotti).ToString()), " €");
drTotaleProdotti["TotaleControvalore"] = num.ConvertNum(Convert.ToDecimal(totaleControvaloreProdotti).ToString());
//MIFID2
drTotaleProdotti["TotalePeso"] = Convert.ToDecimal(num.ConvertNum(totalePesoProdotti)).ToString();
ds180.TotaleProdotti.Rows.Add(drTotaleProdotti);
}
drTotalePatrimonio = ds180.TotalePatrimonio.NewRow();
drTotalePatrimonio["Descrizione"] = "TOTALE PATRIMONIO";
//drTotalePatrimonio["TotaleControvalore"] = string.Concat(Convert.ToDecimal("11.215.345,87").ToString(), " €");
//MIFID2 CR Napolitano i simboli vanno solo nell'intestazione
//drTotalePatrimonio["TotaleControvalore"] = string.Concat(num.ConvertNum(totalePatrimonio), " €");
//FIX Totale Patrimonio (deve contenere anche tutte le altre voci
//drTotalePatrimonio["TotaleControvalore"] = num.ConvertNum(totalePatrimonio);
drTotalePatrimonio["TotaleControvalore"] = num.ConvertNum(totalePatrimonio
+ dataThread.ContoCorrente +
dataThread.PartiteViaggiantiInvestimento +
dataThread.PartiteViaggiantiDisinvestimento +
dataThread.TotalSelfNegCurrentAccountValue);
//--MIFID2
drTotalePatrimonio["TotalePeso"] = "";
ds180.TotalePatrimonio.Rows.Add(drTotalePatrimonio);
dsr.DatiSezione = ds180;
int esito = 0;
//if (dtFilter.Rows.Count < 5)
// esito = 0;
//else
esito = ds180.ProdottiAltaComplessita.Rows.Count;
dsr.Esito = esito;
dsr.Esito = 1;
return dsr;
}
}
catch (Exception ex)
{
try
{
logger.Error(String.Concat(ex.Message, " ", dataThread.CodiceFiscale));
}
catch { }
throw ex;
}
}
#region Nuova Sezione per la gestione dei nuovi profili di rischio
///
/// Implement the getDataSection function of the interface IDataSection.
///
///
/// Sql Statment to be executed to return the Profile Risk of the certain customer in a certain network
///
/// Data Table to be shown in the report
public DataSectionResult getDataSection(List tabelleSessione, string querySql, DataThread dataThread)
{
try
{
FormatNum num = new FormatNum();
DataSectionResult dsr = new DataSectionResult();
DataSetS180 ds180 = new DataSetS180();
// La sezione va stampata se non si verificano i seguenti 3 casi:
// Copertura = 0
string preQuerySql = dataThread.Periodico ? "[C6MartPeriodico].[PL_D_S178CasiParticolari]" : "[C6Mart].[PL_D_S178CasiParticolari]";
DataTable dtTestoKO = SectionManager.GetDataSection(tabelleSessione, preQuerySql, dataThread);
//Se la verifica ha dato un KO significa che la sezione non deve essere stampata
if (dtTestoKO.Rows.Count > 0)
{
dsr.Esito = 0;
return dsr;
}
else
{
DataTable dt = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread);
if (dt.Rows.Count == 0)
{
dsr.Esito = 0;
return dsr;
}
List listaDettaglio = GetDettaglioConcentrazioneProdottiComplessi(dt);
List listaTotali = GetTotaliConcentrazioneProdottiComplessi(dt);
List listaTotaleGenerale = GetTotaleGeneraleProdotticomplessi(dt, listaDettaglio);
// Converto in un Datatable la lista di dettaglio e lo aggiungo al dataset di ritorno
DataTable _dtDettaglioComplessita = UtilityBusinessLayer.ToDataTable(listaDettaglio);
_dtDettaglioComplessita.TableName = "DettaglioComplessita";
ds180.Tables.Add(_dtDettaglioComplessita);
// Converto in un Datatable la lista dei Totali e lo aggiungo al dataset di ritorno
DataTable _dtTotaliComplessita = UtilityBusinessLayer.ToDataTable(listaTotali);
_dtTotaliComplessita.TableName = "TotaliComplessita";
ds180.Tables.Add(_dtTotaliComplessita);
// Converto in un Datatable la lista del Totale e lo aggiungo al dataset di ritorno
DataTable _dtTotaleGenerale = UtilityBusinessLayer.ToDataTable(listaTotaleGenerale);
_dtTotaleGenerale.TableName = "TotaleGenerale";
ds180.Tables.Add(_dtTotaleGenerale);
dsr.DatiSezione = ds180;
int esito = 0;
esito = ds180.Tables["DettaglioComplessita"].Rows.Count;
dsr.Esito = esito;
//DataRow drProdotto;
//DataRow drTotaleProdotti;
//DataRow drTotalePatrimonio;
//decimal totaleControvaloreProdotti = 0;
//decimal totalePesoProdotti = 0;
//decimal totalePatrimonio = 0;
//if (dt.Rows.Count > 0)
//{
// drTotaleProdotti = ds180.TotaleProdotti.NewRow();
// drTotaleProdotti["Descrizione"] = @"TOTALE PRODOTTI CON COMPLESSITA’ ""ALTA"" e ""MOLTO ALTA""";
// foreach (DataRow r in dt.Rows)
// {
// drProdotto = ds180.ProdottiAltaComplessita.NewRow();
// drProdotto["CodiceContratto"] = r["CodiceContratto"].ToString();
// drProdotto["NomeProdotto"] = r["NomeProdotto"].ToString();
// //drEmittente["ObbligazioniControvalore"] = Convert.ToDecimal(r["ObbligazioniControvalore"]).ToString("#,##0.00");
// //drEmittente["ObbligazioniConcentrazione"] = Convert.ToDecimal(r["ObbligazioniConcentrazione"]).ToString("#,##0.00");
// //drEmittente["AzioniControvalore"] = Convert.ToDecimal(r["AzioniControvalore"]).ToString("#,##0.00");
// //drEmittente["AzioniConcentrazione"] = Convert.ToDecimal(r["AzioniConcentrazione"]).ToString("#,##0.00");
// //drEmittente["ObbligazioniControvalore"] = r["ObbligazioniControvalore"] == null ? "-" : Convert.ToDecimal(r["ObbligazioniControvalore"]).ToString("C", System.Globalization.CultureInfo.CurrentCulture);
// //drEmittente["ObbligazioniConcentrazione"] = r["ObbligazioniConcentrazione"] == null ? "-" : Convert.ToDecimal(r["ObbligazioniConcentrazione"]).ToString("P", System.Globalization.CultureInfo.CurrentCulture);
// //drEmittente["AzioniControvalore"] = r["AzioniControvalore"] == null ? "-" : Convert.ToDecimal(r["AzioniControvalore"]).ToString("C");
// //drEmittente["AzioniConcentrazione"] = r["AzioniConcentrazione"] == null ? "-" : Convert.ToDecimal(r["AzioniConcentrazione"]).ToString("P2");
// //drEmittente["ObbligazioniControvalore"] = num.ConvertNum(r["ObbligazioniControvalore"]);
// //drEmittente["ObbligazioniConcentrazione"] = num.ConvertNum(r["ObbligazioniConcentrazione"]);
// //drEmittente["AzioniControvalore"] = num.ConvertNum(r["AzioniControvalore"]);
// //drEmittente["AzioniConcentrazione"] = num.ConvertNum(r["AzioniConcentrazione"]);
// //MIFID2 CR Napolitano i simboli vanno solo nell'intestazione
// //drProdotto["Controvalore"] = string.IsNullOrEmpty(r["Controvalore"].ToString()) ? "-" : string.Concat(num.ConvertNum(r["Controvalore"]), " €");
// drProdotto["Controvalore"] = string.IsNullOrEmpty(r["Controvalore"].ToString()) ? "-" : num.ConvertNum(r["Controvalore"]);
// //--MIFID2
// drProdotto["Peso"] = string.IsNullOrEmpty(r["Peso"].ToString()) ? "-" : num.ConvertNum(r["Peso"]);
// totalePatrimonio = Convert.ToDecimal(r["TotalePatrimonio"].ToString());
// ds180.ProdottiAltaComplessita.Rows.Add(drProdotto);
// totaleControvaloreProdotti += Convert.ToDecimal(r["Controvalore"]);
// totalePesoProdotti += Convert.ToDecimal(r["Peso"]);
// }
// //MIFID2 CR Napolitano i simboli vanno solo nell'intestazione
// //drTotaleProdotti["TotaleControvalore"] = string.Concat(num.ConvertNum(Convert.ToDecimal(totaleControvaloreProdotti).ToString()), " €");
// drTotaleProdotti["TotaleControvalore"] = num.ConvertNum(Convert.ToDecimal(totaleControvaloreProdotti).ToString());
// //MIFID2
// drTotaleProdotti["TotalePeso"] = Convert.ToDecimal(num.ConvertNum(totalePesoProdotti)).ToString();
// ds180.TotaleProdotti.Rows.Add(drTotaleProdotti);
//}
//drTotalePatrimonio = ds180.TotalePatrimonio.NewRow();
//drTotalePatrimonio["Descrizione"] = "TOTALE PATRIMONIO";
////drTotalePatrimonio["TotaleControvalore"] = string.Concat(Convert.ToDecimal("11.215.345,87").ToString(), " €");
////MIFID2 CR Napolitano i simboli vanno solo nell'intestazione
////drTotalePatrimonio["TotaleControvalore"] = string.Concat(num.ConvertNum(totalePatrimonio), " €");
////FIX Totale Patrimonio (deve contenere anche tutte le altre voci
////drTotalePatrimonio["TotaleControvalore"] = num.ConvertNum(totalePatrimonio);
//drTotalePatrimonio["TotaleControvalore"] = num.ConvertNum(totalePatrimonio
// + dataThread.ContoCorrente +
// dataThread.PartiteViaggiantiInvestimento +
// dataThread.PartiteViaggiantiDisinvestimento +
// dataThread.TotalSelfNegCurrentAccountValue);
////--MIFID2
//drTotalePatrimonio["TotalePeso"] = "";
//ds180.TotalePatrimonio.Rows.Add(drTotalePatrimonio);
//dsr.DatiSezione = ds180;
//int esito = 0;
////if (dtFilter.Rows.Count < 5)
//// esito = 0;
////else
//esito = ds180.ProdottiAltaComplessita.Rows.Count;
//dsr.Esito = esito;
//dsr.Esito = 1;
return dsr;
}
}
catch (Exception ex)
{
try
{
logger.Error(String.Concat(ex.Message, " ", dataThread.CodiceFiscale));
}
catch { }
throw ex;
}
}
#endregion
#endregion
#region Recupero Dati
protected List GetDettaglioConcentrazioneProdottiComplessi(DataTable dt)
{
List _lista = new List();
//List _lista = UtilityBusinessLayer.ConvertTo(dt);
// Separo le diverse complessità
//List _listaAlta = _lista.Where(f => f.Ordine == 1).Select(s => s).ToList();
//List _listaMedioAltaAlta = _lista.Where(f => f.Ordine == 2).Select(s => s).ToList();
//List _listaMedioAltaMedioBassaAlta = _lista.Where(f => f.Ordine == 3).Select(s => s).ToList();
var _listaAlta = dt.AsEnumerable().Where(f => f.Field("Ordine") == 1).Select(s => s).ToList();
var _listaMedioAltaAlta = dt.AsEnumerable().Where(f => f.Field("Ordine") == 2).Select(s => s).ToList();
var _listaMedioAltaMedioBassaAlta = dt.AsEnumerable().Where(f => f.Field("Ordine") == 3).Select(s => s).ToList();
#region lista Alta
if (_listaAlta.Count > 0)
{
decimal ControvaloreDec = 0M;
decimal PesoDecimale = 0M;
foreach (var item in _listaAlta.AsEnumerable())
{
if (item != null)
{
ControvaloreDec += item.Field("Controvalore");
PesoDecimale += item.Field("Peso");
_lista.Add(new DettaglioConcentrazioneProdottiComplessi()
{
Complessita = item.Field("Complessita"),
Ordine = item.Field("Ordine"),
NomeProdotto = item.Field("NomeProdotto"), //"Bkamerica 4,2% 14-24",
Controvalore = (item.Field("Controvalore") == 0 ? "-" : item.Field("Controvalore").ToString("#,#0.00")), //25089.39.ToString("#,##0.000"),
Descrizione = item.Field("Descrizione"),
CodiceContratto = item.Field("CodiceContratto"),
Peso = (item.Field("Peso") == 0 ? "-" : item.Field("Peso").ToString("#,#0.00")),
ControvaloreDecimale = ControvaloreDec,
PesoDecimale = PesoDecimale,
TotalePatrimonio = item.Field("TotalePatrimonio")
});
}
else
{
_lista.Add(new DettaglioConcentrazioneProdottiComplessi()
{
Complessita = "-",
Ordine = 1,
NomeProdotto = "-", //"Bkamerica 4,2% 14-24",
Controvalore = "0.00",
Descrizione = "-",
CodiceContratto = "-",
Peso = "0.00",
ControvaloreDecimale = 0M,
PesoDecimale = 0M
});
}
}
}
else
{
_lista.Add(new DettaglioConcentrazioneProdottiComplessi()
{
Complessita = "-",
Ordine = 1,
NomeProdotto = "-", //"Bkamerica 4,2% 14-24",
Controvalore = "0.00",
Descrizione = "-",
CodiceContratto = "-",
Peso = "0.00",
ControvaloreDecimale = 0M,
PesoDecimale = 0M
});
}
#endregion
#region lista Medioalta - Alta
// MedioAlta - Alta
if (_listaMedioAltaAlta.Count > 0)
{
decimal ControvaloreDec = 0M;
decimal PesoDecimale = 0M;
foreach (var item in _listaMedioAltaAlta.AsEnumerable())
{
if (item != null)
{
ControvaloreDec += item.Field("Controvalore");
PesoDecimale += item.Field("Peso");
_lista.Add(new DettaglioConcentrazioneProdottiComplessi()
{
Complessita = item.Field("Complessita"),
Ordine = item.Field("Ordine"),
NomeProdotto = item.Field("NomeProdotto"), //"Bkamerica 4,2% 14-24",
Controvalore = (item.Field("Controvalore") == 0 ? "-" : item.Field("Controvalore").ToString("#,#0.00")), //25089.39.ToString("#,##0.000"),
Descrizione = item.Field("Descrizione"),
CodiceContratto = item.Field("CodiceContratto"),
Peso = (item.Field("Peso") == 0 ? "-" : item.Field("Peso").ToString("#,#0.00")),
ControvaloreDecimale = ControvaloreDec,
PesoDecimale = PesoDecimale,
TotalePatrimonio = item.Field("TotalePatrimonio")
});
}
else
{
_lista.Add(new DettaglioConcentrazioneProdottiComplessi()
{
Complessita = "-",
Ordine = 2,
NomeProdotto = "-", //"Bkamerica 4,2% 14-24",
Controvalore = "0.00",
Descrizione = "-",
CodiceContratto = "-",
Peso = "0.00",
ControvaloreDecimale = 0M,
PesoDecimale = 0M
});
}
}
}
else
{
_lista.Add(new DettaglioConcentrazioneProdottiComplessi()
{
Complessita = "-",
Ordine = 2,
NomeProdotto = "-", //"Bkamerica 4,2% 14-24",
Controvalore = "0.00",
Descrizione = "-",
CodiceContratto = "-",
Peso = "0.00",
ControvaloreDecimale = 0M,
PesoDecimale = 0M
});
}
#endregion
#region lista MedioAlta MedioBassa Alta
if (_listaMedioAltaMedioBassaAlta.Count > 0)
{
decimal ControvaloreDec = 0M;
decimal PesoDecimale = 0M;
foreach (var item in _listaMedioAltaMedioBassaAlta.AsEnumerable())
{
if (item != null)
{
ControvaloreDec += item.Field("Controvalore");
PesoDecimale += item.Field("Peso");
_lista.Add(new DettaglioConcentrazioneProdottiComplessi()
{
Complessita = item.Field("Complessita"),
Ordine = item.Field("Ordine"),
NomeProdotto = item.Field("NomeProdotto"), //"Bkamerica 4,2% 14-24",
Controvalore = (item.Field("Controvalore") == 0 ? "-" : item.Field("Controvalore").ToString("#,#0.00")), //25089.39.ToString("#,##0.000"),
Descrizione = item.Field("Descrizione"),
CodiceContratto = item.Field("CodiceContratto"),
Peso = (item.Field("Peso") == 0 ? "-" : item.Field("Peso").ToString("#,#0.00")),
ControvaloreDecimale = ControvaloreDec,
PesoDecimale = PesoDecimale,
TotalePatrimonio = item.Field("TotalePatrimonio")
});
}
else
{
_lista.Add(new DettaglioConcentrazioneProdottiComplessi()
{
Complessita = "-",
Ordine = 3,
NomeProdotto = "-", //"Bkamerica 4,2% 14-24",
Controvalore = "0.00",
Descrizione = "-",
CodiceContratto = "-",
Peso = "0.00",
ControvaloreDecimale = 0M,
PesoDecimale = 0M
});
}
}
}
else
{
_lista.Add(new DettaglioConcentrazioneProdottiComplessi()
{
Complessita = "-",
Ordine = 3,
NomeProdotto = "-", //"Bkamerica 4,2% 14-24",
Controvalore = "0.00",
Descrizione = "-",
CodiceContratto = "-",
Peso = "0.00",
ControvaloreDecimale = 0M,
PesoDecimale = 0M
});
}
#endregion
string Descrizione = _lista.Where(f => f.Descrizione != "-").Select(s => s.Descrizione).First();
_lista.ForEach(ec => ec.Descrizione = Descrizione);
return _lista;
}
protected List GetTotaliConcentrazioneProdottiComplessi(DataTable dt)
{
List _listaTotaliComplessita = new List();
List _listaTotali = UtilityBusinessLayer.ConvertTo(dt);
// Separo i totali per le diverse complessità
List _listaTotAlta = _listaTotali.Where(f => f.Ordine == 1).Select(s => s).ToList();
List _listaTotMedioAltaAlta = _listaTotali.Where(f => f.Ordine == 2).Select(s => s).ToList();
List _listaTotMedioAltaMedioBassaAlta = _listaTotali.Where(f => f.Ordine == 3).Select(s => s).ToList();
#region lista Totali Alta
if (_listaTotAlta.Count > 0)
{
foreach (var item in _listaTotAlta.Take(1))
{
_listaTotaliComplessita.Add(new TotaleDettConcentrazioneProdComplessi()
{
Ordine = item.Ordine,
Descrizione = "TOTALE PRODOTTI CON COMPLESSITA’ ALTA",
SommaControvalore = (item.SommaControvalore == "0" ? "-" : Convert.ToDecimal(item.SommaControvalore).ToString("#,#0.00")),
SommaPesi = (item.SommaPesi == "0" ? "-" : Convert.ToDecimal(item.SommaPesi).ToString("#,#0.00")),
});
}
}
else
{
_listaTotaliComplessita.Add(new TotaleDettConcentrazioneProdComplessi()
{
Ordine = 1,
Descrizione = "TOTALE PRODOTTI CON COMPLESSITA’ ALTA",
SommaControvalore = "0.00",
SommaPesi = "0.00",
});
}
#endregion
#region lista Totali MedioAlta - Alta
if (_listaTotMedioAltaAlta.Count > 0)
{
foreach (var item in _listaTotMedioAltaAlta.Take(1))
{
_listaTotaliComplessita.Add(new TotaleDettConcentrazioneProdComplessi()
{
Ordine = item.Ordine,
Descrizione = "TOTALE PRODOTTI CON COMPLESSITA’ MEDIO - ALTA e ALTA",
SommaControvalore = (item.SommaControvalore == "0" ? "-" : Convert.ToDecimal(item.SommaControvalore).ToString("#,#0.00")),
SommaPesi = (item.SommaPesi == "0" ? "-" : Convert.ToDecimal(item.SommaPesi).ToString("#,#0.00")),
});
}
}
else
{
_listaTotaliComplessita.Add(new TotaleDettConcentrazioneProdComplessi()
{
Ordine = 2,
Descrizione = "TOTALE PRODOTTI CON COMPLESSITA’ MEDIO - ALTA e ALTA",
SommaControvalore = "0.00",
SommaPesi = "0.00",
});
}
#endregion
#region lista Totali MedioBassa - MedioAlta - Alta
if (_listaTotMedioAltaMedioBassaAlta.Count > 0)
{
foreach (var item in _listaTotMedioAltaMedioBassaAlta.Take(1))
{
_listaTotaliComplessita.Add(new TotaleDettConcentrazioneProdComplessi()
{
Ordine = item.Ordine,
Descrizione = "TOTALE PRODOTTI CON COMPLESSITA’ MEDIO - BASSA,MEDIO - ALTA e ALTA",
SommaControvalore = (item.SommaControvalore == "0" ? "-" : Convert.ToDecimal(item.SommaControvalore).ToString("#,#0.00")),
SommaPesi = (item.SommaPesi == "0" ? "-" : Convert.ToDecimal(item.SommaPesi).ToString("#,#0.00")),
});
}
}
else
{
_listaTotaliComplessita.Add(new TotaleDettConcentrazioneProdComplessi()
{
Ordine = 3,
Descrizione = "TOTALE PRODOTTI CON COMPLESSITA’ MEDIO - BASSA,MEDIO - ALTA e ALTA",
SommaControvalore = "0.00",
SommaPesi = "0.00",
});
}
#endregion
return _listaTotaliComplessita;
}
protected List GetTotaleGeneraleProdotticomplessi(DataTable dt, List _listaDettaglio)
{
List listaTotGenerale = new List();
List _listaTotali = UtilityBusinessLayer.ConvertTo(dt);
foreach (var item in _listaTotali.Take(1))
{
listaTotGenerale.Add(new TotaleDettConcentrazioneProdComplessi()
{
Descrizione = "TOTALE PATRIMONIO",
//TotalePatrimonioCTV = _listaDettaglio.Sum(ss => ss.ControvaloreDecimale).ToString("#,#0.00"),
TotalePatrimonioCTV = _listaDettaglio.Where(aa=> aa.TotalePatrimonio > 0).FirstOrDefault()?.TotalePatrimonio.ToString("#,#0.00"),
TotalePatrimonioPesi = "100,00" //_listaDettaglio.Sum(ss => ss.PesoDecimale).ToString("#,#0.00")
}); ;
}
return listaTotGenerale;
}
#endregion
}
public class DettaglioConcentrazioneProdottiComplessi
{
public string Descrizione { get; set; }
[Description("Tipo Complessità")]
public int Ordine { get; set; }
[Description("codice Contratto")]
public string CodiceContratto { get; set; }
[Description("Descrizione")]
public string NomeProdotto { get; set; }
[Description("ctv")]
public string Controvalore { get; set; }
[Description("Peso Percentuale")]
public string Peso { get; set; }
[Description("Complessita")]
public string Complessita { get; set; }
public decimal ControvaloreDecimale { get; set; }
public decimal PesoDecimale { get; set; }
public decimal TotalePatrimonio { get; set; }
}
public class TotaleDettConcentrazioneProdComplessi
{
[Description("Tipo Complessità")]
public int Ordine { get; set; }
public string Descrizione { get; set; }
public string TotalePatrimonioCTV { get; set; }
public string TotalePatrimonioPesi { get; set; }
public string SommaControvalore { get; set; }
public string SommaPesi { get; set; }
}
}