Aggiunge pagamento con bonifico e importo concordato per società.
Il piano si attiva solo dopo la conferma admin; Stripe resta a listino se non c'è un prezzo commerciale. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
module Admin
|
||||
class ClubsController < BaseController
|
||||
before_action :set_club, only: %i[show grant_comped revoke_comped]
|
||||
before_action :set_club, only: %i[show grant_comped revoke_comped set_quote revoke_quote]
|
||||
|
||||
def index
|
||||
@clubs = Club.includes(:teams, subscription: %i[plan admin_comped_by])
|
||||
@clubs = Club.includes(:teams, :billing_quote, subscription: %i[plan admin_comped_by])
|
||||
.order(:name)
|
||||
end
|
||||
|
||||
@@ -11,6 +11,7 @@ module Admin
|
||||
@subscription = @club.subscription || @club.build_subscription(plan: Plan["free"], status: "active")
|
||||
@plans = Plan.ordered.reject { |p| p.slug == "free" }
|
||||
@teams = @club.teams.order(:name)
|
||||
@quote = @club.active_billing_quote
|
||||
end
|
||||
|
||||
def grant_comped
|
||||
@@ -32,6 +33,32 @@ module Admin
|
||||
redirect_back_or_club alert: e.message
|
||||
end
|
||||
|
||||
def set_quote
|
||||
quote = Billing::SetClubQuote.upsert(
|
||||
club: @club,
|
||||
plan_slug: params.require(:plan_slug),
|
||||
interval: params[:interval],
|
||||
amount_euros: params[:amount_euros],
|
||||
note: params[:note],
|
||||
admin: current_admin_account
|
||||
)
|
||||
redirect_back_or_club notice: t(
|
||||
"admin.flash.quote_saved",
|
||||
club: @club.name,
|
||||
plan: quote.plan.name,
|
||||
amount: quote.formatted_amount
|
||||
)
|
||||
rescue Billing::SetClubQuote::Error, ActionController::ParameterMissing => e
|
||||
redirect_back_or_club alert: e.message
|
||||
end
|
||||
|
||||
def revoke_quote
|
||||
Billing::SetClubQuote.revoke(club: @club, admin: current_admin_account)
|
||||
redirect_back_or_club notice: t("admin.flash.quote_revoked", club: @club.name)
|
||||
rescue Billing::SetClubQuote::Error => e
|
||||
redirect_back_or_club alert: e.message
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_club
|
||||
|
||||
Reference in New Issue
Block a user