219 lines
12 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 P13_A : Entity.Section
{
/// <summary>
/// Implementazione dell'oggetto P13_A. Questo oggetto è verrà stampato per il TipoOperazione = NS (Nuova Sottoscrizione).
/// </summary>
/// <param name="environmentFacade"></param>
/// <param name="idSection"></param>
public P13_A(EnvironmentFacade environmentFacade, int idSection)
: base(environmentFacade, idSection)
{
try
{
Draw();
}
catch (Exception ex)
{
SectionLogger.Write("P13_A", ex.Message, SectionLoggerMessageLevel.E, base.EnvironmentFacade.ReportEnvironment);
}
}
/// <summary>
/// Disegna l'oggetto P13_A
/// </summary>
protected override sealed void Draw()
{
var dsP13 = GetDataSet();
#region P13 per prodotti KE
DataTable dtTabellaRiepilogo_KE = dsP13.Tables[0];
DataRow[] rowsTabellaRiepilogo_KE = dtTabellaRiepilogo_KE.Select("TipoOperazione='NS' and CodInterno='KE'");
DataView viewTabellaDati_KE = dsP13.Tables[1].DefaultView;
viewTabellaDati_KE.RowFilter = "codTipoOperazione='NS' and CodInterno='KE'";
DataTable dtTabellaDati_KE = viewTabellaDati_KE.ToTable();
if (rowsTabellaRiepilogo_KE.Length > 0)
{
if (dtTabellaDati_KE.Rows.Count > 0)
{
#region Tabella Riepilogo KE
TablePDF tabellaSubtitle_KE = new TablePDF(base.EnvironmentFacade.RendererFacade.XLeftLimit, 3, 2);
tabellaSubtitle_KE.Columns.Add(new ColumnPDF("", 174, HorizontalAlignmentType.Sinistra, false, true, 8, ColumnType.Testo));
tabellaSubtitle_KE.Columns.Add(new ColumnPDF("", 174, HorizontalAlignmentType.Sinistra, false, true, 8, ColumnType.Testo));
tabellaSubtitle_KE.Columns.Add(new ColumnPDF("", 174, HorizontalAlignmentType.Sinistra, false, true, 8, ColumnType.Testo));
tabellaSubtitle_KE.Header = false;
tabellaSubtitle_KE.Footer = false;
tabellaSubtitle_KE.AlternateRow = false;
tabellaSubtitle_KE.ID = "tabellaSubtitle_P13_A_KE";
tabellaSubtitle_KE.Cells[0, 0].Value = "Frequenza switch: " + rowsTabellaRiepilogo_KE[0]["FrequenzaSwitch"].ToString();
tabellaSubtitle_KE.Cells[1, 0].Value = "Durata programma: " + rowsTabellaRiepilogo_KE[0]["DurataProgramma"].ToString();
tabellaSubtitle_KE.Cells[2, 0].Value = "Importo programma: " + Helper.FormatCurrency(rowsTabellaRiepilogo_KE[0]["ImportoProgramma"].ToString());
tabellaSubtitle_KE.Cells[0, 1].Value = "Investimento iniziale: " + rowsTabellaRiepilogo_KE[0]["InvestimentoIniziale"].ToString();
tabellaSubtitle_KE.Cells[0, 1].ColSpan = 3;
#endregion
#region Tabella Dati KE
decimal totaleControvaloreAttuale = Convert.ToDecimal(dtTabellaDati_KE.Compute("Sum(ControvaloreAttuale)", string.Empty));
decimal totaleControvaloreProspettico = Convert.ToDecimal(dtTabellaDati_KE.Compute("Sum(ControvaloreProspettico)", string.Empty));
TablePDF tabella_KE = new TablePDF(base.EnvironmentFacade.RendererFacade.XLeftLimit, dtTabellaDati_KE);
tabella_KE.ID = "Tabella_P13_A_KE";
tabella_KE.SubTitleTable = tabellaSubtitle_KE;
tabella_KE.TitleRowSpace = 5;
tabella_KE.TitleRow = true;
tabella_KE.TitleRowText = "NUOVA SOTTOSCRIZIONE DI IN PERSONA CON PROGRAMMA PERIODICO DI INVESTIMENTO";
tabella_KE.Columns.Add(new ColumnPDF("NomeProdotto", 223, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "NomeProdotto", "Nome prodotto"));
tabella_KE.Columns.Add(new ColumnPDF("ControvaloreAttuale", 150, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "ControvaloreAttuale", "Controvalore attuale (€)"));
tabella_KE.Columns.Add(new ColumnPDF("ControvaloreProspettico", 150, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "ControvaloreProspettico", "Controvalore prospettico (€)"));
// Footer
tabella_KE.FooterColumns.Add(new ColumnPDF("Totale", 223, HorizontalAlignmentType.Sinistra, false, true, 8, ColumnType.Testo));
tabella_KE.FooterColumns.Add(new ColumnPDF("TotaleControvaloreAttuale", 150, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Decimale));
tabella_KE.FooterColumns.Add(new ColumnPDF("TotaleControvaloreProspettico", 150, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Decimale));
tabella_KE.FooterCells[0, 0].Value = "Totale";
tabella_KE.FooterCells[1, 0].Value = totaleControvaloreAttuale.ToString();
tabella_KE.FooterCells[2, 0].Value = totaleControvaloreProspettico.ToString();
#endregion
base.AddElement(tabella_KE);
base.AddElement(new SpacePDF(20));
}
}
#endregion
#region P13 per prodotti KS
DataTable dtTabellaRiepilogo_KS = dsP13.Tables[0];
DataRow[] rowsTabellaRiepilogo_KS = dtTabellaRiepilogo_KE.Select("TipoOperazione='NS' and CodInterno='KS'");
DataView viewTabellaDati_KS = dsP13.Tables[1].DefaultView;
viewTabellaDati_KS.RowFilter = "codTipoOperazione='NS' and CodInterno='KS'";
DataTable dtTabellaDati_KS = viewTabellaDati_KS.ToTable();
if (rowsTabellaRiepilogo_KS.Length > 0)
{
if (dtTabellaDati_KS.Rows.Count > 0)
{
#region Tabella Riepilogo KS
TablePDF tabellaSubtitle_KS = new TablePDF(base.EnvironmentFacade.RendererFacade.XLeftLimit, 3, 2);
tabellaSubtitle_KS.Columns.Add(new ColumnPDF("", 174, HorizontalAlignmentType.Sinistra, false, true, 8, ColumnType.Testo));
tabellaSubtitle_KS.Columns.Add(new ColumnPDF("", 174, HorizontalAlignmentType.Sinistra, false, true, 8, ColumnType.Testo));
tabellaSubtitle_KS.Columns.Add(new ColumnPDF("", 174, HorizontalAlignmentType.Sinistra, false, true, 8, ColumnType.Testo));
tabellaSubtitle_KS.Header = false;
tabellaSubtitle_KS.Footer = false;
tabellaSubtitle_KS.AlternateRow = false;
tabellaSubtitle_KS.ID = "tabellaSubtitle_P13_A_KS";
tabellaSubtitle_KS.Cells[0, 0].Value = "Frequenza switch: " + rowsTabellaRiepilogo_KS[0]["FrequenzaSwitch"].ToString();
tabellaSubtitle_KS.Cells[1, 0].Value = "Durata programma: " + rowsTabellaRiepilogo_KS[0]["DurataProgramma"].ToString();
tabellaSubtitle_KS.Cells[2, 0].Value = "Importo programma: " + Helper.FormatCurrency(rowsTabellaRiepilogo_KS[0]["ImportoProgramma"].ToString());
tabellaSubtitle_KS.Cells[0, 1].Value = "Investimento iniziale: " + rowsTabellaRiepilogo_KS[0]["InvestimentoIniziale"].ToString();
tabellaSubtitle_KS.Cells[0, 1].ColSpan = 3;
#endregion
#region Tabella Dati KS
decimal totaleControvaloreAttuale = Convert.ToDecimal(dtTabellaDati_KS.Compute("Sum(ControvaloreAttuale)", string.Empty));
decimal totaleControvaloreProspettico = Convert.ToDecimal(dtTabellaDati_KS.Compute("Sum(ControvaloreProspettico)", string.Empty));
TablePDF tabella_KS = new TablePDF(base.EnvironmentFacade.RendererFacade.XLeftLimit, dtTabellaDati_KS);
tabella_KS.ID = "Tabella_P13_A_KS";
tabella_KS.SubTitleTable = tabellaSubtitle_KS;
tabella_KS.TitleRowSpace = 5;
tabella_KS.TitleRow = true;
tabella_KS.TitleRowText = "NUOVA SOTTOSCRIZIONE DI IN PRIMA PERSONA CON PROGRAMMA PERIODICO DI INVESTIMENTO";
tabella_KS.Columns.Add(new ColumnPDF("NomeProdotto", 223, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "NomeProdotto", "Nome prodotto"));
tabella_KS.Columns.Add(new ColumnPDF("ControvaloreAttuale", 150, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "ControvaloreAttuale", "Controvalore attuale (€)"));
tabella_KS.Columns.Add(new ColumnPDF("ControvaloreProspettico", 150, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "ControvaloreProspettico", "Controvalore prospettico (€)"));
// Footer
tabella_KS.FooterColumns.Add(new ColumnPDF("Totale", 223, HorizontalAlignmentType.Sinistra, false, true, 8, ColumnType.Testo));
tabella_KS.FooterColumns.Add(new ColumnPDF("TotaleControvaloreAttuale", 150, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Decimale));
tabella_KS.FooterColumns.Add(new ColumnPDF("TotaleControvaloreProspettico", 150, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Decimale));
tabella_KS.FooterCells[0, 0].Value = "Totale";
tabella_KS.FooterCells[1, 0].Value = totaleControvaloreAttuale.ToString();
tabella_KS.FooterCells[2, 0].Value = totaleControvaloreProspettico.ToString();
#endregion
base.AddElement(tabella_KS);
base.AddElement(new SpacePDF(20));
}
}
#endregion
}
/// <summary>
/// Recupera i dati necessari alla Section restituendo un DataTable.
/// </summary>
/// <returns></returns>
protected sealed override DataTable GetDataTable()
{
return null;
}
/// <summary>
/// Recupera i dati necessari alla Section restituendo un DataSet.
/// </summary>
/// <returns></returns>
protected sealed override DataSet GetDataSet()
{
var parametri = new List<Parametro>();
#region Definizione dei parametri
var parametro = new Parametro
{
Direction = System.Data.ParameterDirection.Input,
DbType = System.Data.DbType.Int64,
ParameterName = "chiaveClientePB",
Value = base.EnvironmentFacade.ReportEnvironment.Cliente.Chiave
};
parametri.Add(parametro);
parametro = new Parametro
{
Direction = System.Data.ParameterDirection.Input,
DbType = System.Data.DbType.Int32,
ParameterName = "chiaveProposta",
Value = base.EnvironmentFacade.ReportEnvironment.Proposta.Chiave
};
parametri.Add(parametro);
#endregion
return EnvironmentFacade.ReportEnvironment.Proposta.PropostaCBUnica ? DataAccess.ExecuteDataSetStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_Prop_P13", parametri)
: DataAccess.ExecuteDataSetStoredProcedure(DBProvider.SqlServerConsulenzaBase, "REP_Prop_P13", parametri);
}
}
}