Subscription Module Update - Fix prorate

This commit is contained in:
Leonard Biano
2024-09-05 19:51:56 +08:00
parent 25da60dfc3
commit 7e3617a072
3 changed files with 64 additions and 13 deletions
@@ -219,7 +219,7 @@ class PaypalWebhookController extends Controller
$user_credits_history->subscription_credits_to = $after_credits['total_available_credits']['subscription'];
$user_credits_history->alacarte_credits_from = $before_credits['total_available_credits']['alacarte'];;
$user_credits_history->alacarte_credits_to = $after_credits['total_available_credits']['alacarte'];
$user_credits_history->details = 'Remove unused subscription credits because of downgrade to Flex Plan';
$user_credits_history->details = 'Remove unused subscription credits due to plan migration from '.$old_subscription->planPrice->plan->title.' to '.$subscription->planPrice->plan->title;
$user_credits_history->save();
}
@@ -229,11 +229,37 @@ class PaypalWebhookController extends Controller
$plan_credits = $old_subscription->planPrice->total_credits;
$months = $old_subscription->planPrice->custom_interval;
if($old_subscription->planPrice->payment == 'monthly' && $subscription->planPrice->payment == 'monthly'){
$prorate_credits = $subscription->planPrice->total_credits - (( $plan_credits / $months ) * ($months - $paid_months));
$prorate_credits = $prorate_credits >= 0 ? floor($prorate_credits) : -1 * floor(abs($prorate_credits));
$subscription_credits = $user_credits->subscription_credits + $prorate_credits;
$user_credits_history_details = 'Prorated Credits from '.$old_subscription->planPrice->plan->title.' to '.$subscription->planPrice->plan->title;
if($old_subscription->planPrice->plan->status){
$prorate_credits = $subscription->planPrice->total_credits - (( $plan_credits / $months ) * ($months - $paid_months));
$prorate_credits = $prorate_credits >= 0 ? floor($prorate_credits) : -1 * floor(abs($prorate_credits));
$subscription_credits = $user_credits->subscription_credits + $prorate_credits;
$user_credits_history_details = 'Prorated Credits from '.$old_subscription->planPrice->plan->title.' to '.$subscription->planPrice->plan->title;
} else {
$before_credits = $this->customerService->credits($user_credits->user_id);
$subscription_credits = $user_credits->subscription_credits - $before_credits['total_available_credits']['subscription'];
$user_credits->subscription_credits = $subscription_credits;
$user_credits->save();
$after_credits = $this->customerService->credits($user_credits->user_id);
$user_credits_history = new UserCreditHistory;
$user_credits_history->user_id = $user_credits->user_id;
$user_credits_history->subscription_credits_from = $before_credits['total_available_credits']['subscription'];
$user_credits_history->subscription_credits_to = $after_credits['total_available_credits']['subscription'];
$user_credits_history->alacarte_credits_from = $before_credits['total_available_credits']['alacarte'];;
$user_credits_history->alacarte_credits_to = $after_credits['total_available_credits']['alacarte'];
$user_credits_history->details = 'Remove unused subscription credits due to plan migration from '.$old_subscription->planPrice->plan->title.' to '.$subscription->planPrice->plan->title;
$user_credits_history->save();
$subscription_credits = $user_credits->subscription_credits + $subscription->planPrice->total_credits;
$user_credits_history_details = 'Added Total Plan Credits of '.$subscription->planPrice->plan->title;
}
} else {