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 } }