Exemple #1
0
        public List <OrdensAlteradasInfo> ObterOrdensAlteradasIntraday()
        {
            AcessaDados lAcessaDados = new AcessaDados();
            List <OrdensAlteradasInfo> lstOrdensAlterada = new List <OrdensAlteradasInfo>();
            OrdensAlteradasInfo        OrdensAlterada;

            try
            {
                lAcessaDados.ConnectionStringName = gNomeConexaoSinacor;

                using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_corpo_ordensalteradas_c1"))
                {
                    DataTable lDataTable = lAcessaDados.ExecuteOracleDataTable(lDbCommand);

                    if (null != lDataTable && lDataTable.Rows.Count > 0)
                    {
                        for (int i = 0; i <= lDataTable.Rows.Count - 1; i++)
                        {
                            OrdensAlterada = new OrdensAlteradasInfo();

                            OrdensAlterada.NumeroSeqOrdem = (lDataTable.Rows[i]["NR_SEQORD"]).DBToInt32();

                            OrdensAlterada.DataAlteracao = (lDataTable.Rows[i]["DataAlteracao"]).DBToDateTime();
                            OrdensAlterada.Assessor      = (lDataTable.Rows[i]["NM_ASSESSOR"]).DBToString();
                            OrdensAlterada.CodigoCliente = (lDataTable.Rows[i]["CD_CLIENTE"]).DBToInt32();

                            string ContaErro =
                                (lDataTable.Rows[i]["CTA_ERRO"]).DBToString();

                            if (ContaErro != "")
                            {
                                OrdensAlterada.ContaErro = true;
                            }
                            else
                            {
                                OrdensAlterada.ContaErro = false;
                            }

                            string Vinculado =
                                (lDataTable.Rows[i]["IN_PESS_VINC"]).DBToString();

                            if (Vinculado == "S")
                            {
                                OrdensAlterada.Vinculado = true;
                            }
                            else
                            {
                                OrdensAlterada.Vinculado = false;
                            }

                            OrdensAlterada.DescontoCorretagem = (lDataTable.Rows[i]["PC_REDACR"]).DBToDecimal();
                            OrdensAlterada.Instrumento        = (lDataTable.Rows[i]["CD_NEGOCIO"]).DBToString();
                            OrdensAlterada.Quantidade         = (lDataTable.Rows[i]["QT_ORDEM"]).DBToInt32();
                            OrdensAlterada.Sentido            = (lDataTable.Rows[i]["CD_NATOPE"]).DBToString();
                            OrdensAlterada.TipoPessoa         = (lDataTable.Rows[i]["TP_PESSOA"]).DBToString();
                            OrdensAlterada.Usuario            = (lDataTable.Rows[i]["NM_CLIENTE"]).DBToString();
                            OrdensAlterada.UsuarioAlteracao   = (lDataTable.Rows[i]["NM_USUARIO_ALT"]).DBToString();

                            lstOrdensAlterada.Add(OrdensAlterada);
                        }
                    }
                }

                return(lstOrdensAlterada);
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return(lstOrdensAlterada);
        }
Exemple #2
0
        public List <string> ListarLinhasArquivosIRPlanoFechado(GerarArquivoRequest pRequest)
        {
            List <string> lRetorno = new List <string>();

            AcessaDados lAcesso = new AcessaDados();


            AcessaDados _AcessaDados = new AcessaDados();

            AcessaDados _AcessaDadosMyCapital = new AcessaDados("ResultSet");

            Conexao Conexao = new Generico.Dados.Conexao();

            DbCommand cmdIR;

            DbCommand cmdDataCobranca;

            DataTable tabelaIR;

            lAcesso.ConnectionStringName = _ConnStringControleAcesso;

            _AcessaDados.ConnectionStringName = _ConnStringControleAcesso;

            _AcessaDadosMyCapital.ConnectionStringName = _ConnStringControleMyCapital;



            using (DbCommand cmd = lAcesso.CreateCommand(CommandType.StoredProcedure, "Prc_ClientesAtivos_lst"))
            {
                lAcesso.AddInParameter(cmd, "@pSt_situacao", DbType.AnsiString, pRequest.StSituacao);

                lAcesso.AddInParameter(cmd, "@ID_PRODUTO_PLANO", DbType.Int32, GerarArquivoRequest.Plano.IRIntervalo);

                DataTable table = lAcesso.ExecuteDbDataTable(cmd);

                foreach (DataRow dr in table.Rows)
                {
                    cmdIR = _AcessaDadosMyCapital.CreateCommand(CommandType.StoredProcedure, "SP_MC_VERIFICA_INTEGRACAO");

                    _AcessaDadosMyCapital.AddInParameter(cmdIR, "piCodCliente", DbType.Int32, dr["CD_CBLC"]);

                    tabelaIR = _AcessaDadosMyCapital.ExecuteOracleDataTable(cmdIR);

                    if (tabelaIR.Rows.Count < 1) //significa que já foi importado para o sistema da mycapital
                    {
                        try
                        {
                            //PEGA A PROXIMA DATA UTIL PARA COBRANÇA
                            DateTime dataCobranca = this.BuscarProximoDiaUtil();


                            //Monta detalhe do arquivo
                            lRetorno.Add(this.MontaDetalheArquivo(dataCobranca, dr["cd_cblc"], dr["vl_preco"], "1014"));

                            //Valor cobrado com virgula no número decimal
                            string valorCobrado = "0";

                            if (dr["vl_preco"].ToString() != string.Empty && dr["vl_preco"].ToString() != "0")
                            {
                                valorCobrado = dr["vl_preco"].ToString().Insert(dr["vl_preco"].ToString().Length - 2, ".");
                            }

                            cmdDataCobranca = _AcessaDados.CreateCommand(CommandType.StoredProcedure, "PRC_ATUALIZA_DATA_COBRANCA");

                            _AcessaDados.AddInParameter(cmdDataCobranca, "@CODIGO_CBLC", DbType.Int32, dr["CD_CBLC"]);
                            _AcessaDados.AddInParameter(cmdDataCobranca, "@DATA_COBRANCA", DbType.DateTime, dataCobranca);
                            _AcessaDados.AddInParameter(cmdDataCobranca, "@ID_PRODUTO_PLANO", DbType.Int32, GerarArquivoRequest.Plano.IRIntervalo);
                            _AcessaDados.AddInParameter(cmdDataCobranca, "@VL_COBRADO", DbType.String, valorCobrado);

                            _AcessaDados.ExecuteNonQuery(cmdDataCobranca);

                            //Envia e-mail notificando cliente
                            EnviaNotificacaoAtivacaoPlanoIR(Convert.ToInt32(dr["CD_CBLC"]), (int)GerarArquivoRequest.Plano.IRIntervalo);
                        }
                        catch (Exception ex)
                        {
                            logger.ErrorFormat("Erro ao atualizar a tabela de cobrança para o Plano IRFechado - {0} - StackTrace - {1}", ex.Message, ex.StackTrace);
                        }
                    }
                }
            }



            return(lRetorno);
        }
        /// <summary>
        /// Monta o arquivo XML com o estado da conta dos clientes cadastrados com sua projeção DN e Conta Margem.
        /// </summary>
        public SaldoContaCorrenteRiscoResponse <ContaCorrenteRiscoInfo> AlimentarConsultaDN(SaldoContaCorrenteRiscoRequest pParametro)
        {
            var lRetorno     = new SaldoContaCorrenteRiscoResponse <ContaCorrenteRiscoInfo>();
            var lAcessaDados = new AcessaDados();

            try
            {
                lAcessaDados.ConnectionStringName = gNomeConexaoSinacor;

                using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "pccsaldoprojetado_lst"))
                {
                    lAcessaDados.AddInParameter(lDbCommand, "pCdCliente", DbType.Int32, null);
                    lAcessaDados.AddInParameter(lDbCommand, "pCdAssessor", DbType.Int32, null);
                    lAcessaDados.AddInParameter(lDbCommand, "pStNegativoD0", DbType.Byte, null);
                    lAcessaDados.AddInParameter(lDbCommand, "pStNegativoD1", DbType.Byte, null);
                    lAcessaDados.AddInParameter(lDbCommand, "pStNegativoD2", DbType.Byte, null);
                    lAcessaDados.AddInParameter(lDbCommand, "pStNegativoD3", DbType.Byte, null);

                    var lDataTable = lAcessaDados.ExecuteOracleDataTable(lDbCommand);

                    {   //--> Gravando em XML para teste.
                        //lDataTable.TableName = "pccsaldoprojetado";
                        //lDataTable.WriteXmlSchema(@"c:\pccsaldoprojetado.xsd");
                        //lDataTable.WriteXml(@"c:\pccsaldoprojetado.xml");
                    }

                    if (null != lDataTable)
                    {
                        for (int i = 0; i < lDataTable.Rows.Count; i++)
                        {
                            lRetorno.Objeto = new ContaCorrenteRiscoInfo();

                            // SALDOS
                            lRetorno.Objeto.SaldoD0          = lDataTable.Rows[i]["D0"].DBToDecimal();
                            lRetorno.Objeto.SaldoD1          = lDataTable.Rows[i]["D1"].DBToDecimal();
                            lRetorno.Objeto.SaldoD2          = lDataTable.Rows[i]["D2"].DBToDecimal();
                            lRetorno.Objeto.SaldoD3          = lDataTable.Rows[i]["D3"].DBToDecimal();
                            lRetorno.Objeto.SaldoContaMargem = ObtemSaldoContaMargem(lDataTable.Rows[i]["cd_cliente"].DBToInt32());

                            // OUTRAS INFORMACOES
                            lRetorno.Objeto.IdClienteSinacor = lDataTable.Rows[i]["cd_cliente"].DBToInt32();
                            lRetorno.Objeto.NomeCliente      = lDataTable.Rows[i]["nm_cliente"].DBToString();
                            lRetorno.Objeto.DsCpfCnpj        = lDataTable.Rows[i]["cd_cpfcgc"].DBToString();
                            lRetorno.Objeto.IdAssessor       = lDataTable.Rows[i]["cd_assessor"].DBToInt32();

                            lRetorno.ObjetoLista.Add(lRetorno.Objeto);
                        }

                        ColecaoObjetos.Remover();
                        ColecaoObjetos.AdicionarItem("SaldoContaCorrenteRiscoResponse", lRetorno);

                        gLogger.Debug(string.Format("{0} registros encontrados", lDataTable.Rows.Count.ToString()));
                    }

                    ColecaoObjetos.DataHoraUltimaAtualizacao = DateTime.Now;

                    lRetorno.StatusResposta = CriticaMensagemEnum.OK;
                }
            }
            catch (Exception ex)
            {
                gLogger.Error("AlimentarConsultaDN", ex);
                lRetorno.DescricaoResposta = ex.Message;
                lRetorno.StackTrace        = ex.StackTrace;
                lRetorno.StatusResposta    = CriticaMensagemEnum.Exception;
                lRetorno.Objeto            = null;
            }

            return(lRetorno);
        }
Exemple #4
0
        /// <summary>
        /// Busca ordens inseridas no sinacor
        /// </summary>
        /// <param name="pRequest"></param>
        /// <returns></returns>
        public BuscarOrdensResponse BuscarOrdensSinacor(BuscarOrdensRequest pRequest)
        {
            BuscarOrdensResponse lReturn = new BuscarOrdensResponse();

            OrdemInfo lOrdem = new OrdemInfo();

            AcessaDados lAcessaDados = new AcessaDados();

            lAcessaDados.ConnectionStringName = ClienteDbLib.gNomeConexaoSinacorTrade;

            ///PRC_ACOMP_ORDENS_BMF_LST
            //PRC_ACOMPANHAMENTO_ORDENS_LST
            //string lProc = (pRequest.Canal == 0) ? "PRC_ACOMP_ORDENS_BMF_LST" : "PRC_ACOMPANHAMENTO_ORDENS_LST";
            string lProc = (pRequest.Canal == 0) ? "PRC_ACOMP_ORDENS_BMF_LST" : "PRC_ACOMPA_ORDENS_LST";

            using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, lProc))
            {
                lAcessaDados.AddInParameter(lDbCommand, "pDtDe", DbType.Date, pRequest.DataDe);
                lAcessaDados.AddInParameter(lDbCommand, "pDtAte", DbType.Date, pRequest.DataAte);
                lAcessaDados.AddInParameter(lDbCommand, "pPapel", DbType.AnsiString, pRequest.Instrumento);
                lAcessaDados.AddInParameter(lDbCommand, "pCodCliente", DbType.Int32, pRequest.ContaDoCliente);
                lAcessaDados.AddInParameter(lDbCommand, "pPaginaCorrente", DbType.Int32, pRequest.PaginaCorrente);
                lAcessaDados.AddInParameter(lDbCommand, "pQtdRegs", DbType.Int32, pRequest.QtdeLimiteRegistros);
                lAcessaDados.AddInParameter(lDbCommand, "pCodAssessor", DbType.Int32, pRequest.CodigoAssessor);
                lAcessaDados.AddInParameter(lDbCommand, "pStatusOrdem", DbType.Int32, pRequest.Status == null ? new Nullable <int>() : (int)pRequest.Status);
                lAcessaDados.AddInParameter(lDbCommand, "pStPortaTryd", DbType.String, "TRYD".Equals(pRequest.Origem) ? pRequest.Origem : null);

                lAcessaDados.AddOutParameter(lDbCommand, "pTotalRegistros", DbType.Int32, 12);

                DataTable lDados = lAcessaDados.ExecuteOracleDataTable(lDbCommand);

                lReturn.Ordens = new List <OrdemInfo>();

                lReturn.TotalItens = lDados.Rows.Count;

                foreach (DataRow lRow in lDados.Rows)
                {
                    lOrdem = new OrdemInfo();

                    lOrdem.IdOrdem            = Convert.ToInt32(lRow["OrderId"]);
                    lOrdem.Account            = lRow["CD_CLIENTE"].DBToInt32();
                    lOrdem.ChannelID          = lRow["ChannelId"].DBToInt32();
                    lOrdem.ExpireDate         = lRow["ExpireDate"].DBToDateTime();
                    lOrdem.OrderQty           = lRow["OrderQty"].DBToInt32();
                    lOrdem.OrderQtyRemmaining = lRow["OrderQtyRemaining"].DBToInt32();
                    lOrdem.OrdStatus          = (OrdemStatusEnum)lRow["OrdStatusId"].DBToInt32();
                    lOrdem.ClOrdID            = lRow["OrderId"].ToString();
                    lOrdem.OrdType            = (OrdemTipoEnum)50;
                    lOrdem.RegisterTime       = DateTime.ParseExact(lRow["RegisterTime"].ToString(), "dd/MM/yyyy HH:mm:ss", CultureInfo.CurrentCulture);
                    lOrdem.Side   = (OrdemDirecaoEnum)lRow["Side"].DBToInt32();
                    lOrdem.Symbol = lRow["SYMBOL"].DBToString();

                    if (lRow["Price"] != DBNull.Value)
                    {
                        lOrdem.Price = Convert.ToDouble(lRow["Price"]);
                    }

                    lOrdem.Acompanhamentos = new List <AcompanhamentoOrdemInfo>();

                    lReturn.Ordens.Add(lOrdem);
                }

                List <OrdemInfo> lTempOrdens = lReturn.Ordens;

                this.BuscarAssessoresFiltro(pRequest.CodigoAssessor, ref lTempOrdens);

                lReturn.Ordens = lTempOrdens;
            }

            return(lReturn);
        }
        private void BuscarNotaDeCorretagem_Rodape(ref NotaDeCorretagemExtratoRequest pParametros, ref AcessaDados pAcessoDados, ref NotaDeCorretagemExtratoResponse pRetorno)
        {                                                                                       /*"prc_NC_DadosFinanceiro_Sel"))*/
            using (DbCommand lDbCommand = pAcessoDados.CreateCommand(CommandType.StoredProcedure, "prc_notacorretagem_finan_hist"))
            {
                pAcessoDados.AddInParameter(lDbCommand, "pcd_cliente", DbType.Int32, pParametros.ConsultaCodigoCliente);
                pAcessoDados.AddInParameter(lDbCommand, "ptp_negocio", DbType.String, pParametros.ConsultaTipoDeMercado == "VIS" ? "NOR" : "FUT");
                pAcessoDados.AddInParameter(lDbCommand, "pdt_datmov", DbType.Date, pParametros.ConsultaDataMovimento);

                if (pParametros.ConsultaProvisorio)
                {
                    pAcessoDados.AddInParameter(lDbCommand, "in_broker", DbType.String, "C");
                }

                using (DataTable lDataTable = pAcessoDados.ExecuteOracleDataTable(lDbCommand))
                {
                    if (null != lDataTable && lDataTable.Rows.Count > 0)
                    {
                        pRetorno.Relatorio.Rodape.Debentures               = lDataTable.Rows[0]["VL_DEBENT"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.VendaVista               = lDataTable.Rows[0]["VL_VDAVIS"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.CompraVista              = lDataTable.Rows[0]["VL_CPAVIS"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.CompraOpcoes             = lDataTable.Rows[0]["VL_CPAOPC"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.VendaOpcoes              = lDataTable.Rows[0]["VL_VDAOPC"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.OperacoesTermo           = lDataTable.Rows[0]["VL_TERMO"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.OperacoesTitulosPublicos = lDataTable.Rows[0]["VL_TITPUB"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.ValorDasOperacoes        = lDataTable.Rows[0]["VL_TOTNEG"].DBToDecimal();

                        pRetorno.Relatorio.Rodape.ValorLiquidoOperacoes = pParametros.ConsultaTipoDeMercado == "VIS" ? lDataTable.Rows[0]["VL_LIQ_OPERACOES_VIS"].DBToDecimal() : lDataTable.Rows[0]["VL_LIQ_OPERACOES_OPC"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.TaxaLiquidacao        = lDataTable.Rows[0]["VL_EMOLUM_CB"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.TaxaLiquidacao_DC     = "D";
                        pRetorno.Relatorio.Rodape.TaxaDeRegistro        = lDataTable.Rows[0]["VL_TAXREG_CB"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.TaxaDeRegistro_DC     = (lDataTable.Rows[0]["VL_TAXREG_CB"].DBToDecimal() > 0 ? "C" : "D");
                        pRetorno.Relatorio.Rodape.TaxaANA          = lDataTable.Rows[0]["VL_TAXANA"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.TaxaANA_DC       = (lDataTable.Rows[0]["VL_TAXANA"].DBToDecimal() > 0 ? "C" : "D");
                        pRetorno.Relatorio.Rodape.Emolumentos      = lDataTable.Rows[0]["VL_EMOLUM_BV"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.Emolumentos_DC   = (lDataTable.Rows[0]["VL_EMOLUM_BV"].DBToDecimal() > 0 ? "C" : "D");
                        pRetorno.Relatorio.Rodape.Corretagem       = lDataTable.Rows[0]["VL_VALCOR"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.Corretagem_DC    = (lDataTable.Rows[0]["VL_VALCOR"].DBToDecimal() > 0 ? "C" : "D");
                        pRetorno.Relatorio.Rodape.ISS              = lDataTable.Rows[0]["VL_ISS"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.ISS_DC           = "D";
                        pRetorno.Relatorio.Rodape.Outras           = lDataTable.Rows[0]["VL_DESP_NOTA"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.ValorLiquidoNota = lDataTable.Rows[0]["VL_LIQNOT"].DBToDecimal();      //--> Total Bovespa/Soma
                        pRetorno.Relatorio.Rodape.DataLiquidoPara  = lDataTable.Rows[0]["PZ_PROJ_CC"].DBToDateTime();    // this.RecuperarDataLiquidoPara(pRetorno.Relatorio.CabecalhoCorretora.DataPregao, pParametros.ConsultaTipoDeMercado);

                        pRetorno.Relatorio.Rodape.OperacoesFuturo        = lDataTable.Rows[0]["VL_FUTURO"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.ValorAjusteFuturo      = lDataTable.Rows[0]["VL_FUTURO"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.IRSobreCorretagem      = lDataTable.Rows[0]["VL_IRCORR"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.IRRFSobreDayTrade      = lDataTable.Rows[0]["VL_IRRF_DESPESA"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.Total_123_A            = lDataTable.Rows[0]["VL_LIQNOT_CB"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.Total_123_A_DC         = (lDataTable.Rows[0]["VL_LIQNOT_CB"].DBToDecimal() > 0 ? "C" : "D");
                        pRetorno.Relatorio.Rodape.TaxaTerOpcFut          = lDataTable.Rows[0]["VL_TAXPTA"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.TaxaTerOpcFut_DC       = (lDataTable.Rows[0]["VL_TAXPTA"].DBToDecimal() > 0 ? "C" : "D");
                        pRetorno.Relatorio.Rodape.IRRFOperacoes          = lDataTable.Rows[0]["VL_IROPER"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.IRRFOperacoes_DC       = (lDataTable.Rows[0]["VL_IROPER"].DBToDecimal() > 0 ? "C" : "D");
                        pRetorno.Relatorio.Rodape.VLBaseOperacoesIRRF    = lDataTable.Rows[0]["VL_BASEIROPER"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.VLBaseOperacoesIRRF_DC = (lDataTable.Rows[0]["VL_BASEIROPER"].DBToDecimal() > 0 ? "C" : "D");

                        //pRetorno.Relatorio.Rodape.DescOutras = lDataTable.Rows[0]["DS_DESP_NOTA"].DBToString();
                        pRetorno.Relatorio.Rodape.IRRFSobreDayTradeBase     = lDataTable.Rows[0]["VL_BASEIRDT_DAYTRADE"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.IRRFSobreDayTradeProjecao = lDataTable.Rows[0]["VL_IRRETIDO_DAYTRADE"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.IRRFSemOperacoesBase      = lDataTable.Rows[0]["VL_BASEIRDT_RESUMO"].DBToDecimal();
                        pRetorno.Relatorio.Rodape.IRRFSemOperacoesValor     = lDataTable.Rows[0]["VL_IRRETIDO_RESUMO"].DBToDecimal();
                    }
                }
            }
        }
Exemple #6
0
        public ChurningIntradayInfo ObterMonitoramentoIntradiario(ChurningIntradayInfo pRequest)
        {
            var lRetorno     = new ChurningIntradayInfo();
            var lAcessaDados = new AcessaDados();

            lAcessaDados.ConnectionStringName = "SinacorExportacao";

            lRetorno.Resultado = new List <ChurningIntradayInfo>();

            using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "PRC_TURNOVER_PERIODO_SEL"))
            {
                lAcessaDados.AddInParameter(lDbCommand, "pCodigoCliente", DbType.Int32, pRequest.CodigoCliente);
                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];

                        var lChurning = new ChurningIntradayInfo();

                        int lCodigoCliente = int.Parse(lRow["CodigoCliente"].ToString());

                        lChurning = lRetorno.Resultado.Find(churning => { return(churning.CodigoCliente == lCodigoCliente); });

                        if (lRetorno.Resultado.Count == 0 || lChurning == null)
                        {
                            lChurning = new ChurningIntradayInfo();

                            lChurning.NomeAssessor       = lRow["NomeAssessor"].ToString();
                            lChurning.CodigoAssessor     = int.Parse(lRow["CodigoAssessor"].ToString());
                            lChurning.NomeCliente        = lRow["NomeCliente"].ToString();
                            lChurning.CodigoCliente      = int.Parse(lRow["CodigoCliente"].ToString());
                            lChurning.Data               = lRow["DATA_POSI"].DBToDateTime();
                            lChurning.ValorVendas        = lRow["VlVendas"].DBToDecimal();
                            lChurning.ValorCompras       = lRow["VlCompras"].DBToDecimal();
                            lChurning.ValorCarteira      = lRow["VlCarteira"].DBToDecimal();
                            lChurning.ValorCarteiraMedia = lRow["vlCarteiramedia"].DBToDecimal();

                            DateTime lData = this.GetDateBrockage(lRow["DATA_POSI"].DBToDateTime(), pRequest.ListaFeriados);

                            lChurning.ValorL1 = SelecionarValorL1(lChurning.CodigoCliente.Value, lData);
                            //lChurning.ValorCorretagem       = SelecionaValorCorretagem(lChurning.CodigoCliente.Value, lData);

                            lRetorno.Resultado.Add(lChurning);
                        }
                        else
                        {
                            lRetorno.Resultado.Remove(lChurning);

                            lChurning.ValorVendas       += lRow["VlVendas"].DBToDecimal();
                            lChurning.ValorCompras      += lRow["VlCompras"].DBToDecimal();
                            lChurning.ValorCarteira     += lRow["VlCarteira"].DBToDecimal();
                            lChurning.ValorCarteiraMedia = lRow["vlCarteiramedia"].DBToDecimal();

                            //DateTime lData = this.GetDateBrockage(lRow["DATA_POSI"].DBToDateTime(), pRequest.ListaFeriados);

                            //lChurning.ValorCorretagem    += SelecionaValorCorretagem(lChurning.CodigoCliente.Value , lData);

                            lRetorno.Resultado.Add(lChurning);
                        }
                    }
                }
            }

            ObterCorretagemPeriodo(pRequest, ref lRetorno);

            ObterCorretagemDia(pRequest, ref lRetorno);

            ObterCarteiraDiaria(pRequest, ref lRetorno);

            EfetuaCalculoTR(pRequest, ref lRetorno);

            EfetuaCalculoCE(pRequest, ref lRetorno);

            EfetuaFiltroChurningIntraday(pRequest, ref lRetorno);

            EfetuaFiltroChurningIntradayPorta(pRequest, ref lRetorno);

            return(lRetorno);
        }
Exemple #7
0
        private void ObterCarteiraDiaria(ChurningIntradayInfo pRequest, ref ChurningIntradayInfo pRetorno)
        {
            List <CarteiraChurningDia> lRetorno = new List <CarteiraChurningDia>();
            var lAcessaDados = new AcessaDados();

            CarteiraChurningDia lChurning = null;

            /*
             * lAcessaDados.ConnectionStringName = "RISCO_GRADUALOMS";
             *
             * using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_churning_carteira_dia_sel"))
             * {
             *  lAcessaDados.AddInParameter(lDbCommand, "@CodigoCliente", DbType.Int32,    pRequest.CodigoCliente);
             *
             *  var lDataTable = lAcessaDados.ExecuteDbDataTable(lDbCommand);
             *
             *  if (lDataTable != null && lDataTable.Rows.Count > 0)
             *  {
             *      for (int i = 0; i < lDataTable.Rows.Count; i++)
             *      {
             *          DataRow lRow = lDataTable.Rows[i];
             *          lChurning = new CarteiraChurningDia();
             *
             *          lChurning.CodigoCliente    = lRow["CodigoCliente"].DBToInt32();
             *          lChurning.ValorCarteiraDia = lRow["VlCarteiraDia"].DBToDecimal();
             *          lChurning.Data             = lRow["Data"].DBToDateTime();
             *          lChurning.ValorComprasDia  = lRow["ValorCompras"].DBToDecimal();
             *          lChurning.ValorVendasDia   = lRow["ValorVendas"].DBToDecimal();
             *
             *
             *          lRetorno.Add(lChurning);
             *      }
             *  }
             * }
             */
            lAcessaDados.ConnectionStringName = "SinacorExportacao";

            using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "PRC_TURNOVER_CARTEIRA_DIA_SEL"))
            {
                lAcessaDados.AddInParameter(lDbCommand, "pCodigoCliente", DbType.Int32, pRequest.CodigoCliente);

                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];
                        lChurning = new CarteiraChurningDia();

                        lChurning.CodigoCliente    = lRow["CodigoCliente"].DBToInt32();
                        lChurning.ValorCarteiraDia = lRow["VlCarteiraDia"].DBToDecimal();
                        lChurning.Data             = lRow["Data"].DBToDateTime();
                        lChurning.ValorComprasDia  = lRow["ValorCompras"].DBToDecimal();
                        lChurning.ValorVendasDia   = lRow["ValorVendas"].DBToDecimal();
                        //lChurning.ValorCorretagemDia    = this.SelecionaValorCorretagem(lChurning.CodigoCliente, DateTime.Now);

                        lRetorno.Add(lChurning);
                    }
                }
            }

            var lListaChannel = ListarClientesPortas(pRequest);

            var lListaCliente = new List <int>();

            lRetorno.ForEach(cliente =>
            {
                lListaCliente.Add(cliente.CodigoCliente);
            });



            foreach (ChurningIntradayInfo info in pRetorno.Resultado)
            {
                var lLista = lRetorno.Find(churn => { return(churn.CodigoCliente == info.CodigoCliente); });

                if (lLista != null)
                {
                    info.ValorCarteiraDia = lLista.ValorCarteiraDia;
                    info.ValorComprasDia  = lLista.ValorComprasDia;
                    info.ValorVendasDia   = lLista.ValorVendasDia;
                }

                var lEncontradoChannel = lListaChannel.Find(channel => { return(channel.CodigoCliente == info.CodigoCliente); });

                if (lEncontradoChannel.CodigoCliente != 0)
                {
                    lEncontradoChannel.ListaPortas.ForEach(portas =>
                    {
                        if (info.Porta != null)
                        {
                            if (!info.Porta.Contains(portas.ToString()))
                            {
                                info.Porta += portas + ",";
                            }
                        }
                        else
                        {
                            info.Porta += portas + ",";
                        }
                    });
                }

                info.TipoPessoa = SelecionarClienteTipo(info.CodigoCliente.Value);
            }
        }
Exemple #8
0
        private void BuscarFax_RODAPE(ref FaxRequest pParametros, ref AcessaDados pAcessoDados, ref FaxResponse plRetorno)
        {
            using (DbCommand lDbCommand = pAcessoDados.CreateCommand(CommandType.StoredProcedure, "PRC_FAX_RODAPE_BOV_BR"))
            {
                pAcessoDados.AddInParameter(lDbCommand, "pClienteCodigo", DbType.Int32, pParametros.ConsultaCodigoCliente);
                pAcessoDados.AddInParameter(lDbCommand, "pData", DbType.Date, pParametros.ConsultaDataMovimento);

                using (var lDataTable = pAcessoDados.ExecuteOracleDataTable(lDbCommand))
                {
                    if (null != lDataTable && lDataTable.Rows.Count > 0)
                    {
                        for (int i = 0; i < lDataTable.Rows.Count; i++)
                        {
                            if (lDataTable.Rows[i]["TP_NEGOCIO"].DBToString() == "FUT")
                            {
                                plRetorno.Relatorio.RodapeTotalComprasOpcao      = lDataTable.Rows[i]["TOTAL_COMPRAS_OPCAO"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTotalVendasOpcao       = lDataTable.Rows[i]["TOTAL_VENDAS_OPCAO"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTotalTermoOpcao        = lDataTable.Rows[i]["TOTAL_TERMO"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTotalAjusteOpcao       = lDataTable.Rows[i]["TOTAL_AJUSTE"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTotalNegociosOpcao     = lDataTable.Rows[i]["TOTAL_NEGOCIOS"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTotalCorretagemOpcao   = lDataTable.Rows[i]["TOTAL_CORRETAGEM"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTaxaCblcOpcao          = lDataTable.Rows[i]["TAXAS_CBLC"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTaxaBovespaOpcao       = lDataTable.Rows[i]["TAXAS_BOVESPA"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTaxaOperacionaisOpcao  = lDataTable.Rows[i]["TAXAS_OPERACIONAIS"].DBToDecimal();
                                plRetorno.Relatorio.RodapeOutrasDepesasOpcao     = lDataTable.Rows[i]["OUTRAS_DESPESAS"].DBToDecimal();
                                plRetorno.Relatorio.RodapeIRDayTradeOpcao        = lDataTable.Rows[i]["IR_DAY_TRADE"].DBToDecimal();
                                plRetorno.Relatorio.RodapeIrOperacoesOpcao       = lDataTable.Rows[i]["IR_OPERACOES"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTotalLiquidoOpcao      = lDataTable.Rows[i]["TOTAL_LIQUIDO"].DBToDecimal();
                                plRetorno.Relatorio.RodapeBaseIRDTOpcao          = lDataTable.Rows[i]["BASE_IR_DT"].DBToDecimal();
                                plRetorno.Relatorio.RodapeBaseIROperacoesOpcao   = lDataTable.Rows[i]["BASE_IR_OPER"].DBToDecimal();
                                plRetorno.Relatorio.RodapeEmolumentoBolsaOpcao   = lDataTable.Rows[i]["EMOLUMENTO_BOLSA"].DBToDecimal();
                                plRetorno.Relatorio.RodapeEmolumentoTotalOpcao   = lDataTable.Rows[i]["EMOLUMENTO_TOTAL"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTaxaLiquidacaoOpcao    = lDataTable.Rows[i]["TAXA_LIQUIDACAO"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTaxaRegistroBolsaOpcao = lDataTable.Rows[i]["TAXA_REGISTRO_BOLSA"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTaxaRegistroTotalOpcao = lDataTable.Rows[i]["TAXA_REGISTRO_TOTAL"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTaxaRegistroOpcao      = lDataTable.Rows[i]["TAXA_REGISTRO"].DBToDecimal();
                            }
                            else
                            {
                                plRetorno.Relatorio.RodapeTotalComprasVista      = lDataTable.Rows[i]["TOTAL_COMPRAS_VISTA"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTotalVendasVista       = lDataTable.Rows[i]["TOTAL_VENDAS_VISTA"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTotalTermoVista        = lDataTable.Rows[i]["TOTAL_TERMO"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTotalAjusteVista       = lDataTable.Rows[i]["TOTAL_AJUSTE"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTotalNegociosVista     = lDataTable.Rows[i]["TOTAL_NEGOCIOS"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTotalCorretagemVista   = lDataTable.Rows[i]["TOTAL_CORRETAGEM"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTaxaCblcVista          = lDataTable.Rows[i]["TAXAS_CBLC"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTaxaBovespaVista       = lDataTable.Rows[i]["TAXAS_BOVESPA"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTaxaOperacionaisVista  = lDataTable.Rows[i]["TAXAS_OPERACIONAIS"].DBToDecimal();
                                plRetorno.Relatorio.RodapeOutrasDepesasVista     = lDataTable.Rows[i]["OUTRAS_DESPESAS"].DBToDecimal();
                                plRetorno.Relatorio.RodapeIRDayTradeVista        = lDataTable.Rows[i]["IR_DAY_TRADE"].DBToDecimal();
                                plRetorno.Relatorio.RodapeIrOperacoesVista       = lDataTable.Rows[i]["IR_OPERACOES"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTotalLiquidoVista      = lDataTable.Rows[i]["TOTAL_LIQUIDO"].DBToDecimal();
                                plRetorno.Relatorio.RodapeBaseIRDTVista          = lDataTable.Rows[i]["BASE_IR_DT"].DBToDecimal();
                                plRetorno.Relatorio.RodapeBaseIROperacoesVista   = lDataTable.Rows[i]["BASE_IR_OPER"].DBToDecimal();
                                plRetorno.Relatorio.RodapeEmolumentoBolsaVista   = lDataTable.Rows[i]["EMOLUMENTO_BOLSA"].DBToDecimal();
                                plRetorno.Relatorio.RodapeEmolumentoTotalVista   = lDataTable.Rows[i]["EMOLUMENTO_TOTAL"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTaxaLiquidacaoVista    = lDataTable.Rows[i]["TAXA_LIQUIDACAO"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTaxaRegistroBolsaVista = lDataTable.Rows[i]["TAXA_REGISTRO_BOLSA"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTaxaRegistroTotalVista = lDataTable.Rows[i]["TAXA_REGISTRO_TOTAL"].DBToDecimal();
                                plRetorno.Relatorio.RodapeTaxaRegistroVista      = lDataTable.Rows[i]["TAXA_REGISTRO"].DBToDecimal();
                            }
                        }
                    }
                }
            }
        }
Exemple #9
0
        public InformacaoClienteResponse ObterListaClientesSaldoDevedor(InformacaoClienteRequest request)
        {
            AcessaDados lAcessaDados = new AcessaDados();

            InformacaoClienteResponse response = new InformacaoClienteResponse();

            response.ListaInformacoesCliente = new Dictionary <int, InformacoesClienteInfo>();
            response.Retorno = InformacaoClienteResponse.RETORNO_ERRO;

            try
            {
                lAcessaDados.ConnectionStringName = gNomeConexaoSinacor;

                using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_obter_saldo_devedor"))
                {
                    lAcessaDados.AddInParameter(lDbCommand, "dtMovimento", DbType.DateTime, request.DadosCliente.DataMovimento);

                    DataTable lDataTable = lAcessaDados.ExecuteOracleDataTable(lDbCommand);

                    if (null != lDataTable && lDataTable.Rows.Count > 0)
                    {
                        for (int i = 0; i <= lDataTable.Rows.Count - 1; i++)
                        {
                            InformacoesClienteInfo ClienteInfo = new InformacoesClienteInfo();
                            ClienteInfo.CodigoAssessor   = (lDataTable.Rows[i]["cd_assessor"]).DBToInt32();
                            ClienteInfo.NomeAssessor     = (lDataTable.Rows[i]["nm_assessor"]).DBToString();
                            ClienteInfo.CodigoCliente    = (lDataTable.Rows[i]["cd_cliente"]).DBToInt32();
                            ClienteInfo.NomeCliente      = (lDataTable.Rows[i]["nm_cliente"]).DBToString();
                            ClienteInfo.EmailCliente     = (lDataTable.Rows[i]["nm_e_mail"]).DBToString();
                            ClienteInfo.SaldoDisponivel  = (lDataTable.Rows[i]["vl_disponivel"]).DBToDecimal();
                            ClienteInfo.SaldoTotal       = (lDataTable.Rows[i]["vl_total"]).DBToDecimal();
                            ClienteInfo.SaldoProjetadoD1 = (lDataTable.Rows[i]["vl_projet1"]).DBToDecimal();
                            ClienteInfo.SaldoProjetadoD2 = (lDataTable.Rows[i]["vl_projet2"]).DBToDecimal();
                            ClienteInfo.DataMovimento    = request.DadosCliente.DataMovimento;

                            ClienteInfo.NrDiasNegativo = ObterQuantidadeDiasNegativoCliente(ClienteInfo.CodigoCliente, ClienteInfo.DataMovimento);
                            ClienteInfo.JurosCalculado = CalcularJurosSaldoDevedor(ClienteInfo.SaldoDisponivel);

                            if (ClienteInfo.SaldoTotal >= 0)
                            {
                                ClienteInfo.Desenquadrado = 0;
                            }
                            else
                            {
                                ClienteInfo.Desenquadrado =
                                    (ClienteInfo.SaldoTotal > ClienteInfo.SaldoDisponivel ? ClienteInfo.SaldoTotal : ClienteInfo.SaldoDisponivel);
                            }

                            if (!response.ListaInformacoesCliente.ContainsKey(ClienteInfo.CodigoCliente))
                            {
                                response.ListaInformacoesCliente.Add(ClienteInfo.CodigoCliente, ClienteInfo);
                            }
                        }
                    }
                }
                response.Retorno = InformacaoClienteResponse.RETORNO_OK;
            }
            catch (Exception ex)
            {
                logger.Error("ObterListaClientesSaldoDevedor(): Ocorreu um erro ao acessar o banco de dados: " + ex.Message);
            }

            return(response);
        }