Пример #1
0
        /// <summary>
        /// Exclui uma rota do banco de dados ou exclusao logica
        /// </summary>
        /// <param name="rota">Objeto rota com id valida</param>
        /// <returns></returns>
        public bool Excluir(Rota rota)
        {
            _bd = new Persistencia();
            try
            {
                _bd.Cmd.Parameters.AddWithValue("@id", rota.Id);

                _bd.Cmd.CommandText = @"DELETE FROM rotasColeta WHERE id=@id";
                _bd.ExecuteNonQuery();

            }
            catch (Exception)
            {
                try
                {
                    _bd.Cmd.CommandText = @"UPDATE rotasColeta SET excluida = @excluir WHERE id=@id";
                    _bd.Cmd.Parameters.AddWithValue("@excluir", true);//desativa!
                    _bd.ExecuteNonQuery();
                }
                catch (Exception)
                {

                    return false;
                }
            }
            return true;
        }
Пример #2
0
        /// <summary>
        /// Exclui uma Conta de Caixa do banco de dados 15/04/2014
        /// </summary>
        /// <param name="rota">Objeto conta de caixa</param>
        /// <param name="notificacao">Informativo sobre a operacao </param>
        /// <returns>verdadeiro em caso de exclusao com sucesso</returns>
        public bool Excluir(Rota rota, out Notificacao notificacao)
        {
            if (rota.Id <= 0)
            {
                notificacao = new Notificacao("Não foi possivel identificar o codigo da Rota a ser excluido", 'e');
                return false;
            }

            if (new RotaBD().Excluir(rota))
            {
                notificacao = new Notificacao("Rota excluida com sucesso", 's');
                return true;
            }
            notificacao = new Notificacao("Não foi possivel excluir a Rota informada, tente novamente, se o erro persistir contate o adminsitrador", 'e');
            return false;
        }
Пример #3
0
        /// <summary>
        /// Atualiza uma rota no banco de dados
        /// </summary>
        /// <param name="rota">Objeto rota com parametros validos</param>
        /// <returns>verdadeiro em caso de sucesso</returns>
        public bool Atualizar(Rota rota)
        {
            _bd = new Persistencia();
            try
            {
                _bd.Cmd.CommandText = @"UPDATE rotasColeta SET descricao = @nome WHERE id=@id";
                _bd.Cmd.Parameters.AddWithValue("@id", rota.Id);
                _bd.Cmd.Parameters.AddWithValue("@nome", rota.Descricao);
                _bd.ExecuteNonQuery();

            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }
Пример #4
0
        /// <summary>
        /// recupera uma Rota do banco de dados 15/04/2014
        /// </summary>
        /// <param name="rota">objeto Rota com id desejada</param>
        /// <param name="notificacao"> </param>
        /// <param name="completa">Traz os endereços da rota </param>
        /// <returns>Dados do contato do banco de dados</returns>
        public bool Recuperar(Rota rota, out Notificacao notificacao, bool completa = false)
        {
            if (rota.Id <= 0)
            {
                notificacao = new Notificacao("Não foi possivel identificar o codigo da Rota a ser recuperada", 'e');
                return false;
            }

            if (!new RotaBD().Recuperar(rota))
            {
                notificacao = new Notificacao("Problema com Banco de Dados, notifique o administrador", 'e');
                return false;
            }

            if (completa)
            {
                rota.Enderecos = new List<Endereco>();//limpa a lista e retorna ela vazia
                if (!new RotaBD().RecuperarEnderecos(rota))
                {
                    notificacao = new Notificacao("Rota foi recuperada mas houve erro no banco de dados ao recuperar os endereços, notifique o administrador do sistema", 'e');
                    return false;
                }

                foreach (Endereco endereco in rota.Enderecos)
                {
                    //recupera minimo do endereco!

                    if (!new Pessoa.EnderecoCtr().Recuperar(endereco, out notificacao, true,true))//se houver erro limpa lista de rotas e retorna falso!
                    {
                        notificacao = new Notificacao("Rota foi recuperada mas houve erro no banco de dados ao recuperar os dados dos endereços, notifique o administrador do sistema", 'e');
                        rota.Enderecos = new List<Endereco>();//limpa a lista e retorna ela vazia
                        return false;
                    }
                }

            }

            notificacao = new Notificacao("Rota recuperada com sucesso", 's');
            return true;
        }
Пример #5
0
        /// <summary>
        /// Grava uma Rota inserindo ou atualizando 15/04/2014
        /// </summary>
        /// <param name="rota">objeto Rota</param>
        /// <param name="notificacoes">mensagens de retorno </param>
        /// <returns>verdadeiro em caso de sucesso</returns>
        public bool Gravar(Rota rota, out List<Notificacao> notificacoes)
        {
            bool cadastro = rota.Id == 0;//para informar se

            rota.Descricao = rota.Descricao.ToUpper().Trim();// padrao maiusculo e sem espaços laterais

            notificacoes = ValidaCampos(rota);

            if (notificacoes.Count > 0)//este ponto identifica erros de validacao
                return false;

            if (!(cadastro ? new RotaBD().Inserir(rota) : new RotaBD().Atualizar(rota)))
            {
                notificacoes.Add(new Notificacao("Erro de banco de dados, notifique o administrador", 'e'));
                return false;
            }

            notificacoes.Add(cadastro
                                 ? new Notificacao("Rota cadastrada com Sucesso", 's')
                                 : new Notificacao("Rota atualizada com Sucesso", 's'));
            return true;
        }
Пример #6
0
        /// <summary>
        /// recupera as Id dos endereços da rota
        /// </summary>
        /// <param name="rota">Objeto Rota com Id desejada</param>
        /// <returns>verdadeiro se não houver erros</returns>
        public bool RecuperarEnderecos(Rota rota)
        {
            _bd = new Persistencia();
            try
            {
                _bd.Cmd.CommandText = @"Select fornecedor_id, endereco_id from enderecosRota where rota_id = @rotaId";
                _bd.Cmd.Parameters.AddWithValue("@rotaId", rota.Id);

                DataTable dadosBd = _bd.ExecuteReader();

                foreach (DataRow endereco in dadosBd.Rows)
                {
                    rota.Enderecos.Add(new Endereco(Convert.ToInt32(endereco["endereco_id"].ToString()), new Pessoa(Convert.ToInt32(endereco["fornecedor_id"].ToString()))));
                }
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }
Пример #7
0
        /// <summary>
        /// Carrega dados de uma rota
        /// </summary>
        /// <param name="rota">Objeto rota com parametros validos</param>
        /// <returns>verdadeiro em caso de sucesso</returns>
        public bool Recuperar(Rota rota)
        {
            _bd = new Persistencia();
            try
            {
                _bd.Cmd.CommandText = @"Select descricao from rotasColeta where id = @id";
                _bd.Cmd.Parameters.AddWithValue("@id", rota.Id);

                DataTable dadosBd = _bd.ExecuteReader();

                rota.Descricao = dadosBd.Rows[0]["descricao"].ToString();
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }
Пример #8
0
        /// <summary>
        /// Insere uma nova Rota no Banco de dados
        /// </summary>
        /// <param name="rota">Objeto rota com parametros validos</param>
        /// <returns>verdadeiro em caso de sucesso</returns>
        public bool Inserir(Rota rota)
        {
            _bd = new Persistencia();
            try
            {
                _bd.Cmd.CommandText = @"INSERT INTO rotasColeta (descricao) VALUES (@nome); SELECT LAST_INSERT_ID()";
                _bd.Cmd.Parameters.AddWithValue("@nome", rota.Descricao);

                rota.Id = Convert.ToInt32(_bd.ExecuteScalar());//recupera id nova!

            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }
Пример #9
0
 public EnderecoRota(int id, Pessoa pes, Rota rota)
     : base(id,pes)
 {
     _rota = rota;
 }
Пример #10
0
 /// <summary>
 /// Checa se a descrição ja existe evitando duplicidade de conta!
 /// </summary>
 /// <param name="conta">conta a ser gravada!</param>
 /// <returns></returns>
 private bool CausaDuplicidade(Rota conta)
 {
     var lista = BuscaDescricao(conta.Descricao);
     if (lista.Count > 0)
         if (lista[0].Descricao == conta.Descricao && lista[0].Id != conta.Id)//causa duplicidade
             return true;
     //se a id for a mesma significa que é update, ou seja a descricao será igual e pode ser aceita,
     //agora se a id for diferente e a descrição for igual deve se considerar duplicado!
     return false;
 }
Пример #11
0
        /// <summary>
        /// traz uma lista de erros das validacoes do campos informados 15/04/2014
        /// </summary>
        /// <param name="rota">Obj conta Caixa</param>
        /// <returns>Lista de Erros</returns>
        public List<Notificacao> ValidaCampos(Rota rota)
        {
            var list = new List<Notificacao>();

            if (rota.Descricao.Length < 3)
                list.Add(new Notificacao("A descrição deve conter pelo menos 3 caracteres", 'e'));

            if (CausaDuplicidade(rota))
                list.Add(new Notificacao("A descrição informada já existe, por favor escolha uma diferete", 'e'));

            return list;
        }
Пример #12
0
        protected List<Notificacao> notificacoes = new List<Notificacao>(); //notificações

        #endregion Fields

        #region Methods

        public void BtnOpcoes(object sender, CommandEventArgs e)
        {
            switch (e.CommandName)
            {
                case "trocarAba":
                    {
                        tab.Value = tab.Value == "a" ? "b" : "a";
                        boxRotas.Visible = tab.Value == "a";
                        boxEnderecos.Visible = tab.Value == "b";

                        if (boxRotas.Visible)//gereciar rotas
                        {
                            ListarRotas();
                        }
                        else//gerenciar enderecos rotas
                        {
                            ddlRotas.DataSource = new RotaCtrl().BuscaDescricao();
                            ddlRotas.DataValueField = "Id";
                            ddlRotas.DataTextField = "Descricao";
                            ddlRotas.DataBind();
                            ListarEnderecosRota();
                        }

                        ListarNotificacoes();
                        LimparCampos();//zera rota id também!
                    }
                    break;
                case "gravar":
                    {
                        var rota = new Rota(Convert.ToInt32(rotaId.Value), ttbDescricao.Text);

                        if (new RotaCtrl().Gravar(rota, out notificacoes))
                        {
                            LimparCampos();
                            ListarRotas();
                        }

                        ListarNotificacoes();

                    } break;
                case "cancelar":
                    {
                        LimparCampos();
                        ListarRotas();
                        ListarNotificacoes();
                    } break;
                case "remover":
                    {
                        Notificacao notificacao;
                        var rota = new Rota(Convert.ToInt32(rotaId.Value));

                        bool excluiu = new RotaCtrl().Excluir(rota, out notificacao);
                        notificacoes.Add(notificacao);

                        if (excluiu)
                        {
                            LimparCampos();//zera id e limpa caso o amado usuário tenha solicitado edicao antes de excluir a categoria...
                            ListarRotas();
                        }

                        ListarNotificacoes();
                    } break;
                case "editar":
                    {
                        Notificacao notificacao;
                        var rota = new Rota(Convert.ToInt32(e.CommandArgument));

                        bool recuperou = new RotaCtrl().Recuperar(rota, out notificacao);

                        if (recuperou)
                        {
                            btnCancelar.Visible = true;
                            rotaId.Value = rota.Id.ToString();//salva a id em edicao
                            ttbDescricao.Text = rota.Descricao;//exibe descricao selecionada
                        }
                        else
                        {//informa o erro
                            notificacoes.Add(notificacao);
                        }
                        ListarRotas();
                        ListarNotificacoes();

                    } break;

                case "AddRota":
                    {
                        Notificacao notificacao;
                        var enderecoRota = new EnderecoRota(Convert.ToInt32(e.CommandArgument),
                                                            new Pessoa(Convert.ToInt32(pesId.Value)),
                                                            new Rota(Convert.ToInt32(ddlRotas.SelectedValue)));

                        if(!new EnderecoRotaCtrl().AdicionarEndereco(enderecoRota, out notificacao))
                        {
                            notificacoes.Add(notificacao);
                        }
                        ListarEnderecosRota();//re lista as rotas
                        ListarEnderecosPessoa();// re lista as pessoas
                        ListarNotificacoes();// re lista as notificacoes
                    } break;
                case "RemoveRota":
                    {
                        Notificacao notificacao;
                        string[] ids = e.CommandArgument.ToString().Split(',');
                        var enderecoRota = new EnderecoRota(Convert.ToInt32(ids[0]),
                                                            new Pessoa(Convert.ToInt32(ids[1])),
                                                            new Rota(Convert.ToInt32(ddlRotas.SelectedValue)));

                        if (!new EnderecoRotaCtrl().RemoverEndereco(enderecoRota, out notificacao))
                        {
                            notificacoes.Add(notificacao);
                        }
                        ListarEnderecosRota();//re lista as rotas
                        ListarEnderecosPessoa();// re lista as pessoas
                        ListarNotificacoes();// re lista as notificacoes

                    } break;
            }
        }
Пример #13
0
        public void ListarEnderecosRota()
        {
            Notificacao notificacao;

            var rota = new Rota(Convert.ToInt32(ddlRotas.SelectedValue));
            //recupera a rota e seus endereços

            if (!new RotaCtrl().Recuperar(rota, out notificacao, true))
            {
                notificacoes.Add(notificacao);//acrescenta os erros ref a operacao
                rpEnderecosRota.Visible = false;
            }

            enderecosRota = rota.Enderecos;//seta endereços na variavel global para remover dos enderecos pessoas
            rpEnderecosRota.Visible = enderecosRota.Count > 0;
            rpEnderecosRota.DataSource = enderecosRota;
            rpEnderecosRota.DataBind();
            if (rota.Enderecos.Count <= 0)
                notificacoes.Add(new Notificacao("A Rota informada não tem endereços cadastrados<br/> aproveite e cadastre agora mesmo", 'i'));
        }