/// <summary> /// Inclui um registro no Processo Miscelanea Execucao /// </summary> /// <param name="IdProcessoMiscelanea">ID do processo em execução</param> /// <param name="IdProcessoMiscExec">ID do processo Miscelanea em execução</param> /// <param name="dataHoraInicio">Data/Hora de inicio da execução</param> /// <param name="dataHoraFim">Data/Hora de fim da execução</param> /// <param name="statusExecucao">Status da Execução</param> /// <param name="descricao">Descrição/Mensagens da execução</param> public void Atualizar(Int32 IdProcessoMiscelanea, Int32 IdProcessoMiscExec, DateTime dataHoraInicio, DateTime dataHoraFim, CaseBusiness.CC.Scheduler.StatusAgendamentoProcessoExecucao.enmStatusExecucao statusExecucao, String descricao) { try { if (ModoEntidadeOnly) { throw new ApplicationException("Esta Instância da classe Agendamento está operando em Modo Entidade Only"); } acessoDadosBase.AddParameter("@PROCMISC_ID", IdProcessoMiscelanea); acessoDadosBase.AddParameter("@PROCMISCEX_DH_INI", dataHoraInicio); acessoDadosBase.AddParameter("@PROCMISCEX_DH_FIM", dataHoraFim); acessoDadosBase.AddParameter("@STAPE_ST", StatusAgendamentoProcessoExecucao.ObterDBValue_StatusExecucao(statusExecucao)); acessoDadosBase.AddParameter("@PROCMISCEX_DS", descricao); acessoDadosBase.AddParameter("@PROCMISCEX_ID", IdProcessoMiscExec); acessoDadosBase.ExecuteNonQuerySemRetorno(CommandType.StoredProcedure, "prPROCMISCEX_UPD"); } catch (Exception ex) { CaseBusiness.Framework.Log.Log.Logar(CaseBusiness.Framework.TipoLog.Erro, ex.Message, ex.StackTrace, "", "", DateTime.Now, CaseBusiness.Framework.Configuracao.Configuracao.Aplicacao, CaseBusiness.Framework.Tela.Nenhum, 0); throw; } }
/// <summary> /// Inclui um registro no Processo Miscelanea Execucao /// </summary> /// <param name="IdProcessoMiscelanea">ID do processo em execução</param> /// <param name="dataHoraInicio">Data/Hora de inicio da execução</param> /// <param name="dataHoraFim">Data/Hora de fim da execução</param> /// <param name="statusExecucao">Status da Execução</param> /// <param name="descricao">Descrição/Mensagens da execução</param> public Int32 Incluir(Int32 IdProcessoMiscelanea, DateTime dataHoraInicio, DateTime dataHoraFim, CaseBusiness.CC.Scheduler.StatusAgendamentoProcessoExecucao.enmStatusExecucao statusExecucao, String descricao) { Int32 _id = Int32.MinValue; try { if (ModoEntidadeOnly) { throw new ApplicationException("Esta Instância da classe Agendamento está operando em Modo Entidade Only"); } acessoDadosBase.AddParameter("@PROCMISC_ID", IdProcessoMiscelanea); acessoDadosBase.AddParameter("@PROCMISCEX_DH_INI", dataHoraInicio); acessoDadosBase.AddParameter("@PROCMISCEX_DH_FIM", dataHoraFim); acessoDadosBase.AddParameter("@STAPE_ST", StatusAgendamentoProcessoExecucao.ObterDBValue_StatusExecucao(statusExecucao)); acessoDadosBase.AddParameter("@PROCMISCEX_DS", descricao); acessoDadosBase.AddParameter("@PROCMISCEX_ID", Int32.MaxValue, ParameterDirection.InputOutput); _id = Convert.ToInt32(acessoDadosBase.ExecuteNonQueryComRetorno(CommandType.StoredProcedure, "prPROCMISCEX_INS")[0]); } catch (Exception ex) { CaseBusiness.Framework.Log.Log.Logar(CaseBusiness.Framework.TipoLog.Erro, ex.Message, ex.StackTrace, "", "", DateTime.Now, CaseBusiness.Framework.Configuracao.Configuracao.Aplicacao, CaseBusiness.Framework.Tela.Nenhum, 0); throw; } return(_id); }
/// <summary> /// Altera um Agendamento /// </summary> /// <param name="idSistema">ID do Sistema que terá agendamento de execução de um processo</param> /// <param name="statusAgendamentoProcessamentoExecucao">Status Agendamento Processamento Execucao</param> /// <param name="tipoExecucao">Tipo Execucao</param> /// <param name="horaExecucao">Hora que será feito a execucao do processo</param> /// <param name="dhInclusao">Data Hora Inclusao</param> /// <param name="idAgendamento">ID Agendamento</param> public void Alterar(Int32 idSistema, StatusAgendamentoProcessoExecucao.enmStatusExecucao statusAgendamentoProcessamentoExecucao, Agendamento.enmTipoExecucao tipoExecucao, DateTime horaExecucao, DateTime horaProximaExecucao, DateTime dhInclusao, Int32 idAgendamento) { try { if (ModoEntidadeOnly) { throw new ApplicationException("Esta Instância da classe Agendamento está operando em Modo Entidade Only"); } acessoDadosBase.AddParameter("@SIST_ID", idSistema); acessoDadosBase.AddParameter("@STAPE_ST", StatusAgendamentoProcessoExecucao.ObterDBValue_StatusExecucao(statusAgendamentoProcessamentoExecucao)); acessoDadosBase.AddParameter("@AGPROC_TP_EXECUCAO", ObterDBValue_TipoExecucao(tipoExecucao)); acessoDadosBase.AddParameter("@AGPROC_HR_EXECUCAO", horaExecucao); acessoDadosBase.AddParameter("@AGPROC_DH_PROX_EXECUCAO", horaProximaExecucao); acessoDadosBase.AddParameter("@USU_ID_UPD", base.UsuarioManutencao.ID); acessoDadosBase.AddParameter("@AGPROC_DH_USUARIO_UPD", dhInclusao); acessoDadosBase.AddParameter("@AGPROC_ID", idAgendamento); acessoDadosBase.ExecuteNonQuerySemRetorno(CommandType.StoredProcedure, "prAGPROC_UPD"); } catch (Exception ex) { CaseBusiness.Framework.Log.Log.Logar(CaseBusiness.Framework.TipoLog.Erro, ex.Message, ex.StackTrace, "", "", DateTime.Now, CaseBusiness.Framework.Configuracao.Configuracao.Aplicacao, CaseBusiness.Framework.Tela.Nenhum, 0); throw; } }
/// <summary> /// Atualizar Status de Execucao de um Agendamento /// </summary> /// <param name="idAgendamento">ID Agendamento</param> /// <param name="stExecucaoAgendamento">Status do Execução de Agendamento do processo </param> public void AtualizarStatusExecucaoAgendamento(Int32 idAgendamento , StatusAgendamentoProcessoExecucao.enmStatusExecucao stExecucaoAgendamento) { try { if (ModoEntidadeOnly) { throw new ApplicationException("Esta Instância da classe Parametro está operando em Modo Entidade Only"); } acessoDadosBase.AddParameter("@AGPROC_ID", idAgendamento); acessoDadosBase.AddParameter("@STAPE_ST", StatusAgendamentoProcessoExecucao.ObterDBValue_StatusExecucao(stExecucaoAgendamento)); switch (stExecucaoAgendamento) { case StatusAgendamentoProcessoExecucao.enmStatusExecucao.Agendado: acessoDadosBase.AddParameter("@AGPROC_DH_ULT_EXECUCAO", DateTime.MinValue); break; default: acessoDadosBase.AddParameter("@AGPROC_DH_ULT_EXECUCAO", DateTime.Now); break; } acessoDadosBase.ExecuteNonQuerySemRetorno(CommandType.StoredProcedure, "prAGPROC_UPD_STATUS_EXEC_AGEN"); } catch (Exception ex) { CaseBusiness.Framework.Log.Log.Logar(CaseBusiness.Framework.TipoLog.Erro, ex.Message, ex.StackTrace, "", "", DateTime.Now, CaseBusiness.Framework.Configuracao.Configuracao.Aplicacao, CaseBusiness.Framework.Tela.Nenhum, 0); throw; } }
/// <summary> /// Lista todos os agendamentos /// </summary> /// <param name="statusExecucao">Status de execução do Agendamento</param> /// <param name="statusAgendamento">Status do agendamento</param> /// <returns></returns> public DataTable Listar(StatusAgendamentoProcessoExecucao.enmStatusExecucao statusExecucao, enmStatus statusAgendamento) { DataTable dt = null; try { if (ModoEntidadeOnly) { throw new ApplicationException("Esta Instância da classe Agendamento está operando em Modo Entidade Only"); } acessoDadosBase.AddParameter("@STAPE_ST", StatusAgendamentoProcessoExecucao.ObterDBValue_StatusExecucao(statusExecucao)); acessoDadosBase.AddParameter("@STAGPROC_ST", ObterDBValue_Status(statusAgendamento)); dt = acessoDadosBase.ExecuteDataSet(CommandType.StoredProcedure, "prAGPROC_SEL_LISTAR").Tables[0]; // Renomear Colunas RenomearColunas(ref dt); } catch (Exception ex) { CaseBusiness.Framework.Log.Log.Logar(CaseBusiness.Framework.TipoLog.Erro, ex.Message, ex.StackTrace, "", "", DateTime.Now, CaseBusiness.Framework.Configuracao.Configuracao.Aplicacao, CaseBusiness.Framework.Tela.Nenhum, 0); throw; } return(dt); }
/// <summary> /// Consulta um Agendamento /// </summary> /// <param name="idAgendamento">ID Agendamento</param> public Agendamento ConsultarDependenteExecucao(Int32 idAgendamento) { try { DataTable dt; if (ModoEntidadeOnly) { throw new ApplicationException("Esta Instância da classe Agendamento está operando em Modo Entidade Only"); } acessoDadosBase.AddParameter("@AGPROC_ID", idAgendamento); dt = acessoDadosBase.ExecuteDataSet(CommandType.StoredProcedure, "prAGPROC_SEL_CONS_DEP_EXEC").Tables[0]; // Fill Object __blnIsLoaded = false; if (dt.Rows.Count > 0) { IdAgendamento = Convert.ToInt32(dt.Rows[0]["AGPROC_ID"]); IdAgendamentoDependenteExecucao = dt.Rows[0]["AGPROC_ID_DEPEND_EXEC"] == DBNull.Value ? Int32.MinValue : Convert.ToInt32(dt.Rows[0]["AGPROC_ID_DEPEND_EXEC"]); IdSistema = Convert.ToInt32(dt.Rows[0]["SIST_ID"]); if (dt.Rows[0]["SIST_CD_MODULO"] != DBNull.Value) { CodigoSistemaModulo = Convert.ToString(dt.Rows[0]["SIST_CD_MODULO"]); } StatusExecucaoAgendamento = StatusAgendamentoProcessoExecucao.ObterEnum_StatusExecucao(dt.Rows[0]["STAPE_ST"].ToString().Trim()); StatusAgendamento = ObterEnum_Status(dt.Rows[0]["STAGPROC_ST"].ToString().Trim()); DescricaoStatusAgendamento = Convert.ToString(dt.Rows[0]["STAGPROC_DS"]); TipoExecucao = ObterEnum_TipoExecucao(dt.Rows[0]["AGPROC_TP_EXECUCAO"].ToString().Trim()); HoraExecucao = Convert.ToDateTime(dt.Rows[0]["AGPROC_HR_EXECUCAO"] == DBNull.Value ? DateTime.MinValue : dt.Rows[0]["AGPROC_HR_EXECUCAO"]); DhUltimaExec = Convert.ToDateTime(dt.Rows[0]["AGPROC_DH_ULT_EXECUCAO"] == DBNull.Value ? DateTime.MinValue : dt.Rows[0]["AGPROC_DH_ULT_EXECUCAO"]); DhProximaExec = Convert.ToDateTime(dt.Rows[0]["AGPROC_DH_PROX_EXECUCAO"] == DBNull.Value ? DateTime.MinValue : dt.Rows[0]["AGPROC_DH_PROX_EXECUCAO"]); DhManutencaoStatus = Convert.ToDateTime(dt.Rows[0]["AGPROC_DH_USUARIO_STATUS"] == DBNull.Value ? DateTime.MinValue : dt.Rows[0]["AGPROC_DH_USUARIO_STATUS"]); StatusNomeUsuario = Convert.ToString(dt.Rows[0]["USU_NM"]); __blnIsLoaded = true; } return(this); } catch (Exception ex) { CaseBusiness.Framework.Log.Log.Logar(CaseBusiness.Framework.TipoLog.Erro, ex.Message, ex.StackTrace, "", "", DateTime.Now, CaseBusiness.Framework.Configuracao.Configuracao.Aplicacao, CaseBusiness.Framework.Tela.Nenhum, 0); throw; } }
/// <summary> /// Inclui um Agendamento com dependência /// </summary> /// <param name="idSistema">ID do Sistema que terá agendamento de execução de um processo</param> /// <param name="codigoSistemaModulo">Código do Módulo do Sistema</param> /// <param name="nome">Nome do processo que está sendo agendado</param> /// <param name="statusAgendamentoProcesso">Status do Agendamento do processo</param> /// <param name="tipoExecucao">Tipo Execucao (IMED = Imediato; DIAR = Diário)</param> /// <param name="horaExecucao">Hora que será feito a execucao do processo</param> /// <param name="dhInclusao">Data Hora Inclusao</param> /// <param name="idAgendamentoDependenciaExecucao">ID do Agendamento que o processo sendo agendendado é dependente de execução. Este agendamento só será executado após a execução com sucesso deste agendamento informado.</param> /// <param name="idAgendamento">Parâmetro de saída com o ID do Agendamento criado</param> public void Incluir(Int32 idSistema, String codigoSistemaModulo, String nome, Agendamento.enmStatus statusAgendamentoProcesso, Agendamento.enmTipoExecucao tipoExecucao, DateTime horaExecucao, DateTime horaProximaExecucao, DateTime dhInclusao, int idAgendamentoDependenciaExecucao, Agendamento.enmTipoProcesso tipoProcesso, Boolean permiteConcorrenciaExecucao, ref Int32 idAgendamento) { try { if (ModoEntidadeOnly) { throw new ApplicationException("Esta Instância da classe Agendamento está operando em Modo Entidade Only"); } idAgendamento = Int32.MinValue; acessoDadosBase.AddParameter("@SIST_ID", idSistema); acessoDadosBase.AddParameter("@SIST_CD_MODULO", codigoSistemaModulo); acessoDadosBase.AddParameter("@AGPROC_NM", nome); acessoDadosBase.AddParameter("@STAGPROC_ST", ObterDBValue_Status(statusAgendamentoProcesso)); acessoDadosBase.AddParameter("@STAPE_ST", StatusAgendamentoProcessoExecucao.ObterDBValue_StatusExecucao(StatusAgendamentoProcessoExecucao.enmStatusExecucao.Agendado)); acessoDadosBase.AddParameter("@AGPROC_TP_EXECUCAO", ObterDBValue_TipoExecucao(tipoExecucao)); acessoDadosBase.AddParameter("@AGPROC_HR_EXECUCAO", horaExecucao); acessoDadosBase.AddParameter("@AGPROC_DH_PROX_EXECUCAO", horaProximaExecucao); acessoDadosBase.AddParameter("@USU_ID_INS", base.UsuarioManutencao.ID); acessoDadosBase.AddParameter("@AGPROC_DH_USUARIO_INS", dhInclusao); acessoDadosBase.AddParameter("@AGPROC_ID_DEPEND_EXEC", idAgendamentoDependenciaExecucao); acessoDadosBase.AddParameter("@AGPROC_TP_PROC", Agendamento.kTipoProcesso_GRUPO); acessoDadosBase.AddParameter("@AGPROC_FL_CONCORRENCIA_EXEC", permiteConcorrenciaExecucao); acessoDadosBase.AddParameter("@AGPROC_ID", Int32.MaxValue, ParameterDirection.InputOutput); idAgendamento = Convert.ToInt32(acessoDadosBase.ExecuteNonQueryComRetorno(CommandType.StoredProcedure, "prAGPROC_INS_DEPEND_EXEC")[0]); } catch (Exception ex) { CaseBusiness.Framework.Log.Log.Logar(CaseBusiness.Framework.TipoLog.Erro, ex.Message, ex.StackTrace, "", "", DateTime.Now, CaseBusiness.Framework.Configuracao.Configuracao.Aplicacao, CaseBusiness.Framework.Tela.Nenhum, 0); throw; } }