Correção Do Botão Arquivar

This commit is contained in:
2026-06-22 17:26:26 -03:00
parent 94d8420bbd
commit b742b2c2e3
4 changed files with 34 additions and 9 deletions

View File

@@ -60,24 +60,31 @@ class Consolidacao < ApplicationRecord
# ── Métodos ─────────────────────────────────────────────────
# Arquivar é um soft-delete administrativo: deve SEMPRE funcionar, mesmo numa
# consolidação zerada ou em rascunho com dados incompletos. Por isso usamos
# update_columns — pula validações (periodo_valido, presença) e o callback
# recalcular_valor_total, que não fazem sentido ao apenas mover para o arquivo.
def arquivar!(user)
update!(
update_columns(
deleted_at: Time.current,
status: :arquivada,
status: self.class.statuses[:arquivada],
arquivado_por: user&.id,
arquivado_em: Time.current
arquivado_em: Time.current,
updated_at: Time.current
)
end
# Restaura uma consolidação arquivada. Como o status original não é guardado,
# inferimos: se já tinha sido finalizada (finalizado_em presente) volta para
# :finalizada, senão para :rascunho. Limpa os campos de arquivamento.
# Também via update_columns para não depender da validade do conteúdo.
def reativar!(_user)
update!(
update_columns(
deleted_at: nil,
status: finalizado_em? ? :finalizada : :rascunho,
status: self.class.statuses[finalizado_em? ? :finalizada : :rascunho],
arquivado_por: nil,
arquivado_em: nil
arquivado_em: nil,
updated_at: Time.current
)
end