public MontarHistoricoEscolarQuery(Dre dre, Ue ue, IEnumerable <AreaDoConhecimento> areasConhecimento,
                                    IEnumerable <IGrouping <string, ComponenteCurricularPorTurma> > componentesCurricularesTurmas,
                                    IEnumerable <AlunoTurmasHistoricoEscolarDto> alunosTurmas,
                                    IEnumerable <MediaFrequencia> mediasFrequencia,
                                    IEnumerable <IGrouping <string, NotasAlunoBimestre> > notas,
                                    IEnumerable <IGrouping <string, FrequenciaAluno> > frequencias,
                                    IEnumerable <TipoNotaCicloAno> tiposNota,
                                    IEnumerable <TransferenciaDto> transferencias,
                                    string[] turmasCodigo, CabecalhoDto cabecalho, LegendaDto legenda,
                                    DadosDataDto dadosData, FuncionarioDto dadosDiretor, FuncionarioDto dadosSecretario,
                                    IEnumerable <IGrouping <long, UeConclusaoPorAlunoAno> > historicoUes,
                                    bool preencherDataImpressao, bool imprimirDadosResponsaveis)
 {
     Dre = dre;
     Ue  = ue;
     AreasConhecimento             = areasConhecimento;
     ComponentesCurricularesTurmas = componentesCurricularesTurmas;
     AlunosTurmas              = alunosTurmas;
     TurmasCodigo              = turmasCodigo;
     Cabecalho                 = cabecalho;
     HistoricoUes              = historicoUes;
     Notas                     = notas;
     Frequencias               = frequencias;
     MediasFrequencia          = mediasFrequencia;
     TiposNota                 = tiposNota;
     Transferencias            = transferencias;
     Legenda                   = legenda;
     DadosData                 = dadosData;
     DadosDiretor              = dadosDiretor;
     DadosSecretario           = dadosSecretario;
     PreencherDataImpressao    = preencherDataImpressao;
     ImprimirDadosResponsaveis = imprimirDadosResponsaveis;
 }
Exemplo n.º 2
0
        public void NaoDeveAdicionarUmNovoFuncionarioQuandoCpfInvalido()
        {
            FuncionarioDto funcionario = new FuncionarioDto
            {
                Nome         = "Marvin",
                Cpf          = "",
                Inativo      = false,
                CargoId      = 1,
                EhHomeOffice = false,
                EmpresaId    = 1
            };
            Cargo   cargo   = new Cargo("Tester");
            Empresa empresa = new Empresa("Db1", new CNPJ("87717167000156"));

            _empresaRepositoryMock = new Mock <IEmpresaRepository>();
            _empresaRepositoryMock.Setup(mock => mock.ObterPorId(It.IsAny <int>())).Returns(empresa);

            _cargoRepositoryMock = new Mock <ICargoRepository>();
            _cargoRepositoryMock.Setup(mock => mock.ObterPorId(It.IsAny <int>())).Returns(cargo);

            _funcionarioRepositoryMock = new Mock <IFuncionarioRepository>();
            _funcionarioRepositoryMock.Setup(mock => mock.Adicionar(It.IsAny <Funcionario>()));

            IFuncionarioService funcionarioService = new FuncionarioService(_empresaRepositoryMock.Object, _cargoRepositoryMock.Object, _funcionarioRepositoryMock.Object);

            var mensagens = funcionarioService.Adicionar(funcionario);

            _funcionarioRepositoryMock.Verify(mock => mock.Adicionar(It.IsAny <Funcionario>()), Times.Never());
            Assert.Equal(1, mensagens.Count);
        }
        public async Task <FuncionarioDto> AddAsync(FuncionarioDto funcionarioDto)
        {
            var paciente = this.mapperFuncionario.MapperDtoToEntity(funcionarioDto);
            var result   = await this.serviceFuncionario.AddAsync(paciente);

            return(this.mapperFuncionario.MapperEntityToDto(result));
        }
Exemplo n.º 4
0
        public async Task ArmazenarAsync(FuncionarioDto funcionarioDto)
        {
            funcionarioDto = funcionarioDto ?? new FuncionarioDto();

            var funcionario = funcionarioDto.Id == 0 ?
                              CriarUmNovoFuncionario(funcionarioDto) :
                              await _editarUmFuncionario.EditarAsync(funcionarioDto);

            if (NotificacaoDeDominio.HasNotifications)
            {
                return;
            }

            if (!funcionario.Validar())
            {
                await NotificarValidacoesDeDominioAsync(funcionario.ValidationResult);
            }

            await _validadorCpfDaFuncionarioJaExistente.ValidarAsync(funcionario.Cpf, funcionario.Id);

            if (!NotificacaoDeDominio.HasNotifications && funcionario.Id == 0)
            {
                await _funcionarioRepositorio.AdicionarAsync(funcionario);
            }
        }
Exemplo n.º 5
0
        public void NaoDeveAtualizarQuandoNaoEncontrarFuncionario()
        {
            FuncionarioDto funcionario = new FuncionarioDto
            {
                Nome         = "Marvin",
                Cpf          = "12321025980",
                Inativo      = false,
                CargoId      = 1,
                EhHomeOffice = false,
                EmpresaId    = 1
            };
            Cargo   cargo   = new Cargo("Tester");
            Empresa empresa = new Empresa("DB1", new CNPJ(""));

            _empresaRepositoryMock = new Mock <IEmpresaRepository>();
            _empresaRepositoryMock.Setup(mock => mock.ObterPorId(It.IsAny <int>())).Returns(empresa);

            _cargoRepositoryMock = new Mock <ICargoRepository>();
            _cargoRepositoryMock.Setup(mock => mock.ObterPorId(It.IsAny <int>())).Returns(cargo);

            _funcionarioRepositoryMock = new Mock <IFuncionarioRepository>();
            _funcionarioRepositoryMock.Setup(mock => mock.Atualizar(It.IsAny <Funcionario>())).Throws(new Exception());

            IFuncionarioService funcionarioService = new FuncionarioService(_empresaRepositoryMock.Object, _cargoRepositoryMock.Object, _funcionarioRepositoryMock.Object);

            var mensagens = funcionarioService.Atualizar(funcionario, 1);

            _funcionarioRepositoryMock.Verify(mock => mock.Atualizar(It.IsAny <Funcionario>()), Times.Never());
            Assert.Equal(1, mensagens.Count);
        }
Exemplo n.º 6
0
        public IList <string> Atualizar(FuncionarioDto obj, int id)
        {
            mensagens = new List <string>();
            try
            {
                Cargo   cargo   = obterCargo(obj.CargoId);
                Empresa empresa = obterEmpresa(obj.EmpresaId);

                Funcionario funcionario = FuncionarioAdapter.Mapear(obj, cargo, empresa, id);

                if (!funcionario.Validar())
                {
                    mensagens.Add("Funcionario invalido");
                }

                if (mensagens.Count == 0)
                {
                    _funcionarioRepository.Atualizar(funcionario);
                }
            }catch (Exception e)
            {
                mensagens.Add(e.Message);
            }
            return(mensagens);
        }
Exemplo n.º 7
0
        public void NaoDeveVincularQuandoJaTemEmpresaVinculada()
        {
            //Given
            var dto = new FuncionarioDto
            {
                Id        = _faker.Random.Number(100),
                IdEmpresa = _faker.Random.Number(100)
            };

            var funcionarioMock = FuncionarioBuilder.Novo().ComId(dto.Id).ComIdEmpresa(_faker.Random.Number(100)).Build();
            var empresaMock     = EmpresaBuilder.Novo().ComId(dto.IdEmpresa).Build();

            _funcionarioRepositoryMock
            .Setup(fr => fr.ObterPorId(dto.Id))
            .Returns(funcionarioMock);

            _empresaRepositoryMock
            .Setup(cr => cr.ObterPorId(dto.IdCargo))
            .Returns(empresaMock);

            //When
            _vinculacaoDeFuncionarioAEmpresa.VincularEmpresa(dto);

            //Then
            _funcionarioRepositoryMock.Verify(fr => fr.Atualizar(funcionarioMock), Times.Never);
        }
        public async Task <IActionResult> Put(int id, FuncionarioDto funcionarioDto)
        {
            funcionarioDto.Id = id;
            await _armazenadorDeFuncionario.ArmazenarAsync(funcionarioDto);

            return(Ok());
        }
Exemplo n.º 9
0
 private void VerifyFuncionarioAdd(FuncionarioDto funcionarioDto, Times times)
 {
     _funcionarioRepository.Verify(r => r.Add(It.Is <Funcionario>(func =>
                                                                  func.DataContratacao == funcionarioDto.DataContratacao &&
                                                                  func.Cpf == funcionarioDto.Cpf &&
                                                                  func.Nome == funcionarioDto.Nome)), times);
 }
Exemplo n.º 10
0
        public void NaoDeveVincularCargoQuandoNaoTemEmpresa()
        {
            //Given
            var dto = new FuncionarioDto
            {
                Id      = _faker.Random.Number(100),
                IdCargo = _faker.Random.Number(100)
            };

            var funcionarioMock = FuncionarioBuilder.Novo().ComId(dto.Id).Build();
            var cargoMock       = CargoBuilder.Novo().ComId(dto.IdCargo).Build();

            _funcionarioRepositoryMock
            .Setup(fr => fr.ObterPorId(dto.Id))
            .Returns(funcionarioMock);

            _cargoRepositoryMock
            .Setup(cr => cr.ObterPorId(dto.IdCargo))
            .Returns(cargoMock);

            //When
            _vinculacaoDeFuncionarioACargo.VincularCargo(dto);

            //Then
            _funcionarioRepositoryMock.Verify(fr => fr.Atualizar(funcionarioMock), Times.Never);
        }
Exemplo n.º 11
0
        public async Task Armazenar(FuncionarioDto dto)
        {
            await ValidarFuncionarioComMesmoNome(dto);

            if (!NotificacaoDeDominio.HasNotifications())
            {
                var funcionario = new Funcionario(dto.Nome, dto.Cpf);
                if (dto.Id > 0)
                {
                    funcionario = await _funcionarioRepositorio.ObterPorIdAsync(dto.Id);

                    funcionario.AlterarNome(dto.Nome);
                    funcionario.AlterarCpf(dto.Cpf);
                }

                funcionario.AlterarDataContratacao(dto.DataContratacao);

                if (funcionario.Validar() && funcionario.Id == 0)
                {
                    await _funcionarioRepositorio.AdicionarAsync(funcionario);
                }
                else
                {
                    await NotificarValidacoesDeDominio(funcionario.ValidationResult);
                }
            }
        }
Exemplo n.º 12
0
        public async Task <FuncionarioDto> Salvar(FuncionarioDto funcionarioDto)
        {
            Funcionario funcionario = new(funcionarioDto.Id, funcionarioDto.Codigo, funcionarioDto.Nome, funcionarioDto.Cpf, funcionarioDto.Rg, funcionarioDto.Sexo, funcionarioDto.EstadoCivil, funcionarioDto.Email, funcionarioDto.Telefone1, funcionarioDto.TipoTelefone1, funcionarioDto.Telefone2, funcionarioDto.TipoTelefone2, funcionarioDto.Nascimento, funcionarioDto.Cadastro, funcionarioDto.Alteracao, funcionarioDto.EnderecoId, funcionarioDto.Funcao, funcionarioDto.Ativo);
            Funcionario resultado;

            if (funcionarioDto.Id.Equals(0))
            {
                resultado = await _repositorio.Adicionar(funcionario);

                if (resultado is null)
                {
                    throw new Exception("Erro ao cadastrar, contate o administrador do sistema.");
                }

                funcionarioDto.Id     = resultado.Id;
                funcionarioDto.Codigo = resultado.Codigo;

                return(funcionarioDto);
            }
            else
            {
                resultado = await _repositorio.Atualizar(funcionario);

                if (resultado is null)
                {
                    throw new Exception("Erro ao atualizar, contate o administrador do sistema.");
                }

                funcionarioDto.Alteracao = resultado.Alteracao;

                return(funcionarioDto);
            }
        }
Exemplo n.º 13
0
        public void VincularCargo(FuncionarioDto dto)
        {
            var funcionario = _funcionarioRepository.ObterPorId(dto.Id);

            var cargo = _cargoRepository.ObterPorId(dto.IdCargo);

            if (cargo == null)
            {
                _notificationContext.AddNotification("500", FuncionarioResource.CargoNaoCadastrado);
                return;
            }
            if (funcionario.IdEmpresa == null)
            {
                _notificationContext.AddNotification("500", FuncionarioResource.FuncionarioSemEmpresa);
                return;
            }
            if (funcionario.CargosVinculados.Any(c => c.IdCargo == dto.IdCargo))
            {
                _notificationContext.AddNotification("500", FuncionarioResource.FuncionarioJaPossuiCargo);
                return;
            }

            FuncionarioCargo cargoVinculado = new FuncionarioCargo()
            {
                IdFuncionario = funcionario.Id,
                IdCargo       = cargo.Id,
                DataVinculo   = DateTime.Now
            };

            funcionario.AdicionarCargo(cargoVinculado);

            _funcionarioRepository.Atualizar(funcionario);
        }
        public async Task <IActionResult> Put(long id, [FromBody] FuncionarioDto funcionario)
        {
            funcionario.Id = id;
            await _armazenadorDeFuncionario.Armazenar(funcionario);

            return(Ok());
        }
 public bool VerificarSeDataContratacaoEstaPreenchido(FuncionarioDto funcionarioDto)
 {
     if (funcionarioDto.DataContratacao == new DateTime())
     {
         return(false);
     }
     return(true);
 }
 public static Funcionario Mapear(FuncionarioDto funcionarioDto, Cargo cargo, Empresa empresa)
 {
     return(new Funcionario(funcionarioDto.Nome,
                            funcionarioDto.EhHomeOffice,
                            new CPF(funcionarioDto.Cpf),
                            cargo,
                            empresa));
 }
Exemplo n.º 17
0
        public void DeveNotificarErrosDeServicoQuandoExistir()
        {
            var dto = new FuncionarioDto();

            _vinculacaoDeFuncionarioACargo.VincularCargo(dto);

            Assert.True(_notificationContextMock.Object.HasNotifications);
        }
        public FuncionarioDto Alterar(FuncionarioDto funcionarioDto)
        {
            var funcionario = _funcionarioRepository.BuscarPorId(funcionarioDto.Id);

            funcionario.Update(funcionarioDto.Nome, funcionarioDto.DataContratacao, funcionarioDto.EmpresaId);
            _funcionarioRepository.Alterador(funcionario);
            return(funcionarioDto);
        }
 public bool VerificarSeEmpresaIdEstaPreenchido(FuncionarioDto funcionarioDto)
 {
     if (funcionarioDto.EmpresaId <= 0)
     {
         return(false);
     }
     return(true);
 }
 public bool VerificarSeNomeEstaPreenchido(FuncionarioDto funcionarioDto)
 {
     if (string.IsNullOrWhiteSpace(funcionarioDto.Nome))
     {
         return(false);
     }
     return(true);
 }
Exemplo n.º 21
0
        private async Task VerifyInsertFuncionario(Funcionario funcionario, FuncionarioDto funcionarioDto)
        {
            await _armazenadorDeFuncionario.Armazenar(funcionarioDto);

            VerifyFuncionarioAdd(funcionarioDto, Times.Never());
            Assert.False(funcionario.Valid);
            Assert.True(funcionario.ValidationResult.Errors.Count > 0);
        }
Exemplo n.º 22
0
        public ActionResult Editar(FuncionarioModel model)
        {
            //Se não tiver login, encaminhar para a tela de login
            if (string.IsNullOrWhiteSpace(SessaoUsuario.SessaoLogin.Identificacao))
            {
                return(RedirectToAction("Login", "Usuario"));
            }

            if (!SessaoUsuario.SessaoLogin.Administrador)
            {
                ViewBag.MensagemErro = "Para editar um funcionario é necessário " +
                                       $"logar com um funcionario administrador.";
                return(View("SemPermissao"));
            }

            //Valida a entidade recebida
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            //Converte para DTO
            FuncionarioDto funcionarioDto = new FuncionarioDto();
            string         mensagemErro   = "";

            if (!model.ConverterModelParaDto(ref funcionarioDto, ref mensagemErro))
            {
                ViewBag.Mensagem = mensagemErro;
                return(View("Erro"));
            }

            //Preparar requisição e retorno
            RetornoDto retorno = new RetornoDto();
            RequisicaoEntidadeDto <FuncionarioDto> requisicaoDto = new RequisicaoEntidadeDto <FuncionarioDto>()
            {
                EntidadeDto   = funcionarioDto,
                Identificacao = SessaoUsuario.SessaoLogin.Identificacao,
                IdUsuario     = SessaoUsuario.SessaoLogin.IdUsuario
            };

            //Consumir o serviço
            FuncionarioBll funcionarioBll = new FuncionarioBll(true);

            funcionarioBll.Editar(requisicaoDto, ref retorno);

            //Tratar o retorno
            if (retorno.Retorno == false)
            {
                ModelState.AddModelError("", retorno.Mensagem);
                return(View(model));
            }

            TempData["Retorno"] = "ALTERADO";

            //Voltar para o visualizar do funcionario
            return(RedirectToAction("Index"));
        }
Exemplo n.º 23
0
        public async Task DeveNotificarErrosDeDominioQuandoExistir()
        {
            var funcionarioDto = new FuncionarioDto();

            await _armazenadorDeFuncionario.Armazenar(funcionarioDto);

            _notificacaoDeDominioMock.Verify(notificacao =>
                                             notificacao.HandleAsync(It.Is <DomainNotification>(d => d.Key == TipoDeNotificacao.ErroDeDominio.ToString())));
        }
Exemplo n.º 24
0
        private async Task ValidarFuncionarioComMesmoNome(FuncionarioDto dto)
        {
            var funcionarioComMesmoNome = await _funcionarioRepositorio.ObterPorNomeAsync(dto.Nome);

            if (funcionarioComMesmoNome != null && funcionarioComMesmoNome.Id != dto.Id)
            {
                await NotificarValidacaoDeServico(string.Format(CommonResources.MsgDominioComMesmoNomeNoMasculino, CommonResources.FuncionarioDominio));
            }
        }
 public FuncionarioDto IncluirFuncionario(FuncionarioDto funcionarioDto)
 {
     if (_validadorDeFuncionario.Validar(funcionarioDto))
     {
         var funcionario = new Funcionario(funcionarioDto.Id, funcionarioDto.Nome, funcionarioDto.DataContratacao, funcionarioDto.EmpresaId);
         _funcionarioRepository.Armazenar(funcionario);
         return(funcionarioDto);
     }
     return(null);
 }
Exemplo n.º 26
0
        private bool ValidarId(int id, FuncionarioDto funcionarioDto)
        {
            if (id != funcionarioDto.Id)
            {
                _notificationContext.AddNotification("", Resource.FuncionarioNaoIdentificado);
                return(false);
            }

            return(true);
        }
Exemplo n.º 27
0
        public async Task NaoDeveAdicionarUmFuncionarioInvalido()
        {
            var funcionarioDto = new FuncionarioDto();

            _notificacaoDeDominioMock.Setup(notificacao => notificacao.HasNotifications()).Returns(true);

            await _armazenadorDeFuncionario.Armazenar(funcionarioDto);

            _funcionarioRepositorioMock.Verify(repositorio =>
                                               repositorio.AdicionarAsync(It.IsAny <Funcionario>()), Times.Never());
        }
Exemplo n.º 28
0
        public async Task <IActionResult> Post([FromBody] FuncionarioDto dto)
        {
            await _armazenadorDeFuncionario.Armazenar(dto);

            if (!OperacaoValida())
            {
                return(BadRequestResponse());
            }

            return(Ok(true));
        }
Exemplo n.º 29
0
 public async Task <ActionResult <FuncionarioDto> > Put(Guid id, [FromBody] FuncionarioDto funcionarioDto)
 {
     try
     {
         return(await this.applicationServiceFuncionario.UpdateAsync(id, funcionarioDto));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemplo n.º 30
0
 public async Task Armazenar(FuncionarioDto funcionarioDto)
 {
     if (funcionarioDto.Id == 0)
     {
         await NovoFuncionario(funcionarioDto);
     }
     else
     {
         await EditarFuncionario(funcionarioDto);
     }
 }