mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
42 lines
883 B
Ruby
42 lines
883 B
Ruby
# frozen_string_literal: true
|
|
|
|
class InvoiceRenderer
|
|
def initialize(renderer = ApplicationController.new, user = nil)
|
|
@renderer = renderer
|
|
@user = user
|
|
end
|
|
|
|
def render_to_string(order, user = @user)
|
|
renderer.instance_variable_set(:@order, order)
|
|
renderer.render_to_string_with_wicked_pdf(args(order, user))
|
|
end
|
|
|
|
def args(order, user = @user)
|
|
@user = user
|
|
{
|
|
pdf: "invoice-#{order.number}.pdf",
|
|
template: invoice_template,
|
|
formats: [:html],
|
|
encoding: "UTF-8"
|
|
}
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :renderer
|
|
|
|
def invoice_template
|
|
if OpenFoodNetwork::FeatureToggle.enabled?(:invoices, @user)
|
|
invoice_template_v3
|
|
elsif Spree::Config.invoice_style2?
|
|
"spree/admin/orders/invoice2"
|
|
else
|
|
"spree/admin/orders/invoice"
|
|
end
|
|
end
|
|
|
|
def invoice_template_v3
|
|
"spree/admin/orders/invoice4"
|
|
end
|
|
end
|