internal Filial BuscarFilialEmail(int Codigo)
        {
            b.getComandoSQL().Parameters.Clear();

            b.getComandoSQL().CommandText = @"select f.fil_codigo, f.fil_razao, f.fil_cnpj, f.fil_stativo, e.end_codigo, e.end_logradouro, e.end_numero, e.end_referencia, e.end_bairro,  e.end_cep,              
                                                e.end_cidade, e.end_estado, p.pes_codigo, p.pes_nome, r.reg_codigo, 
                                                r.reg_descricao, r.reg_stativo, p.pes_email, pr.pes_email as emailReg, pr.pes_nome as gerente
                                              from Filial f 
                                              inner join Endereco e on f.end_codigo = e.end_codigo
                                              inner join Pessoa p on f.pes_codigo = p.pes_codigo
                                              inner join Regional r on f.reg_codigo = r.reg_codigo
                                              inner join Pessoa pr on pr.pes_codigo = r.pes_codigo
                                              where f.fil_stativo = 1 and f.fil_codigo = @codigo;";
            b.getComandoSQL().Parameters.AddWithValue("@codigo", Codigo);

            DataTable dt = b.ExecutaSelect();
            Filial    f  = null;

            if (dt.Rows.Count > 0)
            {
                f = TableToListCompleta(dt).FirstOrDefault();

                f.GetResponsavel().SetEmail(dt.Rows[0]["pes_email"].ToString());
                f.GetRegional().GetPessoa().SetEmail(dt.Rows[0]["emailReg"].ToString());
                f.GetRegional().GetPessoa().SetNome(dt.Rows[0]["gerente"].ToString());
            }

            return(f);
        }
        internal Boolean Gravar(Filial Filial)
        {
            Boolean OK = false;

            if (Filial.GetCodigo() == 0)
            {
                Endereco    end         = Filial.GetEndereco();
                EnderecoDAO ctlEndereco = new EnderecoDAO();
                int         Codigo      = ctlEndereco.Gravar(end);

                if (Codigo > 0)
                {
                    b.getComandoSQL().Parameters.Clear();

                    b.getComandoSQL().CommandText = @"insert into Filial (fil_razao, fil_cnpj, fil_stativo, end_codigo, pes_codigo, reg_codigo) values (@razao, @cnpj, @ativo ,@endcodigo, @gerente, @regional);";

                    b.getComandoSQL().Parameters.AddWithValue("@razao", Filial.GetRazao());
                    b.getComandoSQL().Parameters.AddWithValue("@cnpj", Filial.GetCnpj());
                    b.getComandoSQL().Parameters.AddWithValue("@ativo", Filial.GetStativo());
                    b.getComandoSQL().Parameters.AddWithValue("@endcodigo", Codigo);
                    b.getComandoSQL().Parameters.AddWithValue("@gerente", Filial.GetResponsavel().GetCodigo());
                    b.getComandoSQL().Parameters.AddWithValue("@regional", Filial.GetRegional().GetCodigo());

                    OK = b.ExecutaComando(true) == 1;

                    if (OK)
                    {
                        b.FinalizaTransacao(true);
                    }
                    else
                    {
                        b.FinalizaTransacao(false);
                    }
                }
                else
                {
                    b.FinalizaTransacao(false);
                }
            }
            else
            {
                EnderecoDAO ctlEndereco = new EnderecoDAO();


                int Codigo = ctlEndereco.Gravar(Filial.GetEndereco());

                if (Codigo > 0)
                {
                    b.getComandoSQL().Parameters.Clear();

                    b.getComandoSQL().CommandText = @"update Filial set fil_razao = @razao, fil_cnpj = @cnpj, fil_stativo = @ativo, pes_codigo = @codigoPes, reg_codigo = @regional, end_codigo = @endereco where fil_codigo = @codigo;";

                    b.getComandoSQL().Parameters.AddWithValue("@razao", Filial.GetRazao());
                    b.getComandoSQL().Parameters.AddWithValue("@cnpj", Filial.GetCnpj());
                    b.getComandoSQL().Parameters.AddWithValue("@ativo", Filial.GetStativo());
                    b.getComandoSQL().Parameters.AddWithValue("@codigo", Filial.GetCodigo());
                    b.getComandoSQL().Parameters.AddWithValue("@codigoPes", Filial.GetResponsavel().GetCodigo());
                    b.getComandoSQL().Parameters.AddWithValue("@regional", Filial.GetRegional().GetCodigo());
                    b.getComandoSQL().Parameters.AddWithValue("@endereco", Codigo);

                    OK = b.ExecutaComando(true) == 1;

                    if (OK)
                    {
                        b.FinalizaTransacao(true);
                    }
                    else
                    {
                        b.FinalizaTransacao(false);
                    }
                }
            }


            return(OK);
        }