Implantação da função de controle de consolidaçoes pagas e pendentes
This commit is contained in:
@@ -7,13 +7,19 @@ require 'rqrcode'
|
||||
|
||||
module Pdf
|
||||
class HoleritePdf < BasePdf
|
||||
def initialize(consolidacao:, motorista:, user_motorista: nil, app_host: nil)
|
||||
VERDE = '22C55E'
|
||||
CINZA_BG = 'E5E7EB'
|
||||
|
||||
def initialize(consolidacao:, motorista:, user_motorista: nil, app_host: nil,
|
||||
pago_em: nil, forma_pagamento: nil)
|
||||
super()
|
||||
@consolidacao = consolidacao
|
||||
@motorista = motorista
|
||||
@user_motorista = user_motorista
|
||||
@app_host = app_host || ENV.fetch('APP_HOST', 'localhost:3000')
|
||||
@entregas = consolidacao.consolidacao_entregas.where(motorista_nome: motorista)
|
||||
@consolidacao = consolidacao
|
||||
@motorista = motorista
|
||||
@user_motorista = user_motorista
|
||||
@app_host = app_host || ENV.fetch('APP_HOST', 'localhost:3000')
|
||||
@pago_em = pago_em
|
||||
@forma_pagamento = forma_pagamento
|
||||
@entregas = consolidacao.consolidacao_entregas.where(motorista_nome: motorista)
|
||||
end
|
||||
|
||||
private
|
||||
@@ -34,6 +40,8 @@ module Pdf
|
||||
t.columns(0).width = 120
|
||||
end
|
||||
|
||||
desenhar_selo_pagamento
|
||||
|
||||
secao "PROVENTOS E DESCONTOS"
|
||||
|
||||
resumo = @entregas.group(:tipo).count
|
||||
@@ -84,6 +92,26 @@ module Pdf
|
||||
assinaturas(motorista: @motorista)
|
||||
end
|
||||
|
||||
# Selo de pagamento: faixa verde "PAGO" (com data/forma) ou cinza "PENDENTE".
|
||||
def desenhar_selo_pagamento
|
||||
@pdf.move_down 10
|
||||
pago = @pago_em.present?
|
||||
cor = pago ? VERDE : CINZA_BG
|
||||
texto = if pago
|
||||
via = @forma_pagamento.present? ? " · #{@forma_pagamento.to_s.capitalize}" : ''
|
||||
"✓ PAGO em #{@pago_em.strftime('%d/%m/%Y')}#{via}"
|
||||
else
|
||||
"PAGAMENTO PENDENTE"
|
||||
end
|
||||
|
||||
@pdf.fill_color cor
|
||||
@pdf.fill_rounded_rectangle [0, @pdf.cursor], 250, 26, 5
|
||||
@pdf.fill_color(pago ? 'FFFFFF' : '374151')
|
||||
@pdf.text_box texto, at: [12, @pdf.cursor - 8], width: 238, size: 10, style: :bold
|
||||
@pdf.fill_color '000000'
|
||||
@pdf.move_down 34
|
||||
end
|
||||
|
||||
# Monta a URL respeitando o esquema do APP_HOST. Se vier sem http(s)://
|
||||
# (ex.: "100.75.222.23:3000") assume http — produção em IP:porta normalmente
|
||||
# não tem TLS. Defina APP_HOST com "https://" se o servidor usar HTTPS.
|
||||
|
||||
Reference in New Issue
Block a user