public static List<Bloqueio> ObterBloqueioPorData(DateTime Data) { List<Bloqueio> bloqueios = new List<Bloqueio>(); OracleConnection conexao = PersistenciaOracle.ObterConexao(); conexao.Open(); OracleCommand comando = new OracleCommand("SELECT CODIGO,NOMEATENDENTE,DATA,HORAINICIO,HORAFIM,TIPOBLOQUEIO FROM BLOQUEIO WHERE TRUNC(DATA) = TRUNC(:DATA) and nomeatendente in (select nome from atendente where dtinativacao is null)"); comando.Parameters.Add("DATA", Data); comando.Connection = conexao; OracleDataReader leitor = comando.ExecuteReader(); while(leitor.Read()) { Bloqueio blq = new Bloqueio(); blq.Codigo = UtilidadePersistencia.ObterValorTratado<int>(leitor["CODIGO"]); blq.NomeAtendente = UtilidadePersistencia.ObterValorTratado<String>(leitor["NOMEATENDENTE"]); blq.Data = UtilidadePersistencia.ObterValorDateTimeTratado<DateTime>(leitor["DATA"]); blq.HoraInicio = UtilidadePersistencia.ObterValorTratado<String>(leitor["HORAINICIO"]); blq.HoraFim = UtilidadePersistencia.ObterValorTratado<String>(leitor["HORAFIM"]); blq.TipoDoBloqueio = (TipoBloqueio)UtilidadePersistencia.ObterValorTratado<int>(leitor["TIPOBLOQUEIO"]); bloqueios.Add(blq); } conexao.Close(); return bloqueios; }
public static void ExcluirBloqueio(Bloqueio BloqueioAtendente) { String comandoSql = @"DELETE FROM BLOQUEIO WHERE CODIGO = :CODIGO"; OracleConnection conexao = PersistenciaOracle.ObterConexao(); conexao.Open(); OracleCommand comando = new OracleCommand(comandoSql); comando.Connection = conexao; comando.Parameters.Add("CODIGO", BloqueioAtendente.Codigo); comando.Prepare(); comando.ExecuteNonQuery(); conexao.Close(); }
public static void AtualizarBloqueio(Bloqueio BloqueioAtendente) { String comandoSql = @"UPDATE BLOQUEIO SET HORAFIM = :HORAFIM, TIPOBLOQUEIO = :TIPOBLOQUEIO WHERE CODIGO = :CODIGO"; OracleConnection conexao = PersistenciaOracle.ObterConexao(); conexao.Open(); OracleCommand comando = new OracleCommand(comandoSql); comando.Connection = conexao; comando.Parameters.Add("HORAFIM", BloqueioAtendente.HoraFim); comando.Parameters.Add("TIPOBLOQUEIO", (int)BloqueioAtendente.TipoDoBloqueio); comando.Parameters.Add("CODIGO", BloqueioAtendente.Codigo); comando.Prepare(); comando.ExecuteNonQuery(); conexao.Close(); }
public static void GravarBloqueio(Bloqueio BloqueioAtendente) { int codigo = PersistenciaOracle.ObterProximoCodigo("BLOQUEIO"); OracleConnection conexao = PersistenciaOracle.ObterConexao(); conexao.Open(); OracleCommand comando = new OracleCommand( @"INSERT INTO BLOQUEIO(CODIGO,NOMEATENDENTE,DATA,HORAINICIO,HORAFIM,TIPOBLOQUEIO) VALUES(:CODIGO,:NOMEATENDENTE,:DATA,:HORAINICIO,:HORAFIM,:TIPOBLOQUEIO)"); comando.Connection = conexao; comando.Parameters.Add("CODIGO", codigo); comando.Parameters.Add("NOMEATENDENTE", BloqueioAtendente.NomeAtendente); comando.Parameters.Add("DATA", BloqueioAtendente.Data); comando.Parameters.Add("HORAINICIO", BloqueioAtendente.HoraInicio); comando.Parameters.Add("HORAFIM", BloqueioAtendente.HoraFim); comando.Parameters.Add("TIPOBLOQUEIO", (int)BloqueioAtendente.TipoDoBloqueio); comando.ExecuteNonQuery(); conexao.Close(); }
private void btnGravar_Click(object sender, RoutedEventArgs e) { if(!this.mskHoraFim.IsMaskCompleted) { Mensagens.ExibirMensagemAlerta(this, "É necessário informar a hora do fim do período!"); return; } Regex reg = new Regex("^(?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$"); if(!reg.IsMatch(this.mskHoraFim.Text)) { Mensagens.ExibirMensagemAlerta(this, "A hora do fim do período está errada!"); return; } String horaFimJornadaTrabalho = "23:00"; DateTime DtHrBloqueioInicio = DateTime.Parse(this.DataDoBloqueio.ToShortDateString() + " " + HoraInicio); DateTime DtHrBloqueioFim = DateTime.Parse(this.DataDoBloqueio.ToShortDateString() + " " + mskHoraFim.Text); DateTime DtHrBloqueioFimReal = DtHrBloqueioFim.AddMinutes(-10); //ajustar de acordo com a grid, que sempre mostra o inicio do intervalo de 10min DateTime DtHrBloqueioFimJornadaTrab = DateTime.Parse(this.DataDoBloqueio.ToShortDateString() + " " + horaFimJornadaTrabalho); if (DtHrBloqueioInicio >= DtHrBloqueioFim) { Mensagens.ExibirMensagemAlerta(this, "A hora final deve ser maior que a hora inicial!"); return; } if(DtHrBloqueioFim > DtHrBloqueioFimJornadaTrab) { Mensagens.ExibirMensagemAlerta(this, string.Format("A hora final deve ser menor do que as {0} !",horaFimJornadaTrabalho)); return; } if(this.Atendimentos != null && this.Atendimentos.Count > 0) { Atendimento atd = this.Atendimentos.Where(a => a.DataHoraInicialAtendimento >= DtHrBloqueioInicio && a.DataHoraInicialAtendimento <= DtHrBloqueioFimReal && a.NomeAtendente == this.NomeAtendente) .FirstOrDefault(); if(atd != null && atd != default(Atendimento)) { Mensagens.ExibirMensagemAlerta(this, "Existe um atendimento agendado dentro do intervalo de bloqueio informado! Por favor informe outro intervalo!"); return; } } if(this.Bloqueios != null && this.Bloqueios.Count > 0) { if(this.ExisteBloqueioNoIntervalo(this.HoraInicio,this.mskHoraFim.Text, this.NomeAtendente)) { Mensagens.ExibirMensagemAlerta(this, "Já existe um bloqueio dentro do intervalo informado!"); return; } } WindowIdentificacao windowIdentificacao = new WindowIdentificacao(); if (PersistenciaParametrizacao.ObterValorParametro("IDENTOPERADORAGENDAMENTO").Equals("S")) { windowIdentificacao.ShowDialog(); if (!windowIdentificacao.AutenticadoComSucesso) { return; } } Bloqueio blq = new Bloqueio(); blq.NomeAtendente = this.NomeAtendente; blq.HoraInicio = this.HoraInicio; blq.HoraFim = this.mskHoraFim.Text; blq.Data = this.DataDoBloqueio; blq.TipoDoBloqueio = this.checkBox.IsChecked.GetValueOrDefault() ? TipoBloqueio.Encaixe : TipoBloqueio.Bloqueio; if(this.BloqueioSelecionado != null && this.BloqueioSelecionado != default(Bloqueio)) { blq.Codigo = this.BloqueioSelecionado.Codigo; PersistenciaBloqueio.AtualizarBloqueio(blq); } else { PersistenciaBloqueio.GravarBloqueio(blq); } if (PersistenciaParametrizacao.ObterValorParametro("IDENTOPERADORAGENDAMENTO").Equals("S")) { HistoricoAlteracaoAtendimento hist = new HistoricoAlteracaoAtendimento(); hist.CodigoOperador = windowIdentificacao.OperadorIdentificado.Codigo; hist.DataOperacao = DateTime.Now; hist.NomeCliente = "BLOQUEIO"; hist.DescricaoOperacao = "BLOQUEIO DE HORÁRIO DE ATENDIMENTO"; hist.NomeAtendente = this.NomeAtendente; hist.NomeOperador = windowIdentificacao.OperadorIdentificado.Nome; hist.DtHoraInicial = DateTime.ParseExact(this.DataDoBloqueio.ToShortDateString() + " " + this.HoraInicio, "dd/MM/yyyy HH:mm", new CultureInfo("pt-BR")); Persistencia.PersistenciaHistoricoAlteracao.Gravar(hist); } Mensagens.ExibirMensagemAlerta(this, "Dados gravados com sucesso!"); }