347 lines
18 KiB
C#
347 lines
18 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using Consulenza.ReportModeler.Manager;
|
|
using System.Linq;
|
|
using ceTe.DynamicPDF;
|
|
using ceTe.DynamicPDF.Merger;
|
|
using Consulenza.ReportCommon;
|
|
using Consulenza.WebTemplateModeler.Entity;
|
|
|
|
|
|
|
|
namespace Consulenza.Immobiliare.Business
|
|
{
|
|
public class GeneratorService
|
|
{
|
|
|
|
private readonly Int64 _chiaveClientePb;
|
|
private readonly Cliente _cliente = new Cliente();
|
|
|
|
/// <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 byte[] CreaReport_ImmobiliareDiagnosi(long chiaveCliente, List<string> idImmobileCatasto, List<Int32> idSezione, bool unica)
|
|
{
|
|
var cliente = DataService.ClienteManager.RecuperaCliente(chiaveCliente, unica);
|
|
var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(chiaveCliente, unica);
|
|
|
|
var generator = new ReportStructManager(cliente, privateBanker);
|
|
return generator.CreaReport_ImmobiliareDiagnosi(chiaveCliente, idImmobileCatasto, idSezione, unica);
|
|
}
|
|
|
|
public byte[] CreaReport_MonitoraggioImmobiliare(long chiaveCliente, List<string> idImmobileCatasto, List<Int32> idSezione, bool bBatch = false)
|
|
{
|
|
if (bBatch == true)
|
|
{
|
|
var cliente = DataService.ClienteManager.RecuperaCliente(chiaveCliente, true);
|
|
var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(chiaveCliente, true);
|
|
cliente.TipologiaContratto = privateBanker.CodiceRete;
|
|
var generator = new ReportStructManager(cliente, privateBanker);
|
|
return generator.CreaReport_ImmobiliareMonitoraggio(chiaveCliente, idImmobileCatasto, idSezione, bBatch);
|
|
}
|
|
else
|
|
{
|
|
var cliente = DataService.ClienteManager.RecuperaCliente(chiaveCliente, true);
|
|
var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(chiaveCliente, true);
|
|
|
|
var generator = new ReportStructManager(cliente, privateBanker);
|
|
generator.datiSeiUnico = _datiSeiUnico;
|
|
return generator.CreaReport_ImmobiliareMonitoraggio(chiaveCliente, idImmobileCatasto, idSezione, bBatch);
|
|
}
|
|
|
|
}
|
|
|
|
public byte[] CreaReport_MonitoraggioImmobiliareNucleiold(Nucleo nucleo, List<Int64> chiaviClientiPB, List<string> idImmobileCatasto, List<Int32> idSezione)
|
|
{
|
|
Consulenza.Immobiliare.Business.GeneratorService generatorService = null;
|
|
// var nucleo = DataService.NucleoManager.RecuperaNucleo(chiaveNucleo, true);
|
|
long chiavePbPrincipale = nucleo.ChiaveClientePBPrincipale;
|
|
var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(chiavePbPrincipale, true);
|
|
|
|
// #region lettura dati Unica
|
|
// Consulenza.DataServices.DatiSeiUnico datiSeiUnico = null;
|
|
// // lettura dati cliente
|
|
|
|
// try
|
|
// {
|
|
|
|
// datiSeiUnico = new Consulenza.DataServices.DatiSeiUnico(
|
|
// privateBanker.Codice,
|
|
// chiavePbPrincipale.ToString(),
|
|
// "", //todo verifica mandato
|
|
// privateBanker.CodiceRete,
|
|
// 0,
|
|
// chiaveNucleo,
|
|
// idSezione
|
|
// );
|
|
|
|
// datiSeiUnico.Execute();
|
|
|
|
// generatorService = new Consulenza.Immobiliare.Business.GeneratorService(datiSeiUnico);
|
|
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// //mt.insertLog(modello.Id.ToString(), template.CodicePb, template.Id.ToString(), template.IsDefault, datiSeiUnico.UrlFideuramDati + " " + metodo, ex);
|
|
// throw new Exception(datiSeiUnico.UrlFideuramDati + " " + ex.Message);
|
|
// }
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
var generator = new ReportStructManager(nucleo, privateBanker);
|
|
generator.datiSeiUnico = _datiSeiUnico;
|
|
return generator.CreaReport_ImmobiliareMonitoraggioNuclei(nucleo, chiaviClientiPB, idImmobileCatasto, idSezione);
|
|
|
|
|
|
//var nucleo = DataService.NucleoManager.RecuperaNucleo(chiaveNucleo, unica);
|
|
//var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(nucleo.AgenteNucleo, nucleo.ReteNucleo, unica);
|
|
|
|
//var generator = new ReportStructManager(nucleo, privateBanker);
|
|
//return generator.CreaReport_ImmobiliareDiagnosi_Nucleo(nucleo, idImmobileCatasto, chiaviClientiPb, idSezione, unica);
|
|
|
|
|
|
|
|
}
|
|
|
|
public byte[] CreaReport_MonitoraggioImmobiliareCU(long chiaveCliente, List<string> idImmobileCatasto, ReportStruct reportStruttura)
|
|
{
|
|
var cliente = DataService.ClienteManager.RecuperaCliente(chiaveCliente, true);
|
|
var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(chiaveCliente, true);
|
|
|
|
var generator = new ReportStructManager(cliente, privateBanker);
|
|
generator.datiSeiUnico = _datiSeiUnico;
|
|
return generator.CreaReport_ImmobiliareMonitoraggioCU(chiaveCliente, idImmobileCatasto, reportStruttura);
|
|
}
|
|
|
|
|
|
public byte[] CreaReport_MonitoraggioImmobiliareNuclei(long chiaveNucleo, List<Int64> chiaviClientiPB, List<string> idImmobileCatasto, List<Int32> idSezione)
|
|
{
|
|
//Consulenza.Immobiliare.Business.GeneratorService generatorService = null;
|
|
var nucleo = DataService.NucleoManager.RecuperaNucleo(chiaveNucleo, true);
|
|
nucleo.HasServizioAggiuntivoImmobiliare = DataService.NucleoManager.HasServizioAggiuntivoImmobiliare(chiaveNucleo, true);
|
|
|
|
long chiavePbPrincipale = nucleo.ChiaveClientePBPrincipale;
|
|
//var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(chiavePbPrincipale, true);
|
|
var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(nucleo.AgenteNucleo, nucleo.ReteNucleo, true);
|
|
|
|
#region lettura dati Unica
|
|
//Consulenza.DataServices.DatiSeiUnico datiSeiUnico = null;
|
|
//// lettura dati cliente
|
|
|
|
//try
|
|
//{
|
|
|
|
// datiSeiUnico = new Consulenza.DataServices.DatiSeiUnico(
|
|
// privateBanker.Codice,
|
|
// chiavePbPrincipale.ToString(),
|
|
// "", //todo verifica mandato
|
|
// privateBanker.CodiceRete,
|
|
// 0,
|
|
// chiaveNucleo,
|
|
// idSezione
|
|
// );
|
|
|
|
// datiSeiUnico.Execute();
|
|
|
|
// generatorService = new Consulenza.Immobiliare.Business.GeneratorService(datiSeiUnico);
|
|
|
|
//}
|
|
//catch (Exception ex)
|
|
//{
|
|
// //mt.insertLog(modello.Id.ToString(), template.CodicePb, template.Id.ToString(), template.IsDefault, datiSeiUnico.UrlFideuramDati + " " + metodo, ex);
|
|
// throw new Exception(datiSeiUnico.UrlFideuramDati + " " + ex.Message);
|
|
//}
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
var generator = new ReportStructManager(nucleo, privateBanker);
|
|
generator.datiSeiUnico = _datiSeiUnico;
|
|
return generator.CreaReport_ImmobiliareMonitoraggioNuclei(nucleo, chiaviClientiPB, idImmobileCatasto, idSezione);
|
|
|
|
|
|
//var nucleo = DataService.NucleoManager.RecuperaNucleo(chiaveNucleo, unica);
|
|
//var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(nucleo.AgenteNucleo, nucleo.ReteNucleo, unica);
|
|
|
|
//var generator = new ReportStructManager(nucleo, privateBanker);
|
|
//return generator.CreaReport_ImmobiliareDiagnosi_Nucleo(nucleo, idImmobileCatasto, chiaviClientiPb, idSezione, unica);
|
|
|
|
|
|
|
|
}
|
|
|
|
public byte[] CreaReport_MonitoraggioImmobiliareNucleiCU(long chiaveNucleo, List<string> idImmobileCatasto, ReportStruct reportStruttura)
|
|
{
|
|
|
|
//Consulenza.Immobiliare.Business.GeneratorService generatorService = null;
|
|
var nucleo = DataService.NucleoManager.RecuperaNucleo(chiaveNucleo, true);
|
|
nucleo.HasServizioAggiuntivoImmobiliare = DataService.NucleoManager.HasServizioAggiuntivoImmobiliare(chiaveNucleo, true);
|
|
|
|
long chiavePbPrincipale = nucleo.ChiaveClientePBPrincipale;
|
|
//var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(chiavePbPrincipale, true);
|
|
var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(nucleo.AgenteNucleo, nucleo.ReteNucleo, true);
|
|
|
|
var generator = new ReportStructManager(nucleo, privateBanker);
|
|
generator.datiSeiUnico = _datiSeiUnico;
|
|
return generator.CreaReport_ImmobiliareMonitoraggioNucleiCU(nucleo, nucleo.ChiaviClientiPBImmobili, idImmobileCatasto, reportStruttura);
|
|
|
|
//var cliente = DataService.ClienteManager.RecuperaCliente(chiaveCliente, true);
|
|
//var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(chiaveCliente, true);
|
|
|
|
//var generator = new ReportStructManager(cliente, privateBanker);
|
|
//generator.datiSeiUnico = _datiSeiUnico;
|
|
//return generator.CreaReport_ImmobiliareMonitoraggioCU(chiaveCliente, idImmobileCatasto, reportStruttura);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Ottiene un array binario del PDF del report di Finalità 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 byte[] CreaReport_FinalitaImmobiliare(long chiaveCliente, List<string> idImmobileCatasto, List<Int32> idSezione, bool unica)
|
|
{
|
|
var cliente = DataService.ClienteManager.RecuperaCliente(chiaveCliente, unica);
|
|
var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(chiaveCliente, unica);
|
|
|
|
var generator = new ReportStructManager(cliente, privateBanker);
|
|
return generator.CreaReport_FinalitaImmobiliare(chiaveCliente, idImmobileCatasto, idSezione, unica);
|
|
}
|
|
/// <summary>
|
|
/// Ottiene un array binario del PDF del report di Immobiliare di Diagnosi di ConsulenzaEvoluta per un nucleo familiare.
|
|
/// </summary>
|
|
/// <param name="chiaveNucleo">Chiave del 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 byte[] CreaReport_ImmobiliareDiagnosi_Nucleo(long chiaveNucleo, List<string> idImmobileCatasto, List<long> chiaviClientiPb, List<Int32> idSezione, bool unica)
|
|
{
|
|
var nucleo = DataService.NucleoManager.RecuperaNucleo(chiaveNucleo, unica);
|
|
nucleo.HasServizioAggiuntivoImmobiliare = DataService.NucleoManager.HasServizioAggiuntivoImmobiliare(chiaveNucleo, true);
|
|
var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(nucleo.AgenteNucleo, nucleo.ReteNucleo, unica);
|
|
|
|
var generator = new ReportStructManager(nucleo, privateBanker);
|
|
return generator.CreaReport_ImmobiliareDiagnosi_Nucleo(nucleo, idImmobileCatasto, chiaviClientiPb, idSezione, unica);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Ottiene un array binario del PDF del report di Mappatura Preliminare (Immobiliare) 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 byte[] CreaReport_MappaturaPreliminare(long chiaveCliente, List<string> idImmobileCatasto, List<Int32> idSezione, bool unica)
|
|
{
|
|
//tutto ciò per avere due report separati, con due paginazioni separate.
|
|
var cliente = DataService.ClienteManager.RecuperaCliente(chiaveCliente, unica);
|
|
var privateBanker = DataService.PrivateBankerManager.RecuperaPrivateBanker(chiaveCliente, unica);
|
|
List<Int32> sezioniCliente = idSezione.Where(l => l != 135 && l != 136).ToList();
|
|
List<Int32> sezioniPb = idSezione.Where(l => l == 135 || l == 136).ToList();
|
|
var generatorcli = new ReportStructManager(cliente, privateBanker);
|
|
var generatorpb = new ReportStructManager(cliente, privateBanker);
|
|
byte[] mappaturareport;
|
|
|
|
if(sezioniCliente.Count>0 && sezioniPb.Count>0)
|
|
mappaturareport = creaMappatura(generatorcli,generatorpb, chiaveCliente,idImmobileCatasto,sezioniCliente,sezioniPb, unica);
|
|
else{
|
|
if( sezioniCliente.Count>0)
|
|
mappaturareport = generatorcli.CreaReport_MappaturaPreliminare(chiaveCliente, idImmobileCatasto, idSezione,unica);
|
|
else
|
|
mappaturareport = generatorpb.CreaReport_MappaturaPreliminare(chiaveCliente, idImmobileCatasto, idSezione, unica);
|
|
|
|
}
|
|
return mappaturareport;
|
|
}
|
|
|
|
private byte[] creaMappatura(ReportStructManager cli, ReportStructManager pb, long chiaveCliente, List<string> idImmobileCatasto, List<Int32> sezioniCliente, List<Int32> sezioniPb, bool unica)
|
|
{
|
|
PdfDocument pdfCliente = new PdfDocument(cli.CreaReport_MappaturaPreliminare(chiaveCliente, idImmobileCatasto, sezioniCliente, unica));
|
|
PdfDocument pdfPb = new PdfDocument(pb.CreaReport_MappaturaPreliminare(chiaveCliente, idImmobileCatasto, sezioniPb, unica));
|
|
return MergeDocument.Merge(pdfCliente, pdfPb).Draw();
|
|
}
|
|
|
|
public Consulenza.DataServices.DatiSeiUnico _datiSeiUnico;
|
|
|
|
public GeneratorService()
|
|
{
|
|
}
|
|
|
|
public GeneratorService(Cliente _ClienteBatch, PrivateBanker _PBBatch)
|
|
{
|
|
_cliente = new Cliente
|
|
{
|
|
Chiave = _chiaveClientePb,
|
|
CodiceFiscale = _ClienteBatch.CodiceFiscale,
|
|
Cognome = _ClienteBatch.Cognome,
|
|
Nome = _ClienteBatch.Nome,
|
|
PartitaIva = _ClienteBatch.PartitaIva,
|
|
DataSottoscrizioneContratto =_ClienteBatch.DataSottoscrizioneContratto,
|
|
//TipologiaContratto = _ClienteBatch.TipologiaContratto,
|
|
TipologiaContratto = _PBBatch.CodiceRete,
|
|
DescrizioneProfilo = _ClienteBatch.DescrizioneProfilo,
|
|
CodiceProfilo = _ClienteBatch.CodiceProfilo
|
|
};
|
|
|
|
}
|
|
|
|
public GeneratorService(Consulenza.DataServices.DatiSeiUnico datiSeiUnico)
|
|
{
|
|
_datiSeiUnico = datiSeiUnico;
|
|
if (datiSeiUnico.all().clientePB != null)
|
|
{
|
|
_chiaveClientePb = datiSeiUnico.all().clientePB.chiaveClientePB;
|
|
_cliente = new Cliente
|
|
{
|
|
Chiave = _chiaveClientePb,
|
|
CodiceFiscale = _datiSeiUnico.clienteUnit().anagrafica.codiceFiscale,
|
|
Cognome = _datiSeiUnico.clienteUnit().anagrafica.cognome,
|
|
Nome = _datiSeiUnico.clienteUnit().anagrafica.nome,
|
|
PartitaIva = _datiSeiUnico.clienteUnit().anagrafica.partitaIva,
|
|
DataSottoscrizioneContratto = _datiSeiUnico.clienteUnit().anagrafica.dtSottoscrizione,
|
|
TipologiaContratto = _datiSeiUnico.clienteUnit().anagrafica.contratto,
|
|
DescrizioneProfilo = _datiSeiUnico.clienteUnit().anagrafica.descProfiloReport,
|
|
CodiceProfilo = _datiSeiUnico.clienteUnit().anagrafica.codProfilo
|
|
};
|
|
}
|
|
else
|
|
{
|
|
_chiaveClientePb = 0;
|
|
_cliente = new Cliente
|
|
{
|
|
Chiave = _datiSeiUnico.all().nucleiUnit.anagrafica.chiaveNucleo,
|
|
CodiceFiscale = "",
|
|
Cognome = _datiSeiUnico.nucleiUnit() == null ? "" : _datiSeiUnico.nucleiUnit().anagrafica.nomeNucleo,
|
|
Nome = "",
|
|
PartitaIva = "",
|
|
TipologiaContratto = "",
|
|
DescrizioneProfilo = "",
|
|
CodiceProfilo = 0
|
|
};
|
|
}
|
|
|
|
//_privateBanker = new PrivateBanker
|
|
//{
|
|
// Cap = _datiSeiUnico.all().promotoreBancario.zipCode,
|
|
// Citta = _datiSeiUnico.all().promotoreBancario.city,
|
|
// Codice = _datiSeiUnico.all().promotoreBancario.codAge,
|
|
// CodiceRete = _datiSeiUnico.all().promotoreBancario.network,
|
|
// Indirizzo = _datiSeiUnico.all().promotoreBancario.address,
|
|
// Livello = _datiSeiUnico.all().promotoreBancario.rank,
|
|
// Nominativo = string.Format("{0} {1}", _datiSeiUnico.all().promotoreBancario.surname, _datiSeiUnico.all().promotoreBancario.name),
|
|
// NumeroCivico = "",
|
|
// PrefissoTelefono = _datiSeiUnico.all().promotoreBancario.phonePrefix,
|
|
// Telefono = _datiSeiUnico.all().promotoreBancario.phoneNumber
|
|
//};
|
|
}
|
|
}
|
|
}
|