diff --git a/app/Http/Requests/Subscription/StoreSubscriptionRequest.php b/app/Http/Requests/Subscription/StoreSubscriptionRequest.php index e142d4578f1b..f3a8c280b3e6 100644 --- a/app/Http/Requests/Subscription/StoreSubscriptionRequest.php +++ b/app/Http/Requests/Subscription/StoreSubscriptionRequest.php @@ -13,6 +13,7 @@ namespace App\Http\Requests\Subscription; use App\Http\Requests\Request; use App\Models\Subscription; +use Illuminate\Validation\Rule; class StoreSubscriptionRequest extends Request { @@ -34,10 +35,8 @@ class StoreSubscriptionRequest extends Request public function rules() { return [ - 'user_id' => ['sometimes'], 'product_id' => ['sometimes'], 'assigned_user_id' => ['sometimes'], - 'company_id' => ['sometimes'], 'is_recurring' => ['sometimes'], 'frequency_id' => ['sometimes'], 'auto_bill' => ['sometimes'], @@ -55,6 +54,7 @@ class StoreSubscriptionRequest extends Request 'plan_map' => ['sometimes'], 'refund_period' => ['sometimes'], 'webhook_configuration' => ['sometimes'], + 'name' => Rule::unique('subscriptions')->where('company_id', auth()->user()->company()->id) ]; } } diff --git a/app/Models/Subscription.php b/app/Models/Subscription.php index 7ee6bff708c7..2fb57e602878 100644 --- a/app/Models/Subscription.php +++ b/app/Models/Subscription.php @@ -21,10 +21,8 @@ class Subscription extends BaseModel use HasFactory, SoftDeletes; protected $fillable = [ - 'user_id', 'product_ids', 'recurring_product_ids', - 'company_id', 'frequency_id', 'auto_bill', 'promo_code', @@ -44,6 +42,7 @@ class Subscription extends BaseModel 'currency_id', 'group_id', 'price', + 'name', ]; protected $casts = [ diff --git a/app/PaymentDrivers/BaseDriver.php b/app/PaymentDrivers/BaseDriver.php index 18f7cb08542e..d3052847aefe 100644 --- a/app/PaymentDrivers/BaseDriver.php +++ b/app/PaymentDrivers/BaseDriver.php @@ -242,7 +242,7 @@ class BaseDriver extends AbstractPaymentDriver event(new PaymentWasCreated($payment, $payment->company, Ninja::eventVars())); if (property_exists($this->payment_hash->data, 'billing_context')) { - $billing_subscription = \App\Models\Subscription::find($this->payment_hash->data->billing_context->billing_subscription_id); + $billing_subscription = \App\Models\Subscription::find($this->payment_hash->data->billing_context->subscription_id); (new SubscriptionService($billing_subscription))->completePurchase($this->payment_hash); } diff --git a/app/Services/Subscription/SubscriptionService.php b/app/Services/Subscription/SubscriptionService.php index 1ab050c39d46..c0a04741214f 100644 --- a/app/Services/Subscription/SubscriptionService.php +++ b/app/Services/Subscription/SubscriptionService.php @@ -99,7 +99,8 @@ class SubscriptionService $invoice = InvoiceFactory::create($this->subscription->company_id, $this->subscription->user_id); $invoice->line_items = $subscription_repo->generateLineItems($this->subscription); - + $invoice->subscription_id = $this->subscription->id; + if(strlen($data['coupon']) >=1 && ($data['coupon'] == $this->subscription->promo_code) && $this->subscription->promo_discount > 0) { $invoice->discount = $subscription->promo_discount;