Make it possible to disable coupons
This commit is contained in:
parent
24ce267962
commit
4320fa9ef6
|
@ -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,
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
@ -6,9 +6,10 @@ use Spatie\LaravelSettings\Settings;
|
|||
|
||||
class CouponSettings extends Settings
|
||||
{
|
||||
public bool $enabled;
|
||||
public bool $delete_coupon_on_expires;
|
||||
public bool $delete_coupon_on_uses_reached;
|
||||
public ?int $max_uses_per_user;
|
||||
public ?bool $delete_coupon_on_expires;
|
||||
public ?bool $delete_coupon_on_uses_reached;
|
||||
|
||||
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.'
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@if ($isCouponsEnabled)
|
||||
<div class="col-xl-4">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
|
@ -119,6 +120,7 @@
|
|||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
<div class="col-xl-3">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
|
|
Loading…
Reference in a new issue