1678 lines
75 KiB
C#
1678 lines
75 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using Consulenza.ReportModeler.Business.Base.Proposta;
|
|
using Consulenza.ReportWriter.Manager;
|
|
using Consulenza.ReportCommon;
|
|
using Consulenza.ReportWriter.Manager.Chapter.Entity;
|
|
using Consulenza.ReportWriter.Manager.Section.Entity;
|
|
using Consulenza.ReportWriter.Business.Entity;
|
|
using Consulenza.ReportWriter.Business;
|
|
using Consulenza.ReportWriter.Manager.Integration;
|
|
using System.Linq;
|
|
using Consulenza.ReportWriter.Business.Headers;
|
|
|
|
|
|
namespace Consulenza.ReportModeler.Manager
|
|
{
|
|
/// <summary>
|
|
/// Gestore di rendering della struttura del Report sul configuratore (BackOffice)
|
|
/// e gestore della stampa delle sezioni da inserire nel documento PDF in stampa (Services di Produzione).
|
|
/// </summary>
|
|
public class ReportStructManager
|
|
{
|
|
public Consulenza.DataServices.DatiSeiUnico datiSeiUnico;
|
|
public ReportStructManager() { }
|
|
public virtual byte[] CreateReport_Unico(ReportStruct struttura, Consulenza.DataServices.DatiSeiUnico datiSeiUnico)
|
|
{
|
|
//#region idReport e idModello del report da stampare. Ogni tipologia di report avrà una logica di business diversa.
|
|
|
|
//var reportStruct = new Business.Unica.Nucleo.ReportStructBusiness();
|
|
|
|
//var idReport = reportStruct.GetIdReport();
|
|
//var idModel = reportStruct.GetIdModel();
|
|
|
|
//#endregion
|
|
|
|
//#region Recupero la struttura del report (_reportStructure)
|
|
|
|
//_reportStructure = GetStructure(idReport, idModel, struttura.Schede.Select(o => o.Id).ToList());
|
|
|
|
//#endregion
|
|
|
|
//#region Recupero le variabili di ambiente del report (_reportEnvironment)
|
|
|
|
//_reportEnvironment = GetEnvironment(chiaveCliente, idReport, idModel, new NucleoUnica());
|
|
//_reportEnvironment.ReportStruct = struttura;
|
|
|
|
////#endregion
|
|
|
|
return Draw(struttura, datiSeiUnico);
|
|
}
|
|
private byte[] Draw(ReportStruct struttura, Consulenza.DataServices.DatiSeiUnico datiSeiUnico)
|
|
{
|
|
var reportEntities = new List<EntityBase>();
|
|
|
|
string typeNameIntegration;
|
|
Type typeIntegration;
|
|
|
|
var environmentFacade = new EnvironmentFacade(_reportEnvironment);
|
|
var writerEntities = new WriterEntities(environmentFacade);
|
|
|
|
environmentFacade.datiSeiUnico = datiSeiUnico;
|
|
|
|
#region Logica di Integrazione di layout
|
|
|
|
var integrationLayoutRows = _reportStructure.Select("Integrazione_ChiaveLayout is not null");
|
|
|
|
foreach (var itemIntegrationLayout in integrationLayoutRows)
|
|
{
|
|
typeNameIntegration = string.Format("{0}.{1}, Consulenza.ReportWriter.Manager", itemIntegrationLayout["Integrazione_NameSpace"], itemIntegrationLayout["Integrazione_CodiceClasse"]);
|
|
typeIntegration = Type.GetType(typeNameIntegration);
|
|
|
|
if (typeIntegration != null)
|
|
{
|
|
//Creo l'istanza passando al costruttore la DataGeometry e recupero la nuova struttura del report. La struttura è definita dalle classi che ereditato IntegrationLayout
|
|
_reportStructure = ((IntegrationLayout)Activator.CreateInstance(typeIntegration, _reportStructure, itemIntegrationLayout, _reportEnvironment)).RecalculateStructure();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
var capitoloChiaveLayoutPrecedente = string.Empty;
|
|
|
|
foreach (DataRow row in _reportStructure.Rows)
|
|
{
|
|
var idCapitolo = Convert.ToInt32(row["idCapitolo"]);
|
|
var idSection = Convert.ToInt32(row["idSezione"]);
|
|
var exist = true; // determina l'esistenza e quindi la stampa del capitolo e sezione.
|
|
|
|
#region Integrazione Layout
|
|
|
|
typeNameIntegration = string.Format("{0}.{1}, Consulenza.ReportWriter.Manager", row["Integrazione_NameSpace"], row["Integrazione_CodiceClasse"]);
|
|
typeIntegration = Type.GetType(typeNameIntegration);
|
|
|
|
var integrationLayout = row["Integrazione_ChiaveLayout"] == DBNull.Value || typeIntegration == null ? null : ((IntegrationLayout)Activator.CreateInstance(typeIntegration, _reportStructure, row, _reportEnvironment));
|
|
var duplicazioneCapitolo = integrationLayout != null && integrationLayout.DuplicaCapitolo;
|
|
|
|
#endregion
|
|
|
|
#region Namespaces ConsulenzaUnica
|
|
string desinenzaNamespace = "";
|
|
switch (_reportEnvironment.ReportType)
|
|
{
|
|
case ReportType.Unica_Diagnosi:
|
|
desinenzaNamespace = ".Diagnosi";
|
|
break;
|
|
case ReportType.Unica_Monitoraggio:
|
|
desinenzaNamespace = ".Monitoraggio";
|
|
break;
|
|
case ReportType.Unica_Proposta:
|
|
desinenzaNamespace = ".Proposta";
|
|
break;
|
|
case ReportType.Unica_Nucleo:
|
|
desinenzaNamespace = ".Nucleo";
|
|
break;
|
|
}
|
|
#endregion
|
|
|
|
#region Capitoli
|
|
|
|
if (capitoloChiaveLayoutPrecedente != row["Capitolo_ChiaveLayout"].ToString() || duplicazioneCapitolo)
|
|
{
|
|
var typeNameChapter = string.Format("{0}.{1}, Consulenza.ReportWriter.Manager", row["Capitolo_NameSpace"] + desinenzaNamespace, row["Capitolo_CodiceClasse"]);
|
|
var typeChapter = Type.GetType(typeNameChapter);
|
|
|
|
if (typeChapter != null)
|
|
{
|
|
//Creo l'istanza passando al costruttore la DataGeometry:
|
|
Chapter chapther;
|
|
|
|
if (integrationLayout == null)
|
|
chapther = Activator.CreateInstance(typeChapter, environmentFacade, idCapitolo, Convert.ToBoolean(row["Capitolo_RipetiOgniPagina"])) as Chapter;
|
|
else
|
|
chapther = Activator.CreateInstance(typeChapter, environmentFacade, idCapitolo, Convert.ToBoolean(row["Capitolo_RipetiOgniPagina"]), integrationLayout) as Chapter;
|
|
|
|
//******* Determino l'esistenza del capitolo e sezione***********
|
|
exist = chapther.Exist;
|
|
|
|
if (chapther != null && exist)
|
|
{
|
|
// Imposto le propietà ChapterFacade
|
|
chapther.ChapterFacade.RepeatOnEachPage = chapther.RepeatOnEachPage;
|
|
|
|
//Accodo l'istanza alla collezione.
|
|
reportEntities.Add(chapther);
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Paragrafi
|
|
|
|
// Attualmente non è richiesta la gestione dei paragrafi
|
|
|
|
#endregion
|
|
|
|
#region Sezioni
|
|
|
|
var typeNameSection = string.Format("{0}.{1}, Consulenza.ReportWriter.Manager", row["Sezione_NameSpace"] + desinenzaNamespace, row["Sezione_CodiceClasse"]);
|
|
var typeSection = Type.GetType(typeNameSection);
|
|
|
|
//Creo l'istanza passando al costruttore la DataGeometry:
|
|
Section section;
|
|
|
|
if (integrationLayout == null)
|
|
section = Activator.CreateInstance(typeSection, environmentFacade, idSection) as Section;
|
|
else
|
|
section = Activator.CreateInstance(typeSection, environmentFacade, idSection, integrationLayout) as Section;
|
|
|
|
if (section != null && exist)
|
|
{
|
|
//Accodo l'istanza alla collezione.
|
|
reportEntities.Add(section);
|
|
}
|
|
|
|
#endregion
|
|
|
|
capitoloChiaveLayoutPrecedente = row["Capitolo_ChiaveLayout"].ToString();
|
|
}
|
|
|
|
return writerEntities.RenderEntities(reportEntities);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Costruttore
|
|
/// </summary>
|
|
/// <param name="cliente">cliente</param>
|
|
/// <param name="privatebanker">privatebanker</param>
|
|
public ReportStructManager(Cliente cliente, PrivateBanker privatebanker, bool propostabaseCU)
|
|
{
|
|
_cliente = cliente;
|
|
_privatebanker = privatebanker;
|
|
_propostaBaseCU = propostabaseCU;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Costruttore
|
|
/// </summary>
|
|
/// <param name="cliente">cliente</param>
|
|
/// <param name="privatebanker">privatebanker</param>
|
|
public ReportStructManager(Cliente cliente, PrivateBanker privatebanker)
|
|
{
|
|
_cliente = cliente;
|
|
_privatebanker = privatebanker;
|
|
|
|
}
|
|
|
|
|
|
public ReportStructManager(Cliente cliente, PrivateBanker privatebanker, Delegato privateDelegato)
|
|
{
|
|
_cliente = cliente;
|
|
_privatebanker = privatebanker;
|
|
_privateDelegato = privateDelegato;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Costruttore
|
|
/// </summary>
|
|
/// <param name="nucleo">nucleo</param>
|
|
/// <param name="privatebanker">privatebanker</param>
|
|
public ReportStructManager(Nucleo nucleo, PrivateBanker privatebanker)
|
|
{
|
|
_nucleo = nucleo;
|
|
_privatebanker = privatebanker;
|
|
}
|
|
/// <summary>
|
|
/// Imposta o recupera il booleano che indica se proposta base è per CU o CB
|
|
/// </summary>
|
|
private bool _propostaBaseCU;
|
|
/// <summary>
|
|
/// Imposta o recupera il booleano che indica se immobiliare è evoluta o CU
|
|
/// </summary>
|
|
private bool _immobiliareCU;
|
|
/// <summary>
|
|
/// Imposta o recupera il Cliente del report
|
|
/// </summary>
|
|
private readonly Cliente _cliente;
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera il PrivateBanker del report
|
|
/// </summary>
|
|
private readonly PrivateBanker _privatebanker;
|
|
|
|
|
|
private readonly Delegato _privateDelegato;
|
|
|
|
/// <summary>
|
|
/// La struttura del Report
|
|
/// </summary>
|
|
private DataTable _reportStructure;
|
|
|
|
/// <summary>
|
|
/// Gestore dell'ambiente generale di elaborazione (cliente, template, rete etc ...).
|
|
/// </summary>
|
|
private ReportEnvironment _reportEnvironment;
|
|
|
|
/// <summary>
|
|
/// Imposta o recupera le informazioni sul Nucleo
|
|
/// </summary>
|
|
private readonly Nucleo _nucleo;
|
|
|
|
#region CONSULENZA BASE
|
|
|
|
/// <summary>
|
|
/// Converte la rappresentazione interna del Report in un array binario costituente il documento PDF del Report.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">chiave del cliente (ChiaveClientePB)</param>
|
|
/// <param name="chiaveProposta">chiave della Proposta</param>
|
|
/// <param name="reportType">tipo di report che si vuol produrre</param>
|
|
/// <returns></returns>
|
|
public virtual byte[] CreateReport(long chiaveCliente, int chiaveProposta, ReportType reportType, bool unica)
|
|
{
|
|
#region Recupero l'idReport e idModello del report da stampare. Ogni tipologia di report avrà una logica di business diversa.
|
|
_propostaBaseCU = unica;
|
|
var idModel = 0;
|
|
var idReport = 0;
|
|
|
|
|
|
|
|
if (reportType == ReportType.Base_Proposta)
|
|
{
|
|
var reportStruct = new ReportStructBusiness();
|
|
|
|
idReport = reportStruct.GetIdReport();
|
|
idModel = reportStruct.GetIdModel(chiaveCliente, chiaveProposta, _propostaBaseCU);
|
|
}
|
|
|
|
if (idModel <= 0)
|
|
throw new Exception("Non è stato trovato l'id del modello per il report da produrre");
|
|
|
|
#endregion
|
|
|
|
#region Recupero la struttura del report (_reportStructure)
|
|
|
|
_reportStructure = GetStructure(idReport, idModel);
|
|
|
|
#endregion
|
|
|
|
|
|
#region lettura rappresentate legale/delegato
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#region Recupero le variabili di ambiente del report (_reportEnvironment)
|
|
|
|
_reportEnvironment = GetEnvironment(chiaveCliente, idReport, idModel, new Proposta { Chiave = chiaveProposta, PropostaCBUnica = _propostaBaseCU });
|
|
|
|
#endregion
|
|
|
|
return Draw();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera informazioni per la classe ReportEnvironment tra cui :Template del PDF da utilizzare.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">chiave del cliente (ChiaveClientePB)</param>
|
|
/// <param name="idReport">id del report da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Report]</param>
|
|
/// <param name="idModel">id del modello da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Modelli]</param>
|
|
/// <param name="proposta">info sulla proposta oggetto del report</param>
|
|
/// <returns>ReportEnvironment</returns>
|
|
private ReportEnvironment GetEnvironment(long chiaveCliente, int idReport, int idModel, Proposta proposta)
|
|
{
|
|
var e = new ReportEnvironment(chiaveCliente, proposta)
|
|
{
|
|
Cliente = _cliente,
|
|
PrivateBanker = _privatebanker,
|
|
PrivateDelegato = _privateDelegato
|
|
};
|
|
|
|
#region Imposto il template
|
|
switch (e.PrivateBanker.CodiceRete)
|
|
{
|
|
case "F":
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.proposta.cb.bf.copertina.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.proposta.cb.bf.pagina.pdf";
|
|
break;
|
|
|
|
case "S":
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.proposta.cb.spi.copertina.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.proposta.cb.spi.pagina6.pdf";
|
|
break;
|
|
|
|
default:
|
|
throw new Exception("Rete non valorizzata in Environment per PB:" + e.PrivateBanker.CodiceRete + e.PrivateBanker.Codice + " CLIENTE:" + e.Cliente.CodiceFiscale + " IDPROPOSTA:" + e.Proposta.Chiave + " CHIAVECLIENTEPB:" + chiaveCliente);
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#region Informazioni aggiuntive sulla Proposta
|
|
|
|
if (idModel.Equals(1))
|
|
e.Proposta.EsitoAdeguatezza = TipologiaEsitoAdeguatezza.Adeguata;
|
|
else if (idModel.Equals(2))
|
|
e.Proposta.EsitoAdeguatezza = TipologiaEsitoAdeguatezza.NonAdeguata;
|
|
#endregion
|
|
|
|
e.ReportId = idReport;
|
|
e.ModelId = idModel;
|
|
|
|
return e;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region IMMOBILIARE
|
|
|
|
/// <summary>
|
|
/// Ottiene un array binario del PDF del report di Immobiliare di Diagnosi di ConsulenzaEvoluta per un cliente identificato con chiaveClientePb.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">Chiave del cliente</param>
|
|
/// <param name="idImmobileCatasto">lista di id immobile al catasto. Corrisponde al campo chiaveProdottoTerzi della tabella ConsulenzaEvoluta.PatrimonioTerzi</param>
|
|
/// <param name="idSezione">lista delle sezioni. Campo:IdSezione, tabella:Sezioni, database:ReportModeler2</param>
|
|
public virtual byte[] CreaReport_ImmobiliareDiagnosi(long chiaveCliente, List<string> idImmobileCatasto, List<Int32> idSezione, bool unica)
|
|
{
|
|
#region idReport e idModello del report da stampare. Ogni tipologia di report avrà una logica di business diversa.
|
|
_immobiliareCU = unica;
|
|
var reportStruct = new Business.Immobiliare.Diagnosi.ReportStructBusiness();
|
|
|
|
var idReport = reportStruct.GetIdReport();
|
|
var idModel = reportStruct.GetIdModel();
|
|
|
|
#endregion
|
|
|
|
#region Recupero la struttura del report (_reportStructure)
|
|
|
|
_reportStructure = GetStructure(idReport, idModel, idSezione);
|
|
|
|
#endregion
|
|
|
|
#region Recupero le variabili di ambiente del report (_reportEnvironment)
|
|
|
|
_reportEnvironment = GetEnvironment(chiaveCliente, idReport, idModel, new Immobiliare { IdImmobileCatasto = idImmobileCatasto, IdSezione = idSezione, ImmobiliareCEUnica = unica });
|
|
|
|
#endregion
|
|
|
|
return Draw();
|
|
}
|
|
|
|
public virtual byte[] CreaReport_ImmobiliareMonitoraggio(long chiaveCliente, List<string> idImmobileCatasto, List<Int32> idSezione, bool bBatch = false)
|
|
{
|
|
#region idReport e idModello del report da stampare. Ogni tipologia di report avrà una logica di business diversa.
|
|
_immobiliareCU = true; // unica
|
|
var reportStruct = new Business.Immobiliare.Monitoraggio.ReportStructBusiness();
|
|
|
|
var idReport = reportStruct.GetIdReport();
|
|
var idModel = reportStruct.GetIdModel();
|
|
|
|
#endregion
|
|
|
|
#region Recupero la struttura del report (_reportStructure)
|
|
|
|
_reportStructure = GetStructure(idReport, idModel, idSezione);
|
|
|
|
#endregion
|
|
|
|
#region Recupero le variabili di ambiente del report (_reportEnvironment)
|
|
|
|
_reportEnvironment = GetEnvironment(chiaveCliente, idReport, idModel, new MonitoraggioImmobiliare { IdImmobileCatasto = idImmobileCatasto, IdSezione = idSezione });
|
|
|
|
#endregion
|
|
|
|
return Draw(bBatch);
|
|
}
|
|
public virtual byte[] CreaReport_ImmobiliareMonitoraggioNuclei(Nucleo nucleo, List<long> chiaviClientiPb, List<string> idImmobileCatasto, List<Int32> idSezione)
|
|
{
|
|
#region idReport e idModello del report da stampare. Ogni tipologia di report avrà una logica di business diversa.
|
|
_immobiliareCU = true;
|
|
var reportStruct = new Business.Immobiliare.MonitoraggioNuclei.ReportStructBusiness();
|
|
|
|
|
|
var idReport = reportStruct.GetIdReport();
|
|
var idModel = reportStruct.GetIdModel();
|
|
|
|
#endregion
|
|
|
|
#region Recupero la struttura del report (_reportStructure)
|
|
|
|
_reportStructure = GetStructure(idReport, idModel, idSezione);
|
|
|
|
#endregion
|
|
|
|
#region Recupero le variabili di ambiente del report (_reportEnvironment)
|
|
|
|
if (idImmobileCatasto.Count > 0 && idImmobileCatasto[0] != "")
|
|
{
|
|
nucleo.IdImmobileCatasto = idImmobileCatasto;
|
|
nucleo.ChiaviClientiPBImmobili = chiaviClientiPb;
|
|
}
|
|
|
|
nucleo.ImmobiliareCEUnica = true;
|
|
nucleo.IdSezione = idSezione;
|
|
_reportEnvironment = GetEnvironment(nucleo, idReport, idModel, new MonitoraggioImmobiliareNuclei { IdImmobileCatasto = idImmobileCatasto, IdSezione = idSezione });
|
|
|
|
#endregion
|
|
|
|
return Draw();
|
|
}
|
|
|
|
public virtual byte[] CreaReport_ImmobiliareMonitoraggioNucleiCU(Nucleo nucleo, List<long> chiaviClientiPb, List<string> idImmobileCatasto, ReportStruct strutturaReport)
|
|
{
|
|
#region idReport e idModello del report da stampare. Ogni tipologia di report avrà una logica di business diversa.
|
|
_immobiliareCU = true;
|
|
var reportStruct = new Business.Immobiliare.MonitoraggioNuclei.ReportStructBusiness();
|
|
|
|
|
|
var idReport = reportStruct.GetIdReport();
|
|
var idModel = reportStruct.GetIdModel();
|
|
|
|
#endregion
|
|
|
|
#region Recupero la struttura del report (_reportStructure)
|
|
|
|
_reportStructure = GetStructure(idReport, idModel, strutturaReport.Schede.Select(o => o.Id).ToList());
|
|
|
|
#endregion
|
|
|
|
#region Recupero le variabili di ambiente del report (_reportEnvironment)
|
|
|
|
if (idImmobileCatasto.Count > 0 && idImmobileCatasto[0] != "")
|
|
{
|
|
nucleo.IdImmobileCatasto = idImmobileCatasto;
|
|
nucleo.ChiaviClientiPBImmobili = chiaviClientiPb;
|
|
}
|
|
|
|
nucleo.ImmobiliareCEUnica = true;
|
|
nucleo.IdSezione = strutturaReport.Schede.Select(o => o.Id).ToList();
|
|
_reportEnvironment = GetEnvironment(nucleo, idReport, idModel, new MonitoraggioImmobiliareNuclei { IdImmobileCatasto = idImmobileCatasto, IdSezione = strutturaReport.Schede.Select(o => o.Id).ToList() });
|
|
|
|
#endregion
|
|
|
|
return Draw();
|
|
}
|
|
|
|
|
|
|
|
public virtual byte[] CreaReport_ImmobiliareMonitoraggioCU(long chiaveCliente, List<string> idImmobileCatasto, ReportStruct strutturaReport)
|
|
{
|
|
#region idReport e idModello del report da stampare. Ogni tipologia di report avrà una logica di business diversa.
|
|
_immobiliareCU = true; // unica
|
|
var reportStruct = new Business.Immobiliare.Monitoraggio.ReportStructBusiness();
|
|
|
|
var idReport = reportStruct.GetIdReport();
|
|
var idModel = reportStruct.GetIdModel();
|
|
|
|
#endregion
|
|
|
|
#region Recupero la struttura del report (_reportStructure)
|
|
|
|
_reportStructure = GetStructure(idReport, idModel, strutturaReport.Schede.Select(o => o.Id).ToList());
|
|
|
|
#endregion
|
|
|
|
#region Recupero le variabili di ambiente del report (_reportEnvironment)
|
|
|
|
_reportEnvironment = GetEnvironment(chiaveCliente, idReport, idModel, new MonitoraggioImmobiliare { IdImmobileCatasto = idImmobileCatasto, IdSezione = strutturaReport.Schede.Select(o => o.Id).ToList() });
|
|
|
|
#endregion
|
|
|
|
return Draw();
|
|
}
|
|
/// <summary>
|
|
/// Recupera informazioni per la classe ReportEnvironment tra cui :Template del PDF da utilizzare.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">chiave del cliente (ChiaveClientePB)</param>
|
|
/// <param name="idReport">id del report da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Report]</param>
|
|
/// <param name="idModel">id del modello da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Modelli]</param>
|
|
/// <param name="immobiliare">info su immobiliare oggetto del report</param>
|
|
/// <returns>ReportEnvironment</returns>
|
|
private ReportEnvironment GetEnvironment(long chiaveCliente, int idReport, int idModel, Immobiliare immobiliare)
|
|
{
|
|
var e = new ReportEnvironment(chiaveCliente, immobiliare)
|
|
{
|
|
Cliente = _cliente,
|
|
PrivateBanker = _privatebanker
|
|
};
|
|
|
|
#region Imposto il template
|
|
switch (e.PrivateBanker.CodiceRete)
|
|
{
|
|
//case "F":
|
|
// e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.copertina.pdf";
|
|
// e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.pagina2.pdf";
|
|
// break;
|
|
|
|
//case "S":
|
|
// e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.copertina3.pdf";
|
|
// e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.pagina2.pdf";
|
|
// break;
|
|
case "F":
|
|
if (e.Cliente.FlagMonitoraggioImmobiliare)
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.copertinaDiagnosiContrattualizzato.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.paginaDiagnosiContrattualizzato.pdf";
|
|
}
|
|
else
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.copertinaDiagnosi.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.paginaDiagnosi.pdf";
|
|
}
|
|
break;
|
|
|
|
case "S":
|
|
if (e.Cliente.FlagMonitoraggioImmobiliare)
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.copertinaDiagnosiContrattualizzato.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.paginaDiagnosiContrattualizzato.pdf";
|
|
}
|
|
else
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.copertinaDiagnosi.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.paginaDiagnosi.pdf";
|
|
|
|
}
|
|
break;
|
|
|
|
default:
|
|
throw new Exception("Rete non valorizzata in Environment per PB:" + e.PrivateBanker.CodiceRete + e.PrivateBanker.Codice + " CLIENTE:" + e.Cliente.CodiceFiscale + " IDIMMOBILECATASTO:" + e.Immobiliare.IdImmobileCatasto + " CHIAVECLIENTEPB:" + chiaveCliente);
|
|
}
|
|
|
|
#endregion
|
|
|
|
e.ReportId = idReport;
|
|
e.ModelId = idModel;
|
|
|
|
return e;
|
|
}
|
|
|
|
|
|
private ReportEnvironment GetEnvironment(long chiaveCliente, int idReport, int idModel, MonitoraggioImmobiliare immobiliare)
|
|
{
|
|
var e = new ReportEnvironment(chiaveCliente, immobiliare)
|
|
{
|
|
Cliente = _cliente,
|
|
PrivateBanker = _privatebanker
|
|
};
|
|
|
|
#region Imposto il template
|
|
switch (e.PrivateBanker.CodiceRete)
|
|
{
|
|
//case "F":
|
|
// e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.MonitoraggioImmobiliare.cover_page_f.pdf";
|
|
// e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.MonitoraggioImmobiliare.regular_page_f.pdf";
|
|
// break;
|
|
|
|
//case "S":
|
|
// e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.MonitoraggioImmobiliare.cover_page_s.pdf";
|
|
// e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.MonitoraggioImmobiliare.regular_page_s.pdf";
|
|
// break;
|
|
case "F":
|
|
if (e.Cliente.FlagMonitoraggioImmobiliare)
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.copertinaMonitoraggioContrattualizzato.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.paginaMonitoraggioContrattualizzato.pdf";
|
|
}
|
|
else
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.copertinaMonitoraggio.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.paginaMonitoraggio.pdf";
|
|
}
|
|
|
|
break;
|
|
|
|
case "S":
|
|
if (e.Cliente.FlagMonitoraggioImmobiliare)
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.copertinaMonitoraggioContrattualizzato.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.paginaMonitoraggioContrattualizzato.pdf";
|
|
}
|
|
else
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.copertinaMonitoraggio.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.paginaMonitoraggio.pdf";
|
|
}
|
|
break;
|
|
|
|
default:
|
|
throw new Exception("Rete non valorizzata in Environment per PB:" + e.PrivateBanker.CodiceRete + e.PrivateBanker.Codice + " CLIENTE:" + e.Cliente.CodiceFiscale + " IDIMMOBILECATASTO:" + e.Immobiliare.IdImmobileCatasto + " CHIAVECLIENTEPB:" + chiaveCliente);
|
|
}
|
|
|
|
#endregion
|
|
|
|
e.ReportId = idReport;
|
|
e.ModelId = idModel;
|
|
|
|
return e;
|
|
}
|
|
|
|
private ReportEnvironment GetEnvironment(Nucleo nucleo, int idReport, int idModel, MonitoraggioImmobiliareNuclei immobiliareMonitoraggioNuclei)
|
|
{
|
|
var e = new ReportEnvironment(nucleo.ChiaveNucleo, nucleo, immobiliareMonitoraggioNuclei)
|
|
{
|
|
NucleoImmobiliare = nucleo,
|
|
PrivateBanker = _privatebanker
|
|
};
|
|
#region Imposto il template
|
|
|
|
switch (e.PrivateBanker.CodiceRete)
|
|
{
|
|
case "F":
|
|
if (e.NucleoImmobiliare.HasServizioAggiuntivoImmobiliare)
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.copertinaMonitoraggioContrattualizzato.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.paginaMonitoraggioContrattualizzato.pdf";
|
|
}
|
|
else
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.copertinaMonitoraggio.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.paginaMonitoraggio.pdf";
|
|
}
|
|
|
|
break;
|
|
|
|
case "S":
|
|
if (e.NucleoImmobiliare.HasServizioAggiuntivoImmobiliare)
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.copertinaMonitoraggioContrattualizzato.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.paginaMonitoraggioContrattualizzato.pdf";
|
|
}
|
|
else
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.copertinaMonitoraggio.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.paginaMonitoraggio.pdf";
|
|
}
|
|
break;
|
|
|
|
default:
|
|
throw new Exception("Rete non valorizzata in Environment per PB:" + e.PrivateBanker.CodiceRete + e.PrivateBanker.Codice + " CLIENTE:" + e.Cliente.CodiceFiscale + " IDIMMOBILECATASTO:" + e.Immobiliare.IdImmobileCatasto + " CHIAVECLIENTEPB:" + nucleo.ChiaveClientePBPrincipale);
|
|
}
|
|
|
|
#endregion
|
|
|
|
e.ReportId = idReport;
|
|
e.ModelId = idModel;
|
|
|
|
return e;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// Ottiene un array binario del PDF del report di Immobiliare di Diagnosi di ConsulenzaEvoluta per un nucleo familiare.
|
|
/// </summary>
|
|
/// <param name="nucleo">Nucleo familiare</param>
|
|
/// <param name="idImmobileCatasto">lista di id immobile al catasto. Corrisponde al campo chiaveProdottoTerzi della tabella ConsulenzaEvoluta.PatrimonioTerzi</param>
|
|
/// <param name="chiaviClientiPb">lista di chiaveclientepb dei componenti del nucleo.</param>
|
|
/// <param name="idSezione">lista delle sezioni. Campo:IdSezione, tabella:Sezioni, database:ReportModeler2</param>
|
|
public virtual byte[] CreaReport_ImmobiliareDiagnosi_Nucleo(Nucleo nucleo, List<string> idImmobileCatasto, List<long> chiaviClientiPb, List<Int32> idSezione, bool unica)
|
|
{
|
|
#region idReport e idModello del report da stampare. Ogni tipologia di report avrà una logica di business diversa.
|
|
_immobiliareCU = unica;
|
|
var reportStruct = new Business.Immobiliare.Diagnosi.Nucleo.ReportStructBusiness();
|
|
|
|
var idReport = reportStruct.GetIdReport();
|
|
var idModel = reportStruct.GetIdModel();
|
|
|
|
#endregion
|
|
|
|
#region Recupero la struttura del report (_reportStructure)
|
|
|
|
_reportStructure = GetStructure(idReport, idModel, idSezione);
|
|
|
|
#endregion
|
|
|
|
#region Recupero le variabili di ambiente del report (_reportEnvironment)
|
|
|
|
if (idImmobileCatasto.Count > 0 && idImmobileCatasto[0] != "")
|
|
{
|
|
nucleo.IdImmobileCatasto = idImmobileCatasto;
|
|
nucleo.ChiaviClientiPBImmobili = chiaviClientiPb;
|
|
}
|
|
|
|
nucleo.ImmobiliareCEUnica = unica;
|
|
nucleo.IdSezione = idSezione;
|
|
_reportEnvironment = GetEnvironment(nucleo, idReport, idModel);
|
|
|
|
#endregion
|
|
|
|
return Draw();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera informazioni per la classe ReportEnvironment tra cui :Template del PDF da utilizzare.
|
|
/// </summary>
|
|
/// <param name="nucleo"></param>
|
|
/// <param name="idReport">id del report da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Report]</param>
|
|
/// <param name="idModel">id del modello da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Modelli]</param>
|
|
/// <returns></returns>
|
|
private ReportEnvironment GetEnvironment(Nucleo nucleo, int idReport, int idModel)
|
|
{
|
|
var e = new ReportEnvironment(nucleo.ChiaveNucleo, nucleo)
|
|
{
|
|
NucleoImmobiliare = nucleo,
|
|
PrivateBanker = _privatebanker
|
|
};
|
|
|
|
#region Imposto il template
|
|
switch (e.PrivateBanker.CodiceRete)
|
|
{
|
|
case "F":
|
|
if (e.NucleoImmobiliare.HasServizioAggiuntivoImmobiliare)
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.copertinaDiagnosiContrattualizzato.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.paginaDiagnosiContrattualizzato.pdf";
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.copertinaDiagnosi.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.paginaDiagnosi.pdf";
|
|
break;
|
|
}
|
|
|
|
case "S":
|
|
if (e.NucleoImmobiliare.HasServizioAggiuntivoImmobiliare)
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.copertinaDiagnosiContrattualizzato.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.paginaDiagnosiContrattualizzato.pdf";
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.copertinaDiagnosi.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.paginaDiagnosi.pdf";
|
|
break;
|
|
}
|
|
|
|
default:
|
|
throw new Exception("Rete non valorizzata in Environment per PB:" + e.PrivateBanker.CodiceRete + e.PrivateBanker.Codice + " CHIAVENUCLEO: " + nucleo.ChiaveNucleo);
|
|
}
|
|
|
|
#endregion
|
|
|
|
e.ReportId = idReport;
|
|
e.ModelId = idModel;
|
|
|
|
return e;
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// Ottiene un array binario del PDF del report di Immobiliare di Mappatura preliminare di ConsulenzaEvoluta per un cliente identificato con chiaveClientePb.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">Chiave del cliente</param>
|
|
/// <param name="idImmobileCatasto">lista di id immobile al catasto. Corrisponde al campo chiaveProdottoTerzi della tabella ConsulenzaEvoluta.PatrimonioTerzi</param>
|
|
/// <param name="idSezione">lista delle sezioni. Campo:IdSezione, tabella:Sezioni, database:ReportModeler2</param>
|
|
public virtual byte[] CreaReport_MappaturaPreliminare(long chiaveCliente, List<string> idImmobileCatasto, List<Int32> idSezione, bool unica)
|
|
{
|
|
|
|
|
|
#region idReport e idModello del report da stampare. Ogni tipologia di report avrà una logica di business diversa.
|
|
_immobiliareCU = unica;
|
|
var reportStruct = new Business.MappaturaPreliminare.ReportStructBusiness();
|
|
|
|
var idReport = reportStruct.GetIdReport();
|
|
var idModel = reportStruct.GetIdModel();
|
|
|
|
#endregion
|
|
|
|
#region Recupero la struttura del report (_reportStructure)
|
|
|
|
_reportStructure = GetStructure(idReport, idModel, idSezione);
|
|
|
|
#endregion
|
|
|
|
#region Recupero le variabili di ambiente del report (_reportEnvironment)
|
|
|
|
_reportEnvironment = GetEnvironment(chiaveCliente, idReport, idModel, new MappaturaPreliminare { IdImmobileCatasto = idImmobileCatasto, IdSezione = idSezione, ImmobiliareCEUnica = _immobiliareCU });
|
|
|
|
#endregion
|
|
|
|
return Draw();
|
|
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera informazioni per la classe ReportEnvironment tra cui :Template del PDF da utilizzare.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">chiave del cliente (ChiaveClientePB)</param>
|
|
/// <param name="idReport">id del report da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Report]</param>
|
|
/// <param name="idModel">id del modello da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Modelli]</param>
|
|
/// <param name="immobiliare">info su immobiliare oggetto del report</param>
|
|
/// <returns>ReportEnvironment</returns>
|
|
private ReportEnvironment GetEnvironment(long chiaveCliente, int idReport, int idModel, MappaturaPreliminare mappatura)
|
|
{
|
|
var e = new ReportEnvironment(chiaveCliente, mappatura)
|
|
{
|
|
Cliente = _cliente,
|
|
PrivateBanker = _privatebanker
|
|
};
|
|
|
|
#region Imposto il template
|
|
switch (e.PrivateBanker.CodiceRete)
|
|
{
|
|
//case "F":
|
|
// e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.mappaturapreliminare.bf.copertina2.pdf";
|
|
// e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.mappaturapreliminare.bf.pagina2.pdf";
|
|
// break;
|
|
|
|
//case "S":
|
|
// e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.mappaturapreliminare.spi.copertina3.pdf";
|
|
// e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.pagina2.pdf";
|
|
// break;
|
|
case "F":
|
|
if (e.Cliente.FlagMonitoraggioImmobiliare)
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.copertinaMappaturaContrattualizzato.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.paginaMappaturaContrattualizzato.pdf";
|
|
}
|
|
else
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.copertinaMappatura.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.paginaMappatura.pdf";
|
|
}
|
|
|
|
break;
|
|
|
|
case "S":
|
|
if (e.Cliente.FlagMonitoraggioImmobiliare)
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.copertinaMappaturaContrattualizzato.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.paginaMappaturaContrattualizzato.pdf";
|
|
}
|
|
else
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.copertinaMappatura.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.paginaMappatura.pdf";
|
|
}
|
|
break;
|
|
|
|
default:
|
|
throw new Exception("Rete non valorizzata in Environment per PB:" + e.PrivateBanker.CodiceRete + e.PrivateBanker.Codice + " CLIENTE:" + e.Cliente.CodiceFiscale + " IDIMMOBILECATASTO:" + e.Immobiliare.IdImmobileCatasto + " CHIAVECLIENTEPB:" + chiaveCliente);
|
|
}
|
|
|
|
#endregion
|
|
|
|
e.ReportId = idReport;
|
|
e.ModelId = idModel;
|
|
|
|
return e;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region CONSULENZA UNICA
|
|
|
|
/// <summary>
|
|
/// Converte la rappresentazione interna del Report in un array binario costituente il documento PDF del Report.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">chiave del cliente (ChiaveClientePB)</param>
|
|
/// <param name="struttura">struttura del report</param>
|
|
/// <returns></returns>
|
|
public virtual byte[] CreateReport_Diagnosi(Int64 chiaveCliente, ReportStruct struttura)
|
|
{
|
|
#region idReport e idModello del report da stampare. Ogni tipologia di report avrà una logica di business diversa.
|
|
|
|
var reportStruct = new Business.Unica.Diagnosi.ReportStructBusiness();
|
|
|
|
var idReport = reportStruct.GetIdReport();
|
|
var idModel = reportStruct.GetIdModel();
|
|
|
|
#endregion
|
|
|
|
#region Recupero la struttura del report (_reportStructure)
|
|
|
|
_reportStructure = GetStructure(idReport, idModel, struttura.Schede.Select(o => o.Id).ToList());
|
|
|
|
#endregion
|
|
|
|
#region Recupero le variabili di ambiente del report (_reportEnvironment)
|
|
|
|
_reportEnvironment = GetEnvironment(chiaveCliente, idReport, idModel, new Diagnosi());
|
|
_reportEnvironment.ReportStruct = struttura;
|
|
|
|
#endregion
|
|
|
|
return Draw();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera informazioni per la classe ReportEnvironment tra cui :Template del PDF da utilizzare.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">chiave del cliente (ChiaveClientePB)</param>
|
|
/// <param name="idReport">id del report da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Report]</param>
|
|
/// <param name="idModel">id del modello da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Modelli]</param>
|
|
/// <param name="diagnosi">info su diagnosi</param>
|
|
/// <returns>ReportEnvironment</returns>
|
|
private ReportEnvironment GetEnvironment(Int64 chiaveCliente, int idReport, int idModel, Diagnosi diagnosi)
|
|
{
|
|
var e = new ReportEnvironment(chiaveCliente, diagnosi)
|
|
{
|
|
Cliente = _cliente,
|
|
PrivateBanker = _privatebanker
|
|
};
|
|
|
|
#region Imposto il template
|
|
|
|
bool bSei = GetClienteSei(e.Cliente.TipologiaContratto.ToUpper(), e.Cliente.Chiave);
|
|
|
|
switch (e.PrivateBanker.CodiceRete)
|
|
{
|
|
case "F":
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.Templ_copertinaBF.pdf";
|
|
if (bSei)
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.Templ_BFreport1.pdf";
|
|
else
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.Templ_BFreport2.pdf";
|
|
break;
|
|
|
|
case "S":
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.Templ_copertinaSPUnica.pdf";
|
|
if (bSei)
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.Templ_SPreport3.pdf";
|
|
else
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.Templ_SPreport4.pdf";
|
|
break;
|
|
|
|
default:
|
|
throw new Exception("Rete non valorizzata in Environment per PB:" + e.PrivateBanker.CodiceRete + e.PrivateBanker.Codice + " CLIENTE:" + e.Cliente.CodiceFiscale + " IDIMMOBILECATASTO:" + e.Immobiliare.IdImmobileCatasto + " CHIAVECLIENTEPB:" + chiaveCliente);
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
e.ReportId = idReport;
|
|
e.ModelId = idModel;
|
|
|
|
return e;
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// Converte la rappresentazione interna del Report in un array binario costituente il documento PDF del Report.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">chiave del cliente (ChiaveClientePB)</param>
|
|
/// <param name="struttura">struttura del report</param>
|
|
/// <returns></returns>
|
|
public virtual byte[] CreateReport_Monitoraggio(Int64 chiaveCliente, ReportStruct struttura)
|
|
{
|
|
#region idReport e idModello del report da stampare. Ogni tipologia di report avrà una logica di business diversa.
|
|
|
|
var reportStruct = new Business.Unica.Monitoraggio.ReportStructBusiness();
|
|
|
|
var idReport = reportStruct.GetIdReport();
|
|
var idModel = reportStruct.GetIdModel();
|
|
|
|
#endregion
|
|
|
|
#region Recupero la struttura del report (_reportStructure)
|
|
|
|
_reportStructure = GetStructure(idReport, idModel, struttura.Schede.Select(o => o.Id).ToList());
|
|
|
|
#endregion
|
|
|
|
#region Recupero le variabili di ambiente del report (_reportEnvironment)
|
|
|
|
_reportEnvironment = GetEnvironment(chiaveCliente, idReport, idModel, new Monitoraggio());
|
|
_reportEnvironment.ReportStruct = struttura;
|
|
|
|
#endregion
|
|
|
|
return Draw();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera informazioni per la classe ReportEnvironment tra cui :Template del PDF da utilizzare.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">chiave del cliente (ChiaveClientePB)</param>
|
|
/// <param name="idReport">id del report da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Report]</param>
|
|
/// <param name="idModel">id del modello da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Modelli]</param>
|
|
/// <param name="monitoraggio">info su monitoraggio</param>
|
|
/// <returns>ReportEnvironment</returns>
|
|
private ReportEnvironment GetEnvironment(Int64 chiaveCliente, int idReport, int idModel, Monitoraggio monitoraggio)
|
|
{
|
|
var e = new ReportEnvironment(chiaveCliente, monitoraggio)
|
|
{
|
|
Cliente = _cliente,
|
|
PrivateBanker = _privatebanker
|
|
};
|
|
|
|
#region Imposto il template
|
|
|
|
bool bSei = GetClienteSei(e.Cliente.TipologiaContratto.ToUpper(), e.Cliente.Chiave);
|
|
|
|
switch (e.PrivateBanker.CodiceRete)
|
|
{
|
|
case "F":
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.Templ_copertinaBF.pdf";
|
|
if (bSei)
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.Templ_BFreport1.pdf";
|
|
else
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.Templ_BFreport2.pdf";
|
|
break;
|
|
|
|
case "S":
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.Templ_copertinaSPUnica.pdf";
|
|
if (bSei)
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.Templ_SPreport3.pdf";
|
|
else
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.Templ_SPreport4.pdf";
|
|
break;
|
|
|
|
default:
|
|
throw new Exception("Rete non valorizzata in Environment per PB:" + e.PrivateBanker.CodiceRete + e.PrivateBanker.Codice + " CLIENTE:" + e.Cliente.CodiceFiscale + " IDIMMOBILECATASTO:" + e.Immobiliare.IdImmobileCatasto + " CHIAVECLIENTEPB:" + chiaveCliente);
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
e.ReportId = idReport;
|
|
e.ModelId = idModel;
|
|
|
|
return e;
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// Converte la rappresentazione interna del Report in un array binario costituente il documento PDF del Report.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">chiave del cliente (ChiaveClientePB)</param>
|
|
/// <param name="struttura">struttura del report</param>
|
|
/// <returns></returns>
|
|
public virtual byte[] CreateReport_Proposta(Int64 chiaveCliente, ReportStruct struttura)
|
|
{
|
|
#region idReport e idModello del report da stampare. Ogni tipologia di report avrà una logica di business diversa.
|
|
|
|
var reportStruct = new Business.Unica.Proposta.ReportStructBusiness();
|
|
|
|
var idReport = reportStruct.GetIdReport();
|
|
var idModel = reportStruct.GetIdModel();
|
|
|
|
#endregion
|
|
|
|
#region Recupero la struttura del report (_reportStructure)
|
|
|
|
_reportStructure = GetStructure(idReport, idModel, struttura.Schede.Select(o => o.Id).ToList());
|
|
|
|
#endregion
|
|
|
|
#region Recupero le variabili di ambiente del report (_reportEnvironment)
|
|
|
|
_reportEnvironment = GetEnvironment(chiaveCliente, idReport, idModel, new PropostaUnica(), datiSeiUnico.flagAdeguatezzaPro());
|
|
_reportEnvironment.ReportStruct = struttura;
|
|
|
|
#endregion
|
|
|
|
return Draw();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera informazioni per la classe ReportEnvironment tra cui :Template del PDF da utilizzare.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">chiave del cliente (ChiaveClientePB)</param>
|
|
/// <param name="idReport">id del report da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Report]</param>
|
|
/// <param name="idModel">id del modello da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Modelli]</param>
|
|
/// <param name="proposta">info su proposta</param>
|
|
/// <returns>ReportEnvironment</returns>
|
|
private ReportEnvironment GetEnvironment(Int64 chiaveCliente, int idReport, int idModel, PropostaUnica proposta, bool adeguata)
|
|
{
|
|
var e = new ReportEnvironment(chiaveCliente, proposta, adeguata)
|
|
{
|
|
Cliente = _cliente,
|
|
PrivateBanker = _privatebanker
|
|
};
|
|
|
|
#region Imposto il template
|
|
|
|
bool bSei = GetClienteSei(e.Cliente.TipologiaContratto.ToUpper(), e.Cliente.Chiave);
|
|
|
|
switch (e.PrivateBanker.CodiceRete)
|
|
{
|
|
case "F":
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.Templ_copertinaBF.pdf";
|
|
if (bSei)
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.Templ_BFreport1.pdf";
|
|
else
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.Templ_BFreport2.pdf";
|
|
break;
|
|
|
|
case "S":
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.Templ_copertinaSPUnica.pdf";
|
|
if (bSei)
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.Templ_SPreport3.pdf";
|
|
else
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.Templ_SPreport4.pdf";
|
|
break;
|
|
|
|
default:
|
|
throw new Exception("Rete non valorizzata in Environment per PB:" + e.PrivateBanker.CodiceRete + e.PrivateBanker.Codice + " CLIENTE:" + e.Cliente.CodiceFiscale + " IDIMMOBILECATASTO:" + e.Immobiliare.IdImmobileCatasto + " CHIAVECLIENTEPB:" + chiaveCliente);
|
|
}
|
|
|
|
#endregion
|
|
|
|
e.ReportId = idReport;
|
|
e.ModelId = idModel;
|
|
|
|
return e;
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// Converte la rappresentazione interna del Report in un array binario costituente il documento PDF del Report.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">chiave del cliente (ChiaveClientePB)</param>
|
|
/// <param name="struttura">struttura del report</param>
|
|
/// <returns></returns>
|
|
public virtual byte[] CreateReport_Nucleo(Int64 chiaveCliente, ReportStruct struttura)
|
|
{
|
|
#region idReport e idModello del report da stampare. Ogni tipologia di report avrà una logica di business diversa.
|
|
|
|
var reportStruct = new Business.Unica.Nucleo.ReportStructBusiness();
|
|
|
|
var idReport = reportStruct.GetIdReport();
|
|
var idModel = reportStruct.GetIdModel();
|
|
|
|
#endregion
|
|
|
|
#region Recupero la struttura del report (_reportStructure)
|
|
|
|
_reportStructure = GetStructure(idReport, idModel, struttura.Schede.Select(o => o.Id).ToList());
|
|
|
|
#endregion
|
|
|
|
#region Recupero le variabili di ambiente del report (_reportEnvironment)
|
|
|
|
_reportEnvironment = GetEnvironment(chiaveCliente, idReport, idModel, new NucleoUnica());
|
|
_reportEnvironment.ReportStruct = struttura;
|
|
|
|
#endregion
|
|
|
|
return Draw();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera informazioni per la classe ReportEnvironment tra cui :Template del PDF da utilizzare.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">chiave del cliente (ChiaveClientePB)</param>
|
|
/// <param name="idReport">id del report da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Report]</param>
|
|
/// <param name="idModel">id del modello da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Modelli]</param>
|
|
/// <param name="nucleo">info su nucleo</param>
|
|
/// <returns>ReportEnvironment</returns>
|
|
private ReportEnvironment GetEnvironment(Int64 chiaveCliente, int idReport, int idModel, NucleoUnica nucleo)
|
|
{
|
|
var e = new ReportEnvironment(chiaveCliente, nucleo)
|
|
{
|
|
Cliente = _cliente,
|
|
PrivateBanker = _privatebanker
|
|
};
|
|
|
|
#region Imposto il template
|
|
|
|
switch (e.PrivateBanker.CodiceRete)
|
|
{
|
|
case "F":
|
|
if (datiSeiUnico.flagNucleoContrattualizzato())
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.Templ_copertinaBF_NucleoContrattualizzato.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.Templ_BFreport_NucleoContrattualizzato.pdf";
|
|
//e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.Templ_SPreport_NucleoContrattualizzato.pdf";
|
|
}
|
|
else
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.Templ_copertinaBF_Nucleo.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.Templ_BFreport_Nucleo.pdf";
|
|
}
|
|
break;
|
|
|
|
case "S":
|
|
|
|
if (datiSeiUnico.flagNucleoContrattualizzato())
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.Templ_copertinaSP_NucleoContrattualizzato.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.Templ_SPreport_NucleoContrattualizzato.pdf";
|
|
}
|
|
else
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.Templ_copertinaSP_Nucleo.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.Templ_SPreport_Nucleo.pdf";
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
default:
|
|
throw new Exception("Rete non valorizzata in Environment per PB:" + e.PrivateBanker.CodiceRete + e.PrivateBanker.Codice + " CLIENTE:" + e.Cliente.CodiceFiscale + " IDIMMOBILECATASTO:" + e.Immobiliare.IdImmobileCatasto + " CHIAVECLIENTEPB:" + chiaveCliente);
|
|
}
|
|
|
|
#endregion
|
|
|
|
e.ReportId = idReport;
|
|
e.ModelId = idModel;
|
|
|
|
return e;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region FINALITA' IMMOBILIARE
|
|
/// <summary>
|
|
/// Ottiene un array binario del PDF del report di Diagnosi di Finalità Immobiliare di ConsulenzaEvoluta per un cliente identificato con chiaveClientePb.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">Chiave del cliente</param>
|
|
/// <param name="idImmobileCatasto">lista di id immobile al catasto. Corrisponde al campo chiaveProdottoTerzi della tabella ConsulenzaEvoluta.PatrimonioTerzi</param>
|
|
/// <param name="idSezione">lista delle sezioni. Campo:IdSezione, tabella:Sezioni, database:ReportModeler2</param>
|
|
public virtual byte[] CreaReport_FinalitaImmobiliare(long chiaveCliente, List<string> idImmobileCatasto, List<Int32> idSezione, bool unica)
|
|
{
|
|
#region idReport e idModello del report da stampare. Ogni tipologia di report avrà una logica di business diversa.
|
|
|
|
var reportStruct = new Business.Immobiliare.Finalita.ReportStructBusiness();
|
|
_immobiliareCU = unica;
|
|
var idReport = reportStruct.GetIdReport();
|
|
var idModel = reportStruct.GetIdModel();
|
|
|
|
#endregion
|
|
|
|
#region Recupero la struttura del report (_reportStructure)
|
|
|
|
_reportStructure = GetStructure(idReport, idModel, idSezione);
|
|
|
|
#endregion
|
|
|
|
#region Recupero le variabili di ambiente del report (_reportEnvironment)
|
|
|
|
_reportEnvironment = GetEnvironment(chiaveCliente, idReport, idModel, new FinalitaImmobiliare { IdImmobileCatasto = idImmobileCatasto, IdSezione = idSezione, ImmobiliareCEUnica = _immobiliareCU });
|
|
|
|
#endregion
|
|
|
|
return Draw();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera informazioni per la classe ReportEnvironment tra cui :Template del PDF da utilizzare.
|
|
/// </summary>
|
|
/// <param name="chiaveCliente">chiave del cliente (ChiaveClientePB)</param>
|
|
/// <param name="idReport">id del report da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Report]</param>
|
|
/// <param name="idModel">id del modello da stampare. Campo id del DataBase di configurazione : [ReportModeler2].[dbo].[Modelli]</param>
|
|
/// <param name="immobiliare">info su immobiliare oggetto del report</param>
|
|
/// <returns>ReportEnvironment</returns>
|
|
private ReportEnvironment GetEnvironment(long chiaveCliente, int idReport, int idModel, FinalitaImmobiliare finalitaimmobiliare)
|
|
{
|
|
var e = new ReportEnvironment(chiaveCliente, finalitaimmobiliare)
|
|
{
|
|
Cliente = _cliente,
|
|
PrivateBanker = _privatebanker
|
|
};
|
|
|
|
#region Imposto il template
|
|
switch (e.PrivateBanker.CodiceRete)
|
|
{
|
|
|
|
case "F":
|
|
if (e.Cliente.FlagMonitoraggioImmobiliare)
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.copertinaDiagnosiContrattualizzato.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.paginaDiagnosiContrattualizzato.pdf";
|
|
}
|
|
else
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.copertinaDiagnosi.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.BF.immobiliare.bf.paginaDiagnosi.pdf";
|
|
}
|
|
break;
|
|
|
|
case "S":
|
|
if (e.Cliente.FlagMonitoraggioImmobiliare)
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.copertinaDiagnosiContrattualizzato.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.paginaDiagnosiContrattualizzato.pdf";
|
|
}
|
|
else
|
|
{
|
|
e.ResourceNameCover = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.copertinaDiagnosi.pdf";
|
|
e.ResourceNameTemplate = "RisorseEmbeddedRM.PDFTemplates.SPI.immobiliare.spi.paginaDiagnosi.pdf";
|
|
}
|
|
break;
|
|
|
|
default:
|
|
throw new Exception("Rete non valorizzata in Environment per PB:" + e.PrivateBanker.CodiceRete + e.PrivateBanker.Codice + " CLIENTE:" + e.Cliente.CodiceFiscale + " IDIMMOBILECATASTO:" + e.Immobiliare.IdImmobileCatasto + " CHIAVECLIENTEPB:" + chiaveCliente);
|
|
}
|
|
|
|
#endregion
|
|
|
|
e.ReportId = idReport;
|
|
e.ModelId = idModel;
|
|
|
|
return e;
|
|
}
|
|
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// Recupero la struttura del report eseguendo la stored "CalcoloStrutturaDocumento"
|
|
/// del database di configurazione dei report [ReportModeler2] dati idReport e idModel passati in input.
|
|
/// </summary>
|
|
/// <param name="idReport">id del report. [ReportModeler2].[dbo].[Report]</param>
|
|
/// <param name="idModel">id del modello [ReportModeler2].[dbo].[Modelli]</param>
|
|
/// <returns></returns>
|
|
private DataTable GetStructure(int idReport, int idModel)
|
|
{
|
|
var parametri = new List<Parametro>
|
|
{
|
|
new Parametro
|
|
{
|
|
Direction = ParameterDirection.Input,
|
|
DbType = DbType.Int32,
|
|
ParameterName = "IdReport",
|
|
Value = idReport
|
|
},
|
|
new Parametro
|
|
{
|
|
Direction = ParameterDirection.Input,
|
|
DbType = DbType.Int32,
|
|
ParameterName = "IdModello",
|
|
Value = idModel
|
|
}
|
|
};
|
|
|
|
#region Definizione dei parametri
|
|
|
|
#endregion
|
|
|
|
return DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerReportModeler, "CalcoloStrutturaDocumento", parametri);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupero la struttura del report eseguendo la stored "CalcoloStrutturaDocumento"
|
|
/// del database di configurazione dei report [ReportModeler2] dati idReport e idModel passati in input,
|
|
/// filtrando e ordinando per idSectionList.
|
|
/// </summary>
|
|
/// <param name="idReport">id del report. [ReportModeler2].[dbo].[Report]</param>
|
|
/// <param name="idModel">id del modello [ReportModeler2].[dbo].[Modelli]</param>
|
|
/// <param name="idSectionList">lista delle sezioni da stampare.</param>
|
|
private DataTable GetStructure(int idReport, int idModel, List<int> idSectionList)
|
|
{
|
|
//Filtro e ordino solo le Schede(idSezione) selezionate e passate in input
|
|
var structure = GetStructure(idReport, idModel);
|
|
|
|
// Ordinamento: l'ordine è quello si selezione delle schede.
|
|
structure.Columns.Add("Ordine", typeof(Int32));
|
|
|
|
/****** FIX 13-05-2020 Quote Variate, non da mostrare per tutti, per futura revisione del processo - Pino **************/
|
|
//idSectionList.Remove(229);
|
|
//idSectionList.Remove(230);
|
|
//DataRow[] drr = structure.Select("Capitolo_CodiceClasse='S22'");
|
|
//foreach (DataRow row in structure.Rows)
|
|
//{
|
|
// if (row["Capitolo_CodiceClasse"].ToString() == "S22")
|
|
// {
|
|
// idSectionList.Remove((int)row["idSezione"]);
|
|
// structure.Rows.Remove(row);
|
|
// break;
|
|
// }
|
|
//}
|
|
/***********************************************************************************************************************/
|
|
|
|
|
|
var ordine = 1;
|
|
foreach (var sezione in idSectionList)
|
|
{
|
|
//recupero la riga tramite l'idSezione
|
|
structure.AsEnumerable().SingleOrDefault(r => r.Field<Int32>("IdSezione") == sezione)["Ordine"] = ordine;
|
|
ordine++;
|
|
}
|
|
|
|
// Filtro.
|
|
var query = from st in structure.AsEnumerable()
|
|
where idSectionList.Contains(st.Field<Int32>("IdSezione"))
|
|
orderby st.Field<Int32>("Ordine")
|
|
select st;
|
|
|
|
// Ritorno la struttura
|
|
return query.AsDataView().ToTable();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Instanzia WriterEntities (passando Environment) e ritorna l'array binario del Report (costituito dalle sezioni).
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private byte[] Draw(bool bBatch = false)
|
|
{
|
|
var reportEntities = new List<EntityBase>();
|
|
|
|
string typeNameIntegration;
|
|
Type typeIntegration;
|
|
|
|
var environmentFacade = new EnvironmentFacade(_reportEnvironment);
|
|
var writerEntities = new WriterEntities(environmentFacade);
|
|
|
|
environmentFacade.datiSeiUnico = datiSeiUnico;
|
|
|
|
#region Logica di Integrazione di layout
|
|
|
|
var integrationLayoutRows = _reportStructure.Select("Integrazione_ChiaveLayout is not null");
|
|
|
|
foreach (var itemIntegrationLayout in integrationLayoutRows)
|
|
{
|
|
typeNameIntegration = string.Format("{0}.{1}, Consulenza.ReportWriter.Manager", itemIntegrationLayout["Integrazione_NameSpace"], itemIntegrationLayout["Integrazione_CodiceClasse"]);
|
|
typeIntegration = Type.GetType(typeNameIntegration);
|
|
|
|
if (typeIntegration != null)
|
|
{
|
|
//Creo l'istanza passando al costruttore la DataGeometry e recupero la nuova struttura del report. La struttura è definita dalle classi che ereditato IntegrationLayout
|
|
_reportStructure = ((IntegrationLayout)Activator.CreateInstance(typeIntegration, _reportStructure, itemIntegrationLayout, _reportEnvironment)).RecalculateStructure();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
var capitoloChiaveLayoutPrecedente = string.Empty;
|
|
if (_reportEnvironment.ReportType == ReportType.Immobiliare_Monitoraggio || _reportEnvironment.ReportType == ReportType.Immobiliare_MonitoraggioNuclei)
|
|
{
|
|
List<int> allSectionsIds = _reportStructure.Rows.OfType<DataRow>().Select(x => (int)x.ItemArray[3]).ToList();
|
|
MonitoraggioImmobiliarePageHeaderManager.AllSections = allSectionsIds;
|
|
|
|
//TODo
|
|
//creare classe MonitoraggioImmobiliareNucleiPageHeaderManager
|
|
//MonitoraggioImmobiliarePageHeaderManager.AllSections = allSectionsIds;
|
|
|
|
}
|
|
|
|
// News ES 20180315 per Ticket Kostaris
|
|
DataSet dsOriginal = null;
|
|
if (_reportEnvironment.ReportType == ReportType.Immobiliare_MappaturaPreliminare)
|
|
{
|
|
#region Definizione dei parametri
|
|
|
|
var parametri = new List<Parametro>
|
|
{
|
|
new Parametro
|
|
{
|
|
Direction = ParameterDirection.Input,
|
|
DbType = DbType.Int64,
|
|
ParameterName = "ChiaveClientePB",
|
|
Value = _reportEnvironment.Cliente.Chiave
|
|
},
|
|
};
|
|
|
|
#endregion
|
|
|
|
dsOriginal = _reportEnvironment.MappaturaPreliminare.ImmobiliareCEUnica ? DataAccess.ExecuteDataSetStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_MappaturaPreliminare_S7_DettaglioAbitazioneTotale", parametri)
|
|
: DataAccess.ExecuteDataSetStoredProcedure(DBProvider.SqlServerConsulenzaEvoluta, "REP_MappaturaPreliminare_S7_DettaglioAbitazioneTotale", parametri);
|
|
if (dsOriginal.Tables[0].Rows.Count == 0) return null;
|
|
}
|
|
|
|
//
|
|
int iRow = 0;
|
|
foreach (DataRow row in _reportStructure.Rows)
|
|
{
|
|
var idCapitolo = Convert.ToInt32(row["idCapitolo"]);
|
|
var idSection = Convert.ToInt32(row["idSezione"]);
|
|
var exist = true; // determina l'esistenza e quindi la stampa del capitolo e sezione.
|
|
|
|
#region Integrazione Layout
|
|
|
|
typeNameIntegration = string.Format("{0}.{1}, Consulenza.ReportWriter.Manager", row["Integrazione_NameSpace"], row["Integrazione_CodiceClasse"]);
|
|
typeIntegration = Type.GetType(typeNameIntegration);
|
|
|
|
var integrationLayout = row["Integrazione_ChiaveLayout"] == DBNull.Value || typeIntegration == null ? null : ((IntegrationLayout)Activator.CreateInstance(typeIntegration, _reportStructure, row, _reportEnvironment));
|
|
var duplicazioneCapitolo = integrationLayout != null && integrationLayout.DuplicaCapitolo;
|
|
|
|
#endregion
|
|
|
|
#region Namespaces ConsulenzaUnica
|
|
string desinenzaNamespace = "";
|
|
switch (_reportEnvironment.ReportType)
|
|
{
|
|
case ReportType.Unica_Diagnosi:
|
|
desinenzaNamespace = ".Diagnosi";
|
|
break;
|
|
case ReportType.Unica_Monitoraggio:
|
|
desinenzaNamespace = ".Monitoraggio";
|
|
break;
|
|
case ReportType.Unica_Proposta:
|
|
desinenzaNamespace = ".Proposta";
|
|
break;
|
|
case ReportType.Unica_Nucleo:
|
|
desinenzaNamespace = ".Nucleo";
|
|
break;
|
|
}
|
|
#endregion
|
|
|
|
#region Capitoli
|
|
|
|
if (capitoloChiaveLayoutPrecedente != row["Capitolo_ChiaveLayout"].ToString() || duplicazioneCapitolo)
|
|
{
|
|
var typeNameChapter = string.Format("{0}.{1}, Consulenza.ReportWriter.Manager", row["Capitolo_NameSpace"] + desinenzaNamespace, row["Capitolo_CodiceClasse"]);
|
|
var typeChapter = Type.GetType(typeNameChapter);
|
|
|
|
if (typeChapter != null)
|
|
{
|
|
//Creo l'istanza passando al costruttore la DataGeometry:
|
|
Chapter chapther;
|
|
|
|
if (integrationLayout == null)
|
|
chapther = Activator.CreateInstance(typeChapter, environmentFacade, idCapitolo, Convert.ToBoolean(row["Capitolo_RipetiOgniPagina"])) as Chapter;
|
|
else
|
|
{
|
|
integrationLayout.iRow = iRow;
|
|
chapther = Activator.CreateInstance(typeChapter, environmentFacade, idCapitolo, Convert.ToBoolean(row["Capitolo_RipetiOgniPagina"]), integrationLayout) as Chapter;
|
|
iRow = iRow + 1;
|
|
}
|
|
|
|
|
|
//******* Determino l'esistenza del capitolo e sezione***********
|
|
exist = chapther.Exist;
|
|
|
|
if (chapther != null && exist)
|
|
{
|
|
// Imposto le propietà ChapterFacade
|
|
chapther.ChapterFacade.RepeatOnEachPage = chapther.RepeatOnEachPage;
|
|
|
|
//Accodo l'istanza alla collezione.
|
|
reportEntities.Add(chapther);
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Paragrafi
|
|
|
|
// Attualmente non è richiesta la gestione dei paragrafi
|
|
|
|
#endregion
|
|
|
|
#region Sezioni
|
|
var typeNameSection = "";
|
|
if (_reportEnvironment.ReportType == ReportType.Base_Proposta)
|
|
typeNameSection = string.Format("{0}.{1}, Consulenza.ReportWriter.Manager", row["Sezione_NameSpace"] + desinenzaNamespace, row["Sezione_CodiceClasse"]);
|
|
else
|
|
typeNameSection = string.Format("{0}.{1}, Consulenza.ReportWriter.Manager", row["Sezione_NameSpace"] + desinenzaNamespace, row["Sezione_CodiceClasse"].ToString().ToUpper());
|
|
|
|
var typeSection = Type.GetType(typeNameSection);
|
|
/*
|
|
var typeNameSection = string.Format("{0}.{1}, Consulenza.ReportWriter.Manager", row["Sezione_NameSpace"] + desinenzaNamespace, row["Sezione_CodiceClasse"].ToString().ToUpper());
|
|
var typeSection = Type.GetType(typeNameSection);
|
|
*/
|
|
//Creo l'istanza passando al costruttore la DataGeometry:
|
|
Section section;
|
|
|
|
if (integrationLayout == null)
|
|
{
|
|
if (idSection == 223 && bBatch)
|
|
section = Activator.CreateInstance(typeSection, environmentFacade, 999) as Section;
|
|
else
|
|
{
|
|
if (idSection == 222 && bBatch)
|
|
section = Activator.CreateInstance(typeSection, environmentFacade, 999) as Section;
|
|
else
|
|
{
|
|
if (idSection == 201 && bBatch)
|
|
section = Activator.CreateInstance(typeSection, environmentFacade, 999) as Section;
|
|
else
|
|
section = Activator.CreateInstance(typeSection, environmentFacade, idSection) as Section;
|
|
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (_reportEnvironment.ReportType == ReportType.Immobiliare_MappaturaPreliminare)
|
|
integrationLayout.ReportDs = dsOriginal;
|
|
|
|
section = Activator.CreateInstance(typeSection, environmentFacade, idSection, integrationLayout) as Section;
|
|
}
|
|
|
|
if (section != null && exist)
|
|
{
|
|
//Accodo l'istanza alla collezione.
|
|
reportEntities.Add(section);
|
|
}
|
|
#endregion
|
|
|
|
capitoloChiaveLayoutPrecedente = row["Capitolo_ChiaveLayout"].ToString();
|
|
}
|
|
|
|
return writerEntities.RenderEntities(reportEntities);
|
|
}
|
|
|
|
private bool GetClienteSei(string pStatoContratto, long chiave)
|
|
{
|
|
|
|
DataTable dtOriginal = null;
|
|
|
|
dtOriginal = DataAccess.ExecuteDataTableSqlStatement(DBProvider.SqlServerConsulenzaUnica, "Select chiaveTipoContratto from DStatoContratto where UPPER(statoContratto) = '" + pStatoContratto + "'", null);
|
|
if (dtOriginal.Rows.Count > 0 && Convert.ToInt16(dtOriginal.Rows[0][0]) == 2) {
|
|
DataTable dtSospeso = null;
|
|
dtSospeso = DataAccess.ExecuteDataTableSqlStatement(DBProvider.SqlServerConsulenzaUnica, "Select flagRfaMinus from DettaglioClientePB where chiaveClientePB = '" + chiave + "'", null);
|
|
if (dtSospeso.Rows.Count > 0 && !DBNull.Value.Equals(dtSospeso.Rows[0][0]) && Convert.ToBoolean(dtSospeso.Rows[0][0])){//è sospeso si comporta come base+
|
|
return false;
|
|
}
|
|
else {
|
|
return true;
|
|
}
|
|
}
|
|
else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|