Class: Spina::Shop::InvoicesPdfsExporter

Inherits:
Object
  • Object
show all
Defined in:
app/services/spina/shop/invoices_pdfs_exporter.rb

Class Method Summary collapse

Class Method Details

.export(invoice_ids, password) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/services/spina/shop/invoices_pdfs_exporter.rb', line 6

def self.export(invoice_ids, password)
  invoices = Invoice.where(id: invoice_ids)

  zipfile = Tempfile.new(['', '.zip'])
  Zip::OutputStream.open(zipfile.path) do |zipstream|
    invoices.find_each do |invoice|
      zipstream.put_next_entry(invoice.filename)
      presenter = InvoicePresenter.new(invoice, ActionView::Base.new)
      zipstream.write InvoicePdf.new(presenter).render
    end
  end
  zipfile.close
  zipfile
end