Beispiel #1
0
        public InserirLimiteClienteBMFResponse AtualizarLimiteBMF(InserirLimiteClienteBMFRequest InserirLimiteClienteBMFRequest)
        {
            InserirLimiteClienteBMFResponse response = new InserirLimiteClienteBMFResponse();

            try
            {
                PersistenciaOrdens PersistenciaOrdens = new PersistenciaOrdens();
                response = PersistenciaOrdens.AtualizarLimiteBMF(InserirLimiteClienteBMFRequest);
            }
            catch (Exception ex)
            {
                response.bSucesso = false;
            }

            return(response);
        }
Beispiel #2
0
        private void InserirParametroBMF()
        {
            ClienteParametroLimiteBMFInfo ClienteParametroBMFInfo = new ClienteParametroLimiteBMFInfo();

            InserirLimiteClienteBMFRequest  request  = new InserirLimiteClienteBMFRequest();
            InserirLimiteClienteBMFResponse response = new InserirLimiteClienteBMFResponse();

            ServicoLimiteBMF ServicoLimiteBMF = new ServicoLimiteBMF();

            ClienteParametroBMFInfo.Account              = 31217;
            ClienteParametroBMFInfo.DataValidade         = DateTime.Now.AddDays(5);
            ClienteParametroBMFInfo.Contrato             = "DOL";
            ClienteParametroBMFInfo.idClientePermissao   = 30;
            ClienteParametroBMFInfo.QuantidadeDisponivel = 10;
            ClienteParametroBMFInfo.QuantidadeTotal      = 10;
            ClienteParametroBMFInfo.RenovacaoAutomatica  = 'S';
            ClienteParametroBMFInfo.Sentido              = "V";

            request.ClienteParametroLimiteBMFInfo = ClienteParametroBMFInfo;
            response = ServicoLimiteBMF.AtualizarLimiteBMF(request);
        }
Beispiel #3
0
        private string ResponderSalvarLimitesBmf()
        {
            string lRetorno = string.Empty;

            try
            {
                var lServico = new ServicoLimiteBMF();

                var listAntigaInstrumentos = Session["Spider_ListaLimitesInstrumentos_" + GetCodBmf] as List<ClienteParametroBMFInstrumentoInfo>;
                var listAntigaContratos    = Session["Spider_ListaLimites_" + GetCodBmf]             as List<ClienteParametroLimiteBMFInfo>;

                string lAntigoStatusContratos = RetornarSucessoAjax(listAntigaContratos, "");
                string lAntigoStatusInstrumentos = RetornarSucessoAjax(listAntigaInstrumentos, "");

                List<ClienteParametroLimiteBMFInfo> lListContrato         = Session["Spider_LimitesContrato_" + GetCodBmf]    as List<ClienteParametroLimiteBMFInfo>;
                List<ClienteParametroBMFInstrumentoInfo> lListInstrumento = Session["Spider_LimitesInstrumento_" + GetCodBmf] as List<ClienteParametroBMFInstrumentoInfo>;

                InserirLimiteClienteBMFRequest lRequestContrato        = new InserirLimiteClienteBMFRequest();
                InserirLimiteBMFInstrumentoRequest lRequestInstrumento = new InserirLimiteBMFInstrumentoRequest();

                List<ContratoAuxIntrumento> llistAuxContrato = new List<ContratoAuxIntrumento>();

                //Atualiza os dados para salvar a quantidade 
                ClienteParametroBMFInstrumentoInfo lInstrumentoEncontradoCompra = null; 
                ClienteParametroBMFInstrumentoInfo lInstrumentoEncontradoVenda = null;

                if (GetInstrumento != "null")
                {
                    lInstrumentoEncontradoCompra = lListInstrumento.Find(instru => { return instru.Sentido == 'C' && instru.Instrumento == GetInstrumento; });
                    lInstrumentoEncontradoVenda = lListInstrumento.Find(instru => { return instru.Sentido == 'V' && instru.Instrumento == GetInstrumento; });

                    lListInstrumento.Remove(lInstrumentoEncontradoCompra);
                    lListInstrumento.Remove(lInstrumentoEncontradoVenda);

                }

                if ( Request["lCliente_Qtde_Compra_Instrumento"] .ToString()!="")
                    lInstrumentoEncontradoCompra.QtDisponivel           = Convert.ToInt32(Request["lCliente_Qtde_Compra_Instrumento"].ToString());

                if (Request["lCliente_Qtde_Compra_Instrumento"].ToString() != "")
                    lInstrumentoEncontradoCompra.QtTotalInstrumento     = Convert.ToInt32(Request["lCliente_Qtde_Compra_Instrumento"].ToString());

                if (Request["lCliente_Qtde_Venda_Instrumento"].ToString() != "")
                    lInstrumentoEncontradoVenda.QtDisponivel            = Convert.ToInt32(Request["lCliente_Qtde_Venda_Instrumento"].ToString());
                
                if (Request["lCliente_Qtde_Venda_Instrumento"].ToString() != "")
                    lInstrumentoEncontradoVenda.QtTotalInstrumento      = Convert.ToInt32(Request["lCliente_Qtde_Venda_Instrumento"].ToString());
                
                if (Request["lCliente_Qtde_Maxima_Instrumento"].ToString() != "" )
                    lInstrumentoEncontradoCompra.QuantidadeMaximaOferta = Convert.ToInt32(Request["lCliente_Qtde_Maxima_Instrumento"].ToString());

                if (Request["lCliente_Qtde_Maxima_Instrumento"].ToString() != "")
                    lInstrumentoEncontradoVenda.QuantidadeMaximaOferta  = Convert.ToInt32(Request["lCliente_Qtde_Maxima_Instrumento"].ToString());

                lListInstrumento.Add(lInstrumentoEncontradoCompra);
                lListInstrumento.Add(lInstrumentoEncontradoVenda);

                var lContratoEncontrados = lListContrato.FindAll(contrato => { return contrato.Contrato == GetContrato; });

                var infoCompra = new ClienteParametroLimiteBMFInfo();
                var infoVenda = new ClienteParametroLimiteBMFInfo();

                foreach (ClienteParametroLimiteBMFInfo info in lContratoEncontrados)
                {
                    if (info.Sentido == "C")
                    {
                        infoCompra.idClienteParametroBMF = info.idClienteParametroBMF;
                    }
                    else if (info.Sentido == "V")
                    {
                        infoVenda.idClienteParametroBMF = info.idClienteParametroBMF;
                    }

                    lListContrato.Remove(info);
                }
                
                infoCompra.Account                = GetCodBmf;
                infoCompra.Contrato               = GetContrato;
                infoCompra.QuantidadeDisponivel   = Convert.ToInt32(Request["lCliente_Qtde_Compra"].ToString());
                infoCompra.QuantidadeTotal        = Convert.ToInt32(Request["lCliente_Qtde_Compra"].ToString());
                infoCompra.QuantidadeMaximaOferta = Convert.ToInt32(Request["lCliente_Qtde_Maxima_Contrato"].ToString());
                infoCompra.DataValidade           = Convert.ToDateTime(Request["lCliente_Data_validade"]);
                infoCompra.Sentido                = "C";
                infoCompra.idClientePermissao     = base.UsuarioLogado.Id;
                infoCompra.RenovacaoAutomatica    = 'S';
                lListContrato.Add(infoCompra);

                
                infoVenda.Account                = GetCodBmf;
                infoVenda.Contrato               = GetContrato;
                infoVenda.QuantidadeDisponivel   = Convert.ToInt32(Request["lCliente_Qtde_Venda"].ToString());
                infoVenda.QuantidadeTotal        = Convert.ToInt32(Request["lCliente_Qtde_Venda"].ToString());
                infoVenda.QuantidadeMaximaOferta = Convert.ToInt32(Request["lCliente_Qtde_Maxima_Contrato"].ToString());
                infoVenda.DataValidade           = Convert.ToDateTime(Request["lCliente_Data_validade"]);
                infoVenda.Sentido                = "V";
                infoVenda.idClientePermissao     = base.UsuarioLogado.Id;
                infoVenda.RenovacaoAutomatica    = 'S';

                lListContrato.Add(infoVenda);


                string lNovoStatusContratos    = RetornarSucessoAjax(lListContrato, "");
                string lNovoStatusInstrumentos = RetornarSucessoAjax(lListInstrumento, "");

                foreach (ClienteParametroLimiteBMFInfo info in lListContrato)
                {
                    lRequestContrato.ClienteParametroLimiteBMFInfo = info;

                    

                    InserirLimiteClienteBMFResponse lResponseContrato =  lServico.AtualizarSpiderLimiteBMF(lRequestContrato);

                    ContratoAuxIntrumento lAux = new ContratoAuxIntrumento();

                    lAux.Contrato = info.Contrato;

                    lAux.IdClienteParametroBMF = lResponseContrato.IdClienteParametroBMF == 0 ? info.idClienteParametroBMF : lResponseContrato.IdClienteParametroBMF;

                    lAux.Sentido = info.Sentido;

                    llistAuxContrato.Add(lAux);
                }

                foreach (ClienteParametroBMFInstrumentoInfo info in lListInstrumento)
                {
                    if (info != null)
                    {
                        lRequestInstrumento.LimiteBMFInstrumento = info;

                        var lAux = llistAuxContrato.Find(aux => { return aux.Sentido == info.Sentido.ToString() && aux.Contrato == info.Instrumento.Substring(0, 3); });

                        if (lAux != null)
                        {
                            lRequestInstrumento.LimiteBMFInstrumento.IdClienteParametroBMF = lAux.IdClienteParametroBMF;
                        }

                        var lReponseInstrumento = lServico.AtualizarSpiderLimiteInstrumentoBMF(lRequestInstrumento);
                    }
                }

                base.RegistrarLogInclusao(new Contratos.Dados.Cadastro.LogIntranetInfo()
                {   //--> Registrando o Log.
                    CdBovespaClienteAfetado = this.GetCodBmf,
                    DsObservacao = string.Concat("Contratos Antigos: ", lAntigoStatusContratos, " Instrumentos Antigos: ", lAntigoStatusInstrumentos) +
                                   string.Concat(" Contratos Novos: "  , lNovoStatusContratos   , " Instrumentos Novos: ", lNovoStatusInstrumentos)
                });


                ListarLimiteBMFRequest lRequest = new ListarLimiteBMFRequest();

                lRequest.Account = GetCodBmf;

                ListarLimiteBMFResponse lResponse = lServico.ObterSpiderLimiteBMFCliente(lRequest);

                Session["Spider_LimitesInstrumento_" + GetCodBmf] = Session["Spider_ListaLimitesInstrumentos_" + GetCodBmf] = null;
                Session["Spider_LimitesContrato_" + GetCodBmf]    = Session["Spider_ListaLimites_" + GetCodBmf] = null;

                if (lResponse.ListaLimites != null && lResponse.ListaLimitesInstrumentos != null)
                {
                    Session["Spider_LimitesContrato_" + GetCodBmf]    = Session["Spider_ListaLimites_" + GetCodBmf] = lResponse.ListaLimites;
                    Session["Spider_LimitesInstrumento_" + GetCodBmf] = Session["Spider_ListaLimitesInstrumentos_" + GetCodBmf] = lResponse.ListaLimitesInstrumentos;
                }
                
                ILimiteManager lmtMng = Ativador.Get<ILimiteManager>();
                ReloadClientLimitResponse resp = new ReloadClientLimitResponse();
                ReloadClientLimitRequest req = new ReloadClientLimitRequest();
                req.CodCliente = Convert.ToInt32(GetCodBmf);
                req.DeleteOnly = false;
                lmtMng.ReloadLimitClientLimitStructures(req);

                lRetorno = RetornarSucessoAjax("Limites BMF configurados com sucesso.");
            }
            catch (Exception ex)
            {
                RetornarErroAjax("Erro ao Salvar limites BMF", ex);
            }

            return lRetorno;
        }
        private string ResponderSalvarLimitesBmf()
        {
            string lRetorno = string.Empty;

            try
            {
                var lServico = new ServicoLimiteBMF();

                var listAntigaInstrumentos = Session["ListaLimitesInstrumentos_" + GetCodBmf] as List <ClienteParametroBMFInstrumentoInfo>;
                var listAntigaContratos    = Session["ListaLimites_" + GetCodBmf]             as List <ClienteParametroLimiteBMFInfo>;

                string lAntigoStatusContratos    = RetornarSucessoAjax(listAntigaContratos, "");
                string lAntigoStatusInstrumentos = RetornarSucessoAjax(listAntigaInstrumentos, "");

                List <ClienteParametroLimiteBMFInfo>      lListContrato    = Session["LimitesContrato_" + GetCodBmf]    as List <ClienteParametroLimiteBMFInfo>;
                List <ClienteParametroBMFInstrumentoInfo> lListInstrumento = Session["LimitesInstrumento_" + GetCodBmf] as List <ClienteParametroBMFInstrumentoInfo>;

                InserirLimiteClienteBMFRequest     lRequestContrato    = new InserirLimiteClienteBMFRequest();
                InserirLimiteBMFInstrumentoRequest lRequestInstrumento = new InserirLimiteBMFInstrumentoRequest();

                List <ContratoAuxIntrumento> llistAuxContrato = new List <ContratoAuxIntrumento>();

                //Atualiza os dados para salvar a quantidade
                var lInstrumentoEncontradoCompra = lListInstrumento.Find(instru => { return(instru.Sentido == 'C' && instru.Instrumento == GetInstrumento); });
                var lInstrumentoEncontradoVenda  = lListInstrumento.Find(instru => { return(instru.Sentido == 'V' && instru.Instrumento == GetInstrumento); });

                lListInstrumento.Remove(lInstrumentoEncontradoCompra);
                lListInstrumento.Remove(lInstrumentoEncontradoVenda);

                lInstrumentoEncontradoCompra.QtDisponivel       = Convert.ToInt32(Request["lCliente_Qtde_Compra_Instrumento"].ToString());
                lInstrumentoEncontradoCompra.QtTotalInstrumento = Convert.ToInt32(Request["lCliente_Qtde_Compra_Instrumento"].ToString());

                lInstrumentoEncontradoVenda.QtDisponivel       = Convert.ToInt32(Request["lCliente_Qtde_Venda_Instrumento"].ToString());
                lInstrumentoEncontradoVenda.QtTotalInstrumento = Convert.ToInt32(Request["lCliente_Qtde_Venda_Instrumento"].ToString());

                lInstrumentoEncontradoCompra.QuantidadeMaximaOferta = Convert.ToInt32(Request["lCliente_Qtde_Maxima_Instrumento"].ToString());
                lInstrumentoEncontradoVenda.QuantidadeMaximaOferta  = Convert.ToInt32(Request["lCliente_Qtde_Maxima_Instrumento"].ToString());

                lListInstrumento.Add(lInstrumentoEncontradoCompra);
                lListInstrumento.Add(lInstrumentoEncontradoVenda);

                var lContratoEncontrados = lListContrato.FindAll(contrato => { return(contrato.Contrato == GetContrato); });

                foreach (ClienteParametroLimiteBMFInfo info in lContratoEncontrados)
                {
                    lListContrato.Remove(info);

                    ClienteParametroLimiteBMFInfo infoAux = info;

                    infoAux.QuantidadeTotal        = infoAux.QuantidadeDisponivel = (info.Sentido == "C") ? Convert.ToInt32(Request["lCliente_Qtde_Compra"].ToString()) : Convert.ToInt32(Request["lCliente_Qtde_Venda"].ToString());
                    infoAux.QuantidadeMaximaOferta = Convert.ToInt32(Request["lCliente_Qtde_Maxima_Contrato"].ToString());
                    lListContrato.Add(infoAux);
                }

                string lNovoStatusContratos    = RetornarSucessoAjax(lListContrato, "");
                string lNovoStatusInstrumentos = RetornarSucessoAjax(lListInstrumento, "");

                foreach (ClienteParametroLimiteBMFInfo info in lListContrato)
                {
                    lRequestContrato.ClienteParametroLimiteBMFInfo = info;

                    InserirLimiteClienteBMFResponse lResponseContrato = lServico.AtualizarLimiteBMF(lRequestContrato);

                    ContratoAuxIntrumento lAux = new ContratoAuxIntrumento();

                    lAux.Contrato = info.Contrato;

                    lAux.IdClienteParametroBMF = lResponseContrato.IdClienteParametroBMF == 0 ? info.idClienteParametroBMF : lResponseContrato.IdClienteParametroBMF;

                    lAux.Sentido = info.Sentido;

                    llistAuxContrato.Add(lAux);
                }

                foreach (ClienteParametroBMFInstrumentoInfo info in lListInstrumento)
                {
                    lRequestInstrumento.LimiteBMFInstrumento = info;

                    var lAux = llistAuxContrato.Find(aux => { return(aux.Sentido == info.Sentido.ToString() && aux.Contrato == info.Instrumento.Substring(0, 3)); });

                    if (lAux != null)
                    {
                        lRequestInstrumento.LimiteBMFInstrumento.IdClienteParametroBMF = lAux.IdClienteParametroBMF;
                    }

                    lServico.AtualizarLimiteInstrumentoBMF(lRequestInstrumento);
                }

                base.RegistrarLogInclusao(new Contratos.Dados.Cadastro.LogIntranetInfo()
                {   //--> Registrando o Log.
                    CdBovespaClienteAfetado = this.GetCodBmf,
                    DsObservacao            = string.Concat("Contratos Antigos: ", lAntigoStatusContratos, " Instrumentos Antigos: ", lAntigoStatusInstrumentos) +
                                              string.Concat(" Contratos Novos: ", lNovoStatusContratos, " Instrumentos Novos: ", lNovoStatusInstrumentos)
                });


                ListarLimiteBMFRequest lRequest = new ListarLimiteBMFRequest();

                lRequest.Account = GetCodBmf;

                ListarLimiteBMFResponse lResponse = lServico.ObterLimiteBMFCliente(lRequest);

                Session["LimitesInstrumento_" + GetCodBmf] = Session["ListaLimitesInstrumentos_" + GetCodBmf] = null;
                Session["LimitesContrato_" + GetCodBmf]    = Session["ListaLimites_" + GetCodBmf] = null;

                if (lResponse.ListaLimites != null && lResponse.ListaLimitesInstrumentos != null)
                {
                    Session["LimitesContrato_" + GetCodBmf]    = Session["ListaLimites_" + GetCodBmf] = lResponse.ListaLimites;
                    Session["LimitesInstrumento_" + GetCodBmf] = Session["ListaLimitesInstrumentos_" + GetCodBmf] = lResponse.ListaLimitesInstrumentos;
                }

                /*
                 * ILimiteManager lmtMng     = Ativador.Get<ILimiteManager>();
                 * ReloadLimitsResponse resp = new ReloadLimitsResponse();
                 * ReloadLimitsRequest req   = new ReloadLimitsRequest();
                 * req.ReloadSecurityList    = false; // true: para forçar o recarregamento de cadastro de papeis / false para carregar somente parâmetros e limites (mais rápido)
                 * lmtMng.ReloadLimitStructures(req);
                 */
                lRetorno = RetornarSucessoAjax("Limites BMF configurados com sucesso.");
            }
            catch (Exception ex)
            {
                RetornarErroAjax("Erro ao Salvar limites BMF", ex);
            }

            return(lRetorno);
        }