Example #1
0
        /// <summary>
        /// Parâmetros para efetuar a alteração preservando a data de criação
        /// </summary>
        protected override void ParamAlterar(QueryStoredProcedure qs, RHU_Colaborador entity)
        {
            base.ParamAlterar(qs, entity);

            qs.Parameters.RemoveAt("@col_dataCriacao");
            qs.Parameters["@col_dataAlteracao"].Value = DateTime.Now;

            qs.Parameters["@col_dataAdmissao"].DbType = DbType.Date;
            qs.Parameters["@col_dataDemissao"].DbType = DbType.Date;
        }
Example #2
0
        /// <summary>
        /// Seleciona o colaborador, que não esteja
        /// excluído logicamente, pelo documento.
        /// </summary>
        /// <param name="psd_numero">Número do documento</param>
        /// <param name="tdo_id">Id do tipo de documento</param>
        /// <param name="entityColaborador"></param>
        /// <returns>True = se encontrou o colaborador com aquele documento / False = se não encontrou</returns>
        public bool SelectBy_Documento
        (
            Guid tdo_id
            , string psd_numero
            , RHU_Colaborador entityColaborador
        )
        {
            QuerySelectStoredProcedure qs = new QuerySelectStoredProcedure("NEW_RHU_Colaborador_SelectBy_Documento", _Banco);

            try
            {
                #region PARAMETROS

                Param               = qs.NewParameter();
                Param.DbType        = DbType.AnsiString;
                Param.ParameterName = "@psd_numero";
                Param.Size          = 20;
                Param.Value         = psd_numero;
                qs.Parameters.Add(Param);

                Param               = qs.NewParameter();
                Param.DbType        = DbType.Guid;
                Param.ParameterName = "@ent_id";
                Param.Size          = 16;
                Param.Value         = entityColaborador.ent_id;
                qs.Parameters.Add(Param);

                Param               = qs.NewParameter();
                Param.DbType        = DbType.Guid;
                Param.ParameterName = "@tdo_id";
                Param.Size          = 16;
                Param.Value         = tdo_id;
                qs.Parameters.Add(Param);

                #endregion PARAMETROS

                qs.Execute();

                if (qs.Return.Rows.Count == 1)
                {
                    DataRowToEntity(qs.Return.Rows[0], entityColaborador, false);
                    return(true);
                }
                return(false);
            }
            catch
            {
                throw;
            }
            finally
            {
                qs.Parameters.Clear();
            }
        }
Example #3
0
    protected void _grvColaborador_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Deletar")
        {
            try
            {
                int  index  = int.Parse(e.CommandArgument.ToString());
                long col_id = Convert.ToInt32(_grvColaborador.DataKeys[index].Value);

                RHU_Colaborador entity = new RHU_Colaborador {
                    col_id = col_id
                };
                RHU_ColaboradorBO.GetEntity(entity);

                if (RHU_ColaboradorBO.Delete(entity, null, __SessionWEB.__UsuarioWEB.Usuario.ent_id))
                {
                    _grvColaborador.PageIndex = 0;
                    _grvColaborador.DataBind();
                    ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Delete, "col_id: " + col_id);
                    _lblMessage.Text = UtilBO.GetErroMessage("Colaborador excluído com sucesso.", UtilBO.TipoMensagem.Sucesso);
                }
            }
            catch (ValidationException ex)
            {
                _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar excluir o colaborador.", UtilBO.TipoMensagem.Erro);
            }
        }

        if (e.CommandName == "CriaDocente")
        {
            try
            {
                int  index  = int.Parse(e.CommandArgument.ToString());
                long col_id = Convert.ToInt32(_grvColaborador.DataKeys[index].Value);

                Session["col_id"] = col_id;
                RedirecionarPagina("~/Academico/RecursosHumanos/Docente/Cadastro.aspx");
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar os dados.", UtilBO.TipoMensagem.Erro);
            }
        }
    }
Example #4
0
        public new static bool Delete
        (
            ACA_Docente entity
        )
        {
            ACA_DocenteDAO dao = new ACA_DocenteDAO();

            dao._Banco.Open(IsolationLevel.ReadCommitted);

            try
            {
                //Verifica se o docente pode ser deletado
                if (GestaoEscolarUtilBO.VerificarIntegridade("doc_id", entity.doc_id.ToString(), "ACA_Docente,REL_SituacaoPlanejamentoAulasNotas", dao._Banco))
                {
                    throw new ValidationException("Não é possível excluir o docente pois possui outros registros ligados a ele.");
                }

                //Deleta logicamente o docente
                dao.Delete(entity);

                RHU_Colaborador col = new RHU_Colaborador {
                    col_id = entity.col_id
                };
                RHU_ColaboradorBO.GetEntity(col);

                RHU_ColaboradorBO.Delete(col, dao._Banco);

                //Limpa o cache do docente
                CacheManager.Factory.Remove(string.Format(ModelCache.DOCENTE_POR_ENTIDADE_PESSOA_MODEL_KEY, col.ent_id, col.pes_id));

                return(true);
            }
            catch (Exception err)
            {
                dao._Banco.Close(err);
                throw;
            }
            finally
            {
                dao._Banco.Close();
            }
        }
Example #5
0
        /// <summary>
        /// Parâmetros para efetuar a exclusão lógica.
        /// </summary>
        protected override void ParamDeletar(QueryStoredProcedure qs, RHU_Colaborador entity)
        {
            Param               = qs.NewParameter();
            Param.DbType        = DbType.Int64;
            Param.ParameterName = "@col_id";
            Param.Size          = 8;
            Param.Value         = entity.col_id;
            qs.Parameters.Add(Param);

            Param               = qs.NewParameter();
            Param.DbType        = DbType.Byte;
            Param.ParameterName = "@col_situacao";
            Param.Size          = 1;
            Param.Value         = 3;
            qs.Parameters.Add(Param);

            Param               = qs.NewParameter();
            Param.DbType        = DbType.DateTime;
            Param.ParameterName = "@col_dataAlteracao";
            Param.Size          = 8;
            Param.Value         = DateTime.Now;
            qs.Parameters.Add(Param);
        }
Example #6
0
        public static bool Save
        (
            PES_Pessoa entityPessoa
            , PES_PessoaDeficiencia entityPessoaDeficiencia
            , DataTable dtEndereco
            , DataTable dtContato
            , DataTable dtDocumento
            , PES_CertidaoCivil entityCertidaoCivil
            , Guid pai_idAntigo
            , Guid cid_idAntigo
            , StructColaboradorFiliacao PaiAntigo
            , StructColaboradorFiliacao MaeAntigo
            , Guid tes_idAntigo
            , Guid tde_idAntigo
            , RHU_Colaborador entityColaborador
            , DataTable dtCargoFuncao
            , DataTable dtCargoDisciplina
            , bool bSalvarUsuario
            , bool bSalvarLive
            , SYS_Usuario entityUsuario
            , bool bEnviaEmail
            , string sNomePortal
            , string sHost
            , string sEmailSuporte
            , Guid ent_idUsuario
            , ACA_Docente entityDocente
            , string[] arquivosPermitidos
            , int tamanhoMaximoKB
            , CFG_Arquivo entFoto
            , bool ExcluirImagemAtual
        )
        {
            TalkDBTransaction bancoCore   = new PES_PessoaDAO()._Banco.CopyThisInstance();
            TalkDBTransaction bancoGestao = new ACA_DocenteDAO()._Banco.CopyThisInstance();

            bancoCore.Open(IsolationLevel.ReadCommitted);
            bancoGestao.Open(IsolationLevel.ReadCommitted);

            try
            {
                //Limpa o cache do docente
                CacheManager.Factory.Remove(string.Format(ModelCache.DOCENTE_POR_ENTIDADE_PESSOA_MODEL_KEY, entityColaborador.ent_id, entityPessoa.pes_id));

                //Verifica se os dados da pessoa serão sempre salvos em maiúsculo.
                string sSalvarMaiusculo        = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.SALVAR_SEMPRE_MAIUSCULO);
                bool   Salvar_Sempre_Maiusculo = !string.IsNullOrEmpty(sSalvarMaiusculo) && Convert.ToBoolean(sSalvarMaiusculo);

                var y = from DataRow dr in dtCargoFuncao.Rows
                        where dr.RowState == DataRowState.Deleted
                        select dr;

                if (dtCargoFuncao.Rows.Count == 0 || y.Count() == dtCargoFuncao.Rows.Count)
                {
                    throw new ValidationException("É obrigatório o preenchimento de pelo menos um vínculo de trabalho do docente.");
                }

                string sPadraoUsuarioDocente = ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.PAR_GRUPO_PERFIL_DOCENTE, ent_idUsuario);

                //Integraçao como o live
                UserLive entityUserLive = null;
                if (bSalvarLive)
                {
                    entityUserLive = new UserLive(eTipoUserLive.Docente);

                    //Cria o usuário docente para integraçao como o live
                    ManageUserLive live = new ManageUserLive();
                    entityUserLive.email = entityUsuario.usu_email;
                    entityUserLive.senha = entityUsuario.usu_senha;

                    //Caso seja alteração carrega as turma
                    //TODO: Fazer método específico para buscar apenas pelo doc_id.
                    DataTable dtTurmas = entityDocente.doc_id > 0 ?
                                         TUR_TurmaBO.GetSelectBy_Pesquisa_TodosTipos
                                             (Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, 0, 0, 0, 0, 0, 0, "", entityDocente.doc_id, false) : new DataTable();

                    //Obtendo CPF do docente
                    string tdo_id = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF);

                    var x = from DataRow dr in dtDocumento.Rows
                            where dr.RowState != DataRowState.Deleted && dr["tdo_id"].ToString() == tdo_id
                            select dr["numero"].ToString();

                    //Carrega primeira matricula ativa associada ao cargo de docente do colaborador
                    var mat = from DataRow dr in dtCargoFuncao.Rows
                              where dr.RowState != DataRowState.Deleted && dr["situacao_id"].ToString() == "1"
                              select dr["coc_matricula"].ToString();

                    //Carrega os tipos de disciplinas
                    var tipo_dis = from DataRow dr in dtCargoDisciplina.Rows
                                   where dr.RowState != DataRowState.Deleted
                                   select dr["tds_id"].ToString();

                    DataTable dtTipoDisciplinas = tipo_dis.Count() > 0 ?
                                                  ACA_TipoDisciplinaBO.SelecionaTipoDisciplinaPorTipoDisciplina
                                                      (Convert.ToInt32(tipo_dis.First()), bancoGestao, ent_idUsuario) : new DataTable();

                    if (x.Count() > 0)
                    {
                        DadosUserDocente dadosDocente = new DadosUserDocente
                        {
                            nome = entityPessoa.pes_nome
                            ,
                            CPF = x.First()
                            ,
                            matricula = mat.Count() > 0 ? mat.First() : string.Empty
                            ,
                            turma = dtTurmas.Rows.Count > 0 ? dtTurmas.Rows[0]["tur_cod_desc_nome"].ToString() : string.Empty
                            ,
                            serie = dtTurmas.Rows.Count > 0 ? dtTurmas.Rows[0]["crp_descricao"].ToString() : string.Empty
                            ,
                            disciplina = dtTipoDisciplinas.Rows.Count > 0 ? dtTipoDisciplinas.Rows[0]["tds_nome"].ToString() : string.Empty
                        };
                        entityUserLive.dadosUserDocente = dadosDocente;
                    }
                    else
                    {
                        if (!live.VerificarContaEmailExistente(entityUserLive))
                        {
                            throw new ArgumentException("CPF é um documento obrigatório, para integração do docente com live.");
                        }
                    }
                }

                RHU_ColaboradorBO.Save(entityPessoa
                                       , entityPessoaDeficiencia
                                       , dtEndereco
                                       , dtContato
                                       , dtDocumento
                                       , entityCertidaoCivil
                                       , pai_idAntigo
                                       , cid_idAntigo
                                       , PaiAntigo
                                       , MaeAntigo
                                       , tes_idAntigo
                                       , tde_idAntigo
                                       , entityColaborador
                                       , dtCargoFuncao
                                       , dtCargoDisciplina
                                       , bSalvarUsuario
                                       , bSalvarLive
                                       , entityUsuario
                                       , entityUserLive
                                       , sPadraoUsuarioDocente
                                       , bEnviaEmail
                                       , sNomePortal
                                       , sHost
                                       , sEmailSuporte
                                       , ent_idUsuario
                                       , bancoCore
                                       , bancoGestao
                                       , arquivosPermitidos
                                       , tamanhoMaximoKB
                                       , entFoto
                                       , ExcluirImagemAtual);

                entityDocente.col_id = entityColaborador.col_id;

                if (entityDocente.Validate())
                {
                    Save(entityDocente, bancoGestao);
                }
                else
                {
                    throw new ValidationException(GestaoEscolarUtilBO.ErrosValidacao(entityDocente));
                }

                return(true);
            }
            catch (Exception err)
            {
                bancoGestao.Close(err);
                bancoCore.Close(err);

                throw;
            }
            finally
            {
                bancoGestao.Close();
                bancoCore.Close();
            }
        }
Example #7
0
        /// <summary>
        /// Salva os registros de ColaboradorCargo da lista informada, valida as datas e se for um registro
        ///     novo verifica se já existe um coc_id correspondente ao registro que está sendo salvo.
        /// </summary>
        /// <param name="lstColaboradorCargo">Lista de entidade RHU_ColaboradorCargo</param>
        public static void SalvarColaboradorCargoAtribuiçãoDocente(List <RHU_ColaboradorCargo> lstColaboradorCargo)
        {
            RHU_ColaboradorCargoDAO dao = new RHU_ColaboradorCargoDAO();

            dao._Banco.Open(IsolationLevel.ReadCommitted);

            try
            {
                foreach (RHU_ColaboradorCargo entity in lstColaboradorCargo)
                {
                    RHU_ColaboradorCargo colaboradorCargo = entity;
                    if (!colaboradorCargo.Validate())
                    {
                        throw new ValidationException(GestaoEscolarUtilBO.ErrosValidacao(colaboradorCargo));
                    }

                    //Carrega o registro de Colaborador do cargo que está sendo salvo
                    RHU_Colaborador colaborador = new RHU_Colaborador
                    {
                        col_id = colaboradorCargo.col_id,
                        ent_id = colaboradorCargo.ent_id
                    };
                    RHU_ColaboradorBO.GetEntity(colaborador, dao._Banco);

                    //Valida os dados do registro que está sendo adicionado

                    if (colaboradorCargo.coc_vigenciaFim != new DateTime() && colaboradorCargo.coc_vigenciaFim < colaboradorCargo.coc_vigenciaInicio)
                    {
                        throw new ArgumentException("Vigência inicial não pode ser maior que a vigência final.");
                    }

                    if (colaborador.col_dataAdmissao != new DateTime() && colaboradorCargo.coc_vigenciaInicio < colaborador.col_dataAdmissao)
                    {
                        throw new ArgumentException("Vigência inicial não pode ser menor que a data de admissão.");
                    }

                    if (colaborador.col_dataAdmissao != new DateTime() && colaboradorCargo.coc_vigenciaFim != new DateTime() &&
                        colaboradorCargo.coc_vigenciaFim < colaborador.col_dataAdmissao)
                    {
                        throw new ArgumentException("Vigência final não pode ser menor que a data de admissão.");
                    }

                    if (colaborador.col_dataDemissao != new DateTime() && colaboradorCargo.coc_vigenciaInicio > colaborador.col_dataDemissao)
                    {
                        throw new ArgumentException("Vigência inicial não pode ser maior que a data de demissão.");
                    }

                    if (colaborador.col_dataDemissao != new DateTime() && colaboradorCargo.coc_vigenciaFim != new DateTime() &&
                        colaboradorCargo.coc_vigenciaFim > colaborador.col_dataDemissao)
                    {
                        throw new ArgumentException("Vigência final não pode ser maior que a data de demissão.");
                    }

                    ////Só salva se for matrícula de complmentação de carga horária ou vínculo extra
                    //if (!colaboradorCargo.coc_complementacaoCargaHoraria && !colaboradorCargo.coc_vinculoExtra)
                    //    throw new ValidationException("Método é usado para salvar apenas colaborador cargo de vículo extra ou complementação de carga horária.");

                    //Se é uma matrícula nova então verifica se já existe no banco
                    if (colaboradorCargo.IsNew)
                    {
                        //Verifica se já existe um registro salvo correspondente ao que está sendo gravado
                        int coc_id = SelectColaboradorCargoID(colaboradorCargo.col_id, colaboradorCargo.crg_id, colaboradorCargo.coc_matricula,
                                                              colaboradorCargo.coc_complementacaoCargaHoraria, colaboradorCargo.coc_vinculoExtra,
                                                              colaboradorCargo.ent_id, colaboradorCargo.uad_id, dao._Banco);

                        //Se já houver um registro de colaborador cargo salvo no banco então só atualiza esse registro
                        if (coc_id > 0)
                        {
                            throw new ArgumentException("O colaborador já possui um cargo nesta unidade");
                        }
                    }

                    //Finaliza a matrícula se a vigência fim informada fo retroativa
                    if (colaboradorCargo.coc_vigenciaFim != new DateTime() && colaboradorCargo.coc_vigenciaFim < DateTime.Now)
                    {
                        colaboradorCargo.coc_situacao = 6;
                    }
                    else
                    {
                        colaboradorCargo.coc_situacao = 1;
                    }

                    colaboradorCargo.coc_dataAlteracao = DateTime.Now;

                    if (!Save(colaboradorCargo, dao._Banco))
                    {
                        throw new ArgumentException("Erro ao salvar o colaborador cargo.");
                    }
                }
            }
            catch (Exception ex)
            {
                dao._Banco.Close(ex);
                throw ex;
            }
            finally
            {
                dao._Banco.Close();
            }
        }
Example #8
0
 /// <summary>
 /// Método alterado para que o delete não faça exclusão física e sim lógica (update).
 /// </summary>
 /// <param name="entity"> Entidade RHU_Colaborador</param>
 /// <returns>true = sucesso | false = fracasso</returns>
 public override bool Delete(RHU_Colaborador entity)
 {
     __STP_DELETE = "NEW_RHU_Colaborador_Update_Situacao";
     return(base.Delete(entity));
 }
Example #9
0
 /// <summary>
 /// Método alterado para que o update não faça a alteração da data de criação
 /// </summary>
 /// <param name="entity"> Entidade RHU_Colaborador</param>
 /// <returns>true = sucesso | false = fracasso</returns>
 protected override bool Alterar(RHU_Colaborador entity)
 {
     __STP_UPDATE = "NEW_RHU_Colaborador_UPDATE";
     return(base.Alterar(entity));
 }