Example #1
0
        //public static List<TransporteCustodia> TraduzirCustodiaInfo(List<MonitorCustodiaInfo.CustodiaPosicao> pParametros)
        //{
        //    List<TransporteCustodia> lRetorno = new List<TransporteCustodia>();

        //    if (pParametros != null)
        //    {
        //        foreach (MonitorCustodiaInfo.CustodiaPosicao lInfo in pParametros)
        //        {
        //            lRetorno.Add(new TransporteCustodia(lInfo));
        //        }
        //    }

        //    return lRetorno;
        //}

        /*
         * public static List<TransporteCustodia> TraduzirCustodiaInfo(List<MonitoramentoRiscoLucroCustodiaPosicaoDiaBmfInfo.CustodiaPosicao> pParametros)
         * {
         *  List<TransporteCustodia> lRetorno = new List<TransporteCustodia>();
         *  List<TransporteCustodia> lTempRetorno = new List<TransporteCustodia>();
         *
         *  if (pParametros != null)
         *  {
         *      foreach (MonitoramentoRiscoLucroCustodiaPosicaoDiaBmfInfo.CustodiaPosicao lInfo in pParametros)
         *      {
         *          TransporteCustodia lPosicao = new TransporteCustodia();
         *
         *          var lTemp = lTempRetorno.Find(negocio => negocio.CodigoNegocio == lInfo.CodigoInstrumento);
         *
         *
         *          if (lTemp != null)
         *          {
         *              lTempRetorno.Remove(lTemp);
         *
         *              lTemp.QtdAbertura        = "0";
         *              lTemp.Empresa            = "n/a";
         *              lTemp.TipoMercado        = lInfo.TipoMercado;
         *              lTemp.CodigoNegocio      = lInfo.CodigoInstrumento;
         *              lTemp.QtdVenda           = (decimal.Parse(lTemp.QtdVenda, gCulturaStatic) + lInfo.QtdeAExecVenda).ToString();
         *              lTemp.QtdCompra          = (decimal.Parse(lTemp.QtdCompra, gCulturaStatic) + lInfo.QtdeAExecCompra).ToString();
         *              lTemp.QtdAtual           = (decimal.Parse(lTemp.QtdCompra, gCulturaStatic) - decimal.Parse(lTemp.QtdVenda, gCulturaStatic)).ToString(gCulturaStatic);
         *              lTemp.Carteira           = "n/a";
         *              lTemp.CodigoCliente      = lInfo.IdCliente.ToString();
         *              lTemp.TipoGrupo          = lInfo.TipoGrupo;
         *              lTemp.ValorPosicao       = lInfo.ValorPosicao.ToString(gCulturaStatic);
         *              lTemp.CodigoSerie        = lInfo.CodigoSerie;
         *              lTemp.PrecoNegocioCompra = (decimal.Parse(lTemp.PrecoNegocioCompra, gCulturaStatic) + (lInfo.PrecoNegocioCompra * lInfo.QtdeAExecCompra)).ToString();
         *              lTemp.PrecoNegocioVenda  = (decimal.Parse(lTemp.PrecoNegocioVenda, gCulturaStatic) + (lInfo.PrecoNegocioVenda * lInfo.QtdeAExecVenda)).ToString();
         *              lTemp.Sentido            = lInfo.Sentido;
         *              lTemp.EhPosicao          = true;
         *
         *              lTempRetorno.Add(lTemp);
         *          }
         *          else
         *          {
         *              lPosicao.QtdAbertura        = "0";
         *              lPosicao.Empresa            = "n/a";
         *              lPosicao.TipoMercado        = lInfo.TipoMercado;
         *              lPosicao.CodigoNegocio      = lInfo.CodigoInstrumento;
         *              lPosicao.QtdVenda           = lInfo.QtdeAExecVenda.ToString(gCulturaStatic);
         *              lPosicao.QtdCompra          = lInfo.QtdeAExecCompra.ToString(gCulturaStatic);
         *              lPosicao.QtdAtual           = (decimal.Parse(lPosicao.QtdCompra, gCulturaStatic) - decimal.Parse(lPosicao.QtdVenda, gCulturaStatic)).ToString(gCulturaStatic);
         *              lPosicao.Carteira           = "n/a";
         *              lPosicao.CodigoCliente      = lInfo.IdCliente.ToString();
         *              lPosicao.TipoGrupo          = lInfo.TipoGrupo;
         *              lPosicao.ValorPosicao       = lInfo.ValorPosicao.ToString(gCulturaStatic);
         *              lPosicao.CodigoSerie        = lInfo.CodigoSerie;
         *              lPosicao.PrecoNegocioCompra = (lInfo.PrecoNegocioCompra * lInfo.QtdeAExecCompra).ToString(gCulturaStatic);
         *              lPosicao.PrecoNegocioVenda  = (lInfo.PrecoNegocioVenda * lInfo.QtdeAExecVenda).ToString(gCulturaStatic);
         *              lPosicao.Sentido            = lInfo.Sentido;
         *              lPosicao.EhPosicao          = true;
         *
         *              lTempRetorno.Add(lPosicao);
         *          }
         *      }
         *
         *      lRetorno = lTempRetorno;
         *  }
         *
         *  return lRetorno;
         * }
         */
        public static List <SaldoCustodiaBmfCliente> TraduzirCustodiaInfo(List <MonitorCustodiaInfo.CustodiaPosicaoDiaBMF> pParametros, List <MonitorCustodiaInfo.CustodiaPosicao> pParametrosNormal)
        {
            var lRetorno     = new List <SaldoCustodiaBmfCliente>();
            var lTempRetorno = new List <SaldoCustodiaBmfCliente>();

            if (pParametros != null)
            {
                foreach (MonitorCustodiaInfo.CustodiaPosicaoDiaBMF lInfo in pParametros)
                {
                    var lPosicao = new SaldoCustodiaBmfCliente();

                    var lTemp = lTempRetorno.Find(negocio => negocio.Ativo == lInfo.CodigoInstrumento);

                    if (lTemp != null)
                    {
                        lTempRetorno.Remove(lTemp);

                        lTemp.QuantidadeAbertura = 0M;
                        lTemp.TipoMercadoria     = lInfo.TipoMercado;
                        lTemp.Ativo              = lInfo.CodigoInstrumento;
                        lTemp.QuantidadeVendido  = lTemp.QuantidadeVendido + lInfo.QtdeAExecVenda;
                        lTemp.QuantidadeComprado = lTemp.QuantidadeComprado + lInfo.QtdeAExecCompra;
                        lTemp.QuantidadeAtual    = lTemp.QuantidadeComprado - lTemp.QuantidadeVendido;
                        lTemp.Serie              = lInfo.CodigoSerie;
                        lTemp.PU        = lInfo.ValorPU;
                        lTemp.Ajuste    = lInfo.ValorFechamento;
                        lTemp.EhPosicao = true;
                        //lTemp.Carteira             = "n/a";
                        //lTemp.CodigoCliente        = lInfo.IdCliente.ToString();
                        //lTemp.TipoGrupo            = lInfo.TipoGrupo;
                        //lTemp.ValorPosicao         = lInfo.ValorPosicao.ToString(gCulturaStatic);
                        //lTemp.PrecoNegocioCompra   = (decimal.Parse(lTemp.PrecoNegocioCompra, gCulturaStatic) + (lInfo.PrecoNegocioCompra * lInfo.QtdeAExecCompra)).ToString();
                        //lTemp.PrecoNegocioVenda    = (decimal.Parse(lTemp.PrecoNegocioVenda, gCulturaStatic) + (lInfo.PrecoNegocioVenda * lInfo.QtdeAExecVenda)).ToString();
                        //lTemp.Sentido              = lInfo.Sentido;
                        //lPosicao.Cotacao           = lInfo.Cotacao.ToString("N2");
                        //lPosicao.ValorDeFechamento = lInfo.ValorFechamento.ToString("N2");
                        //lPosicao.Resultado         = lInfo.Resultado.ToString("N2");
                        //lPosicao.Variacao          = lInfo.Variacao.ToString("N2");
                        //lPosicao.ValorPU           = lInfo.ValorPU.ToString("N2");

                        lTempRetorno.Add(lTemp);
                    }
                    else
                    {
                        lPosicao.QuantidadeAbertura = 0M;
                        lPosicao.TipoMercadoria     = lInfo.TipoMercado;
                        lPosicao.Ativo              = lInfo.CodigoInstrumento;
                        lPosicao.QuantidadeVendido  = lInfo.QtdeAExecVenda;
                        lPosicao.QuantidadeComprado = lInfo.QtdeAExecCompra;
                        lPosicao.QuantidadeAtual    = lPosicao.QuantidadeComprado - lPosicao.QuantidadeVendido;
                        lPosicao.Serie              = lInfo.CodigoSerie;
                        lPosicao.PU     = lInfo.ValorPU;
                        lPosicao.Ajuste = lInfo.ValorFechamento;

                        //lPosicao.Carteira           = "n/a";
                        //lPosicao.CodigoCliente      = lInfo.IdCliente.ToString();
                        //lPosicao.TipoGrupo          = lInfo.TipoGrupo;
                        //lPosicao.ValorPosicao       = lInfo.ValorPosicao.ToString(gCulturaStatic);
                        //lPosicao.PrecoNegocioCompra = (lInfo.PrecoNegocioCompra * lInfo.QtdeAExecCompra).ToString(gCulturaStatic);
                        //lPosicao.PrecoNegocioVenda  = (lInfo.PrecoNegocioVenda * lInfo.QtdeAExecVenda).ToString(gCulturaStatic);
                        //lPosicao.Sentido            = lInfo.Sentido;
                        //lPosicao.EhPosicao          = true;
                        //lPosicao.Cotacao            = lInfo.Cotacao.ToString("N2");
                        //lPosicao.ValorDeFechamento  = lInfo.ValorFechamento.ToString("N2");
                        //lPosicao.Resultado          = lInfo.Resultado.ToString("N2");
                        //lPosicao.Variacao           = lInfo.Variacao.ToString("N2");
                        //lPosicao.ValorPU            = lInfo.ValorPU.ToString("N2");
                        lTempRetorno.Add(lPosicao);
                    }
                }

                lRetorno = lTempRetorno;
            }

            if (pParametrosNormal != null)
            {
                lTempRetorno = new List <SaldoCustodiaBmfCliente>();

                foreach (MonitorCustodiaInfo.CustodiaPosicao lInfo in pParametrosNormal)
                {
                    var lPosicao = new SaldoCustodiaBmfCliente();

                    var lTemp = lTempRetorno.Find(negocio => negocio.Ativo == lInfo.CodigoInstrumento);

                    if (lInfo.TipoMercado != "FUT")
                    {
                        continue;
                    }

                    if (lTemp != null)
                    {
                        lTempRetorno.Remove(lTemp);

                        lTemp.QuantidadeAbertura = 0M;
                        lTemp.TipoMercadoria     = lInfo.TipoMercado;
                        lTemp.Ativo              = lInfo.CodigoInstrumento;
                        lTemp.QuantidadeVendido  = lTemp.QuantidadeVendido + lInfo.QtdeAExecVenda;
                        lTemp.QuantidadeComprado = lTemp.QuantidadeComprado + lInfo.QtdeAExecCompra;
                        lTemp.QuantidadeAtual    = lTemp.QuantidadeComprado - lTemp.QuantidadeVendido;
                        lTemp.Serie              = lInfo.CodigoSerie;
                        lTemp.PU        = lInfo.ValorPU;
                        lTemp.Ajuste    = lInfo.ValorFechamento;
                        lTemp.EhPosicao = true;

                        lTempRetorno.Add(lTemp);
                    }
                    else
                    {
                        lPosicao.QuantidadeAbertura = 0M;
                        lPosicao.TipoMercadoria     = lInfo.TipoMercado;
                        lPosicao.Ativo              = lInfo.CodigoInstrumento;
                        lPosicao.QuantidadeVendido  = lInfo.QtdeAExecVenda;
                        lPosicao.QuantidadeComprado = lInfo.QtdeAExecCompra;
                        lPosicao.QuantidadeAtual    = lPosicao.QuantidadeComprado - lPosicao.QuantidadeVendido;
                        lPosicao.Serie              = lInfo.CodigoSerie;
                        lPosicao.PU     = lInfo.ValorPU;
                        lPosicao.Ajuste = lInfo.ValorFechamento;

                        lTempRetorno.Add(lPosicao);
                    }
                }

                lRetorno.AddRange(lTempRetorno);
            }

            return(lRetorno);
        }
Example #2
0
        private static void ObterPosicaoClientePosicao(ref PosicaoCliente pCliente)
        {
            AcessaDados lAcessaDados = new AcessaDados();

            try
            {
                lAcessaDados.ConnectionStringName = gNomeConexaoOracle;

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

                    if (null != lDataTable && lDataTable.Rows.Count > 0)
                    {
                        for (int i = 0; i <= lDataTable.Rows.Count - 1; i++)
                        {
                            string lTipoGrupo = (lDataTable.Rows[i]["Tipo_Grup"]).DBToString();

                            switch (lTipoGrupo)
                            {
                            case "ACAO":
                            {
                                var lPosicaoBov = new SaldoCustodiaBovespaCliente();

                                lPosicaoBov.Ativo          = (lDataTable.Rows[i]["COD_NEG"]).DBToString();
                                lPosicaoBov.CodigoCarteira = (lDataTable.Rows[i]["COD_CART"]).DBToString();
                                lPosicaoBov.SaldoAbertura  = (lDataTable.Rows[i]["QTDE_DISP"]).DBToInt32();
                                lPosicaoBov.SaldoD0        = (lDataTable.Rows[i]["QTDE_DISP"]).DBToInt32();
                                lPosicaoBov.SaldoD1        = (lDataTable.Rows[i]["QTDE_DA1"]).DBToInt32();
                                lPosicaoBov.SaldoD2        = (lDataTable.Rows[i]["QTDE_DA2"]).DBToInt32();
                                lPosicaoBov.SaldoD3        = (lDataTable.Rows[i]["QTDE_DA3"]).DBToInt32();
                                lPosicaoBov.SaldoTotal     = lPosicaoBov.SaldoD0 + lPosicaoBov.SaldoD1 + lPosicaoBov.SaldoD2 + lPosicaoBov.SaldoD3;

                                pCliente.SaldoCustodiaBovespaCliente.Add(lPosicaoBov);
                            }
                            break;

                            case "BMF":

                                pCliente.CodigoBmfCliente = (lDataTable.Rows[i]["Tipo_Grup"]).DBToInt32();

                                var lPosicaoBmf = new SaldoCustodiaBmfCliente();

                                lPosicaoBmf.Ativo              = (lDataTable.Rows[i]["COD_COMM"].DBToString() + lDataTable.Rows[i]["COD_SERI"]).DBToString();
                                lPosicaoBmf.TipoMercadoria     = lDataTable.Rows[i]["NOME_COMM"].DBToString();
                                lPosicaoBmf.Serie              = lDataTable.Rows[i]["COD_SERI"].DBToString();
                                lPosicaoBmf.Ajuste             = 0;    //lDataTable.Rows[i][]
                                lPosicaoBmf.PU                 = 0;
                                lPosicaoBmf.QuantidadeAbertura = lDataTable.Rows[i]["QTDE_DISP"].DBToInt32();
                                lPosicaoBmf.QuantidadeAtual    = lDataTable.Rows[i]["QTDE_DISP"].DBToInt32();

                                pCliente.SaldoCustodiaBmfCliente.Add(lPosicaoBmf);
                                break;

                            case "TEDI":
                                break;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }