public async Task Insert(FuncionarioEntity data)
        {
            string sql = @"insert into funcionarios (Id,Name,Gender, BirthDay,Salary,HiringDate,Level)
                                             values (@Id,@Name,@Gender, @BirthDay,@Salary,@HiringDate,@Level)";

            using (var connection = new SqlConnection(_DBConfig.GetConnectionString()))
            {
                await connection.QueryFirstOrDefaultAsync(sql, data);
            }
        }
        public FuncionarioDTO ObterFuncionario(int id)
        {
            FuncionarioEntity funcionario = null;

            string[] includes = new string[] { "Cargo", "Departamento" };
            Expression <Func <FuncionarioEntity, bool> > expressionFiltro = (a => a.IdFuncionario == id);

            using (var repositorio = new RepositorioBase <FuncionarioEntity>())
            {
                funcionario = repositorio.Select(expressionFiltro, includes).FirstOrDefault();
            }

            var funcionarioDTO = Mapper.Map <FuncionarioEntity, FuncionarioDTO>(funcionario);

            return(funcionarioDTO);
        }
Exemplo n.º 3
0
        public async Task InsertFuncionarioAlReadyExists()
        {
            var _mockInsert = new Mock <IFuncionarioRepository>();

            var funcionario_response = new FuncionarioResponse()
            {
                Id = "1"
            };

            _mockInsert.Setup(p => p.GetByID(1)).Returns(Task.FromResult(funcionario_response));

            var _target = new FuncionarioService(_mockInsert.Object);

            var new_funcionario = new FuncionarioEntity(1, "wellyngton", new DateTime(1992, 4, 7), 10000, "M", new DateTime(2019, 12, 23), "S");

            await _target.InsertFuncionario(new_funcionario);

            Assert.NotEqual(0, new_funcionario.Notifications.Count);
        }
        public async Task <bool> InsertFuncionario(FuncionarioEntity funcionario)
        {
            try
            {
                if (await _funcionarioRepository.GetByID(funcionario.Id) != null)
                {
                    funcionario.AddNotification("funcionario", string.Format("The funcionario {0} with id {1} already exist", funcionario.Name, funcionario.Id));
                    return(await Task.FromResult(false));
                }

                await _funcionarioRepository.Insert(funcionario);

                return(await Task.FromResult(true));
            }
            catch (Exception ex)
            {
                funcionario.AddNotification("Insert funcionario", ex.Message);
                return(await Task.FromResult(false));
            }
        }
        public FuncionarioDTO Create(FuncionarioCadastroModel model)
        {
            var funcionarioEntity = new FuncionarioEntity
            {
                Id             = Guid.NewGuid(),
                Nome           = model.Nome,
                Cpf            = model.Cpf,
                DataAdmissao   = DateTime.Parse(model.DataAdmissao),
                DataNascimento = DateTime.Parse(model.DataNascimento),
                Sexo           = (SexoEnum)char.Parse(model.Sexo),
                Situacao       = (SituacaoFuncionarioEnum)int.Parse(model.Situacao),
                EmpresaId      = Guid.Parse(model.EmpresaId)
            };

            funcionarioDomainService.Create(funcionarioEntity);

            var empresa = empresaDomainService.GetById(funcionarioEntity.EmpresaId);

            return(new FuncionarioDTO
            {
                Id = funcionarioEntity.Id,
                Nome = funcionarioEntity.Nome,
                Cpf = funcionarioEntity.Cpf,
                DataAdmissao = funcionarioEntity.DataAdmissao,
                DataNascimento = funcionarioEntity.DataNascimento,
                Sexo = funcionarioEntity.Sexo.ToString(),
                Situacao = funcionarioEntity.Situacao.ToString(),
                Empresa = new EmpresaDTO
                {
                    Id = empresa.Id,
                    RazaoSocial = empresa.RazaoSocial,
                    NomeFantasia = empresa.NomeFantasia,
                    Cnpj = empresa.Cnpj
                }
            });
        }
            public IFuncionarioEntity Bind(DataRow source)
            {
                IFuncionarioEntity funcionario = new FuncionarioEntity();

                funcionario.IdFuncionario   = Convert.ToInt32(source["IdFuncionario"]);
                funcionario.NomeFuncionario = source["Nome"].ToString();
                funcionario.DataNascimento  = source["DataNascimento"].ToString();
                funcionario.Sexo            = (SexoEnum)Convert.ToInt32(source["Sexo"]);
                funcionario.CPF             = source["CPF"].ToString();
                funcionario.Telefone        = source["Telefone"].ToString();
                funcionario.Estado          = source["Estado"].ToString();
                funcionario.Cep             = source["CEP"].ToString();
                funcionario.Cidade          = source["Cidade"].ToString();
                funcionario.Bairro          = source["Bairro"].ToString();
                funcionario.Logradouro      = source["Logradouro"].ToString();
                funcionario.Numero          = Convert.ToInt32(source["Numero"]);
                funcionario.Complemento     = source["Complemento"].ToString();
                funcionario.DataAdmissao    = source["DataAdmissao"].ToString();
                //funcionario.DataDesligamento = Convert.ToDateTime(source["DataDesligamento"]);
                //funcionario.Status = Convert.ToInt32(source["Status"]);


                return(funcionario);
            }
Exemplo n.º 7
0
        public ResponseDTO <AlunoMedsoft> GetAcessoAluno(string register, int idAplicacao, string appVersion)
        {
            var response = new ResponseDTO <AlunoMedsoft>
            {
                Retorno = new AlunoMedsoft()
            };

            try
            {
                var funcionarioEntity = new FuncionarioEntity();
                var pessoaEntity      = new PessoaEntity();
                var cliente           = new Cliente();
                using (MiniProfiler.Current.Step("Obtendo dados do usuario"))
                {
                    cliente = CacheClienteGetByFilters(register, idAplicacao);
                }

                if (cliente == null || cliente.ID == 0)
                {
                    SetResponse(false,
                                TipoErroAcesso.CadastroInexistente.GetDescription(),
                                _alunoRepository.GetMensagensLogin(idAplicacao, (int)TipoMensagemMEDSOFT.USUARIO_NAO_CADASTRADO),
                                TipoErroAcesso.CadastroInexistente);
                    return(response);
                }

                var   golden     = 0;
                var   tipoPessoa = new Pessoa.EnumTipoPessoa();
                var   tipoPerfil = new EnumTipoPerfil();
                var   isExAluno  = false;
                float tempoInadimplenciaTimeout = 0;

                using (MiniProfiler.Current.Step("Obtendo dados do usuario"))
                {
                    golden     = _clienteRepository.UserGolden(cliente.Register, Aplicacoes.MsProMobile);
                    tipoPessoa = pessoaEntity.GetPersonType(cliente.Register);
                    tipoPerfil = funcionarioEntity.GetTipoPerfilUsuario(cliente.ID);
                    isExAluno  = _alunoRepository.IsExAlunoTodosProdutos(cliente.ID);
                    tempoInadimplenciaTimeout = new ConfigBusiness(new ConfigEntity()).GetTempoInadimplenciaTimeoutParametro();
                }


                var aluno = new AlunoMedsoft
                {
                    ID         = cliente.ID,
                    Nome       = cliente.Nome,
                    NickName   = cliente.NickName,
                    Register   = cliente.Register,
                    Senha      = cliente.Senha,
                    Foto       = cliente.Foto,
                    FotoPerfil = cliente.FotoPerfil,
                    IsGolden   = golden > 0,
                    TipoPessoa = tipoPessoa,
                    TipoPerfil = tipoPerfil,
                    ExAluno    = isExAluno,
                    tokenLogin = Util.AuthJWT.GeraJwt(cliente.ID, Constants.doisDiasEmMinutos),
                    TempoInadimplenciaTimeout = tempoInadimplenciaTimeout,
                    LstOrdemVendaMsg          = cliente.LstOrdemVendaMsg
                };

                var anoLetivoAtual             = Utilidades.GetYear();
                var anoSeguinte                = anoLetivoAtual + 1;
                var anoAnterior                = anoLetivoAtual - 1;
                var anoAnteriorAntesDataLimite = Utilidades.IsAntesDatalimiteCache(anoAnterior, idAplicacao);

                var anoDireitoVitalicio = Convert.ToInt32(ConfigurationProvider.Get("Settings:anoComDireitoVitalicio"));
                var anosPermitidos      = new List <int>();

                for (var ano = anoDireitoVitalicio; ano <= anoSeguinte; ano++)
                {
                    anosPermitidos.Add(ano);
                }

                if (anoAnteriorAntesDataLimite)
                {
                    anosPermitidos.Add(anoAnterior);
                }

                response.LstOrdemVendaMsg = cliente.LstOrdemVendaMsg;

                response.Retorno = aluno;
                response.Sucesso = true;
                return(response);
            }
            catch
            {
                throw;
            }
        }
Exemplo n.º 8
0
        public AlunoMedsoft GetAcessoAluno(string register, string senha, int idAplicacao, string appVersion, string tokenDevice, int idDevice)
        {
            var response = new AlunoMedsoft();

            try
            {
                var funcionarioEntity = new FuncionarioEntity();
                var pessoaEntity      = new PessoaEntity();

                var cliente = new Cliente();
                using (MiniProfiler.Current.Step("Obtendo dados do usuario"))
                {
                    cliente = CacheClienteGetByFilters(register, idAplicacao);
                }

                if (cliente == null || cliente.ID == 0)
                {
                    SetResponse(false,
                                TipoErroAcesso.CadastroInexistente.GetDescription(),
                                _alunoRepository.GetMensagensLogin(idAplicacao, (int)TipoMensagemMEDSOFT.USUARIO_NAO_CADASTRADO),
                                TipoErroAcesso.CadastroInexistente);
                    return(response);
                }


                var aluno = new AlunoMedsoft();
                using (MiniProfiler.Current.Step("Obtendo informações do tipo de usuário"))
                {
                    var golden     = _clienteRepository.UserGolden(cliente.Register, Aplicacoes.MsProMobile);
                    var tipoPessoa = pessoaEntity.GetPersonType(cliente.Register);
                    var tipoPerfil = funcionarioEntity.GetTipoPerfilUsuario(cliente.ID);
                    var isExAluno  = false;
                    if (!_alunoRepository.IsAlunoPendentePagamento(cliente.ID))
                    {
                        isExAluno = _alunoRepository.IsExAlunoTodosProdutosCache(cliente.ID);
                    }
                    var tempoInadimplenciaTimeout = new ConfigBusiness(new ConfigEntity()).GetTempoInadimplenciaTimeoutParametro();

                    aluno = new AlunoMedsoft
                    {
                        ID         = cliente.ID,
                        Nome       = cliente.Nome.TrimEnd(),
                        NickName   = cliente.NickName,
                        Register   = cliente.Register.TrimEnd(),
                        Senha      = cliente.Senha,
                        Foto       = cliente.Foto,
                        FotoPerfil = cliente.FotoPerfil,
                        IsGolden   = golden > 0,
                        TipoPessoa = tipoPessoa,
                        TipoPerfil = tipoPerfil,
                        ExAluno    = isExAluno,
                        tokenLogin = Util.AuthJWT.GeraJwt(cliente.ID, Constants.doisDiasEmMinutos),
                        TempoInadimplenciaTimeout = tempoInadimplenciaTimeout,
                        LstOrdemVendaMsg          = cliente.LstOrdemVendaMsg
                    };

                    if (aluno.Senha == string.Empty)
                    {
                        SetResponse(false,
                                    TipoErroAcesso.SemSenhaCadastrada.GetDescription(),
                                    _alunoRepository.GetMensagensLogin(idAplicacao, (int)TipoMensagemMEDSOFT.CADASTRAR_SENHA_MEDSOFTPRO),
                                    TipoErroAcesso.SemSenhaCadastrada);
                        return(aluno);
                    }

                    if (!aluno.IsGolden && aluno.Senha != senha)
                    {
                        SetResponse(false,
                                    TipoErroAcesso.SenhaIncorreta.GetDescription(),
                                    _alunoRepository.GetMensagensLogin(idAplicacao, (int)TipoMensagemMEDSOFT.ACESSO_NEGADO_SENHA_INCORRETA),
                                    TipoErroAcesso.SenhaIncorreta);
                        return(aluno);
                    }

                    if (cliente.RetornoStatus == Cliente.StatusRetorno.SemAcesso || cliente.RetornoStatus == Cliente.StatusRetorno.Cancelado)
                    {
                        if (string.IsNullOrEmpty(cliente.MensagemRetorno))
                        {
                            SetResponse(false,
                                        TipoErroAcesso.SemProdutosContratados.GetDescription(),
                                        _alunoRepository.GetMensagensLogin(idAplicacao, (int)TipoMensagemMEDSOFT.SEM_PRODUTOS),
                                        TipoErroAcesso.SemProdutosContratados);
                        }
                        else
                        {
                            SetResponse(false, cliente.TituloMensagemRetorno, cliente.MensagemRetorno, cliente.ETipoErro);
                        }
                        return(response);
                    }
                    else if (!string.IsNullOrEmpty(cliente.MensagemRetorno))
                    {
                        SetResponse(true, cliente.TituloMensagemRetorno, cliente.MensagemRetorno, cliente.ETipoErro);
                    }
                }

                var produtosPermitidos  = new List <Produto.Produtos>();
                var produtosContradados = new List <Produto>();
                using (MiniProfiler.Current.Step("Obtendo informações de produtos contratados"))
                {
                    produtosPermitidos  = _alunoRepository.GetProdutosPermitidosLogin(idAplicacao);
                    produtosContradados = ProdutoEntity.GetProdutosContratadosPorAnoCache(cliente.ID, false, 0, true, idAplicacao);
                }
                var anoLetivoAtual             = Utilidades.GetYear();
                var anoSeguinte                = anoLetivoAtual + 1;
                var anoAnterior                = anoLetivoAtual - 1;
                var anoAnteriorAntesDataLimite = Utilidades.IsAntesDatalimiteCache(anoAnterior, idAplicacao);


                var anoDireitoVitalicio = Convert.ToInt32(ConfigurationProvider.Get("Settings:anoComDireitoVitalicio"));
                var anosPermitidos      = new List <int>();

                for (var ano = anoDireitoVitalicio; ano <= anoSeguinte; ano++)
                {
                    anosPermitidos.Add(ano);
                }

                if (anoAnteriorAntesDataLimite)
                {
                    anosPermitidos.Add(anoAnterior);
                }

                var hasPermitidos = produtosContradados
                                    .Any(p => produtosPermitidos.Contains((Produto.Produtos)p.IDProduto) && anosPermitidos.Contains(p.Ano.Value));

                if (!hasPermitidos)
                {
                    SetResponse(false,
                                TipoErroAcesso.SemProdutosContratados.GetDescription(),
                                _alunoRepository.GetMensagensLogin(idAplicacao, (int)TipoMensagemMEDSOFT.SEM_PRODUTOS),
                                TipoErroAcesso.SemProdutosContratados);
                    return(response);
                }

                bool isVersaoBloqueada = string.IsNullOrEmpty(appVersion) ? _configRepository.GetDeveBloquearAppVersaoNulaCache() : new VersaoAppPermissaoBusiness(_versaoAppRepository).IsVersaoBloqueada(appVersion, idAplicacao);

                if (isVersaoBloqueada)
                {
                    SetResponse(false,
                                TipoErroAcesso.VersaoAppDesatualizada.GetDescription(),
                                _alunoRepository.GetMensagensLogin(idAplicacao, (int)TipoMensagemMEDSOFT.APLICATIVO_DESATUALIZADO),
                                TipoErroAcesso.VersaoAppDesatualizada);
                    return(response);
                }

                var permissaoDevice = new PermissaoDevice();
                using (MiniProfiler.Current.Step("Verificando permissões de acesso de usuário"))
                {
                    permissaoDevice     = new AlunoEntity().GetPermissaoAcesso(idAplicacao, aluno.ID, tokenDevice, (Utilidades.TipoDevice)idDevice);
                    aluno.PermiteAcesso = (aluno.IsGolden || permissaoDevice.PermiteAcesso == 1);
                    aluno.PermiteTroca  = (!aluno.IsGolden && permissaoDevice.PermiteTroca == 1);
                }

                if (!aluno.PermiteAcesso && !aluno.PermiteTroca)
                {
                    SetResponse(false,
                                TipoErroAcesso.DeviceBloqueado.GetDescription(),
                                _alunoRepository.GetMensagensLogin(idAplicacao, (int)TipoMensagemMEDSOFT.DISPOSITIVO_BLOQUEADO),
                                TipoErroAcesso.DeviceBloqueado);
                    return(response);
                }

                if (!aluno.LstOrdemVendaMsg.Any(x => x.PermiteAcesso == 1))
                {
                    SetResponse(false,
                                TipoErroAcesso.BloqueadoInadimplencia.GetDescription(),
                                cliente.MensagemRetorno,
                                TipoErroAcesso.BloqueadoInadimplencia);

                    return(response);
                }

                LogLogin log = new LogLogin
                {
                    Matricula   = aluno.ID,
                    AplicacaoId = idAplicacao,
                    AcessoId    = 0
                };

                new LogEntity().InsertAcessoLogin(log);

                SetResponse(true);
                return(aluno);
            }
            catch
            {
                throw;
            }
        }
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            string erros = "";
            int    sexo  = 0;

            //Validações
            if (txtNomeFuncionario.Text == "")
            {
                erros += "- Preencha o campo Nome do Funcionário;\n";
            }

            mkdtxtDataNascimento.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;

            if (mkdtxtDataNascimento.Text == "")
            {
                erros += "- Preencha o campo Data Nascimento;\n";
            }
            if (rdbSexoMasculino.Checked == false && rdbSexoFeminino.Checked == false)
            {
                erros += "- Selecione o sexo do Funcionário;\n";
            }

            mkdtxtCPF.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;

            if (mkdtxtCPF.Text == "")
            {
                erros += "- Preencha o campo CPF;\n";
            }

            mkdtxtTelefone.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;

            if (mkdtxtTelefone.Text == "")
            {
                erros += "- Preencha o campo Telefone;\n";
            }
            if (txtEstado.Text == "")
            {
                erros += "- Preencha o campo Estado;\n";
            }
            if (txtCidade.Text == "")
            {
                erros += "- Preencha o campo Cidade;\n";
            }

            mkdtxtCEP.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;

            if (mkdtxtCEP.Text == "")
            {
                erros += "- Preencha o campo CEP;\n";
            }
            if (txtBairro.Text == "")
            {
                erros += "- Preencha o campo Bairro;\n";
            }
            if (txtLogradouro.Text == "")
            {
                erros += "- Preencha o campo Logradouro;\n";
            }
            if (mkdtxtNumero.Text == "")
            {
                erros += "- Preencha o campo Numero;\n";
            }

            mkdtxtDataAdmissao.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;

            if (mkdtxtDataAdmissao.Text == "")
            {
                erros += "- Preencha o campo Data Admissão;\n";
            }

            if (rdbSexoMasculino.Checked == true && rdbSexoFeminino.Checked == false)
            {
                sexo = 1;
            }
            if (rdbSexoMasculino.Checked == false && rdbSexoFeminino.Checked == true)
            {
                sexo = 2;
            }

            mkdtxtDataNascimento.TextMaskFormat = MaskFormat.IncludePromptAndLiterals;
            mkdtxtCPF.TextMaskFormat            = MaskFormat.IncludePromptAndLiterals;
            mkdtxtTelefone.TextMaskFormat       = MaskFormat.IncludePromptAndLiterals;
            mkdtxtCEP.TextMaskFormat            = MaskFormat.IncludePromptAndLiterals;
            mkdtxtDataAdmissao.TextMaskFormat   = MaskFormat.IncludePromptAndLiterals;

            mkdtxtNumero.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;


            if (!string.IsNullOrEmpty(erros))
            {
                MessageBox.Show(erros);
            }
            else
            {
                FuncionarioEntity funcionario = new FuncionarioEntity();
                {
                    funcionario.NomeFuncionario = txtNomeFuncionario.Text;
                    funcionario.DataNascimento  = mkdtxtDataNascimento.Text;
                    funcionario.Sexo            = (SexoEnum)Convert.ToInt32(sexo);
                    funcionario.CPF             = mkdtxtCPF.Text;
                    funcionario.Telefone        = mkdtxtTelefone.Text;
                    funcionario.Estado          = txtEstado.Text;
                    funcionario.Cep             = mkdtxtCEP.Text;
                    funcionario.Cidade          = txtCidade.Text;
                    funcionario.Bairro          = txtBairro.Text;
                    funcionario.Logradouro      = txtLogradouro.Text;
                    funcionario.Numero          = int.Parse(mkdtxtNumero.Text);
                    funcionario.Complemento     = txtComplemento.Text;
                    funcionario.DataAdmissao    = mkdtxtDataAdmissao.Text;
                }

                FuncionarioDao.AlterarFuncionario(funcionario, this.CodigoFuncionario);
                MessageBox.Show("Funcionario alterado com sucesso");
                this.Close();
            }
        }
Exemplo n.º 10
0
        public void CreateFuncionarioWithSalaryLowerThan800(decimal salary)
        {
            var funcionario = new FuncionarioEntity(1, "Wellyngton", DateTime.Now, salary, "M", DateTime.Now, "S");

            Assert.Equal(1, funcionario.Notifications.Count);
        }
Exemplo n.º 11
0
        public void CreateFuncionarioWithHiringDateLargerThanToday()
        {
            var funcionario = new FuncionarioEntity(1, "Wellyngton", DateTime.Now, 1000, "M", DateTime.Now.AddDays(1), "S");

            Assert.Equal(1, funcionario.Notifications.Count);
        }
Exemplo n.º 12
0
        public void CreateFuncionarioWithLevelDifferentFrom_J_P_S(string level)
        {
            var funcionario = new FuncionarioEntity(1, "Wellyngton", DateTime.Now, 1000, "M", DateTime.Now, level);

            Assert.Equal(1, funcionario.Notifications.Count);
        }
Exemplo n.º 13
0
        public void CreateFuncionarioWithGenderDifferentFrom_M_and_F(string gender)
        {
            var funcionario = new FuncionarioEntity(1, "Wellyngton", DateTime.Now, 1000, gender, DateTime.Now, "S");

            Assert.Equal(1, funcionario.Notifications.Count);
        }
Exemplo n.º 14
0
        public void CreateFuncionarioWithNameLengthThan64()
        {
            var funcionario = new FuncionarioEntity(1, "WellyngtonWellyngtonWellyngtonWellyngtonWellyngtonWellyngtonWellyngton", DateTime.Now, 1000, "M", DateTime.Now, "S");

            Assert.Equal(1, funcionario.Notifications.Count);
        }
Exemplo n.º 15
0
        public void CreateFuncionarioWithZeroOrNegativeID(int id)
        {
            var funcionario = new FuncionarioEntity(id, "Wellyngton", DateTime.Now, 1000, "M", DateTime.Now, "S");

            Assert.Equal(1, funcionario.Notifications.Count);
        }