using System; using System.Collections.Generic; using Consulenza.ReportWriter.Business; using Consulenza.ReportWriter.Business.OBJ_PDF; using System.Data; using Consulenza.ReportWriter.Business.Entity; namespace Consulenza.ReportWriter.Manager.Section.Base.Proposta { public class P14 : Entity.Section { /// /// Implementazione dell'oggetto P14. Fondi Pensione. /// /// /// public P14(EnvironmentFacade environmentFacade, int idSection) : base(environmentFacade, idSection) { try { Draw(); } catch (Exception ex) { SectionLogger.Write("P14", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment); } } /// /// Disegna l'oggetto P14. /// protected override sealed void Draw() { var dsP14 = GetDataSet(); DataTable dtTabellaRiepilogo = dsP14.Tables[0]; DataTable dtTabellaDati = dsP14.Tables[1]; if (dtTabellaDati.Rows.Count <= 0) return; #region Lista oggetti per Riepilogo (subtitle della tabella) var sValore = string.Empty; var listaObj = new List(); #region etichetta1 var etichetta1 = new FormattedTextAreaPDF("Adesione con trasferimento da altra forma pensionistica:", EnvironmentFacade.RendererFacade.XLeftLimit, 250) { FontBold = true, AutoIncrementYWritable = false }; sValore = dtTabellaRiepilogo.Rows[0]["altraformapensionistica"] == DBNull.Value ? "No" : Convert.ToBoolean(dtTabellaRiepilogo.Rows[0]["altraformapensionistica"]) ? "Si" : "No"; var etichetta1_1 = new FormattedTextAreaPDF(sValore, 255, 50); #endregion #region etichetta2 var etichetta2 = new FormattedTextAreaPDF("Contributi programmati per la prestazione principale", EnvironmentFacade.RendererFacade.XLeftLimit, 512) { FontBold = true }; #endregion #region etichetta3 var etichetta3 = new FormattedTextAreaPDF("Contributo dell'Aderente:", EnvironmentFacade.RendererFacade.XLeftLimit, 130) { FontBold = true, AutoIncrementYWritable = false, FontSize = 7.5F }; sValore = dtTabellaRiepilogo.Rows[0]["contributoaderente"] == DBNull.Value ? "non previsto" : Convert.ToBoolean(dtTabellaRiepilogo.Rows[0]["contributoaderente"]) == false ? "non previsto" : string.Empty; if (sValore == string.Empty) { if (dtTabellaRiepilogo.Rows[0]["caimportoannuo"] != DBNull.Value) { sValore = string.Format("{0} Euro con rateazione {1}", Convert.ToDecimal(dtTabellaRiepilogo.Rows[0]["caimportoannuo"]).ToString("C"), DecodificaRateazione(dtTabellaRiepilogo.Rows[0]["carateazione"].ToString())); //"x.xxx,xx Euro con rateazione tipo rateazione"; } else { if (dtTabellaRiepilogo.Rows[0]["caperctfr"] != DBNull.Value) { sValore = string.Format("{0}% della retribuzione assunta per il calcolo del TFR con rateazione {1}", Convert.ToDecimal(dtTabellaRiepilogo.Rows[0]["caperctfr"]), DecodificaRateazione(dtTabellaRiepilogo.Rows[0]["carateazione"].ToString())); // "xxx,xx% della retribuzione assunta per il calcolo del TFR con rateazione tipo ratezione"; } else { if (dtTabellaRiepilogo.Rows[0]["capercirpef"] != DBNull.Value) { sValore = string.Format("{0}% del reddito di impresa o di lavoro autonomo dichiarato a fini IRPEF con rateazione {1}", Convert.ToDecimal(dtTabellaRiepilogo.Rows[0]["capercirpef"]), DecodificaRateazione(dtTabellaRiepilogo.Rows[0]["carateazione"].ToString())); // "xxx,xx% del reddito di impresa o di lavoro autonomo dichiarato a fini IRPEF con rateazione tipo rateazione"; } } } } var etichetta3_1 = new FormattedTextAreaPDF(sValore, 130, 500) { FontSize = 7.5F }; #endregion #region etichetta4 var etichetta4 = new FormattedTextAreaPDF("Contributo del Datore di Lavoro:", EnvironmentFacade.RendererFacade.XLeftLimit, 155) { FontBold = true, AutoIncrementYWritable = false, FontSize = 7.5F }; sValore = dtTabellaRiepilogo.Rows[0]["contributodatore"] == DBNull.Value ? "non previsto" : Convert.ToBoolean(dtTabellaRiepilogo.Rows[0]["contributodatore"]) == false ? "non previsto" : string.Empty; if (sValore == string.Empty) { if (dtTabellaRiepilogo.Rows[0]["cdimportoannuo"] != DBNull.Value) { sValore = string.Format("{0} Euro con rateazione {1}", Convert.ToDecimal(dtTabellaRiepilogo.Rows[0]["cdimportoannuo"]).ToString("C"), DecodificaRateazione(dtTabellaRiepilogo.Rows[0]["cdrateazione"].ToString())); // “x.xxx,xx Euro con rateazione tipo rateazione” } else { if (dtTabellaRiepilogo.Rows[0]["cdperctfr"] != DBNull.Value) { sValore = string.Format("{0}% della retribuzione assunta per il calcolo del TFR con rateazione {1}", Convert.ToDecimal(dtTabellaRiepilogo.Rows[0]["cdperctfr"]), DecodificaRateazione(dtTabellaRiepilogo.Rows[0]["cdrateazione"].ToString())); // - “xxx,xx% della retribuzione assunta per il calcolo del TFR con rateazione tipo ratezione } } } var etichetta4_1 = new FormattedTextAreaPDF(sValore, 155, 500) { FontSize = 7.5F }; #endregion #region etichetta5 var etichetta5 = new FormattedTextAreaPDF("Conferimento del TFR:", EnvironmentFacade.RendererFacade.XLeftLimit, 122) { FontBold = true, AutoIncrementYWritable = false, FontSize = 7.5F }; sValore = dtTabellaRiepilogo.Rows[0]["conferimentotfr"] == DBNull.Value ? "non previsto" : Convert.ToBoolean(dtTabellaRiepilogo.Rows[0]["conferimentotfr"]) == false ? "non previsto" : string.Empty; if (sValore == string.Empty) { sValore = string.Format("{0}% del TFR con rateazione {1}", Convert.ToDecimal(dtTabellaRiepilogo.Rows[0]["ctperc"]), DecodificaRateazione(dtTabellaRiepilogo.Rows[0]["ctrateazione"].ToString())); // % del TFR } var etichetta5_1 = new FormattedTextAreaPDF(sValore, 122, 500) { FontSize = 7.5F }; #endregion #region etichetta6 var etichetta6 = new FormattedTextAreaPDF("Contributi versati all'adesione (€)", EnvironmentFacade.RendererFacade.XLeftLimit, 512) { FontBold = true }; #endregion #region etichetta7 var etichetta7 = new FormattedTextAreaPDF("Contributo dell’Aderente:", EnvironmentFacade.RendererFacade.XLeftLimit, 135) { FontBold = true, AutoIncrementYWritable = false, FontSize = 7.5F }; sValore = dtTabellaRiepilogo.Rows[0]["contributoaderenteimporto"] == DBNull.Value ? "0,00 €" : Convert.ToDecimal(dtTabellaRiepilogo.Rows[0]["contributoaderenteimporto"]).ToString("C"); var etichetta7_1 = new FormattedTextAreaPDF(sValore, 135, 150) { AutoIncrementYWritable = false, FontSize = 7.5F }; #endregion #region etichetta8 var etichetta8 = new FormattedTextAreaPDF("Contributo aggiuntivo dell’Aderente:", 310, 150) { FontBold = true, AutoIncrementYWritable = false, FontSize = 7.5F }; sValore = dtTabellaRiepilogo.Rows[0]["contributoaggiuntivoaderenteimporto"] == DBNull.Value ? "0,00 €" : Convert.ToDecimal(dtTabellaRiepilogo.Rows[0]["contributoaggiuntivoaderenteimporto"]).ToString("C"); var etichetta8_1 = new FormattedTextAreaPDF(sValore, 445, 150) { FontSize = 7.5F }; #endregion #region etichetta9 var etichetta9 = new FormattedTextAreaPDF("Destinazione dei versamenti al Fondo Pensione", EnvironmentFacade.RendererFacade.XLeftLimit, 250) { FontBold = true }; #endregion listaObj.Add(new SpacePDF(10)); listaObj.Add(etichetta1); listaObj.Add(etichetta1_1); listaObj.Add(new SpacePDF(10)); listaObj.Add(etichetta2); listaObj.Add(etichetta3); listaObj.Add(etichetta3_1); listaObj.Add(etichetta4); listaObj.Add(etichetta4_1); listaObj.Add(etichetta5); listaObj.Add(etichetta5_1); listaObj.Add(new SpacePDF(10)); listaObj.Add(etichetta6); listaObj.Add(etichetta7); listaObj.Add(etichetta7_1); listaObj.Add(etichetta8); listaObj.Add(etichetta8_1); listaObj.Add(new SpacePDF(10)); listaObj.Add(etichetta9); #endregion var tabella = new TablePDF(EnvironmentFacade.RendererFacade.XLeftLimit, dtTabellaDati) { ID = "Tabella_P14", SubTitleElements = listaObj, TitleRowSpace = 5, TitleRow = true, TitleRowText = "ADESIONE AL FONDO PENSIONE FIDEURAM" }; tabella.Columns.Add(new ColumnPDF("nomeprodotto", 139, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "nomeprodotto", "Nome prodotto")); tabella.Columns.Add(new ColumnPDF("percaderentedatore", 80, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Percentuale, "percaderentedatore", "Contr. Aderente /
Datore (%)")); tabella.Columns.Add(new ColumnPDF("contr_annuo_aderente_datore", 87, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "contr_annuo_aderente_datore", "Contr. annuo
Ader. / Dat. (€)")); tabella.Columns.Add(new ColumnPDF("tfr", 50, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Percentuale, "tfr", "TFR (%)")); tabella.Columns.Add(new ColumnPDF("altra_forma_pensionistica", 80, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Percentuale, "altra_forma_pensionistica", "Altra forma
pension. (%)")); tabella.Columns.Add(new ColumnPDF("contributi_versati_adesione", 87, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Decimale, "contributi_versati_adesione", "Contributi versati all'adesione (€)")); // Footer tabella.FooterColumns.Add(new ColumnPDF("Totale", 139, HorizontalAlignmentType.Sinistra, false, true, 8, ColumnType.Testo)); tabella.FooterColumns.Add(new ColumnPDF("TotaleContrAderente", 80, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Percentuale)); tabella.FooterColumns.Add(new ColumnPDF("TotaleContrAnnuo", 87, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Decimale)); tabella.FooterColumns.Add(new ColumnPDF("TotaleTFR", 50, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Percentuale)); tabella.FooterColumns.Add(new ColumnPDF("TotaleAltraForma", 80, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Percentuale)); tabella.FooterColumns.Add(new ColumnPDF("TotaleContrVersati", 87, HorizontalAlignmentType.Destra, false, true, 8, ColumnType.Decimale)); tabella.FooterCells[0, 0].Value = "Totale"; tabella.FooterCells[1, 0].Value = Convert.ToDecimal(dtTabellaDati.Compute("Sum(percaderentedatore)", string.Empty)).ToString(); tabella.FooterCells[2, 0].Value = Convert.ToDecimal(dtTabellaDati.Compute("Sum(contr_annuo_aderente_datore)", string.Empty)).ToString(); tabella.FooterCells[3, 0].Value = Convert.ToDecimal(dtTabellaDati.Compute("Sum(tfr)", string.Empty)).ToString(); tabella.FooterCells[4, 0].Value = Convert.ToDecimal(dtTabellaDati.Compute("Sum(altra_forma_pensionistica)", string.Empty)).ToString(); tabella.FooterCells[5, 0].Value = Convert.ToDecimal(dtTabellaDati.Compute("Sum(contributi_versati_adesione)", string.Empty)).ToString(); AddElement(tabella); AddElement(new SpacePDF(20)); } /// /// 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 = 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.ExecuteDataSetStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_Prop_P14", parametri) : DataAccess.ExecuteDataSetStoredProcedure(DBProvider.SqlServerConsulenzaBase, "REP_Prop_P14", parametri); } /// /// Decodifica il codice di rateazione passsato in input /// /// /// private string DecodificaRateazione(string codificarateazione) { switch (codificarateazione.Trim().ToUpper()) { case "A": return "annuale"; case "B": return "bimestale"; case "M": return "mensile"; case "Q": return "quadrimestrale"; case "S": return "semestrale"; case "T": return "trimestrale"; default: return string.Empty; } } } }