Exemplo n.º 1
0
        private async void btnArquivar_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            #region Validations

            if (txtNumCaso.Text == "" || cmbTipoCaso.Text == "" || cmbDeptLocal.Text == "" || cmbCatCaso.Text == "" || cmbAgente1.Text == null || cmbAgente2.Text == null || txtDataAbertura.Text == "" || cmbStatusCaso.Text == "")
            {
                await this.ShowMessageAsync("Aviso", "Todos os campos com '*' são obrigatórios para a abertura do caso!");

                return;
            }

            if (txtDataFechamento.IsEnabled)
            {
                if (txtDataFechamento.Text == "")
                {
                    await this.ShowMessageAsync("Aviso", "Insira uma data de fechamento!");

                    return;
                }
            }

            //Checar se é Lavagem
            if (cmbTipoLavagem.IsEnabled)
            {
                if (cmbTipoLavagem.Text == "")
                {
                    await this.ShowMessageAsync("Aviso", "Especifique a tipologia da lavagem!");

                    return;
                }
            }

            //Checar se é referida a outra agência
            if (ckbRefOutraAgencia.IsChecked == false)
            {
                if (cmbMunicipio.Text == "")
                {
                    await this.ShowMessageAsync("Aviso", "Todos os campos com '*' são obrigatórios para a abertura do caso!");

                    cmbMunicipio.Focus();
                    return;
                }
            }
            else if (cmbEstado.Text == "")
            {
                await this.ShowMessageAsync("Aviso", "Todos os campos com '*' são obrigatórios para a abertura do caso!");

                cmbEstado.Focus();
                return;
            }

            #endregion

            #region TO

            Caso objCaso = new Caso();
            objCaso.setNumeroCaso(txtNumCaso.Text);
            objCaso.setTituloCaso(txtTituloCaso.Text);
            objCaso.setTipoCaso(cmbTipoCaso.Text);
            objCaso.setDepLoc(cmbDeptLocal.Text);
            objCaso.setCategoriaCaso(cmbCatCaso.Text);
            string idagente1 = cmbAgente1.Text.Substring(0, cmbAgente1.Text.IndexOf(" "));
            objCaso.setAgente1(idagente1);
            string idagente2 = cmbAgente2.Text.Substring(0, cmbAgente2.Text.IndexOf(" "));
            objCaso.setAgente2(idagente2);
            if (cmbAgente3.Text != "")
            {
                if (cmbAgente3.Text != null)
                {
                    string idagente3 = cmbAgente3.Text.Substring(0, cmbAgente3.Text.IndexOf(" "));
                    objCaso.setAgente3(idagente3);
                }
            }
            if (cmbAgente4.Text != "")
            {
                if (cmbAgente4.Text != null)
                {
                    string idagente4 = cmbAgente4.Text.Substring(0, cmbAgente4.Text.IndexOf(" "));
                    objCaso.setAgente4(idagente4);
                }
            }
            int data = txtDataAbertura.Text.IndexOf('_');

            //Data Abertura
            //Comparar data
            DateTime hoje           = DateTime.Now;
            DateTime dataAberturaDt = txtDataAbertura.SelectedDate.Value;

            int resultado = DateTime.Compare(hoje, dataAberturaDt);
            if (resultado == -1)
            {
                await this.ShowMessageAsync("Aviso", "A data de abertura não pode ser inserida por ser subsequente a data de hoje!");

                txtDataAbertura.Focus();
                return;
            }
            objCaso.setDataAbertura(txtDataAbertura.SelectedDate.Value);


            objCaso.setStatus(cmbStatusCaso.Text);

            //Data Fechamento
            if (txtDataFechamento.IsEnabled)
            {
                //Comparar data
                DateTime dataFechamentoDt = txtDataFechamento.SelectedDate.Value;

                resultado = DateTime.Compare(hoje, dataFechamentoDt);
                if (resultado == -1)
                {
                    await this.ShowMessageAsync("Aviso", "A data de fechamento não pode ser inserida por ser subsequente a data de hoje!");

                    txtDataFechamento.Focus();
                    return;
                }

                resultado = DateTime.Compare(dataAberturaDt, dataFechamentoDt);
                if (resultado == 1)
                {
                    await this.ShowMessageAsync("Aviso", "A data de fechamento não pode ser antecedente a data de abertura!");

                    txtDataFechamento.Focus();
                    return;
                }

                objCaso.setDataFechamento(txtDataFechamento.SelectedDate.Value);
            }

            objCaso.setTipoLavagem(cmbTipoLavagem.Text);
            objCaso.setForcaTarefa(txtForcaTarefa.Text);
            objCaso.setMunicipio(cmbMunicipio.Text);
            objCaso.setEstado(cmbEstado.Text);
            if (ckbRefOutraAgencia.IsChecked == true)
            {
                objCaso.setRefOutraAgencia("sim");
            }
            else
            {
                objCaso.setRefOutraAgencia("não");
            }

            if (ckbGrandeJuri.IsChecked == true)
            {
                objCaso.setGrandeJuri("sim");
            }
            else
            {
                objCaso.setGrandeJuri("não");
            }

            if (ckbInterJuri.IsChecked == true)
            {
                objCaso.setIntervencaoJuri("sim");
            }
            else
            {
                objCaso.setIntervencaoJuri("não");
            }

            if (ckbRelJuri.IsChecked == true)
            {
                objCaso.setRelJuri("sim");
            }
            else
            {
                objCaso.setRelJuri("não");
            }



            #endregion

            OracleConnection Oracon = new OracleConnection(db.oradb);

            if (idCaso == null)
            {
                #region CADASTRAR

                try
                {
                    Oracon.Open();

                    //Inserir Detalhe
                    OracleCommand insertCommandDetail = new OracleCommand(SQL_INSERT_DETAIL, Oracon);
                    insertCommandDetail.Parameters.Add("tipolavagem", objCaso.getTipoLavagem());
                    insertCommandDetail.Parameters.Add("forcatarefa", objCaso.getForcaTarefa());
                    insertCommandDetail.Parameters.Add("municipio", objCaso.getMunicipio());
                    insertCommandDetail.Parameters.Add("estado", objCaso.getEstado());
                    insertCommandDetail.Parameters.Add("refoutraagencia", objCaso.getRefOutraAgencia());
                    insertCommandDetail.Parameters.Add("grandejuri", objCaso.getGrandeJuri());
                    insertCommandDetail.Parameters.Add("intjuri", objCaso.getIntervencaoJuri());
                    insertCommandDetail.Parameters.Add("relatjuri", objCaso.getRelJuri());
                    insertCommandDetail.ExecuteNonQuery();


                    //Pegar o ID Desse detalhe
                    OracleCommand    lastIdDetail = new OracleCommand(SELECT_LAST_DETAIL, Oracon);
                    OracleDataReader dr           = lastIdDetail.ExecuteReader();
                    dr.Read();

                    idDetalhe = dr[0].ToString();

                    //Inserir Caso
                    OracleCommand insertCommandCase = new OracleCommand(SQL_INSERT_CASO, Oracon);
                    insertCommandCase.Parameters.Add("numcaso", objCaso.getNumeroCaso());
                    insertCommandCase.Parameters.Add("titulocaso", objCaso.getTituloCaso());
                    insertCommandCase.Parameters.Add("tipocaso", objCaso.getTipoCaso());
                    insertCommandCase.Parameters.Add("deploc", objCaso.getDepLoc());
                    insertCommandCase.Parameters.Add("catcaso", objCaso.getCategoriaCaso());
                    insertCommandCase.Parameters.Add("agente1", objCaso.getAgente1());
                    insertCommandCase.Parameters.Add("agente2", objCaso.getAgente2());
                    insertCommandCase.Parameters.Add("agente3", objCaso.getAgente3());
                    insertCommandCase.Parameters.Add("agente4", objCaso.getAgente4());
                    insertCommandCase.Parameters.Add("dataabertura", objCaso.getDataAbertura());
                    if (txtDataFechamento.IsEnabled)
                    {
                        insertCommandCase.Parameters.Add("datafechamento", objCaso.getDataFechamento());
                    }
                    else
                    {
                        insertCommandCase.Parameters.Add("datafechamento", null);
                    }
                    insertCommandCase.Parameters.Add("statuscaso", objCaso.getStatus());
                    insertCommandCase.Parameters.Add("iddetalhecaso", idDetalhe);
                    insertCommandCase.ExecuteNonQuery();

                    OracleCommand cmdTakeLastCaso = new OracleCommand(SELECT_LAST_CASO, Oracon);

                    OracleDataReader rd = cmdTakeLastCaso.ExecuteReader();
                    rd.Read();
                    idCaso = rd[0].ToString();

                    Oracon.Close();

                    await this.ShowMessageAsync("Aviso", "Caso arquivado com sucesso!");

                    crimeWindow.wndCrimeManagement_Loaded(null, null);
                    this.Title = "Editar Caso Nº " + txtNumCaso.Text + " | " + txtTituloCaso.Text;
                    modoEdicao = true;

                    //desbloquear agencias auxiliadoras
                    grbOutrasAgencias.IsEnabled = true;
                    //Desbloquear TabItems
                    tabEnvolvidos.IsEnabled = true;
                    tabEvidencias.IsEnabled = true;
                    //tabCenaDoCrime.IsEnabled = true;
                    tabAnexos.IsEnabled      = true;
                    tabRelatos.IsEnabled     = true;
                    tabCasosRel.IsEnabled    = true;
                    this.btnArquivar.Content = "Atualizar";
                }
                catch (OracleException ex)
                {
                    MessageBox.Show(ex.Message);
                }

                #endregion
            }
            else
            {
                #region ATUALIZAR

                try
                {
                    Oracon.Open();

                    //Atualizar detalhe
                    OracleCommand updateCommand = new OracleCommand(SQL_UPDATE_DETAIL, Oracon);
                    updateCommand.Parameters.Add("tipolavagem", objCaso.getTipoLavagem());
                    updateCommand.Parameters.Add("forcatarefa", objCaso.getForcaTarefa());
                    updateCommand.Parameters.Add("municipio", objCaso.getMunicipio());
                    updateCommand.Parameters.Add("estado", objCaso.getEstado());
                    updateCommand.Parameters.Add("refoutraagencia", objCaso.getRefOutraAgencia());
                    updateCommand.Parameters.Add("grandejuri", objCaso.getGrandeJuri());
                    updateCommand.Parameters.Add("intjuri", objCaso.getIntervencaoJuri());
                    updateCommand.Parameters.Add("relatjuri", objCaso.getRelJuri());
                    updateCommand.Parameters.Add("idDetalhe", idDetalhe);
                    updateCommand.ExecuteNonQuery();


                    //Atualizae Caso
                    OracleCommand updateCommandCase = new OracleCommand(SQL_UPDATE_CASO + idCaso, Oracon);
                    updateCommandCase.Parameters.Add("numcaso", objCaso.getNumeroCaso());
                    updateCommandCase.Parameters.Add("titulocaso", objCaso.getTituloCaso());
                    updateCommandCase.Parameters.Add("tipocaso", objCaso.getTipoCaso());
                    updateCommandCase.Parameters.Add("deploc", objCaso.getDepLoc());
                    updateCommandCase.Parameters.Add("catcaso", objCaso.getCategoriaCaso());
                    updateCommandCase.Parameters.Add("agente1", objCaso.getAgente1());
                    updateCommandCase.Parameters.Add("agente2", objCaso.getAgente2());
                    updateCommandCase.Parameters.Add("agente3", objCaso.getAgente3());
                    updateCommandCase.Parameters.Add("agente4", objCaso.getAgente4());
                    updateCommandCase.Parameters.Add("dataabertura", objCaso.getDataAbertura());
                    if (txtDataFechamento.IsEnabled)
                    {
                        updateCommandCase.Parameters.Add("datafechamento", objCaso.getDataFechamento());
                    }
                    else
                    {
                        updateCommandCase.Parameters.Add("datafechamento", null);
                    }
                    updateCommandCase.Parameters.Add("statuscaso", objCaso.getStatus());
                    updateCommandCase.ExecuteNonQuery();


                    Oracon.Close();

                    await this.ShowMessageAsync("Aviso", "Caso de Nº " + objCaso.getNumeroCaso() + " atualizado com sucesso!");

                    crimeWindow.wndCrimeManagement_Loaded(null, null);
                    this.Title = "Editar Caso Nº " + txtNumCaso.Text + " | " + txtTituloCaso.Text;
                }
                catch (OracleException ex)
                {
                    MessageBox.Show(ex.Message);
                }

                #endregion
            }
        }