private bool CarregaProcessoModal(int codigo)
    {
        try
        {
            Recurso        rec          = new Recurso();
            Recurso        recurso      = new Recurso();
            RecursoDB      recDB        = new RecursoDB();
            Assunto        assunto      = new Assunto();
            AssuntoDB      assuntoDB    = new AssuntoDB();
            DataProcesso   dataProcesso = new DataProcesso();
            DataProcessoDB dataDB       = new DataProcessoDB();
            Movimentacao   mov          = new Movimentacao();
            Pessoa         pes          = new Pessoa();
            Advogado       adv          = new Advogado();
            Vara           vara         = new Vara();
            PosicaoCliente pos          = new PosicaoCliente();
            Cidade         cid          = new Cidade();
            CidadeDB       cidDB        = new CidadeDB();
            Classe         cla          = new Classe();
            Processo       pro          = new Processo();
            ProcessoDB     proDB        = new ProcessoDB();

            pro = proDB.Select(codigo);

            txtNumero.Text       = pro.NumeroProcesso;
            txtDescricao.Text    = pro.Descricao;
            txtObservacao.Text   = pro.Observacao;
            txtDataCadastro.Text = pro.DataCriacao.ToString("dd/MM/yyyy");

            Function.CarregaItemDDLByCodigo(ddlVara, pro.Vara.Codigo);

            cid = cidDB.SelectCidadePessoa(pro.Comarca.Codigo);
            Function.CarregaItemDDLByCodigo(ddlEstado, cid.Estado.Codigo);

            CarregaCidade(cid.Estado.Codigo);
            Function.CarregaItemDDLByCodigo(ddlCidade, pro.Comarca.Codigo);

            Function.CarregaItemDDLByCodigo(ddlClasse, pro.Classe.Codigo);

            Function.CarregaItemDDLByCodigo(ddlPosicao, pro.PosicaoCliente.Codigo);

            assunto         = assuntoDB.Select(pro.Assunto.Codigo);
            txtAssunto.Text = assunto.Descricao;

            Function.CarregaItemDDLByCodigo(ddlCliente, pro.PessoaCliente.Codigo);

            //selecionar dataaudiencia
            dataProcesso = dataDB.SelectByProcesso(codigo);
            if (dataProcesso != null)
            {
                txtDataProcesso.Text  = dataProcesso.DataAudiencia.ToString("dd/MM/yyyy");
                txtHoraAudiencia.Text = dataProcesso.DataAudiencia.ToString("t");
            }
            else
            {
                txtDataProcesso.Text  = string.Empty;
                txtHoraAudiencia.Text = string.Empty;
            }
            if (pro.Recurso != null)
            {
                txtCamara.Enabled   = true;
                ddlTribunal.Enabled = true;
                rec = recDB.Select(pro.Recurso.Codigo);
                int tribunal = rec.CodigoTribunal;
                int camara   = rec.CodigoCamara;

                rblRecurso.Items[0].Selected = false;
                rblRecurso.Items[1].Selected = true;

                Function.CarregaItemDDLByCodigo(ddlTribunal, tribunal);
                rec            = recDB.SelectCamara(camara);
                txtCamara.Text = rec.Camara;
            }
            else
            {
                txtCamara.Text = string.Empty;
                Function.LimpaDDL(ddlTribunal);
                txtCamara.Enabled            = false;
                ddlTribunal.Enabled          = false;
                rblRecurso.Items[0].Selected = true;
                rblRecurso.Items[1].Selected = false;
            }
            return(true);
        }
        catch (Exception)
        {
            return(false);
        }
    }
    public void CarregaDetalhesProcesso(int id)
    {
        Recurso           rec           = new Recurso();
        Recurso           recurso       = new Recurso();
        RecursoDB         recDB         = new RecursoDB();
        Assunto           assunto       = new Assunto();
        AssuntoDB         assuntoDB     = new AssuntoDB();
        DataProcesso      dataProcesso  = new DataProcesso();
        DataProcessoDB    dataDB        = new DataProcessoDB();
        Movimentacao      mov           = new Movimentacao();
        MovimentacaoDB    movDB         = new MovimentacaoDB();
        Pessoa            pes           = new Pessoa();
        PessoaDB          pesDB         = new PessoaDB();
        ClienteFisico     clifisico     = new ClienteFisico();
        ClienteFisicoDB   clifisicoDB   = new ClienteFisicoDB();
        ClienteJuridico   clijuridico   = new ClienteJuridico();
        ClienteJuridicoDB clijuridicoDB = new ClienteJuridicoDB();
        Contato           contato       = new Contato();
        ContatoDB         contatoDB     = new ContatoDB();
        Advogado          adv           = new Advogado();
        Vara             vara           = new Vara();
        VaraDB           varaDB         = new VaraDB();
        PosicaoCliente   pos            = new PosicaoCliente();
        PosicaoClienteDB posDB          = new PosicaoClienteDB();
        Cidade           cid            = new Cidade();
        CidadeDB         cidDB          = new CidadeDB();
        Estado           est            = new Estado();
        EstadoDB         estDB          = new EstadoDB();
        Classe           cla            = new Classe();
        ClasseDB         claDB          = new ClasseDB();
        Processo         pro            = new Processo();
        ProcessoDB       proDB          = new ProcessoDB();


        pro = proDB.Select(id);

        pes = pesDB.SelectGenerico(pro.PessoaCliente.Codigo);
        if (pes.Nivel == 3)
        {
            clifisico = clifisicoDB.Select(pes.Codigo);
            contato   = contatoDB.SelectContato(clifisico.ContatoPessoa.Codigo);
            lblClienteDetalhes.Text = contato.Nome;
        }
        else if (pes.Nivel == 4)
        {
            clijuridico             = clijuridicoDB.Select(pes.Codigo);
            contato                 = contatoDB.SelectContato(clijuridico.ContatoPessoa.Codigo);
            lblClienteDetalhes.Text = contato.Nome;
        }


        lblNumeroDetalhes.Text       = pro.NumeroProcesso;
        lblDataCadastroDetalhes.Text = pro.DataCriacao.ToString("dd/MM/yyyy");
        lblObservacaoDetalhes.Text   = pro.Observacao;
        lblDescricaoDetalhes.Text    = pro.Descricao;


        assunto = assuntoDB.Select(pro.Assunto.Codigo);
        lblAssuntoDetalhes.Text = assunto.Descricao;

        mov = movDB.Select(pro.Movimentacao.Codigo);
        lblMovDetalhes.Text = mov.Descricao;

        vara = varaDB.Select(pro.Vara.Codigo);
        lblVaraDetalhes.Text = vara.Descricao;

        pos = posDB.Select(pro.PosicaoCliente.Codigo);
        lblPosicaoDetalhes.Text = pos.Descricao;

        cla = claDB.Select(pro.Classe.Codigo);
        lblClasseDetalhes.Text = cla.Descricao;

        dataProcesso = dataDB.SelectByProcesso(id);
        if (dataProcesso != null)
        {
            lblDataAudiencia.Text         = dataProcesso.DataAudiencia.ToString("dd/MM/yyyy");
            lblHoraAudienciaDetalhes.Text = dataProcesso.DataAudiencia.ToString("t");
        }
        if (pro.Recurso != null)
        {
            lblRecursoDetalhes.Text = "Sim";
            recurso = recDB.Select(pro.Recurso.Codigo);
            rec     = recDB.SelectCamara(recurso.CodigoCamara);
            lblCamaraDetalhes.Text = rec.Camara;
            rec = recDB.SelectTribunal(recurso.CodigoTribunal);
            lblTribunalDetalhes.Text = rec.Tribunal;
        }
        else
        {
            lblRecursoDetalhes.Text = "Não";
        }



        cid = cidDB.SelectCidadePessoa(pro.Comarca.Codigo);
        lblComarcaDetalhes.Text = cid.NomeCidade;
        est            = estDB.SelectEstado(cid.Estado.Codigo);
        lblEstado.Text = est.Descricao;
    }
    private bool UpdateProcesso()
    {
        Recurso        rec          = new Recurso();
        Recurso        recurso      = new Recurso();
        RecursoDB      recDB        = new RecursoDB();
        Assunto        assunto      = new Assunto();
        AssuntoDB      assuntoDB    = new AssuntoDB();
        DataProcesso   dataProcesso = new DataProcesso();
        DataProcessoDB dataDB       = new DataProcessoDB();
        Movimentacao   mov          = new Movimentacao();
        Pessoa         pes          = new Pessoa();
        Advogado       adv          = new Advogado();
        Vara           vara         = new Vara();
        PosicaoCliente pos          = new PosicaoCliente();
        Cidade         cid          = new Cidade();
        Classe         cla          = new Classe();
        Processo       pro          = new Processo();
        ProcessoDB     proDB        = new ProcessoDB();

        pro = proDB.Select(Convert.ToInt32(Session["Processo"]));
        int valor = Convert.ToInt32(Session["Processo"]);

        if (pro.Recurso == null)
        {
            if (rblRecurso.SelectedItem.Value == "1")
            {
                rec.Camara = txtCamara.Text;
                recDB.InsertCamara(rec);

                recurso.CodigoCamara   = recDB.GetLastIdCamara(rec.Camara);
                recurso.CodigoTribunal = Convert.ToInt32(ddlTribunal.SelectedItem.Value);

                recDB.InsertRecurso(recurso);
                rec.Codigo  = recDB.GetLastIdRecurso(recurso);
                pro.Recurso = rec;
            }
            else if (rblRecurso.SelectedItem.Value == "0")
            {
                txtCamara.Text = string.Empty;
                Function.LimpaDDL(ddlTribunal);
            }
        }
        else
        {
            rec = recDB.Select(pro.Recurso.Codigo);
            if (rblRecurso.SelectedItem.Value == "1")
            {
                rec.Camara = txtCamara.Text;
                //update
                recDB.UpdateCamara(rec);
                rec.CodigoTribunal = Convert.ToInt32(ddlTribunal.SelectedItem.Value);
                //update
                recDB.UpdateRecurso(rec);
            }
            else if (rblRecurso.SelectedItem.Value == "0")
            {
                txtCamara.Text = string.Empty;
                Function.LimpaDDL(ddlTribunal);
            }
        }
        assunto.Codigo    = pro.Assunto.Codigo;
        assunto.Descricao = txtAssunto.Text;
        //update
        assuntoDB.Update(assunto);

        adv.Codigo         = Convert.ToInt32(Session["Advogado"]);
        pro.PessoaAdvogado = adv;

        vara.Codigo = Convert.ToInt32(ddlVara.SelectedItem.Value);
        pro.Vara    = vara;

        cla.Codigo = Convert.ToInt32(ddlClasse.SelectedItem.Value);
        pro.Classe = cla;

        pos.Codigo         = Convert.ToInt32(ddlPosicao.SelectedItem.Value);
        pro.PosicaoCliente = pos;

        cid.Codigo  = Convert.ToInt32(ddlCidade.SelectedItem.Value);
        pro.Comarca = cid;

        pro.DataCriacao    = Convert.ToDateTime(txtDataCadastro.Text);
        pro.Descricao      = txtDescricao.Text;
        pro.Observacao     = txtObservacao.Text;
        pro.NumeroProcesso = txtNumero.Text;

        pes.Codigo        = Convert.ToInt32(ddlCliente.SelectedItem.Value);
        pro.PessoaCliente = pes;

        //Persistencia
        //Update
        if (proDB.Update(pro))
        {
            //Update cliente
            //dar insert nas tabelas de cliente e na de advogado
            proDB.UpdateClienteProcesso(pro.PessoaCliente.Codigo, Convert.ToInt32(Session["Processo"]));

            dataProcesso = dataDB.SelectByProcesso(pro.Codigo);
            if (dataProcesso != null)
            {
                if (!string.IsNullOrWhiteSpace(txtDataProcesso.Text))
                {
                    //pegar do cadastra processo ja atualizado e dar update
                    pro.Codigo            = Convert.ToInt32(Session["Processo"]);
                    dataProcesso.Processo = pro;
                    TimeSpan hora = Convert.ToDateTime(txtHoraAudiencia.Text).TimeOfDay;
                    DateTime data = Convert.ToDateTime(txtDataProcesso.Text);
                    dataProcesso.DataAudiencia = data + hora;
                    dataDB.Update(dataProcesso);
                }
                else if (string.IsNullOrWhiteSpace(txtDataProcesso.Text))
                {
                    dataDB.Delete(Convert.ToInt32(Session["Processo"]));
                }
            }
            else
            {
                if (!string.IsNullOrWhiteSpace(txtDataProcesso.Text))
                {
                    if (string.IsNullOrWhiteSpace(txtHoraAudiencia.Text))
                    {
                        //msg para entrar com uma hora para o update rolar
                    }
                    else if (!string.IsNullOrWhiteSpace(txtDataProcesso.Text) && !string.IsNullOrWhiteSpace(txtHoraAudiencia.Text))
                    {
                        pro.Codigo = Convert.ToInt32(Session["Processo"]);
                        DataProcesso dataa = new DataProcesso();
                        dataa.Processo = pro;
                        TimeSpan hora = Convert.ToDateTime(txtHoraAudiencia.Text).TimeOfDay;
                        DateTime data = Convert.ToDateTime(txtDataProcesso.Text);
                        dataa.DataAudiencia = data + hora;
                        dataDB.Insert(dataa);
                    }
                }
            }
        }
        lblMensagem.Text = "Dados alterados com sucesso!";
        divStatusPro.Attributes["class"] = "alert alert-success";
        return(true);
    }