using System;
using System.Data;
using System.Configuration;
using DataAccessLayer;
using System.Collections.Generic;
using System.Data.SqlClient;

namespace PDFGenerator.BusinessLayer.DataSection
{
    /// <summary>
    /// Summary description for DataSectionParameter
    /// </summary> 
    /// 
    [Serializable]
    public class DataSectionParameter : IDataSectionParameter
    {
        private String _codicePB;
        private String _codiceRete;
        private String _codiceCliente;
        private String _codiceAppplicazione;
        private int _versioneDataBaseSIMPB;
        private String _codiceTipoIndirizzo;
        private String _tipoCliente;
        private DataSetDatiComuni _datiComuni;
        private string _banca;
        private String _Intermediario;
        private String _Area;
        private String _AreaEstesa;
        private String _DataPianificazione;
        private String _DataInizioProposta;
        private String _DataFineProposta;
        private String _Proposta;
        private decimal _varInv;
        private decimal _varRis;
        private decimal _totalePartiteViaggiantiInv;
        private String _Progetto;
        private bool _checkVarAltri;
        private bool _modalit�Anonima;
        private bool _profiloIsAct;
        private bool _statopianificazioneattivo;
        private decimal _patrimoniocomplessivototalectv;
        private decimal _patrimoniofinanziarioctv;
        private decimal _patrimoniobancafideuramctv;
        private decimal _patrimonioterzictv;
        private decimal _patrimonioimmobiliarectv;
        private decimal _patrimonioaltroctv;
        private decimal _patrimonioprospetticoctv;
        public DataTable IntermediariSection;
        private bool _singleArea = false;

        public DataSectionParameter()
        {
            _codicePB = "";
            _codiceCliente = "";
            _codiceRete = "";
            _codiceAppplicazione = "";
            _codiceTipoIndirizzo = "";
            _checkVarAltri = true;
            _modalit�Anonima = false;
            IntermediariSection = new DataTable();
            _datiComuni = new DataSetDatiComuni();
            //_SEIConnection = new Utils.(Utils..enum_DB.OracleDB);
            //_SEIReportConnection = new Utils.CConnection(Utils.CConnection.enum_DB.SqlDB);
            _Intermediario = "";
            _Area = "";
            _AreaEstesa = "";
            _Progetto = "";
            _varInv = 0;
            _varRis = 0;
            //_utente = null;
            _profiloIsAct = true;
            _tipoCliente = "";
            /**************************** Fix 13/12/2021 - Andrea *********************/
            //_patrimoniocomplessivototalectv = 0;
            //_patrimonioprospetticoctv = 0;
            //_patrimoniofinanziarioctv = 0;
            //_patrimoniobancafideuramctv = 0;
            //_patrimonioterzictv = 0;
            //_patrimonioimmobiliarectv = 0;
            //_patrimonioaltroctv = 0;
            /***************************************************************************/


            //_datiComuniDettaglioProdottiIntermediario = null;
            //_datiComuniFondiPensioneIntermediario = null;
            //_datiComuniIndicatoriArea = null;
            //_datiComuniDettaglioProdottoPropostaAreeBisogno = null;
            _banca = string.Empty;

        }

        public static bool isSavingMap(DataThread data, string pContratto)
        {
            var sqlparameters = new List<SqlParameter>()
                {   new SqlParameter("Rete",data.Rete),
                    new SqlParameter("CodFis",data.CodiceFiscale),
                    new SqlParameter("CodConf",pContratto)
                };
            string SP = "[C6Mart" + (data.Periodico ? "" : "Periodico") + "].[PL_SavingMap]";
            DataTable dt = null;
            using (SQLServer db = new SQLServer())
            {
                dt = db.GetDataTableFromProcedure(SP, sqlparameters);
            }
            if ((dt == null) || (dt.Rows.Count == 0))
                return false;

            if ((dt.Rows[0][0].ToString() == "0"))
                return false;
            else
                return true;
        }


        //tipo di cliente
        public String tipoCliente
        {
            get
            {
                return _tipoCliente;
            }
            set
            {
                _tipoCliente = value;
            }
        }

        /// <summary>
        /// Codice Private Banker
        /// </summary>
        public String CodicePB
        {
            get
            {
                return _codicePB;
            }
            set
            {
                _codicePB = value;
            }
        }

        /// <summary>
        /// Codice Rete Vendita
        /// </summary>
        public String CodiceRete
        {
            get
            {
                return _codiceRete;
            }
            set
            {
                _codiceRete = value;
                //if (_codiceRete == "F")
                //{
                //    //FC 26062015 Aggionamento nuova Ragione Sociale
                //    //_banca = "Banca Fideuram";
                //    _banca = "Fideuram";
                //}
                //else
                //{
                //    _banca = "Sanpaolo Invest";
                //}
                //************************************* Cecco modifica dicitura IWBANK*****************************************
                switch (_codiceRete)
                {
                    case "F":
                        {
                            _banca = "Fideuram";
                            break;
                        }
                    case "S":
                        {
                            _banca = "Sanpaolo Invest";
                            // ************* Rosaspina modifiche Andrea ****************//
                            //_banca = "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest";
                            break;
                        }
                    case "W":
                        {
                            _banca = "IW Private Investments";
                            break;
                        }
                }
                //****************************************************************************************************************
            }
        }

        /// <summary>
        /// Codice Fiscale del cliente
        /// </summary>
        public String CodiceCliente
        {
            get
            {
                return _codiceCliente;
            }
            set
            {
                _codiceCliente = value;
            }
        }

        public bool chkVarAltri
        {
            get
            {
                return _checkVarAltri;
            }
            set
            {
                _checkVarAltri = value;
            }
        }

        public bool profiloIsAct
        {
            get
            {
                return _profiloIsAct;
            }
            set
            {
                _profiloIsAct = value;
            }
        }

        public string DataPianificazione
        {
            get
            {
                return _DataPianificazione;
            }
            set
            {
                _DataPianificazione = value;
            }
        }


        public string DataInizioProposta
        {
            get
            {
                return _DataInizioProposta;
            }
            set
            {
                _DataInizioProposta = value;
            }
        }

        public string DataFineProposta
        {
            get
            {
                return _DataFineProposta;
            }
            set
            {
                _DataFineProposta = value;
            }
        }

        /// <summary>
        /// Codice Applicazione del cliente
        /// </summary>
        public String CodiceApplicazione
        {
            get
            {
                return _codiceAppplicazione;
            }
            set
            {
                _codiceAppplicazione = value;
            }
        }

        public String Intermediario
        {
            get
            {
                return _Intermediario;
            }
            set
            {
                _Intermediario = value;
            }
        }

        /// <summary>
        /// Rappresenta l'area di bisogno
        /// </summary>
        public String Area
        {
            get
            {
                return _Area;
            }
            set
            {
                _Area = value;
            }
        }

        /// <summary>
        /// Rappresenta il nome completo dell'area di bisogno
        /// </summary>
        public String AreaEstesa
        {
            get
            {
                return _AreaEstesa;
            }
            set
            {
                _AreaEstesa = value;
            }
        }
        public String Progetto
        {
            get
            {
                return _Progetto;
            }
            set
            {
                _Progetto = value;
            }
        }

        public String Proposta
        {
            get
            {
                return _Proposta;
            }
            set
            {
                _Proposta = value;
            }
        }
        /// <summary>
        /// Tipo Indirizzo del cliente
        /// </summary>
        public String TipoIndirizzo
        {
            get
            {
                return _codiceTipoIndirizzo;
            }
            set
            {
                _codiceTipoIndirizzo = value;
            }
        }

        /// <summary>
        /// VersioneDataBaseSIMPB
        /// </summary>
        public int VersioneDataBaseSIMPB
        {
            get
            {
                return _versioneDataBaseSIMPB;
            }
            set
            {
                _versioneDataBaseSIMPB = value;
            }
        }

        /// <summary>
        /// Dataset Dati Comuni a pi� sezioni
        /// </summary>
        public DataSetDatiComuni DatiComuni
        {
            get
            {
                return _datiComuni;
            }
            set
            {
                _datiComuni = value;
            }
        }

        //public rispostaVaRPortafoglioType PatrimonioFinanziarioBF
        //{
        //    get
        //    {
        //        return _datiComuniPatrimonioFinanziarioBF;
        //    }
        //    set
        //    {
        //        _datiComuniPatrimonioFinanziarioBF = value;
        //    }
        //}

        //public rispostaVaRPortafoglioType IndicatoriArea
        //{
        //    get
        //    {
        //        return _datiComuniIndicatoriArea;
        //    }
        //    set
        //    {
        //        _datiComuniIndicatoriArea = value;
        //    }
        //}

        //public rispostaVaRPortafoglioType PatrimonioComplessivo
        //{
        //    get
        //    {
        //        return _datiComuniPatrimonioComplessivo;
        //    }
        //    set
        //    {
        //        _datiComuniPatrimonioComplessivo = value;
        //    }
        //}

        //public rispostaVaRPortafoglioType DettaglioProdottiIntermediario
        //{
        //    get
        //    {
        //        return _datiComuniDettaglioProdottiIntermediario;
        //    }
        //    set
        //    {
        //        _datiComuniDettaglioProdottiIntermediario = value;
        //    }
        //}

        //public rispostaVaRPortafoglioType FondiPensioneIntermediario
        //{
        //    get
        //    {
        //        return _datiComuniFondiPensioneIntermediario;
        //    }
        //    set
        //    {
        //        _datiComuniFondiPensioneIntermediario = value;
        //    }
        //}

        //public rispostaVaRPortafoglioType DettaglioRischioAltriIstituti
        //{
        //    get
        //    {
        //        return _datiComuniDettaglioRischioAltriIstituti;
        //    }
        //    set
        //    {
        //        _datiComuniDettaglioRischioAltriIstituti = value;
        //    }
        //}

        //public rispostaVaRPortafoglioType DettaglioProdottoPropostaAreeBisogno
        //{
        //    get
        //    {
        //        return _datiComuniDettaglioProdottoPropostaAreeBisogno;
        //    }
        //    set
        //    {
        //        _datiComuniDettaglioProdottoPropostaAreeBisogno = value;
        //    }
        //}


        //public rispostaVaRPortafoglioType[] PortfolioModello
        //{
        //    get
        //    {
        //        return _datiComuniPortfolioModello;
        //    }
        //    set
        //    {
        //        _datiComuniPortfolioModello = value;
        //    }
        //}

        ///// <summary>
        ///// Connessione Oracle SEI
        ///// </summary>
        //public Utils. SEIConnection
        //{
        //    get
        //    {
        //        return _SEIConnection;
        //    }
        //    set
        //    {
        //        _SEIConnection = value;
        //    }
        //}

        ///// <summary>
        ///// Connessione Oracle SEI
        ///// </summary>
        //public Utils.SEIReportConnection
        //{
        //    get
        //    {
        //        return _SEIReportConnection;
        //    }
        //    set
        //    {
        //        _SEIReportConnection = value;
        //    }
        //}

        //public Utente UtenteInfo
        //{
        //    get
        //    {
        //        return _utente;
        //    }
        //    set
        //    {
        //        _utente = value;
        //    }
        //}

        //public Utente UtenteLoggatoAutorizzato
        //{
        //    get
        //    {
        //        return _utenteloggatoautorizzato;
        //    }
        //    set
        //    {
        //        _utenteloggatoautorizzato = value;
        //    }
        //}


        public bool modalit�Anonima
        {
            get
            {
                return _modalit�Anonima;
            }
            set
            {
                _modalit�Anonima = value;
            }
        }

        public bool StatoPianificazioneAttivo
        {
            get
            {
                return _statopianificazioneattivo;
            }
            set
            {
                _statopianificazioneattivo = value;
            }
        }

        public decimal PatrimonioComplessivoTotaleCTV
        {
            get
            {
                return _patrimoniocomplessivototalectv;
            }
            set
            {
                _patrimoniocomplessivototalectv = value;
            }
        }

        public decimal PatrimonioFinanziarioCTV
        {
            get
            {
                return _patrimoniofinanziarioctv;
            }
            set
            {
                _patrimoniofinanziarioctv = value;
            }
        }

        public decimal PatrimonioBancaFideuramCTV
        {
            get
            {
                return _patrimoniobancafideuramctv;
            }
            set
            {
                _patrimoniobancafideuramctv = value;
            }
        }

        public decimal PatrimonioTerziCTV
        {
            get
            {
                return _patrimonioterzictv;
            }
            set
            {
                _patrimonioterzictv = value;
            }
        }

        public decimal PatrimonioProspetticoCTV
        {
            get
            {
                return _patrimonioprospetticoctv;
            }
            set
            {
                _patrimonioprospetticoctv = value;
            }
        }

        public decimal PatrimonioImmobiliareCTV
        {
            get
            {
                return _patrimonioimmobiliarectv;
            }
            set
            {
                _patrimonioimmobiliarectv = value;
            }
        }

        public decimal PatrimonioAltroCTV
        {
            get
            {
                return _patrimonioaltroctv;
            }
            set
            {
                _patrimonioaltroctv = value;
            }
        }

        public decimal varInv
        {
            get
            {
                return _varInv;
            }
            set
            {
                _varInv = value;
            }
        }

        public decimal varRis
        {
            get
            {
                return _varRis;
            }
            set
            {
                _varRis = value;
            }
        }

        public decimal totalePartiteViaggiantiInv
        {
            get
            {
                return _totalePartiteViaggiantiInv;
            }
            set
            {
                _totalePartiteViaggiantiInv = value;
            }
        }

        public string Banca
        {
            get { return _banca; }
            set { _banca = value; }
        }


        public bool SingleArea
        {
            get { return _singleArea; }
            set { _singleArea = value; }
        }
    }



}