using System; using System.Data; //using Resources; using PDFGenerator.BusinessLayer.DataSection; using PDFGenerator; using PDFGenerator.BusinessLayer; using System.Collections.Generic; /// /// Summary description for DSS82DatiSintetici /// public class DSS82DatiSintetici : IDataSection { private Int32? _ordinamentoProgettoPerAreeMonitorate; FormatNum conv = new FormatNum(); private DataRow getRowDatiSintesi(DataTable dt, string area, string nomeprogetto, Int32? ordinamento) { DataRow[] rowArray = null; if (dt == null) return null; if (area.ToUpper() == "INV") { // Progetti if (ordinamento == null) rowArray = dt.Select(" nome_progetto = '" + nomeprogetto.Replace("'", "''") + "' and NEED_AREA = '" + area.Replace("'", "''") + "'"); else rowArray = dt.Select(" ordinamento_progetto = " + ordinamento.ToString() + " and nome_progetto = '" + nomeprogetto.Replace("'", "''") + "' and NEED_AREA = '" + area.Replace("'", "''") + "'"); } else { // no progetti rowArray = dt.Select(" NEED_AREA = '" + area.Replace("'", "''") + "'"); } if (rowArray.Length > 0) { return rowArray[0]; } else { return null; } } public Int32? OrdinamentoProgettoPerAreeMonitorate { set { _ordinamentoProgettoPerAreeMonitorate = value;} } public DataSectionResult getDataSection(List tabelleSessione, string querySql, DataThread dataThread) { DataSectionResult dsr = new DataSectionResult(); DataTable dt = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread); DataSetS82 ds82 = new DataSetS82(); DataSetS82.DatiSintetici_DettaglioRow drDettaglio; DataSetS82.DT_CoperturaRow drCopertura; DataSetS82.HeaderRow hRow; DataSetS82.SeparatoreRow separatore; DataSetS82.DT_TabellaBassaRow tabBassa; DataRow rowDatiSintesi = getRowDatiSintesi(dt, dataThread.Area, dataThread.Progetto, _ordinamentoProgettoPerAreeMonitorate); if(rowDatiSintesi != null) { if (rowDatiSintesi["need_area"].ToString().ToUpper() == dataThread.Area.ToUpper()) { drDettaglio = ds82.DatiSintetici_Dettaglio.NewDatiSintetici_DettaglioRow(); drDettaglio.Descrizione = "Controvalore";//Resource.S82_Campo_ControvaloreAttuale; drDettaglio.Valore = conv.ConvertNum(rowDatiSintesi["ControvaloreAttuale"], 2) + " €"; ds82.DatiSintetici_Dettaglio.Rows.Add(drDettaglio); //Header.. Controvalore e Rischio hRow = ds82.Header.NewHeaderRow(); hRow.Descrizione = "Controvalore e Rischio"; ds82.Header.AddHeaderRow(hRow); separatore = ds82.Separatore.NewSeparatoreRow(); separatore.Descrizione = ""; ds82.Separatore.AddSeparatoreRow(separatore); // VAR ATTUALE drDettaglio = ds82.DatiSintetici_Dettaglio.NewDatiSintetici_DettaglioRow(); if (rowDatiSintesi["var_needarea"] != DBNull.Value) { if (rowDatiSintesi["var_needareastring"].ToString().Trim().Length == 0) drDettaglio.Valore = conv.ConvertNum(rowDatiSintesi["var_needarea"]) + " %"; else drDettaglio.Valore = conv.ConvertNum(rowDatiSintesi["var_needareastring"]).ToString(); } else drDettaglio.Valore = rowDatiSintesi["var_needareaString"].ToString(); drDettaglio.Descrizione = "Rischio Mercato (VaR %)"; ds82.DatiSintetici_Dettaglio.Rows.Add(drDettaglio); // GRADO COPERTURA drCopertura = ds82.DT_Copertura.NewDT_CoperturaRow(); drCopertura.Descrizione = "Copertura"; if (rowDatiSintesi["copertura_needarea"] != DBNull.Value) drCopertura.Valore = conv.ConvertNum(rowDatiSintesi["copertura_needarea"]) + " %"; else drCopertura.Valore = rowDatiSintesi["copertura_needareaString"].ToString(); //Fix 4 agosto riportare la copertura solo quando il valore è diverso da 100 if (drCopertura.Valore != "100,00 %") ds82.DT_Copertura.Rows.Add(drCopertura); //Peso Percentuale ctv tabBassa = ds82.DT_TabellaBassa.NewDT_TabellaBassaRow(); tabBassa.Descrizione = "Peso percentuale controvalore"; DataView dwPeso = new DataView(dataThread.PesoPercentuale); dwPeso.RowFilter = " AreaBisogno='" + dataThread.Area + "'"; DataTable dtPeso = dwPeso.ToTable(); tabBassa.Valore = conv.ConvertNum(dtPeso.Rows[0]["PesoPercentuale"]) + " %"; ds82.DT_TabellaBassa.Rows.Add(tabBassa); //Rischio Relativo tabBassa = ds82.DT_TabellaBassa.NewDT_TabellaBassaRow(); tabBassa.Descrizione = "Rischio relativo"; DataView dwRischio = new DataView(dataThread.RischioRelativo); dwRischio.RowFilter = " AreaBisogno='" + dataThread.Area + "'"; DataTable dtRischio = dwRischio.ToTable(); tabBassa.Valore =dtRischio.Rows[0]["RischioRelativoString"].ToString().ToLower()=="n.c." ? "n.c.": conv.ConvertNum(Convert.ToDecimal(dtRischio.Rows[0]["RischioRelativo"]),2) + " %"; ds82.DT_TabellaBassa.Rows.Add(tabBassa); } } dsr.DatiSezione = ds82; dsr.Esito = ds82.DatiSintetici_Dettaglio.Rows.Count; return dsr; } }