public ReportPorfitLossAnnoGestioniViewModel(ReportProfitLossList reportProfitLossList, bool isDetailed) { reportProfitLosses = reportProfitLossList ?? throw new ArgumentNullException("Mancano i dati per la costruzione del report."); //AddTotals(reportProfitLosses); ProfitLossData = reportProfitLossList; IsDetailed = isDetailed == true ? System.Windows.Visibility.Visible : System.Windows.Visibility.Collapsed; }
public ReportProfitLossList GetReport1(IList <RegistryOwner> _selectedOwners, IList <int> _selectedYears, bool isSynthetic) { string owners = " ("; foreach (RegistryOwner i in _selectedOwners) { owners += " A.id_gestione = " + i.Id_gestione + " or "; } owners = owners.Substring(0, owners.Length - 4); owners += ") "; string anni = " ("; foreach (int i in _selectedYears) { anni += " year(data_movimento) = " + i + " or "; } anni = anni.Substring(0, anni.Length - 4); anni += ") "; string query = owners + " and " + anni; try { ReportProfitLossList reportProfitLossList = new ReportProfitLossList(); DataTable data = new DataTable(); using (MySqlDataAdapter dbAdapter = new MySqlDataAdapter()) { dbAdapter.SelectCommand = new MySqlCommand(); dbAdapter.SelectCommand.CommandType = System.Data.CommandType.Text; dbAdapter.SelectCommand.CommandText = isSynthetic == true?string.Format(SQL.ReportScripts.GetProfitLoss, query) : string.Format(SQL.ReportScripts.GetDetailedProfitLoss, query); dbAdapter.SelectCommand.Connection = new MySqlConnection(DAFconnection.GetConnectionType()); dbAdapter.Fill(data); foreach (DataRow dr in data.Rows) { ReportProfitLoss RPL = new ReportProfitLoss(); RPL.Anno = dr.Field <int>("Anno"); RPL.Gestione = dr.Field <string>("nome_gestione"); RPL.TipoSoldi = dr.Field <string>("desc_tipo_soldi"); RPL.Valuta = dr.Field <string>("cod_valuta"); if (!isSynthetic) { RPL.NomeTitolo = dr.Field <string>("desc_titolo"); RPL.ISIN = dr.Field <string>("isin"); } else { RPL.NomeTitolo = ""; RPL.ISIN = ""; } RPL.Azioni = RPL.TipoSoldi == "Perdita di Capitale" ? dr.Field <double>("Azioni") * -1 : dr.Field <double>("Azioni"); RPL.Obbligazioni = RPL.TipoSoldi == "Perdita di Capitale" ? dr.Field <double>("Obbligazioni") * -1 : dr.Field <double>("Obbligazioni"); RPL.Certificati = RPL.TipoSoldi == "Perdita di Capitale" ? dr.Field <double>("Certificati") * -1 : dr.Field <double>("Certificati"); RPL.ETF_C_P = RPL.TipoSoldi == "Perdita di Capitale" ? dr.Field <double>("ETF_C_P") * -1 : dr.Field <double>("ETF_C_P"); RPL.Fondo = RPL.TipoSoldi == "Perdita di Capitale" ? dr.Field <double>("Fondo") * -1 : dr.Field <double>("Fondo"); RPL.Futures = RPL.TipoSoldi == "Perdita di Capitale" ? dr.Field <double>("Futures") * -1 : dr.Field <double>("Futures"); RPL.Opzioni = RPL.TipoSoldi == "Perdita di Capitale" ? dr.Field <double>("Opzioni") * -1 : dr.Field <double>("Opzioni"); RPL.Commodities = RPL.TipoSoldi == "Perdita di Capitale" ? dr.Field <double>("Commodities") * -1 : dr.Field <double>("Commodities"); RPL.Costi = RPL.TipoSoldi == "Perdita di Capitale" ? dr.Field <double>("Costi") * -1 : dr.Field <double>("Costi"); RPL.Totale = RPL.TipoSoldi == "Perdita di Capitale" ? dr.Field <double>("Totale") * -1 : dr.Field <double>("Totale"); reportProfitLossList.Add(RPL); } } return(reportProfitLossList); } catch (MySqlException err) { throw new Exception(err.Message); } catch (Exception err) { throw new Exception(err.Message); } }