using System;
using System.Collections.Generic;
using System.Linq;
using Consulenza.ExternalServices;
using Consulenza.ReportWriter.Business;
using Consulenza.ReportWriter.Business.OBJ_PDF;
using System.Data;
using Consulenza.ReportWriter.Business.CHART_PDF;
using Consulenza.ReportCommon;
using Consulenza.ReportWriter.Business.Entity;
using System.Text;
namespace Consulenza.ReportWriter.Manager.Section.Immobiliare.Monitoraggio
{
///
/// Scheda 22
///
public class S22 : Entity.Section
{
public S22(EnvironmentFacade environmentFacade, int idSection)
: base(environmentFacade, idSection)
{
try
{
Draw();
}
catch (Exception ex)
{
SectionLogger.Write("S22", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment);
}
}
///
/// Scheda2. Patrimonio immobiliare –Sintesi (distribuzione del patrimonio complessivo del cliente diviso per tipologia e cointestatari)
///
protected override sealed void Draw()
{
var data = GetDataTable();
FormattedTextAreaPDF testoPagina = null;
if (data.Rows.Count > 0)
{
testoPagina = new FormattedTextAreaPDF("Di seguito si riassumono le anomalie catastali rilevate.", 35) { FontSize = 10, FontColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, AutoIncrementYWritable = true, Width = 740, FixedHeight = 20 };
var listaOggettiDaRipetere = new List { new SpacePDF(30), testoPagina, new SpacePDF(10) };
AddElement(listaOggettiDaRipetere);
AddElement(new RepeaterPDF(listaOggettiDaRipetere));
/********************* Fix Dettaglio immobili – Anomalie catastali 27/08/2020 -- Pino *************************/
var tabella = new TablePDF(35, data)
{
Style = Style.Immobiliare,
Footer = false,
// Inserito il 24/04/2018 per spazio su prima riga
AdditionalSpaceBetweenHeadersAndTable = 7,
//
ShowBorderLastLine = true,
ShowSeparationLines = true
};
//var tabella = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, data)
//{
// Style = Style.Immobiliare,
// Footer = false,
// // Inserito il 24/04/2018 per spazio su prima riga
// AdditionalSpaceBetweenHeadersAndTable = 7,
// //
// ShowBorderLastLine = true,
// ShowSeparationLines = true
//};
/**************************************************************************************************************/
tabella.Columns.Add(new ColumnPDF("descrizione", 240, HorizontalAlignmentType.Sinistra, false, false, 8, ColumnType.Testo, "descrizione", "Descrizione") { FontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto, DeltaYContent= -5 });
tabella.Columns.Add(new ColumnPDF("valorestimato", 100, HorizontalAlignmentType.Destra, false, false, 8, ColumnType.Decimale, "valorestimato", "Valore stimato
totale (€)") { FontColor = ColorPDF.Nero, VerticalAlignment = VerticalAlignmentType.Alto, DeltaYContent = -5 });
tabella.Columns.Add(new ColumnPDF("SEP1", 20, HorizontalAlignmentType.Nonimpostato, false, false, 8, ColumnType.Testo, "sep1", string.Empty)); //Separatore
/********************* Fix Dettaglio immobili – Anomalie catastali 27/08/2020 -- Pino *************************/
tabella.Columns.Add(new ColumnPDF("anomalierilevate", 365, HorizontalAlignmentType.Sinistra, false, false, 8, ColumnType.Testo, "anomalierilevate", "Anomalie rilevate") { VerticalAlignment = VerticalAlignmentType.Alto, DeltaYContent = -5 });
//tabella.Columns.Add(new ColumnPDF("anomalierilevate", 395, HorizontalAlignmentType.Sinistra, false, false, 8, ColumnType.Testo, "anomalierilevate", "Anomalie rilevate") { VerticalAlignment = VerticalAlignmentType.Alto, DeltaYContent = -5 });
/**************************************************************************************************************/
//{
// HeaderBackgroundColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo,
// FontColor = ColorPDF.Nero,
// BackgroundColor = new ColorPDF(196, 196, 187)
//});
AddElement(tabella);
}
}
///
/// Recupera i dati necessari alla Section restituendo un DataTable.
///
///
protected override DataSet GetDataSet()
{
return null;
}
///
/// Recupera i dati necessari alla Section restituendo un DataSet.
///
///
protected override DataTable GetDataTable()
{
#region Definizione dei parametri
var parametri = new List
{
new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.Int64,
ParameterName = "ChiaveClientePB",
Value = EnvironmentFacade.ReportEnvironment.Cliente.Chiave
}
};
#endregion
var dt = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_Immobiliare_S8_DettaglioImmobiliAnomalieCatastali", parametri);
//Riaggregazione
var query = (from p in dt.AsEnumerable()
orderby p.Field("tipoImmobile") ascending, p.Field("ValoreStimato") descending
group p by p.Field("IdImmobileCatasto") into g
select new
{
IdImmobileCatasto = g.Key,
Descrizione = g.Select(x => x.Field("Descrizione")).FirstOrDefault(),
ValoreStimato = g.Select(x => x.Field("ValoreStimato")).FirstOrDefault(),
AnomalieRilevate = string.Join("
", g.Select(x => x.Field("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;
}
}
}