예제 #1
0
        private List <SuitabilityClienteDataNaoEnquadrados> ObterSuitabilityStatusData(SuitabilityClienteDataNaoEnquadrados pRequest)
        {
            var lRetorno     = new List <SuitabilityClienteDataNaoEnquadrados>();
            var lAcessaDados = new AcessaDados();

            lAcessaDados.ConnectionStringName = "SinacorExportacao";

            using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_suitability_lavagem_sel"))
            {
                lAcessaDados.AddInParameter(lDbCommand, "pDataDe", DbType.DateTime, pRequest.DataDe);
                lAcessaDados.AddInParameter(lDbCommand, "pDataAte", DbType.DateTime, pRequest.DataAte);

                var lDataTable = lAcessaDados.ExecuteOracleDataTable(lDbCommand);

                if (lDataTable != null && lDataTable.Rows.Count > 0)
                {
                    for (int i = 0; i < lDataTable.Rows.Count; i++)
                    {
                        DataRow lRow = lDataTable.Rows[i];

                        lRetorno.Add(new SuitabilityClienteDataNaoEnquadrados()
                        {
                            CodigoBovespa = int.Parse(lRow["cd_cliente"].ToString()),
                            Data          = DateTime.Parse(lRow["data"].ToString())
                        });
                    }
                }
            }

            return(lRetorno);
        }
예제 #2
0
        private void EfetuaFiltroSuitabilityLavagem(SuitabilityLavagemInfo pRequest, ref SuitabilityLavagemInfo lRetorno)
        {
            IEnumerable <SuitabilityLavagemInfo> lRetornoValor;

            switch (pRequest.enumVolume)
            {
            case enumVolume.ABAIXO_500M:
                lRetornoValor = from a in lRetorno.Resultado where a.Volume < 500000 select a;
                break;

            case enumVolume.ENTRE_500M_E_1000M:
                lRetornoValor = from a in lRetorno.Resultado where a.Volume > 500000 && a.Volume < 1000000 select a;
                break;

            case enumVolume.ACIMA_1000M:
                lRetornoValor = from a in lRetorno.Resultado where a.Volume > 1000000 select a;
                break;

            default:
                lRetornoValor = from a in lRetorno.Resultado select a;
                break;
            }

            lRetorno.Resultado = lRetornoValor.ToList();

            switch (pRequest.enumVOLxSFP)
            {
            case enumVOLxSFP.ABAIXO_20:
                lRetornoValor = from a in lRetorno.Resultado where a.PercentualVOLxSFP < 20 select a;
                break;

            case enumVOLxSFP.ENTRE_20_E_50:
                lRetornoValor = from a in lRetorno.Resultado where a.PercentualVOLxSFP > 20 && a.PercentualVOLxSFP < 50 select a;
                break;

            case enumVOLxSFP.ACIMA_50:
                lRetornoValor = from a in lRetorno.Resultado where a.PercentualVOLxSFP > 50 select a;
                break;

            default:
                lRetornoValor = from a in lRetorno.Resultado select a;
                break;
            }

            lRetorno.Resultado = lRetornoValor.ToList();

            if (pRequest.CodigoAssessor.HasValue)
            {
                List <int> lClientes = ClienteDbLib.ReceberListaClientesAssessoresVinculados(pRequest.CodigoAssessor.Value);

                lRetornoValor = from a in lRetornoValor where lClientes.Contains(a.CodigoCliente.Value) select a;

                lRetorno.Resultado = lRetornoValor.ToList();
            }

            SuitabilityClienteDataNaoEnquadrados lRequest = new SuitabilityClienteDataNaoEnquadrados();

            lRequest.DataDe  = pRequest.DataDe.Value;
            lRequest.DataAte = pRequest.DataAte.Value;

            List <SuitabilityClienteDataNaoEnquadrados> lListaSuitability = this.ObterSuitabilityStatusData(lRequest);

            foreach (SuitabilityLavagemInfo info in  lRetorno.Resultado)
            {
                var lSuitability = lListaSuitability.Find(suit => { return(suit.CodigoBovespa == info.CodigoCliente); });

                if (lSuitability != null)
                {
                    info.Suitability = "Não Enquadrado";
                }
                else
                {
                    info.Suitability = "Enquadrado";
                }
            }

            switch (pRequest.enumEnquadrado)
            {
            case enumEnquadrado.Todos:
                lRetornoValor = from a in lRetorno.Resultado select a;
                break;

            case enumEnquadrado.Enquadrado:
                lRetornoValor = from a in lRetorno.Resultado where a.Suitability == "Enquadrado" select a;
                break;

            case enumEnquadrado.NaoEnquadrado:
                lRetornoValor = from a in lRetorno.Resultado where a.Suitability == "Não Enquadrado" select a;
                break;
            }

            lRetorno.Resultado = lRetornoValor.ToList();

            List <int> lstClientesInstitucionais = ObterClientesInstitucionais();

            //lRetorno.Resultado = (from a in lRetornoValor where !lstClientesInstitucionais.Contains(a.CodigoCliente.Value) select a ).ToList();

            List <int> lstClientesInstitucionaisBmf = ObterClientesInstitucionaisBMF();

            lRetorno.Resultado = (from a in lRetorno.Resultado where !lstClientesInstitucionaisBmf.Contains(a.CodigoCliente.Value) && !lstClientesInstitucionais.Contains(a.CodigoCliente.Value) select a).ToList();
        }