public ExtrairColaboradoresPendentesResponseMessage Handle(ExtrairColaboradoresPendentesRequestMessage message)
        {
            List <string> errors = new List <string>();

            try
            {
                //List<Planilha> planilhas = _planilhaRepository.GetAll();
                List <Planilha> planilhas          = _planilhaRepository.GetByMonth(message.NumeroMes);
                List <Usuario>  usuariosConcluidos = new List <Usuario>();
                foreach (var planilha in planilhas)
                {
                    _excelService.SetSource(planilha.CaminhoFonte);
                    string  nomeUsuario = _excelService.Sheet("Horários").GetAfter("Nome:");
                    Usuario usuario     = _aDService.GetByName(nomeUsuario);
                    usuariosConcluidos.Add(usuario);
                }
                List <Usuario>        todosUsuarios     = _aDService.GetAll();
                IEnumerable <Usuario> usuariosPendentes = todosUsuarios.Except(usuariosConcluidos);

                _excelService.Create(message.WorkbookName, message.SheetName);

                int row = 1;
                foreach (var usuarioPendente in usuariosPendentes)
                {
                    _excelService.Write(usuarioPendente.CentroCusto).On(row, 1);
                    _excelService.Write(usuarioPendente.Email).On(row, 2);
                    _excelService.Write(usuarioPendente.Nome).On(row, 3);
                    row++;
                }

                #region TODELETEAFTER
                //for (int row = 1; row <= usuariosPendentes.Count(); row++)
                //{
                //    _excelService.Write(usuariosPendentes.ElementAt(row - 1).CentroCusto).On(row, 1);
                //    _excelService.Write(usuariosPendentes.ElementAt(row - 1).Email).On(row, 2);
                //    _excelService.Write(usuariosPendentes.ElementAt(row - 1).Nome).On(row, 3);
                //}
                #endregion
            }
            catch (Exception ex)
            {
                errors.Add(ex.Message);
            }

            return(new ExtrairColaboradoresPendentesResponseMessage(!errors.Any(), errors));
        }
示例#2
0
        public ExtrairCalculoResponseMessage Handle(ExtrairCalculoRequestMessage message)
        {
            //List<Planilha> planilhas = _planilhaRepository.GetAll();
            List <Planilha>  planilhas  = _planilhaRepository.GetByMonth(message.Mes);
            List <Usuario>   usuarios   = new List <Usuario>();
            List <Relatorio> relatorios = new List <Relatorio>();

            var errors = new List <string>();

            foreach (var planilha in planilhas)
            {
                _excelService.SetSource(planilha.CaminhoFonte);

                string  nomeUsuario = _excelService.Sheet("Horários").GetAfter("Nome:");
                Usuario usuario     = _aDService.GetByName(nomeUsuario);
                errors = new List <string>();

                _pontoRepository.SetSource(_excelService);
                List <Ponto> pontos = new List <Ponto>();
                try
                {
                    pontos = _pontoRepository.GetAll();
                }
                catch (Exception ex)
                {
                }
                foreach (var ponto in pontos)
                {
                    if (!ponto.PontoValido())
                    {
                        errors.Add($"Há erros de validade com o ponto {ponto.Data}");
                        errors.AddRange(ponto.Events.Where(a => !a.Success).Select(x => x.Message));
                    }
                }
                usuario.RegistrarPonto(pontos);
                Relatorio relatorio = new Relatorio(usuario, planilha, errors);
                relatorios.Add(relatorio);

                //usuarios.Add(usuario);
            }
            _excelService.SetSource(message.CaminhoPlanilhaRelatorio);
            _excelService.Sheet("Banco de horas").CleanSheet(2);
            _excelService.Save();

            int row = 2;

            foreach (var relatorio in relatorios)
            {
                _excelService.Sheet("Banco de horas").Write(relatorio.Usuario.CentroCusto.ToString()).On(row, 1);
                _excelService.Sheet("Banco de horas").Write(relatorio.Usuario.Email.ToString()).On(row, 2);
                _excelService.Sheet("Banco de horas").Write(relatorio.Usuario.Nome.ToString()).On(row, 3);
                _excelService.Sheet("Banco de horas").Write(relatorio.Usuario.Saldo.Duration().ToString()).On(row, 4);

                string evento = relatorio.Usuario.Saldo < TimeSpan.Zero ? "Negativo" : "Positivo";
                _excelService.Sheet("Banco de horas").Write(evento).On(row, 5);

                var diasAbonado = relatorio.Usuario.Pontos.Where(x => x.Abono == Ponto.TipoAbono.Abono || x.Abono == Ponto.TipoAbono.Declaracao).Count();
                _excelService.Write(diasAbonado.ToString()).On(row, 6);

                _excelService.Sheet("Banco de horas").Write(relatorio.Planilha.CaminhoFonte).On(row, 7);

                string erros = string.Join(", ", relatorio.Erros);
                _excelService.Sheet("Banco de horas").Write(erros).On(row, 8);

                _excelService.Save();
                row++;
            }
            #region TODELETEAFTER
            //for (int row = 2; row <= relatorios.Count; row++)
            //{

            //_excelService.Sheet("Banco de horas").Write(relatorios.ElementAt(row - 2).Usuario.CentroCusto.ToString()).On(row, 1);
            //_excelService.Sheet("Banco de horas").Write(relatorios.ElementAt(row - 2).Usuario.Email.ToString()).On(row, 2);
            //_excelService.Sheet("Banco de horas").Write(relatorios.ElementAt(row - 2).Usuario.Nome.ToString()).On(row, 3);
            //_excelService.Sheet("Banco de horas").Write(relatorios.ElementAt(row - 2).Usuario.Saldo.Duration().ToString()).On(row, 4);

            //string evento = relatorios.ElementAt(row - 2).Usuario.Saldo < TimeSpan.Zero ? "Negativo" : "Positivo";
            //_excelService.Sheet("Banco de horas").Write(evento).On(row, 5);

            //var diasAbonado = relatorios.ElementAt(row - 2).Usuario.Pontos.Where(x => x.Abono == Ponto.TipoAbono.Abono || x.Abono == Ponto.TipoAbono.Declaracao).Count();
            //_excelService.Write(diasAbonado.ToString()).On(row, 6);

            //_excelService.Sheet("Banco de horas").Write(relatorios.ElementAt(row - 2).Planilha.CaminhoFonte).On(row, 7);

            //string erros = string.Join(", ", relatorios.ElementAt(row - 2).Erros);
            //_excelService.Sheet("Banco de horas").Write(erros).On(row, 8);

            //_excelService.Save();
            //}
            #endregion

            return(new ExtrairCalculoResponseMessage(!errors.Any(), errors));
        }