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