/// <summary> /// Recupera os registro de log /// </summary> /// <param name="idFunc"></param> /// <param name="tabela"></param> /// <param name="id"></param> /// <param name="item"></param> /// <param name="motivo"></param> /// <param name="manual"></param> /// <returns></returns> public IEnumerable <LogCancelamento> ObtemLogs(uint idFunc, LogCancelamento.TabelaCancelamento tabela, int id, object item, string motivo, bool manual) { uint numEvento = GetNumEvento(tabela, id); // Percorre todas as propriedades que usam Log foreach (var p in GetPropriedades(item)) { // Recupera o valor e garante que ele seja válido string valor = p.Atributo.GetValue(p.Propriedade, item); if (String.IsNullOrEmpty(valor)) { continue; } // Cria o log LogCancelamento log = new LogCancelamento(); log.Tabela = (int)tabela; log.IdRegistroCanc = id; log.NumEvento = numEvento; log.Motivo = motivo; log.IdFuncCanc = UserInfo.GetUserInfo?.CodUser ?? 0; log.DataCanc = DateTime.Now; log.CancelamentoManual = manual; log.Campo = p.Atributo.Campo; log.Valor = valor; log.Referencia = LogCancelamento.GetReferencia(tabela, (uint)id); if (log.Referencia != null) { log.Referencia = log.Referencia.Length <= 100 ? log.Referencia : log.Referencia.Substring(0, 97) + "..."; } yield return(log); } }
/// <summary> /// Retorna o número do evento de cancelamento para um registro de uma tabela. /// </summary> private uint GetNumEvento(GDASession session, LogCancelamento.TabelaCancelamento tabela, int idRegistroCanc) { if (idRegistroCanc < 0) { return(1); } string sql = @"select coalesce(max(numEvento), 0) + 1 from log_cancelamento where tabela=" + (int)tabela + " and idRegistroCanc=" + idRegistroCanc; return(ExecuteScalar <uint>(session, sql)); }
/// <summary> /// Cria o Log de cancelamento de um objeto. /// </summary> /// <param name="tabela">A tabela que está sendo alterada.</param> /// <param name="id">O ID do item que está sendo cancelado.</param> /// <param name="item">O item que está sendo cancelado.</param> /// <param name="motivo">O motivo do cancelamento.</param> /// <param name="manual">O cancelamento foi manual?</param> private void InserirLog(GDASession sessao, uint idFunc, LogCancelamento.TabelaCancelamento tabela, uint id, object item, string motivo, bool manual) { // Cria a variável que guarda o texto que será salvo StringBuilder texto = new StringBuilder(); uint numEvento = GetNumEvento(sessao, tabela, (int)id); // Percorre todas as propriedades que usam Log foreach (var p in GetPropriedades(item)) { // Recupera o valor e garante que ele seja válido string valor = p.Atributo.GetValue(p.Propriedade, item); if (String.IsNullOrEmpty(valor)) { continue; } // Cria o log LogCancelamento log = new LogCancelamento(); log.Tabela = (int)tabela; log.IdRegistroCanc = (int)id; log.NumEvento = numEvento; log.Motivo = motivo; log.IdFuncCanc = idFunc; log.DataCanc = DateTime.Now; log.CancelamentoManual = manual; log.Campo = p.Atributo.Campo; log.Valor = valor; log.Referencia = LogCancelamento.GetReferencia(sessao, tabela, (uint)id); if (log.Referencia != null) { log.Referencia = log.Referencia.Length <= 100 ? log.Referencia : log.Referencia.Substring(0, 97) + "..."; } Insert(sessao, log); } }
protected void Page_Load(object sender, EventArgs e) { LogCancelamento.TabelaCancelamento tabela = (LogCancelamento.TabelaCancelamento)Glass.Conversoes.StrParaInt(Request["tabela"]); if (!IsPostBack) { try { string descrTabela = LogCancelamento.GetDescrTabela(tabela); Page.Title += descrTabela; } catch { } } if (!IsPostBack) { hdfIdRegistroCanc.Value = Request.QueryString["id"]; } hdfExibirAdmin.Value = UserInfo.GetUserInfo.IsAdminSync.ToString(); switch (tabela) { case LogCancelamento.TabelaCancelamento.MovimentacaoBancaria: grdLog.Columns[0].Visible = true; grdLog.Columns[0].HeaderText = "Cód."; break; default: grdLog.Columns[0].Visible = false; break; } lblIdRegistroCanc.Visible = grdLog.Columns[0].Visible; lblIdRegistroCanc.Text = grdLog.Columns[0].HeaderText; txtIdRegistroCanc.Visible = grdLog.Columns[0].Visible; imgPesq.Visible = grdLog.Columns[0].Visible; }
/// <summary> /// Verifica se há log para um registro de uma tabela. /// </summary> /// <param name="tabela"></param> /// <param name="idRegistroCanc"></param> /// <returns></returns> public bool TemRegistro(LogCancelamento.TabelaCancelamento tabela, uint idRegistroCanc) { return(GetCount((int)tabela, idRegistroCanc, UserInfo.GetUserInfo.IsAdminSync, null, 0, null, null, null, true) > 0); }
/// <summary> /// Cria o Log de cancelamento de um objeto. /// </summary> /// <param name="tabela">A tabela que está sendo alterada.</param> /// <param name="id">O ID do item que está sendo cancelado.</param> /// <param name="item">O item que está sendo cancelado.</param> /// <param name="motivo">O motivo do cancelamento.</param> /// <param name="manual">O cancelamento foi manual?</param> private void InserirLog(uint idFunc, LogCancelamento.TabelaCancelamento tabela, uint id, object item, string motivo, bool manual) { InserirLog(null, idFunc, tabela, id, item, motivo, manual); }
/// <summary> /// Retorna o número do evento de cancelamento para um registro de uma tabela. /// </summary> private uint GetNumEvento(LogCancelamento.TabelaCancelamento tabela, int idRegistroCanc) { return(GetNumEvento(null, tabela, idRegistroCanc)); }