From bb6298d06d5867a331de06f820826c7bba86b7b6 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Thu, 23 Jun 2022 11:21:43 +0200 Subject: [PATCH] Check for enterprise_number_required_on_invoices boolean if true, then can edit invoice ; if false, then print a confirm alert popup to specify that a enterprise number must be set for this enterprise --- app/helpers/spree/admin/orders_helper.rb | 17 ++++++++++++++++- app/models/enterprise.rb | 2 ++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/helpers/spree/admin/orders_helper.rb b/app/helpers/spree/admin/orders_helper.rb index d70560abad..37a4fb45cb 100644 --- a/app/helpers/spree/admin/orders_helper.rb +++ b/app/helpers/spree/admin/orders_helper.rb @@ -44,6 +44,14 @@ module Spree end end + def print_invoice_link + if @order.distributor.can_invoice? + print_invoice_link_with_url + else + notify_about_required_enterprise_number + end + end + def ticket_links return [] unless Spree::Config[:enable_receipt_printing?] @@ -78,13 +86,20 @@ module Spree confirm: t(:must_have_valid_business_number, enterprise_name: @order.distributor.name) } end - def print_invoice_link + def print_invoice_link_with_url { name: t(:print_invoice), url: spree.print_admin_order_path(@order), icon: 'icon-print', target: "_blank" } end + def notify_about_required_enterprise_number + { name: t(:print_invoice), + url: "#", + icon: 'icon-print', + confirm: t(:must_have_valid_business_number, enterprise_name: @order.distributor.name) } + end + def print_ticket_link { name: t(:print_ticket), url: print_ticket_admin_order_path(@order), diff --git a/app/models/enterprise.rb b/app/models/enterprise.rb index 461f08f919..aa7edfc960 100644 --- a/app/models/enterprise.rb +++ b/app/models/enterprise.rb @@ -408,6 +408,8 @@ class Enterprise < ApplicationRecord end def can_invoice? + return true unless Spree::Config.enterprise_number_required_on_invoices? + abn.present? end