using System; using System.Collections.Generic; using System.Text; using System.Data; using System.ComponentModel; using System.Reflection; using System.Linq; namespace PDFGenerator.BusinessLayer.DataSection { /// /// Summary description for DSS80Alternativa /// public class DSS80Alternativa : IDataSection { private string obtainAsteriscs(int number) { string sequence = string.Empty; for (int i = 0; i < number; i++) sequence = string.Format("{0}{1}", sequence, "*"); return sequence; } public DSS80Alternativa() { // // TODO: Add constructor logic here // } /// /// Recupera i dati per la stampa della S80ALT. /// /// /// /// /// public DataSectionResult getDataSection(List tabelleSessione, string querySql, DataThread dataThread) { DataSetS80ALT dsS80ALT = new DataSetS80ALT(); FormatNum conv = new FormatNum(); DataSectionResult dsr = new DataSectionResult(); DataTable dt = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread); if (dataThread.Patrimoniobancafideuramctv != 0 && dt.Rows.Count > 0) { // Set Phase 1 date #region Data Avvio Monitoraggio DateTime? dataAvvioMonitoraggio = null; DateTime dataPrecedenteInvioReport = new DateTime(); //DateTime dataSituazioneCorrenteReport = new DateTime(); FormatNum formatNum = new FormatNum(); DataView dvAvvioMonitoraggio = new DataView(dt); dvAvvioMonitoraggio.RowFilter = ("Fase = 1"); if (dvAvvioMonitoraggio.Count > 0) { DataRow row = dvAvvioMonitoraggio[0].Row; dataAvvioMonitoraggio = Convert.ToDateTime(row["DataFase"].ToString()); } #endregion // Set Phase 2 date #region Data Precedente Invio Report DataView dwPrecedenteInvioReport = new DataView(dt); dwPrecedenteInvioReport.RowFilter = ("Fase = 2"); if (dwPrecedenteInvioReport.Count > 0) { DataRow rowPrecedenteInvioReport = dwPrecedenteInvioReport[0].Row; dataPrecedenteInvioReport = Convert.ToDateTime(rowPrecedenteInvioReport["DataFase"].ToString()); } #endregion #region Piramide dati per fasi // The data rows of each phase. DataRow[] drFase1 = dt.Select(" fase = 1"); DataRow[] drFase2 = dt.Select(" fase = 2"); DataRow[] drFase3 = dt.Select(" fase = 3"); // caption dell' header della Tabella -- Pino non più utile //if (dataAvvioMonitoraggio.HasValue) //{ // dsS80ALT.GraficoPiramide.Fase1Column.Caption = "Avvio Monitoraggio
(" + dataAvvioMonitoraggio.Value.ToShortDateString() + ")"; // dsS80ALT.GraficoPiramide.Fase1PercentualeColumn.Caption = "Piramide
Modello (%)"; //} //if (dwPrecedenteInvioReport.Count > 0) //{ // dsS80ALT.GraficoPiramide.Fase2Column.Caption = "Precedente invio report
(" + dataPrecedenteInvioReport.ToShortDateString() + ")"; // dsS80ALT.GraficoPiramide.Fase2PercentualeColumn.Caption = "Piramide
Modello (%)"; //} //else // dsS80ALT.GraficoPiramide.Fase2Column.Caption = string.Empty; //dsS80ALT.GraficoPiramide.Fase3Column.Caption = "Situazione Corrente
(" + dataThread.DataFineTrimestreCorrente.ToShortDateString() + ")"; //dsS80ALT.GraficoPiramide.Fase3PercentualeColumn.Caption = "Piramide
Modello (%)"; #region Tabella per solo Header NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); //logger.Info("Tabella per solo Header Inizio"); // Caption del'header dsS80ALT.GraficoPiramideHeader.DescrizionePiramideColumn.Caption = ""; if (drFase1.Count() > 0) dsS80ALT.GraficoPiramideHeader.GruppoFase1Column.Caption = "Avvio Monitoraggio
(" + dataAvvioMonitoraggio.Value.ToShortDateString() + ")"; if (drFase2.Count() > 0) dsS80ALT.GraficoPiramideHeader.GruppoFase2Column.Caption = "Precedente invio report
(" + dataPrecedenteInvioReport.ToShortDateString() + ")"; if (drFase3.Count() > 0) dsS80ALT.GraficoPiramideHeader.GruppoFase3Column.Caption = "Situazione Corrente
(" + dataThread.DataFineTrimestreCorrente.ToShortDateString() + ")"; // Dichiaro una riga da inserire DataSetS80ALT.GraficoPiramideHeaderRow rowGraficoPiramideHeader0 = dsS80ALT.GraficoPiramideHeader.NewGraficoPiramideHeaderRow(); // Valorizzo la riga rowGraficoPiramideHeader0.DescrizionePiramide = string.Empty; rowGraficoPiramideHeader0.GruppoFase1 = string.Empty; rowGraficoPiramideHeader0.GruppoFase2 = string.Empty; rowGraficoPiramideHeader0.GruppoFase3 = string.Empty; // Inserisco le righe precedentemente valorizzati nel dataset tipizzato dsS80ALT.GraficoPiramideHeader.AddGraficoPiramideHeaderRow(rowGraficoPiramideHeader0); //logger.Info("Tabella per solo Header Fine"); #endregion // Dichiaro le nuove righe da inserire nel dataset tipizzato DataSetS80ALT.GraficoPiramideRow rowGraficoPiramide0 = dsS80ALT.GraficoPiramide.NewGraficoPiramideRow(); DataSetS80ALT.GraficoPiramideRow rowGraficoPiramide1 = dsS80ALT.GraficoPiramide.NewGraficoPiramideRow(); DataSetS80ALT.GraficoPiramideRow rowGraficoPiramide2 = dsS80ALT.GraficoPiramide.NewGraficoPiramideRow(); DataSetS80ALT.GraficoPiramideRow rowGraficoPiramide3 = dsS80ALT.GraficoPiramide.NewGraficoPiramideRow(); DataSetS80ALT.GraficoPiramideRow rowGraficoPiramide4 = dsS80ALT.GraficoPiramide.NewGraficoPiramideRow(); // Valorizzo per ogni riga le colonne con i valori prelevati dal datarow del datatable originale if (drFase1.Length > 0) { //logger.Info("Piramide per Fasi, Fase 1 " + drFase1.Length.ToString()); //logger.Info("Piramide per Fasi, Fase 1 CTV_EXT " + drFase1[0]["CTV_EXT"].ToString()); //logger.Info("Piramide per Fasi, Fase 1 CTV_INV " + drFase1[0]["CTV_INV"].ToString()); //logger.Info("Piramide per Fasi, Fase 1 CTV_PRE " + drFase1[0]["CTV_PRE"].ToString()); //logger.Info("Piramide per Fasi, Fase 1 CTV_RIS " + drFase1[0]["CTV_RIS"].ToString()); //logger.Info("Piramide per Fasi, Fase 1 CTV_LIQ " + drFase1[0]["CTV_LIQ"].ToString()); decimal _totalectv = Convert.ToDecimal(drFase1[0]["CTV_EXT"].ToString()) + Convert.ToDecimal(drFase1[0]["CTV_INV"].ToString()) + Convert.ToDecimal(drFase1[0]["CTV_PRE"].ToString()) + Convert.ToDecimal(drFase1[0]["CTV_RIS"].ToString()) + Convert.ToDecimal(drFase1[0]["CTV_LIQ"].ToString()); //logger.Info("Piramide per Fasi, Fase 1 TotaleCTV " + _totalectv.ToString()); decimal _percentualeEXT = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase1[0]["CTV_EXT"].ToString()) / _totalectv) * 100); decimal _percentualeINV = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase1[0]["CTV_INV"].ToString()) / _totalectv) * 100); decimal _percentualePRE = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase1[0]["CTV_PRE"].ToString()) / _totalectv) * 100); decimal _percentualeRIS = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase1[0]["CTV_RIS"].ToString()) / _totalectv) * 100); decimal _percentualeLIQ = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase1[0]["CTV_LIQ"].ToString()) / _totalectv) * 100); /************************ Modifica per lo sfrido dello 0,01 - Pino ***********************************************/ List listaDaNormalizzare = new List(); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_EXT", valoreAttuale = _percentualeEXT, valoreNormalizzato = 0.0M }); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_INV", valoreAttuale = _percentualeINV, valoreNormalizzato = 0.0M }); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_PRE", valoreAttuale = _percentualePRE, valoreNormalizzato = 0.0M }); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_RIS", valoreAttuale = _percentualeRIS, valoreNormalizzato = 0.0M }); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_LIQ", valoreAttuale = _percentualeLIQ, valoreNormalizzato = 0.0M }); List listaNormalizzata = NormalizzoPercentuali(listaDaNormalizzare); _percentualeEXT = listaNormalizzata.Find(f => f.area == "CTV_EXT").valoreNormalizzato; _percentualeINV = listaNormalizzata.Find(f => f.area == "CTV_INV").valoreNormalizzato; _percentualePRE = listaNormalizzata.Find(f => f.area == "CTV_PRE").valoreNormalizzato; _percentualeRIS = listaNormalizzata.Find(f => f.area == "CTV_RIS").valoreNormalizzato; _percentualeLIQ = listaNormalizzata.Find(f => f.area == "CTV_LIQ").valoreNormalizzato; /*****************************************************************************************************************/ ///************************ Modifica per lo sfrido dello 0,01 - Pino ***********************************************/ //List listaDaNormalizzare = new List(); //listaDaNormalizzare.Add(new PercentualiDaNormalizzare() //{ // area = "CTV_EXT", // valoreAttuale = _percentualeEXT, // valoreNormalizzato = 0.0M //}); //listaDaNormalizzare.Add(new PercentualiDaNormalizzare() //{ // area = "CTV_INV", // valoreAttuale = _percentualeINV, // valoreNormalizzato = 0.0M //}); //listaDaNormalizzare.Add(new PercentualiDaNormalizzare() //{ // area = "CTV_PRE", // valoreAttuale = _percentualePRE, // valoreNormalizzato = 0.0M //}); //listaDaNormalizzare.Add(new PercentualiDaNormalizzare() //{ // area = "CTV_RIS", // valoreAttuale = _percentualeRIS, // valoreNormalizzato = 0.0M //}); //listaDaNormalizzare.Add(new PercentualiDaNormalizzare() //{ // area = "CTV_LIQ", // valoreAttuale = _percentualeLIQ, // valoreNormalizzato = 0.0M //}); //List listaNormalizzata = NormalizzoPercentuali(listaDaNormalizzare); //_percentualeEXT = listaNormalizzata.Find(f => f.area == "CTV_EXT").valoreNormalizzato; //_percentualeINV = listaNormalizzata.Find(f => f.area == "CTV_INV").valoreNormalizzato; //_percentualePRE = listaNormalizzata.Find(f => f.area == "CTV_PRE").valoreNormalizzato; //_percentualeRIS = listaNormalizzata.Find(f => f.area == "CTV_RIS").valoreNormalizzato; //_percentualeLIQ = listaNormalizzata.Find(f => f.area == "CTV_LIQ").valoreNormalizzato; ///*****************************************************************************************************************/ rowGraficoPiramide0.Fase1 = string.Concat(formatNum.ConvertNum(drFase1[0]["CTV_EXT"].ToString()), "
(", string.Format("{0:N2}", _percentualeEXT), "%)"); rowGraficoPiramide1.Fase1 = string.Concat(formatNum.ConvertNum(drFase1[0]["CTV_INV"].ToString()), "
(", string.Format("{0:N2}", _percentualeINV), "%)"); rowGraficoPiramide2.Fase1 = string.Concat(formatNum.ConvertNum(drFase1[0]["CTV_PRE"].ToString()), "
(", string.Format("{0:N2}", _percentualePRE), "%)"); rowGraficoPiramide3.Fase1 = string.Concat(formatNum.ConvertNum(drFase1[0]["CTV_RIS"].ToString()), "
(", string.Format("{0:N2}", _percentualeRIS), "%)"); rowGraficoPiramide4.Fase1 = string.Concat(formatNum.ConvertNum(drFase1[0]["CTV_LIQ"].ToString()), "
(", string.Format("{0:N2}", _percentualeLIQ), "%)"); //rowGraficoPiramide0.Fase1 = formatNum.ConvertNum(string.Concat(drFase1[0]["CTV_EXT"].ToString(), "
(", string.Format("{0:N2}",_percentualeEXT), "%)")); //rowGraficoPiramide1.Fase1 = formatNum.ConvertNum(string.Concat(drFase1[0]["CTV_INV"].ToString(), "
(", string.Format("{0:N2}", _percentualeINV), "%)")); //rowGraficoPiramide2.Fase1 = formatNum.ConvertNum(string.Concat(drFase1[0]["CTV_PRE"].ToString(), "
(", string.Format("{0:N2}", _percentualePRE), "%)")); //rowGraficoPiramide3.Fase1 = formatNum.ConvertNum(string.Concat(drFase1[0]["CTV_RIS"].ToString(), "
(", string.Format("{0:N2}", _percentualeRIS), "%)")); //rowGraficoPiramide4.Fase1 = formatNum.ConvertNum(string.Concat(drFase1[0]["CTV_LIQ"].ToString(), "
(", string.Format("{0:N2}", _percentualeLIQ), "%)")); //rowGraficoPiramide0.Fase1 = formatNum.ConvertNum(drFase1[0]["CTV_EXT"].ToString()); //rowGraficoPiramide1.Fase1 = formatNum.ConvertNum(drFase1[0]["CTV_INV"].ToString()); //rowGraficoPiramide2.Fase1 = formatNum.ConvertNum(drFase1[0]["CTV_PRE"].ToString()); //rowGraficoPiramide3.Fase1 = formatNum.ConvertNum(drFase1[0]["CTV_RIS"].ToString()); //rowGraficoPiramide4.Fase1 = formatNum.ConvertNum(drFase1[0]["CTV_LIQ"].ToString()); //logger.Info("Piramide per Fasi, Fase 1 PERC_EXT " + drFase1[0]["PERC_EXT"].ToString()); //logger.Info("Piramide per Fasi, Fase 1 PERC_INV " + drFase1[0]["PERC_INV"].ToString()); //logger.Info("Piramide per Fasi, Fase 1 PERC_PRE " + drFase1[0]["PERC_PRE"].ToString()); //logger.Info("Piramide per Fasi, Fase 1 PERC_RIS " + drFase1[0]["PERC_RIS"].ToString()); //logger.Info("Piramide per Fasi, Fase 1 PERC_LIQ " + drFase1[0]["PERC_LIQ"].ToString()); rowGraficoPiramide0.Fase1Percentuale = formatNum.ConvertNum(drFase1[0]["PERC_EXT"].ToString()); rowGraficoPiramide1.Fase1Percentuale = formatNum.ConvertNum(drFase1[0]["PERC_INV"].ToString()); rowGraficoPiramide2.Fase1Percentuale = formatNum.ConvertNum(drFase1[0]["PERC_PRE"].ToString()); rowGraficoPiramide3.Fase1Percentuale = formatNum.ConvertNum(drFase1[0]["PERC_RIS"].ToString()); rowGraficoPiramide4.Fase1Percentuale = formatNum.ConvertNum(drFase1[0]["PERC_LIQ"].ToString()); } if (drFase2.Length > 0) { //logger.Info("Piramide per Fasi, Fase 2" + drFase2.Length.ToString()); //logger.Info("Piramide per Fasi, Fase 2 CTV_EXT " + drFase2[0]["CTV_EXT"].ToString()); //logger.Info("Piramide per Fasi, Fase 2 CTV_INV " + drFase2[0]["CTV_INV"].ToString()); //logger.Info("Piramide per Fasi, Fase 2 CTV_PRE " + drFase2[0]["CTV_PRE"].ToString()); //logger.Info("Piramide per Fasi, Fase 2 CTV_RIS " + drFase2[0]["CTV_RIS"].ToString()); //logger.Info("Piramide per Fasi, Fase 2 CTV_LIQ " + drFase2[0]["CTV_LIQ"].ToString()); decimal _totalectv = Convert.ToDecimal(drFase2[0]["CTV_EXT"].ToString()) + Convert.ToDecimal(drFase2[0]["CTV_INV"].ToString()) + Convert.ToDecimal(drFase2[0]["CTV_PRE"].ToString()) + Convert.ToDecimal(drFase2[0]["CTV_RIS"].ToString()) + Convert.ToDecimal(drFase2[0]["CTV_LIQ"].ToString()); //logger.Info("Piramide per Fasi, Fase 2 TotaleCTV " + _totalectv.ToString()); decimal _percentualeEXT = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase2[0]["CTV_EXT"].ToString()) / _totalectv) * 100); decimal _percentualeINV = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase2[0]["CTV_INV"].ToString()) / _totalectv) * 100); decimal _percentualePRE = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase2[0]["CTV_PRE"].ToString()) / _totalectv) * 100); decimal _percentualeRIS = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase2[0]["CTV_RIS"].ToString()) / _totalectv) * 100); decimal _percentualeLIQ = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase2[0]["CTV_LIQ"].ToString()) / _totalectv) * 100); /************************ Modifica per lo sfrido dello 0,01 - Pino ***********************************************/ List listaDaNormalizzare = new List(); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_EXT", valoreAttuale = _percentualeEXT, valoreNormalizzato = 0.0M }); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_INV", valoreAttuale = _percentualeINV, valoreNormalizzato = 0.0M }); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_PRE", valoreAttuale = _percentualePRE, valoreNormalizzato = 0.0M }); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_RIS", valoreAttuale = _percentualeRIS, valoreNormalizzato = 0.0M }); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_LIQ", valoreAttuale = _percentualeLIQ, valoreNormalizzato = 0.0M }); List listaNormalizzata = NormalizzoPercentuali(listaDaNormalizzare); _percentualeEXT = listaNormalizzata.Find(f => f.area == "CTV_EXT").valoreNormalizzato; _percentualeINV = listaNormalizzata.Find(f => f.area == "CTV_INV").valoreNormalizzato; _percentualePRE = listaNormalizzata.Find(f => f.area == "CTV_PRE").valoreNormalizzato; _percentualeRIS = listaNormalizzata.Find(f => f.area == "CTV_RIS").valoreNormalizzato; _percentualeLIQ = listaNormalizzata.Find(f => f.area == "CTV_LIQ").valoreNormalizzato; /*****************************************************************************************************************/ rowGraficoPiramide0.Fase2 = string.Concat(formatNum.ConvertNum(drFase2[0]["CTV_EXT"].ToString()), "
(", string.Format("{0:N2}", _percentualeEXT), "%)"); rowGraficoPiramide1.Fase2 = string.Concat(formatNum.ConvertNum(drFase2[0]["CTV_INV"].ToString()), "
(", string.Format("{0:N2}", _percentualeINV), "%)"); rowGraficoPiramide2.Fase2 = string.Concat(formatNum.ConvertNum(drFase2[0]["CTV_PRE"].ToString()), "
(", string.Format("{0:N2}", _percentualePRE), "%)"); rowGraficoPiramide3.Fase2 = string.Concat(formatNum.ConvertNum(drFase2[0]["CTV_RIS"].ToString()), "
(", string.Format("{0:N2}", _percentualeRIS), "%)"); rowGraficoPiramide4.Fase2 = string.Concat(formatNum.ConvertNum(drFase2[0]["CTV_LIQ"].ToString()), "
(", string.Format("{0:N2}", _percentualeLIQ), "%)"); //rowGraficoPiramide0.Fase2 = formatNum.ConvertNum(drFase2[0]["CTV_EXT"].ToString()); //rowGraficoPiramide1.Fase2 = formatNum.ConvertNum(drFase2[0]["CTV_INV"].ToString()); //rowGraficoPiramide2.Fase2 = formatNum.ConvertNum(drFase2[0]["CTV_PRE"].ToString()); //rowGraficoPiramide3.Fase2 = formatNum.ConvertNum(drFase2[0]["CTV_RIS"].ToString()); //rowGraficoPiramide4.Fase2 = formatNum.ConvertNum(drFase2[0]["CTV_LIQ"].ToString()); //logger.Info("Piramide per Fasi, Fase 2 PERC_EXT " + drFase2[0]["PERC_EXT"].ToString()); //logger.Info("Piramide per Fasi, Fase 2 PERC_INV " + drFase2[0]["PERC_INV"].ToString()); //logger.Info("Piramide per Fasi, Fase 2 PERC_PRE " + drFase2[0]["PERC_PRE"].ToString()); //logger.Info("Piramide per Fasi, Fase 2 PERC_RIS " + drFase2[0]["PERC_RIS"].ToString()); //logger.Info("Piramide per Fasi, Fase 2 PERC_LIQ " + drFase2[0]["PERC_LIQ"].ToString()); rowGraficoPiramide0.Fase2Percentuale = formatNum.ConvertNum(drFase2[0]["PERC_EXT"].ToString()); rowGraficoPiramide1.Fase2Percentuale = formatNum.ConvertNum(drFase2[0]["PERC_INV"].ToString()); rowGraficoPiramide2.Fase2Percentuale = formatNum.ConvertNum(drFase2[0]["PERC_PRE"].ToString()); rowGraficoPiramide3.Fase2Percentuale = formatNum.ConvertNum(drFase2[0]["PERC_RIS"].ToString()); rowGraficoPiramide4.Fase2Percentuale = formatNum.ConvertNum(drFase2[0]["PERC_LIQ"].ToString()); } if (drFase3.Length > 0) { //logger.Info("Piramide per Fasi, Fase 3" + drFase2.Length.ToString()); //logger.Info("Piramide per Fasi, Fase 3 CTV_EXT " + drFase3[0]["CTV_EXT"].ToString()); //logger.Info("Piramide per Fasi, Fase 3 CTV_INV " + drFase3[0]["CTV_INV"].ToString()); //logger.Info("Piramide per Fasi, Fase 3 CTV_PRE " + drFase3[0]["CTV_PRE"].ToString()); //logger.Info("Piramide per Fasi, Fase 3 CTV_RIS " + drFase3[0]["CTV_RIS"].ToString()); //logger.Info("Piramide per Fasi, Fase 3 CTV_LIQ " + drFase3[0]["CTV_LIQ"].ToString()); decimal _totalectv = Convert.ToDecimal(drFase3[0]["CTV_EXT"].ToString()) + Convert.ToDecimal(drFase3[0]["CTV_INV"].ToString()) + Convert.ToDecimal(drFase3[0]["CTV_PRE"].ToString()) + Convert.ToDecimal(drFase3[0]["CTV_RIS"].ToString()) + Convert.ToDecimal(drFase3[0]["CTV_LIQ"].ToString()); //logger.Info("Piramide per Fasi, Fase 3 TotaleCTV " + _totalectv.ToString()); decimal _percentualeEXT = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase3[0]["CTV_EXT"].ToString()) / _totalectv) * 100); decimal _percentualeINV = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase3[0]["CTV_INV"].ToString()) / _totalectv) * 100); decimal _percentualePRE = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase3[0]["CTV_PRE"].ToString()) / _totalectv) * 100); decimal _percentualeRIS = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase3[0]["CTV_RIS"].ToString()) / _totalectv) * 100); decimal _percentualeLIQ = (_totalectv == Convert.ToDecimal(0.0) ? Convert.ToDecimal(0.00) : (Convert.ToDecimal(drFase3[0]["CTV_LIQ"].ToString()) / _totalectv) * 100); /************************ Modifica per lo sfrido dello 0,01 - Pino ***********************************************/ List listaDaNormalizzare = new List(); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_EXT", valoreAttuale = _percentualeEXT, valoreNormalizzato = 0.0M }); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_INV", valoreAttuale = _percentualeINV, valoreNormalizzato = 0.0M }); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_PRE", valoreAttuale = _percentualePRE, valoreNormalizzato = 0.0M }); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_RIS", valoreAttuale = _percentualeRIS, valoreNormalizzato = 0.0M }); listaDaNormalizzare.Add(new PercentualiDaNormalizzare() { area = "CTV_LIQ", valoreAttuale = _percentualeLIQ, valoreNormalizzato = 0.0M }); List listaNormalizzata = NormalizzoPercentuali(listaDaNormalizzare); _percentualeEXT = listaNormalizzata.Find(f => f.area == "CTV_EXT").valoreNormalizzato; _percentualeINV = listaNormalizzata.Find(f => f.area == "CTV_INV").valoreNormalizzato; _percentualePRE = listaNormalizzata.Find(f => f.area == "CTV_PRE").valoreNormalizzato; _percentualeRIS = listaNormalizzata.Find(f => f.area == "CTV_RIS").valoreNormalizzato; _percentualeLIQ = listaNormalizzata.Find(f => f.area == "CTV_LIQ").valoreNormalizzato; /*****************************************************************************************************************/ rowGraficoPiramide0.Fase3 = string.Concat(formatNum.ConvertNum(drFase3[0]["CTV_EXT"].ToString()), "
(", string.Format("{0:N2}", _percentualeEXT), "%)"); rowGraficoPiramide1.Fase3 = string.Concat(formatNum.ConvertNum(drFase3[0]["CTV_INV"].ToString()), "
(", string.Format("{0:N2}", _percentualeINV), "%)"); rowGraficoPiramide2.Fase3 = string.Concat(formatNum.ConvertNum(drFase3[0]["CTV_PRE"].ToString()), "
(", string.Format("{0:N2}", _percentualePRE), "%)"); rowGraficoPiramide3.Fase3 = string.Concat(formatNum.ConvertNum(drFase3[0]["CTV_RIS"].ToString()), "
(", string.Format("{0:N2}", _percentualeRIS), "%)"); rowGraficoPiramide4.Fase3 = string.Concat(formatNum.ConvertNum(drFase3[0]["CTV_LIQ"].ToString()), "
(", string.Format("{0:N2}", _percentualeLIQ), "%)"); //rowGraficoPiramide0.Fase3 = formatNum.ConvertNum(string.Concat(drFase3[0]["CTV_EXT"].ToString(), "
(", string.Format("{0:N2}", _percentualeEXT), "%)")); //rowGraficoPiramide1.Fase3 = formatNum.ConvertNum(string.Concat(drFase3[0]["CTV_INV"].ToString(), "
(", string.Format("{0:N2}", _percentualeINV), "%)")); //rowGraficoPiramide2.Fase3 = formatNum.ConvertNum(string.Concat(drFase3[0]["CTV_PRE"].ToString(), "
(", string.Format("{0:N2}", _percentualePRE), "%)")); //rowGraficoPiramide3.Fase3 = formatNum.ConvertNum(string.Concat(drFase3[0]["CTV_RIS"].ToString(), "
(", string.Format("{0:N2}", _percentualeRIS), "%)")); //rowGraficoPiramide4.Fase3 = formatNum.ConvertNum(string.Concat(drFase3[0]["CTV_LIQ"].ToString(), "
(", string.Format("{0:N2}", _percentualeLIQ), "%)")); //rowGraficoPiramide0.Fase3 = formatNum.ConvertNum(drFase3[0]["CTV_EXT"].ToString()); //rowGraficoPiramide1.Fase3 = formatNum.ConvertNum(drFase3[0]["CTV_INV"].ToString()); //rowGraficoPiramide2.Fase3 = formatNum.ConvertNum(drFase3[0]["CTV_PRE"].ToString()); //rowGraficoPiramide3.Fase3 = formatNum.ConvertNum(drFase3[0]["CTV_RIS"].ToString()); //rowGraficoPiramide4.Fase3 = formatNum.ConvertNum(drFase3[0]["CTV_LIQ"].ToString()); //logger.Info("Piramide per Fasi, Fase 3 PERC_EXT " + drFase3[0]["PERC_EXT"].ToString()); //logger.Info("Piramide per Fasi, Fase 3 PERC_INV " + drFase3[0]["PERC_INV"].ToString()); //logger.Info("Piramide per Fasi, Fase 3 PERC_PRE " + drFase3[0]["PERC_PRE"].ToString()); //logger.Info("Piramide per Fasi, Fase 3 PERC_RIS " + drFase3[0]["PERC_RIS"].ToString()); //logger.Info("Piramide per Fasi, Fase 3 PERC_LIQ " + drFase3[0]["PERC_LIQ"].ToString()); rowGraficoPiramide0.Fase3Percentuale = formatNum.ConvertNum(drFase3[0]["PERC_EXT"].ToString()); rowGraficoPiramide1.Fase3Percentuale = formatNum.ConvertNum(drFase3[0]["PERC_INV"].ToString()); rowGraficoPiramide2.Fase3Percentuale = formatNum.ConvertNum(drFase3[0]["PERC_PRE"].ToString()); rowGraficoPiramide3.Fase3Percentuale = formatNum.ConvertNum(drFase3[0]["PERC_RIS"].ToString()); rowGraficoPiramide4.Fase3Percentuale = formatNum.ConvertNum(drFase3[0]["PERC_LIQ"].ToString()); } // Inserisco le righe precedentemente valorizzati nel dataset tipizzato dsS80ALT.GraficoPiramide.AddGraficoPiramideRow(rowGraficoPiramide0); dsS80ALT.GraficoPiramide.AddGraficoPiramideRow(rowGraficoPiramide1); dsS80ALT.GraficoPiramide.AddGraficoPiramideRow(rowGraficoPiramide2); dsS80ALT.GraficoPiramide.AddGraficoPiramideRow(rowGraficoPiramide3); dsS80ALT.GraficoPiramide.AddGraficoPiramideRow(rowGraficoPiramide4); #endregion #region Totale Risorse Allocate DataSetS80ALT.RisorseAllocateRow drDatiTotaleRisorseAllocate; drDatiTotaleRisorseAllocate = dsS80ALT.RisorseAllocate.NewRisorseAllocateRow(); //drDatiTotaleRisorseAllocate.Descrizione = "TOTALE RISORSE ALLOCATE"; drDatiTotaleRisorseAllocate.Descrizione = "Totale risorse allocate"; if (drFase1.Length > 0) { drDatiTotaleRisorseAllocate.Fase1 = formatNum.ConvertNum(drFase1[0]["RisorseAllocate"].ToString()); //logger.Info("Totale Risorse Allocate, Fase 1 " + drFase1.Length.ToString()); decimal _totalePercentualeRF = Convert.ToDecimal(drFase1[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_LIQ"].ToString()); //logger.Info("Totale Risorse Allocate, Fase 1 " + Convert.ToString(_totalePercentualeRF)); drDatiTotaleRisorseAllocate.Fase1Percentuale = formatNum.ConvertNum(_totalePercentualeRF); } if (drFase2.Length > 0) { drDatiTotaleRisorseAllocate.Fase2 = formatNum.ConvertNum(drFase2[0]["RisorseAllocate"].ToString()); //logger.Info("Totale Risorse Allocate, Fase 2 " + drFase2.Length.ToString()); decimal _totalePercentualeRF = Convert.ToDecimal(drFase2[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_LIQ"].ToString()); //logger.Info("Totale Risorse Allocate, Fase 2 " + Convert.ToString(_totalePercentualeRF)); drDatiTotaleRisorseAllocate.Fase2Percentuale = formatNum.ConvertNum(_totalePercentualeRF); } if (drFase3.Length > 0) { drDatiTotaleRisorseAllocate.Fase3 = formatNum.ConvertNum(drFase3[0]["RisorseAllocate"].ToString()); //logger.Info("Totale Risorse Allocate, Fase 3 " + drFase3.Length.ToString()); decimal _totalePercentualeRF = Convert.ToDecimal(drFase3[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_LIQ"].ToString()); //logger.Info("Totale Risorse Allocate, Fase 3 " + Convert.ToString(_totalePercentualeRF)); drDatiTotaleRisorseAllocate.Fase3Percentuale = formatNum.ConvertNum(_totalePercentualeRF); } dsS80ALT.RisorseAllocate.AddRisorseAllocateRow(drDatiTotaleRisorseAllocate); #endregion #region Risorse non allocate DataSetS80ALT.RisorseNonAllocateRow drRisorseNonAllocate; drRisorseNonAllocate = dsS80ALT.RisorseNonAllocate.NewRisorseNonAllocateRow(); drRisorseNonAllocate.Descrizione = "Risorse non allocate"; if (drFase1.Length > 0) { drRisorseNonAllocate.Fase1 = formatNum.ConvertNum(drFase1[0]["RisorseNonAllocate"].ToString()); //logger.Info("Totale Risorse non allocate, Fase 1 " + drFase1.Length.ToString()); //decimal _totalePercentualeRF = Convert.ToDecimal(drFase1[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_LIQ"].ToString()); //logger.Info("Totale Risorse non Allocate, Fase 1 " + Convert.ToString(_totalePercentualeRF)); drRisorseNonAllocate.Fase1Percentuale = "-"; //formatNum.ConvertNum(_totalePercentualeRF); } if (drFase2.Length > 0) { drRisorseNonAllocate.Fase2 = formatNum.ConvertNum(drFase2[0]["RisorseNonAllocate"].ToString()); //logger.Info("Totale Risorse non allocate, Fase 2 " + drFase2.Length.ToString()); //decimal _totalePercentualeRF = Convert.ToDecimal(drFase2[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_LIQ"].ToString()); //logger.Info("Totale Risorse non Allocate, Fase 2 " + Convert.ToString(_totalePercentualeRF)); drRisorseNonAllocate.Fase2Percentuale = "-"; //formatNum.ConvertNum(_totalePercentualeRF); } if (drFase3.Length > 0) { drRisorseNonAllocate.Fase3 = formatNum.ConvertNum(drFase3[0]["RisorseNonAllocate"].ToString()); //logger.Info("Totale Risorse non allocate, Fase 3 " + drFase3.Length.ToString()); //decimal _totalePercentualeRF = Convert.ToDecimal(drFase3[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_LIQ"].ToString()); //logger.Info("Totale Risorse non Allocate, Fase 3 " + Convert.ToString(_totalePercentualeRF)); drRisorseNonAllocate.Fase3Percentuale = "-"; //formatNum.ConvertNum(_totalePercentualeRF); } dsS80ALT.RisorseNonAllocate.AddRisorseNonAllocateRow(drRisorseNonAllocate); #endregion #region TOTALE RISORSE FINANZIARIE DataSetS80ALT.RisorseFinanziarieRow drDatiTotaleRisorseFinanziarie; drDatiTotaleRisorseFinanziarie = dsS80ALT.RisorseFinanziarie.NewRisorseFinanziarieRow(); //drDatiTotaleRisorseFinanziarie.Descrizione = "TOTALE RISORSE FINANZIARIE"; drDatiTotaleRisorseFinanziarie.Descrizione = "Totale risorse finanziarie"; if (drFase1.Length > 0) { drDatiTotaleRisorseFinanziarie.Fase1 = formatNum.ConvertNum(drFase1[0]["RisorseFinanziarie"].ToString()); //logger.Info("TOTALE RISORSE FINANZIARIE, Fase 1 " + drFase1.Length.ToString()); decimal _totalePercentualeRF = Convert.ToDecimal(drFase1[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_LIQ"].ToString()); //logger.Info("TOTALE RISORSE FINANZIARIE, Fase 1 " + Convert.ToString(_totalePercentualeRF)); drDatiTotaleRisorseFinanziarie.Fase1Percentuale = formatNum.ConvertNum(_totalePercentualeRF); } if (drFase2.Length > 0) { drDatiTotaleRisorseFinanziarie.Fase2 = formatNum.ConvertNum(drFase2[0]["RisorseFinanziarie"].ToString()); //logger.Info("TOTALE RISORSE FINANZIARIE, Fase 2 " + drFase2.Length.ToString()); decimal _totalePercentualeRF = Convert.ToDecimal(drFase2[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_LIQ"].ToString()); //logger.Info("TOTALE RISORSE FINANZIARIE, Fase 2 " + Convert.ToString(_totalePercentualeRF)); drDatiTotaleRisorseFinanziarie.Fase2Percentuale = formatNum.ConvertNum(_totalePercentualeRF); } if (drFase3.Length > 0) { drDatiTotaleRisorseFinanziarie.Fase3 = formatNum.ConvertNum(drFase3[0]["RisorseFinanziarie"].ToString()); //logger.Info("TOTALE RISORSE FINANZIARIE, Fase 3 " + drFase2.Length.ToString()); decimal _totalePercentualeRF = Convert.ToDecimal(drFase3[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_LIQ"].ToString()); //logger.Info("TOTALE RISORSE FINANZIARIE, Fase 3 " + Convert.ToString(_totalePercentualeRF)); drDatiTotaleRisorseFinanziarie.Fase3Percentuale = formatNum.ConvertNum(_totalePercentualeRF); } dsS80ALT.RisorseFinanziarie.AddRisorseFinanziarieRow(drDatiTotaleRisorseFinanziarie); #endregion #region Scoperto di conto corrente DataSetS80ALT.ContoCorrenteRow drDatiContoCorrenteNegativo; drDatiContoCorrenteNegativo = dsS80ALT.ContoCorrente.NewContoCorrenteRow(); drDatiContoCorrenteNegativo.Descrizione = "Scoperto di conto corrente"; if (drFase1.Length > 0) { //logger.Info("Scoperto di conto corrente, Fase 1 " + drFase1.Length.ToString()); //logger.Info("Scoperto di conto corrente, Fase 1 " + drFase1[0]["ContoCorrente"].ToString()); if (drFase1[0]["ContoCorrente"].ToString() != "0,000") drDatiContoCorrenteNegativo.Fase1 = formatNum.ConvertNum(drFase1[0]["ContoCorrente"].ToString()); else drDatiContoCorrenteNegativo.Fase1 = "-"; drDatiContoCorrenteNegativo.Fase1Percentuale = "-"; //drDatiContoCorrenteNegativo.Fase1 = drFase1[0]["ContoCorrente"].ToString(); } if (drFase2.Length > 0) { //logger.Info("Scoperto di conto corrente, Fase 2 " + drFase2.Length.ToString()); //logger.Info("Scoperto di conto corrente, Fase 2 " + drFase2[0]["ContoCorrente"].ToString()); if (drFase2[0]["ContoCorrente"].ToString() != "0,000") drDatiContoCorrenteNegativo.Fase2 = formatNum.ConvertNum(drFase2[0]["ContoCorrente"].ToString()); else drDatiContoCorrenteNegativo.Fase2 = "-"; drDatiContoCorrenteNegativo.Fase2Percentuale = "-"; //drDatiContoCorrenteNegativo.Fase2 = drFase2[0]["ContoCorrente"].ToString(); } if (drFase3.Length > 0) { //logger.Info("Scoperto di conto corrente, Fase 3 " + drFase3.Length.ToString()); //logger.Info("Scoperto di conto corrente, Fase 3 " + drFase3[0]["ContoCorrente"].ToString()); if (drFase3[0]["ContoCorrente"].ToString() != "0,000") drDatiContoCorrenteNegativo.Fase3 = formatNum.ConvertNum(drFase3[0]["ContoCorrente"].ToString()); else drDatiContoCorrenteNegativo.Fase3 = "-"; drDatiContoCorrenteNegativo.Fase3Percentuale = "-"; //drDatiContoCorrenteNegativo.Fase3 = drFase3[0]["ContoCorrente"].ToString(); } dsS80ALT.ContoCorrente.AddContoCorrenteRow(drDatiContoCorrenteNegativo); #endregion #region Linea Self Negativa // MIOFOGLIO 20181206 DataSetS80ALT.LineaSelfNegRow drDatiLineaSelfNeg; // Crea una riga per ciascuna voce Self negativa // Se il datathread contiene informazioni su linee Self negative, crea una riga per ciascuna di esse if (dataThread!=null && dataThread.SelfNegativeValue!=null && dataThread.SelfNegativeValue.Count > 0) { foreach (var r in dataThread.SelfNegativeValue) { //logger.Info("Linea Self Negativa, tipo " + r.Item1.ToString()); if (r.Item1.Equals("XY")) { drDatiLineaSelfNeg = dsS80ALT.LineaSelfNeg.NewLineaSelfNegRow(); drDatiLineaSelfNeg.Descrizione = string.Format("Liquidità negativa {0}", r.Item2.ToString()); //"Liquidità negativa \"Linee GP Eligo\""; if (drFase1.Length > 0) { //logger.Info("Linea Self Negativa, Fase 1 " + drFase1.Length.ToString()); //logger.Info("Linea Self Negativa, Fase 1 " + drFase1[0]["CTVSELF"].ToString()); if (drFase1[0]["CTVSELF"].ToString() != "0,000") { drDatiLineaSelfNeg.Fase1 = formatNum.ConvertNum(drFase1[0]["CTVSELF"].ToString()); //decimal _totalePercentualeRF = Convert.ToDecimal(drFase1[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_LIQ"].ToString()); drDatiLineaSelfNeg.Fase1Percentuale = "-"; //formatNum.ConvertNum(_totalePercentualeRF); } else { drDatiLineaSelfNeg.Fase1 = "-"; drDatiLineaSelfNeg.Fase1Percentuale = "-"; } } if (drFase2.Length > 0) { //logger.Info("Linea Self Negativa, Fase 2 " + drFase2.Length.ToString()); //logger.Info("Linea Self Negativa, Fase 2 " + drFase2[0]["CTVSELF"].ToString()); if (drFase2[0]["CTVSELF"].ToString() != "0,000") { drDatiLineaSelfNeg.Fase2 = formatNum.ConvertNum(drFase2[0]["CTVSELF"].ToString()); /* era 1*/ //decimal _totalePercentualeRF = Convert.ToDecimal(drFase2[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_LIQ"].ToString()); drDatiLineaSelfNeg.Fase2Percentuale = "-"; //formatNum.ConvertNum(_totalePercentualeRF); } else { drDatiLineaSelfNeg.Fase2 = "-"; drDatiLineaSelfNeg.Fase2Percentuale = "-"; } } if (drFase3.Length > 0) { //logger.Info("Linea Self Negativa, Fase 3 " + drFase3.Length.ToString()); //logger.Info("Linea Self Negativa, Fase 3 " + drFase3[0]["CTVSELF"].ToString()); if (drFase3[0]["CTVSELF"].ToString() != "0,000") { drDatiLineaSelfNeg.Fase3 = formatNum.ConvertNum(r.Item3.ToString()); /* era 1*/ //decimal _totalePercentualeRF = Convert.ToDecimal(drFase3[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_LIQ"].ToString()); drDatiLineaSelfNeg.Fase3Percentuale = "-"; //formatNum.ConvertNum(_totalePercentualeRF); } else { drDatiLineaSelfNeg.Fase3 = "-"; drDatiLineaSelfNeg.Fase3Percentuale = "-"; } } dsS80ALT.LineaSelfNeg.AddLineaSelfNegRow(drDatiLineaSelfNeg); } else { //logger.Info("Linea Self Negativa, tipo " + r.Item2.ToString()); drDatiLineaSelfNeg = dsS80ALT.LineaSelfNeg.NewLineaSelfNegRow(); drDatiLineaSelfNeg.Descrizione = string.Format("Liquidità negativa {0}", r.Item2.ToString()); //"Liquidità negativa \"Linee GP Eligo\""; if (drFase1.Length > 0) { //logger.Info("Linea Self Negativa, Fase 1 " + drFase1.Length.ToString()); //logger.Info("Linea Self Negativa, Fase 1 " + drFase1[0]["CTVSELFFOGLIO"].ToString()); if (drFase1[0]["CTVSELFFOGLIO"].ToString() != "0,000") { drDatiLineaSelfNeg.Fase1 = formatNum.ConvertNum(drFase1[0]["CTVSELFFOGLIO"].ToString()); //decimal _totalePercentualeRF = Convert.ToDecimal(drFase1[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_LIQ"].ToString()); drDatiLineaSelfNeg.Fase1Percentuale = "-"; //formatNum.ConvertNum(_totalePercentualeRF); } else { drDatiLineaSelfNeg.Fase1 = "-"; drDatiLineaSelfNeg.Fase1Percentuale = "-"; } } if (drFase2.Length > 0) { //logger.Info("Linea Self Negativa, Fase 2 " + drFase2.Length.ToString()); //logger.Info("Linea Self Negativa, Fase 2 " + drFase2[0]["CTVSELFFOGLIO"].ToString()); if (drFase2[0]["CTVSELFFOGLIO"].ToString() != "0,000") { drDatiLineaSelfNeg.Fase2 = formatNum.ConvertNum(drFase2[0]["CTVSELFFOGLIO"].ToString()); /* era 1*/ //decimal _totalePercentualeRF = Convert.ToDecimal(drFase2[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_LIQ"].ToString()); drDatiLineaSelfNeg.Fase2Percentuale = "-"; //formatNum.ConvertNum(_totalePercentualeRF); } else { drDatiLineaSelfNeg.Fase2 = "-"; drDatiLineaSelfNeg.Fase2Percentuale = "-"; } } if (drFase3.Length > 0) { //logger.Info("Linea Self Negativa, Fase 3 " + drFase3.Length.ToString()); //logger.Info("Linea Self Negativa, Fase 3 " + drFase3[0]["CTVSELFFOGLIO"].ToString()); if (drFase3[0]["CTVSELFFOGLIO"].ToString() != "0,000") { drDatiLineaSelfNeg.Fase3 = formatNum.ConvertNum(r.Item3.ToString()); /* era 1*/ //decimal _totalePercentualeRF = Convert.ToDecimal(drFase3[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_LIQ"].ToString()); drDatiLineaSelfNeg.Fase3Percentuale = "-"; //formatNum.ConvertNum(_totalePercentualeRF); } else { drDatiLineaSelfNeg.Fase3 = "-"; drDatiLineaSelfNeg.Fase3Percentuale = "-"; } } dsS80ALT.LineaSelfNeg.AddLineaSelfNegRow(drDatiLineaSelfNeg); } } } // 20181212 // altrimenti deve comunque creare una riga "vuota" perché la S80ALT se la aspetta else { drDatiLineaSelfNeg = dsS80ALT.LineaSelfNeg.NewLineaSelfNegRow(); drDatiLineaSelfNeg.Fase1 = "-"; drDatiLineaSelfNeg.Fase2 = "-"; drDatiLineaSelfNeg.Fase3 = "-"; drDatiLineaSelfNeg.Fase1Percentuale = "-"; drDatiLineaSelfNeg.Fase2Percentuale = "-"; drDatiLineaSelfNeg.Fase3Percentuale = "-"; dsS80ALT.LineaSelfNeg.AddLineaSelfNegRow(drDatiLineaSelfNeg); } //--20181212 /* DataSetS80ALT.LineaSelfNegRow drDatiLineaSelfNeg; drDatiLineaSelfNeg = dsS80ALT.LineaSelfNeg.NewLineaSelfNegRow(); drDatiLineaSelfNeg.Descrizione = "Liquidità negativa \"Linee GP Eligo\""; if (drFase1.Length > 0) { if (drFase1[0]["CTVSELF"].ToString() != "0,000") drDatiLineaSelfNeg.Fase1 = formatNum.ConvertNum(drFase1[0]["CTVSELF"].ToString()); else drDatiLineaSelfNeg.Fase1 = "-"; } if (drFase2.Length > 0) { if (drFase2[0]["CTVSELF"].ToString() != "0,000") drDatiLineaSelfNeg.Fase2 = formatNum.ConvertNum(drFase2[0]["CTVSELF"].ToString()); else drDatiLineaSelfNeg.Fase2 = "-"; } if (drFase3.Length > 0) { if (drFase3[0]["CTVSELF"].ToString() != "0,000") drDatiLineaSelfNeg.Fase3 = formatNum.ConvertNum(dataThread.TotalSelfNegCurrentAccountValue).ToString(); else drDatiLineaSelfNeg.Fase3 = "-"; } dsS80ALT.LineaSelfNeg.AddLineaSelfNegRow(drDatiLineaSelfNeg); */ //--MIOFOGLIO 20181206 #endregion #region Operazioni in corso DataSetS80ALT.OperazioniInCorsoRow drDatiOperazioniInCorso; drDatiOperazioniInCorso = dsS80ALT.OperazioniInCorso.NewOperazioniInCorsoRow(); drDatiOperazioniInCorso.Descrizione = "Operazioni in corso"; if (drFase1.Length > 0) { //logger.Info("Operazioni in corso, Fase 1 " + drFase1.Length.ToString()); drDatiOperazioniInCorso.Fase1 = formatNum.ConvertNum(drFase1[0]["Partita_viaggiante"].ToString()); //decimal _totalePercentualeRF = Convert.ToDecimal(drFase1[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_LIQ"].ToString()); //logger.Info("Operazioni in corso, Fase 1 " + Convert.ToString(_totalePercentualeRF)); drDatiOperazioniInCorso.Fase1Percentuale = "-"; //formatNum.ConvertNum(_totalePercentualeRF); } if (drFase2.Length > 0) { //logger.Info("Operazioni in corso, Fase 2 " + drFase2.Length.ToString()); drDatiOperazioniInCorso.Fase2 = formatNum.ConvertNum(drFase2[0]["Partita_viaggiante"].ToString()); /* era 1*/ //decimal _totalePercentualeRF = Convert.ToDecimal(drFase2[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_LIQ"].ToString()); //logger.Info("Operazioni in corso, Fase 2 " + Convert.ToString(_totalePercentualeRF)); drDatiOperazioniInCorso.Fase2Percentuale = "-"; //formatNum.ConvertNum(_totalePercentualeRF); } if (drFase3.Length > 0) { //logger.Info("Operazioni in corso, Fase 3 " + drFase2.Length.ToString()); //Will calculated from dataThread instead of SP //drDatiOperazioniInCorso.Fase3 = formatNum.ConvertNum(drFase3[0]["Partita_viaggiante"].ToString()); drDatiOperazioniInCorso.Fase3 = formatNum.ConvertNum(dataThread.PartiteViaggiantiInvestimento + dataThread.PartiteViaggiantiDisinvestimento).ToString(); /* era 1*/ //decimal _totalePercentualeRF = Convert.ToDecimal(drFase3[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_LIQ"].ToString()); //logger.Info("Operazioni in corso, Fase 3 " + Convert.ToString(_totalePercentualeRF)); drDatiOperazioniInCorso.Fase3Percentuale = "-"; //formatNum.ConvertNum(_totalePercentualeRF); } dsS80ALT.OperazioniInCorso.AddOperazioniInCorsoRow(drDatiOperazioniInCorso); #endregion #region Totale Patrimonto DataSetS80ALT.DatiTotaleRow drDatiTotale; drDatiTotale = dsS80ALT.DatiTotale.NewDatiTotaleRow(); drDatiTotale.Descrizione = "TOTALE PATRIMONIO"; /**************************** Modifica nuova sezione per report monitoraggio 28 - 10 - 2020-- Pino ***************************/ /* Verifica se siamo in presenza di un Cliente SEI Private o no */ DataRow rowTemplateCC = dsS80ALT.ContoCorrente.Rows[0]; DataRow rowTemplateSelf = dsS80ALT.LineaSelfNeg.Rows[0]; DataRow rowTemplateOC = dsS80ALT.OperazioniInCorso.Rows[0]; DataRow rowTemplateRNA = dsS80ALT.RisorseNonAllocate.Rows[0]; bool _Private = false; //logger.Info("Totale Patrimonto " + rowTemplateCC["fase1"].ToString()); //logger.Info("Totale Patrimonto " + rowTemplateCC["fase2"].ToString()); //logger.Info("Totale Patrimonto " + rowTemplateCC["fase3"].ToString()); //logger.Info("Totale Patrimonto " + rowTemplateOC["fase1"].ToString()); //logger.Info("Totale Patrimonto " + rowTemplateOC["fase2"].ToString()); //logger.Info("Totale Patrimonto " + rowTemplateOC["fase3"].ToString()); //logger.Info("Totale Patrimonto " + rowTemplateSelf["fase1"].ToString()); //logger.Info("Totale Patrimonto " + rowTemplateSelf["fase2"].ToString()); //logger.Info("Totale Patrimonto " + rowTemplateSelf["fase3"].ToString()); if ( ((rowTemplateCC["fase1"].ToString() != "-" && rowTemplateCC["fase1"].ToString() != string.Empty) || (rowTemplateCC["fase2"].ToString() != "-" && rowTemplateCC["fase2"].ToString() != string.Empty) || (rowTemplateCC["fase3"].ToString() != "-" && rowTemplateCC["fase3"].ToString() != string.Empty)) || ((rowTemplateOC["fase1"].ToString() != "0,00" && rowTemplateOC["fase1"].ToString() != string.Empty) || (rowTemplateOC["fase2"].ToString() != "0,00" && rowTemplateOC["fase2"].ToString() != string.Empty) || (rowTemplateOC["fase3"].ToString() != "0,00" && rowTemplateOC["fase3"].ToString() != string.Empty)) || ((rowTemplateSelf["fase1"].ToString() != "-" && rowTemplateSelf["fase1"].ToString() != string.Empty) || (rowTemplateSelf["fase2"].ToString() != "-" && rowTemplateSelf["fase2"].ToString() != string.Empty) || (rowTemplateSelf["fase3"].ToString() != "-" && rowTemplateSelf["fase3"].ToString() != string.Empty)) || ((rowTemplateRNA["fase1"].ToString() != "-" && rowTemplateRNA["fase1"].ToString() != string.Empty) || (rowTemplateRNA["fase2"].ToString() != "-" && rowTemplateRNA["fase2"].ToString() != string.Empty) || (rowTemplateRNA["fase3"].ToString() != "-" && rowTemplateRNA["fase3"].ToString() != string.Empty)) ) _Private = true; /****************************************************************************************************************************/ if (drFase1.Length > 0) { //logger.Info("Totale Patrimonto, fase 1 " + drFase1.Length.ToString()); drDatiTotale.Fase1 = formatNum.ConvertNum(drFase1[0]["TotalePatrimonio"].ToString()); decimal _totalePercentuale = Convert.ToDecimal(drFase1[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_LIQ"].ToString()); //logger.Info("Totale Patrimonto, fase 1 " + Convert.ToString(_totalePercentuale)); drDatiTotale.Fase1Percentuale = (!_Private ? formatNum.ConvertNum(_totalePercentuale) : "-"); } if (drFase2.Length > 0) { //logger.Info("Totale Patrimonto, fase 2 " + drFase2.Length.ToString()); drDatiTotale.Fase2 = formatNum.ConvertNum(drFase2[0]["TotalePatrimonio"].ToString()); decimal _totalePercentuale = Convert.ToDecimal(drFase2[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase2[0]["PERC_LIQ"].ToString()); //logger.Info("Totale Patrimonto, fase 2 " + Convert.ToString(_totalePercentuale)); drDatiTotale.Fase2Percentuale = (!_Private ? formatNum.ConvertNum(_totalePercentuale) : "-"); } if (drFase3.Length > 0) { //logger.Info("Totale Patrimonto, fase 3 " + drFase3.Length.ToString()); //drDatiTotale.Fase3 = formatNum.ConvertNum(drFase3[0]["TotalePatrimonio"].ToString()); //Will calculated from dataThread instead of SP decimal totale; totale = decimal.Parse(drFase3[0]["TotalePatrimonio"].ToString()) + dataThread.PartiteViaggiantiInvestimento + dataThread.PartiteViaggiantiDisinvestimento; drDatiTotale.Fase3 = formatNum.ConvertNum(totale.ToString()); decimal _totalePercentuale = Convert.ToDecimal(drFase3[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase3[0]["PERC_LIQ"].ToString()); //logger.Info("Totale Patrimonto, fase 3 " + Convert.ToString(_totalePercentuale)); drDatiTotale.Fase3Percentuale = (!_Private ? formatNum.ConvertNum(_totalePercentuale) : "-"); } dsS80ALT.DatiTotale.AddDatiTotaleRow(drDatiTotale); #endregion #region Dettaglio Movimenti Dopo Dati Totale DataSetS80ALT.RigheDopoDatiTotaleRow drDettMovDopoDatiTotale; drDettMovDopoDatiTotale = dsS80ALT.RigheDopoDatiTotale.NewRigheDopoDatiTotaleRow(); drDettMovDopoDatiTotale.Descrizione = "Movimenti da osservazione precedente"; drDettMovDopoDatiTotale.Fase1BlankValue = string.Empty; drDettMovDopoDatiTotale.Fase2BlankValue = string.Empty; drDettMovDopoDatiTotale.Fase3BlankValue = string.Empty; if (drFase1.Length > 0) { //logger.Info("Dettaglio Movimenti Dopo Dati Totale, fase 1 " + drFase1.Length.ToString()); if (!drFase1[0]["DettMov"].Equals(System.DBNull.Value)) { //logger.Info("Dettaglio Movimenti Dopo Dati Totale, fase 1 DettMov non null"); drDettMovDopoDatiTotale.Fase1 = formatNum.ConvertNum(drFase1[0]["DettMov"].ToString()); if (!drFase1[0]["NumeroAsterischiNota"].Equals(System.DBNull.Value)) { //logger.Info("Dettaglio Movimenti Dopo Dati Totale, fase 1 NumeroAsterischiNota non null"); drDettMovDopoDatiTotale.Fase1NumeroAsterischiNota = drFase1[0]["NumeroAsterischiNota"].ToString(); drDettMovDopoDatiTotale.Fase1 = string.Format("{0}{1}", drDettMovDopoDatiTotale.Fase1, obtainAsteriscs(Convert.ToInt16(drDettMovDopoDatiTotale.Fase1NumeroAsterischiNota))); } //decimal _totalePercentualeRF = Convert.ToDecimal(drFase1[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_LIQ"].ToString()); drDettMovDopoDatiTotale.Fase1Percentuale = string.Empty; //"notvisible"; //formatNum.ConvertNum(_totalePercentualeRF); } else { //logger.Info("Dettaglio Movimenti Dopo Dati Totale, fase 1 DettMov null"); drDettMovDopoDatiTotale.Fase1 = "notvisible"; drDettMovDopoDatiTotale.Fase1Percentuale = string.Empty; // "notvisibile"; } } if (drFase2.Length > 0) { //logger.Info("Dettaglio Movimenti Dopo Dati Totale, fase 2 " + drFase2.Length.ToString()); if (!drFase2[0]["DettMov"].Equals(System.DBNull.Value)) { //logger.Info("Dettaglio Movimenti Dopo Dati Totale, fase 2 DettMov non null"); drDettMovDopoDatiTotale.Fase2 = formatNum.ConvertNum(drFase2[0]["DettMov"].ToString()); if (!drFase2[0]["NumeroAsterischiNota"].Equals(System.DBNull.Value)) { //logger.Info("Dettaglio Movimenti Dopo Dati Totale, fase 2 NumeroAsterischiNota non null"); drDettMovDopoDatiTotale.Fase2NumeroAsterischiNota = drFase2[0]["NumeroAsterischiNota"].ToString(); drDettMovDopoDatiTotale.Fase2 = string.Format("{0}{1}", drDettMovDopoDatiTotale.Fase2, obtainAsteriscs(Convert.ToInt16(drDettMovDopoDatiTotale.Fase2NumeroAsterischiNota))); //decimal _totalePercentualeRF = Convert.ToDecimal(drFase1[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_LIQ"].ToString()); drDettMovDopoDatiTotale.Fase2Percentuale = string.Empty; //"notvisible"; //formatNum.ConvertNum(_totalePercentualeRF); } } else { //logger.Info("Dettaglio Movimenti Dopo Dati Totale, fase 2 DettMov null"); drDettMovDopoDatiTotale.Fase2 = "notvisible"; drDettMovDopoDatiTotale.Fase2Percentuale = string.Empty; //"notvisibile"; } } else { drDettMovDopoDatiTotale.Fase2 = "notvisible"; drDettMovDopoDatiTotale.Fase2Percentuale = string.Empty; //"notvisibile"; } if (drFase3.Length > 0) { //logger.Info("Dettaglio Movimenti Dopo Dati Totale, fase 3 " + drFase3.Length.ToString()); if (!drFase3[0]["DettMov"].Equals(System.DBNull.Value)) { //logger.Info("Dettaglio Movimenti Dopo Dati Totale, fase 3 DettMov non null"); drDettMovDopoDatiTotale.Fase3 = formatNum.ConvertNum(drFase3[0]["DettMov"].ToString()); if (!drFase3[0]["NumeroAsterischiNota"].Equals(System.DBNull.Value)) { //logger.Info("Dettaglio Movimenti Dopo Dati Totale, fase 3 NumeroAsterischiNota non null"); drDettMovDopoDatiTotale.Fase3NumeroAsterischiNota = drFase3[0]["NumeroAsterischiNota"].ToString(); drDettMovDopoDatiTotale.Fase3 = string.Format("{0}{1}", drDettMovDopoDatiTotale.Fase3, obtainAsteriscs(Convert.ToInt16(drDettMovDopoDatiTotale.Fase3NumeroAsterischiNota))); //decimal _totalePercentualeRF = Convert.ToDecimal(drFase1[0]["PERC_EXT"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_INV"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_PRE"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_RIS"].ToString()) + Convert.ToDecimal(drFase1[0]["PERC_LIQ"].ToString()); drDettMovDopoDatiTotale.Fase3Percentuale = string.Empty; //"notvisible"; //formatNum.ConvertNum(_totalePercentualeRF); } } else { //logger.Info("Dettaglio Movimenti Dopo Dati Totale, fase 3 DettMov null"); drDettMovDopoDatiTotale.Fase3 = "notvisible"; drDettMovDopoDatiTotale.Fase3Percentuale = string.Empty; //"notvisibile"; } } dsS80ALT.RigheDopoDatiTotale.AddRigheDopoDatiTotaleRow(drDettMovDopoDatiTotale); DataTable dtDidascalieNote = SectionManager.GetDataSection(tabelleSessione, "[C6MartPeriodico].[PL_S80Alternativa_DidascalieNote]", dataThread); DataSetS80ALT.DettaglioMovimentiDidascalieNoteRow drDettaglioMovimentiDidascalieNoteRow; //logger.Info("Dettaglio Movimenti Dopo Dati Totale, Note " + dtDidascalieNote.Rows.Count.ToString()); foreach (DataRow dr in dtDidascalieNote.Rows) { //logger.Info("Dettaglio Movimenti Dopo Dati Totale, Note " + dr["NumeroAsterischi"].ToString()); //logger.Info("Dettaglio Movimenti Dopo Dati Totale, Note " + dr["Descrizione"].ToString()); drDettaglioMovimentiDidascalieNoteRow = dsS80ALT.DettaglioMovimentiDidascalieNote.NewDettaglioMovimentiDidascalieNoteRow(); drDettaglioMovimentiDidascalieNoteRow.NumeroAsterischi = Convert.ToInt16(dr["NumeroAsterischi"]); drDettaglioMovimentiDidascalieNoteRow.Descrizione = dr["Descrizione"].ToString(); dsS80ALT.DettaglioMovimentiDidascalieNote.AddDettaglioMovimentiDidascalieNoteRow(drDettaglioMovimentiDidascalieNoteRow); } #endregion } dsr.DatiSezione = dsS80ALT; dsr.Esito = dsS80ALT.GraficoPiramide.Rows.Count; return dsr; } public List ConvertTo(DataTable datatable) where T : new() { List Temp = new List(); try { List columnsNames = new List(); foreach (DataColumn DataColumn in datatable.Columns) columnsNames.Add(DataColumn.ColumnName); Temp = datatable.AsEnumerable().ToList().ConvertAll(row => getObject(row, columnsNames)); return Temp; } catch { return Temp; } } public T getObject(DataRow row, List columnsName) where T : new() { T obj = new T(); try { string columnname = ""; string value = ""; PropertyInfo[] Properties; Properties = typeof(T).GetProperties(); foreach (PropertyInfo objProperty in Properties) { columnname = columnsName.Find(name => name.ToLower() == objProperty.Name.ToLower()); if (!string.IsNullOrEmpty(columnname)) { value = row[columnname].ToString(); if (!string.IsNullOrEmpty(value)) { if (Nullable.GetUnderlyingType(objProperty.PropertyType) != null) { value = row[columnname].ToString().Replace("$", "").Replace(",", ""); objProperty.SetValue(obj, Convert.ChangeType(value, Type.GetType(Nullable.GetUnderlyingType(objProperty.PropertyType).ToString())), null); } else { value = row[columnname].ToString().Replace("%", ""); objProperty.SetValue(obj, Convert.ChangeType(value, Type.GetType(objProperty.PropertyType.ToString())), null); } } } } return obj; } catch { return obj; } } private DataTable ToDataTable(IList data) { PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T)); DataTable table = new DataTable(); for (int i = 0; i < props.Count; i++) { PropertyDescriptor prop = props[i]; table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType); } object[] values = new object[props.Count]; foreach (T item in data) { for (int i = 0; i < values.Length; i++) values[i] = props[i].GetValue(item) ?? DBNull.Value; table.Rows.Add(values); } return table; } /************************ Modifica per lo sfrido dello 0,01 - Pino ***********************************************/ private List NormalizzoPercentuali(List _listaDaNormalizzare) { List _listaNormalizzata = new List(); try { // Arrotondo a 2 cifre decimali foreach (PercentualiDaNormalizzare item in _listaDaNormalizzare.Cast()) { item.valoreAttuale = (Math.Round(item.valoreAttuale, 2, MidpointRounding.ToEven) == 0 ? 0.00M : Math.Round(item.valoreAttuale, 2, MidpointRounding.ToEven)); item.valoreNormalizzato = Math.Round(item.valoreAttuale, 2, MidpointRounding.ToEven); }; // Calcolo il totale decimal TotalePercentuale = _listaDaNormalizzare.Cast().Sum(s => s.valoreAttuale); // Determino l'errore Err = Desi - Eff decimal Desi = 100.00M; decimal error = Desi - TotalePercentuale; _listaNormalizzata = _listaDaNormalizzare; if (error != 0) { // Determino se l'errore è dell'ordine delle decine o delle centinaie if ((Math.Abs(error) * 100) >= 1) { // ciclo sulla lista dei valori percentuali e individuo quelli che posso modificare ( > 0.01) foreach (var item in _listaNormalizzata.Cast()) { if (Convert.ToInt16(item.valoreAttuale.ToString().Split(',')[1].Substring(1, 1)) >= 1) { // Se l'errore è negativo allora diminuisco un valore percentuale della quantita individuata nella variabile valore if (error < 0) item.valoreNormalizzato = item.valoreAttuale - Math.Abs(error); else item.valoreNormalizzato = item.valoreAttuale + Math.Abs(error); item.valoreNormalizzato = Math.Round(item.valoreNormalizzato, 2, MidpointRounding.ToEven); } else { item.valoreNormalizzato = item.valoreAttuale; item.valoreNormalizzato = Math.Round(item.valoreNormalizzato, 2, MidpointRounding.ToEven); } if (_listaNormalizzata.Cast().Sum(s => s.valoreNormalizzato) == 100.00M) break; } } else { if ((Math.Abs(error) * 10) >= 1) { // ciclo sulla lista dei valori percentuali e individuo quelli che posso modificare ( > 0.5) foreach (var item in _listaNormalizzata.Cast()) { if (Convert.ToInt16(item.valoreAttuale.ToString().Split(',')[1].Substring(0, 1)) >= 5) { // Se l'errore è negativo allora diminuisco un valore percentuale della quantita individuata nella variabile valore if (error < 0) item.valoreNormalizzato = item.valoreAttuale + Math.Abs(error); else item.valoreNormalizzato = item.valoreAttuale - Math.Abs(error); item.valoreNormalizzato = Math.Round(item.valoreNormalizzato, 2, MidpointRounding.ToEven); } else { item.valoreNormalizzato = item.valoreAttuale; item.valoreNormalizzato = Math.Round(item.valoreNormalizzato, 2, MidpointRounding.ToEven); } if (_listaNormalizzata.Cast().Sum(s => s.valoreNormalizzato) == 100.00M) break; } //Utility.ShowMessageBox("Decine", "Patrimonio finanziario", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } } catch (Exception ex) { } return _listaNormalizzata; } /*****************************************************************************************************************/ } public class PiramidePercentuale { public string Descrizione { get; set; } public string fase1 { get; set; } public string Fase1Percentuale { get; set; } public string fase2 { get; set; } public string Fase2Percentuale { get; set; } public string fase3 { get; set; } public string Fase3Percentuale { get; set; } } public class PiramidePercentualeDopoRigheTotali { public string Descrizione { get; set; } public string fase1 { get; set; } public string Fase1Percentuale { get; set; } public string fase2 { get; set; } public string Fase2Percentuale { get; set; } public string fase3 { get; set; } public string Fase3Percentuale { get; set; } public string Fase1NumeroAsterischiNota { get; set; } public string Fase2NumeroAsterischiNota { get; set; } public string Fase3NumeroAsterischiNota { get; set; } public string Fase1BlankValue { get; set; } public string Fase2BlankValue { get; set; } public string Fase3BlankValue { get; set; } } /************************ Modifica per lo sfrido dello 0,01 - Pino ***********************************************/ public class PercentualiDaNormalizzare { public string area { get; set; } public Decimal valoreAttuale { get; set; } public Decimal valoreNormalizzato { get; set; } } /*****************************************************************************************************************/ }