using System; using Consulenza.ReportWriter.Business; using Consulenza.ReportWriter.Business.OBJ_PDF; using System.Data; using Consulenza.ReportCommon; namespace Consulenza.ReportWriter.Manager.Section.Unica { /// /// S38.PatrimonioAziendale idSezione = 81 /// public class S38 : Entity.Section { public S38(EnvironmentFacade environmentFacade, int idSection) : base(environmentFacade, idSection) { try { Draw(); } catch (Exception ex) { SectionLogger.Write("S38", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment); } } protected override sealed void Draw() { var dati = GetDataSet(); if (dati.Tables["aziende"].Rows.Count > 0) { #region Tabella aziende DataTable dt = new DataTable(); dt = dati.Tables["aziende"].AsEnumerable().OrderByDescending(o => o.Field("ValoreCommerciale")).CopyToDataTable(); var tabella = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dt, dati.Tables["aziendeFooter"]) { Style = Style.ConsulenzaUnica, AlternateRow = false, HeaderHeight = 30, HeaderTextHorizontalAlign = HorizontalAlignmentType.Sinistra }; tabella.Columns.Add(new ColumnPDF("Descrizione", 170, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Descrizione", "Descrizione") { HeaderFontSize = 7 }); tabella.FooterColumns.Add(new ColumnPDF("Descrizione", 170, HorizontalAlignmentType.Sinistra, true, true, 7, ColumnType.Testo)); tabella.Columns.Add(new ColumnPDF("ValoreCommerciale", 140, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Valorecommerciale", "Valore commerciale (€)") {HeaderFontSize = 7, HeaderPaddingRight = 15, PaddingRight = 15 }); tabella.FooterColumns.Add(new ColumnPDF("Valorestimato", 140, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 15 }); tabella.Columns.Add(new ColumnPDF("Tipologia", 110, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "Tipologia", "Tipologia") { HeaderFontSize = 7 }); tabella.Columns.Add(new ColumnPDF("PatrimonioNetto", 100, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Decimale, "Patrimonionetto", "Patrimonio netto (€)") { HeaderFontSize = 7, PaddingRight = 10 }); tabella.FooterColumns.Add(new ColumnPDF("PatrimonioNetto", 210, HorizontalAlignmentType.Destra, true, true, 7, ColumnType.Decimale) { PaddingRight = 5 }); int i = 0; foreach (var item in dati.Tables["aziende"].Rows) { tabella.Cells[1, i].HorizontalAlignment = HorizontalAlignmentType.Destra; tabella.Cells[3, i].HorizontalAlignment = HorizontalAlignmentType.Destra; i++; } AddElement(tabella); #endregion } } /// /// Recupera i dati necessari alla Section restituendo un DataTable. /// /// protected sealed override DataTable GetDataTable() { return null; } /// /// Recupera i dati necessari alla Section restituendo un DataSet. /// /// protected sealed override DataSet GetDataSet() { var ds = new DataSet(); ds.Tables.Add(new DataTable("aziende")); ds.Tables.Add(new DataTable("aziendeFooter")); var patrimonioAziendale = datiSeiUnico.patrimonioUnit().patrimonioAziendale; var listaAziende = patrimonioAziendale.listaProdotti; #region Aziende ds.Tables["aziende"].Columns.Add(new DataColumn("Descrizione", typeof(string))); ds.Tables["aziende"].Columns.Add(new DataColumn("ValoreCommerciale", typeof(decimal))); ds.Tables["aziende"].Columns.Add(new DataColumn("Tipologia", typeof(string))); ds.Tables["aziende"].Columns.Add(new DataColumn("PatrimonioNetto", typeof(decimal))); foreach (var item in listaAziende) { ds.Tables["aziende"].Rows.Add( item.descrizione, item.ctv, item.tipologia, item.patrimonioNetto ); } #endregion #region Totale Aziende ds.Tables["aziendeFooter"].Columns.Add(new DataColumn("Totale", typeof(string))); ds.Tables["aziendeFooter"].Columns.Add(new DataColumn("ValoreCommerciale", typeof(decimal))); ds.Tables["aziendeFooter"].Columns.Add(new DataColumn("PatrimonioNetto", typeof(decimal))); ds.Tables["aziendeFooter"].Rows.Add( "Totale patrimonio aziendale", Helper.FormatCurrency(patrimonioAziendale.totalePatrimonio.ToString()), Helper.FormatCurrency(patrimonioAziendale.totalePatrimonioNetto.ToString()) ); #endregion return ds; } } }