From eba21d3d3aedff756cab012d56d0c9353fa8895a Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Sun, 9 Aug 2026 11:50:38 +0700 Subject: [PATCH] refactor: clean up code by removing unused imports and improving formatting across multiple files --- app/Enums/Role.php | 1 - .../Admin/HR/EmployeeController.php | 10 ++-- .../Admin/Manage/TransactionController.php | 1 - app/Services/Admin/Manage/RestockService.php | 9 ++-- .../Admin/Manage/TransactionService.php | 47 +++++++++---------- app/Services/Admin/Master/CategoryService.php | 2 +- 6 files changed, 35 insertions(+), 35 deletions(-) diff --git a/app/Enums/Role.php b/app/Enums/Role.php index 935eaf6..4b37740 100644 --- a/app/Enums/Role.php +++ b/app/Enums/Role.php @@ -4,7 +4,6 @@ enum Role: string { - case DEVELOPER = 'developer'; case OWNER = 'owner'; case ADMIN_TOKO = 'admin-toko'; diff --git a/app/Http/Controllers/Admin/HR/EmployeeController.php b/app/Http/Controllers/Admin/HR/EmployeeController.php index 6d269ef..3097ab0 100644 --- a/app/Http/Controllers/Admin/HR/EmployeeController.php +++ b/app/Http/Controllers/Admin/HR/EmployeeController.php @@ -2,6 +2,8 @@ namespace App\Http\Controllers\Admin\HR; +use App\Concerns\HasRoleChecks; +use App\Enums\Role; use App\Http\Controllers\Controller; use App\Http\Requests\Admin\HR\EmployeeRequest; use App\Http\Requests\PaginatedRequest; @@ -14,6 +16,8 @@ class EmployeeController extends Controller { + use HasRoleChecks; + public function __construct( private EmployeeService $service, private RoleService $roleService, @@ -27,7 +31,7 @@ public function index(PaginatedRequest $request): Response filters: $request->only(['employment_status', 'is_active', 'gender']), ), 'filters' => $request->only(['employment_status', 'is_active', 'gender']), - 'canViewAll' => $this->service->canViewAll(), + 'canViewAll' => self::hasAnyRole([Role::DEVELOPER, Role::OWNER, Role::DIREKTUR, Role::ADMIN_TOKO]), ]); } @@ -35,7 +39,7 @@ public function create(): Response { return Inertia::render('admin/hr/employee/create', [ 'roles' => $this->roleService->getForEmployee(), - 'canViewAll' => $this->service->canViewAll(), + 'canViewAll' => self::hasAnyRole([Role::DEVELOPER, Role::OWNER, Role::DIREKTUR, Role::ADMIN_TOKO]), ]); } @@ -55,7 +59,7 @@ public function edit(User $user): Response return Inertia::render('admin/hr/employee/edit', [ 'employee' => $user, 'roles' => $this->roleService->getForEmployee(), - 'canViewAll' => $this->service->canViewAll(), + 'canViewAll' => self::hasAnyRole([Role::DEVELOPER, Role::OWNER, Role::DIREKTUR, Role::ADMIN_TOKO]), ]); } diff --git a/app/Http/Controllers/Admin/Manage/TransactionController.php b/app/Http/Controllers/Admin/Manage/TransactionController.php index bc3481f..994ffa4 100644 --- a/app/Http/Controllers/Admin/Manage/TransactionController.php +++ b/app/Http/Controllers/Admin/Manage/TransactionController.php @@ -8,7 +8,6 @@ use App\Http\Controllers\Controller; use App\Http\Requests\Admin\Manage\TransactionRequest; use App\Http\Requests\PaginatedRequest; -use App\Models\Customer; use App\Models\Order; use App\Models\User; use App\Services\Admin\Manage\TransactionService; diff --git a/app/Services/Admin/Manage/RestockService.php b/app/Services/Admin/Manage/RestockService.php index c92f069..ebb50a9 100644 --- a/app/Services/Admin/Manage/RestockService.php +++ b/app/Services/Admin/Manage/RestockService.php @@ -5,7 +5,6 @@ use App\Enums\PriceType; use App\Enums\ProductStockQuality; use App\Enums\Role; -use App\Models\Product; use App\Models\ProductVariant; use App\Models\Restock; use App\Models\RestockItem; @@ -31,14 +30,14 @@ public function paginated(int $perPage = 25, string $search = '', string $sort = ->with([ 'createdBy:id', 'createdBy.userProfile:id,user_id,full_name', - 'restockItems' => fn($q) => $q + 'restockItems' => fn ($q) => $q ->select(['id', 'restock_id', 'product_variant_id', 'quantity', 'unit_price', 'subtotal']) ->orderByRaw('(SELECT name FROM product_variants WHERE product_variants.id = restock_items.product_variant_id)'), 'restockItems.productVariant:id,product_id,name,stock,reject_stock,retail_stock', 'restockItems.productVariant.product:id,name', ]) ->when($search, function ($q) use ($search) { - $q->whereHas('restockItems.productVariant.product', fn($sq) => $sq->where('name', 'like', "%{$search}%")) + $q->whereHas('restockItems.productVariant.product', fn ($sq) => $sq->where('name', 'like', "%{$search}%")) ->orWhere('notes', 'like', "%{$search}%"); }) ->orderBy($sort, $direction) @@ -88,7 +87,7 @@ public function store(array $data): Restock NotificationService::notify( roles: [Role::OWNER, Role::DEVELOPER, Role::ADMIN_TOKO], title: 'Restock Baru', - body: 'Restock ' . ($stockType === ProductStockQuality::GOOD->value ? 'produk' : 'reject') . ' sebesar Rp ' . number_format($subtotal, 0, ',', '.') . ' berhasil dicatat oleh ' . auth()->user()->full_name . '.', + body: 'Restock '.($stockType === ProductStockQuality::GOOD->value ? 'produk' : 'reject').' sebesar Rp '.number_format($subtotal, 0, ',', '.').' berhasil dicatat oleh '.auth()->user()->full_name.'.', url: route('admin.manage.restocks.index'), ); @@ -162,7 +161,7 @@ private function buildItemRows(array $items, string $stockType, $now, int &$subt ->get() ->mapWithKeys(function (ProductVariant $variant) use ($priceType) { $price = $variant->productPrices - ->first(fn($p) => $p->type === $priceType); + ->first(fn ($p) => $p->type === $priceType); return [$variant->id => $price?->price ?? 0]; }); diff --git a/app/Services/Admin/Manage/TransactionService.php b/app/Services/Admin/Manage/TransactionService.php index 67ad9eb..16c357c 100644 --- a/app/Services/Admin/Manage/TransactionService.php +++ b/app/Services/Admin/Manage/TransactionService.php @@ -11,7 +11,6 @@ use App\Models\Customer; use App\Models\Order; use App\Models\OrderItem; -use App\Models\Product; use App\Models\ProductVariant; use App\Models\User; use App\Services\Concerns\HasStockAdjustment; @@ -54,18 +53,18 @@ public function paginated(int $perPage = 25, string $search = '', string $sort = 'orderItems.productVariant.product:id,name', ]) ->when($search, function ($q) use ($search) { - $q->whereHas('orderItems.productVariant.product', fn($sq) => $sq->where('name', 'like', "%{$search}%")) + $q->whereHas('orderItems.productVariant.product', fn ($sq) => $sq->where('name', 'like', "%{$search}%")) ->orWhere('order_number', 'like', "%{$search}%") ->orWhere('notes', 'like', "%{$search}%"); }) - ->when($filters['status'] ?? null, fn($q, $status) => $q->where('status', $status)) - ->when($filters['channel'] ?? null, fn($q, $channel) => $q->where('channel', $channel)) - ->when($filters['payment_type'] ?? null, fn($q, $paymentType) => $q->where('payment_type', $paymentType)) - ->when($filters['customer_id'] ?? null, fn($q, $customerId) => $q->where('customer_id', $customerId)) - ->when($filters['marketing_id'] ?? null, fn($q, $marketingId) => $q->where('marketing_id', $marketingId)) - ->when($filters['created_by_id'] ?? null, fn($q, $createdById) => $q->where('created_by_id', $createdById)) - ->when($filters['date_from'] ?? null, fn($q, $dateFrom) => $q->whereDate('created_at', '>=', $dateFrom)) - ->when($filters['date_to'] ?? null, fn($q, $dateTo) => $q->whereDate('created_at', '<=', $dateTo)) + ->when($filters['status'] ?? null, fn ($q, $status) => $q->where('status', $status)) + ->when($filters['channel'] ?? null, fn ($q, $channel) => $q->where('channel', $channel)) + ->when($filters['payment_type'] ?? null, fn ($q, $paymentType) => $q->where('payment_type', $paymentType)) + ->when($filters['customer_id'] ?? null, fn ($q, $customerId) => $q->where('customer_id', $customerId)) + ->when($filters['marketing_id'] ?? null, fn ($q, $marketingId) => $q->where('marketing_id', $marketingId)) + ->when($filters['created_by_id'] ?? null, fn ($q, $createdById) => $q->where('created_by_id', $createdById)) + ->when($filters['date_from'] ?? null, fn ($q, $dateFrom) => $q->whereDate('created_at', '>=', $dateFrom)) + ->when($filters['date_to'] ?? null, fn ($q, $dateTo) => $q->whereDate('created_at', '<=', $dateTo)) ->orderBy($sort, $direction) ->paginate($perPage); @@ -100,14 +99,14 @@ public function getSummary(array $filters = []): array ->selectRaw('COALESCE(SUM(subtotal) - SUM(COALESCE(nego_price, subtotal)), 0) as total_discount') ->selectRaw('COALESCE(SUM(total_amount), 0) as total_amount') ->selectRaw('COALESCE(SUM(cogs), 0) as total_cogs') - ->when($filters['status'] ?? null, fn($q, $status) => $q->where('status', $status)) - ->when($filters['channel'] ?? null, fn($q, $channel) => $q->where('channel', $channel)) - ->when($filters['payment_type'] ?? null, fn($q, $paymentType) => $q->where('payment_type', $paymentType)) - ->when($filters['customer_id'] ?? null, fn($q, $customerId) => $q->where('customer_id', $customerId)) - ->when($filters['marketing_id'] ?? null, fn($q, $marketingId) => $q->where('marketing_id', $marketingId)) - ->when($filters['created_by_id'] ?? null, fn($q, $createdById) => $q->where('created_by_id', $createdById)) - ->when($filters['date_from'] ?? null, fn($q, $dateFrom) => $q->whereDate('created_at', '>=', $dateFrom)) - ->when($filters['date_to'] ?? null, fn($q, $dateTo) => $q->whereDate('created_at', '<=', $dateTo)) + ->when($filters['status'] ?? null, fn ($q, $status) => $q->where('status', $status)) + ->when($filters['channel'] ?? null, fn ($q, $channel) => $q->where('channel', $channel)) + ->when($filters['payment_type'] ?? null, fn ($q, $paymentType) => $q->where('payment_type', $paymentType)) + ->when($filters['customer_id'] ?? null, fn ($q, $customerId) => $q->where('customer_id', $customerId)) + ->when($filters['marketing_id'] ?? null, fn ($q, $marketingId) => $q->where('marketing_id', $marketingId)) + ->when($filters['created_by_id'] ?? null, fn ($q, $createdById) => $q->where('created_by_id', $createdById)) + ->when($filters['date_from'] ?? null, fn ($q, $dateFrom) => $q->whereDate('created_at', '>=', $dateFrom)) + ->when($filters['date_to'] ?? null, fn ($q, $dateTo) => $q->whereDate('created_at', '<=', $dateTo)) ->first(); return [ @@ -135,9 +134,9 @@ public function getFilterOptions(): array ->with('userProfile:id,user_id,full_name') ->orderBy('id') ->get() - ->filter(fn(User $user) => $user->userProfile?->full_name) + ->filter(fn (User $user) => $user->userProfile?->full_name) ->values() - ->map(fn(User $user) => [ + ->map(fn (User $user) => [ 'id' => $user->id, 'name' => $user->userProfile->full_name, ]), @@ -195,7 +194,7 @@ public function store(array $data): Order NotificationService::notify( roles: [Role::OWNER, Role::DEVELOPER, Role::ADMIN_TOKO], title: 'Transaksi Baru', - body: 'Transaksi ' . $order->order_number . ' sebesar Rp ' . number_format($totalAmount, 0, ',', '.') . ' berhasil dicatat oleh ' . auth()->user()->full_name . '.', + body: 'Transaksi '.$order->order_number.' sebesar Rp '.number_format($totalAmount, 0, ',', '.').' berhasil dicatat oleh '.auth()->user()->full_name.'.', url: route('admin.manage.transactions.index'), ); @@ -304,14 +303,14 @@ private function buildItemRows(array $items, string $stockType, string $priceTyp $prices = $variants->mapWithKeys(function (ProductVariant $variant) use ($resolvedPriceType) { $price = $variant->productPrices - ->first(fn($p) => $p->type === $resolvedPriceType); + ->first(fn ($p) => $p->type === $resolvedPriceType); return [$variant->id => $price?->price ?? 0]; }); $capitalPrices = $variants->mapWithKeys(function (ProductVariant $variant) { $price = $variant->productPrices - ->first(fn($p) => $p->type === PriceType::CAPITAL); + ->first(fn ($p) => $p->type === PriceType::CAPITAL); return [$variant->id => $price?->price ?? 0]; }); @@ -354,6 +353,6 @@ private function generateOrderNumber(): string $sequence = 1; } - return $prefix . $date . str_pad($sequence, 4, '0', STR_PAD_LEFT); + return $prefix.$date.str_pad($sequence, 4, '0', STR_PAD_LEFT); } } diff --git a/app/Services/Admin/Master/CategoryService.php b/app/Services/Admin/Master/CategoryService.php index 144472f..dec3be3 100644 --- a/app/Services/Admin/Master/CategoryService.php +++ b/app/Services/Admin/Master/CategoryService.php @@ -12,7 +12,7 @@ public function paginated(int $perPage = 25, string $search = '', string $sort = { return Category::query() ->select(['id', 'name']) - ->when($search, fn($q) => $q->where('name', 'like', "%{$search}%")) + ->when($search, fn ($q) => $q->where('name', 'like', "%{$search}%")) ->orderBy($sort, $direction) ->paginate($perPage); }