示例#1
0
        /// <summary>
        /// Remove uma relação fundo, categoria, subcategoria
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public FundoCategoriaSubCategoriaResponse Remover(FundoCategoriaSubCategoriaRequest request)
        {
            var lRetorno = new FundoCategoriaSubCategoriaResponse();

            try
            {
                var lAcessaDados = new AcessaDados();

                lAcessaDados.ConnectionStringName = "GradualFundosAdm";

                using (var cmd = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_fundo_categoria_sub_categoria_del"))
                {
                    #region Adicionar Parâmetros
                    lAcessaDados.AddInParameter(cmd, "@IdFundoCadastro", DbType.String, request.IdFundoCadastro);
                    lAcessaDados.AddInParameter(cmd, "@IdFundoCategoria", DbType.String, request.IdFundoCategoria);
                    lAcessaDados.AddInParameter(cmd, "@IdFundoSubCategoria", DbType.String, request.IdFundoSubCategoria);
                    #endregion

                    lAcessaDados.ExecuteNonQuery(cmd);

                    lRetorno.StatusResposta = OMS.Library.MensagemResponseStatusEnum.OK;
                }
            }
            catch (Exception ex)
            {
                lRetorno.DescricaoResposta = ex.StackTrace;
                lRetorno.StatusResposta    = OMS.Library.MensagemResponseStatusEnum.ErroPrograma;
                GLogger.Error("Erro encontrado no método FundoCategoriaSubCategoriaDB.Remover", ex);
            }

            return(lRetorno);
        }
示例#2
0
        /// <summary>
        /// Busca todos os fundos a partir da categoria e subcategoria informadas, além de trazer todos os demais fundos, utilizando a flag 'Pertence' para distinguir quais pertencem
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public FundoCategoriaSubCategoriaResponse BuscarFundosPorCategoriaXSubCategoriaTodos(FundoCategoriaSubCategoriaRequest request)
        {
            var lRetorno = new FundoCategoriaSubCategoriaResponse();

            try
            {
                var lAcessaDados = new AcessaDados();

                lAcessaDados.ConnectionStringName = "GradualFundosAdm";

                using (var cmd = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_fundos_por_categoria_subcategoria_sel_todos"))
                {
                    #region Adicionar Parâmetros
                    lAcessaDados.AddInParameter(cmd, "@IdFundoCategoria", DbType.String, request.IdFundoCategoria);
                    lAcessaDados.AddInParameter(cmd, "@IdFundoSubCategoria", DbType.String, request.IdFundoSubCategoria);
                    #endregion

                    var table = lAcessaDados.ExecuteDbDataTable(cmd);

                    lRetorno.ListaFundos = new List <CadastroFundoInfo>();

                    #region Preenchimento Retorno

                    //preenche lista de retorno
                    foreach (DataRow dr in table.Rows)
                    {
                        var itemLista = new CadastroFundoInfo();

                        itemLista.IdFundoCadastro = dr["IdFundoCadastro"].DBToInt32();
                        itemLista.NomeFundo       = dr["NomeFundo"].DBToString();
                        itemLista.Pertence        = (dr["Pertence"].DBToInt32() == 1);

                        lRetorno.ListaFundos.Add(itemLista);
                    }
                    #endregion

                    lRetorno.StatusResposta = OMS.Library.MensagemResponseStatusEnum.OK;
                }
            }
            catch (Exception ex)
            {
                lRetorno.DescricaoResposta = ex.StackTrace;
                lRetorno.StatusResposta    = OMS.Library.MensagemResponseStatusEnum.ErroPrograma;
                GLogger.Error("Erro encontrado no método FundoCategoriaDB.Buscar", ex);
            }

            return(lRetorno);
        }
示例#3
0
        /// <summary>
        /// Atualizar os relacionamentos Fundos x Categorias x SubCategorias
        /// </summary>
        /// <returns></returns>
        public string ResponderAtualizarRelacionamentoFundos()
        {
            try
            {
                var parametros = GetParamAtualizarRelacionamentoFundos;

                var lReqJson = JsonConvert.DeserializeObject <List <FundoCategoriaSubCategoriaJsonRequest> >(parametros);

                var listaRelacionamentoRemover = new List <FundoCategoriaSubCategoriaRequest>();
                var listaFundosJaRelacionados  = new List <FundoCategoriaSubCategoriaRequest>();

                //preenche lista de relacionamentos a adicionar
                var listaRelacionamentoAdicionar = lReqJson.Select(item => new FundoCategoriaSubCategoriaRequest
                {
                    IdFundoCadastro = item.IdFundoCadastro, IdFundoCategoria = GetIdFundoCategoria, IdFundoSubCategoria = GetIdFundoSubCategoria
                }).ToList();

                #region Seleciona fundos já relacionados

                var lRequest = new FundoCategoriaSubCategoriaRequest
                {
                    IdFundoCategoria    = GetIdFundoCategoria,
                    IdFundoSubCategoria = GetIdFundoSubCategoria
                };


                var lResponse = base.BuscarFundosPorCategoriaSubCategoria(lRequest);

                var lTempJaRelacionados = new TransporteCadastroFundos().TraduzirLista(lResponse.ListaFundos);

                //preenche lista de relacionamentos a adicionar
                foreach (var item in lTempJaRelacionados)
                {
                    var req = new FundoCategoriaSubCategoriaRequest
                    {
                        IdFundoCadastro     = item.IdFundoCadastro,
                        IdFundoCategoria    = GetIdFundoCategoria,
                        IdFundoSubCategoria = GetIdFundoSubCategoria
                    };

                    listaFundosJaRelacionados.Add(req);
                }
                #endregion

                //preenche lista de relacionamentos a remover
                foreach (var item in listaFundosJaRelacionados)
                {
                    //caso o elemento não conste na lista de adicionar, o mesmo deve ser removido
                    if (!listaRelacionamentoAdicionar.Any(p => p.IdFundoCadastro == item.IdFundoCadastro))
                    {
                        listaRelacionamentoRemover.Add(new FundoCategoriaSubCategoriaRequest
                        {
                            IdFundoCategoria    = item.IdFundoCategoria,
                            IdFundoSubCategoria = item.IdFundoSubCategoria,
                            IdFundoCadastro     = item.IdFundoCadastro
                        });
                    }
                }

                //adiciona todos os relacionamentos que constam na lista
                foreach (var item in listaRelacionamentoAdicionar)
                {
                    AdicionarRelacionamentosFundosCategoriasSubCategorias(item);

                    //antes de gravar o log, verifica se o registro inserido é novo
                    //caso contrário, não deve ser logado
                    if (item.IdFundoCategoriaSubCategoria > 0)
                    {
                        //grava log na base e no log4net
                        InserirLog(new FundoCategoriaSubCategoriaLogRequest
                        {
                            IdFundoCadastro     = item.IdFundoCadastro,
                            IdFundoCategoria    = item.IdFundoCategoria,
                            IdFundoSubCategoria = item.IdFundoSubCategoria,
                            UsuarioLogado       = UsuarioLogado.Nome,
                            DtAlteracao         = DateTime.Now,
                            TipoTransacao       = "INSERT"
                        });
                    }
                }
                //remove todos os relacionamentos que constam na lista de remoção
                foreach (var item in listaRelacionamentoRemover)
                {
                    RemoverRelacionamentosFundosCategoriasSubCategorias(item);

                    //grava log na base e no log4net
                    InserirLog(new FundoCategoriaSubCategoriaLogRequest
                    {
                        IdFundoCadastro     = item.IdFundoCadastro,
                        IdFundoCategoria    = item.IdFundoCategoria,
                        IdFundoSubCategoria = item.IdFundoSubCategoria,
                        UsuarioLogado       = UsuarioLogado.Nome,
                        DtAlteracao         = DateTime.Now,
                        TipoTransacao       = "DELETE"
                    });
                }
            }
            catch (Exception ex)
            {
                Logger.Error("Erro ao carregar os dados de fundos na tela", ex);

                return(RetornarErroAjax("Erro no método ResponderAtualizarRelacionamentoFundos ", ex));
            }

            var response = new FundoCategoriaSubCategoriaResponse
            {
                StatusResposta = MensagemResponseStatusEnum.OK
            };

            return(RetornarSucessoAjax(response.StatusResposta.ToString()));
        }