Problema em aplicação WebForms

4 views
Skip to first unread message

Jose Carlos Motta

unread,
Oct 13, 2016, 8:23:54 AM10/13/16
to dotn...@googlegroups.com, dotnet-...@googlegroups.com

Pessoal, bom dia. Tudo bom?

Estou com um problema em uma funcionalidade de um sistema que trabalho em C#. Se alguém

puder me ajudar, fico agradecido.

Esse código abaixo é um código de um formulário em que o usuário preenche os dados e 

clica em um botão "Salvar" que fica no final da página que submete o botão e grava 

os dados do formulário no banco.

Quando o usuário clica nesse botão salvar, antes de submeter o Form aparece um 

grid de dados feito em JavaScript que exibe alguns dados e possui 2 controles do 

tipo linkButton. Um botão "Sim" e outro Botão "Não". O problema está nesse botão
 
Não. 

A finalidade dele é permitir para o usuário que o fluxo seja desviado para

o formulário é ele seja salvo normalmente. Ou seja, quando ele clicar no linkButton

"Não", a tela do JavaScript é fechada(A aplicação já faz isso.) e ele volta para o 

formulário " FormPaciente.aspx" onde ele salva ou altera os dados digitados 

anteriormente. Nesse passo, quando ele clica no botão "Salvar" do formulário

o grid em JavaScript não pode ser chamado novamente. Ele está sendo chamado 

toda vez que clica no botão salvar. Não estou conseguindo tratar esse clique no 

Botão Salvar para salvar direto sem chamar o grid em JavaScript. No código abaixo estou

 sinalizando de vermelho o ponto onde é feita chamada do grid JavaScript (A aplicação utiliza 

JQuery) para exibir esse grid. 







 protected void btnSalvar_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid)
                return;

            //Validações preliminares
            DateTime nascimento;
            LinkButton linkButtonS;
            LinkButton linkButtonN;
            if (ddlRacaCor.SelectedValue == RacaCor.INDIGENA)
            {
                if (ddlEtnia.SelectedValue == "-1")
                {
                    ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('Favor informar a etnia.');</script>");
                    return;
                }
            }

            try
            {
                nascimento = DateTime.Parse(tbxDataNascimento.Text);
            }
            catch (InvalidCastException)
            {
                ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('Data de nascimento inválida.');</script>");
                return;
            }

            if ((tbxTelefone.Text == "00000000") || (tbxTelefone.Text == "11111111") || (tbxTelefone.Text == "22222222") || (tbxTelefone.Text == "33333333") || (tbxTelefone.Text == "44444444")
                || (tbxTelefone.Text == "55555555") || (tbxTelefone.Text == "66666666") || (tbxTelefone.Text == "77777777") || (tbxTelefone.Text == "88888888") || (tbxTelefone.Text == "99999999")
                || (tbxTelefone.Text == "12345678"))
            {
                ScriptManager.RegisterStartupScript(Page, typeof(Page), "alert", "alert('Telefone Inválido.');", true);
                return;
            }

            if (new DateTime(DateTime.Today.Subtract(nascimento).Ticks).Year - 1 > 130)
            {
                ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('A idade do paciente não pode ser maior que 130 anos.');</script>");
                return;
            }

            if (new DateTime(DateTime.Today.Subtract(nascimento).Ticks).Year - 1 > 17 && tbxCPF.Text.Trim() == ""
                && (int.Parse(ddlMotivo.SelectedValue) != MotivoCadastro.ESTABELECIMENTO_PRISIONAL && int.Parse(ddlMotivo.SelectedValue) != MotivoCadastro.PROGRAMA_DE_VOLTA_PARA_CASA
                && int.Parse(ddlMotivo.SelectedValue) != MotivoCadastro.QUANTIFICAÇÃO_CARGA_VIRAL_HIV &&
                this.rbtnListNacionalidade.SelectedValue != "E"))
            {
                ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('Paciente maior que 16 anos, favor preencher com um CPF válido.');</script>");
                return;
            }

            if (tbxDataNaturalizacao.Text.Trim() != string.Empty && nascimento.CompareTo(DateTime.Parse(tbxDataNaturalizacao.Text)) > 0)
            {
                ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('A data de naturalização não pode ser anterior a data de nascimento.');</script>");
                return;
            }

            if (tbxDataEntradaBrasil.Text.Trim() != string.Empty && nascimento.CompareTo(DateTime.Parse(tbxDataEntradaBrasil.Text)) > 0)
            {
                ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('A data de entrada no Brasil não pode ser anterior a data de nascimento.');</script>");
                return;
            }

            if (tbxCPF.Text.Trim() != "" && !CPFValido(tbxCPF.Text.ToString()))
            {
                ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('CPF inválido.');</script>");
                return;
            }

            if (tbxDDD.Text.Trim() != "" && tbxTelefone.Text.Trim() == "")
            {
                ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('Favor preencher o campo telefone.');</script>");
                return;
            }

            if (tbxTituloEleitor.Text != "" && tbxSecaoEleitoral.Text.Trim() == "" && tbxZonaEleitoral.Text.Trim() == "")
            {
                ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('Favor preencher todos os campos referentes ao titulo de eleitor.');</script>");
                return;
            }

            if (tbxDataEmissaoCertidao.Text.Trim() != "")
            {
                if (nascimento.CompareTo(DateTime.Parse(tbxDataEmissaoCertidao.Text)) > 0)
                {
                    ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('A data de emissão da certidão não pode ser anterior a data de nascimento.');</script>");
                    return;
                }
            }

            if (tbxDataEmissaoCTPS.Text.Trim() != "")
            {
                if (nascimento.CompareTo(DateTime.Parse(tbxDataEmissaoCTPS.Text)) > 0)
                {
                    ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('A data de emissão da CTPS não pode ser anterior à data de nascimento.');</script>");
                    return;
                }
            }

            if (tbxDataEmissaoIdentidade.Text.Trim() != "")
            {
                if (nascimento.CompareTo(DateTime.Parse(tbxDataEmissaoIdentidade.Text)) > 0)
                {
                    ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('A data de emissão do RG não pode ser anterior à data de nascimento.');</script>");
                    return;
                }
            }

            if (tbxNomeCartorio.Text.Trim() != "")
            {
                Regex reg = new Regex(@"^([a-z]|\s)*$", RegexOptions.IgnoreCase);

                if (!reg.IsMatch(tbxNomeCartorio.Text))
                {
                    ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('Nome do cartório deve contar apenas letras.');</script>");
                    return;
                }
            }
            //====================================================================

            Vida.Model.Logradouro log = LogradouroBLL.LocalizarPorCep(long.Parse(tbxCEP.Text));

            if (log != null)
            {
                if (!PossuiPermissaoAlterarMunicipio())
                {
                    if (!EnderecoPertenceMunicipio(log))
                    {

                        ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "alerta", "alert('Este CEP não pertence ao seu município');", true);
                        return;
                    }
                }
            }
            else
            {
                ScriptManager.RegisterStartupScript(Page, typeof(Page), "alert", "alert('Logradouro não encontrado.');document.getElementById('ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder1_imgBuscarCEP').focus();", true);
                return;
            }

            IVidaServiceFacade ivida = Factory.GetInstance<IVidaServiceFacade>();
            IPaciente ipaciente = Factory.GetInstance<IPaciente>();

            Vida.Model.Paciente paciente = null;
            ControlePaciente controlePaciente = null;
            Endereco endereco = null;

            //Edição de paciente
            if (Request.QueryString["codigo"] != null && Session["PacientesMS"] == null)

            //Se for uma atualização de um registro que existe na base do Vida+
            //if (ViewState["codigoPaciente"] != null)
            {
                IList<Vida.Model.Paciente> p = PacienteBLL.Pesquisar02(tbxNomePaciente.Text.Trim().ToUpper(), tbxNomeMae.Text.Trim().ToUpper(), DateTime.Parse(tbxDataNascimento.Text)).Where(x => x.Codigo != Request.QueryString["codigo"]).ToList();
                gdvPacientes.DataSource = p;
                gdvPacientes.DataBind();
                

                if (p.Count > 0)
                {   
                    //if(IsPostBack)
                       
                        ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>CallColorBox();</script>");

                   
                    
                   
                    
                    
                    //if (Request["url_retorno"] != null)
                    //    ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('Dados salvos com sucesso!');window.location='" + HelperRedirector.DecodeURL(Request["url_retorno"].ToString()) + p[0].Codigo + "';</script>");

                    //else
                    //  ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('Já existe um cadastro igual. Deseja unificar?.');window.location='FormPaciente.aspx?codigo=" + p[0].Codigo + "';</script>");
                    //this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Já existe um cadastro igual. Deseja unificar?')", true);

                    //Session.Remove("PacientesMS");
                    return;
                }

                //string codigoPaciente = (string)ViewState["codigoPaciente"];
                string codigoPaciente = Request.QueryString["codigo"];
                paciente = PacienteBLL.PesquisarCompleto(codigoPaciente);

                controlePaciente = ControlePacienteBLL.PesquisarPorPaciente(paciente); //Factory.GetInstance<IPaciente>().BuscaControlePaciente<ControlePaciente>(paciente.Codigo);
                if (controlePaciente == null)
                    controlePaciente = new ControlePaciente();
                controlePaciente.Controle = 'A';
                controlePaciente.DataOperacao = DateTime.Now;

                paciente.Nome = tbxNomePaciente.Text.ToUpper();
                paciente.NomeSocial = tbxNomeSocial.Text.ToUpper();

                if (chkMaeIgnorada.Checked != true)
                {
                    paciente.NomeMae = tbxNomeMae.Text.ToUpper();
                }
                else
                {
                    paciente.NomeMae = "IGNORADA";
                }
                paciente.DataNascimento = DateTime.Parse(tbxDataNascimento.Text);
                if (chkPaiIgnorado.Checked != true)
                {
                    paciente.NomePai = tbxNomePai.Text.ToUpper();
                }
                else
                {
                    paciente.NomePai = "IGNORADO";
                }
                paciente.Sexo = char.Parse(rbtnListSexo.SelectedValue);
                paciente.RacaCor = new RacaCor();
                paciente.RacaCor.Codigo = ddlRacaCor.SelectedValue;

                if (paciente.RacaCor.Codigo == RacaCor.INDIGENA)
                {
                    paciente.Etnia = new Etnia();
                    paciente.Etnia.Codigo = ddlEtnia.SelectedValue;
                }

                paciente.FrequentaEscola = char.Parse(rbtnListFreqEscola.SelectedValue);
                paciente.Email = tbxEmail.Text;
                paciente.Vivo = cbxVivo.Checked ? Vida.Model.Paciente.VIVO : Vida.Model.Paciente.MORTO;

                if (paciente.Vivo == Vida.Model.Paciente.MORTO)
                {
                    paciente.DataObito = DateTime.Parse(this.tbxDataObito.Text);
                    paciente.NumeroObito = this.tbxNumeroObito.Text;
                }

                switch (rbtnListNacionalidade.SelectedValue)
                {
                    case "B":
                        {
                            if ((paciente.Pais != null) && (paciente.Pais.Codigo != "010") && (paciente.Pais.Codigo != "999"))//Se o paciente for brasileiro, não poderá alterar a nacionalidade
                            {
                                ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('Alteração de Nacionalidade Inválida!');</script>");
                                return;
                            }
                            paciente.Pais = new Pais();
                            paciente.Pais.Codigo = "010";
                            paciente.MunicipioNascimento = new Municipio();
                            paciente.MunicipioNascimento.Codigo = ddlMunicipioNascimento.SelectedValue;
                            break;
                        }
                    case "E": //Estrangeiro
                        {
                            if ((paciente.Pais == null) || (paciente.Pais != null && paciente.Pais.Codigo == "010"))
                            {
                                ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('Alteração de Nacionalidade Inválida!');</script>");
                                return;
                            }
                            paciente.Pais = new Pais();
                            paciente.Pais.Codigo = ddlPaisOrigem.SelectedValue;
                            break;

                        }
                    case "N":
                        {
                            if ((paciente.Pais != null) && (paciente.Pais.Codigo == "010"))
                            {
                                ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('Alteração de Nacionalidade Inválida!');</script>");
                                return;
                            }
                            paciente.Pais = null;
                            break;
                        }
                }

                if (!string.IsNullOrEmpty(this.tbxCPF.Text))
                {
                    Vida.Model.Paciente pacienteCPFjaExistente = PacienteBLL.PesquisarPorCPF(tbxCPF.Text);

                    if (pacienteCPFjaExistente != null && paciente.Codigo != pacienteCPFjaExistente.Codigo)
                    {
                        ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('Já existe um paciente cadastrado com o CPF informado.');</script>");
                        return;
                    }
                }

                //Coloquei as operações de banco ao final
                //pois se não for possível realizar a alteração devido às validações acima
                //estas não serão realizadas
                controlePaciente.Excluido = '0';
                ControlePacienteBLL.Inserir(controlePaciente);

                MotivoCadastroPaciente motivo = MotivocadastroPacienteBLL.PesquisarPorPaciente(paciente, ((Usuario)Session["Usuario"]).Unidade.CNES);

                if (motivo != null)
                {
                    motivo.Motivo = new MotivoCadastro();
                    motivo.Motivo.Codigo = int.Parse(ddlMotivo.SelectedValue);
                    MotivocadastroPacienteBLL.Atualizar(motivo);
                }
                else
                {
                    motivo = new MotivoCadastroPaciente();
                    motivo.Paciente = paciente;
                    motivo.Cnes = ((Usuario)Session["Usuario"]).Unidade.CNES;
                    motivo.Motivo = new MotivoCadastro();
                    motivo.Motivo.Codigo = int.Parse(ddlMotivo.SelectedValue);
                    MotivocadastroPacienteBLL.Cadastrar(motivo);
                }

                paciente.Deficiencia = this.RetornaDeficienciaPaciente();
                PacienteBLL.Atualizar(paciente);

                LogVida logVida = new LogVida(DateTime.Now, (Vida.Model.Usuario)Session["Usuario"], 2, paciente.Codigo);

                StartBackgroundThread(delegate { this.SalvarLog(logVida); });

                #region Alterar posteriormente para um método geral alterar em PacienteBLL
                //Passos comuns ao cadastro e edição
                endereco = EnderecoBLL.PesquisarPorPaciente(paciente);
                if (endereco != null)
                {
                    Vida.Model.Endereco novoEndereco = new Endereco();
                    PreencherObjetoEndereco(novoEndereco);

                    endereco.DDD = novoEndereco.DDD;
                    endereco.Telefone = novoEndereco.Telefone;
                    endereco.Complemento = novoEndereco.Complemento;

                    if (endereco.Equals(novoEndereco))
                        EnderecoBLL.Atualizar(endereco);
                    else
                    {
                        try
                        {
                            EnderecoUsuarioBLL.RealizarMudanca(EnderecoUsuarioBLL.Pesquisar(paciente.Codigo, endereco.Codigo), novoEndereco);
                            //Guarda na variável para salvar na sessão depois
                            endereco = novoEndereco;
                        }
                        catch (Exception ex)
                        {
                            throw ex;
                        }
                    }
                }
                else
                {
                    endereco = new Endereco();
                    EnderecoUsuario enderecoUsuario = new EnderecoUsuario();
                    PreencherObjetoEndereco(endereco);
                    enderecoUsuario.Endereco = endereco;
                    enderecoUsuario.CodigoPaciente = paciente.Codigo;
                    enderecoUsuario.Excluido = '0';
                    enderecoUsuario.Operacao = DateTime.Now;
                    enderecoUsuario.TipoEndereco = new TipoEndereco();
                    enderecoUsuario.TipoEndereco.Codigo = "01";
                    enderecoUsuario.Endereco.ControleEndereco = new ControleEndereco();

                    try
                    {
                        EnderecoUsuarioBLL.Cadastrar(enderecoUsuario);
                        //Guarda na variável para salvar na sessão depois
                        endereco = enderecoUsuario.Endereco;
                    }
                    catch (Exception ex)
                    {
                        ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('" + ex.Message + "');</script>");
                        return;
                    }
                }

                Vida.Model.Documento docNacionalidade = null;
                switch (rbtnListNacionalidade.SelectedValue)
                {
                    case "E"://Futuramente colocar documentos na sessão
                        docNacionalidade = DocumentoBLL.PesqusiarPorPaciente("05", paciente);
                        if (docNacionalidade == null)
                        {
                            docNacionalidade = new Documento();
                            Vida.Model.ControleDocumento controle = new Vida.Model.ControleDocumento();
                            controle.Paciente = paciente;
                            controle.TipoDocumento = new TipoDocumento();
                            controle.TipoDocumento.Codigo = "05";
                            docNacionalidade.ControleDocumento = controle;
                            docNacionalidade.DataChegadaBrasil = DateTime.Parse(tbxDataEntradaBrasil.Text);
                            docNacionalidade.DataNaturalizacao = null;
                            DocumentoBLL.Cadastrar(docNacionalidade);
                        }
                        else
                        {
                            docNacionalidade.ControleDocumento.Excluido = '0';
                            docNacionalidade.DataChegadaBrasil = DateTime.Parse(tbxDataEntradaBrasil.Text);
                            docNacionalidade.DataNaturalizacao = null;
                            DocumentoBLL.Atualizar(docNacionalidade);
                        }

                        break;
                    case "N":
                        docNacionalidade = DocumentoBLL.PesqusiarPorPaciente("05", paciente);
                        if (docNacionalidade == null)
                        {
                            docNacionalidade = new Documento();
                            Vida.Model.ControleDocumento controle = new Vida.Model.ControleDocumento();
                            controle.Paciente = paciente;
                            controle.TipoDocumento = new TipoDocumento();
                            controle.TipoDocumento.Codigo = "05";
                            docNacionalidade.ControleDocumento = controle;
                            docNacionalidade.DataNaturalizacao = DateTime.Parse(tbxDataNaturalizacao.Text);
                            docNacionalidade.NumeroPortaria = tbxNaturalizacaoPortaria.Text;
                            docNacionalidade.DataChegadaBrasil = null;
                            DocumentoBLL.Cadastrar(docNacionalidade);
                        }
                        else
                        {
                            docNacionalidade.ControleDocumento.Excluido = '0';
                            docNacionalidade.DataNaturalizacao = DateTime.Parse(tbxDataNaturalizacao.Text);
                            docNacionalidade.NumeroPortaria = tbxNaturalizacaoPortaria.Text;
                            docNacionalidade.DataChegadaBrasil = null;
                            DocumentoBLL.Atualizar(docNacionalidade);
                        }
                        break;

                    case "B":
                        docNacionalidade = DocumentoBLL.PesqusiarPorPaciente("05", paciente);

                        if (docNacionalidade != null)
                        {
                            docNacionalidade.ControleDocumento.Excluido = '1';
                            DocumentoBLL.Atualizar(docNacionalidade);
                        }
                        break;
                }

                Vida.Model.Documento cpf = DocumentoBLL.PesqusiarPorPaciente("02", paciente);

                if (!string.IsNullOrEmpty(tbxCPF.Text))
                {
                    if (cpf == null)
                    {
                        cpf = new Vida.Model.Documento();
                        cpf.Numero = tbxCPF.Text;

                        Vida.Model.ControleDocumento controle = new Vida.Model.ControleDocumento();
                        controle.Paciente = paciente;
                        controle.TipoDocumento = new TipoDocumento();
                        controle.TipoDocumento.Codigo = "02";
                        cpf.ControleDocumento = controle;
                        DocumentoBLL.Cadastrar(cpf);
                    }
                    else
                    {
                        cpf.Numero = tbxCPF.Text;
                        cpf.ControleDocumento.Excluido = '0';
                        DocumentoBLL.Atualizar(cpf);
                    }
                }
                else
                {
                    if (cpf != null)
                    {
                        cpf.ControleDocumento.Excluido = '1';
                        DocumentoBLL.Atualizar(cpf);
                    }
                }

                Vida.Model.Documento rg = DocumentoBLL.PesqusiarPorPaciente("10", paciente);

                if (!string.IsNullOrEmpty(tbxIdentidade.Text))
                {
                    if (rg == null)
                    {
                        rg = new Vida.Model.Documento();
                        rg.Numero = tbxIdentidade.Text;
                        rg.Complemento = tbxComplementoIdentidade.Text;
                        rg.UF = new UF();
                        rg.UF.Sigla = ddlUFIdentidade.SelectedValue;
                        rg.DataEmissao = DateTime.Parse(tbxDataEmissaoIdentidade.Text);
                        rg.OrgaoEmissor = new OrgaoEmissor();
                        rg.OrgaoEmissor.Codigo = ddlOrgaoExpedidor.SelectedValue;

                        Vida.Model.ControleDocumento controle = new Vida.Model.ControleDocumento();
                        controle.Paciente = paciente;
                        controle.TipoDocumento = new TipoDocumento();
                        controle.TipoDocumento.Codigo = "10";
                        rg.ControleDocumento = controle;
                        DocumentoBLL.Cadastrar(rg);
                    }
                    else
                    {
                        rg.Numero = tbxIdentidade.Text;
                        rg.Complemento = tbxComplementoIdentidade.Text;
                        rg.UF = new UF();
                        rg.UF.Sigla = ddlUFIdentidade.SelectedValue;
                        rg.DataEmissao = DateTime.Parse(tbxDataEmissaoIdentidade.Text);
                        rg.OrgaoEmissor = new OrgaoEmissor();
                        rg.OrgaoEmissor.Codigo = ddlOrgaoExpedidor.SelectedValue;
                        rg.ControleDocumento.Excluido = '0';
                        DocumentoBLL.Atualizar(rg);
                    }
                }
                else
                {
                    if (rg != null)
                    {
                        rg.ControleDocumento.Excluido = '1';
                        DocumentoBLL.Atualizar(rg);
                    }
                }

                Vida.Model.Documento certidao = null;

                if (ddlTipoCertidao.SelectedValue != "-1")
                {
                    certidao = DocumentoBLL.PesqusiarPorPaciente(ddlTipoCertidao.SelectedValue, paciente);

                    if (certidao == null)
                    {
                        certidao = new Vida.Model.Documento();

                        Regex regexNovaCertidao = new Regex(@"^\d{6}\.\d{2}\.\d{2}\.\d{4}\.\d{1}\.\d{5}\.\d{3}\.\d{7}\-\d{2}$");

                        if (regexNovaCertidao.IsMatch(tbxNovaCertidao.Text.Trim())) //Preencheu a nova certidao por completo
                        {
                            certidao.Numero = tbxNovaCertidao.Text.Replace(".", "").Substring(0, 15);
                            certidao.Complemento = tbxNovaCertidao.Text.Substring(tbxNovaCertidao.Text.Length - 2, 2);
                        }

                        certidao.NomeCartorio = tbxNomeCartorio.Text;
                        certidao.NumeroLivro = tbxLivro.Text;
                        certidao.NumeroFolha = tbxFolhas.Text;
                        certidao.NumeroTermo = tbxTermo.Text;
                        certidao.DataEmissao = DateTime.Parse(tbxDataEmissaoCertidao.Text);
                        Vida.Model.ControleDocumento controle = new Vida.Model.ControleDocumento();
                        controle.Paciente = paciente;
                        controle.TipoDocumento = new TipoDocumento();
                        controle.TipoDocumento.Codigo = ddlTipoCertidao.SelectedValue;
                        certidao.ControleDocumento = controle;
                        DocumentoBLL.Cadastrar(certidao);
                    }
                    else
                    {
                        certidao.NomeCartorio = tbxNomeCartorio.Text;
                        certidao.NumeroLivro = tbxLivro.Text;
                        certidao.NumeroFolha = tbxFolhas.Text;
                        certidao.NumeroTermo = tbxTermo.Text;
                        certidao.DataEmissao = DateTime.Parse(tbxDataEmissaoCertidao.Text);
                        certidao.ControleDocumento.Excluido = '0';
                        DocumentoBLL.Atualizar(certidao);
                    }
                }
                else
                {
                    int[] documentos = new int[] { 91, 92, 93, 95 };

                    foreach (int documento in documentos)
                    {
                        certidao = DocumentoBLL.PesqusiarPorPaciente(documento.ToString(), paciente);

                        if (certidao != null)
                        {
                            certidao.ControleDocumento.Excluido = '1';
                            DocumentoBLL.Atualizar(certidao);
                        }
                    }
                }

                Vida.Model.Documento tituloEleitor = DocumentoBLL.PesqusiarPorPaciente("03", paciente);

                if (!string.IsNullOrEmpty(tbxTituloEleitor.Text))
                {
                    if (tituloEleitor == null)
                    {
                        tituloEleitor = new Vida.Model.Documento();
                        tituloEleitor.Numero = tbxTituloEleitor.Text;
                        tituloEleitor.SecaoEleitoral = tbxSecaoEleitoral.Text;
                        tituloEleitor.ZonaEleitoral = tbxZonaEleitoral.Text;
                        Vida.Model.ControleDocumento controle = new Vida.Model.ControleDocumento();
                        controle.Paciente = paciente;
                        controle.TipoDocumento = new TipoDocumento();
                        controle.TipoDocumento.Codigo = "03";
                        tituloEleitor.ControleDocumento = controle;
                        DocumentoBLL.Cadastrar(tituloEleitor);
                    }
                    else
                    {
                        tituloEleitor.Numero = tbxTituloEleitor.Text;
                        tituloEleitor.SecaoEleitoral = tbxSecaoEleitoral.Text;
                        tituloEleitor.ZonaEleitoral = tbxZonaEleitoral.Text;
                        tituloEleitor.ControleDocumento.Excluido = '0';
                        DocumentoBLL.Atualizar(tituloEleitor);
                    }
                }
                else
                {
                    if (tituloEleitor != null)
                    {
                        tituloEleitor.ControleDocumento.Excluido = '1';
                        DocumentoBLL.Atualizar(tituloEleitor);
                    }
                }

                Vida.Model.Documento carteiraTrabalho = DocumentoBLL.PesqusiarPorPaciente("04", paciente);

                if (!string.IsNullOrEmpty(tbxCTPS.Text))
                {
                    if (carteiraTrabalho == null)
                    {
                        carteiraTrabalho = new Vida.Model.Documento();
                        carteiraTrabalho.Numero = tbxCTPS.Text;
                        carteiraTrabalho.Serie = tbxSerieCTPS.Text;
                        carteiraTrabalho.DataEmissao = DateTime.Parse(tbxDataEmissaoCTPS.Text);
                        carteiraTrabalho.UF = new UF();
                        carteiraTrabalho.UF.Sigla = ddlUFCTPS.SelectedValue;
                        Vida.Model.ControleDocumento controle = new Vida.Model.ControleDocumento();
                        controle.Paciente = paciente;
                        controle.TipoDocumento = new TipoDocumento();
                        controle.TipoDocumento.Codigo = "04";
                        carteiraTrabalho.ControleDocumento = controle;
                        DocumentoBLL.Cadastrar(carteiraTrabalho);
                    }
                    else
                    {
                        carteiraTrabalho.Numero = tbxCTPS.Text;
                        carteiraTrabalho.Serie = tbxSerieCTPS.Text;
                        carteiraTrabalho.DataEmissao = DateTime.Parse(tbxDataEmissaoCTPS.Text);
                        carteiraTrabalho.UF = new UF();
                        carteiraTrabalho.UF.Sigla = ddlUFCTPS.SelectedValue;
                        carteiraTrabalho.ControleDocumento.Excluido = '0';
                        DocumentoBLL.Atualizar(carteiraTrabalho);
                    }
                }
                else
                {
                    if (carteiraTrabalho != null)
                    {
                        carteiraTrabalho.ControleDocumento.Excluido = '1';
                        DocumentoBLL.Atualizar(carteiraTrabalho);
                    }
                }
                #endregion
            }

            else //Cadastro de Paciente
            {
                //Verifica se já existe um paciente cadastrado com o mesmo Nome, Nome de mãe e data de nascimento                                
                IList<Vida.Model.Paciente> pa = PacienteBLL.Pesquisar(tbxNomePaciente.Text.Trim().ToUpper(), tbxNomeMae.Text.Trim().ToUpper(), DateTime.Parse(tbxDataNascimento.Text)).Where(x => x.Codigo != Request.QueryString["codigo"]).ToList();
                if (pa.Count > 0)
                {
                    if (Request["url_retorno"] != null)
                        ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('Dados salvos com sucesso!');window.location='" + HelperRedirector.DecodeURL(Request["url_retorno"].ToString()) + pa[0].Codigo + "';</script>");
                    else
                        ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('Já existe um Paciente cadastrado com os dados fornecidos. Confirme se os dados estão corretos e atualize se necessário.');window.location='FormPaciente.aspx?codigo=" + pa[0].Codigo + "';</script>");
                    Session.Remove("PacientesMS");
                    return;
                }

                try
                {
                    paciente = this.Paciente;
                    paciente.Deficiencia = this.RetornaDeficienciaPaciente();
                    endereco = this.EnderecoPaciente;
                    List<Documento> documentos = this.DocumentosPaciente;

                    Usuario usuario = (Usuario)Session["Usuario"];
                    int codigoMotivoCadastro = int.Parse(ddlMotivo.SelectedValue);

                    if (Session["PacientesMS"] == null)
                        PacienteBLL.Cadastrar(usuario, codigoMotivoCadastro, paciente, endereco, documentos);
                    else
                    {
                        PacienteIntegracaoMS pacienteIntegracao = ((List<PacienteIntegracaoMS>)Session["PacientesMS"])[int.Parse(Request.QueryString["codigo"])];

                        paciente.XmlPacienteMs = Vida.View.Helpers.HelperConvertPacienteMs.ToXml(pacienteIntegracao, typeof(PacienteIntegracaoMS));
                        PacienteBLL.Cadastrar(usuario, codigoMotivoCadastro, paciente, endereco, documentos, pacienteIntegracao.CartoesSUS.OrderBy(x => x.Numero).ToList());
                    }
                }
                catch (ExcecaoVida ex)
                {
                    ClientScript.RegisterClientScriptBlock(typeof(String), "ok", "<script>alert('" + ex.Erro + "');</script>");
                    return;
                }
                catch
                {
                    throw;
                }

                LogVida logVida = new LogVida(DateTime.Now, (Vida.Model.Usuario)Session["Usuario"], 1, paciente.Codigo);

                StartBackgroundThread(delegate { this.SalvarLog(logVida); });
            }

            HiddenCodigoPaciente.Value = paciente.Codigo;
            HiddenCodigoPaciente.DataBind();
            HiddenNomePaciente.Value = paciente.Nome;
            HiddenNomePaciente.DataBind();
            HiddenDataNascimento.Value = paciente.DataNascimento.ToString("dd/MM/yyyy");
            HiddenDataNascimento.DataBind();
            HiddenMunicipio.Value = endereco.Municipio.Nome;
            HiddenMunicipio.DataBind();

            if (Request["codigo"] == null)
            {
 




 



Atenciosamente,

José Carlos Motta
Analista Desenvolvedor de Sistemas
71 98456-1419/ 71 98783-8591

Reply all
Reply to author
Forward
0 new messages