From 3f4eab2a0aa362110f7cc60b659dcf6c8ed06517 Mon Sep 17 00:00:00 2001 From: Mohamed ABDELLANI Date: Sun, 20 Aug 2023 07:28:32 +0100 Subject: [PATCH] update the invoice renderer to check if the feature is enable for individual user --- app/controllers/spree/admin/orders_controller.rb | 2 +- app/jobs/bulk_invoice_job.rb | 2 +- app/mailers/spree/order_mailer.rb | 2 +- app/services/invoice_renderer.rb | 12 +++++++----- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/controllers/spree/admin/orders_controller.rb b/app/controllers/spree/admin/orders_controller.rb index e176f03f82..6811ed283c 100644 --- a/app/controllers/spree/admin/orders_controller.rb +++ b/app/controllers/spree/admin/orders_controller.rb @@ -104,7 +104,7 @@ module Spree @order = @order.invoices.find(params[:invoice_id]).presenter end - render_with_wicked_pdf InvoiceRenderer.new.args(@order) + render_with_wicked_pdf InvoiceRenderer.new.args(@order, spree_current_user) end private diff --git a/app/jobs/bulk_invoice_job.rb b/app/jobs/bulk_invoice_job.rb index ae2351497c..3c360005fa 100644 --- a/app/jobs/bulk_invoice_job.rb +++ b/app/jobs/bulk_invoice_job.rb @@ -38,7 +38,7 @@ class BulkInvoiceJob < ApplicationJob else order end - invoice = renderer.render_to_string(renderer_data) + invoice = renderer.render_to_string(renderer_data, current_user) pdf << CombinePDF.parse(invoice) end diff --git a/app/mailers/spree/order_mailer.rb b/app/mailers/spree/order_mailer.rb index ada221c60a..e3430c7787 100644 --- a/app/mailers/spree/order_mailer.rb +++ b/app/mailers/spree/order_mailer.rb @@ -58,7 +58,7 @@ module Spree @order end - pdf = InvoiceRenderer.new.render_to_string(renderer_data) + pdf = InvoiceRenderer.new.render_to_string(renderer_data, current_user) attach_file("invoice-#{@order.number}.pdf", pdf) I18n.with_locale valid_locale(@order.user) do diff --git a/app/services/invoice_renderer.rb b/app/services/invoice_renderer.rb index d46ed37a33..cdf249eaa3 100644 --- a/app/services/invoice_renderer.rb +++ b/app/services/invoice_renderer.rb @@ -1,16 +1,18 @@ # frozen_string_literal: true class InvoiceRenderer - def initialize(renderer = ApplicationController.new) + def initialize(renderer = ApplicationController.new, user = nil) @renderer = renderer + @user = user end - def render_to_string(order) + def render_to_string(order, user = @user) renderer.instance_variable_set(:@order, order) - renderer.render_to_string_with_wicked_pdf(args(order)) + renderer.render_to_string_with_wicked_pdf(args(order, user)) end - def args(order) + def args(order, user = @user) + @user = user { pdf: "invoice-#{order.number}.pdf", template: invoice_template, @@ -24,7 +26,7 @@ class InvoiceRenderer attr_reader :renderer def invoice_template - if OpenFoodNetwork::FeatureToggle.enabled?(:invoices) + if OpenFoodNetwork::FeatureToggle.enabled?(:invoices, @user) invoice_presenter_template elsif Spree::Config.invoice_style2? "spree/admin/orders/invoice2"