private void EditarHora(HorasFuncionario horas) { EditarHorasWindow editarUltimo = new EditarHorasWindow(horas, Func); editarUltimo.ShowDialog(); RefreshList(Func).ConfigureAwait(true); }
/// <summary> /// Janela de edição do último registro de hora adicionado /// </summary> public EditarHorasWindow(HorasFuncionario horasFuncionario, Funcionario funcionario) { Horas = horasFuncionario; Func = funcionario; InitializeComponent(); RegistroParaAlterar(); }
private void PreecncheTxtBox(HorasFuncionario horasFuncionario) { txtEntrada.Text = horasFuncionario.Entrada.ToString(); txtSaidaAlmoco.Text = horasFuncionario.HoraSaidaAlmoco.ToString(); txtRetornoAlmoco.Text = horasFuncionario.HoraRetornoAlmoco.ToString(); txtSaida.Text = horasFuncionario.Saida.ToString(); txtExtras.Text = horasFuncionario.Extras.ToString(); }
/// <summary> /// Janela de confirmação de horas adicionadas /// </summary> /// <param name="horasFuncionario">Objeto hora funcionário para adição</param> /// <param name="funcionario">Objeto hora funcionário ao qual pertence as horas</param> public ConfirmacaoWindow(HorasFuncionario horasFuncionario, Funcionario funcionario) { InitializeComponent(); Horas = horasFuncionario; if (Horas != null) { PreecncheTxtBox(Horas); } Func = funcionario; }
public ActionResult Update(string id, HorasFuncionario employeeHoursIn) { var hours = _employeeHoursService.Get(id); if (hours == null) { return(NotFound()); } _employeeHoursService.Update(employeeHoursIn); return(NoContent()); }
/// <summary> /// Deleta um registro de horas de um funcionário /// </summary> /// <param name="employeeHoursToDelete">Objeto horas funcionario a ser deletado</param> /// <returns>Retorna o codigo http com o status da transação</returns> public static async Task <HttpStatusCode> DeleteEmployeeHoursAsync(HorasFuncionario employeeHoursToDelete) { if (employeeHoursToDelete == null) { return(HttpStatusCode.NotFound); } Uri uri = new Uri(httpClient.BaseAddress + $"api/employeeHours/{employeeHoursToDelete.Id}"); HttpResponseMessage response = await httpClient.DeleteAsync(uri).ConfigureAwait(true); return(response.StatusCode); }
/// <summary> /// Atualiza um registro de horas de um funcionário. /// </summary> /// <param name="horasFuncionarioIn">Objeto horas funcionário alterado</param> /// <returns>Retorna um objeto funconário com as alterações feitas</returns> public static async Task <HorasFuncionario> UpdateEmployeeHoursAsync(HorasFuncionario horasFuncionarioIn) { if (horasFuncionarioIn == null) { return(null); } HttpResponseMessage response = await httpClient.PutAsJsonAsync($"api/employeeHours/{horasFuncionarioIn.Id}", horasFuncionarioIn).ConfigureAwait(true); response.EnsureSuccessStatusCode(); horasFuncionarioIn = await response.Content.ReadAsAsync <HorasFuncionario>().ConfigureAwait(true); return(horasFuncionarioIn); }
/// <summary> /// Otem um resgitro de horas. /// </summary> /// <param name="id">Id do registro de horas</param> /// <returns>Retorna um objeto horas funcionário</returns> public static async Task <HorasFuncionario> GetEmployeeHoursAsync(string id) { HorasFuncionario employeeHours = null; Uri uri = new Uri(httpClient.BaseAddress + $"api/employeeHours/{id}"); HttpResponseMessage response = await httpClient.GetAsync(uri).ConfigureAwait(true); if (response.IsSuccessStatusCode) { employeeHours = await response.Content.ReadAsAsync <HorasFuncionario>().ConfigureAwait(true); } return(employeeHours); }
private async Task AddMarcacaoPonto(HorasFuncionario horas) { if (horas.Extras.Minutes != 0 || horas.Extras.Hours != 0) { BancoDeHoras bancoDeHoras = new BancoDeHoras(horas.Extras, "Horas Extras", horas.DataRegistro, Func.Registro); await AddBancoDeHoras(bancoDeHoras).ConfigureAwait(true); } try { await ClientApi.CreateEmployeeHoursAsync(horas).ConfigureAwait(true); } catch (HttpRequestException e) { MessageBox.Show(e.Message); } }
/// <summary> /// Adiciona um registro de horas a um funcionário /// </summary> /// <param name="employeeHoursIn">Objeto horas funcionário a ser adicionado</param> /// <returns>Retorna uma tarefa</returns> public static async Task CreateEmployeeHoursAsync(HorasFuncionario employeeHoursIn) { HttpResponseMessage response = await httpClient.PostAsJsonAsync("api/employeeHours/", employeeHoursIn).ConfigureAwait(true); try { response.EnsureSuccessStatusCode(); Console.WriteLine(response.Headers.Location); } catch (HttpRequestException e) { Console.WriteLine(e.Message); throw; } }
private async void BtnDeletar_Click(object sender, RoutedEventArgs e) { HorasFuncionario horas = (HorasFuncionario)Listhoras.SelectedItem; HorasFuncionario horasFuncionario = await ClientApi.GetEmployeeHoursAsync(horas.Id).ConfigureAwait(true); if (MessageBox.Show("Deseja realmente deletar?", "Confirmar", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { if (horasFuncionario != null) { if (horasFuncionario.Extras != (new TimeSpan(0, 0, 0))) { BancoDeHoras removerDoBancoDeHoras = new BancoDeHoras(-horasFuncionario.Extras, "Registro deletado", horasFuncionario.DataRegistro, Func.Registro); await ClientApi.CreateBankHoursAsync(removerDoBancoDeHoras).ConfigureAwait(true); } else { BancoDeHoras JustificativaBancoDeHoras = new BancoDeHoras(new TimeSpan(0, 0, 0), "Registro deletado", horasFuncionario.DataRegistro, Func.Registro); await ClientApi.CreateBankHoursAsync(JustificativaBancoDeHoras).ConfigureAwait(true); } await ClientApi.DeleteEmployeeHoursAsync(horas).ConfigureAwait(true); await RefreshList(Func).ConfigureAwait(true); horasFuncionario = await ClientApi.GetEmployeeHoursAsync(horas.Id).ConfigureAwait(true); if (horasFuncionario == null) { MessageBox.Show("Registro deletado com sucesso!"); } } else { MessageBox.Show("Não há registros na data selecionada!"); } } }
public ActionResult Create(HorasFuncionario employeeHours) { _employeeHoursService.Create(employeeHours); return(CreatedAtRoute("GetById", new { id = employeeHours.Id }, employeeHours)); }
/// <summary> /// Evento click do botão adicionar, esse é o principal botão da interface /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void BtnAdicionar_Click(object sender, RoutedEventArgs e) { try { DateTime dataSelecionada = DPdata.SelectedDate.Value; await RefreshList(Func).ConfigureAwait(true); if (timePickerExtras.SelectedTime.HasValue) { TimeSpan HorasExtras = new TimeSpan(timePickerExtras.SelectedTime.Value.Hour, timePickerExtras.SelectedTime.Value.Minute, 0); switch (MessageBox.Show("Deseja incluir hora extra manualmente? \nSelecione Sim para INCLUIR \nSelecione Não para REMOVER", "Confirmar Inclusão de Horas", MessageBoxButton.YesNoCancel, MessageBoxImage.Question)) { case MessageBoxResult.Yes: await ClientApi.CreateBankHoursAsync(new BancoDeHoras(HorasExtras, "Hora adicionada manualmente", dataSelecionada, Func.Registro)).ConfigureAwait(true); break; case MessageBoxResult.No: HorasExtras = -HorasExtras; await ClientApi.CreateBankHoursAsync(new BancoDeHoras(HorasExtras, "Hora removida manualmente", dataSelecionada, Func.Registro)).ConfigureAwait(true); break; } await RefreshList(Func).ConfigureAwait(true); return; } TimeSpan entrada; if (!timePickerEntrada.SelectedTime.HasValue) { entrada = new TimeSpan(0, 0, 0); } else { entrada = new TimeSpan(timePickerEntrada.SelectedTime.Value.Hour, timePickerEntrada.SelectedTime.Value.Minute, 0); } TimeSpan saida; if (!timePickerSaida.SelectedTime.HasValue) { saida = new TimeSpan(0, 0, 0); } else { saida = new TimeSpan(timePickerSaida.SelectedTime.Value.Hour, timePickerSaida.SelectedTime.Value.Minute, 0); } TimeSpan almocoSaida; if (!timePickerSaidaAlmoco.SelectedTime.HasValue) { almocoSaida = Func.HoraSaidaAlmoco; } else { almocoSaida = new TimeSpan(timePickerSaidaAlmoco.SelectedTime.Value.Hour, timePickerSaidaAlmoco.SelectedTime.Value.Minute, 0); } TimeSpan retornoAlmoco; if (!timePickerRetornoAlmoco.SelectedTime.HasValue) { retornoAlmoco = Func.HoraRetornoAlmoco; } else { retornoAlmoco = new TimeSpan(timePickerRetornoAlmoco.SelectedTime.Value.Hour, timePickerRetornoAlmoco.SelectedTime.Value.Minute, 0); } TimeSpan totalHoraAlmoco = Func.HoraRetornoAlmoco.Subtract(Func.HoraSaidaAlmoco); TimeSpan horaTrabalho = Func.HoraTermino.Subtract(Func.HoraInicio).Subtract(totalHoraAlmoco); HorasFuncionario horas = new HorasFuncionario(entrada, saida, almocoSaida, retornoAlmoco, Func.Registro, dataSelecionada); HorasFuncionario horaAlterar = null; if (Listhoras.ItemsSource != null) { foreach (HorasFuncionario b1 in Listhoras.ItemsSource) { if (b1.DataRegistro.ToShortDateString() == dataSelecionada.ToShortDateString()) { horaAlterar = b1; } } } if (horaAlterar != null) { if (MessageBox.Show("Já existe registro com essa data, deseja alterar?", "Hora Existente", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { EditarHora(horaAlterar); return; } } else if (dataSelecionada.DayOfWeek.ToString().ToUpper(CultureInfo.InvariantCulture).Equals("SATURDAY", StringComparison.InvariantCulture) || dataSelecionada.DayOfWeek.ToString().ToUpper(CultureInfo.InvariantCulture).Equals("SUNDAY", StringComparison.InvariantCulture)) { if (MessageBox.Show($"Proximo registro é { (dataSelecionada.DayOfWeek.ToString() == "Saturday" ? "Sabado" : "Domingo") } confirma a inclusão?", "Confirmar", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { if (entrada == new TimeSpan(0, 0, 0)) { almocoSaida = new TimeSpan(0, 0, 0); retornoAlmoco = new TimeSpan(0, 0, 0); } horas = new HorasFuncionario(entrada, saida, almocoSaida, retornoAlmoco, Func.Registro, dataSelecionada); horas.CalculaExtras(new TimeSpan(0, 0, 0)); //Horario de trabalho em branco pois não há expediente normal. ConfirmacaoWindow confirmacaoWindow = new ConfirmacaoWindow(horas, Func); confirmacaoWindow.ShowDialog(); } else { horas = new HorasFuncionario(new TimeSpan(0, 0, 0), new TimeSpan(0, 0, 0), new TimeSpan(0, 0, 0), new TimeSpan(0, 0, 0), Func.Registro, dataSelecionada); horas.CalculaExtras(new TimeSpan(0, 0, 0)); ConfirmacaoWindow confirmacaoWindow = new ConfirmacaoWindow(horas, Func); confirmacaoWindow.ShowDialog(); } } else { if (!timePickerEntrada.SelectedTime.HasValue && !timePickerSaida.SelectedTime.HasValue) { switch (MessageBox.Show("Não foi informado hora de entrada e saida para esse funcionario.\nSelecione Sim para marcar como falta total.\nSelecione Não para falta justificada.", "Verificar Falta", MessageBoxButton.YesNoCancel, MessageBoxImage.Question)) { case MessageBoxResult.Yes: horas.HoraSaidaAlmoco = new TimeSpan(0, 0, 0); horas.HoraRetornoAlmoco = new TimeSpan(0, 0, 0); horas.CalculaExtras(horaTrabalho); break; case MessageBoxResult.No: horas.HoraSaidaAlmoco = new TimeSpan(0, 0, 0); horas.HoraRetornoAlmoco = new TimeSpan(0, 0, 0); TimeSpan extras = horas.CalculaExtras(new TimeSpan(0, 0, 0)); await ClientApi.CreateBankHoursAsync(new BancoDeHoras(extras, $"Falta abonada em {DateTime.Now.ToShortDateString()}", dataSelecionada, Func.Registro)).ConfigureAwait(true); break; case MessageBoxResult.Cancel: return; } } else if (!timePickerEntrada.SelectedTime.HasValue) { if (MessageBox.Show("Não foi informado hora de entrada para esse funcionario.\nDeseja marcar como falta parcial?", "Verificar Falta", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { if (horas.HoraRetornoAlmoco != new TimeSpan(0, 0, 0)) { horas.HoraSaidaAlmoco = new TimeSpan(0, 0, 0); horas.CalculaExtras(horaTrabalho); } else { MessageBox.Show("Existe campos em branco!"); return; } } else { return; } } else if (!timePickerSaida.SelectedTime.HasValue) { if (MessageBox.Show("Não foi informado hora de saida para esse funcionario\nDeseja marcar como falta parcial?", "Verificar Falta", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { if (horas.HoraSaidaAlmoco != new TimeSpan(0, 0, 0)) { horas.HoraRetornoAlmoco = new TimeSpan(0, 0, 0); horas.CalculaExtras(horaTrabalho); } else { MessageBox.Show("Existe campos em branco!"); return; } } else { return; } } else { horas.CalculaExtras(horaTrabalho); if (horas.Extras <= new TimeSpan(0, 10, 0) && horas.Extras >= new TimeSpan(0, -10, 0)) { horas.Extras = new TimeSpan(0, 0, 0); } } ConfirmacaoWindow confirmacaoWindow = new ConfirmacaoWindow(horas, Func); confirmacaoWindow.ShowDialog(); } await RefreshList(Func).ConfigureAwait(true); DPdata.SelectedDate = dataSelecionada.AddDays(1); } catch (FormatException ex) { MessageBox.Show(ex.Message); } }
public void Update(HorasFuncionario employeerHours) => _employeeHoras.ReplaceOne(empHours => empHours.Funcionario == employeerHours.Funcionario && empHours.DataRegistro == employeerHours.DataRegistro, employeerHours);
public void Create(HorasFuncionario employeerHours) => _employeeHoras.InsertOne(employeerHours);