360 lines
15 KiB
C#
360 lines
15 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 DSS141AnalisiRisparmioTable: IDataSection
|
|
{
|
|
#region IDataSection Members
|
|
|
|
public DataSectionResult getDataSection(List<SessionStruct> tabelleSessione, string querySql, DataThread dataThread)
|
|
{
|
|
DataSectionResult dsr = new DataSectionResult();
|
|
DataTable dt = null;
|
|
|
|
dt = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread);
|
|
|
|
dsr.Esito = dt.Rows.Count;
|
|
if (dt.Rows.Count == 0)
|
|
{
|
|
return dsr;
|
|
}
|
|
FormatNum num = new FormatNum();
|
|
|
|
DataSetS141 ds141 = new DataSetS141();
|
|
DataSetS141.EmittentiRow emittente;
|
|
DataRow[] filtrata;
|
|
filtrata = dt.Select("INTERMEDIARIO= 'BF" + "'");
|
|
|
|
//Devo rappresentare al più 5 righe
|
|
int numRighe = 5;
|
|
if (filtrata.Length < numRighe)
|
|
numRighe = filtrata.Length; //filtrata.Rows.Count;
|
|
|
|
for (int i = 0; i < numRighe; i++) {
|
|
|
|
DataRow row = filtrata[i];
|
|
bool rc1, rc2, rc3, rc4, rc5, rc6, rc7, rc8, rc9, rc10, nc;
|
|
rc1 = Convert.ToBoolean(row["flg_riskclass1"]);
|
|
rc2 = Convert.ToBoolean(row["flg_riskclass2"]);
|
|
rc3 = Convert.ToBoolean(row["flg_riskclass3"]);
|
|
rc4 = Convert.ToBoolean(row["flg_riskclass4"]);
|
|
rc5 = Convert.ToBoolean(row["flg_riskclass5"]);
|
|
rc6 = Convert.ToBoolean(row["flg_riskclass6"]);
|
|
rc7 = Convert.ToBoolean(row["flg_riskclass7"]);
|
|
rc8 = Convert.ToBoolean(row["flg_riskclass8"]);
|
|
rc9 = Convert.ToBoolean(row["flg_riskclass9"]);
|
|
rc10 = Convert.ToBoolean(row["flg_riskclass10"]);
|
|
|
|
nc = Convert.ToBoolean(row["nc"]);
|
|
emittente = ds141.Emittenti.NewEmittentiRow();
|
|
emittente.Emittente = row["Issuer"].ToString();
|
|
Int16 iCont = 0;
|
|
|
|
emittente.RischioCreditoCodice = new decimal[] { rc1 ? 1 : -1, rc2 ? 2 : -1, rc3 ? 3 : -1, rc4 ? 4 : -1, rc5 ? 5 : -1, rc6 ? 6 : -1, rc7 ? 7 : -1, rc8 ? 8 : -1, rc9 ? 9 : -1, rc10 ? 10 : -1 };
|
|
|
|
|
|
bool multiclass = false;
|
|
if (!rc1 && !rc2 && !rc3 && !rc4 && !rc5 && !rc6 && !rc7 && !rc8 && !rc9 && !rc10)
|
|
emittente.Rischio = "n.a.";
|
|
if (!nc)
|
|
{
|
|
if (rc1)
|
|
{
|
|
iCont++;
|
|
emittente.Rischio += "Rischio 1/10";
|
|
multiclass = true;
|
|
}
|
|
if (rc2)
|
|
{
|
|
iCont++;
|
|
if (multiclass)
|
|
emittente.Rischio += " - Rischio 2/10";
|
|
else
|
|
emittente.Rischio += "Rischio 2/10";
|
|
multiclass = true;
|
|
}
|
|
|
|
if (rc3)
|
|
{
|
|
iCont++;
|
|
if (multiclass)
|
|
emittente.Rischio += " - Rischio 3/10";
|
|
else
|
|
emittente.Rischio += "Rischio 3/10";
|
|
multiclass = true;
|
|
}
|
|
if (rc4)
|
|
{
|
|
iCont++;
|
|
if (multiclass)
|
|
emittente.Rischio += " - Rischio 4/10";
|
|
else
|
|
emittente.Rischio += "Rischio 4/10";
|
|
multiclass = true;
|
|
}
|
|
if (rc5)
|
|
{
|
|
iCont++;
|
|
if (multiclass)
|
|
emittente.Rischio += " - Rischio 5/10";
|
|
else
|
|
emittente.Rischio += "Rischio 5/10";
|
|
multiclass = true;
|
|
}
|
|
if (rc6)
|
|
{
|
|
iCont++;
|
|
if (multiclass)
|
|
emittente.Rischio += " - Rischio 6/10";
|
|
else
|
|
emittente.Rischio += "Rischio 6/10";
|
|
multiclass = true;
|
|
}
|
|
if (rc7)
|
|
{
|
|
iCont++;
|
|
if (multiclass)
|
|
emittente.Rischio += " - Rischio 7/10";
|
|
else
|
|
emittente.Rischio += "Rischio 7/10";
|
|
multiclass = true;
|
|
}
|
|
if (rc8)
|
|
{
|
|
iCont++;
|
|
if (multiclass)
|
|
emittente.Rischio += " - Rischio 8/10";
|
|
else
|
|
emittente.Rischio += "Rischio 8/10";
|
|
multiclass = true;
|
|
}
|
|
if (rc9)
|
|
{
|
|
iCont++;
|
|
if (multiclass)
|
|
emittente.Rischio += " - Rischio 9/10";
|
|
else
|
|
emittente.Rischio += "Rischio 9/10";
|
|
multiclass = true;
|
|
}
|
|
if (rc10)
|
|
{
|
|
iCont++;
|
|
if (multiclass)
|
|
emittente.Rischio += " - Rischio 10/10";
|
|
else
|
|
emittente.Rischio += "Rischio 10/10";
|
|
multiclass = true;
|
|
}
|
|
|
|
if (iCont > 4)
|
|
{
|
|
|
|
|
|
emittente.Rischio = string.Empty;
|
|
multiclass = false;
|
|
|
|
if (rc1)
|
|
{
|
|
emittente.Rischio += "1";
|
|
multiclass = true;
|
|
}
|
|
if (rc2)
|
|
{
|
|
if (multiclass)
|
|
emittente.Rischio += "-2";
|
|
else
|
|
emittente.Rischio += "2";
|
|
multiclass = true;
|
|
}
|
|
|
|
if (rc3)
|
|
{
|
|
if (multiclass)
|
|
emittente.Rischio += "-3";
|
|
else
|
|
emittente.Rischio += "3";
|
|
multiclass = true;
|
|
}
|
|
if (rc4)
|
|
{
|
|
if (multiclass)
|
|
emittente.Rischio += "-4";
|
|
else
|
|
emittente.Rischio += "4";
|
|
multiclass = true;
|
|
}
|
|
if (rc5)
|
|
{
|
|
if (multiclass)
|
|
emittente.Rischio += "-5";
|
|
else
|
|
emittente.Rischio += "5";
|
|
multiclass = true;
|
|
}
|
|
if (rc6)
|
|
{
|
|
if (multiclass)
|
|
emittente.Rischio += "-6";
|
|
else
|
|
emittente.Rischio += "6";
|
|
multiclass = true;
|
|
}
|
|
if (rc7)
|
|
{
|
|
if (multiclass)
|
|
emittente.Rischio += "-7";
|
|
else
|
|
emittente.Rischio += "7";
|
|
multiclass = true;
|
|
}
|
|
if (rc8)
|
|
{
|
|
if (multiclass)
|
|
emittente.Rischio += "-8";
|
|
else
|
|
emittente.Rischio += "8";
|
|
multiclass = true;
|
|
}
|
|
if (rc9)
|
|
{
|
|
if (multiclass)
|
|
emittente.Rischio += "-9";
|
|
else
|
|
emittente.Rischio += "9";
|
|
multiclass = true;
|
|
}
|
|
if (rc10)
|
|
{
|
|
if (multiclass)
|
|
emittente.Rischio += "-10";
|
|
else
|
|
emittente.Rischio += "10";
|
|
multiclass = true;
|
|
}
|
|
emittente.Rischio = "Rischio " + emittente.Rischio + "/10";
|
|
}
|
|
}
|
|
else
|
|
emittente.Rischio = "n.c.";
|
|
|
|
//Vuol dire che ho concatenato almeno 2 stringhe e quindi ho almeno 2 classi di rischio, c'è la necessità di inserire la nota
|
|
//if (emittente.Rischio.Length > "Oltre Classe 3".Length)
|
|
if (iCont > 1)
|
|
{
|
|
emittente.Rischio += "*";
|
|
|
|
emittente.Nota = true;
|
|
}
|
|
|
|
|
|
//emittente.Rischio = row["CreditRisk"].ToString();
|
|
emittente.CtvObbligazionario = num.ConvertNum(row["bondsCounterValue"]);
|
|
//.ToString();
|
|
emittente.CtvAzionario = num.ConvertNum(row["stocksCounterValue"]);
|
|
if (dataThread.Intermediario.ToUpper() == "COMPLESSIVO")
|
|
emittente.Concentrazione = num.ConvertPerformance(row["concentration_issuer"]);
|
|
else
|
|
emittente.Concentrazione = num.ConvertPerformance(row["concentration"]);
|
|
|
|
//V Aggiunto !nc altrimenti in caso di non copertura inseriva na
|
|
//if (Convert.ToDouble(row["bondsCounterValue"]) <= 0 && !nc)
|
|
// emittente.Rischio = "n.a.";
|
|
|
|
emittente.Rating = GetRating(row);
|
|
|
|
#region E-DEFAULT4
|
|
if (
|
|
//(emittente.Emittente.IndexOf("CASSA DI RISPARMIO DI FERRARA SPA", 0, StringComparison.CurrentCultureIgnoreCase) != -1) ||
|
|
//(emittente.Emittente.IndexOf("BANCA DELLE MARCHE", 0, StringComparison.CurrentCultureIgnoreCase) != -1) ||
|
|
//(emittente.Emittente.IndexOf("BANCA POPOLARE DELL'ETRURIA E DEL LAZIO - SOCIETA' COOPERATI", 0, StringComparison.CurrentCultureIgnoreCase) != -1) ||
|
|
//(emittente.Emittente.IndexOf("CASSA DI RISPARMIO DELLA PROVINCIA DI CHIETI", 0, StringComparison.CurrentCultureIgnoreCase) != -1)
|
|
emittente.Emittente.Equals("CASSA DI RISPARMIO DI FERRARA SPA") ||
|
|
emittente.Emittente.Equals("BANCA DELLE MARCHE") ||
|
|
emittente.Emittente.Equals("BANCA POPOLARE DELL'ETRURIA E DEL LAZIO - SOCIETA' COOPERATI") ||
|
|
emittente.Emittente.Equals("CASSA DI RISPARMIO DELLA PROVINCIA DI CHIETI")
|
|
)
|
|
{
|
|
emittente.CtvObbligazionario = "N.D.";
|
|
}
|
|
#endregion E-DEFAULT4
|
|
|
|
ds141.Emittenti.AddEmittentiRow(emittente);
|
|
}
|
|
|
|
dsr.Esito = ds141.Emittenti.Rows.Count;
|
|
dsr.DatiSezione = ds141;
|
|
//emittente.Rischio = "Rischio 1/10 - Rischio 2/10 - Rischio 3/10 - Rischio 10/10";
|
|
//emittente.Rischio = "Rischio 1-2-3-4-5-6-7-8-9-10/10";
|
|
|
|
return dsr;
|
|
}
|
|
|
|
private string GetRating(DataRow dr) {
|
|
string rat = "";
|
|
string token ="";
|
|
if (!dr["RATING_AAA"].ToString().Equals("0")) rat += token +"AAA";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_AAp"].ToString().Equals("0")) rat += token +"AA+";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_AA"].ToString().Equals("0")) rat += token + "AA";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_AAm"].ToString().Equals("0")) rat += token + "AA+";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_Ap"].ToString().Equals("0")) rat += token + "A+";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_A"].ToString().Equals("0")) rat += token + "A";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_Am"].ToString().Equals("0")) rat += token + "A-";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_BBBp"].ToString().Equals("0")) rat += token + "BBB+";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_BBB"].ToString().Equals("0")) rat += token + "BBB";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_BBBm"].ToString().Equals("0")) rat += token + "BBB-";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_BBp"].ToString().Equals("0")) rat += token + "BB+";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_BB"].ToString().Equals("0")) rat += token + "BB";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_BBm"].ToString().Equals("0")) rat += token + "BB-";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_Bp"].ToString().Equals("0")) rat += token + "B+";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_B"].ToString().Equals("0")) rat += token + "B";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_Bm"].ToString().Equals("0")) rat += token + "B-";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_CCCp"].ToString().Equals("0")) rat += token + "CCC+";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_CCC"].ToString().Equals("0")) rat += token + "CCC";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_CCCm"].ToString().Equals("0")) rat += token + "CCC-";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_CC"].ToString().Equals("0")) rat += token + "CC";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_C"].ToString().Equals("0")) rat += token + "C";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_D"].ToString().Equals("0")) rat += token + "D";
|
|
token = !rat.Equals("") ? " / " : "";
|
|
if (!dr["RATING_na"].ToString().Equals("0")) rat += token + "n.a.";
|
|
if (rat.Equals("")) rat = "n.a.";
|
|
return rat;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |