novo pilar tipo: termo (valor 5 no enum), lançado como uma linha por lote com manual: true e uma coluna nova quantidade. O valor_aplicado guarda o total do lote (qtd × preço), então recalcular_motorista! e todas as somas existentes seguem corretas sem mudança — linhas antigas ficam com quantidade = 1.

This commit is contained in:
2026-06-26 09:32:59 -03:00
parent f42949db78
commit 09867c8d39
17 changed files with 256 additions and 17 deletions

View File

@@ -0,0 +1,9 @@
# Adiciona `quantidade` aos pilares da consolidação. Usado pelas "entregas de
# termo" (lote de N termos lançado numa única linha). Linhas existentes/demais
# pilares ficam com quantidade = 1 e seguem inalteradas — o valor_aplicado já
# guarda o total da linha, então as somas existentes continuam corretas.
class AddQuantidadeToConsolidacaoEntregas < ActiveRecord::Migration[7.1]
def change
add_column :consolidacao_entregas, :quantidade, :integer, null: false, default: 1
end
end

View File

@@ -0,0 +1,18 @@
# Cria a configuração de preço "Entrega de Termo" em bancos já existentes, para
# que apareça na tela de Configurações. Idempotente — não sobrescreve se o admin
# já tiver definido um valor.
class AddPrecoTermoConfiguracao < ActiveRecord::Migration[7.1]
def up
return if Configuracao.exists?(chave: 'preco_termo')
Configuracao.create!(
chave: 'preco_termo',
valor: '15.00',
descricao: 'Valor pago por entrega de termo (R$)'
)
end
def down
Configuracao.where(chave: 'preco_termo').delete_all
end
end

View File

@@ -29,6 +29,7 @@ configs = [
{ chave: 'preco_bonus', valor: '10.00', descricao: 'Valor de bônus por meta/critério (R$)' },
{ chave: 'preco_desconto', valor: '15.00', descricao: 'Valor descontado por problema (R$)' },
{ chave: 'preco_extraordinaria', valor: '25.00', descricao: 'Valor coringa para entregas fora do planejamento (R$)' },
{ chave: 'preco_termo', valor: '15.00', descricao: 'Valor pago por entrega de termo (R$)' },
{ chave: 'notificacao_whatsapp', valor: 'false', descricao: 'Notificações via WhatsApp (true/false)' },
{ chave: 'notificacao_email', valor: 'false', descricao: 'Notificações via e-mail (true/false)' },
{ chave: 'empresa_nome', valor: 'Reem Transporte', descricao: 'Nome da empresa exibido no sistema' },