215 lines
12 KiB
C#
215 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;
|
|
using System.Linq;
|
|
|
|
namespace Consulenza.ReportWriter.Manager.Section.Base.Proposta
|
|
{
|
|
public class P5 : Entity.Section
|
|
{
|
|
public P5(EnvironmentFacade environmentFacade, int idSection)
|
|
: base(environmentFacade, idSection)
|
|
{
|
|
try
|
|
{
|
|
Draw();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SectionLogger.Write("P5", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Disegna l'oggetto P5
|
|
/// </summary>
|
|
protected override sealed void Draw()
|
|
{
|
|
var dtP5 = GetDataTable();
|
|
var testi = GetText();
|
|
|
|
if (dtP5.Rows.Count > 0)
|
|
{
|
|
|
|
var totaleControvaloreAttuale = Convert.ToDecimal(dtP5.Compute("Sum(Ctv_Attuale)", string.Empty));
|
|
var totaleControvaloreProspettico = Convert.ToDecimal(dtP5.Compute("Sum(Ctv_Prospettico)", string.Empty));
|
|
var totaleLiquidazioni = totaleControvaloreAttuale - totaleControvaloreProspettico;
|
|
|
|
var tabella = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dtP5) { ID = "Tabella_P5" };
|
|
tabella.Columns.Add(new ColumnPDF("NomeProdotto", 223, 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;
|
|
tabella.TitleRowText = "LIQUIDAZIONI: " + Helper.FormatCurrency(totaleLiquidazioni.ToString()) + " €";
|
|
|
|
#region Note Linea Protetta (AssetNoRischio)
|
|
|
|
var dtP5AssetNoRischio = dtP5.Select("flag_tipocontratto = 1");
|
|
var presenzaNotaAssetNoRischio = dtP5AssetNoRischio.Any();
|
|
|
|
if (presenzaNotaAssetNoRischio)
|
|
{
|
|
var nomeLinea = string.Join(", ", (from DataRow row in dtP5AssetNoRischio select row["nomelinea"]).Distinct());
|
|
var testoNota = testi.Rows[0]["testo1"].ToString().Replace("@NomeLinea", nomeLinea);
|
|
|
|
var campiAsterisco = new[] { "NomeProdotto" }; // campi del datasource su cui aggiungere gli asterischi di rimando alla note.
|
|
|
|
var notaAssetNoRischio = new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella, testoNota, campiAsterisco, "flag_tipocontratto=1");
|
|
tabella.Notes.Add(notaAssetNoRischio);
|
|
}
|
|
|
|
#endregion
|
|
|
|
// Footer
|
|
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));
|
|
}
|
|
#region CP
|
|
var dtP3CP = GetDataTableCP();
|
|
var testiCP = GetText();
|
|
|
|
if (dtP3CP.Rows.Count <= 0) return;
|
|
|
|
var totaleControvaloreAttualeCP = Convert.ToDecimal(dtP3CP.Compute("Sum(ControvaloreSottoscrizione)", string.Empty));
|
|
var totaleControvaloreProspetticoCP = Convert.ToDecimal(dtP3CP.Compute("Sum(ControvaloreProposto)", string.Empty));
|
|
var totaleConversioneProgrammata = Convert.ToDecimal(dtP3CP.Compute("Sum(importoConversioneProgrammata)", string.Empty));
|
|
var totaleRata = Convert.ToDecimal(dtP3CP.Compute("Sum(importoRata)", string.Empty));
|
|
//520
|
|
var totaleConversioneProgrammataInUscita = 0.0;
|
|
Decimal importo = 0;
|
|
string tipologiaCP = "Totale";
|
|
string durata = "";
|
|
foreach (DataRow riga in dtP3CP.Rows)
|
|
{
|
|
if (Convert.ToDouble(riga["importoConversioneProgrammata"]) < 0.0)
|
|
{
|
|
//prendo solo la posizione in uscita CP
|
|
totaleConversioneProgrammataInUscita = Convert.ToDouble(riga["importoConversioneProgrammata"]) * (-1);
|
|
if (Convert.ToDouble(riga["controvaloreProposto"]) != 0)
|
|
{
|
|
tipologiaCP = "Parziale";
|
|
}
|
|
importo = (-1) * Convert.ToDecimal(riga["importoConversioneProgrammata"]);
|
|
durata = riga["durata"] + " Mesi";
|
|
}
|
|
}
|
|
String titolo = "SERVIZIO STEP UP: " + Helper.FormatCurrency(importo.ToString()) + " € <br><br><br>" + "Tipologia Step Up: " + tipologiaCP + " Importo Step Up (€): " + Helper.FormatCurrency(importo.ToString()) + " Durata: " + durata;
|
|
var tabellaCP = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dtP3CP);
|
|
tabellaCP.Columns.Add(new ColumnPDF("NomeProdotto", 166, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "NomeProdotto", "Nome prodotto"));
|
|
tabellaCP.Columns.Add(new ColumnPDF("ConversioneProgrammata", 29, HorizontalAlignmentType.Destra, false, false, 6, ColumnType.Immagine, "ConversioneProgrammata", string.Empty) { DeltaYContent = 6, ScaleColumnTypeImage = 0.60F });
|
|
tabellaCP.Columns.Add(new ColumnPDF("ControvaloreSottoscrizione", 85, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "ControvaloreSottoscrizione", "Controvalore Attuale (€)"));
|
|
tabellaCP.Columns.Add(new ColumnPDF("ImportoConversioneProgrammata", 85, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "importoConversioneProgrammata", "Servizio Step Up (€)"));
|
|
tabellaCP.Columns.Add(new ColumnPDF("Rata", 70, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "importoRata", "Rata (€)"));
|
|
tabellaCP.Columns.Add(new ColumnPDF("ControvaloreProposto", 85, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "controvaloreProposto", "Controvalore proposto (€)"));
|
|
tabellaCP.TitleRow = true;
|
|
tabellaCP.TitleRowText = titolo;
|
|
tabellaCP.TitleRowSpace = 40;
|
|
|
|
// Footer
|
|
tabellaCP.FooterColumns.Add(new ColumnPDF("Totale", 195, HorizontalAlignmentType.Sinistra, false, true, 8, ColumnType.Testo));
|
|
tabellaCP.FooterColumns.Add(new ColumnPDF("Totale Controvalore Sottoscrizione", 85, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Decimale));
|
|
tabellaCP.FooterColumns.Add(new ColumnPDF("Totale Controvalore CP", 85, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Decimale));
|
|
tabellaCP.FooterColumns.Add(new ColumnPDF("Totale Rata", 70, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Decimale));
|
|
tabellaCP.FooterColumns.Add(new ColumnPDF("Totale Controvalore Proposto", 85, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Decimale));
|
|
|
|
tabellaCP.FooterCells[0, 0].Value = "Totale";
|
|
tabellaCP.FooterCells[1, 0].Value = totaleControvaloreAttualeCP.ToString();
|
|
tabellaCP.FooterCells[2, 0].Value = totaleConversioneProgrammata.ToString();
|
|
tabellaCP.FooterCells[3, 0].Value = totaleRata.ToString();
|
|
tabellaCP.FooterCells[4, 0].Value = totaleControvaloreProspetticoCP.ToString();
|
|
|
|
tabellaCP.Notes.Add(
|
|
new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella,
|
|
"Prodotto con servizio Step Up attivo. Gli apporti indicati nella colonna \"Controvalore Proposto\" tengono in considerazione il versamento in fase di Sottoscrizione e gli <br>importi relativi allo Step Up in uscita.",
|
|
new[] { "" },
|
|
string.Empty,
|
|
TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella,
|
|
new ImagePDF(EnvironmentFacade.RendererFacade.XLeftLimit, 0.60F, "cpInUscita.png"))
|
|
{ FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left });
|
|
tabellaCP.Notes.Add(
|
|
new TableNotePDF(TableNotePDF.TableNotePositionType.PièDiTabella,
|
|
"Prodotto con servizio Step Up attivo. Gli apporti indicati nella colonna \"Controvalore Proposto\" tengono in considerazione il versamento in fase di Sottoscrizione e gli <br>importi relativi allo Step Up in entrata.",
|
|
new[] { "" },
|
|
string.Empty,
|
|
TableNotePDF.TableNoteAsteriskPositionType.PieDiTabella,
|
|
new ImagePDF(EnvironmentFacade.RendererFacade.XLeftLimit, 0.60F, "cpInEntrata.png"))
|
|
{ FontSize = 6, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Left });
|
|
|
|
AddElement(tabellaCP);
|
|
AddElement(new SpacePDF(20));
|
|
|
|
#endregion
|
|
|
|
}
|
|
|
|
/// <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.Int32,
|
|
ParameterName = "chiaveProposta",
|
|
Value = EnvironmentFacade.ReportEnvironment.Proposta.Chiave
|
|
};
|
|
parametri.Add(parametro);
|
|
|
|
#endregion
|
|
|
|
return EnvironmentFacade.ReportEnvironment.Proposta.PropostaCBUnica ? DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_Prop_P5", parametri)
|
|
: DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaBase, "REP_Prop_P5", parametri);
|
|
}
|
|
/// <summary>
|
|
/// Recupera i dati necessari alla Section restituendo un DataTable.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
protected DataTable GetDataTableCP()
|
|
{
|
|
var parametri = new List<Parametro>();
|
|
|
|
#region Definizione dei parametri
|
|
|
|
var 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_P4_CP", parametri)
|
|
: DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaBase, "REP_Prop_P4_CP", parametri);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera i dati necessari alla Section restituendo un DataSet.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
protected sealed override DataSet GetDataSet()
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
} |