using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections; using ceTe.DynamicPDF; using ceTe.DynamicPDF.Text; using PDFGenerator.BusinessLayer.DataSection; using PDFGenerator.BusinessLayer; using System.Collections.Generic; using System.Linq; namespace PDFGenerator.Presentation.Section { /********************* Modifiche per Aladdin grafici a barre -- Pino ***************************/ /************** Modificata l'ereditarieta da STorta a SIstogramma *******************************/ public class S154 : SIstogramma, ISezione { DataSetS154 set = new DataSetS154(); public S154() { // // TODO: Add constructor logic here // } #region ISezione Members public new void writeSezione(DataThread datathread) { document = datathread.DocumentPDF; set = (DataSetS154)datathread.Data.DatiSezione; tabTortaTabella = set.Tables["MacroAssetClass"]; tabTortaTotali = set.Tables["MacroAssetTotale"]; tabTortaPatrimonioNonRappresentabile = set.Tables["PatrimonioNonRappresentabile"]; tabTortaContoCorrenteBancaFideuram = set.Tables["ContoCorrenteBancaFideuram"]; tabTortaPartiteViaggianti = set.Tables["PartiteViaggianti"]; tabTotale = set.Tables["Totale"]; // ************************* Modifica Andrea per correzione ***********************************// //tabTortaTotali.Rows[0][1] = datathread.PatrimonioBancaFideuramCtvAlNettoContoCorrente; tabTortaTotali.Rows[0][1] = datathread.PatrimonioBancaFideuramCtvAlNettoContoCorrente + datathread.Patrimonioterzictv + datathread.PartiteViaggiantiInvestimento + datathread.PartiteViaggiantiDisinvestimento; //+ datathread.PatrimonioNonRappresentabileCompl; // ******************************************************************************************// base.writeSezione154(datathread); //document.setSezTitolo(datathread.SezioneReport.Titolo); DataThread dsParam = datathread; /////// AGGIORNO POSIZIONE CURSORE NEL DOCUMENTO E INSERISCO LA NOTA if (dim > ChartHeigth) { //this.addNota(document, (int)dim); this.addNota1(document, (int)dim, datathread); } else { //this.addNota(document, ChartHeigth); this.addNota1(document, ChartHeigth, datathread); } if (dim > ChartHeigth) { document.setLastPos(dim); } else { document.setLastPos(ChartHeigth); } } //public void writeSezioneCombo(DataThread datathread) //{ // document = datathread.DocumentPDF; // set = (DataSetS154)datathread.Data.DatiSezione; // tabTortaTabella = set.Tables["MacroAssetClass"]; // tabTortaTotali = set.Tables["MacroAssetTotale"]; // tabTortaPatrimonioNonRappresentabile = set.Tables["PatrimonioNonRappresentabile"]; // tabTortaContoCorrenteBancaFideuram = set.Tables["ContoCorrenteBancaFideuram"]; // tabTortaPartiteViaggianti = set.Tables["PartiteViaggianti"]; // tabTotale = set.Tables["Totale"]; // base.writeSezioneComboSX(datathread); // if (salto) // document.returnLastPage(); // document.setPotenzialeLastPos(datitab.GetRowDim() * datitab.getNumRow() + dim, salto); //} private void addNota(DocumentPDF doc, int dim) { doc.setSezFooter("(*) Il dettaglio del Patrimonio non rappresentabile per Asset class viene riportato in fondo al documento.", dim); } private void addNota1(DocumentPDF doc, int dim, DataThread dataThread) { 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.PartiteViaggiantiDisinvestimento + dataThread.PartiteViaggiantiInvestimento; decimal GPEligoFondi = dataThread.GPEligoFondi; decimal GPEligoTitoli = dataThread.GPEligoTitoli; decimal PatrimonioTerzi = dataThread.PatrimonioTerziContoCorrente; decimal ProdottiNonRapp = dataThread.PatrimonioNonRappresentabileFI; decimal PartiteViaggianti = dataThread.PartiteViaggiantiInvestimento; //decimal PatrBancaSez = dataThread.PatrimonioBancaFideuramCtvAlNettoContoCorrente + dataThread.Patrimonioterzictv - dataThread.PartiteViaggiantiInvestimento - dataThread.PartiteViaggiantiDisinvestimento - dataThread.PatrimonioNonRappresentabileCompl; decimal GradoCopertura = ((dataThread.PatrimonioBancaFideuramCtvAlNettoContoCorrente + dataThread.Patrimonioterzictv) - dataThread.PatrimonioNonRappresentabileCompl) / (dataThread.PatrimonioBancaFideuramCtvAlNettoContoCorrente + dataThread.Patrimonioterzictv + dataThread.PartiteViaggiantiDisinvestimento + dataThread.PartiteViaggiantiInvestimento) * 100; // decimal GradoCopertura = dataThread.GradoCoperturaMacroAssetTotale; decimal PatrimonioTerziNonRapp = dataThread.PatrimonioNonRappresentabileAI; List notes = new List(); string nota = string.Empty; string nota1 = ""; string token = ""; //totalNegativeCurrentAccountValue = -1000.00M; //totaleSelfNegFO = -1000.00M; //totalePartiteViaggianti = 1000.00M; //GPEligoFondi = -500.00M; //GPEligoTitoli = -500.00M; //PatrimonioTerzi = -400.00M; //GradoCopertura = 70.00M; //PatrimonioTerziNonRapp = 100.00M; //ProdottiNonRapp = 20.00M; if (totalNegativeCurrentAccountValue != 0 || totaleSelfNegFO != 0 || GPEligoFondi < 0 || GPEligoTitoli < 0 || PatrimonioTerzi < 0 || ((GradoCopertura >= 0 && GradoCopertura < 100) && (ProdottiNonRapp != 0 || PartiteViaggianti != 0 || PatrimonioTerziNonRapp != 0))) nota = "(*) "; if (totalNegativeCurrentAccountValue != 0 || totaleSelfNegFO != 0 || GPEligoFondi < 0 || GPEligoTitoli < 0 || PatrimonioTerzi < 0) { notes.Add("Il controvalore esclude il saldo negativo"); token = " "; if (totalNegativeCurrentAccountValue < 0) { notes.Add(string.Format(token + "dei conti correnti ({0} €)", totalNegativeCurrentAccountValue.ToString("N"))); token = ", "; } if (totaleSelfNegFO < 0) { notes.Add(string.Format(token + "della liquidità sottostante \"IL MF - Liquidita\" ({0} €)", totaleSelfNegFO.ToString("N"))); token = ", "; } if (GPEligoFondi < 0) { notes.Add(string.Format(token + "della liquidità sottostante GP Eligo Fondi ({0} €)", GPEligoFondi.ToString("N"))); token = ", "; } if (GPEligoTitoli < 0) { notes.Add(string.Format(token + "della liquidità sottostante GP Eligo Titoli ({0} €)", GPEligoTitoli.ToString("N"))); token = ", "; } token = " "; if (GPEligoTitoli < 0 || GPEligoFondi < 0 || totalNegativeCurrentAccountValue < 0) { notes.Add(string.Format(token + "del patrimonio $/Banca/$".Replace("$/Banca/$", dataThread.NomeRete))); token = ", "; } if (PatrimonioTerzi < 0) { notes.Add(string.Format(token + "dei conti correnti ({0} €) del patrimonio Altri Istituti", PatrimonioTerzi.ToString("N"))); token = ", "; } notes.Add(string.Format(".")); token = ". "; } if (ProdottiNonRapp != 0 || PartiteViaggianti != 0 || PatrimonioTerziNonRapp != 0) { if (GradoCopertura >= 0 && GradoCopertura < 100) { notes.Add(string.Format( " Grado di copertura (%) della rappresentazione grafica per macro asset class pari a {0}", GradoCopertura.ToString("N"))); token = ": "; if (ProdottiNonRapp != 0 || PartiteViaggianti != 0 || PatrimonioTerziNonRapp != 0) { notes.Add(string.Format(token + "non sono considerati")); token = " "; if (ProdottiNonRapp != 0 || PartiteViaggianti != 0) { if (ProdottiNonRapp != 0) { notes.Add(string.Format(token + "i prodotti non rappresentabili ({0} €)", ProdottiNonRapp.ToString("N"))); token = ", "; } if (PartiteViaggianti != 0) { notes.Add(string.Format(token + "gli importi relativi alle operazioni in corso ({0} €)", PartiteViaggianti.ToString("N"))); token = ", "; } token = " "; notes.Add(string.Format(token + "del patrimonio $/Banca/$".Replace("$/Banca/$", dataThread.NomeRete))); token = ", "; } if (PatrimonioTerziNonRapp != 0) { notes.Add(string.Format(token + " i prodotti non rappresentabili ({0} €) del patrimonio Altri Istituti", PatrimonioTerziNonRapp.ToString("N"))); token = ", "; } } notes.Add(string.Format(".")); } } nota1 += "."; token = " "; //int i = 0; nota += notes.FirstOrDefault(); if (notes.Count > 1) { foreach (var s in notes.Skip(1)) { nota += s; //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(); if (!nota.Equals("")) //document.getCurrentPage().Elements.Add(new Label(nota, Xtable, Ytable, 512, 30F, Globals.OpenTypeFontVerdana, 7)); doc.setSezFooter(nota, dim-15); } #endregion } }