Example #1
0
        protected bool CarregarDados(int id)
        {
            try
            {
                Mediacao_Model model = new Mediacao_Model();
                mediacao       med   = new mediacao();

                med = model.Obter(id);

                // verifica se tem permissão de visualizar o local da mediação
                if (!Master.VerificarAlcance(med.local.numero_opm))
                {
                    Response.Redirect("historico_mediacoes.aspx");
                }

                txtNumero.Text       = med.numero.ToString();
                txtData.Text         = med.data_mediacao.ToShortDateString();
                txtHora.Text         = med.data_mediacao.ToShortTimeString();
                txtTemaConflito.Text = med.tema_conflito;
                txtTipoRegistro.Text = med.tipo_registro.descricao;
                txtStatus.Text       = model.getStatus(med.status);
                lstPartes.Items.Clear();
                foreach (mediacao_parte mp in med.mediacao_partes)
                {
                    lstPartes.Items.Add(mp.pessoa.nome);
                }
                txtObjetoMediacao.Text = med.objeto;
                if (med.resolucao == 'A')
                {
                    txtResolucao.Text = "Acordo entre as partes";
                }
                else
                {
                    txtResolucao.Text = "Desacordo entre as partes";
                }
                txtMediador.Text = med.mediador.nome;

                // somente permite abrir uma nova mediação a partir daquela se status = pendente
                btnNovaMediacao.Visible = (med.status == Mediacao_Model.STATUS_PENDENTE);

                PreencherAcompanhamentos();

                return(true);
            }
            catch (Exception e)
            {
                Master.Alerta(e.Message);
                return(false);
            }
        }
        public bool Inserir(mediacao a)
        {
            // função para cadastrar
            try
            {
                Table <mediacao> tb = getTable();
                tb.InsertOnSubmit(a);
                tb.Context.SubmitChanges();

                return(true);
            }
            catch (Exception e)
            {
                message = e.Message;
                return(false);
            }
        }
        public bool InserirMediacaoTotal(mediacao m, List <mediacao_parte> partes)
        {
            dbDataContext context = getDataContext();

            using (DbConnection conn = context.Connection)
            {
                conn.Open();
                using (DbTransaction trans = conn.BeginTransaction())
                {
                    try
                    {
                        Table <mediacao> tb = context.GetTable <mediacao>();

                        tb.Context.Transaction = trans;

                        tb.InsertOnSubmit(m);
                        tb.Context.SubmitChanges();

                        foreach (mediacao_parte mp in partes)
                        {
                            Table <mediacao_parte> tbParte = context.GetTable <mediacao_parte>();
                            tbParte.Context.Transaction = trans;
                            mp.mediacao_id = m.id;
                            tbParte.InsertOnSubmit(mp);
                            tbParte.Context.SubmitChanges();
                        }

                        if (m.id_agendamento != null)
                        {
                            context.atualizaStatus(m.id_agendamento);
                        }
                        trans.Commit();
                        return(true);
                    }
                    catch (Exception e)
                    {
                        message = e.Message;
                        trans.Rollback();
                        return(false);
                    }
                }
            }
        }
        public bool Alterar(mediacao a)
        {
            try
            {
                dbDataContext    context = getDataContext();
                Table <mediacao> tb      = getTable();

                context.alteraMediacao(a.id, a.id_agendamento, a.numero, a.tema_conflito, a.data_mediacao, a.id_mediador,
                                       a.id_tipo_registro, a.objeto, a.id_local, a.documento_link, a.status, a.resolucao, a.id_cidade);
                tb.Context.SubmitChanges();

                return(true);
            }
            catch (Exception e)
            {
                message = e.Message;
                return(false);
            }
        }
        protected bool CarregarDados(int id)
        {
            try
            {
                Mediacao_Model model = new Mediacao_Model();
                mediacao med = new mediacao();

                med = model.Obter(id);

                // verifica se tem permissão de visualizar o local da mediação
                if ( ! Master.VerificarAlcance(med.local.numero_opm) )
                    Response.Redirect("historico_mediacoes.aspx");

                txtNumero.Text = med.numero.ToString();
                txtData.Text = med.data_mediacao.ToShortDateString();
                txtHora.Text = med.data_mediacao.ToShortTimeString();
                txtTemaConflito.Text = med.tema_conflito;
                txtTipoRegistro.Text = med.tipo_registro.descricao;
                txtStatus.Text = model.getStatus(med.status);
                lstPartes.Items.Clear();
                foreach (mediacao_parte mp in med.mediacao_partes)
                {
                    lstPartes.Items.Add(mp.pessoa.nome);
                }
                txtObjetoMediacao.Text = med.objeto;
                if (med.resolucao == 'A')
                    txtResolucao.Text = "Acordo entre as partes";
                else
                    txtResolucao.Text = "Desacordo entre as partes";
                txtMediador.Text = med.mediador.nome;

                // somente permite abrir uma nova mediação a partir daquela se status = pendente
                btnNovaMediacao.Visible = (med.status == Mediacao_Model.STATUS_PENDENTE);

                PreencherAcompanhamentos();

                return true;
            }
            catch (Exception e)
            {
                Master.Alerta(e.Message);
                return false;
            }
        }
        protected bool FinalizarMediacao()
        {
            if (ValidarDepoimentos())
            {
                // função que irá salvar os dados da mediação no banco e gerar o termo de mediação
                Mediacao_Model model = new Mediacao_Model();

                mediacao m = new mediacao();

                // pega o mediador logado
                mediador med = Master.GetLogado();

                int id_agendamento = 0;
                if (Session["med_agendamento"] != null)
                    id_agendamento = Int32.Parse(Session["med_agendamento"].ToString());

                m.numero = model.GerarProximoNumero(med.id_local);
                m.tema_conflito = txtTemaConflito.Value;
                m.id_tipo_registro = Int32.Parse(ddTipoRegistro.SelectedValue);
                m.data_mediacao = DateTime.Parse(txtData.Value + " " + txtHora.Value + ":00");
                m.id_mediador = med.id;
                m.id_local = med.id_local;
                m.objeto = txtObjetoMediacao.Text;
                m.resolucao = Char.Parse(ddResolucao.SelectedValue);
                // SE teve acordo entra as partes, status 1 CONCLUIDO
                // SENAO   status 0 PENDENTE
                if (m.resolucao == 'A')
                    m.status = Mediacao_Model.STATUS_CONCLUIDO;
                else
                    m.status = Mediacao_Model.STATUS_PENDENTE;
                // pega o id da cidade do local
                Local_Model l_model = new Local_Model();
                m.id_cidade = l_model.Obter(med.id_local).id_cidade;

                if ( id_agendamento != 0 )
                {
                    m.id_agendamento = id_agendamento;
                }

                mediacao_parte mp = null;

                // após inserir a mediação, é necessário inserir as partes

                List<mediacao_parte> mpLista = new List<mediacao_parte>();
                foreach (Control ctr in TextBoxPlaceHolder.Controls)
                {
                    if (ctr is TextBox)
                    {
                        // percorre a lista de pessoas verificando de qual pessoa é aquele depoimento
                        foreach (pessoa p in lista)
                        {
                            if (ctr.ID.Contains(p.cpf))
                            {
                                mp = new mediacao_parte();
                                // depoimento da pessoa
                                mp.descricao_caso = ((TextBox)ctr).Text;
                                // quando encontrar a pessoa do depoimento então passa o CPF para o Identificador
                                mp.pessoa_id = p.cpf;
                                mpLista.Add(mp);
                            }
                        }
                    }
                }

                if (model.InserirMediacaoTotal(m, mpLista))
                {
                    Session.Remove("med_agendamento");
                    Response.Redirect("detail_mediacao.aspx?ID=" + m.id.ToString());
                    return true;
                }
                else
                {
                    Master.Alerta("Erro: " + model.message);
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
        public string GerarTermo(int id_mediacao, string caminho)
        {
            try
            {
                mediacao md = new mediacao();

                md = Obter(id_mediacao);
                // nome = numero + ano
                String nome = md.numero.ToString() + "_" + md.data_mediacao.Year.ToString();
                // nome completo = caminho + nome.docx
                // ex: Desktop\002_2016.docx
                String nomeArquivo = caminho + @"\" + nome + ".docx";

                // gera o documento da mediação

                // Se o arquivo já existe, não salva novamente
                //if (File.Exists(nomeArquivo))
                //{
                //    return nomeArquivo;
                //}

                string modelo = AppDomain.CurrentDomain.BaseDirectory + "modelo_med.docx";
                using (DocX document = DocX.Load(modelo))
                {
                    // adiciona o nome do batalhão no arquivo
                    document.ReplaceText("[batalhao]", md.local.nome, false);
                    // adiciona o nome da companhia no arquivo
                    document.ReplaceText("[companhia]", md.local.descricao, false);
                    // adiciona o numero da mediação no arquivo
                    document.ReplaceText("[numero]", md.numero.ToString(), false);
                    // adiciona o ano no arquivo
                    document.ReplaceText("[ano]", md.data_mediacao.Year.ToString(), false);
                    // informa o tema do conflito
                    document.ReplaceText("[tema_conflito]", md.tema_conflito, false);
                    // rodapé
                    document.ReplaceText("[cidade]", md.local.cidade.nome, false);
                    document.ReplaceText("[data_escrita]", md.data_mediacao.ToLongDateString(), false);

                    string partes = "", nome_partes = "", assinaturas = "";

                    int i = 0;

                    Paragraph p = null;

                    foreach (mediacao_parte mp in md.mediacao_partes)
                    {
                        p = document.InsertParagraph();

                        i++;
                        p.Append("PARTE " + i.ToString() + ": ").Bold().Append(mp.pessoa.nome.ToString() + ", ");
                        p.Append("RG: ").Bold().Append(mp.pessoa.rg + ", ");
                        p.Append("CPF: ").Bold().Append(mp.pessoa.cpf + ", ");
                        p.Append(mp.pessoa.status_civil + ", ");
                        p.Append(mp.pessoa.profissao + ", ");
                        p.Append("NASCIDO EM ").Bold().Append(DateTime.Parse(mp.pessoa.nascimento_data.ToString()).ToShortDateString() + ", ");
                        p.Append("NA CIDADE DE ").Bold().Append(mp.pessoa.cidade1.nome + " - " + mp.pessoa.cidade1.estado + ", ");
                        p.Append("DO SEXO ").Bold().Append(GetSexo(mp.pessoa.sexo.ToString()) + ", ");
                        p.Append("FILHO DE ").Bold().Append(mp.pessoa.nome_pai);
                        p.Append(" E ").Bold().Append(mp.pessoa.nome_mae + ", ");
                        p.Append("RESIDENTE NA ").Bold().Append(mp.pessoa.endereco_logradouro + " nº " +
                                                                mp.pessoa.endereco_numero + ", " +
                                                                mp.pessoa.endereco_bairro + ", " +
                                                                mp.pessoa.cidade.nome + " - " + mp.pessoa.cidade.estado + ", ");
                        if ((mp.pessoa.telefone != null) && (mp.pessoa.telefone != ""))
                        {
                            p.Append("TELEFONE ").Bold().Append(mp.pessoa.telefone + ", ");
                        }
                        p.Append("aceitou a participar da sessão de mediação de conflito onde declarou que: ").Bold().Alignment = Alignment.both;
                        p.AppendLine(mp.descricao_caso);
                        p.AppendLine();
                        p.AppendLine();
                        //p.AppendLine("ASSINATURA (PARTE " + i.ToString() + ")");
                        //p.AppendLine();
                        //p.AppendLine();
                        p = null;

                        document.InsertParagraph("ASSINATURA (PARTE " + i.ToString() + ")").AppendLine().Alignment = Alignment.right;

                        if (i > 1)
                        {
                            partes = partes + ", " + mp.pessoa.nome;
                        }
                        else
                        {
                            partes = mp.pessoa.nome;
                        }
                        if (i > 1)
                        {
                            nome_partes = nome_partes + ", e ";
                        }
                        if (mp.pessoa.sexo == 'M')
                        {
                            nome_partes = nome_partes + "Sr. " + mp.pessoa.nome;
                        }
                        else
                        {
                            nome_partes = nome_partes + "Sra. " + mp.pessoa.nome;
                        }

                        assinaturas = assinaturas + "__________________________________" + Environment.NewLine +
                                      "RG:" + Environment.NewLine + Environment.NewLine;
                    }

                    // adiciona o nome das partes no arquivo
                    document.ReplaceText("[partes]", partes, false);

                    Paragraph p2 = document.InsertParagraph();

                    // =========== DECLARAÇÃO FINAL MEDIAÇÃO =============
                    p2.InsertPageBreakBeforeSelf();
                    p2.Append("Pelo presente Termo de \"MEDIAÇÃO\", as partes, " + nome_partes +
                              " presentes no núcleo de Mediação Comunitária do " + md.local.nome + "/" + md.local.descricao +
                              ", situado na " + md.local.logradouro + ", nº " + md.local.numero + ", " +
                              "Bairro " + md.local.bairro + ", na cidade de " + md.local.cidade.nome + " - " + md.local.cidade.estado +
                              " resolvem aceitar a adoção do " +
                              "procedimento de mediação para a resolução de conflito relatado neste instrumento de registro " +
                              "policial, obrigando - se a manter sigilo, assim como o mediador, de toda e qualquer informação, " +
                              "documentos, papéis em geral, enfim, de tudo que lhes seja apresentado ou chegue ao seu conhecimento " +
                              "em razão do procedimento de mediação aqui homologado. O descumprimento da obrigação de sigilo por " +
                              "qualquer das partes ou pelo mediador implicará em responsabilidade civil e criminal.").Alignment = Alignment.both;
                    // objeto da mediação
                    p2.AppendLine();

                    Paragraph objeto = document.InsertParagraph();
                    objeto.AppendLine("O objeto da mediação é o seguinte:").AppendLine(md.objeto).AppendLine().Alignment = Alignment.left;
                    // assinaturas
                    objeto.AppendLine(assinaturas).AppendLine();

                    Paragraph p3 = document.InsertParagraph();

                    p3.AppendLine(md.mediador.nome).Bold();
                    p3.AppendLine(md.mediador.patente + " - Mediador").Alignment = Alignment.right;

                    // ACOMPANHAMENTOS


                    List <acompanhamento> listAcomp = new List <acompanhamento>();

                    listAcomp = ListarAcompanhamentos(md.id);

                    if (listAcomp.Count > 0)
                    {
                        Paragraph p4 = document.InsertParagraph();
                        p4.InsertPageBreakBeforeSelf();

                        foreach (acompanhamento acp in listAcomp)
                        {
                            p4.AppendLine("Acompanhamento do mediador:").Bold().AppendLine();
                            p4.AppendLine("Data: " + acp.data.ToString());
                            p4.AppendLine("Verificação: " + acp.verificacao).AppendLine();
                            p4.AppendLine("Assinatura/Carimbo: ").AppendLine();
                        }
                    }

                    // salva o documento
                    document.SaveAs(nomeArquivo);
                }

                return(nomeArquivo);
            }
            catch (Exception e)
            {
                message = e.Message;
                return("");
            }
        }
        protected bool FinalizarMediacao()
        {
            if (ValidarDepoimentos())
            {
                // função que irá salvar os dados da mediação no banco e gerar o termo de mediação
                Mediacao_Model model = new Mediacao_Model();

                mediacao m = new mediacao();

                // pega o mediador logado
                mediador med = Master.GetLogado();

                int id_agendamento = 0;
                if (Session["med_agendamento"] != null)
                {
                    id_agendamento = Int32.Parse(Session["med_agendamento"].ToString());
                }

                m.numero           = model.GerarProximoNumero(med.id_local);
                m.tema_conflito    = txtTemaConflito.Value;
                m.id_tipo_registro = Int32.Parse(ddTipoRegistro.SelectedValue);
                m.data_mediacao    = DateTime.Parse(txtData.Value + " " + txtHora.Value + ":00");
                m.id_mediador      = med.id;
                m.id_local         = med.id_local;
                m.objeto           = txtObjetoMediacao.Text;
                m.resolucao        = Char.Parse(ddResolucao.SelectedValue);
                // SE teve acordo entra as partes, status 1 CONCLUIDO
                // SENAO   status 0 PENDENTE
                if (m.resolucao == 'A')
                {
                    m.status = Mediacao_Model.STATUS_CONCLUIDO;
                }
                else
                {
                    m.status = Mediacao_Model.STATUS_PENDENTE;
                }
                // pega o id da cidade do local
                Local_Model l_model = new Local_Model();
                m.id_cidade = l_model.Obter(med.id_local).id_cidade;

                if (id_agendamento != 0)
                {
                    m.id_agendamento = id_agendamento;
                }

                mediacao_parte mp = null;

                // após inserir a mediação, é necessário inserir as partes

                List <mediacao_parte> mpLista = new List <mediacao_parte>();
                foreach (Control ctr in TextBoxPlaceHolder.Controls)
                {
                    if (ctr is TextBox)
                    {
                        // percorre a lista de pessoas verificando de qual pessoa é aquele depoimento
                        foreach (pessoa p in lista)
                        {
                            if (ctr.ID.Contains(p.cpf))
                            {
                                mp = new mediacao_parte();
                                // depoimento da pessoa
                                mp.descricao_caso = ((TextBox)ctr).Text;
                                // quando encontrar a pessoa do depoimento então passa o CPF para o Identificador
                                mp.pessoa_id = p.cpf;
                                mpLista.Add(mp);
                            }
                        }
                    }
                }

                if (model.InserirMediacaoTotal(m, mpLista))
                {
                    Session.Remove("med_agendamento");
                    Response.Redirect("detail_mediacao.aspx?ID=" + m.id.ToString());
                    return(true);
                }
                else
                {
                    Master.Alerta("Erro: " + model.message);
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }