using System; using System.Collections.Generic; using System.Text; using ceTe.DynamicPDF.Text; using System.Collections; using ceTe.DynamicPDF; using PDFGenerator.Presentation.Section.Tables; using PDFGenerator.Presentation.Section.Charts; using PDFGenerator.BusinessLayer.DataSection; using System.Data; using PDFGenerator.BusinessLayer; using ceTe.DynamicPDF.PageElements; namespace PDFGenerator.Presentation.Section { public class S102 : STorta //: ISezione { private string _titolo = string.Empty; private string _testointroduttivo = string.Empty; /// /// Titolo della sezione /// public new string Titolo { get { return _titolo; } set { _titolo = value; } } /// /// Testo introduttivo della Sezione. /// public string TestoIntroduttivo { get { return _testointroduttivo; } set { _testointroduttivo = value; } } public S102() { // // TODO: Add constructor logic here // } #region ISezione Members public new void writeSezione(DataThread dataThread) { DocumentPDF document = dataThread.DocumentPDF; DatiTabella datitab = new DatiTabella(); DataSet set = (DataSet)dataThread.Data.DatiSezione; int ChartHeigth = 156;//120; //calcola se entra nella pagina ci devono entrare la 102 e la 103 if (document.checkMargin(500)) document.addPage(); string temp; if (dataThread.Intermediario == "BF" || dataThread.Intermediario == string.Empty) { //if (dataThread.Rete == "S") // temp = "Sanpaolo Invest"; //else // //FC 26062015 Aggionamento nuova Ragione Sociale // temp = "Fideuram"; //*********************************** Cecco modifiche dicitura IWBANK********************** if (dataThread.Rete == "S") //Rosaspina Andrea temp = "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest"; //temp = "Sanpaolo Invest"; else if (dataThread.Rete == "F") { //FC 26062015 Aggionamento nuova Ragione Sociale temp = "Fideuram"; } else { temp = "IW Private Investments"; } } //********************************************************************************************** else temp = dataThread.Intermediario; if (dataThread.TipoReport.ToUpper() == "MONITORAGGIO") document.setSezTitolo(_titolo); else document.setSezTitoloWithoutNumber(_titolo + " " + temp); //V if I have non coverage heritage I have to add the text in the introductionary text if (set.Tables["PatrimonioNonCoperto"].Rows.Count > 0) _testointroduttivo += "\r\n"+Resource.S102_TestoPatrimonioNonCoperto; _testointroduttivo = _testointroduttivo.Replace("/$BANCA$/", temp); if (temp.ToUpper() == "COMPLESSIVO") _testointroduttivo = _testointroduttivo.Replace(", detenuto presso Complessivo,", " complessivo"); document.setSezHeader(_testointroduttivo); // testo introduttivo document.setHeaderSpace(10); datitab.table = set.Tables["RischioCredito"]; datitab.setIsRet(); datitab.setIsLinee(1); datitab.setHeader(); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); //document.page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(s, xMacroAsset + width, yLabel, (float)Convert.ToDouble(dati.campi[i]), heightLabel, (ceTe.DynamicPDF.Font)dati.font[i], fontSize, (ceTe.DynamicPDF.TextAlign)dati.align[i], ceTe.DynamicPDF.CmykColor.Black)); ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); datitab.setY(document.getLastPos()); datitab.setX(document.getMargineLeft()); datitab.setCellSpace(0); Tabella tab = new Tabella(); if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tab.HeaderFont = 8; //setta posizione tabella document.InsertTable(tab.getTabella(datitab)); float dim = datitab.GetRowDim() * (datitab.getNumRow() + 1); //================GRAFICO================================================================== DatiGrafico dati = new DatiGrafico(); dati.dataTab = set.Tables["ChartData"]; /////Parti aggiuntive tabella //string label = ""; //if (dataThread.Rete == "F") // label = "Banca Fideuram"; //else // label = "Sanpaolo Invest"; dati.setHeight(ChartHeigth); dati.setWidth(207); //IstoBarre102 isto = new IstoBarre102(); //document.InsertGrafico(isto.getGrafico(dati), 349, document.getLastPos() - 12); //this.writeSezione102(); dati.setHeight(ChartHeigth); dati.setWidth(140); Torta isto = new Torta(); //document.InsertGrafico(isto.getGrafico(dati), 390, document.getLastPos() - 11); if (set.Tables["PatrimonioCoperto"].Rows.Count > 0) { if (set.Tables["PatrimonioCoperto"].Rows[0]["Percentage"] != DBNull.Value) { if (set.Tables["PatrimonioCoperto"].Rows[0]["Percentage"].ToString() != "0,00") document.InsertGrafico(isto.getGrafico(dati), 360, document.getLastPos() - 11); } } if (set.Tables["RischioCreditoTotal"].Rows.Count > 0) { if (set.Tables["RischioCreditoTotal"].Rows[0]["Percentage"] != DBNull.Value) { if (set.Tables["RischioCreditoTotal"].Rows[0]["Percentage"].ToString() != "0,00") document.InsertGrafico(isto.getGrafico(dati), 360, document.getLastPos() - 11); } } //this.writeSezione102(); float LastPosition = document.getLastPos(); //============================================================================================ #region Patrimonio non Coperto (Patrimonio Coperto) bool patrimonioNonCoperto = false; if (set.Tables["PatrimonioNonCoperto"].Rows.Count > 0) { patrimonioNonCoperto = true; DatiTabella Cdatitab = new DatiTabella(); Cdatitab.table = set.Tables["PatrimonioCoperto"]; Cdatitab.setY(document.getLastPos() + dim ); Cdatitab.setX(document.getMargineLeft()); Cdatitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); Cdatitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); Cdatitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); Cdatitab.setCellSpace(0); Tabella Ctab = new Tabella(); if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tab.HeaderFont = 8; document.InsertTable(Ctab.getTabella(Cdatitab)); document.setLastPos(3F); DatiTabella NCdatitab = new DatiTabella(); NCdatitab.table = set.Tables["PatrimonioNonCoperto"]; NCdatitab.setY(document.getLastPos() + dim - 7); NCdatitab.setX(document.getMargineLeft()); NCdatitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); NCdatitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); NCdatitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); document.InsertTable(tab.getTabella(NCdatitab)); document.setLastPos(3F); } #endregion datitab.setY(document.getLastPos()); datitab.setX(document.getMargineLeft()); datitab.setCellSpace(0); Tabella tabTot = new Tabella(); if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tabTot.HeaderFont = 8; //setta posizione tabella //document.InsertTable(tabTot.getTabella(datitab)); float dimTot = datitab.GetRowDim() * (datitab.getNumRow() + 1); datitab = new DatiTabella(); datitab.table = set.Tables["RischioCreditoTotal"]; bool hasPatrimonioNonCoperto = false; if (set.Tables["PatrimonioNonCoperto"].Rows.Count > 0) { datitab.setY(document.getLastPos() + dimTot - 14); hasPatrimonioNonCoperto = true; } else datitab.setY(document.getLastPos() + dimTot); datitab.setX(document.getMargineLeft()); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true); document.InsertTable(tabTot.getTabella(datitab)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, LastPosition + 128, 205, 23, 0, new RgbColor(232, 236, 255))); //FormatNum format = new FormatNum(); ////Added by Mebaid //dati.valMax = 100; ////End mebaid //ArrayList Labels = format.CreaCustomPerc102(dati.getValMax()); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("0%", 360, LastPosition + 134, 50, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("10%", 378, LastPosition + 134, 50, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("20%", 396, LastPosition + 134, 50, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("30%", 414, LastPosition + 134, 50, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("40%", 432, LastPosition + 134, 50, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); ////mebaid //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("50%", 451, LastPosition + 134, 50, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("60%", 471, LastPosition + 134, 50, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("70%", 489, LastPosition + 134, 50, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("80%", 507, LastPosition + 134, 50, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("90%", 525, LastPosition + 134, 50, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("100%", 543, LastPosition + 134, 50, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); dimTot += datitab.GetRowDim() * datitab.getNumRow(); if (dimTot > ChartHeigth) document.setLastPos(dimTot); else document.setLastPos(ChartHeigth); //nota tabella decimal totalePartiteViaggianti = dataThread.PartiteViaggiantiInvestimento + dataThread.PartiteViaggiantiDisinvestimento; FormatNum formatter = new FormatNum(); //V Se sto stampando la sezione per il patrimonio complessivo o patrimonio casa (intermediario = BF anche per SPI) //allora ci puņ essere la nota dinamica sulle partite viaggianti e cc negativo // if ((dataThread.Intermediario.ToUpper() == "COMPLESSIVO" || dataThread.Intermediario.ToUpper() == "BF") && dataThread.ReportsType == ) if ((dataThread.Intermediario.ToUpper() == "COMPLESSIVO" || dataThread.Intermediario.ToUpper() == "BF") && dataThread.TipoReport.ToUpper() == TipoReport.DIAGNOSI.ToString()) { int deltaYNota = -30; if (patrimonioNonCoperto) deltaYNota -= 11; if (dataThread.TotalNegativeCurrentAccountValue < 0 && totalePartiteViaggianti == 0) { //formatter.ConvertNum(Convert.ToDecimal(dataThread.TotalNegativeCurrentAccountValue)); //document.getCurrentPage().Elements.Add(new Label(string.Format(Resource.S1_DiagnosesFootNote, dataThread.TotalNegativeCurrentAccountValue), datitab.getX(), document.getLastPos() - 46, 500F, 30F, Globals.OpenTypeFontVerdana, 8)); document.getCurrentPage().Elements.Add(new Label(string.Format(Resource.S102_NotaCCNegativo, dataThread.TotalNegativeCurrentAccountValue.ToString("N")), datitab.getX(), document.getLastPos() + deltaYNota, 500F, 30F, Globals.OpenTypeFontVerdana, 8)); } else if (dataThread.TotalNegativeCurrentAccountValue == 0 && totalePartiteViaggianti != 0) { document.getCurrentPage().Elements.Add(new Label(string.Format(Resource.S102_NotaOperazioniInCorso, dataThread.TotalNegativeCurrentAccountValue.ToString("N")), datitab.getX(), document.getLastPos() + deltaYNota, 500F, 30F, Globals.OpenTypeFontVerdana, 8)); } else if (dataThread.TotalNegativeCurrentAccountValue < 0 && totalePartiteViaggianti != 0) { document.getCurrentPage().Elements.Add(new Label(string.Format(Resource.S102_NotaCCNegativo_OperazioniInCorso, dataThread.TotalNegativeCurrentAccountValue.ToString("N")), datitab.getX(), document.getLastPos() + deltaYNota, 500F, 30F, Globals.OpenTypeFontVerdana, 8)); } } else if (dataThread.TipoReport.ToUpper() == TipoReport.MONITORAGGIO.ToString()) { int deltaYNota = -30; if (patrimonioNonCoperto) deltaYNota -= 11; if (dataThread.TotalNegativeCurrentAccountValue < 0 && totalePartiteViaggianti == 0) { document.getCurrentPage().Elements.Add(new Label(string.Format(Resource.S102_NotaCCNegativo, dataThread.TotalNegativeCurrentAccountValue.ToString("N")), datitab.getX(), document.getLastPos() + deltaYNota, 500F, 30F, Globals.OpenTypeFontVerdana, 8)); } else if (dataThread.TotalNegativeCurrentAccountValue == 0 && totalePartiteViaggianti != 0) { document.getCurrentPage().Elements.Add(new Label(string.Format(Resource.S102_NotaOperazioniInCorso, dataThread.TotalNegativeCurrentAccountValue.ToString("N")), datitab.getX(), document.getLastPos() + deltaYNota, 500F, 30F, Globals.OpenTypeFontVerdana, 8)); } else if (dataThread.TotalNegativeCurrentAccountValue < 0 && totalePartiteViaggianti != 0) { document.getCurrentPage().Elements.Add(new Label(string.Format(Resource.S102_NotaCCNegativo_OperazioniInCorso, dataThread.TotalNegativeCurrentAccountValue.ToString("N")), datitab.getX(), document.getLastPos() + deltaYNota, 500F, 30F, Globals.OpenTypeFontVerdana, 8)); } } if (hasPatrimonioNonCoperto) { //document.getCurrentPage().Elements.Add(new Label(Resource.S102_NotaCCNegativo, datitab.getX(), document.getLastPos() - 46, 500F, 30F, Globals.OpenTypeFontVerdana, 8)); //document.getCurrentPage().Elements.Add(new Label(Resource.S102_NotaFranchigia, datitab.getX(), document.getLastPos() - 24, 500F, 30F, Globals.OpenTypeFontVerdana, 8)); //document.getCurrentPage().Elements.Add(new Label(Resource.S102_NotaFranchigia, datitab.getX(), document.getLastPos() - 100, 500F, 30F, Globals.OpenTypeFontVerdana, 8)); //document.getCurrentPage().Elements.Add(new Label(Resource.S102_NotaFranchigia, datitab.getX(), document.getLastPos(), 500F, 30F, Globals.OpenTypeFontVerdana, 8)); document.setLastPos(10); } } #endregion } }