FleetCart/Modules/Coupon/Admin/CouponTabs.php

70 lines
2.0 KiB
PHP

<?php
namespace Modules\Coupon\Admin;
use Modules\Admin\Ui\Tab;
use Modules\Admin\Ui\Tabs;
use Modules\Coupon\Entities\Coupon;
use Modules\Category\Entities\Category;
class CouponTabs extends Tabs
{
public function make()
{
$this->group('coupon_information', trans('coupon::coupons.tabs.group.coupon_information'))
->active()
->add($this->general())
->add($this->usageRestrictions())
->add($this->usageLimits());
}
public function general()
{
return tap(new Tab('general', trans('coupon::coupons.tabs.general')), function (Tab $tab) {
$tab->active();
$tab->weight(5);
$tab->fields([
'name',
'code',
'is_percent',
'value',
'free_shipping',
'start_date',
'end_date',
'is_active',
]);
$tab->view('coupon::admin.coupons.tabs.general');
});
}
public function usageRestrictions()
{
return tap(new Tab('usage_restrictions', trans('coupon::coupons.tabs.usage_restrictions')), function (Tab $tab) {
$tab->weight(10);
$tab->fields(['minimum_spend']);
$coupon = Coupon::withoutGlobalScope('active')->findOrNew(request('id'));
$tab->view('coupon::admin.coupons.tabs.usage_restrictions', [
'products' => $coupon->productList(),
'excludeProducts' => $coupon->excludeProductList(),
'categories' => Category::treeList(),
]);
});
}
private function usageLimits()
{
return tap(new Tab('usage_limits', trans('coupon::coupons.tabs.usage_limits')), function (Tab $tab) {
$tab->weight(15);
$tab->fields(['usage_limit_per_coupon', 'usage_limit_per_customer']);
$tab->view('coupon::admin.coupons.tabs.usage_limits');
});
}
}