using System; using System.Collections.Generic; using System.Data; using Consulenza.ReportWriter.Business.OBJ_PDF; using Consulenza.ReportCommon; using Consulenza.ReportWriter.Business; namespace Consulenza.ReportWriter.Manager.Section.Base.Proposta { public class P6 : Entity.Section { public P6(EnvironmentFacade environmentFacade, int idSection) : base(environmentFacade, idSection) { try { Draw(); } catch (Exception ex) { SectionLogger.Write("P6", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment); } } /// /// Disegna l'oggetto P6 /// protected override sealed void Draw() { var dtP6 = GetDataTable(); if (dtP6.Rows.Count <= 0) return; decimal totaleControvaloreAttuale = Convert.ToDecimal(dtP6.Compute("Sum(Ctv_Attuale)", string.Empty)); decimal totaleControvaloreProspettico = Convert.ToDecimal(dtP6.Compute("Sum(Ctv_Prospettico)", string.Empty)); var tabella = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dtP6) { ID = "Tabella_P6" }; tabella.Columns.Add(new ColumnPDF("SavingMap", 15, HorizontalAlignmentType.Sinistra, false, false, 6, ColumnType.Immagine, "SavingMap", string.Empty) { DeltaYContent = 6, ScaleColumnTypeImage = 0.60F }); tabella.Columns.Add(new ColumnPDF("NomeProdotto", 208, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "NomeProdotto", "Nome prodotto")); tabella.Columns.Add(new ColumnPDF("Ctv_Attuale", 150, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "Ctv_Attuale", "Controvalore attuale (€)")); tabella.Columns.Add(new ColumnPDF("Ctv_Prospettico", 150, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "Ctv_Prospettico", "Controvalore prospettico (€)")); tabella.TitleRow = true; if (EnvironmentFacade.ReportEnvironment.Proposta.EsitoAdeguatezza == TipologiaEsitoAdeguatezza.Adeguata) tabella.TitleRowText = "PRODOTTI SU CUI NON SONO STATE FORMULATE PROPOSTE DI INVESTIMENTO: " + Helper.FormatCurrency(totaleControvaloreAttuale.ToString()) + " €"; else tabella.TitleRowText = "PRODOTTI DEL SUO PORTAFOGLIO IN RELAZIONE AI QUALI NON SONO STATE RICHIESTE OPERAZIONI: " + Helper.FormatCurrency(totaleControvaloreAttuale.ToString()) + " €"; // Footer tabella.FooterColumns.Add(new ColumnPDF("", 10, HorizontalAlignmentType.Sinistra, false, true, 8, ColumnType.Testo)); tabella.FooterColumns.Add(new ColumnPDF("Totale", 213, HorizontalAlignmentType.Sinistra, false, true, 8, ColumnType.Testo)); tabella.FooterColumns.Add(new ColumnPDF("Totale Controvalore Attuale", 150, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Decimale)); tabella.FooterColumns.Add(new ColumnPDF("Totale Controvalore Prospettico", 150, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Decimale)); tabella.FooterCells[0, 0].Value = ""; tabella.FooterCells[1, 0].Value = "Totale"; tabella.FooterCells[2, 0].Value = totaleControvaloreAttuale.ToString(); tabella.FooterCells[3, 0].Value = totaleControvaloreProspettico.ToString(); //tabella.FooterColumns.Add(new ColumnPDF("Totale", 223, HorizontalAlignmentType.Sinistra, false, true, 8, ColumnType.Testo)); //tabella.FooterColumns.Add(new ColumnPDF("Totale Controvalore Attuale", 150, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Decimale)); //tabella.FooterColumns.Add(new ColumnPDF("Totale Controvalore Prospettico", 150, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Decimale)); //tabella.FooterCells[0, 0].Value = "Totale"; //tabella.FooterCells[1, 0].Value = totaleControvaloreAttuale.ToString(); //tabella.FooterCells[2, 0].Value = totaleControvaloreProspettico.ToString(); AddElement(tabella); AddElement(new SpacePDF(20)); } /// /// Recupera i dati necessari alla Section restituendo un DataTable. /// /// protected sealed override DataTable GetDataTable() { var parametri = new List(); #region Definizione dei parametri var parametro = new Parametro { Direction = ParameterDirection.Input, DbType = DbType.Int64, ParameterName = "chiaveClientePB", Value = EnvironmentFacade.ReportEnvironment.Cliente.Chiave }; parametri.Add(parametro); parametro = new Parametro { Direction = ParameterDirection.Input, DbType = DbType.Int32, ParameterName = "chiaveProposta", Value = EnvironmentFacade.ReportEnvironment.Proposta.Chiave }; parametri.Add(parametro); #endregion return EnvironmentFacade.ReportEnvironment.Proposta.PropostaCBUnica ? DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_Prop_P6", parametri) : DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaBase, "REP_Prop_P6", parametri); } /// /// Recupera i dati necessari alla Section restituendo un DataSet. /// /// protected sealed override DataSet GetDataSet() { return null; } } }