/// <summary> /// Carrega a lista /// </summary> private static void PreencherLista() { PeriodoVO periodo = new PeriodoVO() { Nome = "Matutino" }; Lista.Add(periodo); periodo = new PeriodoVO() { Nome = "Vespertino" }; Lista.Add(periodo); periodo = new PeriodoVO() { Nome = "Noturno" }; Lista.Add(periodo); }
public void RegistrarPonto(Boolean entrada) { PontoUsuarioVO pontoU = null; DateTime dataNow = DateTime.Now; if (UsuarioLogado.PontosUsuario.Count == 0 || UsuarioLogado.PontosUsuario[UsuarioLogado.PontosUsuario.Count - 1].HoraTermino.HasValue) { pontoU = new PontoUsuarioVO(); pontoU.HoraInicio = dataNow.AddSeconds(-dataNow.Second); pontoU.HoraTermino = null; } else { pontoU = UsuarioLogado.PontosUsuario[UsuarioLogado.PontosUsuario.Count - 1]; pontoU.HoraTermino = dataNow.AddSeconds(-dataNow.Second); if (pontoU.HoraTermino.Value.Date < pontoU.HoraInicio.Date) { this.MostrarMensagem("Erro", "Não é possível dar saída, pois a data de saída é superior a de entrada. Entre em contato com algum administrador.", String.Empty); return; } } DateTime dataMatu = DateTime.Today.AddHours(12); DateTime dataVesp = DateTime.Today.AddHours(18); PeriodoVO p = new PeriodoVO() { Id = pontoU.HoraInicio <= dataMatu ? 1 : pontoU.HoraInicio <= dataVesp ? 2 : 3 }; pontoU.Periodo = p; pontoU.Data = DateTime.Today; pontoU.Usuario = UsuarioLogado; pontoU.Removido = false; new PontoUsuarioBO(pontoU).Salvar(); UsuarioLogado.PontosUsuario = new PontoUsuarioBO().BuscarPontosDoDia(UsuarioLogado); CarregarInformacoesPonto(); this.MostrarMensagem("Sucesso", "Ponto registrado com sucesso.", this.Page.Request.RawUrl); }
private void SalvarPontoUsuario(DirectEventArgs e) { try { PontoUsuarioVO pontoU = new PontoUsuarioVO(); if (base.AcaoTela == Common.AcaoTela.Edicao) pontoU = PontoSelecionado; pontoU.Data = txtData.SelectedDate; pontoU.HoraInicio = pontoU.Data.AddHours(txtHoraInicial.SelectedTime.Hours).AddMinutes(txtHoraInicial.SelectedTime.Minutes); pontoU.HoraTermino = pontoU.Data.AddHours(txtHoraFinal.SelectedTime.Hours).AddMinutes(txtHoraFinal.SelectedTime.Minutes); pontoU.Usuario = new UsuarioVO() { Id = cboUsuario.Value.ToInt32() }; if (pontoU.HoraInicio > pontoU.HoraTermino) { base.MostrarMensagem("Erro", "horário inicial não pode ser superior ao final.", String.Empty); return; } pontoU.Usuario.PontosUsuario = new PontoUsuarioBO().BuscarPontosDoDia(pontoU.Data, pontoU.Usuario); PontoUsuarioVO pontoAux = pontoU.Usuario.PontosUsuario.FirstOrDefault(x => pontoU.Id != x.Id && ((pontoU.HoraInicio >= x.HoraInicio && pontoU.HoraInicio <= x.HoraTermino) || (pontoU.HoraTermino >= x.HoraInicio && pontoU.HoraTermino <= x.HoraTermino) || (pontoU.HoraInicio <= x.HoraInicio && pontoU.HoraTermino >= x.HoraTermino))); if (pontoAux != null) { base.MostrarMensagem("Erro", String.Format("Ponto de usuário conflitante Data => {0}. <br/>Horário inicial => {1}. <br/>Horário de término => {2}", pontoAux.Data.ToString("dd/MM/yyyy"), pontoAux.HoraInicio.ToString("HH:mm"), pontoAux.HoraTermino.Value.ToString("HH:mm")), String.Empty); return; } DateTime dataMatu = pontoU.Data.AddHours(12); DateTime dataVesp = pontoU.Data.AddHours(18); PeriodoVO p = new PeriodoVO(){ Id = pontoU.HoraInicio <= dataMatu ? 1 : pontoU.HoraInicio <= dataVesp ? 2 : 3 }; pontoU.Periodo = p; pontoU.Removido = false; pontoU.Justificativa = txtJustificativa.Text; new PontoUsuarioBO(pontoU).Salvar(); base.MostrarMensagem("Sucesso", "Ponto de usuário gravado com sucesso.", String.Empty); LoadPagina(); winPontosUsuario.Hide(); } catch (Exception ex) { base.MostrarMensagem("Erro", "Erro ao salvar ponto de usuário.", String.Empty); } }