136 lines
5.4 KiB
C#
136 lines
5.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Consulenza.ReportWriter.Business;
|
|
using Consulenza.ReportWriter.Business.OBJ_PDF;
|
|
using System.Data;
|
|
using Consulenza.ReportWriter.Business.Entity;
|
|
|
|
namespace Consulenza.ReportWriter.Manager.Section.Immobiliare.Diagnosi
|
|
{
|
|
/// <summary>
|
|
/// Dettaglio immobili con anomalie catastali (id 40)
|
|
/// </summary>
|
|
public class S8 : Entity.Section
|
|
{
|
|
public S8(EnvironmentFacade environmentFacade, int idSection)
|
|
: base(environmentFacade, idSection)
|
|
{
|
|
try
|
|
{
|
|
Draw();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SectionLogger.Write("S8", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Scheda8. Dettaglio immobili con anomalie catastali (riepilogo delle anomalie catastali per immobile)
|
|
/// </summary>
|
|
protected override sealed void Draw()
|
|
{
|
|
var dati = GetDataTable();
|
|
var testi = GetText();
|
|
|
|
string sTesto = "Di seguito si riassumono le anomalie catastali rilevate.";
|
|
if (testi.Rows.Count > 0)
|
|
sTesto = testi.Rows[0]["testo1"].ToString();
|
|
|
|
var titolo = new FormattedTextAreaPDF(sTesto, EnvironmentFacade.RendererFacade.XLeftLimit, 600) { FontSize = 10, FontColor = ColorPDF.Immobiliare_Grigio_TestoStandard };
|
|
AddElement(new SpacePDF(40));
|
|
AddElement(titolo);
|
|
|
|
#region Oggetti da ripetere al salto pagina della tabella
|
|
|
|
var listaOggettiDaRipetere = new List<ObjectPDF> { new SpacePDF(40), titolo, new SpacePDF(20) };
|
|
AddElement(new RepeaterPDF(listaOggettiDaRipetere));
|
|
|
|
#endregion
|
|
|
|
AddElement(new SpacePDF(20));
|
|
|
|
#region Tabella
|
|
|
|
var tabella = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dati)
|
|
{
|
|
Style = Style.Immobiliare,
|
|
Footer = false,
|
|
ShowBorderLastLine = true,
|
|
ShowSeparationLines = true
|
|
};
|
|
|
|
|
|
tabella.Columns.Add(new ColumnPDF("descrizione", 240, HorizontalAlignmentType.Sinistra, false, false, 8, ColumnType.Testo, "descrizione", "Descrizione") { FontColor = ColorPDF.Nero });
|
|
tabella.Columns.Add(new ColumnPDF("valorestimato", 100, HorizontalAlignmentType.Destra, false, false, 8, ColumnType.Decimale, "valorestimato", "Valore stimato (€)") { FontColor = ColorPDF.Nero });
|
|
tabella.Columns.Add(new ColumnPDF("SEP1", 20, HorizontalAlignmentType.Nonimpostato, false, false, 8, ColumnType.Testo, "sep1", string.Empty)); //Separatore
|
|
tabella.Columns.Add(new ColumnPDF("anomalierilevate", 395, HorizontalAlignmentType.Sinistra, true, false, 8, ColumnType.Testo, "anomalierilevate", "Anomalie rilevate")
|
|
{
|
|
HeaderBackgroundColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo,
|
|
FontColor = ColorPDF.Nero,
|
|
BackgroundColor = new ColorPDF(196, 196, 187)
|
|
});
|
|
|
|
AddElement(tabella);
|
|
|
|
#endregion
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera i dati necessari alla Section restituendo un DataTable.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
protected override DataTable GetDataTable()
|
|
{
|
|
#region Definizione dei parametri
|
|
|
|
var parametri = new List<Parametro>
|
|
{
|
|
new Parametro
|
|
{
|
|
Direction = ParameterDirection.Input,
|
|
DbType = DbType.Int64,
|
|
ParameterName = "ChiaveClientePB",
|
|
Value = EnvironmentFacade.ReportEnvironment.Cliente.Chiave
|
|
}
|
|
};
|
|
|
|
#endregion
|
|
|
|
var dt =EnvironmentFacade.ReportEnvironment.Immobiliare.ImmobiliareCEUnica ? DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_Immobiliare_S8_DettaglioImmobiliAnomalieCatastali", parametri)
|
|
: DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_Immobiliare_S8_DettaglioImmobiliAnomalieCatastali", parametri);
|
|
|
|
|
|
//Riaggregazione
|
|
var query = (from p in dt.AsEnumerable()
|
|
group p by p.Field<string>("IdImmobileCatasto") into g
|
|
select new
|
|
{
|
|
IdImmobileCatasto = g.Key,
|
|
Descrizione = g.Select(x => x.Field<string>("Descrizione")).FirstOrDefault(),
|
|
ValoreStimato = g.Select(x => x.Field<decimal>("ValoreStimato")).FirstOrDefault(),
|
|
AnomalieRilevate = string.Join("<BR><BR>", g.Select(x => x.Field<string>("AnomalieRilevate")))
|
|
}).ToList();
|
|
|
|
|
|
var dtResult = dt.Clone();
|
|
|
|
foreach (var item in query)
|
|
dtResult.Rows.Add(item.IdImmobileCatasto, item.Descrizione, item.ValoreStimato, string.Empty, item.AnomalieRilevate);
|
|
|
|
|
|
return dtResult;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera i dati necessari alla Section restituendo un DataSet.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
protected sealed override DataSet GetDataSet()
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
}
|