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 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 } }