Don't ask why.. I just need it to work. Downgrading is disabled altogether and on upgrades I need to charge the full difference between the current plan and new plan.
So if current plan is 5$/month and upgrade plan is 20$/month then at the time of upgrade I need to charge 15$.
Am using Braintree and currently it automatically prorates. Reason why I don't want to prorate is because I use a credit-based system and user is getting the full amount of additional credits (which don't expire) so he needs to be charged the full amount for those additional credits.
I spotted this in Braintree's Subscription.php
$response = BraintreeSubscription::update($subscription->id, [ 'planId' => $plan->id, 'price' => $plan->price * (1 + ($this->user->taxPercentage() / 100)), 'neverExpires' => true, 'numberOfBillingCycles' => null, 'options' => [ 'prorateCharges' => true, ], ]);
So it seems there is a way to set prorateCharges to false. But I don't know how to do that elegantly. Ideally I'd like to set this in the plan definition itself.
Anyone lend me a hand with this please?