private TimeSpan recuperarHorarioCodigo(string horario, CodigoPonto codigoPonto) { int codigo = 0; TimeSpan time = new TimeSpan(0, 0, 0); if (horario.Length == 2) { codigo = Convert.ToInt32(horario); } else if (horario.Length > 2) { time = DataHoraUtil.recuperarHorarioFormatado(horario, ref codigo); } if (codigo == 13 || codigo == 14 || codigo == 18 || codigo == 68) { codigoPonto.Codigo68 += 1; } else if (codigo == 21) { codigoPonto.Codigo21 += +1; } else if (horario.StartsWith("#") || codigo == 99) { codigoPonto.Codigo99 += +1; } return(time); }
private List <Tarefa> recuperarListaTarefa(string[] linhas) { FuncionarioDAO fDAO = new FuncionarioDAO(); List <Funcionario> listaCacheFuncionario = fDAO.Recuperar(); List <Tarefa> listaTarefa = new List <Tarefa>(); for (int i = 1; i < linhas.Length; i++) { string[] linha = linhas[i].Replace("\"", "").Split('\t'); Tarefa tarefa = new Tarefa(); tarefa.Tipo = linha[0]; tarefa.Id = Convert.ToInt32(linha[1]); tarefa.Titulo = linha[2]; tarefa.CriadoPor = identificarFuncionario(linha[3], listaCacheFuncionario); tarefa.Responsavel = identificarFuncionario(linha[4], listaCacheFuncionario); tarefa.Status = linha[5]; tarefa.PlanejadoPara = linha[6]; tarefa.Pai = linha[7].Replace("#", ""); tarefa.DataCriacao = Convert.ToDateTime(linha[8]); tarefa.DataModificacao = Convert.ToDateTime(linha[9]); tarefa.Projeto = Convert.ToInt32(linha[10]); tarefa.Classificacao = linha[11]; tarefa.Estimativa = DataHoraUtil.formatarHora(linha[12]); tarefa.TempoGasto = DataHoraUtil.formatarHora(linha[13]); listaTarefa.Add(tarefa); } return(listaTarefa); }
private void calcularCodigos(List <Siscop> listaSiscop, CodigoPonto codigoPonto, string[] linhas) { foreach (Siscop item in listaSiscop) { TimeSpan time1 = recuperarHorarioCodigo(item.Entrada1, codigoPonto); TimeSpan time2 = recuperarHorarioCodigo(item.Saida1, codigoPonto); TimeSpan time3 = recuperarHorarioCodigo(item.Entrada2, codigoPonto); TimeSpan time4 = recuperarHorarioCodigo(item.Saida2, codigoPonto); string diffManha = recuperarDiferencaHoras(item.Entrada1.Trim(), 1, item.Saida1.Trim(), 2, linhas, item.Responsavel.Nome); string diffTarde = recuperarDiferencaHoras(item.Entrada2.Trim(), 3, item.Saida2.Trim(), 4, linhas, item.Responsavel.Nome); string totalDia = DataHoraUtil.calcularTotalDia(diffManha, diffTarde); if (totalDia.Length > 2 && Convert.ToInt32(totalDia.Substring(0, 2)) > 10) { codigoPonto.Maior10 += 1; } if ((time1.Hours > 0 && time1.Hours < 7) || time4.Hours > 20) { codigoPonto.Maior21 += 1; } codigoPonto.Flex = 0; if (diffManha.Length >= 5 && (Convert.ToInt32(diffManha.Substring(0, 2)) < 3 || (Convert.ToInt32(diffManha.Substring(0, 2)) == 5 && Convert.ToInt32(diffManha.Substring(3, 2)) > 0))) { codigoPonto.Turno35 += 1; } if (diffTarde.Length >= 5 && (Convert.ToInt32(diffTarde.Substring(0, 2)) < 3 || (Convert.ToInt32(diffTarde.Substring(0, 2)) == 5 && Convert.ToInt32(diffTarde.Substring(3, 2)) > 0))) { codigoPonto.Turno35 += 1; } if (diffManha.Length > 2 && Convert.ToInt32(diffManha.Substring(0, 2)) > 5 && Convert.ToInt32(diffTarde.Substring(3, 2)) > 0) { codigoPonto.Turno6 += 1; } if (diffTarde.Length > 2 && Convert.ToInt32(diffTarde.Substring(0, 2)) > 5 && Convert.ToInt32(diffTarde.Substring(3, 2)) > 0) { codigoPonto.Turno6 += 1; } string diffAlmoco = recuperarDiferencaHoras(item.Saida1.Trim(), 2, item.Entrada2.Trim(), 3, linhas, item.Responsavel.Nome); if (diffAlmoco.Length > 2 && Convert.ToInt32(diffAlmoco.Substring(0, 2)) < 1) { codigoPonto.Intervalo1 += 1; } if (diffAlmoco.Length > 2 && Convert.ToInt32(diffAlmoco.Substring(0, 2)) > 1) { codigoPonto.Intervalo2 += 1; } } }
private string recuperarDiferencaHoras(string horario1, int opcao1, string horario2, int opcao2, string[] linhas, string nome) { if (horario1.Length == 0 || horario2.Length == 0 || (horario1.Length == 2 && !horario1.Equals("21")) || (horario2.Length == 2 && !horario2.Equals("21"))) { return(""); } TimeSpan time1 = DataHoraUtil.recuperarHora(horario1, linhas, nome, opcao1); TimeSpan time2 = DataHoraUtil.recuperarHora(horario2, linhas, nome, opcao2); return(time2.Subtract(time1).ToString().Substring(0, 5)); }
public void realizarUpload(String file) { string[] lines = System.IO.File.ReadAllLines(file); if (Util.validarArquivoTarefa(lines[0]) == true) { List <Funcionario> listaCacheFuncionario = new List <Funcionario>(); TarefaDAO tDAO = new TarefaDAO(); List <Tarefa> listaCacheTarefa = tDAO.recuperar(); List <Tarefa> listaTarefaIncluir = new List <Tarefa>(); List <Tarefa> listaTarefaAtualizar = new List <Tarefa>(); List <Tarefa> listaTarefaHistorico = new List <Tarefa>(); for (int i = 1; i < lines.Length; i++) { string[] linha = lines[i].Replace("\"", "").Split('\t'); Tarefa t = new Tarefa(); // t.Codigo = reader.GetInt32(0); t.Tipo = linha[0]; t.Id = Convert.ToInt32(linha[1]); t.Titulo = linha[2]; t.Status = linha[4]; t.PlanejadoPara = linha[5]; t.Estimativa = DataHoraUtil.formatarHora(linha[6]); t.EstimativaCorrigida = DataHoraUtil.formatarHora(linha[7]); t.TempoGasto = DataHoraUtil.formatarHora(linha[8]); t.Pai = linha[9].Replace("#", ""); t.DataColeta = Convert.ToDateTime(txtData.Text); String responsavel = linha[3]; t.Responsavel = recuperarFuncionario(listaCacheFuncionario, responsavel); if (!existeTarefa(listaCacheTarefa, t)) { listaTarefaIncluir.Add(t); } else { listaTarefaAtualizar.Add(t); } listaTarefaHistorico.Add(t); } if (listaTarefaIncluir.Count > 0) { tDAO.incluir(listaTarefaIncluir); } if (listaTarefaAtualizar.Count > 0) { tDAO.atualizar(listaTarefaAtualizar); } if (listaTarefaHistorico.Count > 0) { TarefaHistoricoDAO thDAO = new TarefaHistoricoDAO(); thDAO.incluir(listaTarefaHistorico); } Alerta alerta = new Alerta("Arquivo incluido com sucesso!"); alerta.Show(); preencherLista(new Dictionary <string, string>()); } else { Alerta alerta = new Alerta("Arquivo invalido"); alerta.Show(); } }
private void executarAcao(DataGrid grid, int opcao, bool inteiro) { if (validarExibicaoTabela()) { int ano = Convert.ToInt32(((ComboBoxItem)cmbAno.SelectedItem).Content); int mes = Convert.ToInt32(((ComboBoxItem)cmbMes.SelectedItem).Content); DateTime dtInicio = new DateTime(ano, mes, 1); DateTime dtFim = new DateTime(ano, mes, DataHoraUtil.recuperarDiaFinalMes(ano, mes)); FuncionarioDAO fDAO = new FuncionarioDAO(); List <Funcionario> listaFuncionario = new List <Funcionario>(); foreach (ListBoxItem item in lstFuncionario.SelectedItems) { int codigo = Convert.ToInt32(item.Tag); listaFuncionario.Add(fDAO.Recuperar(codigo)); } SiscopBO tDAO = new SiscopBO(); ApropriacaoBO apropBO = new ApropriacaoBO(); List <Siscop> listaSiscop = new List <Siscop>(); Dictionary <DateTime, decimal> apropriacaoPorDia = new Dictionary <DateTime, decimal>(); foreach (Funcionario func in listaFuncionario) { listaSiscop.AddRange(tDAO.recuperarSiscopPorResponsavel(func.Codigo, dtInicio, dtFim)); apropriacaoPorDia = apropBO.recuperarApropriacaoPorResponsavelPorDia(func.Nome, dtInicio, dtFim); } DataTable tabela = new DataTable(); if (opcao == OpcaoIndicadorPonto.PONTO_BATIDO) { object[] listaColunas = { "Data", "Apropriado", "Total", "Manha", "Almoco", "Tarde", "Extra", "Entrada 1", "Saida 1", "Entrada 2", "Saida 2", "Extra 1", "Extra 2" }; foreach (string str in listaColunas) { tabela.Columns.Add(Convert.ToString(str)); } string file = @"C:\workspace-vs\DE607\csharp\GEP_DE607\GEP_DE607\Csv\siscopPadrao.csv"; string[] linhas = System.IO.File.ReadAllLines(file); decimal totalHorarioApropriado = 0; decimal totalPontoMes = 0; foreach (Siscop item in listaSiscop) { object[] linha = new object[listaColunas.Count()]; linha[0] = item.Data.ToShortDateString(); decimal horarioApropriado = recuperarHorarioApropriado(apropriacaoPorDia, item.Data); linha[1] = horarioApropriado; totalHorarioApropriado += horarioApropriado; string diffManha = recuperarDiferencaHoras(item.Entrada1.Trim(), 1, item.Saida1.Trim(), 2, linhas, item.Responsavel.Nome); linha[3] = diffManha; string diffAlmoco = recuperarDiferencaHoras(item.Saida1.Trim(), 2, item.Entrada2.Trim(), 3, linhas, item.Responsavel.Nome); linha[4] = diffAlmoco; string diffTarde = recuperarDiferencaHoras(item.Entrada2.Trim(), 3, item.Saida2.Trim(), 4, linhas, item.Responsavel.Nome); linha[5] = diffTarde; //07:45 string totalDia = DataHoraUtil.calcularTotalDia(diffManha, diffTarde); if (totalDia.Length > 0) { Decimal total = Convert.ToDecimal(totalDia.Substring(0, 2)) + Convert.ToDecimal(totalDia.Substring(3, 2)) / 60; totalPontoMes += total; linha[2] = total.ToString("#.#"); } else { linha[2] = totalDia; } linha[6] = ""; linha[7] = item.Entrada1; linha[8] = item.Saida1; linha[9] = item.Entrada2; linha[10] = item.Saida2; linha[11] = item.Extra1; linha[12] = item.Extra2; tabela.Rows.Add(linha); } lblTotalApropriadoMes.Content = totalHorarioApropriado.ToString("#.#"); lblTotalPontoMes.Content = totalPontoMes.ToString("#.#"); } else if (opcao == OpcaoIndicadorPonto.CODIGO_PONTO) { object[] listaColunas = { "Codigo 68/13/14/18", "Codigo 21", "Codgo #/99", "> 10", "<7 ou >21", "Flex", "T <3 >5", "T >6", "Int <1", "Int >2" }; foreach (string str in listaColunas) { tabela.Columns.Add(Convert.ToString(str)); } string file = @"C:\workspace-vs\DE607\csharp\GEP_DE607\GEP_DE607\Csv\siscopPadrao.csv"; string[] linhas = System.IO.File.ReadAllLines(file); CodigoPonto codigoPonto = new CodigoPonto(); calcularCodigos(listaSiscop, codigoPonto, linhas); object[] linha = new object[listaColunas.Count()]; linha[0] = codigoPonto.Codigo68; linha[1] = codigoPonto.Codigo21; linha[2] = codigoPonto.Codigo99; linha[3] = codigoPonto.Maior10; linha[4] = codigoPonto.Maior21; linha[5] = codigoPonto.Flex; linha[6] = codigoPonto.Turno35; linha[7] = codigoPonto.Turno6; linha[8] = codigoPonto.Intervalo1; linha[9] = codigoPonto.Intervalo2; tabela.Rows.Add(linha); } baseWindow.preencherGrid(grid, tabela, 80); } }