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 System.Linq; namespace PDFGenerator.Presentation.Section { public class S152 : ISezione { public S152() { // // TODO: Add constructor logic here // } #region ISezione Members public void writeSezione(DataThread dataThread) { DocumentPDF document = dataThread.DocumentPDF; DatiTabella datitab = new DatiTabella(); DataSet set = (DataSet)dataThread.Data.DatiSezione; int ChartHeigth = 120; //int ChartHeigth = 100; datitab.table = set.Tables["DatiPatrimonio"]; datitab.setIsRet(); datitab.setIsLinee(1); datitab.setHeader(); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false, 9); datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false, 9); datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false, 9); //eventuali operazioni sul dataset //calcola se entra nella pagina altrimenti aggiunge una nuova pagina. In questa sezione il # di righe è fissato int valoreRecuperoSpazioDallaS151 = 30; if (document.checkMargin(datitab.GetRowDim() * datitab.getNumRow() - valoreRecuperoSpazioDallaS151) || document.checkMargin(ChartHeigth - valoreRecuperoSpazioDallaS151)) document.addPage(); document.setSezTitolo(dataThread.SezioneReport.Titolo); //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(); #region Grafico //================GRAFICO================================================================== DatiGrafico dati = new DatiGrafico(); dati.dataTab = set.Tables["DatiGrafico"]; /////Parti aggiuntive tabella string label = ""; //if (dataThread.Rete == "F") // //FC 26062015 Aggionamento nuova Ragione Sociale // label = "Fideuram"; //else // label = "Sanpaolo Invest"; //*********************************** Cecco modifiche dicitura IWBANK****************************** switch (dataThread.Rete) { case "F": { label = "Fideuram"; break; } case "S": { label = "Sanpaolo Invest"; break; } case "W": { label = "IW Private Investments"; //Andrea IWB 14062022 prima era Inv. break; } } //******************************************************************************************** if ((decimal)dati.dataTab.Rows[0]["Controvalore2"] != 0 && (decimal)dati.dataTab.Rows[0]["Controvalore1"] != 0) { // PROQUOTA 20181221 //ceTe.DynamicPDF.PageElements.Rectangle rect1 = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() + 62, document.getLastPos() + 18, 11, 11, 1, new RgbColor(228, 232, 106)); //ceTe.DynamicPDF.PageElements.Rectangle rect1 = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() + 62 + 10, document.getLastPos() + 18, 11, 11, 1, new RgbColor(228, 232, 106)); ceTe.DynamicPDF.PageElements.Rectangle rect1 = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() + 62 + 10, document.getLastPos() + 3, 11, 11, 1, new RgbColor(228, 232, 106)); //--PROQUOTA 20181221 rect1.CornerRadius = 5; rect1.BorderWidth = 0; page.Elements.Add(rect1); // PROQUOTA 20181221 //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(label, document.getMargineLeft() + 75, document.getLastPos() + 20, 120, 10, Globals.OpenTypeFontVerdana, 7, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(label, document.getMargineLeft() + 75 + 10, document.getLastPos() + 20, 120, 10, Globals.OpenTypeFontVerdana, 7, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(label, document.getMargineLeft() + 75 + 10, document.getLastPos() + 4, 120, 10, Globals.OpenTypeFontVerdana, 7, ceTe.DynamicPDF.CmykColor.Black)); //--PROQUOTA 20181221 //rect1 = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() + 139, document.getLastPos() + 18, 11, 11, 1, new RgbColor(128, 0, 255)); rect1 = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() + 139, document.getLastPos() + 3, 11, 11, 1, new RgbColor(128, 0, 255)); rect1.CornerRadius = 5; rect1.BorderWidth = 0; page.Elements.Add(rect1); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("altri istituti", document.getMargineLeft() + 151, document.getLastPos() + 20, 120, 10, Globals.OpenTypeFontVerdana, 7, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("altri istituti", document.getMargineLeft() + 151, document.getLastPos() + 4, 120, 10, Globals.OpenTypeFontVerdana, 7, ceTe.DynamicPDF.CmykColor.Black)); } else { string lab; if ((decimal)dati.dataTab.Rows[0]["Controvalore1"] == 0 && (decimal)dati.dataTab.Rows[0]["Controvalore2"] != 0) { lab = "Finanziario altri Istituti"; datitab.table.Rows[0]["Patrimonio"] = lab; datitab.table.Rows[0]["Red"] = dati.dataTab.Rows[0]["Red1"]; datitab.table.Rows[0]["Green"] = dati.dataTab.Rows[0]["Green1"]; datitab.table.Rows[0]["Blue"] = dati.dataTab.Rows[0]["Blue1"]; } else { if ((decimal)dati.dataTab.Rows[0]["Controvalore2"] == 0 && (decimal)dati.dataTab.Rows[0]["Controvalore1"] == 0) { lab = "Finanziario"; datitab.table.Rows[0]["Patrimonio"] = lab; } else { if (dataThread.Rete == "F") //*********************Modifiche IWB Andrea *******************// lab = "Finanziario Fideuram"; else if (dataThread.Rete == "S") lab = "Finanziario Sanpaolo Invest"; else lab = "Finanziario IW Private Inv."; datitab.table.Rows[0]["Patrimonio"] = lab; datitab.table.Rows[0]["Red"] = dati.dataTab.Rows[0]["Red"]; datitab.table.Rows[0]["Green"] = dati.dataTab.Rows[0]["Green"]; datitab.table.Rows[0]["Blue"] = dati.dataTab.Rows[0]["Blue"]; } } } // PROQUOTA 20181221 if ((decimal)dati.dataTab.Rows[1]["Controvalore2"] != 0 && (decimal)dati.dataTab.Rows[1]["Controvalore1"] != 0) { //ceTe.DynamicPDF.PageElements.Rectangle rect2 = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() + 62 + 10, document.getLastPos() + 18 + 23, 11, 11, 1, new RgbColor(26, 106, 224)); ceTe.DynamicPDF.PageElements.Rectangle rect2 = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() + 62 + 10, document.getLastPos() + 18 + 8, 11, 11, 1, new RgbColor(26, 106, 224)); rect2.CornerRadius = 5; rect2.BorderWidth = 0; page.Elements.Add(rect2); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Pro quota", document.getMargineLeft() + 75 + 10, document.getLastPos() + 20 + 23, 120, 10, Globals.OpenTypeFontVerdana, 7, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Pro quota", document.getMargineLeft() + 75 + 10, document.getLastPos() + 20 + 8, 120, 10, Globals.OpenTypeFontVerdana, 7, ceTe.DynamicPDF.CmykColor.Black)); //rect2 = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() + 139, document.getLastPos() + 18 + 23, 11, 11, 1, new RgbColor(113, 184, 255)); rect2 = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() + 139, document.getLastPos() + 18 + 8, 11, 11, 1, new RgbColor(113, 184, 255)); rect2.CornerRadius = 5; rect2.BorderWidth = 0; page.Elements.Add(rect2); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Totale", document.getMargineLeft() + 151, document.getLastPos() + 20 + 23, 120, 10, Globals.OpenTypeFontVerdana, 7, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Totale", document.getMargineLeft() + 151, document.getLastPos() + 20 + 8, 120, 10, Globals.OpenTypeFontVerdana, 7, ceTe.DynamicPDF.CmykColor.Black)); } else { string lab; if ((decimal)dati.dataTab.Rows[1]["Controvalore1"] == 0 && (decimal)dati.dataTab.Rows[1]["Controvalore2"] != 0) { lab = "Immobiliare totale"; datitab.table.Rows[1]["Patrimonio"] = lab; datitab.table.Rows[1]["Red"] = dati.dataTab.Rows[1]["Red1"]; datitab.table.Rows[1]["Green"] = dati.dataTab.Rows[1]["Green1"]; datitab.table.Rows[1]["Blue"] = dati.dataTab.Rows[1]["Blue1"]; } else { if ((decimal)dati.dataTab.Rows[1]["Controvalore2"] == 0 && (decimal)dati.dataTab.Rows[1]["Controvalore1"] == 0) { lab = "Immobiliare"; datitab.table.Rows[1]["Patrimonio"] = lab; datitab.table.Rows[1]["Red"] = dati.dataTab.Rows[1]["Red1"]; datitab.table.Rows[1]["Green"] = dati.dataTab.Rows[1]["Green1"]; datitab.table.Rows[1]["Blue"] = dati.dataTab.Rows[1]["Blue1"]; } else { lab = "Immobiliare"; datitab.table.Rows[1]["Patrimonio"] = lab; datitab.table.Rows[1]["Red"] = dati.dataTab.Rows[1]["Red"]; datitab.table.Rows[1]["Green"] = dati.dataTab.Rows[1]["Green"]; datitab.table.Rows[1]["Blue"] = dati.dataTab.Rows[1]["Blue"]; } } } //--PROQUOTA 20181221 ////// dati.setHeight(ChartHeigth); dati.setWidth(207); Istobarre isto = new Istobarre(); //document.InsertGrafico(isto.getGrafico(dati), 349, document.getLastPos() - 12); document.InsertGrafico(isto.getGrafico(dati), 349, document.getLastPos()-28); //============================================================================================ #endregion //datitab.setY(document.getLastPos()); var currentY = document.getLastPos() - 15; datitab.setY(currentY); 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); //prova Andrea 1 datitab = new DatiTabella(); datitab.table = set.Tables["DatiPatrimonioTotale"]; //currentY = currentY + dim; //currentY = currentY; datitab.setY(currentY + dim); //datitab.setY(currentY); datitab.setX(document.getMargineLeft()); datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true, 9); datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true, 9); datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true, 9); document.InsertTable(tab.getTabella(datitab)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(358, currentY + 82, 199, 23, 0, new RgbColor(232, 236, 237))); FormatNum format = new FormatNum(); ArrayList Labels = format.CreaCustom(dati.getValMax()); //Versione precedente //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + 91, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); ////page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); ////page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, currentY + 91, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, currentY + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black)); page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 454, currentY + 91, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black)); dim += datitab.GetRowDim() * datitab.getNumRow(); string nota = ""; FormatNum formatter = new FormatNum(); // MIOFOGLIO 20181130 decimal totalSelfNegGP = dataThread.Periodico ? dataThread.GetSelfNegativeValue("XY") : 0; decimal totaleSelfNegFO = dataThread.Periodico ? dataThread.GetSelfNegativeValue("FO") : 0; decimal totalNegativeCurrentAccountValue = dataThread.Periodico ? dataThread.ContoCorrente : 0; decimal totalePartiteViaggianti = dataThread.Periodico ? dataThread.PartiteViaggiantiDisinvestimento + dataThread.PartiteViaggiantiInvestimento : 0; List notes = new List(); if (totalNegativeCurrentAccountValue != 0 || totaleSelfNegFO != 0 || totalSelfNegGP != 0) //if (totalNegativeCurrentAccountValue != 0 || totaleSelfNegFO != 0 || totalSelfNegGP != 0 || totalePartiteViaggianti != 0) { nota = "(*) Il controvalore esclude "; if (totalNegativeCurrentAccountValue < 0) { notes.Add(string.Format("il saldo negativo del conto corrente ({0} €)", totalNegativeCurrentAccountValue.ToString("N"))); } if (totaleSelfNegFO < 0) { notes.Add(string.Format("il saldo negativo della liquidità sottostante \"IL MF - Liquidita\" ({0} €)", totaleSelfNegFO.ToString("N"))); } if (totalSelfNegGP < 0) { notes.Add(string.Format("il saldo negativo della liquidità sottostante le linee \"GP Eligo\" ({0} €)", totalSelfNegGP.ToString("N"))); } //if (totalePartiteViaggianti != 0) //{ // notes.Add(string.Format("gli investimenti in corso.")); //} } int i = 0; if (notes.Count > 1) { foreach (var s in notes) { if (i == 0) nota += s; if (i > 0 && i < notes.Count - 1) nota += ", " + s; if (i == notes.Count - 1) nota += " e " + s; i++; } } else nota += notes.FirstOrDefault(); // MIOFOGLIO 20181130 commentata la vecchia composizione della nota: //if (dataThread.TotalNegativeCurrentAccountValue != 0 && dataThread.TotalSelfNegCurrentAccountValue==0) //{ // nota="(*) Il controvalore esclude il saldo negativo del conto corrente ({0} €)"; // nota = string.Format(nota, formatter.ConvertNum(dataThread.TotalNegativeCurrentAccountValue)); //} //else if (dataThread.TotalNegativeCurrentAccountValue == 0 && dataThread.TotalSelfNegCurrentAccountValue!=0) //{ // nota = "(*) Il controvalore esclude Il saldo negativo della liquidità sottostante le linee “GP Eligo” ({0} €)"; // nota = string.Format(nota, formatter.ConvertNum(dataThread.TotalSelfNegCurrentAccountValue)); //} //else if (dataThread.TotalNegativeCurrentAccountValue != 0 && dataThread.TotalSelfNegCurrentAccountValue!=0) //{ // nota = "(*) Il controvalore esclude il saldo negativo del conto corrente ({0} €) e il saldo negativo della liquidità sottostante le linee “GP Eligo” ({1} €)"; // nota = string.Format(nota, formatter.ConvertNum(dataThread.TotalNegativeCurrentAccountValue), formatter.ConvertNum(dataThread.TotalSelfNegCurrentAccountValue)); //} //--MIOFOGLIO 20181130 if (!nota.Equals("")) { document.setSezFooter(nota, dim, 0, 7); dim += 15; } //if (dataThread.TotalNegativeCurrentAccountValue != 0)//TotalSelfNegCurrentAccountValue //{ // FormatNum formatter = new FormatNum(); // string ccneg = formatter.ConvertNum(dataThread.TotalNegativeCurrentAccountValue); // document.setSezFooter(string.Format(Resource.S1_DiagnosesFootNote, ccneg), dim, 0, 7); // dim += 15; //} if (dim > ChartHeigth) document.setLastPos(dim); else document.setLastPos(ChartHeigth); } #endregion } }