/// <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; }
/// <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(); } }
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); } } }
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(); } }
/// <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); }
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(); } }
/// <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(); } }
/// <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)); }
/// <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)); }