class Licitacao::Relatorios::AditivosDaAtaController < ApplicationController
  include ControllerConcern

  before_action -> { verifica_modulo_na_sessao(["licitacao", "controladoria","administrativo"]) }
  before_action :authenticate_usuario!
  before_action :autoriza_usuario! , except: [:imprimir]
  before_action :disponibiliza_dependencias

  def imprimir
    bloqueia_usuario_com_base_em :read, "licitacao/aditivos"
    relatorio = params[:relatorio]
    if respond_to? relatorio.to_s, :private
      loa = CombinePDF.new
      loa << CombinePDF.parse(send(relatorio))
      send_data loa.to_pdf, filename: "#{relatorio}.pdf", type: "application/pdf", disposition: 'inline'
    else
      redirect_to :back, alert: 'Relátorio selecionado não existe'
    end
  end

  def documento_do_aditivo_da_ata
    @documento_do_aditivo_da_ata = Licitacao::DocumentoDoAditivoDaAta.find_by(id: params[:documento_do_aditivo_da_ata_id])
    titulo_numero_do_documento = @documento_do_aditivo_da_ata.numero.present? ? "Documento Nº #{@documento_do_aditivo_da_ata.numero}" : ""

    render_to_string pdf: "documento_do_aditivo_da_ata",
      template: "licitacao/relatorios/aditivos_da_ata/documento_do_aditivo_da_ata.pdf.slim",
      orientation: 'Portrait',
      disable_smart_shrinking: true,
      
      dpi: '96',
      header: {
        html: {
          template: 'layouts/_cabecalho_pdf.html.slim',
          locals: {
            titulo1: titulo_numero_do_documento,
            titulo2: ''
          }
        }
      },
      footer: {
        html: {
          template: 'layouts/_rodape_pdf.html.slim'
        }
      },
      margin: @configuracoes.margens_customizadas
  end

  def disponibiliza_dependencias
    @configuracoes = Configuracao.last
  end
end
