diff --git a/app/models/reservation.rb b/app/models/reservation.rb index dc1a07724..951e86b92 100644 --- a/app/models/reservation.rb +++ b/app/models/reservation.rb @@ -212,7 +212,8 @@ class Reservation < ApplicationRecord end def save_with_payment(operator_profile_id, coupon_code = nil, payment_intent_id = nil) - method = InvoicingProfile.find(operator_profile_id)&.user&.admin? ? nil : 'stripe' + operator = InvoicingProfile.find(operator_profile_id)&.user + method = operator&.admin? || (operator&.manager? && operator != user) ? nil : 'stripe' build_invoice( invoicing_profile: user.invoicing_profile, diff --git a/app/models/subscription.rb b/app/models/subscription.rb index 3469bbd67..fcd0fa327 100644 --- a/app/models/subscription.rb +++ b/app/models/subscription.rb @@ -46,7 +46,8 @@ class Subscription < ApplicationRecord def generate_invoice(operator_profile_id, coupon_code = nil, payment_intent_id = nil) coupon_id = nil total = plan.amount - method = InvoicingProfile.find(operator_profile_id)&.user&.admin? ? nil : 'stripe' + operator = InvoicingProfile.find(operator_profile_id)&.user + method = operator&.admin? || (operator&.manager? && operator != user) ? nil : 'stripe' unless coupon_code.nil? @coupon = Coupon.find_by(code: coupon_code)