119 lines
5.7 KiB
C#

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);
}
}
/// <summary>
/// Disegna l'oggetto P6
/// </summary>
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));
}
/// <summary>
/// Recupera i dati necessari alla Section restituendo un DataTable.
/// </summary>
/// <returns></returns>
protected sealed override DataTable GetDataTable()
{
var parametri = new List<Parametro>();
#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);
}
/// <summary>
/// Recupera i dati necessari alla Section restituendo un DataSet.
/// </summary>
/// <returns></returns>
protected sealed override DataSet GetDataSet()
{
return null;
}
}
}