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 { /// /// Implementazione dell'oggetto P13_A. Questo oggetto è verrà stampato per il TipoOperazione = NS (Nuova Sottoscrizione). /// /// /// 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); } } /// /// Disegna l'oggetto P13_A /// 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 } /// /// Recupera i dati necessari alla Section restituendo un DataTable. /// /// protected sealed override DataTable GetDataTable() { return null; } /// /// Recupera i dati necessari alla Section restituendo un DataSet. /// /// protected sealed override DataSet GetDataSet() { var parametri = new List(); #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); } } }