using System.Data;
using System.Collections.Generic;
namespace PrometeiaMessage
{
    /// <summary>
    /// Classe statica che gestisce le fiduciarie
    /// </summary>
    public static class GestioneCliente
    {
        /// <summary>
        /// Nel caso in cui la chiaveClientePB passata in input sia un cliente definito come Fiduciaria imposta:
        /// 1) il codice mandato della chiave passata in riferimento.
        /// 2) il codicefiscale della chiave passata in riferimento valorizzandolo con la partita iva.
        /// </summary>
        /// <param name="chiaveClientePB"></param>
        /// <param name="chiave"></param>
        public static void ImpostaCodiceFiscaleMandato(int chiaveClientePB, ref PrometeiaMessage.bancafideuram.nac.posizionecliente.ChiaveCliente chiave)
        {
            // Controllo se la chiaveClientePB è una fiduciaria....         

            #region Parametri

            List<Parametro> parametri = new List<Parametro>();
            Parametro parametro;
            parametro = new Parametro();
            parametro.ParameterName = "@chiaveClientePB";
            parametro.Value = chiaveClientePB;
            parametro.DbType = DbType.Int32;
            parametri.Add(parametro);

            #endregion

            DataTable dtCliente_ConsulenzaEvoluta = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaEvoluta, "REP_CLIENTE", parametri);

            if (dtCliente_ConsulenzaEvoluta.Rows.Count > 0)
            {
                chiave.codiceAgente = dtCliente_ConsulenzaEvoluta.Rows[0]["CODICEPB"].ToString();
                chiave.codiceFiscale = dtCliente_ConsulenzaEvoluta.Rows[0]["CODICEFISCALE"].ToString();

                if (dtCliente_ConsulenzaEvoluta.Rows[0]["DEFINIZIONE"].ToString().ToUpper().Equals("FIDUCIARIA"))
                {
                    chiave.codiceFiscale = dtCliente_ConsulenzaEvoluta.Rows[0]["PARTITAIVAFIDUCIARIA"].ToString();
                    chiave.codiceMandato = dtCliente_ConsulenzaEvoluta.Rows[0]["CODICEMANDATOFIDUCIARIA"].ToString();
                }

                if (dtCliente_ConsulenzaEvoluta.Rows[0]["DEFINIZIONE"].ToString().ToUpper().Equals("PERSONAGIURIDICA"))
                {
                    chiave.codiceFiscale = dtCliente_ConsulenzaEvoluta.Rows[0]["PARTITAIVAFIDUCIARIA"].ToString();
                }
            }
        }

        /// <summary>
        /// Nel caso in cui la chiaveClientePB passata in input sia un cliente definito come Fiduciaria imposta:
        /// 1) il codice mandato della chiave passata in riferimento.
        /// 2) il codicefiscale della chiave passata in riferimento valorizzandolo con la partita iva.
        /// </summary>
        /// <param name="chiaveClientePB"></param>
        /// <param name="chiave"></param>
        public static void ImpostaCodiceFiscaleMandato(int chiaveClientePB, ref PrometeiaMessage.bancafideuram.nac.globalposition.ChiaveCliente chiave)
        {
            // Controllo se la chiaveClientePB è una fiduciaria....    

            #region Parametri

            List<Parametro> parametri = new List<Parametro>();
            Parametro parametro;
            parametro = new Parametro();
            parametro.ParameterName = "@chiaveClientePB";
            parametro.Value = chiaveClientePB;
            parametro.DbType = DbType.Int32;
            parametri.Add(parametro);

            #endregion

            DataTable dtCliente_ConsulenzaEvoluta = DataAccess.ExecuteDataTableStoredProcedure(DBProvider.SqlServerConsulenzaEvoluta, "REP_CLIENTE", parametri);

            if (dtCliente_ConsulenzaEvoluta.Rows.Count > 0)
            {
                chiave.codiceAgente = dtCliente_ConsulenzaEvoluta.Rows[0]["CODICEPB"].ToString();
                chiave.codicefiscale = dtCliente_ConsulenzaEvoluta.Rows[0]["CODICEFISCALE"].ToString();
                chiave.codiceRete = dtCliente_ConsulenzaEvoluta.Rows[0]["CODICERETE"].ToString();
                chiave.potenzialeClienteNAC = true;

                if (dtCliente_ConsulenzaEvoluta.Rows[0]["DEFINIZIONE"].ToString().ToUpper().Equals("FIDUCIARIA"))
                {
                    chiave.codicefiscale = dtCliente_ConsulenzaEvoluta.Rows[0]["PARTITAIVAFIDUCIARIA"].ToString();
                    chiave.codiceMandato = dtCliente_ConsulenzaEvoluta.Rows[0]["CODICEMANDATOFIDUCIARIA"].ToString();
                }

                if (dtCliente_ConsulenzaEvoluta.Rows[0]["DEFINIZIONE"].ToString().ToUpper().Equals("PERSONAGIURIDICA"))
                {
                    chiave.codicefiscale = dtCliente_ConsulenzaEvoluta.Rows[0]["PARTITAIVAFIDUCIARIA"].ToString();
                }
            }
        }
    }
}