737 lines
33 KiB
C#
737 lines
33 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Text;
|
||
using System.Data;
|
||
using System.Collections.Specialized;
|
||
using System.Globalization;
|
||
using System.Resources;
|
||
using ContrattoSei.Utilities;
|
||
using DataAccessLayer;
|
||
using System.Data.SqlClient;
|
||
using System.Data.Common;
|
||
using System.Threading.Tasks;
|
||
using System.Threading;
|
||
using System.Configuration;
|
||
|
||
namespace PDFGenerator.BusinessLayer
|
||
{
|
||
/// <summary>
|
||
/// Risk Credit Classes.
|
||
/// <Owner> Marian Zaki</Owner>
|
||
/// <Date> 04052010 </Date>
|
||
/// </summary>
|
||
/*public enum RiskCreditClass
|
||
{
|
||
/// <summary>
|
||
/// Class 1
|
||
/// </summary>
|
||
Classe1,
|
||
|
||
/// <summary>
|
||
/// Class 2
|
||
/// </summary>
|
||
Classe2,
|
||
|
||
/// <summary>
|
||
/// Class 3
|
||
/// </summary>
|
||
Classe3
|
||
}*/
|
||
public class UtilityBusinessLayer
|
||
{
|
||
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
||
|
||
private static DataThread ConstructFromDataReader(IDataReader reader)
|
||
{
|
||
//pk
|
||
try {
|
||
logger.Debug("Starting getting data for {0} {1} {2}", reader["codiceFiscale"].ToString(), reader["rete"].ToString(), reader["Tip_Contratto"].ToString());
|
||
}
|
||
catch { }
|
||
DataThread dataThread = new DataThread(DBProvider.SqlServerStampeC6);
|
||
//RETE
|
||
dataThread.DataLotto = ConfigurationManager.AppSettings["DataLotto"].ToString();
|
||
dataThread.Rete = reader["Rete"].ToString();
|
||
dataThread.NomeRete = reader["NomeRete"].ToString();
|
||
//AGENTE
|
||
dataThread.Agente = reader["Agente"].ToString();
|
||
dataThread.CognomeAgente = reader["CognomeAgente"].ToString();
|
||
dataThread.NomeAgente = reader["NomeAgente"].ToString();
|
||
dataThread.IndirizzoAgente = reader["IndirizzoAgente"].ToString();
|
||
dataThread.CapAgente = reader["CapAgente"].ToString();
|
||
dataThread.CittaAgente = reader["CittaAgente"].ToString();
|
||
dataThread.TelefonoAgente = reader["TelefonoAgente"].ToString();
|
||
//CLIENTE
|
||
dataThread.CodiceFiscale = reader["codiceFiscale"].ToString();
|
||
dataThread.CognomeCliente = reader["CognomeCliente"].ToString();
|
||
dataThread.NomeCliente = reader["NomeCliente"].ToString();
|
||
//PATRIMONI CLIENTE
|
||
dataThread.profiloIsAct = Convert.ToBoolean(reader["ProfiloIsAct"]);
|
||
//PATRIMONIO NON RAPPRESENTABILE
|
||
dataThread.PatrimonioNonRappresentabile = (decimal)reader["PatrimonioNonRappresentabile"];
|
||
//PARTITE VIAGGIANTI
|
||
dataThread.PartiteViaggiantiInvestimento = (decimal)reader["PartiteViaggiantiInv"];
|
||
dataThread.PartiteViaggiantiDisinvestimento = (decimal)reader["PartiteViaggiantiDisinv"]; //d.lisena
|
||
|
||
dataThread.ContoCorrente = (decimal)reader["ContoCorrente"];
|
||
dataThread.Patrimonioaltroctv = (decimal)reader["Patrimonioaltroctv"];
|
||
dataThread.Patrimonioimmobiliarectv = (decimal)reader["Patrimonioimmobiliarectv"];
|
||
dataThread.Patrimonioterzictv = (decimal)reader["Patrimonioterzictv"];
|
||
dataThread.PatrimonioTerziContoCorrente = (decimal)reader["PatrimonioTerziContoCorrente"];
|
||
dataThread.PatrimonioterzictvAlNettoContoCorrente = (decimal)reader["PatrimonioterzictvAlNettoContoCorrente"];
|
||
dataThread.Patrimoniobancafideuramctv = (decimal)reader["Patrimoniobancafideuramctv"];
|
||
dataThread.PatrimonioBancaFideuramCtvAlNettoContoCorrente = (decimal)reader["patrimoniobancafideuramctvalnettocontocorrente"];
|
||
dataThread.NumeroIntermediari = (int)reader["NumeroIntermediari"];
|
||
dataThread.RisorseNonAssociate = (decimal)reader["RisorseNonAssociate"];
|
||
dataThread.VaRRisorseNonAssociate = (decimal)reader["VaRRisorseNonAssociate"];
|
||
dataThread.CoperturaRisorseNonAssociate = (decimal)reader["CoperturaRisorseNonAssociate"];
|
||
dataThread.VaRTotaleRisorseFinanziarie = (decimal)reader["VaRTotaleRisorseFinanziarie"];
|
||
dataThread.CoperturaTotaleRisorseFinanziarie = (decimal)reader["CoperturaTotaleRisorseFinanziarie"];
|
||
dataThread.TipoContratto = reader["Tip_Contratto"].ToString().Equals("2") ? TipoContratto.Private : reader["Tip_Contratto"].ToString().Equals("1") ? TipoContratto.Affluent : TipoContratto.Old;
|
||
dataThread.ContrattoOld = reader["Contrattoold"].ToString().Equals("1") ? true : false;
|
||
dataThread.NoMonitoraggio = reader["NoMonitoraggio"].ToString().Equals("1") ? true : false;
|
||
//CONTRATTO
|
||
// dataThread.GeneraDiagnosi = Convert.ToBoolean(reader["generaDiagnosi"]);
|
||
|
||
dataThread.IdReportPDFDiagnosi = (Int32)reader["IdReportPDFDiagnosi"];
|
||
dataThread.IdReportPDFMonitoraggio = (Int32)reader["IdReportPDFMonitoraggio"];
|
||
|
||
dataThread.CodiceContratto = reader["CodiceContratto"].ToString();
|
||
int idReportDiagnosi = (Int32)reader["idReportDiagnosi"];
|
||
if (idReportDiagnosi != -1)
|
||
{
|
||
ReportType reportType = new ReportType();
|
||
reportType.IdReport = (Int32)reader["idReportDiagnosi"];
|
||
reportType.IdModello = (Int32)reader["idModelloDiagnosi"];
|
||
reportType.Descrizione = reader["descrizioneDiagnosi"].ToString();
|
||
reportType.TipoReport = TipoReport.DIAGNOSI;
|
||
dataThread.ReportsType.Add(reportType);
|
||
}
|
||
|
||
int idReportMonitoraggio = (Int32)reader["idReportMonitoraggio"];
|
||
if (idReportMonitoraggio != -1)
|
||
{
|
||
ReportType reportType = new ReportType();
|
||
reportType.IdReport = (Int32)reader["idReportMonitoraggio"];
|
||
reportType.IdModello = (Int32)reader["idModelloMonitoraggio"];
|
||
reportType.Descrizione = reader["descrizioneMonitoraggio"].ToString();
|
||
reportType.TipoReport = TipoReport.MONITORAGGIO;
|
||
dataThread.ReportsType.Add(reportType);
|
||
|
||
DateTimeFormatInfo dfi = new CultureInfo("it-IT", false).DateTimeFormat;
|
||
dataThread.DataFineTrimestreCorrente = Convert.ToDateTime(UtilityManager.getAppSetting("DataFineTrimestreCorrente"), dfi);
|
||
|
||
}
|
||
dataThread.AdesioneSuccessivaAvanzato = Convert.ToBoolean(reader["adesioneSuccessivaAvanzato"]);
|
||
dataThread.Periodico = UtilityManager.getAppSetting("Periodico") == "0" ? false : true;
|
||
try {
|
||
logger.Debug("Getting data for {0} {1} {2} finished", reader["codiceFiscale"].ToString(), reader["rete"].ToString(), reader["Tip_Contratto"].ToString());
|
||
}
|
||
catch { }
|
||
return dataThread;
|
||
}
|
||
|
||
public List<DataThread> getDataThreads(int number)
|
||
{
|
||
List<DataThread> dataThreads = new List<DataThread>();
|
||
try
|
||
{
|
||
DataThread dataThread = null;
|
||
string queryGetContratti = UtilityManager.getAppSetting("QueryContratti");
|
||
DbParameter[] pa = new SqlParameter[1] { new SqlParameter("volThreads", number) };
|
||
using (DataAccessDE dataAccess = new DataAccessDE(DBProvider.SqlServerStampeC6))
|
||
{
|
||
SqlCommand cmd;
|
||
using (IDataReader reader = dataAccess.ExecuteDataReader(CommandType.StoredProcedure, queryGetContratti, pa, out cmd))
|
||
{
|
||
while (reader.Read())
|
||
{
|
||
dataThread = ConstructFromDataReader(reader);
|
||
dataThreads.Add(dataThread);
|
||
}
|
||
reader.Close();
|
||
}
|
||
cmd.Dispose();
|
||
System.Threading.Tasks.Parallel.ForEach(dataThreads, t =>
|
||
{
|
||
RischioRelativo_PesoPercentuale r = new RischioRelativo_PesoPercentuale();
|
||
r.DataSource = recuperaDatiCalcoloPeso_Rischio(t.DataAccess, t.Rete, t.CodiceFiscale);
|
||
t.PesoPercentuale = r.calcolaPeso();
|
||
t.RischioRelativo = r.calcolaRischio();
|
||
t.ControvaloriTotali = r.calcolaControvaloriAttuali();
|
||
t.TotalNegativeCurrentAccountValue = getClientNegativeCurrentAccountsValue(t.DataAccess, t.Rete, t.CodiceFiscale);
|
||
t.TotalSelfNegCurrentAccountValue = getClientSelfNegCurrentAccountValue(t.DataAccess, t.Rete, t.CodiceFiscale);
|
||
});
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
try {
|
||
logger.Error(String.Concat(ex.Message,", number: ", number.ToString()));
|
||
}
|
||
catch { }
|
||
}
|
||
if (dataThreads != null && dataThreads.Count > 0)
|
||
return dataThreads;
|
||
else
|
||
return null;
|
||
}
|
||
|
||
public Task obtainDataThreadsAsync(List<DataThread> dataThreads, int number)
|
||
{
|
||
Task t = Task.Factory.StartNew(() =>
|
||
{
|
||
List<DataThread> result = getDataThreads(number);
|
||
dataThreads.Clear();
|
||
if (result != null)
|
||
{
|
||
foreach (DataThread dt in result)
|
||
{
|
||
dataThreads.Add(dt);
|
||
}
|
||
}
|
||
});
|
||
return t;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Recupero il datatable sul quale effettuare il calcolo del peso e del rischo relativo a livello di area/progetto.
|
||
/// Dalla [C6MartPeriodico].[PL_S82DatiSintetici] prendo i dati per le aree non d'investimento.
|
||
/// Dalla [C6MartPeriodico].[PL_S82BisDatiSintetici] prendo i dati per le aree d'investimento.
|
||
/// Oltre a dtDatiAREA e dtDatiPROGETTO vanno considerati anche i prodotti non associati a progetti.
|
||
/// Ottengo 3 datatable e il datatable di return sar<61> il merge dei 3.
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
private DataTable recuperaDatiCalcoloPeso_Rischio(DataAccessDE dataAccess, string rete, string codiceFiscale)
|
||
{
|
||
#region Settaggio parametri
|
||
|
||
List<Parametro> parameters = new List<Parametro>()
|
||
{
|
||
new Parametro() {Value = rete, ParameterName ="Rete" },
|
||
new Parametro() {Value = codiceFiscale, ParameterName ="CodiceFiscale" },
|
||
};
|
||
|
||
#endregion
|
||
|
||
DataTable dtDatiAREA = dataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[PL_S82DatiSintetici]", parameters);
|
||
dtDatiAREA = dtDatiAREA.DefaultView.ToTable(false, "NEED_AREA", "CONTROVALOREATTUALE", "VAR_NEEDAREA", "VAR_NEEDAREASTRING", "ORDINAMENTO_PROGETTO");
|
||
|
||
DataTable dtDatiPROGETTO = dataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[PL_S82BisDatiSintetici]", parameters);
|
||
dtDatiPROGETTO = dtDatiPROGETTO.DefaultView.ToTable(false, "NEED_AREA", "NOME_PROGETTO", "CONTROVALOREATTUALE", "VAR_NEEDAREA", "VAR_NEEDAREASTRING", "ORDINAMENTO_PROGETTO");
|
||
|
||
// Oltre a dtDatiAREA e dtDatiPROGETTO vanno considerati anche i prodotti non associati a progetti.
|
||
DataTable dtProdottiNonAssociati = dataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[PL_Prodotti_Non_Associati_Area_Inv]", parameters);
|
||
|
||
#region Creazione e popolamento DataTable dtProdottiNonAssociati
|
||
DataTable dtDatiProdottiNonAssociati = new DataTable();
|
||
|
||
if (dtProdottiNonAssociati.Rows.Count > 0)
|
||
{
|
||
dtDatiProdottiNonAssociati.Columns.Add("need_area", typeof(string));
|
||
dtDatiProdottiNonAssociati.Columns.Add("NOME_PROGETTO", typeof(string));
|
||
dtDatiProdottiNonAssociati.Columns.Add("ControvaloreAttuale", typeof(decimal));
|
||
dtDatiProdottiNonAssociati.Columns.Add("var_needarea", typeof(decimal));
|
||
dtDatiProdottiNonAssociati.Columns.Add("var_needareaString", typeof(string));
|
||
dtDatiProdottiNonAssociati.Columns.Add("ORDINAMENTO_PROGETTO", typeof(int));
|
||
|
||
DataRow drDatiProdottiNonAssociati = dtDatiProdottiNonAssociati.NewRow();
|
||
drDatiProdottiNonAssociati["NEED_AREA"] = dtProdottiNonAssociati.Rows[0]["NEED_AREA"];
|
||
drDatiProdottiNonAssociati["NOME_PROGETTO"] = dtProdottiNonAssociati.Rows[0]["NOME_PROGETTO"];
|
||
drDatiProdottiNonAssociati["CONTROVALOREATTUALE"] = dtProdottiNonAssociati.Compute("Sum(CONTROVALOREATTUALE)", string.Empty);
|
||
drDatiProdottiNonAssociati["var_needarea"] = dtProdottiNonAssociati.Rows[0]["var_needarea"];
|
||
drDatiProdottiNonAssociati["var_needareaString"] = dtProdottiNonAssociati.Rows[0]["var_needareaString"];
|
||
//drDatiProdottiNonAssociati["ORDINAMENTO_PROGETTO"] = Convert.ToInt32(dtDatiProdottiNonAssociati.Rows[0]["ORDINAMENTO_PROGETTO"]);
|
||
drDatiProdottiNonAssociati["ORDINAMENTO_PROGETTO"] = Convert.ToInt32(dtProdottiNonAssociati.Rows[0]["ORDINAMENTO_PROGETTO"]);
|
||
dtDatiProdottiNonAssociati.Rows.Add(drDatiProdottiNonAssociati);
|
||
}
|
||
|
||
#endregion
|
||
|
||
DataTable dtDati = new DataTable(); // datatable di return
|
||
dtDati = dtDatiAREA;
|
||
dtDati.Merge(dtDatiPROGETTO);
|
||
|
||
if (dtDatiProdottiNonAssociati.Rows.Count > 0) // se ho prodotti non associati a progetti li aggiungo nel calcolo finale del peso percentuale e rischio relativo
|
||
dtDati.Merge(dtDatiProdottiNonAssociati);
|
||
|
||
return dtDati;
|
||
}
|
||
private static decimal getClientSelfNegCurrentAccountValue(DataAccessDE dataAccess, string rete, string codiceFiscale)
|
||
{
|
||
#region Settaggio parametri
|
||
|
||
List<Parametro> parameters = new List<Parametro>()
|
||
{
|
||
new Parametro() {Value = rete, ParameterName ="Rete" },
|
||
new Parametro() {Value = codiceFiscale, ParameterName ="CodiceFiscale" },
|
||
};
|
||
|
||
#endregion
|
||
|
||
object ClientSelfNegCurrentAccountValue;
|
||
if (UtilityManager.getAppSetting("Periodico") == "0")
|
||
{
|
||
ClientSelfNegCurrentAccountValue = dataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, "[C6Mart].[PL_GetClientSelfNegCurrentAccountValue]", parameters);
|
||
}
|
||
else
|
||
{
|
||
ClientSelfNegCurrentAccountValue = dataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[PL_GetClientSelfNegCurrentAccountValue]", parameters);
|
||
}
|
||
|
||
|
||
|
||
if (ClientSelfNegCurrentAccountValue != null)
|
||
return decimal.Parse(ClientSelfNegCurrentAccountValue.ToString());
|
||
else
|
||
return 0;
|
||
}
|
||
private static decimal getClientNegativeCurrentAccountsValue(DataAccessDE dataAccess, string rete, string codiceFiscale)
|
||
{
|
||
#region Settaggio parametri
|
||
|
||
List<Parametro> parameters = new List<Parametro>()
|
||
{
|
||
new Parametro() {Value = rete, ParameterName ="Rete" },
|
||
new Parametro() {Value = codiceFiscale, ParameterName ="CodiceFiscale" },
|
||
};
|
||
|
||
#endregion
|
||
|
||
object clientNegativeCurrentAccountsValue;
|
||
if (UtilityManager.getAppSetting("Periodico") == "0")
|
||
{
|
||
clientNegativeCurrentAccountsValue = dataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, "[C6Mart].[PL_GetClientNegativeCurrentAccountsValue]", parameters);
|
||
}
|
||
else
|
||
{
|
||
clientNegativeCurrentAccountsValue = dataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[PL_GetClientNegativeCurrentAccountsValue]", parameters);
|
||
}
|
||
//object clientNegativeCurrentAccountsValue = DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, "[C6MartPeriodico].[PL_GetClientNegativeCurrentAccountsValue]", parametri);
|
||
|
||
|
||
|
||
if (clientNegativeCurrentAccountsValue != null)
|
||
return decimal.Parse(clientNegativeCurrentAccountsValue.ToString());
|
||
else
|
||
return 0;
|
||
}
|
||
public static StringCollection getMTQueries(ReportType reportType, DataAccessDE dataAccess)
|
||
{
|
||
StringCollection stringCollection = new StringCollection();
|
||
List<Parametro> parametri = new List<Parametro>();
|
||
Parametro parametro = new Parametro();
|
||
parametro.ParameterName = "idReport";
|
||
parametro.DbType = DbType.Int32;
|
||
parametro.Value = reportType.IdReport;
|
||
parametri.Add(parametro);
|
||
parametro = new Parametro();
|
||
parametro.ParameterName = "idModello";
|
||
parametro.DbType = DbType.Int32;
|
||
parametro.Value = reportType.IdModello;
|
||
parametri.Add(parametro);
|
||
bool checkPeriodico = (UtilityManager.getAppSetting("Periodico") == "1") ? true : false;
|
||
if (checkPeriodico)
|
||
{
|
||
parametro = new Parametro();
|
||
parametro.ParameterName = "periodicita";
|
||
parametro.DbType = DbType.String;
|
||
parametro.Value = 'T';
|
||
parametri.Add(parametro);
|
||
|
||
}
|
||
|
||
using (IDataReader reader = dataAccess.ExecuteDataReaderStoredProcedure(DBProvider.SqlServerStampeC6, "[C6Mart].[GESTIONE_C6_S_Generator]", parametri))
|
||
{
|
||
string queryLetta;
|
||
while (reader.Read())
|
||
{
|
||
queryLetta = reader["querySqlSezione"].ToString();
|
||
if (!string.IsNullOrEmpty(queryLetta))
|
||
stringCollection.Add(reader["querySqlSezione"].ToString());
|
||
}
|
||
}
|
||
return stringCollection;
|
||
}
|
||
public static int getEndThread(DataThread dataThread, int idReport, int docPage)
|
||
{
|
||
if (UtilityManager.getAppSetting("SavePDFtoDISK") == "1")
|
||
return 0;
|
||
|
||
List<Parametro> parametri = new List<Parametro>();
|
||
Parametro parametro = new Parametro();
|
||
parametro.ParameterName = "Rete";
|
||
parametro.DbType = DbType.AnsiStringFixedLength;
|
||
parametro.Value = dataThread.Rete;
|
||
parametri.Add(parametro);
|
||
|
||
parametro = new Parametro();
|
||
parametro.ParameterName = "CodiceFiscale";
|
||
parametro.DbType = DbType.String;
|
||
parametro.Value = dataThread.CodiceFiscale;
|
||
parametri.Add(parametro);
|
||
|
||
parametro = new Parametro();
|
||
parametro.ParameterName = "TipoReport";
|
||
parametro.DbType = DbType.String;
|
||
parametro.Value = dataThread.TipoReport;
|
||
parametri.Add(parametro);
|
||
|
||
string queryInserimento = UtilityManager.getAppSetting("SP_GESTIONE_INSERT_PDF_FTP_GET_ID");
|
||
//DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerStampeC6, queryInserimento, parametri);
|
||
try
|
||
{
|
||
return Convert.ToInt32(dataThread.DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, queryInserimento, parametri));
|
||
}
|
||
catch (Exception)
|
||
{
|
||
|
||
return -1;
|
||
|
||
}
|
||
}
|
||
public static int setEndThread(DataThread dataThread, int idReport, int docPage)
|
||
{
|
||
if (UtilityManager.getAppSetting("SavePDFtoDISK") == "1")
|
||
return 0;
|
||
|
||
List<Parametro> parametri = new List<Parametro>();
|
||
Parametro parametro = new Parametro();
|
||
parametro.ParameterName = "Rete";
|
||
parametro.DbType = DbType.AnsiStringFixedLength;
|
||
parametro.Value = dataThread.Rete;
|
||
parametri.Add(parametro);
|
||
|
||
parametro = new Parametro();
|
||
parametro.ParameterName = "CodiceFiscale";
|
||
parametro.DbType = DbType.String;
|
||
parametro.Value = dataThread.CodiceFiscale;
|
||
parametri.Add(parametro);
|
||
|
||
//FC Gestione Parallelizzazione Processi
|
||
// idReport <20> gestito dalla SP inserimento Gestione_Pdf_Ftp
|
||
|
||
int idReportPdf = dataThread.TipoReport == TipoReport.DIAGNOSI.ToString() ? dataThread.IdReportPDFDiagnosi : dataThread.IdReportPDFMonitoraggio;
|
||
idReportPdf = idReportPdf == 0 ? idReport : idReportPdf;
|
||
parametro = new Parametro();
|
||
parametro.ParameterName = "idReport";
|
||
parametro.DbType = DbType.Int32;
|
||
parametro.Value = idReportPdf;
|
||
parametri.Add(parametro);
|
||
|
||
parametro = new Parametro();
|
||
parametro.ParameterName = "NomeFile";
|
||
parametro.DbType = DbType.String;
|
||
parametro.Value = dataThread.NomeFileReport;
|
||
parametri.Add(parametro);
|
||
|
||
parametro = new Parametro();
|
||
parametro.ParameterName = "TipoReport";
|
||
parametro.DbType = DbType.String;
|
||
parametro.Value = dataThread.TipoReport;
|
||
parametri.Add(parametro);
|
||
|
||
parametro = new Parametro();
|
||
parametro.ParameterName = "NumeroPagine";
|
||
parametro.DbType = DbType.Int32;
|
||
parametro.Value = docPage;
|
||
parametri.Add(parametro);
|
||
|
||
//V Se <20> un report periodico salvo anche l'RFA in GESTIONE_PDF_FTP
|
||
if (dataThread.Periodico)
|
||
{
|
||
parametro = new Parametro();
|
||
parametro.ParameterName = "RFA";
|
||
parametro.DbType = DbType.Decimal;
|
||
parametro.Value = dataThread.Patrimoniobancafideuramctv;
|
||
parametri.Add(parametro);
|
||
|
||
|
||
parametro = new Parametro();
|
||
parametro.ParameterName = "CodiceContratto";
|
||
parametro.DbType = DbType.String;
|
||
parametro.Value = dataThread.CodiceContratto;
|
||
parametri.Add(parametro);
|
||
|
||
|
||
}
|
||
|
||
|
||
string queryInserimento = UtilityManager.getAppSetting("QueryInserimentoPDF_FTP");
|
||
//DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerStampeC6, queryInserimento, parametri);
|
||
var r = new object() ;
|
||
try
|
||
{
|
||
r = dataThread.DataAccess.ExecuteScalarStoredProcedure(DBProvider.SqlServerStampeC6, queryInserimento, parametri);
|
||
return Convert.ToInt32(r);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
logger.Error(ex.Message + "::" + idReportPdf.ToString() + " " + dataThread.CodiceFiscale + " " + dataThread.TipoReport + r.ToString());
|
||
return -1;
|
||
|
||
}
|
||
|
||
}
|
||
|
||
public static string ReplaceVariables(string testodarimpiazzare, DataThread _dataThread)
|
||
{
|
||
string testoOriginale = testodarimpiazzare;
|
||
|
||
testoOriginale = testoOriginale.Replace("$/Area/$", _dataThread.AreaEstesa);
|
||
|
||
if (_dataThread.Area != "Inv")
|
||
testoOriginale = testoOriginale.Replace("$/AreaProgetto/$", _dataThread.AreaEstesa);
|
||
else
|
||
testoOriginale = testoOriginale.Replace("$/AreaProgetto/$", _dataThread.Progetto);
|
||
|
||
if (_dataThread.Area != "Inv")
|
||
testoOriginale = testoOriginale.Replace("$/AreaProgettoA/$", "all<6C>area di " + _dataThread.AreaEstesa);
|
||
else
|
||
testoOriginale = testoOriginale.Replace("$/AreaProgettoA/$", "al progetto " + _dataThread.Progetto);
|
||
|
||
if (_dataThread.Area != "Inv")
|
||
testoOriginale = testoOriginale.Replace("$/AreaProgettoD/$", "dell<6C>area di " + _dataThread.AreaEstesa);
|
||
else
|
||
testoOriginale = testoOriginale.Replace("$/AreaProgettoD/$", "del progetto " + _dataThread.Progetto);
|
||
|
||
testoOriginale = testoOriginale.Replace("$/Progetto/$", _dataThread.Progetto);
|
||
|
||
if (_dataThread.Intermediario == "Altro")
|
||
testoOriginale = testoOriginale.Replace("$/Intermediario/$", "Altro intermediario");
|
||
else
|
||
testoOriginale = testoOriginale.Replace("$/Intermediario/$", _dataThread.Intermediario);
|
||
|
||
if (_dataThread.Rete == "F")
|
||
//FC 26062015 Aggionamento nuova Ragione Sociale
|
||
//testoOriginale = testoOriginale.Replace("$/Banca/$", "Banca Fideuram");
|
||
testoOriginale = testoOriginale.Replace("$/Banca/$", "Fideuram");
|
||
else
|
||
testoOriginale = testoOriginale.Replace("$/Banca/$", "Sanpaolo Invest");
|
||
|
||
testoOriginale = testoOriginale.Replace("$/FontSize/$", "</font><font pointSize='6'>font size, </font>");
|
||
|
||
return testoOriginale;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Sostituisce le variabili presenti nel testo (indicate con $/...../$ con il valore corrispondente
|
||
/// I dati vengono presi dalle propriet<65> dell'oggetto sezione passato in input.
|
||
/// </summary>
|
||
/// <param name="testodarimpiazzare"></param>
|
||
/// <returns></returns>
|
||
public static string ReplaceVariables(string testodarimpiazzare, SezioneReport sezione)
|
||
{
|
||
string testoOriginale = testodarimpiazzare;
|
||
char[] define = { '$', '/', ',', '.' };
|
||
|
||
const char Space = ' ';
|
||
|
||
char[] delimiters = new char[]
|
||
{
|
||
Space
|
||
};
|
||
|
||
|
||
// split the string and then iterate over the
|
||
// resulting array of strings
|
||
if (testodarimpiazzare != " ")
|
||
foreach (string variabile in testodarimpiazzare.Split(delimiters))
|
||
{
|
||
string app = variabile.TrimStart(define);
|
||
app = app.TrimEnd(define);
|
||
switch (app)
|
||
{
|
||
#region Area
|
||
case "Area":
|
||
testoOriginale = testoOriginale.Replace("$/Area/$", sezione.AreaProgettoDescrizione);
|
||
break;
|
||
#endregion
|
||
|
||
#region AreaProgetto
|
||
case "AreaProgetto":
|
||
if (sezione.AreaProgettoCodice.ToLower() != "inv")
|
||
testoOriginale = testoOriginale.Replace("$/AreaProgetto/$", sezione.AreaProgettoDescrizione);
|
||
else
|
||
testoOriginale = testoOriginale.Replace("$/AreaProgetto/$", sezione.NomeProgetto);
|
||
|
||
break;
|
||
#endregion
|
||
}
|
||
}
|
||
|
||
return testoOriginale;
|
||
}
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// Sostituisce le variabili presenti nel testo (indicate con $/...../$ con il valore corrispondente
|
||
/// I dati vengono presi dalle propriet<65> dell'oggetto sezione passato in input.
|
||
/// Aggiunge gli apici all'inizio e alla fine del testo da rimpiazzato (solo per i nomi dei progetti investimento).
|
||
/// </summary>
|
||
/// <param name="testodarimpiazzare">testo</param>
|
||
/// <param name="sezione">oggetto sezione da cui prendere i dati</param>
|
||
/// <param name="aggiuntaapici">Se true aggiunge le virgolette (apici) prima e dopo il testo sostituito</param>
|
||
/// <returns></returns>
|
||
public static string ReplaceVariables(string testodarimpiazzare, SezioneReport sezione, bool aggiuntaapici)
|
||
{
|
||
string testoOriginale = testodarimpiazzare;
|
||
char[] define = { '$', '/', ',', '.' };
|
||
|
||
const char Space = ' ';
|
||
|
||
char[] delimiters = new char[]
|
||
{
|
||
Space
|
||
};
|
||
|
||
|
||
// split the string and then iterate over the
|
||
// resulting array of strings
|
||
if (testodarimpiazzare != " ")
|
||
foreach (string variabile in testodarimpiazzare.Split(delimiters))
|
||
{
|
||
string app = variabile.TrimStart(define);
|
||
app = app.TrimEnd(define);
|
||
switch (app)
|
||
{
|
||
#region Area
|
||
case "Area":
|
||
testoOriginale = testoOriginale.Replace("$/Area/$", sezione.AreaProgettoDescrizione);
|
||
break;
|
||
#endregion
|
||
|
||
#region AreaProgetto
|
||
case "AreaProgetto":
|
||
if (sezione.AreaProgettoCodice.ToLower() != "inv")
|
||
testoOriginale = testoOriginale.Replace("$/AreaProgetto/$", sezione.AreaProgettoDescrizione);
|
||
else
|
||
{
|
||
if (aggiuntaapici)
|
||
testoOriginale = testoOriginale.Replace("$/AreaProgetto/$", "''" + sezione.NomeProgetto + "''");
|
||
else
|
||
testoOriginale = testoOriginale.Replace("$/AreaProgetto/$", sezione.NomeProgetto);
|
||
}
|
||
break;
|
||
#endregion
|
||
}
|
||
}
|
||
|
||
return testoOriginale;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Return the Risk Class depending on the passed value
|
||
/// <Owner> Marian Zaki</Owner>
|
||
/// <Date> 04052010 </Date>
|
||
/// </summary>
|
||
/// <param name="riskCreditClass">
|
||
/// case 1: Class 1
|
||
/// case 2: Class 2
|
||
/// case 3: Class 3
|
||
/// </param>
|
||
/// <returns> The class name </returns>
|
||
public static string GetRiskCreditClassName(string riskCreditClass)
|
||
{
|
||
float riskCreditClassFloatValue;
|
||
int riskCreditClassValue = 0;
|
||
string className = string.Empty;
|
||
if (float.TryParse(riskCreditClass, out riskCreditClassFloatValue))
|
||
{
|
||
riskCreditClassValue = Convert.ToInt32(riskCreditClassFloatValue);
|
||
}
|
||
else if (int.TryParse(riskCreditClass, out riskCreditClassValue)) { }
|
||
|
||
if (riskCreditClassValue != 0)
|
||
{
|
||
|
||
switch (riskCreditClassValue)
|
||
{
|
||
case 1:
|
||
className = Resource.RiskCreditClass1;
|
||
break;
|
||
case 2:
|
||
className = Resource.RiskCreditClass2;
|
||
break;
|
||
case 3:
|
||
className = Resource.RiskCreditClass3;
|
||
break;
|
||
case 4:
|
||
className = Resource.RiskCreditOltreClasse3;
|
||
break;
|
||
default:
|
||
className = string.Empty;
|
||
break;
|
||
|
||
}
|
||
|
||
return className;
|
||
}
|
||
else
|
||
return string.Empty;
|
||
}
|
||
|
||
|
||
public static string GetRiskCreditEmitClassName(string riskCreditClass)
|
||
{
|
||
float riskCreditClassFloatValue;
|
||
int riskCreditClassValue = 0;
|
||
string className = string.Empty;
|
||
if (float.TryParse(riskCreditClass, out riskCreditClassFloatValue))
|
||
{
|
||
riskCreditClassValue = Convert.ToInt32(riskCreditClassFloatValue);
|
||
}
|
||
else if (int.TryParse(riskCreditClass, out riskCreditClassValue)) { }
|
||
|
||
if (riskCreditClassValue != 0)
|
||
{
|
||
|
||
switch (riskCreditClassValue)
|
||
{
|
||
case 1:
|
||
className = Resource.RiskCreditClassEmit1;
|
||
break;
|
||
case 2:
|
||
className = Resource.RiskCreditClassEmit2;
|
||
break;
|
||
case 3:
|
||
className = Resource.RiskCreditClassEmit3;
|
||
break;
|
||
case 4:
|
||
className = Resource.RiskCreditClassEmit4;
|
||
break;
|
||
case 5:
|
||
className = Resource.RiskCreditClassEmit5;
|
||
break;
|
||
case 6:
|
||
className = Resource.RiskCreditClassEmit6;
|
||
break;
|
||
case 7:
|
||
className = Resource.RiskCreditClassEmit7;
|
||
break;
|
||
case 8:
|
||
className = Resource.RiskCreditClassEmit8;
|
||
break;
|
||
case 9:
|
||
className = Resource.RiskCreditClassEmit9;
|
||
break;
|
||
case 10:
|
||
className = Resource.RiskCreditClassEmit10;
|
||
break;
|
||
default:
|
||
className = string.Empty;
|
||
break;
|
||
|
||
}
|
||
|
||
return className;
|
||
}
|
||
else
|
||
return string.Empty;
|
||
}
|
||
|
||
|
||
}
|
||
}
|