Files
baclight/app/services/id_card_printer/employer_cards_generator.rb
T

39 lines
1.1 KiB
Ruby
Raw Normal View History

2026-03-16 12:09:45 -04:00
module IdCardPrinter
class EmployerCardsGenerator
2026-03-19 00:42:27 -04:00
def initialize(employer, layout, zip=false)
@employer = employer
2026-03-16 12:09:45 -04:00
@layout = layout
@zip = zip
end
def call
2026-03-19 00:42:27 -04:00
IdCard::PrintData.where(pl_plan_key: @employer.pl_plan_key).destroy_all
IdCardPrinter::EmployerDataFormatter.new(@employer).call
2026-03-16 12:09:45 -04:00
2026-03-19 00:42:27 -04:00
pdf_array = IdCardPrinter::PdfProcessor.new(@employer, @layout, @zip).call
group_pdfs = combine_pdfs(pdf_array)
group_pdfs
end
private
def combine_pdfs(pdf_array)
if @zip
group_cards_pdf = Zip::OutputStream.write_buffer do |zio|
pdf_array.each do |file|
zio.put_next_entry(file[:name])
zio.write(file[:data])
end
end
else
group_cards_pdf = CombinePDF.new
pdf_array.each { |pdf| group_cards_pdf << pdf }
end
group_cards_pdf
2026-03-16 12:09:45 -04:00
end
end
end