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; using Consulenza.ReportWriter.Business.Headers; namespace Consulenza.ReportWriter.Manager.Section.Immobiliare.MonitoraggioNucleo { /// /// Scheda 21 /// public class S21 : Entity.Section { public S21(EnvironmentFacade environmentFacade, int idSection) : base(environmentFacade, idSection) { try { Draw(); } catch (Exception ex) { SectionLogger.Write("S21", 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() { // OLD CODE - ES 21.08.2017 //var dataset = GetDataSet(); //FormattedTextAreaPDF testoPagina = null; //foreach (DataTable table in dataset.Tables) //{ // if (table != null && table.Rows.Count > 0) // { // AddElement(new SpacePDF(55)); // testoPagina = new FormattedTextAreaPDF("Di seguito si rappresenta l'elenco degli immobili con finalità non specificata.", 35) { FontSize = 6, FontColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, AutoIncrementYWritable = true, Width = 740, FixedHeight = 20 }; // var listaOggettiDaRipetere = new List { new SpacePDF(55), testoPagina, new SpacePDF(10) }; // AddElement(new RepeaterPDF(listaOggettiDaRipetere)); // TablePDF tablePDF = new TablePDF(35, table) // { // Style = Style.Immobiliare, // AlternateRow = false, // HeaderHeight = 25, // Footer = false, // PageBreak = true, // ShowBorderLastLine = true // }; // tablePDF.Columns.Add(new ColumnPDF("descrizione", 340, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "descrizione", "Immobili con finalità non specificata") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1 }); // tablePDF.Columns.Add(new ColumnPDF("codTipologiaCatasto", 60, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "codTipologiaCatasto", "Categoria
catastale") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1 }); // tablePDF.Columns.Add(new ColumnPDF("superficie", 60, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "superficie", "Superficie
Stimata") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1 }); // tablePDF.Columns.Add(new ColumnPDF("codTipologiaCatasto", 60, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "renditaCatastale", "Rendita
catastale*") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1 }); // tablePDF.Columns.Add(new ColumnPDF("ProQuota", 100, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "ProQuota", "Valore stimato
pro quota (€)") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1 }); // tablePDF.Columns.Add(new ColumnPDF("valoreImmobileTotale", 100, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "valoreImmobileTotale", "Valore stimato
totale (€)") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1 }); // AddElement(tablePDF); // } //} var dataset = GetDataSet(); FormattedTextAreaPDF testoPagina = null; FormattedTextAreaPDF notaTabella = null; DataTable table = dataset.Tables[0]; if (table != null && table.Rows.Count > 0) { testoPagina = new FormattedTextAreaPDF(getTesto1(), 35) { FontSize = 10, FontColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, AutoIncrementYWritable = true, Width = 740 }; notaTabella = new FormattedTextAreaPDF("Nota(*): Il \"Reddito dominicale\" dei terreni è esposto nella colonna \"Rendita catastale\".
", 60, 680) { AutoIncrementYWritable = false, Y = EnvironmentFacade.RendererFacade.YLowerLimit - 23, FontSize = 6, FontColor = ColorPDF.Nero, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, DeltaX = 5, DeltaY = 5 }; var listaOggettiDaRipetere = new List { new SpacePDF(30), testoPagina, new SpacePDF(25), notaTabella }; AddElement(listaOggettiDaRipetere); AddElement(new RepeaterPDF(listaOggettiDaRipetere)); TablePDF tablePDF = new TablePDF(35, table) { Style = Style.Immobiliare, AlternateRow = false, HeaderHeight = 25, Footer = false, PageBreak = true, ShowBorderLastLine = true, DrawLineHeaderUP = false, HeaderTextDrawJustOnce = false, }; var lineaVerticaleSeparazione = new LinePDF(tablePDF.X, tablePDF.X + 720, 0.5F, ColorPDF.Immobiliare_Grigio_TitoloPiccolo) { AutoIncrementYWritable = false, DeltaY = -15 }; tablePDF.HeaderNoteObjects.Add(lineaVerticaleSeparazione); tablePDF.HeaderNoteObjects.Add(new FormattedTextAreaPDF("Semestre precedente", tablePDF.X + 445, 105) { TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Center, FontBold = true, DeltaY = -10, AutoIncrementYWritable = false, }); tablePDF.HeaderNoteObjects.Add(new LinePDF(tablePDF.X + 445, tablePDF.X + 555) { DeltaY = 2, AutoIncrementYWritable = false, Color = new ColorPDF(0, 0, 0) }); tablePDF.HeaderNoteObjects.Add(new FormattedTextAreaPDF("Semestre attuale", tablePDF.X + 600, 120) { TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Center, FontBold = true, DeltaY = -10, AutoIncrementYWritable = false, }); tablePDF.HeaderNoteObjects.Add(new LinePDF(tablePDF.X + 600, tablePDF.X + 720) { DeltaY = 2, AutoIncrementYWritable = false, Color = new ColorPDF(0, 0, 0) }); tablePDF.Columns.Add(new ColumnPDF("descrizione", 300, HorizontalAlignmentType.Sinistra, false, false, 8, ColumnType.Testo, "colonnaImmobili", "Immobili") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 2 }); tablePDF.Columns.Add(new ColumnPDF("renditacatastale", 100, HorizontalAlignmentType.Destra, false, false, 8, ColumnType.Testo, "rendita", "Rendita catastale*") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 2 }); tablePDF.Columns.Add(new ColumnPDF("tipologiaprecedente", 100, HorizontalAlignmentType.Destra, false, false, 8, ColumnType.Testo, "Tipologiastorico", "Tipologia diritto") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 2 }); tablePDF.Columns.Add(new ColumnPDF("quotaprecedente", 60, HorizontalAlignmentType.Destra, false, false, 8, ColumnType.Testo, "quotaStorico", "Quota") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 2 }); tablePDF.Columns.Add(new ColumnPDF("tipologiaattuale", 100, HorizontalAlignmentType.Destra, false, false, 8, ColumnType.Testo, "tipologiaAttuale", "Tipologia diritto") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 2 }); tablePDF.Columns.Add(new ColumnPDF("quotaattuale", 60, HorizontalAlignmentType.Destra, false, false, 8, ColumnType.Testo, "quotaAttuale", "Quota") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 2 }); for (int k = 0; k < table.Rows.Count; k++) { //tablePDF.Cells[3, k].Value = Helper.FormatPercentage(Convert.ToDecimal(table.Rows[k].Field("quotaStorico")) * 100, 1); //tablePDF.Cells[5, k].Value = Helper.FormatPercentage(Convert.ToDecimal(table.Rows[k].Field("quotaAttuale")) * 100, 1); tablePDF.Cells[3, k].Value = Helper.FormatPercentage(Convert.ToDecimal(table.Rows[k].Field("quotaStorico")), 1); tablePDF.Cells[5, k].Value = Helper.FormatPercentage(Convert.ToDecimal(table.Rows[k].Field("quotaAttuale")), 1); if (table.Rows[k].Field("rendita").Equals("") || Convert.ToDecimal(table.Rows[k].Field("rendita")) == 0) tablePDF.Cells[1, k].Value = "-"; else tablePDF.Cells[1, k].Value = Helper.FormatCurrency(Convert.ToDecimal(table.Rows[k].Field("rendita")).ToString()); } DataTable header = new DataTable(); header.Columns.Add("space"); header.Columns.Add("semestrePrecedente"); header.Columns.Add("semestreAttuale"); header.Rows.Add("", "Semestre precedente", "Semestre attuale"); var tableHeader = new TablePDF(35, header) { Style = Style.Immobiliare, AlternateRow = false, Header = false, Footer = false, ShowBorderLastLine = false, DrawLineHeaderUP = false, HideFirstSeparationLine = true, IndexesOfRowLinesToIgnoreSeparators = new List() { 1 } }; tableHeader.Columns.Add(new ColumnPDF("space", tablePDF.Columns[0].Width + tablePDF.Columns[1].Width + 20, HorizontalAlignmentType.Centrato, false, true, 8, ColumnType.Testo, "space", "") { DeltaYContent = 2 }); tableHeader.Columns.Add(new ColumnPDF("semestrePrecedente", tablePDF.Columns[2].Width + tablePDF.Columns[3].Width - 10, HorizontalAlignmentType.Centrato, false, true, 8, ColumnType.Testo, "semestrePrecedente", "") { DeltaYContent = 2, PaddingLeft = 10 }); tableHeader.Columns.Add(new ColumnPDF("semestreAttuale", tablePDF.Columns[4].Width + tablePDF.Columns[5].Width - 10, HorizontalAlignmentType.Centrato, false, true, 8, ColumnType.Testo, "semestreAttuale", "") { DeltaYContent = 2, PaddingLeft = 10 }); AddElement(tablePDF); } } public string getTesto1() { return "Di seguito si rappresenta l'elenco degli immobili per i quali, rispetto al semestre precedente, sono intervenute " + "variazioni nelle quote o nelle tipologie di diritto registrate all'Agenzia delle Entrate."; } /// /// Recupera i dati necessari alla Section restituendo un DataTable. /// /// protected override DataTable GetDataTable() { return null; } /// /// Recupera i dati necessari alla Section restituendo un DataSet. /// /// protected override DataSet GetDataSet() { // OLD CODE - ES 21.08.2017 // DataSet data = new DataSet(); // data.Tables.Add(new DataTable("1")); // U // data.Tables.Add(new DataTable("2")); // S // data.Tables.Add(new DataTable("3")); // I // data.Tables.Add(new DataTable("4")); // NS // #region Definizione dei parametri // var parametri = new List // { // new Parametro // { // Direction = ParameterDirection.Input, // DbType = DbType.Int64, // ParameterName = "ChiaveNucleo", // Value = EnvironmentFacade.ReportEnvironment.Cliente.Chiave // } // }; // #endregion // var dsOriginal = DataAccess.ExecuteDataSetStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_ImmobiliareMonitoraggio_S_ImmobiliStoricoDirittoQuoteNucleo", parametri); // if (dsOriginal.Tables[0].Rows.Count == 0) // return null; // List indiciPagina = dsOriginal.Tables[0].AsEnumerable() // .Select(z => z.Field("NomeCliente") +"$"+z.Field("CognomeCliente")).Distinct().ToList(); // DataTable copyDataTable = dsOriginal.Tables[0].AsEnumerable().Where(x => x.Field("ordinamento") == 4).CopyToDataTable(); // var name = copyDataTable.Rows[0]["ordinamento"]; // data.Tables[name.ToString()].Merge(copyDataTable); // return data; DataSet data = new DataSet(); data.Tables.Add(new DataTable("quote")); // U #region Definizione dei parametri var parametri = new List { new Parametro { Direction = ParameterDirection.Input, DbType = DbType.Int64, ParameterName = "ChiaveNucleo", Value = EnvironmentFacade.ReportEnvironment.NucleoImmobiliare.ChiaveNucleo } }; #endregion var dsOriginal = DataAccess.ExecuteDataSetStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_ImmobiliareMonitoraggio_S_ImmobiliStoricoDirittoQuoteNucleo", parametri); if (dsOriginal.Tables[0].Rows.Count == 0) return null; DataTable dtCloned = dsOriginal.Tables[0].Clone(); dtCloned.Columns[0].DataType = typeof(Int32); for (int i = 0; i < dsOriginal.Tables[0].Columns.Count; i++) dtCloned.Columns[i].DataType = typeof(string); for (int row = 0; row < dsOriginal.Tables[0].Rows.Count; row++) { object[] array = new object[dsOriginal.Tables[0].Columns.Count]; for (int column = 0; column < dsOriginal.Tables[0].Columns.Count; column++) array[column] = dsOriginal.Tables[0].Rows[row][column].ToString(); dtCloned.Rows.Add(array); } data.Tables["quote"].Merge(dtCloned); return data; } } }