Files
baclight/app/services/id_card_printer/member_cards_generator.rb
T
2026-03-19 00:42:27 -04:00

39 lines
1.1 KiB
Ruby

module IdCardPrinter
class MemberCardsGenerator
def initialize(member_keys, layout)
@member_keys = Array.wrap(member_keys)
@employer = employer
@layout = layout
@zip = zip
end
def call
IdCard::PrintData.where(mb_member_key: @employer.pl_plan_key).destroy_all
IdCardPrinter::EmployerDataFormatter.new(@employer).call
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
end
end
end