# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later require 'qx' module BillingPlans def self.get_percentage_fee(nonprofit_id) ParamValidation.new({nonprofit_id:nonprofit_id}, {nonprofit_id: {:required => true, :is_integer => true}}) unless (Nonprofit.exists?(nonprofit_id)) raise ParamValidation::ValidationError.new("#{nonprofit_id} does not exist", {:key => :nonprofit_id} ) end result = Qx.select("billing_plans.percentage_fee") .from("billing_plans") .join("billing_subscriptions bs", "bs.billing_plan_id = billing_plans.id") .where("bs.nonprofit_id=$id", id: nonprofit_id) .execute return result.empty? ? 0 : result.last['percentage_fee'] end end