private void btnAumentarTempo_Click(object sender, RoutedEventArgs e) { if (this.lstServicos.SelectedItems.Count == 0) { return; } Agendamento agd = (Agendamento)this.lstServicos.SelectedItem; if (this.TempoMaxProxAtendimento > -1 && 10 > this.TempoMaxProxAtendimento) { Mensagens.ExibirMensagemAlerta(this, string.Format("Não é possível aumentar mais o tempo. Existem apenas {0} minutos disponíveis!", this.TempoMaxProxAtendimento)); return; } if ((agd.TempoAtendimento + 10) > 30) { Mensagens.ExibirMensagemAlerta(this, "Não é possível aumentar mais o tempo. O tempo de atendimento máximo é 30min!"); return; } WindowIdentificacao windowIdentificacao = new WindowIdentificacao(); if (PersistenciaParametrizacao.ObterValorParametro("IDENTOPERADORAGENDAMENTO").Equals("S")) { windowIdentificacao.ShowDialog(); if (!windowIdentificacao.AutenticadoComSucesso) { return; } } this.TempoMaxProxAtendimento -= 10; agd.TempoAtendimento += 10; Persistencia.PersistenciaAtendimento.AtualizarAgendamento(agd); Log.RegistrarMensagemLog("Agendamento do serviço " + agd.ServicoAgendado.Nome + " para o clente " + this.AtendimentoCliente.Cliente.Nome + " foi ajustado com um tempo maior!"); if (PersistenciaParametrizacao.ObterValorParametro("IDENTOPERADORAGENDAMENTO").Equals("S")) { this.GravarRegistroAlteracao(this.AtendimentoCliente, windowIdentificacao.OperadorIdentificado.Codigo, windowIdentificacao.OperadorIdentificado.Nome, string.Format("AUMENTOU O TEMPO DO SERVIÇO."), agd); } this.CarregarItensNaLista(); }
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!"); }
private void btnExcluir_Click(object sender, RoutedEventArgs e) { if (this.lstServicos.SelectedItems.Count == 0) { return; } if (this.lstServicos.Items.Count == 1) { Mensagens.ExibirMensagemAlerta(this, "Um atendimento deve possuir no mínimo UM serviço."); return; } WindowIdentificacao windowIdentificacao = new WindowIdentificacao(); if (PersistenciaParametrizacao.ObterValorParametro("IDENTOPERADORAGENDAMENTO").Equals("S")) { windowIdentificacao.ShowDialog(); if (!windowIdentificacao.AutenticadoComSucesso) { return; } } Agendamento agd = (Agendamento)this.lstServicos.SelectedItem; Persistencia.PersistenciaAtendimento.ExcluirAgendamento(agd); this.AtendimentoCliente.Agendamentos.Remove(agd); Log.RegistrarMensagemLog("Agendamento do serviço " + agd.ServicoAgendado.Nome + " para o clente " + this.AtendimentoCliente.Cliente.Nome + " foi removido!"); if (PersistenciaParametrizacao.ObterValorParametro("IDENTOPERADORAGENDAMENTO").Equals("S")) { this.GravarRegistroAlteracao(this.AtendimentoCliente, windowIdentificacao.OperadorIdentificado.Codigo, windowIdentificacao.OperadorIdentificado.Nome, string.Format("EXCLUSÃO DO SERVIÇO."), agd); } this.CarregarItensNaLista(); }
private async void btnCadastro_Click(object sender, RoutedEventArgs e) { if (!this.maskedTextBox.IsMaskCompleted) { Mensagens.ExibirMensagemAlerta(this, "O telefone do cliente deve ser preenchido!"); } if (String.IsNullOrEmpty(this.txtNome.Text) || String.IsNullOrWhiteSpace(this.txtNome.Text)) { Mensagens.ExibirMensagemAlerta(this, "O nome do cliente deve ser preenchido!", this.txtNome); return; } if (this.lstServicosSelecionados.Items.Count == 0) { Mensagens.ExibirMensagemAlerta(this, "Pelo menos um serviço deve ser selecionado!"); return; } this.Atendimento = ObterAtendimento(); //obtem atendimento a partir dos dados da tela if (this.Atendimento.Agendamentos.Where(agd => agd.TempoAtendimento < 30).Count() > 0) { int qtTempoTotalAtendimento = this.Atendimento.Agendamentos.Sum(agd => agd.TempoAtendimento); MetroWindow wnd = ((MetroWindow)this); wnd.MetroDialogOptions.ColorScheme = MetroDialogColorScheme.Accented; var ret = await ShowMessage(this, string.Format("O tempo total de atendimento para {0} serviço(s) será de {1} minutos. Deseja continuar?", this.Atendimento.Agendamentos.Count(), qtTempoTotalAtendimento), MessageDialogStyle.AffirmativeAndNegative); if (ret != MessageDialogResult.Affirmative) { return; } } WindowIdentificacao wident = new WindowIdentificacao(); bool IdentificarOperador = Persistencia.PersistenciaParametrizacao.ObterValorParametro("IDENTOPERADORAGENDAMENTO").Equals("S"); if (IdentificarOperador) { wident.ShowDialog(); if(!wident.AutenticadoComSucesso) { return; } } if (this.CarregarEstadoAlteracao) { Persistencia.PersistenciaAtendimento.AtualizarAtendimento(this.Atendimento); this.AtualizarAgendamentos(this.Atendimento); this.GravarDadosDoCliente(this.Atendimento.Cliente); Mensagens.ExibirMensagemAlerta(this, "Alteração realizada com sucesso!"); if(IdentificarOperador) { this.GravarRegistroAlteracao(this.Atendimento, wident.OperadorIdentificado.Codigo, wident.OperadorIdentificado.Nome, "ALTERAÇÃO REALIZADA PELA TELA DE AGENDAMENTO."); } return; } this.Finalizar(); if (IdentificarOperador) { this.GravarRegistroAlteracao(this.Atendimento, wident.OperadorIdentificado.Codigo, wident.OperadorIdentificado.Nome, "INCLUSÃO REALIZADA PELA TELA DE AGENDAMENTO."); } }