Adição do botão de entrega manual
This commit is contained in:
@@ -5,6 +5,7 @@ class ConsolidacoesController < ApplicationController
|
||||
before_action :set_consolidacao,
|
||||
only: %i[show edit update destroy finalizar arquivar reativar wizard
|
||||
registrar_pagamento cancelar_pagamento
|
||||
arquivar_motorista desarquivar_motorista
|
||||
preview_extrato gerar_pdf_relatorio gerar_pdf_extrato
|
||||
gerar_pdf_financeiro]
|
||||
|
||||
@@ -151,7 +152,8 @@ class ConsolidacoesController < ApplicationController
|
||||
# GET /consolidacoes/:id — visão geral
|
||||
def show
|
||||
authorize @consolidacao
|
||||
@motoristas = @consolidacao.consolidacao_motoristas.order(:motorista_nome)
|
||||
# A gestão de arquivamento de motorista fica no wizard; aqui listamos só os ativos.
|
||||
@motoristas = @consolidacao.consolidacao_motoristas.ativos.order(:motorista_nome)
|
||||
# Apontamentos manuais agrupados por nota (tracking) p/ exibição e remoção.
|
||||
@apontamentos = @consolidacao.consolidacao_entregas.apontamentos
|
||||
.order(:motorista_nome, :tracking_id)
|
||||
@@ -162,7 +164,8 @@ class ConsolidacoesController < ApplicationController
|
||||
def wizard
|
||||
authorize @consolidacao, :update?
|
||||
|
||||
@motoristas = @consolidacao.consolidacao_motoristas.order(:motorista_nome).map do |cm|
|
||||
@arquivados = @consolidacao.consolidacao_motoristas.arquivados.order(:motorista_nome)
|
||||
@motoristas = @consolidacao.consolidacao_motoristas.ativos.order(:motorista_nome).map do |cm|
|
||||
total = @consolidacao.entregas_elegiveis_count(cm.motorista_nome)
|
||||
classificadas = @consolidacao.classificadas_count(cm.motorista_nome)
|
||||
apontamentos = @consolidacao.consolidacao_entregas
|
||||
@@ -265,6 +268,37 @@ class ConsolidacoesController < ApplicationController
|
||||
redirect_to @consolidacao, notice: pagamento_notice(alvos.size, :estornado)
|
||||
end
|
||||
|
||||
# POST /consolidacoes/:id/arquivar_motorista — arquiva 1 motorista da
|
||||
# consolidação (reversível). Ele sai dos totais/pagamento/gate, mas os dados
|
||||
# ficam guardados e podem ser restaurados. Não arquiva motorista já pago.
|
||||
def arquivar_motorista
|
||||
authorize @consolidacao, :update?
|
||||
cm = @consolidacao.consolidacao_motoristas.find(params[:consolidacao_motorista_id])
|
||||
|
||||
if cm.pago?
|
||||
return redirect_to wizard_consolidacao_path(@consolidacao),
|
||||
alert: "#{cm.motorista_nome} já está pago — estorne o pagamento antes de arquivar."
|
||||
end
|
||||
|
||||
cm.arquivar!(current_user)
|
||||
@consolidacao.recalcular_motorista!(cm.motorista_nome) # tira o valor do total
|
||||
auditar!(:editar, @consolidacao, dados_novos: { arquivar_motorista: cm.motorista_nome })
|
||||
redirect_to wizard_consolidacao_path(@consolidacao),
|
||||
notice: "#{cm.motorista_nome} arquivado. Você pode restaurar quando quiser."
|
||||
end
|
||||
|
||||
# POST /consolidacoes/:id/desarquivar_motorista — restaura um motorista arquivado.
|
||||
def desarquivar_motorista
|
||||
authorize @consolidacao, :update?
|
||||
cm = @consolidacao.consolidacao_motoristas.find(params[:consolidacao_motorista_id])
|
||||
|
||||
cm.desarquivar!(current_user)
|
||||
@consolidacao.recalcular_motorista!(cm.motorista_nome) # devolve o valor ao total
|
||||
auditar!(:editar, @consolidacao, dados_novos: { desarquivar_motorista: cm.motorista_nome })
|
||||
redirect_to wizard_consolidacao_path(@consolidacao),
|
||||
notice: "#{cm.motorista_nome} restaurado para a consolidação."
|
||||
end
|
||||
|
||||
# ── FASE 7 — PDFs ────────────────────────────────────────────
|
||||
|
||||
# GET /consolidacoes/:id/gerar_pdf_relatorio?motorista=X
|
||||
@@ -358,11 +392,12 @@ class ConsolidacoesController < ApplicationController
|
||||
end
|
||||
|
||||
# Um motorista específico (consolidacao_motorista_id) ou todos da consolidação.
|
||||
# "Todos" cobre apenas os ATIVOS — motorista arquivado não recebe pagamento.
|
||||
def motoristas_alvo
|
||||
if params[:consolidacao_motorista_id].present?
|
||||
[@consolidacao.consolidacao_motoristas.find(params[:consolidacao_motorista_id])]
|
||||
else
|
||||
@consolidacao.consolidacao_motoristas.to_a
|
||||
@consolidacao.consolidacao_motoristas.ativos.to_a
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user