Adição de mais um preço 'Termo especial'
This commit is contained in:
@@ -339,10 +339,15 @@ class Consolidacao < ApplicationRecord
|
||||
# para atrelar (só motorista + quantidade, a um preço fixo configurável). Fica
|
||||
# numa única linha (manual: true): quantidade guarda o N e valor_aplicado guarda
|
||||
# o total do lote, então recalcular_motorista! e demais somas seguem inalteradas.
|
||||
def adicionar_termos!(motorista:, quantidade:, user:, vehicle: nil)
|
||||
# `tipo` distingue termo normal ('termo') de termo especial ('termo_especial'),
|
||||
# cada um com seu preço configurável.
|
||||
def adicionar_termos!(motorista:, quantidade:, user:, vehicle: nil, tipo: 'termo')
|
||||
nome = motorista.to_s.strip
|
||||
raise ArgumentError, 'Informe o motorista do termo.' if nome.blank?
|
||||
|
||||
tipo = tipo.to_s
|
||||
raise ArgumentError, 'Tipo de termo inválido.' unless %w[termo termo_especial].include?(tipo)
|
||||
|
||||
qtd = quantidade.to_i
|
||||
raise ArgumentError, 'Informe uma quantidade válida de termos.' if qtd < 1
|
||||
|
||||
@@ -351,10 +356,10 @@ class Consolidacao < ApplicationRecord
|
||||
|
||||
consolidacao_entregas.create!(
|
||||
tracking_id: "TERMO-#{SecureRandom.uuid}", # sintético: não há Entrega/NF
|
||||
tipo: 'termo',
|
||||
tipo: tipo,
|
||||
motorista_nome: nome,
|
||||
quantidade: qtd,
|
||||
valor_aplicado: qtd * ConsolidacaoEntrega.valor_para('termo'), # total do lote
|
||||
valor_aplicado: qtd * ConsolidacaoEntrega.valor_para(tipo), # total do lote
|
||||
manual: true,
|
||||
vehicle: vehicle.presence, # veículo escolhido no lançamento (Q3)
|
||||
created_by: user&.id
|
||||
|
||||
Reference in New Issue
Block a user