From 4320fa9ef636db4a8184ec92aea54a9d0c343d9d Mon Sep 17 00:00:00 2001 From: Ferks-FK Date: Fri, 19 May 2023 15:00:30 +0000 Subject: [PATCH] Make it possible to disable coupons --- .../Controllers/Admin/PaymentController.php | 9 +-- app/Settings/CouponSettings.php | 29 ++++--- ...23_05_12_170041_create_coupon_settings.php | 2 + themes/default/views/store/checkout.blade.php | 76 ++++++++++--------- 4 files changed, 63 insertions(+), 53 deletions(-) diff --git a/app/Http/Controllers/Admin/PaymentController.php b/app/Http/Controllers/Admin/PaymentController.php index 5ab740d9..1b0d875a 100644 --- a/app/Http/Controllers/Admin/PaymentController.php +++ b/app/Http/Controllers/Admin/PaymentController.php @@ -9,7 +9,6 @@ use App\Models\PartnerDiscount; use App\Models\Payment; use App\Models\User; use App\Models\ShopProduct; -use App\Models\Coupon; use App\Traits\Coupon as CouponTrait; use Exception; use Illuminate\Contracts\Foundation\Application; @@ -20,10 +19,9 @@ use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use App\Helpers\ExtensionHelper; +use App\Settings\CouponSettings; use App\Settings\GeneralSettings; use App\Settings\LocaleSettings; -use Carbon\Carbon; -use Illuminate\Support\Str; class PaymentController extends Controller { @@ -51,7 +49,7 @@ class PaymentController extends Controller * @param ShopProduct $shopProduct * @return Application|Factory|View */ - public function checkOut(ShopProduct $shopProduct, GeneralSettings $general_settings) + public function checkOut(ShopProduct $shopProduct, GeneralSettings $general_settings, CouponSettings $coupon_settings) { $this->checkPermission(self::BUY_PERMISSION); @@ -87,7 +85,8 @@ class PaymentController extends Controller 'total' => $shopProduct->getTotalPrice(), 'paymentGateways' => $paymentGateways, 'productIsFree' => $price <= 0, - 'credits_display_name' => $general_settings->credits_display_name + 'credits_display_name' => $general_settings->credits_display_name, + 'isCouponsEnabled' => $coupon_settings->enabled, ]); } diff --git a/app/Settings/CouponSettings.php b/app/Settings/CouponSettings.php index dde8f42a..7669b06a 100644 --- a/app/Settings/CouponSettings.php +++ b/app/Settings/CouponSettings.php @@ -6,9 +6,10 @@ use Spatie\LaravelSettings\Settings; class CouponSettings extends Settings { - public ?int $max_uses_per_user; - public ?bool $delete_coupon_on_expires; - public ?bool $delete_coupon_on_uses_reached; + public bool $enabled; + public bool $delete_coupon_on_expires; + public bool $delete_coupon_on_uses_reached; + public ?int $max_uses_per_user; public static function group(): string { @@ -22,9 +23,10 @@ class CouponSettings extends Settings public static function getValidations() { return [ - 'max_uses_per_user' => 'required|integer', - 'delete_coupon_on_expires' => 'required|boolean', - 'delete_coupon_on_uses_reached' => 'required|boolean', + 'enabled' => "nullable|boolean", + 'delete_coupon_on_expires' => 'nullable|boolean', + 'delete_coupon_on_uses_reached' => 'nullable|boolean', + 'max_uses_per_user' => 'nullable|integer', ]; } @@ -37,10 +39,10 @@ class CouponSettings extends Settings { return [ "category_icon" => "fas fa-ticket-alt", - 'max_uses_per_user' => [ - 'label' => 'Max Uses Per User', - 'type' => 'number', - 'description' => 'Maximum number of uses that a user can make of the same coupon.' + 'enabled' => [ + 'label' => 'Enable Coupons', + 'type' => 'boolean', + 'description' => 'Enables coupons to be used in the store.' ], 'delete_coupon_on_expires' => [ 'label' => 'Auto Delete Expired Coupons', @@ -51,7 +53,12 @@ class CouponSettings extends Settings 'label' => 'Delete Coupon When Max Uses Reached', 'type' => 'boolean', 'description' => 'Delete a coupon as soon as its maximum usage is reached.' - ] + ], + 'max_uses_per_user' => [ + 'label' => 'Max Uses Per User', + 'type' => 'number', + 'description' => 'Maximum number of uses that a user can make of the same coupon.' + ], ]; } } diff --git a/database/settings/2023_05_12_170041_create_coupon_settings.php b/database/settings/2023_05_12_170041_create_coupon_settings.php index 9ff792ce..8e912bef 100644 --- a/database/settings/2023_05_12_170041_create_coupon_settings.php +++ b/database/settings/2023_05_12_170041_create_coupon_settings.php @@ -6,6 +6,7 @@ return new class extends SettingsMigration { public function up(): void { + $this->migrator->add('coupon.enabled', true); $this->migrator->add('coupon.max_uses_per_user', 1); $this->migrator->add('coupon.delete_coupon_on_expires', false); $this->migrator->add('coupon.delete_coupon_on_uses_reached', false); @@ -13,6 +14,7 @@ return new class extends SettingsMigration public function down(): void { + $this->migrator->delete('coupon.enabled'); $this->migrator->delete('coupon.max_uses_per_user'); $this->migrator->delete('coupon.delete_coupon_on_expires'); $this->migrator->delete('coupon.delete_coupon_on_uses_reached'); diff --git a/themes/default/views/store/checkout.blade.php b/themes/default/views/store/checkout.blade.php index 59ea53c1..5fc36004 100644 --- a/themes/default/views/store/checkout.blade.php +++ b/themes/default/views/store/checkout.blade.php @@ -79,45 +79,47 @@ -
-
-
-

- Coupon Code -

-
-
-
- - + @if ($isCouponsEnabled) +
+
+
+

+ Coupon Code +

- @error('coupon_code') -
- {{ $message }} +
+
+ +
- @enderror -
-
-
+ @error('coupon_code') +
+ {{ $message }} +
+ @enderror +
+
+
+ @endif @endif