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); } } /// /// Disegna l'oggetto P5 /// 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()) + " €


" + "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
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
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 } /// /// 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.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); } /// /// Recupera i dati necessari alla Section restituendo un DataTable. /// /// protected DataTable GetDataTableCP() { var parametri = new List(); #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); } /// /// Recupera i dati necessari alla Section restituendo un DataSet. /// /// protected sealed override DataSet GetDataSet() { return null; } } }