798 lines
39 KiB
C#
798 lines
39 KiB
C#
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.Presentation.Section.Tables;
|
||
using PDFGenerator.BusinessLayer.DataSection;
|
||
using PDFGenerator.BusinessLayer;
|
||
using ceTe.DynamicPDF.PageElements;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using NLog;
|
||
|
||
namespace PDFGenerator.Presentation.Section
|
||
{
|
||
class S180 : ISezione
|
||
{
|
||
|
||
NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
||
|
||
private string _header = "";
|
||
|
||
public string Header
|
||
{
|
||
get { return _header; }
|
||
set { _header = value; }
|
||
}
|
||
|
||
|
||
private TipologiaReport _tipologiaReport;
|
||
public TipologiaReport TipologiaReport
|
||
{
|
||
get { return _tipologiaReport; }
|
||
set { _tipologiaReport = value; }
|
||
}
|
||
|
||
private string _testoIntroduttivo = string.Empty;
|
||
public string TestoIntroduttivo
|
||
{
|
||
get { return _testoIntroduttivo; }
|
||
set { _testoIntroduttivo = value; }
|
||
}
|
||
|
||
private string _testoChiusura = string.Empty;
|
||
public string TestoChiusura
|
||
{
|
||
get { return _testoChiusura; }
|
||
set { _testoChiusura = value; }
|
||
}
|
||
|
||
|
||
public S180()
|
||
{
|
||
//
|
||
// TODO: Add constructor logic here
|
||
//
|
||
}
|
||
|
||
#region ISezione Members
|
||
|
||
#region ATTENZIONE NON PIU VALIDA
|
||
public void writeSezione(DataThread dataThread)
|
||
{
|
||
|
||
DocumentPDF document = dataThread.DocumentPDF;
|
||
DataSetS180 set = (DataSetS180)dataThread.Data.DatiSezione;
|
||
|
||
|
||
|
||
//20180820 CR Professionali: la tabella non va visualizzata per i clienti professionali
|
||
if (!dataThread.IsProfessionalClient)
|
||
{
|
||
|
||
if (set.Tables["ProdottiAltaComplessita"].Rows.Count > 0)
|
||
{
|
||
//20180913 Commentato blocco (eventualmente, si dovrebbe mettere come ramo ELSE nel prossimo blocco if
|
||
//20180817 Se non c'è spazio nella pagina corrente
|
||
//if (!document.checkMargin(400))
|
||
//{
|
||
// document.changePage();
|
||
// document.nextPage(document.getMargineLeft());
|
||
// //document.addPage();
|
||
|
||
//}
|
||
//--20180817
|
||
//--20180913
|
||
|
||
// 20181219 Fix bug di spaginazione della tabella complessità alta, in caso venga stampata a cavallo di due pagine
|
||
if (!document.LastSectionCheckIn.Equals("S179")) // Se non si è passati per la S179
|
||
{
|
||
document.changePage();
|
||
document.nextPage(document.getMargineLeft());
|
||
}
|
||
else
|
||
{
|
||
if (document.getLastPos() >= 500)
|
||
{
|
||
document.changePage();
|
||
document.nextPage(document.getMargineLeft());
|
||
}
|
||
}
|
||
//MIFID2 20180522 DA MODIFICARE INTRODUCENDO UNA NUOVA PROPRIETA' in DocumentPDF (LastSectionPrinted) sulla quale si fa il controllo se è stata stampata o meno...
|
||
//if (document.getLastPos() > 700)
|
||
//if (!document.LastSectionCheckIn.Equals("S179")) // Se non si è passati per la S179
|
||
//{
|
||
// document.changePage();
|
||
// document.nextPage(document.getMargineLeft());
|
||
//}
|
||
//--MIFID2
|
||
//--20181219
|
||
|
||
document.LastSectionCheckIn = "S180";
|
||
|
||
ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage();
|
||
|
||
document.setSezTitoloDiagnosi(dataThread.SezioneReport.Titolo);
|
||
|
||
string nota1 = dataThread.SezioneReport.Nota;
|
||
string nota2 = dataThread.SezioneReport.NotaAlternativa;
|
||
|
||
string tempTesto = dataThread.SezioneReport.TestoIntroduttivo;
|
||
|
||
document.setChapterHeader(tempTesto.Replace("$/Banca/$", dataThread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest"), 0, 520, 8);
|
||
|
||
document.setHeaderSpace(5);
|
||
|
||
DatiTabella datitab = new DatiTabella();
|
||
|
||
#region Tabella Dettaglio Prodotti
|
||
Tabella tab = new Tabella(document.getMargineLeft(), document.getLastPos());
|
||
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tab.HeaderFont = 8;
|
||
tab.Header = true;
|
||
tab.LineaFineTabella = false;
|
||
tab.Datasource = datitab.table;
|
||
|
||
datitab.table = set.Tables["ProdottiAltaComplessita"];
|
||
|
||
datitab.setY(document.getLastPos());
|
||
//datitab.setIsLinee(1);
|
||
|
||
tab.Colonne.Add(new Colonna("CodiceContratto", "Codice Contratto", 120, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tab.Colonne.Add(new Colonna("NomeProdotto", "Nome Prodotto", 205, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tab.Colonne.Add(new Colonna("Controvalore", "Controvalore* (€)", 103, TipoAllineamento.DESTRA, false, 7, false));
|
||
tab.Colonne.Add(new Colonna("Peso", "Peso** (%)", 92, TipoAllineamento.DESTRA, false, 7, false));
|
||
|
||
tab.AltezzaCella = 23;
|
||
|
||
datitab.setCellSpace(0);
|
||
|
||
//setta posizione tabella
|
||
tab.Draw(datitab, document);
|
||
|
||
float dim = datitab.GetRowDim() * (datitab.getNumRow() + 1);
|
||
#endregion
|
||
|
||
document.setLastPos(dim);
|
||
|
||
#region Tabella Totale Prodotti
|
||
|
||
datitab = new DatiTabella();
|
||
|
||
//Tabella tabProdotti = new Tabella(document.getMargineLeft(), document.getLastPos() + tab.AltezzaTabella + 30);
|
||
Tabella tabProdotti = new Tabella(document.getMargineLeft(), document.getLastPos());
|
||
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tab.HeaderFont = 8;
|
||
tabProdotti.AltezzaCella = 23;
|
||
tabProdotti.Header = false;
|
||
tabProdotti.LineaFineTabella = false;
|
||
tabProdotti.Datasource = set.Tables["TotaleProdotti"];
|
||
datitab.table = set.Tables["TotaleProdotti"];
|
||
|
||
//datitab.setY(document.getLastPos());
|
||
//datitab.setIsLinee(1);
|
||
|
||
tabProdotti.Colonne.Add(new Colonna("Descrizione", "", 328, TipoAllineamento.SINISTRA, true, 7, true));
|
||
tabProdotti.Colonne.Add(new Colonna("TotaleControvalore", "", 100, TipoAllineamento.DESTRA, true, 7, true));
|
||
tabProdotti.Colonne.Add(new Colonna("TotalePeso", "", 92, TipoAllineamento.DESTRA, true, 7, true));
|
||
|
||
tabProdotti.Draw(datitab, document);
|
||
#endregion
|
||
|
||
// setto la posizione aggiornata
|
||
//dim = datitab.GetRowDim();
|
||
//document.setLastPos(dim + 5);
|
||
|
||
#region Tabella Totale Patrimonio
|
||
datitab = new DatiTabella();
|
||
|
||
Tabella tabPatrimonio = new Tabella(document.getMargineLeft(), document.getLastPos() + tabProdotti.AltezzaCella + 3);
|
||
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tab.HeaderFont = 8;
|
||
tabPatrimonio.AltezzaCella = 23;
|
||
tabPatrimonio.Header = false;
|
||
tabPatrimonio.LineaFineTabella = false;
|
||
tabPatrimonio.Datasource = set.Tables["TotalePatrimonio"];
|
||
datitab.table = set.Tables["TotalePatrimonio"];
|
||
|
||
//datitab.setY(document.getLastPos());
|
||
//datitab.setIsLinee(1);
|
||
|
||
tabPatrimonio.Colonne.Add(new Colonna("Descrizione", "", 328, TipoAllineamento.SINISTRA, true, 7, true));
|
||
tabPatrimonio.Colonne.Add(new Colonna("TotaleControvalore", "", 100, TipoAllineamento.DESTRA, true, 7, true));
|
||
tabPatrimonio.Colonne.Add(new Colonna("TotalePeso", "", 92, TipoAllineamento.DESTRA, true, 7, true));
|
||
|
||
tabPatrimonio.Draw(datitab, document);
|
||
#endregion
|
||
|
||
//20180913 Aggiunto perché la tabella potrebbe essere molto lunga, quindi rimandare alla pagina successiva.
|
||
page = document.getCurrentPage();
|
||
|
||
#region Note
|
||
/*********************** Modifica per Trimestrale sovrapposizione note con tabella - Pino **************************/
|
||
//document.setLastPos(datitab.getNumRow());
|
||
|
||
if (datitab.getNumRow() == 1)
|
||
document.setLastPos(datitab.getNumRow() - 1);
|
||
else
|
||
document.setLastPos(datitab.GetRowDim() * (datitab.getNumRow() + 1));
|
||
/***************************************************************************************************************/
|
||
|
||
if (!string.IsNullOrEmpty(nota1))
|
||
{
|
||
|
||
/************* Modifica per la gestione della nota dinamica in base ai prodotti FAI 12/03/2021 - Pino *********************/
|
||
//string testoNotaFAI = " Il controvalore dei fondi Perennius Global Yield Private 2011, Idea Crescita Globale, FAI Private Debt Special Opportunities e FAI Private Markets Insight esposto nella rendicontazione è determinato tramite il NAV trimestrale al #dataFAI# (ultimo disponibile alla data di predisposizione del presente rendiconto) al netto delle distribuzioni avvenute nel trimestre e accreditate sul conto corrente indicato in fase di sottoscrizione.";
|
||
string testoNotaFAI = " Il controvalore dei fondi di Investimento alternativi è determinato tenuto conto del NAV ufficiale trimestrale al #dataFAI# (ultimo disponibile alla data di predisposizione del presente rendiconto) al netto di eventuali richiami e/o distribuzioni di capitale effettuati successivamente.";
|
||
|
||
DSNotaFAI _dsNotaFAI = new DSNotaFAI();
|
||
|
||
List<SessionStruct> tabelleSessione = new List<SessionStruct>();
|
||
DataTable _dt = new DataTable();
|
||
_dt.TableName = "[C6StagingPeriodico].[ClienteProdottiFAI]";
|
||
tabelleSessione.Add(new SessionStruct(string.Concat("[C6StagingPeriodico].[ClienteProdottiFAI]", "|", dataThread.Rete, "|", dataThread.CodiceFiscale), _dt));
|
||
|
||
DataSectionResult result = _dsNotaFAI.getDataSection(tabelleSessione, "[C6StagingPeriodico].[ClienteProdottiFAI]", dataThread);
|
||
DataSetNotaFAI setNotaFAI = (DataSetNotaFAI)result.DatiSezione;
|
||
|
||
string _flagNotaFAI = setNotaFAI.FlagNotaFAI.Rows[0][0].ToString();
|
||
if (_flagNotaFAI == "S")
|
||
{
|
||
// Sostituisco al marcatore nella variabile testoNotaFaI il valore presente nel datatable
|
||
testoNotaFAI = testoNotaFAI.Replace("#dataFAI#", setNotaFAI.FlagNotaFAI.Rows[0][1].ToString());
|
||
nota1 += testoNotaFAI;
|
||
}
|
||
/******************************************************************************************************************************/
|
||
|
||
FormattedTextArea text = new FormattedTextArea(nota1, document.getMargineLeft(), document.getLastPos() + tabPatrimonio.AltezzaCella - 5, 510, 50, new ceTe.DynamicPDF.FontFamily("pipp", Globals.OpenTypeFontVerdana, Globals.OpenTypeFontVerdanaB, Globals.OpenTypeFontVerdanaZ, Globals.OpenTypeFontVerdanaZ), 7, false);
|
||
text.Height = text.GetRequiredHeight();
|
||
text.Style.Paragraph.Align = ceTe.DynamicPDF.TextAlign.Justify;
|
||
page.Elements.Add(text);
|
||
dim = text.Height;
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(nota2))
|
||
{
|
||
FormattedTextArea text = new FormattedTextArea(nota2, document.getMargineLeft(), document.getLastPos() + tabPatrimonio.AltezzaCella + dim, 510, 50, new ceTe.DynamicPDF.FontFamily("pipp", Globals.OpenTypeFontVerdana, Globals.OpenTypeFontVerdanaB, Globals.OpenTypeFontVerdanaZ, Globals.OpenTypeFontVerdanaZ), 7, false);
|
||
text.Height = text.GetRequiredHeight();
|
||
text.Style.Paragraph.Align = ceTe.DynamicPDF.TextAlign.Justify;
|
||
page.Elements.Add(text);
|
||
}
|
||
#endregion
|
||
|
||
document.setLastPos(document.getLastPos() + 500);
|
||
}
|
||
else
|
||
{
|
||
document.setLastPos(document.getLastPos() + 500);
|
||
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
public void writeSezioneNew(DataThread dataThread)
|
||
{
|
||
dataThread.SETDATA();
|
||
DocumentPDF document = dataThread.DocumentPDF;
|
||
DataSetS180 set = (DataSetS180)dataThread.Data.DatiSezione;
|
||
|
||
//20180820 CR Professionali: la tabella non va visualizzata per i clienti professionali
|
||
if (!dataThread.IsProfessionalClient)
|
||
{
|
||
if (set.Tables["DettaglioComplessita"].Rows.Count > 0)
|
||
{
|
||
// 20181219 Fix bug di spaginazione della tabella complessità alta, in caso venga stampata a cavallo di due pagine
|
||
//if (!document.LastSectionCheckIn.Equals("S179")) // Se non si è passati per la S179
|
||
if (!document.LastSectionCheckIn.Equals("S184")) // Se non si è passati per la S184 o per la 179
|
||
{
|
||
if (dataThread.TipoReport.Equals("DIAGNOSI"))
|
||
{
|
||
document.changePage();
|
||
document.nextPage(document.getMargineLeft());
|
||
}
|
||
//else
|
||
//{
|
||
// document.setLastPos(document.getLastPos());
|
||
//}
|
||
}
|
||
else
|
||
{
|
||
if (document.getLastPos() >= 500)
|
||
{
|
||
document.changePage();
|
||
document.nextPage(document.getMargineLeft());
|
||
}
|
||
}
|
||
|
||
//if (document.getLastPos() >= 940) //840
|
||
//{
|
||
// document.changePage();
|
||
// document.nextPage(document.getMargineLeft());
|
||
//}
|
||
|
||
ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage();
|
||
|
||
document.setSezTitoloDiagnosi(dataThread.SezioneReport.Titolo);
|
||
|
||
string nota1 = dataThread.SezioneReport.Nota;
|
||
string nota2 = dataThread.SezioneReport.NotaAlternativa;
|
||
|
||
DataRow[] row = set.Tables["DettaglioComplessita"].Select("Ordine=1");
|
||
|
||
string testo = string.Empty;
|
||
if (row.Length > 0)
|
||
{
|
||
testo = row[0]["Descrizione"].ToString();
|
||
}
|
||
document.setChapterHeader(testo, 0, 520, 8);
|
||
//string tempTesto = dataThread.SezioneReport.TestoIntroduttivo;
|
||
|
||
//document.setChapterHeader(tempTesto.Replace("$/Banca/$", dataThread.NomeRete).Replace("Sanpaolo Invest", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest"), 0, 520, 8);
|
||
|
||
document.setHeaderSpace(5);
|
||
|
||
DatiTabella datitab = new DatiTabella();
|
||
|
||
#region Tabella Dettaglio Complessita Prodotti Alta
|
||
Tabella tab = new Tabella(document.getMargineLeft(), document.getLastPos());
|
||
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tab.HeaderFont = 8;
|
||
tab.Header = true;
|
||
tab.LineaFineTabella = false;
|
||
tab.Datasource = datitab.table;
|
||
|
||
datitab.table = set.Tables["DettaglioComplessita"].Select("Ordine=1").CopyToDataTable();
|
||
|
||
datitab.setY(document.getLastPos());
|
||
|
||
tab.Colonne.Add(new Colonna("CodiceContratto", "Codice Contratto", 80, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tab.Colonne.Add(new Colonna("NomeProdotto", "Nome Prodotto", 148, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tab.Colonne.Add(new Colonna("Complessita", "Complessità", 100, TipoAllineamento.DESTRA, false, 7, false));
|
||
tab.Colonne.Add(new Colonna("Controvalore", "Controvalore* (€)", 100, TipoAllineamento.DESTRA, false, 7, false));
|
||
tab.Colonne.Add(new Colonna("Peso", "Peso** (%)", 92, TipoAllineamento.DESTRA, false, 7, false));
|
||
|
||
tab.AltezzaCella = 23;
|
||
|
||
datitab.setCellSpace(0);
|
||
|
||
//setta posizione tabella
|
||
tab.Draw(datitab, document);
|
||
|
||
float dim = datitab.GetRowDim() * (datitab.getNumRow() + 1);
|
||
|
||
#endregion
|
||
|
||
document.setLastPos(dim);
|
||
|
||
#region Tabella Totale Complessita Prodotti Alta
|
||
|
||
datitab = new DatiTabella();
|
||
|
||
//Tabella tabProdotti = new Tabella(document.getMargineLeft(), document.getLastPos() + tab.AltezzaTabella + 30);
|
||
Tabella tabProdottiAlta = new Tabella(document.getMargineLeft(), document.getLastPos());
|
||
|
||
|
||
|
||
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tab.HeaderFont = 8;
|
||
tabProdottiAlta.AltezzaCella = 23;
|
||
tabProdottiAlta.Header = false;
|
||
tabProdottiAlta.LineaFineTabella = false;
|
||
tabProdottiAlta.Datasource = set.Tables["TotaliComplessita"];
|
||
datitab.table = set.Tables["TotaliComplessita"].Select("Ordine=1").CopyToDataTable(); ;
|
||
|
||
tabProdottiAlta.Colonne.Add(new Colonna("Descrizione", "", 328, TipoAllineamento.SINISTRA, true, 7, true));
|
||
tabProdottiAlta.Colonne.Add(new Colonna("SommaControvalore", "", 100, TipoAllineamento.DESTRA, true, 7, true));
|
||
tabProdottiAlta.Colonne.Add(new Colonna("SommaPesi", "", 92, TipoAllineamento.DESTRA, true, 7, true));
|
||
|
||
tabProdottiAlta.Draw(datitab, document);
|
||
|
||
float dimTA = datitab.GetRowDim() * (datitab.getNumRow());
|
||
#endregion
|
||
|
||
document.setLastPos(0);
|
||
|
||
|
||
#region Tabella Dettaglio Complessita Prodotti MedioAlta Alta
|
||
DatiTabella datitabMAA = new DatiTabella();
|
||
Tabella tabMedioAlta = new Tabella(document.getMargineLeft(), document.getLastPos());
|
||
|
||
|
||
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tabMedioAlta.HeaderFont = 8;
|
||
tabMedioAlta.Header = false;
|
||
tabMedioAlta.LineaFineTabella = false;
|
||
tabMedioAlta.Datasource = datitabMAA.table;
|
||
|
||
datitabMAA.table = set.Tables["DettaglioComplessita"].Select("Ordine=2").CopyToDataTable();
|
||
|
||
datitabMAA.setY(document.getLastPos());
|
||
|
||
|
||
tabMedioAlta.Colonne.Add(new Colonna("CodiceContratto", "Codice Contratto", 80, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tabMedioAlta.Colonne.Add(new Colonna("NomeProdotto", "Nome Prodotto", 148, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tabMedioAlta.Colonne.Add(new Colonna("Complessita", "Complessità", 100, TipoAllineamento.DESTRA, false, 7, false));
|
||
tabMedioAlta.Colonne.Add(new Colonna("Controvalore", "Controvalore* (€)", 100, TipoAllineamento.DESTRA, false, 7, false));
|
||
tabMedioAlta.Colonne.Add(new Colonna("Peso", "Peso** (%)", 92, TipoAllineamento.DESTRA, false, 7, false));
|
||
|
||
tabMedioAlta.AltezzaCella = 23;
|
||
|
||
datitabMAA.setCellSpace(0);
|
||
|
||
//setta posizione tabella
|
||
tabMedioAlta.Draw(datitabMAA, document);
|
||
|
||
dim = datitabMAA.GetRowDim() * (datitabMAA.getNumRow() - 1);
|
||
|
||
|
||
#endregion
|
||
|
||
document.setLastPos(dim);
|
||
|
||
|
||
#region Tabella Totale Complessita Prodotti Medio Alta Alta
|
||
DatiTabella datitabTotMAA = new DatiTabella();
|
||
|
||
|
||
|
||
//Tabella tabProdotti = new Tabella(document.getMargineLeft(), document.getLastPos() + tab.AltezzaTabella + 30);
|
||
Tabella tabProdottiMedioAlta = new Tabella(document.getMargineLeft(), document.getLastPos());
|
||
|
||
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tabProdottiMedioAlta.HeaderFont = 8;
|
||
tabProdottiMedioAlta.AltezzaCella = 23;
|
||
tabProdottiMedioAlta.Header = false;
|
||
tabProdottiMedioAlta.LineaFineTabella = false;
|
||
tabProdottiMedioAlta.Datasource = datitabTotMAA.table;
|
||
datitabTotMAA.table = set.Tables["TotaliComplessita"].Select("Ordine=2").CopyToDataTable(); ;
|
||
|
||
tabProdottiMedioAlta.Colonne.Add(new Colonna("Descrizione", "", 328, TipoAllineamento.SINISTRA, true, 7, true));
|
||
tabProdottiMedioAlta.Colonne.Add(new Colonna("SommaControvalore", "", 100, TipoAllineamento.DESTRA, true, 7, true));
|
||
tabProdottiMedioAlta.Colonne.Add(new Colonna("SommaPesi", "", 92, TipoAllineamento.DESTRA, true, 7, true));
|
||
|
||
tabProdottiMedioAlta.Draw(datitabTotMAA, document);
|
||
#endregion
|
||
|
||
document.setLastPos(0);
|
||
|
||
#region Tabella Dettaglio Complessita Prodotti MedioBasso MedioAlta Alta
|
||
DatiTabella datitabMAMBA = new DatiTabella();
|
||
|
||
|
||
Tabella tabMedioBassoMeadioAltaAlta = new Tabella(document.getMargineLeft(), document.getLastPos());
|
||
|
||
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tabMedioBassoMeadioAltaAlta.HeaderFont = 8;
|
||
tabMedioBassoMeadioAltaAlta.Header = false;
|
||
tabMedioBassoMeadioAltaAlta.LineaFineTabella = false;
|
||
tabMedioBassoMeadioAltaAlta.Datasource = datitabMAMBA.table;
|
||
|
||
//for (int i = 0; i < 5; i++)
|
||
//{
|
||
// DataRow testRow = set.Tables["DettaglioComplessita"].NewRow();
|
||
// testRow["Complessita"] = "c";
|
||
// testRow["Ordine"] = 3;
|
||
// testRow["NomeProdotto"] = "NomeProdotto";
|
||
// testRow["Descrizione"] = "Descrizione";
|
||
// testRow["CodiceContratto"] = "CodiceContratto";
|
||
// testRow["Peso"] = 10;
|
||
// testRow["ControvaloreDecimale"] = 1000;
|
||
// testRow["Controvalore"] = 1000;
|
||
// testRow["PesoDecimale"] = 20;
|
||
// testRow["TotalePatrimonio"] = 5000;
|
||
|
||
// set.Tables["DettaglioComplessita"].Rows.Add(testRow);
|
||
//}
|
||
|
||
//set.Tables["DettaglioComplessita"].Rows.Add(set.Tables["DettaglioComplessita"].Rows[0]);
|
||
//set.Tables["DettaglioComplessita"].Rows.Add(set.Tables["DettaglioComplessita"].Rows[0]);
|
||
//set.Tables["DettaglioComplessita"].Rows.Add(set.Tables["DettaglioComplessita"].Rows[0]);
|
||
//set.Tables["DettaglioComplessita"].Rows.Add(set.Tables["DettaglioComplessita"].Rows[0]);
|
||
|
||
datitabMAMBA.table = set.Tables["DettaglioComplessita"].Select("Ordine=3").CopyToDataTable();
|
||
|
||
datitabMAMBA.setY(document.getLastPos());
|
||
|
||
tabMedioBassoMeadioAltaAlta.Colonne.Add(new Colonna("CodiceContratto", "Codice Contratto", 80, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tabMedioBassoMeadioAltaAlta.Colonne.Add(new Colonna("NomeProdotto", "Nome Prodotto", 148, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tabMedioBassoMeadioAltaAlta.Colonne.Add(new Colonna("Complessita", "Complessità", 100, TipoAllineamento.DESTRA, false, 7, false));
|
||
tabMedioBassoMeadioAltaAlta.Colonne.Add(new Colonna("Controvalore", "Controvalore* (€)", 100, TipoAllineamento.DESTRA, false, 7, false));
|
||
tabMedioBassoMeadioAltaAlta.Colonne.Add(new Colonna("Peso", "Peso** (%)", 92, TipoAllineamento.DESTRA, false, 7, false));
|
||
|
||
tabMedioBassoMeadioAltaAlta.AltezzaCella = 23;
|
||
|
||
datitabMAMBA.setCellSpace(0);
|
||
|
||
//setta posizione tabella
|
||
tabMedioBassoMeadioAltaAlta.Draw(datitabMAMBA, document);
|
||
|
||
dim = datitabMAMBA.GetRowDim() * (datitabMAMBA.getNumRow() - 1);
|
||
var dimTabellaMAMBA = datitabMAMBA.GetRowDim() * (datitabMAMBA.getNumRow()+1);
|
||
#endregion
|
||
|
||
document.getLastPos();
|
||
document.setLastPos(dimTabellaMAMBA);
|
||
|
||
#region Tabella Totale Complessita Prodotti Medio Bassa Medio Alta Alta
|
||
DatiTabella datitabTotMBMAA = new DatiTabella();
|
||
Tabella tabProdottiMedioBMAA = new Tabella(document.getMargineLeft(), document.getLastPos());
|
||
|
||
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tabProdottiMedioBMAA.HeaderFont = 8;
|
||
tabProdottiMedioBMAA.AltezzaCella = 23;
|
||
tabProdottiMedioBMAA.Header = false;
|
||
tabProdottiMedioBMAA.LineaFineTabella = false;
|
||
tabProdottiMedioBMAA.Datasource = datitabTotMBMAA.table;
|
||
datitabTotMBMAA.table = set.Tables["TotaliComplessita"].Select("Ordine=3").CopyToDataTable(); ;
|
||
|
||
tabProdottiMedioBMAA.Colonne.Add(new Colonna("Descrizione", "", 328, TipoAllineamento.SINISTRA, true, 7, true));
|
||
tabProdottiMedioBMAA.Colonne.Add(new Colonna("SommaControvalore", "", 100, TipoAllineamento.DESTRA, true, 7, true));
|
||
tabProdottiMedioBMAA.Colonne.Add(new Colonna("SommaPesi", "", 92, TipoAllineamento.DESTRA, true, 7, true));
|
||
|
||
int paginaCorrente = document.CurrentPage;
|
||
|
||
tabProdottiMedioBMAA.Draw(datitabTotMBMAA, document);
|
||
|
||
dim = datitabTotMBMAA.GetRowDim() * (datitabTotMBMAA.getNumRow() - 1);
|
||
#endregion
|
||
|
||
/*** Fix nel caso in cui le righe del totale parziale dell'ultima tabella e quello totale vengono scritti nella pagina successiva ***/
|
||
if ((document.CurrentPage != paginaCorrente) && (document.getLastPos() <= 165))
|
||
{
|
||
document.setLastPos(datitabTotMBMAA.GetRowDim() + 23);
|
||
}
|
||
else
|
||
document.setLastPos(dim + 2);
|
||
|
||
#region Tabella Totale Generale
|
||
DatiTabella datitabTotGenerale = new DatiTabella();
|
||
Tabella tabTotGenerale = new Tabella(document.getMargineLeft(), document.getLastPos());
|
||
|
||
|
||
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tabTotGenerale.HeaderFont = 8;
|
||
tabTotGenerale.AltezzaCella = 23;
|
||
tabTotGenerale.Header = false;
|
||
tabTotGenerale.LineaFineTabella = false;
|
||
tabTotGenerale.Datasource = datitabTotGenerale.table;
|
||
datitabTotGenerale.table = set.Tables["TotaleGenerale"];
|
||
|
||
tabTotGenerale.Colonne.Add(new Colonna("Descrizione", "", 328, TipoAllineamento.SINISTRA, true, 7, true));
|
||
tabTotGenerale.Colonne.Add(new Colonna("TotalePatrimonioCTV", "", 100, TipoAllineamento.DESTRA, true, 7, true));
|
||
tabTotGenerale.Colonne.Add(new Colonna("TotalePatrimonioPesi", "", 92, TipoAllineamento.DESTRA, true, 7, true));
|
||
|
||
tabTotGenerale.Draw(datitabTotGenerale, document);
|
||
#endregion
|
||
|
||
|
||
document.setNotaPieDiPagina(nota2);
|
||
document.setNotaPieDiPagina(nota1);
|
||
|
||
//Rimozione della pagina bianca dopo l'ultima
|
||
if (dataThread.TipoReport == "DIAGNOSI")
|
||
{
|
||
var xxxx = document.getLastPos();
|
||
document.setLastPos(document.getLastPos() * -1);
|
||
}
|
||
else
|
||
{
|
||
document.setLastPos(document.getLastPos() + 100);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
public void writeSezionePerTest(DataThread dataThread)
|
||
{
|
||
/*** TEST - Verifica Tempistica 09/11/2023 - Pino ****/
|
||
/*** Inserimento log per verifica tempistica della sezione ***/
|
||
//DateTimeOffset dateOffsetValueIni = DateTimeOffset.Parse(DateTime.Now.ToString("hh:mm:ss.ffff"));
|
||
/*************************************************************/
|
||
|
||
|
||
|
||
|
||
DocumentPDF document = dataThread.DocumentPDF;
|
||
DataSetS180 set = (DataSetS180)dataThread.Data.DatiSezione;
|
||
|
||
|
||
|
||
//20180820 CR Professionali: la tabella non va visualizzata per i clienti professionali
|
||
if (!dataThread.IsProfessionalClient)
|
||
{
|
||
if (set.Tables["DettaglioComplessita"].Rows.Count > 0)
|
||
{
|
||
// 20181219 Fix bug di spaginazione della tabella complessità alta, in caso venga stampata a cavallo di due pagine
|
||
//if (!document.LastSectionCheckIn.Equals("S179")) // Se non si è passati per la S179
|
||
if (!document.LastSectionCheckIn.Equals("S184")) // Se non si è passati per la S184 o per la 179
|
||
{
|
||
//if (dataThread.TipoReport.Equals("DIAGNOSI"))
|
||
//{
|
||
// document.changePage();
|
||
// document.nextPage(document.getMargineLeft());
|
||
//}
|
||
}
|
||
else
|
||
{
|
||
if (document.getLastPos() >= 500)
|
||
{
|
||
document.changePage();
|
||
document.nextPage(document.getMargineLeft());
|
||
}
|
||
}
|
||
|
||
document.LastSectionCheckIn = "S180";
|
||
|
||
ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage();
|
||
|
||
document.setSezTitoloDiagnosi(dataThread.SezioneReport.Titolo);
|
||
|
||
string nota1 = dataThread.SezioneReport.Nota;
|
||
string nota2 = dataThread.SezioneReport.NotaAlternativa;
|
||
|
||
DataRow[] row = set.Tables["DettaglioComplessita"].Select("Ordine=1");
|
||
|
||
string testo = string.Empty;
|
||
if (row.Length > 0)
|
||
{
|
||
testo = row[0]["Descrizione"].ToString();
|
||
}
|
||
document.setChapterHeader(testo, 0, 520, 8);
|
||
|
||
document.setHeaderSpace(5);
|
||
|
||
#region Aggiungo e valorizzo colonna dei totali per il ctv e per il peso
|
||
DatiTabella datitab = new DatiTabella();
|
||
DataTable tabFinale = new DataTable();
|
||
List<DettaglioConcentrazioneProdottiComplessi> _listaComplessiva = new List<DettaglioConcentrazioneProdottiComplessi>();
|
||
|
||
List<DettaglioConcentrazioneProdottiComplessi> _lista = UtilityBusinessLayer.ConvertTo<DettaglioConcentrazioneProdottiComplessi>(set.Tables["DettaglioComplessita"].Select("Ordine=1").CopyToDataTable());
|
||
|
||
decimal totaleOrdine = 0.0M;
|
||
decimal pesoOrdine = 0.0M;
|
||
|
||
totaleOrdine = _lista.Max(mm => mm.ControvaloreDecimale);
|
||
pesoOrdine = _lista.Max(mm => mm.PesoDecimale);
|
||
|
||
|
||
if (totaleOrdine != 0.0M)
|
||
{
|
||
_lista.Add(new DettaglioConcentrazioneProdottiComplessi()
|
||
{
|
||
CodiceContratto = "TOTALE PRODOTTI CON COMPLESSITA’ ALTA",
|
||
Ordine = 1,
|
||
Controvalore = Convert.ToDecimal(totaleOrdine).ToString("#,#0.00"),
|
||
Peso = Convert.ToDecimal(pesoOrdine).ToString("#,#0.00")
|
||
});
|
||
|
||
_listaComplessiva = _lista.Select(s => s).ToList();
|
||
}
|
||
|
||
_lista.Clear();
|
||
totaleOrdine = 0.0M;
|
||
pesoOrdine = 0.0M;
|
||
|
||
_lista = UtilityBusinessLayer.ConvertTo<DettaglioConcentrazioneProdottiComplessi>(set.Tables["DettaglioComplessita"].Select("Ordine=2").CopyToDataTable());
|
||
|
||
totaleOrdine = _lista.Max(mm => mm.ControvaloreDecimale);
|
||
pesoOrdine = _lista.Max(mm => mm.PesoDecimale);
|
||
|
||
if (totaleOrdine != 0.0M)
|
||
{
|
||
_lista.Add(new DettaglioConcentrazioneProdottiComplessi()
|
||
{
|
||
CodiceContratto = "TOTALE PRODOTTI CON COMPLESSITA’ MEDIO - ALTA e ALTA",
|
||
Ordine = 2,
|
||
Controvalore = Convert.ToDecimal(totaleOrdine).ToString("#,#0.00"),
|
||
Peso = Convert.ToDecimal(pesoOrdine).ToString("#,#0.00")
|
||
});
|
||
|
||
_listaComplessiva.AddRange(_lista);
|
||
}
|
||
|
||
_lista.Clear();
|
||
totaleOrdine = 0.0M;
|
||
pesoOrdine = 0.0M;
|
||
|
||
_lista = UtilityBusinessLayer.ConvertTo<DettaglioConcentrazioneProdottiComplessi>(set.Tables["DettaglioComplessita"].Select("Ordine=3").CopyToDataTable());
|
||
|
||
totaleOrdine = _lista.Max(mm => mm.ControvaloreDecimale);
|
||
pesoOrdine = _lista.Max(mm => mm.PesoDecimale);
|
||
|
||
if (totaleOrdine != 0.0M)
|
||
{
|
||
_lista.Add(new DettaglioConcentrazioneProdottiComplessi()
|
||
{
|
||
CodiceContratto = "TOTALE PRODOTTI CON COMPLESSITA’ MEDIO - BASSA,MEDIO - ALTA e ALTA",
|
||
Ordine = 3,
|
||
Controvalore = Convert.ToDecimal(totaleOrdine).ToString("#,#0.00"),
|
||
Peso = Convert.ToDecimal(pesoOrdine).ToString("#,#0.00")
|
||
});
|
||
|
||
_listaComplessiva.AddRange(_lista);
|
||
}
|
||
|
||
tabFinale = UtilityBusinessLayer.ToDataTable<DettaglioConcentrazioneProdottiComplessi>(_listaComplessiva);
|
||
|
||
Tabella tab = new Tabella(document.getMargineLeft(), document.getLastPos());
|
||
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tab.HeaderFont = 8;
|
||
tab.Header = true;
|
||
tab.LineaFineTabella = false;
|
||
tab.Datasource = datitab.table;
|
||
|
||
datitab.table = tabFinale;//.Select("Ordine <> 3").CopyToDataTable();
|
||
|
||
datitab.setY(document.getLastPos());
|
||
|
||
tab.Colonne.Add(new Colonna("CodiceContratto", "Codice Contratto", 80, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tab.Colonne.Add(new Colonna("NomeProdotto", "Nome Prodotto", 148, TipoAllineamento.SINISTRA, false, 7, false));
|
||
tab.Colonne.Add(new Colonna("Complessita", "Complessità", 100, TipoAllineamento.DESTRA, false, 7, false));
|
||
tab.Colonne.Add(new Colonna("Controvalore", "Controvalore* (€)", 100, TipoAllineamento.DESTRA, false, 7, false));
|
||
tab.Colonne.Add(new Colonna("Peso", "Peso** (%)", 92, TipoAllineamento.DESTRA, false, 7, false));
|
||
|
||
tab.AltezzaCella = 23;
|
||
tab.SezioneDiProvenienza = "S180";
|
||
|
||
datitab.setCellSpace(0);
|
||
|
||
//setta posizione tabella
|
||
//tab.DrawProdottiComplessita(datitab, document);
|
||
tab.Draw(datitab, document);
|
||
|
||
#endregion
|
||
|
||
|
||
float posizioneFinaleTabella = (document.getLastPos() + datitab.GetTotalRowsDim());
|
||
|
||
|
||
#region Tabella Totale Generale
|
||
DatiTabella datitabTotGenerale = new DatiTabella();
|
||
Tabella tabTotGenerale = new Tabella(document.getMargineLeft()-3, posizioneFinaleTabella + 35); //document.getLastPos()
|
||
|
||
|
||
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tabTotGenerale.HeaderFont = 8;
|
||
tabTotGenerale.AltezzaCella = 23;
|
||
tabTotGenerale.Header = false;
|
||
tabTotGenerale.LineaFineTabella = false;
|
||
tabTotGenerale.Datasource = datitabTotGenerale.table;
|
||
datitabTotGenerale.table = set.Tables["TotaleGenerale"];
|
||
|
||
tabTotGenerale.Colonne.Add(new Colonna("Descrizione", "", 328, TipoAllineamento.SINISTRA, true, 7, true));
|
||
tabTotGenerale.Colonne.Add(new Colonna("TotalePatrimonioCTV", "", 100, TipoAllineamento.DESTRA, true, 7, true));
|
||
tabTotGenerale.Colonne.Add(new Colonna("TotalePatrimonioPesi", "", 92, TipoAllineamento.DESTRA, true, 7, true));
|
||
|
||
tabTotGenerale.Draw(datitabTotGenerale, document);
|
||
#endregion
|
||
|
||
|
||
document.setNotaPieDiPagina(nota2);
|
||
document.setNotaPieDiPagina(nota1);
|
||
|
||
|
||
//Prima impostazione di LastPos per aggiustare la pagina successiva valida solo per gli scaduti
|
||
if(dataThread.Scaduto == 2)
|
||
{
|
||
document.setLastPos(document.getLastPos() + 300);
|
||
}
|
||
|
||
//Rimozione della pagina bianca dopo l'ultima
|
||
if (dataThread.TipoReport == "DIAGNOSI")
|
||
document.setLastPos(document.getLastPos() * -1);
|
||
else
|
||
document.setLastPos(document.getLastPos() + 100);
|
||
|
||
|
||
}
|
||
}
|
||
|
||
/*** TEST - Verifica Tempistica 09/11/2023 - Pino ****/
|
||
/*** Inserimento log per verifica tempistica della sezione ***/
|
||
//DateTimeOffset dateOffsetValueFin = DateTimeOffset.Parse(DateTime.Now.ToString("hh:mm:ss.ffff"));
|
||
//var tDiff = dateOffsetValueFin - dateOffsetValueIni;
|
||
//logger.Trace("S180 " + tDiff);
|
||
/**************************************************************/
|
||
}
|
||
#endregion
|
||
}
|
||
}
|