369 lines
20 KiB
C#
369 lines
20 KiB
C#
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<string> notes = new List<string>();
|
|
|
|
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<string>();
|
|
|
|
// 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
|
|
}
|
|
}
|