623 lines
22 KiB
C#
623 lines
22 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
//using System.Collections;
|
|
using System.Data;
|
|
using System.Runtime.CompilerServices;
|
|
using log4net;
|
|
|
|
|
|
using System.Data.Common;
|
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
using Microsoft.Practices.EnterpriseLibrary.Data.Oracle;
|
|
using Oracle.DataAccess.Client;
|
|
|
|
namespace SEILoader
|
|
{
|
|
class DbManager
|
|
{
|
|
private static IDataReader dataReaderClienti;
|
|
private static string _oid;
|
|
private static DataTable _fiduciarie=null;
|
|
private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
|
|
|
|
|
[MethodImpl(MethodImplOptions.Synchronized)]
|
|
public static CaricamentoClienteData getProssimoCliente()
|
|
{
|
|
try
|
|
{
|
|
if (!dataReaderClienti.Read()) return null;
|
|
|
|
string rete = dataReaderClienti.GetString(0);
|
|
string pb = dataReaderClienti.GetString(1);
|
|
string cf = dataReaderClienti.GetString(2);
|
|
log.Debug("getProssimocliente() rete=" + rete + ", pb=" + pb + ", cf=" + cf);
|
|
CaricamentoClienteData pc = new CaricamentoClienteData(rete, pb, cf);
|
|
return pc;
|
|
}
|
|
catch (DataBaseException dex) {
|
|
log.Error("errore getProssimoCliente()", dex);
|
|
}
|
|
return null;
|
|
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.Synchronized)]
|
|
public static String getPiva(String codBreve)
|
|
{
|
|
if (_fiduciarie == null) {
|
|
_fiduciarie = DataAccess.ExecuteDataTable(DBProvider.Oracle, CommandType.Text, "SELECT C_PIVA_CB7A1 AS piva, C_CODBREVE_740F5 AS codbreve FROM Fiduciarie ");
|
|
}
|
|
|
|
if (_fiduciarie != null) {
|
|
DataRow[] riga = _fiduciarie.Select("codbreve = '" + codBreve + "'");
|
|
if (riga.Length > 0)
|
|
return riga[0][0].ToString();
|
|
else
|
|
return "";
|
|
}
|
|
|
|
return "";
|
|
}
|
|
|
|
public static void annullaTabella(String idElaborazione) {
|
|
log.Info("annullaTabella idElaborazione=" + idElaborazione);
|
|
popolaTabella(idElaborazione, "X");
|
|
}
|
|
|
|
public static void popolaTabella(String idElaborazione, string TipoOperazione)
|
|
{
|
|
log.Info("popolaTabella idElaborazione=" + idElaborazione + " TipoOperazione=" + TipoOperazione);
|
|
List<Parametro> parametri = new List<Parametro>();
|
|
|
|
Parametro parametro = new Parametro();
|
|
parametro.ParameterName = "id_elab";
|
|
parametro.Value = idElaborazione;
|
|
parametro.DbType = DbType.String;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "tipo_richiesta";
|
|
parametro.Value = TipoOperazione;
|
|
parametro.DbType = DbType.String;
|
|
parametri.Add(parametro);
|
|
|
|
|
|
DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.Oracle, "caric_massiv_loadclient", parametri);
|
|
|
|
|
|
}
|
|
public static void AggiornaAnagrafica(string rete, string cf, string cognome, string nome)
|
|
{
|
|
log.Debug("AggiornaAnagrafica rete=" + rete + " cf=" + cf + " cognome=" + cognome + " nome=" + nome);
|
|
List<Parametro> parametri = new List<Parametro>();
|
|
|
|
Parametro parametro = new Parametro();
|
|
parametro.ParameterName = "codfis";
|
|
parametro.Value = cf;
|
|
parametro.DbType = DbType.String;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "rete";
|
|
parametro.Value = rete;
|
|
parametro.DbType = DbType.String;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "cognome_new";
|
|
parametro.Value = cognome;
|
|
parametro.DbType = DbType.String;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "nome_new";
|
|
parametro.Value = nome;
|
|
parametro.DbType = DbType.String;
|
|
parametri.Add(parametro);
|
|
|
|
|
|
DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.Oracle, "aggiorna_cliente", parametri);
|
|
|
|
|
|
}
|
|
|
|
public static int contaTabella(string idElaborazione)
|
|
{
|
|
log.Info("contaTabella idElaborazione=" + idElaborazione);
|
|
|
|
string sql = "select count(*) from loadclient where cod='" + idElaborazione + "' and esito=-2";
|
|
log.Debug("contaTabella sql= " + sql);
|
|
IDataReader dataReaderCount = DataAccess.ExecuteDataReader(DBProvider.Oracle, CommandType.Text, sql);
|
|
if (dataReaderCount.IsClosed) return 0;
|
|
|
|
dataReaderCount.Read();
|
|
|
|
return dataReaderCount.GetInt32(0);
|
|
}
|
|
|
|
|
|
public static void leggiTabella(string idElaborazione)
|
|
{
|
|
log.Info("leggiTabella idElaborazione=" + idElaborazione );
|
|
List<Parametro> parametri = new List<Parametro>();
|
|
|
|
string sql = "select rete,pb,codfis from loadclient where cod='" + idElaborazione + "' and esito=-2";
|
|
log.Debug("leggiTabella sql= "+sql);
|
|
dataReaderClienti = DataAccess.ExecuteDataReader(DBProvider.Oracle, CommandType.Text,sql);
|
|
}
|
|
|
|
public static int contaTabellaC6(string idElaborazione)
|
|
{
|
|
log.Info("contaTabellaC6 idElaborazione=" + idElaborazione);
|
|
|
|
string sql = "SELECT count(DISTINCT RETE + COD_FISCALE) FROM C6Mart.RISCHIO_AGGREGATO";
|
|
log.Debug("contaTabellaC6 sql= " + sql);
|
|
IDataReader dataReaderCount = DataAccess.ExecuteDataReader(DBProvider.SqlServerStampeC6, CommandType.Text, sql);
|
|
if (dataReaderCount.IsClosed) return 0;
|
|
|
|
dataReaderCount.Read();
|
|
|
|
return dataReaderCount.GetInt32(0);
|
|
}
|
|
|
|
|
|
public static void leggiTabellaC6(string idElaborazione)
|
|
{
|
|
log.Info("leggiTabellaC6 idElaborazione=" + idElaborazione);
|
|
|
|
string sql ="SELECT DISTINCT RETE, '000000' as pb, COD_FISCALE as codfis FROM C6Mart.RISCHIO_AGGREGATO";
|
|
log.Debug("leggiTabellaC6 sql= " + sql);
|
|
dataReaderClienti = DataAccess.ExecuteDataReader(DBProvider.SqlServerStampeC6, CommandType.Text, sql);
|
|
}
|
|
|
|
|
|
public static bool inizioElaborazione(String idElaborazione, string argomenti, string tipo)
|
|
{
|
|
|
|
string caller = Environment.MachineName;
|
|
|
|
String SQL = "select start_loadstat(&COD, &CHIAMANTE, &ARGOMENTI, &TIPO) from dual";
|
|
|
|
List<Parametro> parametri = new List<Parametro>();
|
|
|
|
Parametro parametro = new Parametro();
|
|
parametro.ParameterName = "COD";
|
|
parametro.Value = idElaborazione;
|
|
parametro.DbType = DbType.AnsiStringFixedLength;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "CHIAMANTE";
|
|
parametro.Value = caller;
|
|
parametro.DbType = DbType.AnsiStringFixedLength;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "ARGOMENTI";
|
|
parametro.Value = argomenti;
|
|
parametro.DbType = DbType.AnsiStringFixedLength;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "TIPO";
|
|
parametro.Value = tipo;
|
|
parametro.DbType = DbType.AnsiStringFixedLength;
|
|
parametri.Add(parametro);
|
|
|
|
|
|
IDataReader dr = DataAccess.ExecuteDataReaderSqlStatement(DBProvider.Oracle, SQL, parametri);
|
|
|
|
if (!dr.IsClosed)
|
|
{
|
|
dr.Read();
|
|
String OID= dr.GetString(0);
|
|
if (OID == "KO") return false;
|
|
|
|
_oid = OID;
|
|
|
|
}
|
|
/*
|
|
function start_loadStat
|
|
input:
|
|
cod
|
|
chiamante
|
|
argomenti
|
|
tipo
|
|
output:
|
|
oid$ oppure KO se non puo' inserire (ovvero esiste una riga con esito=-1)
|
|
logica: se sulla tabella LOADSTAT esiste una riga con esito=-1 restituire 'KO'; altrimenti insert dei campi in input, mettendo oid$ generato come progressivo ed inizio =sysdate
|
|
|
|
*/
|
|
|
|
return true;
|
|
}
|
|
|
|
public static void cleanVar()
|
|
{
|
|
String SQL = "truncate table var_check ";
|
|
DataAccess.ExecuteNonQuerySqlStatement(DBProvider.SqlServerStampeC6, SQL, null);
|
|
}
|
|
|
|
|
|
public static void insertVar(CaricamentoClienteData pc, string var)
|
|
{
|
|
|
|
String SQL =
|
|
|
|
"insert into var_check " +
|
|
"(" +
|
|
"rete,cod_fiscale," +
|
|
"var_complessivo_bf" +
|
|
")" +
|
|
"values" +
|
|
"(" +
|
|
"@rete,@codice_fiscale," +
|
|
"@var" +
|
|
")";
|
|
|
|
List<Parametro> parametri = new List<Parametro>();
|
|
|
|
Parametro parametro = new Parametro();
|
|
parametro.ParameterName = "rete";
|
|
parametro.Value = pc.rete;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "codice_fiscale";
|
|
parametro.Value = pc.cf;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "pb";
|
|
parametro.Value = pc.pb;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "var";
|
|
parametro.Value = var;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
DataAccess.ExecuteNonQuerySqlStatement(DBProvider.SqlServerStampeC6, SQL, parametri);
|
|
}
|
|
|
|
public static void insertContrattoSintesi(CaricamentoClienteData pc, GlobalPosition.ContrattoSintesiperClienteFASE1 c)
|
|
{
|
|
|
|
String SQL =
|
|
|
|
"insert into enn_rm_contratto_sintesi " +
|
|
"(" +
|
|
"rete,codice_fiscale,pb," +
|
|
"codiceContratto ," +
|
|
"numeroPolizza ," +
|
|
"conto ," +
|
|
"rubricato ," +
|
|
"custodiaGaranzia," +
|
|
"tipoProdotto ," +
|
|
"codiceInterno ," +
|
|
"codicesottoProdotto ," +
|
|
"codiceMAF," +
|
|
"pctKey ," +
|
|
"pctTitoloCollegato ," +
|
|
"pctDescrizionteTitoloCollegato ," +
|
|
"quote ," +
|
|
"prezzo ," +
|
|
"ctv ," +
|
|
"partvia ," +
|
|
"codiceStato ," +
|
|
"partviaal " +
|
|
/*
|
|
",datadiRiferimento ," +
|
|
"datadiSottoscrizione ," +
|
|
"dataValNavAl ," +
|
|
"dataInizioRendimento ," +
|
|
"rendimentoDaSottoscrizione," +
|
|
"dataTrimestreRendimento ," +
|
|
"rendimentoDaInizioTrimestre ," +
|
|
"dataAnnoRendimento ," +
|
|
"rendimentoDaInizioAnno ," +
|
|
"valore ," +
|
|
"CVN" +
|
|
*/
|
|
")" +
|
|
"values" +
|
|
"(" +
|
|
"&rete,&codice_fiscale,&pb," +
|
|
"&codiceContratto ," +
|
|
"&numeroPolizza ," +
|
|
"&conto ," +
|
|
"&rubricato ," +
|
|
"&custodiaGaranzia," +
|
|
"&tipoProdotto ," +
|
|
"&codiceInterno ," +
|
|
"&codicesottoProdotto ," +
|
|
"&codiceMAF," +
|
|
"&pctKey ," +
|
|
"&pctTitoloCollegato ," +
|
|
"&pctDescrizionteTitoloCollegato ," +
|
|
""e ," +
|
|
"&prezzo ," +
|
|
"&ctv ," +
|
|
"&partvia , " +
|
|
"&codiceStato ," +
|
|
"&partviaal " +
|
|
/*
|
|
",&datadiRiferimento ," +
|
|
"&datadiSottoscrizione ," +
|
|
"&dataValNavAl ," +
|
|
"&dataInizioRendimento ," +
|
|
"&rendimentoDaSottoscrizione," +
|
|
"&dataTrimestreRendimento ," +
|
|
"&rendimentoDaInizioTrimestre ," +
|
|
"&dataAnnoRendimento ," +
|
|
"&rendimentoDaInizioAnno ," +
|
|
"&valore ," +
|
|
"&CVN " +
|
|
*/
|
|
")";
|
|
|
|
|
|
|
|
|
|
List<Parametro> parametri = new List<Parametro>();
|
|
|
|
Parametro parametro = new Parametro();
|
|
parametro.ParameterName = "rete";
|
|
parametro.Value = pc.rete;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "codice_fiscale";
|
|
parametro.Value = pc.cf;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "pb";
|
|
parametro.Value = pc.pb;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "codiceContratto";
|
|
parametro.Value = c.codiceContratto;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "numeroPolizza";
|
|
parametro.Value = c.numeroPolizza;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "conto";
|
|
parametro.Value = c.Conto;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "rubricato";
|
|
parametro.Value = c.Rubricato;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "custodiaGaranzia";
|
|
parametro.Value = c.CustodiaGaranzia;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "tipoProdotto";
|
|
parametro.Value = c.tipoProdotto;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "codiceInterno";
|
|
parametro.Value = c.codiceInterno;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "codicesottoProdotto";
|
|
parametro.Value = c.codicesottoProdotto;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "codiceMAF";
|
|
parametro.Value = c.codiceMAF;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "pctKey";
|
|
parametro.Value = c.pctKey;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "pctTitoloCollegato";
|
|
parametro.Value = c.pctTitoloCollegato;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "pctDescrizionteTitoloCollegato";
|
|
parametro.Value = c.pctDescrizionteTitoloCollegato;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "quote";
|
|
parametro.Value = c.quote;
|
|
parametro.DbType = DbType.Decimal;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "prezzo";
|
|
parametro.Value = c.prezzo;
|
|
parametro.DbType = DbType.Decimal;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "ctv";
|
|
parametro.Value = c.ctv;
|
|
parametro.DbType = DbType.Decimal;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "partvia";
|
|
parametro.Value = c.partvia;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "partviaal";
|
|
parametro.Value = c.partviaal;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "codiceStato";
|
|
parametro.Value = c.codiceStato;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
/*
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "datadiRiferimento";
|
|
parametro.Value = c.datadiRiferimento;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "dataValNavAl";
|
|
parametro.Value = c.dataValNavAl;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "datadiSottoscrizione";
|
|
parametro.Value = c.datadiSottoscrizione;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "dataInizioRendimento";
|
|
parametro.Value = c.dataInizioRendimento;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "rendimentoDaSottoscrizione";
|
|
parametro.Value = c.rendimentoDaSottoscrizione;
|
|
parametro.DbType = DbType.Decimal;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "dataTrimestreRendimento";
|
|
parametro.Value = c.dataTrimestreRendimento;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "rendimentoDaInizioTrimestre";
|
|
parametro.Value = c.rendimentoDaInizioTrimestre;
|
|
parametro.DbType = DbType.Decimal;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "dataAnnoRendimento";
|
|
parametro.Value = c.dataAnnoRendimento;
|
|
parametro.DbType = DbType.AnsiString;
|
|
parametri.Add(parametro);
|
|
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "rendimentoDaInizioAnno";
|
|
parametro.Value = c.rendimentoDaInizioAnno;
|
|
parametro.DbType = DbType.Decimal;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "valore";
|
|
parametro.Value = c.valore;
|
|
parametro.DbType = DbType.Decimal;
|
|
parametri.Add(parametro);
|
|
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "CVN";
|
|
parametro.Value = c.CVN;
|
|
parametro.DbType = DbType.Decimal;
|
|
parametri.Add(parametro);
|
|
*/
|
|
DataAccess.ExecuteNonQuerySqlStatement(DBProvider.Oracle, SQL, parametri);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static bool fineElaborazione( int esito, int n_ok, int n_error,int n_cancel)
|
|
{
|
|
|
|
|
|
List<Parametro> parametri = new List<Parametro>();
|
|
|
|
Parametro parametro = new Parametro();
|
|
parametro.ParameterName = "OID$";
|
|
parametro.Value = _oid;
|
|
parametro.DbType = DbType.AnsiStringFixedLength;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "n_ok";
|
|
parametro.Value = n_ok;
|
|
parametro.DbType = DbType.Int32;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "n_errori";
|
|
parametro.Value = n_error;
|
|
parametro.DbType = DbType.Int32;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "n_cancel";
|
|
parametro.Value = n_cancel;
|
|
parametro.DbType = DbType.Int32;
|
|
parametri.Add(parametro);
|
|
|
|
parametro = new Parametro();
|
|
parametro.ParameterName = "esito";
|
|
parametro.Value = esito;
|
|
parametro.DbType = DbType.Int32;
|
|
parametri.Add(parametro);
|
|
|
|
|
|
DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.Oracle, "end_loadstat", parametri);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
}
|
|
}
|