refactor: remove redundant blank lines across all services and update dashboard imports

This commit is contained in:
Yoga Pangestu 2026-06-28 17:33:46 +07:00
parent 816c2a0e2a
commit 16fe9a3d9f
30 changed files with 23 additions and 176 deletions

View File

@ -5,7 +5,6 @@
use App\Http\Controllers\Concerns\FlashesEntityMessage; use App\Http\Controllers\Concerns\FlashesEntityMessage;
use App\Http\Controllers\Concerns\ParsesDataTableQuery; use App\Http\Controllers\Concerns\ParsesDataTableQuery;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\Finance\ApproveEmployeeAdvanceRequest;
use App\Http\Requests\Admin\Finance\DestroyEmployeeAdvanceRequest; use App\Http\Requests\Admin\Finance\DestroyEmployeeAdvanceRequest;
use App\Http\Requests\Admin\Finance\EmployeeAdvanceRequest; use App\Http\Requests\Admin\Finance\EmployeeAdvanceRequest;
use App\Http\Requests\Admin\Finance\PayEmployeeAdvanceRequest; use App\Http\Requests\Admin\Finance\PayEmployeeAdvanceRequest;

View File

@ -30,7 +30,6 @@ public function getDefaultAccount(): CashAccount
return CashAccount::query()->firstOrFail(); return CashAccount::query()->firstOrFail();
} }
public function paginateForIndex(CashAccount $cashAccount, array $tableQuery, string $referenceType = ''): LengthAwarePaginator public function paginateForIndex(CashAccount $cashAccount, array $tableQuery, string $referenceType = ''): LengthAwarePaginator
{ {
$query = CashTransaction::query() $query = CashTransaction::query()
@ -65,7 +64,6 @@ public function paginateForIndex(CashAccount $cashAccount, array $tableQuery, st
}); });
} }
public function deposit(CashAccount $cashAccount, array $validated, User $user): CashTransaction public function deposit(CashAccount $cashAccount, array $validated, User $user): CashTransaction
{ {
try { try {
@ -111,7 +109,6 @@ public function deposit(CashAccount $cashAccount, array $validated, User $user):
return $transaction; return $transaction;
} }
public function withdraw(CashAccount $cashAccount, array $validated, User $user): CashTransaction public function withdraw(CashAccount $cashAccount, array $validated, User $user): CashTransaction
{ {
try { try {
@ -258,7 +255,6 @@ public function recordIncoming(
} }
} }
public function updateDeposit(CashTransaction $transaction, array $validated): void public function updateDeposit(CashTransaction $transaction, array $validated): void
{ {
$this->ensureEditable($transaction); $this->ensureEditable($transaction);
@ -412,7 +408,6 @@ public function deleteReferencedTransaction(CashTransaction $transaction): void
} }
} }
private function syncPhotos(CashTransaction $transaction, array $validated): void private function syncPhotos(CashTransaction $transaction, array $validated): void
{ {
$this->mediaService->syncCollection( $this->mediaService->syncCollection(

View File

@ -25,7 +25,6 @@ public function __construct(
private readonly PushNotificationService $pushNotificationService, private readonly PushNotificationService $pushNotificationService,
) {} ) {}
public function outstandingSummary(?User $user = null): array public function outstandingSummary(?User $user = null): array
{ {
$query = EmployeeAdvance::query() $query = EmployeeAdvance::query()
@ -43,7 +42,6 @@ public function outstandingSummary(?User $user = null): array
]; ];
} }
public function paginateForIndex(array $tableQuery, User $user, string $status = ''): LengthAwarePaginator public function paginateForIndex(array $tableQuery, User $user, string $status = ''): LengthAwarePaginator
{ {
$query = EmployeeAdvance::query() $query = EmployeeAdvance::query()
@ -70,7 +68,6 @@ public function paginateForIndex(array $tableQuery, User $user, string $status =
->withQueryString(); ->withQueryString();
} }
public function create(array $validated, User $user): void public function create(array $validated, User $user): void
{ {
$employee = $this->resolveAuthenticatedEmployee($user); $employee = $this->resolveAuthenticatedEmployee($user);
@ -105,7 +102,6 @@ public function create(array $validated, User $user): void
); );
} }
public function update(EmployeeAdvance $employeeAdvance, array $validated, User $user): void public function update(EmployeeAdvance $employeeAdvance, array $validated, User $user): void
{ {
try { try {

View File

@ -23,7 +23,6 @@ public function __construct(
private readonly PushNotificationService $pushNotificationService, private readonly PushNotificationService $pushNotificationService,
) {} ) {}
public function paginateForIndex(array $tableQuery): LengthAwarePaginator public function paginateForIndex(array $tableQuery): LengthAwarePaginator
{ {
$query = Expense::query() $query = Expense::query()
@ -50,7 +49,6 @@ public function paginateForIndex(array $tableQuery): LengthAwarePaginator
}); });
} }
public function create(array $validated, User $user): void public function create(array $validated, User $user): void
{ {
try { try {
@ -99,7 +97,6 @@ public function create(array $validated, User $user): void
); );
} }
public function update(Expense $expense, array $validated): void public function update(Expense $expense, array $validated): void
{ {
try { try {
@ -173,7 +170,6 @@ public function delete(Expense $expense): void
); );
} }
private function syncPhotos(Expense $expense, array $validated): void private function syncPhotos(Expense $expense, array $validated): void
{ {
$this->mediaService->syncCollection( $this->mediaService->syncCollection(

View File

@ -29,7 +29,6 @@ public function __construct(
private readonly PushNotificationService $pushNotificationService, private readonly PushNotificationService $pushNotificationService,
) {} ) {}
public function listPeriods(): Collection public function listPeriods(): Collection
{ {
return PayrollPeriod::query() return PayrollPeriod::query()
@ -55,7 +54,6 @@ public function resolvePeriod(?int $periodId): ?PayrollPeriod
->first(); ->first();
} }
public function periodSummary(PayrollPeriod $period, User $user): array public function periodSummary(PayrollPeriod $period, User $user): array
{ {
$query = Payroll::query() $query = Payroll::query()
@ -79,7 +77,6 @@ public function periodSummary(PayrollPeriod $period, User $user): array
]; ];
} }
public function paginateForPeriod(PayrollPeriod $period, array $tableQuery, User $user): LengthAwarePaginator public function paginateForPeriod(PayrollPeriod $period, array $tableQuery, User $user): LengthAwarePaginator
{ {
$query = Payroll::query() $query = Payroll::query()
@ -206,7 +203,6 @@ public function generatePayrollsForPeriod(PayrollPeriod $period): void
} }
} }
public function addAdjustment(Payroll $payroll, array $validated, User $user): void public function addAdjustment(Payroll $payroll, array $validated, User $user): void
{ {
@ -396,7 +392,6 @@ public function pay(Payroll $payroll, User $user): void
} }
} }
private function payrollEligibleEmployees(PayrollPeriod $period): Collection private function payrollEligibleEmployees(PayrollPeriod $period): Collection
{ {
$periodStart = Carbon::create($period->year, $period->month, 1)->startOfMonth(); $periodStart = Carbon::create($period->year, $period->month, 1)->startOfMonth();

View File

@ -46,7 +46,6 @@ public function listForCalendar(
->get(); ->get();
} }
public function todayAttendanceForEmployee(Employee $employee): ?array public function todayAttendanceForEmployee(Employee $employee): ?array
{ {
$attendance = Attendance::query() $attendance = Attendance::query()
@ -68,7 +67,6 @@ public function isOnLeaveToday(Employee $employee): bool
->exists(); ->exists();
} }
public function checkIn(array $validated, User $user): void public function checkIn(array $validated, User $user): void
{ {
$employee = $this->resolveAuthenticatedEmployee($user); $employee = $this->resolveAuthenticatedEmployee($user);
@ -107,7 +105,6 @@ public function checkIn(array $validated, User $user): void
); );
} }
public function checkOut(array $validated, User $user): void public function checkOut(array $validated, User $user): void
{ {
$employee = $this->resolveAuthenticatedEmployee($user); $employee = $this->resolveAuthenticatedEmployee($user);

View File

@ -21,7 +21,6 @@ public function __construct(
private readonly MediaService $mediaService, private readonly MediaService $mediaService,
) {} ) {}
public function paginateForIndex( public function paginateForIndex(
array $tableQuery, array $tableQuery,
string $role = '', string $role = '',
@ -74,7 +73,6 @@ public function findForEdit(User $user): array
]; ];
} }
public function create(array $validated): void public function create(array $validated): void
{ {
try { try {
@ -120,7 +118,6 @@ public function create(array $validated): void
} }
} }
public function update(User $user, array $validated): void public function update(User $user, array $validated): void
{ {
$employee = $user->employee; $employee = $user->employee;
@ -132,7 +129,6 @@ public function update(User $user, array $validated): void
'username' => $validated['username'], 'username' => $validated['username'],
]); ]);
$profile = $user->profile()->updateOrCreate( $profile = $user->profile()->updateOrCreate(
['user_id' => $user->id], ['user_id' => $user->id],
[ [
@ -225,7 +221,6 @@ public function delete(User $user): void
} }
} }
private function syncProfilePhoto(UserProfile $profile, array $validated): void private function syncProfilePhoto(UserProfile $profile, array $validated): void
{ {
$newFiles = ! empty($validated['profile_photo']) ? [$validated['profile_photo']] : []; $newFiles = ! empty($validated['profile_photo']) ? [$validated['profile_photo']] : [];

View File

@ -23,7 +23,6 @@ public function __construct(
private readonly PushNotificationService $pushNotificationService, private readonly PushNotificationService $pushNotificationService,
) {} ) {}
public function paginateForIndex(array $tableQuery, User $user): LengthAwarePaginator public function paginateForIndex(array $tableQuery, User $user): LengthAwarePaginator
{ {
$query = LeaveRequest::query() $query = LeaveRequest::query()
@ -48,7 +47,6 @@ public function paginateForIndex(array $tableQuery, User $user): LengthAwarePagi
->withQueryString(); ->withQueryString();
} }
public function create(array $validated, User $user): void public function create(array $validated, User $user): void
{ {
$employee = $this->resolveAuthenticatedEmployee($user); $employee = $this->resolveAuthenticatedEmployee($user);
@ -85,7 +83,6 @@ public function create(array $validated, User $user): void
); );
} }
public function update(LeaveRequest $leaveRequest, array $validated, User $user): void public function update(LeaveRequest $leaveRequest, array $validated, User $user): void
{ {
$startDate = Carbon::parse($validated['start_date'])->startOfDay(); $startDate = Carbon::parse($validated['start_date'])->startOfDay();

View File

@ -20,7 +20,6 @@ public function resolve(int $productVariantId, PriceType $priceType): ?CuttingRe
->first(); ->first();
} }
public function latestPricesForVariant(int $productVariantId): array public function latestPricesForVariant(int $productVariantId): array
{ {
$prices = []; $prices = [];
@ -36,7 +35,6 @@ public function latestPricesForVariant(int $productVariantId): array
return $prices; return $prices;
} }
public function latestPricesForVariants(array $variantIds): Collection public function latestPricesForVariants(array $variantIds): Collection
{ {
if (empty($variantIds)) { if (empty($variantIds)) {

View File

@ -16,7 +16,6 @@
use App\Support\Media\MediaPresenter; use App\Support\Media\MediaPresenter;
use Illuminate\Contracts\Pagination\LengthAwarePaginator; use Illuminate\Contracts\Pagination\LengthAwarePaginator;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection as EloquentCollection;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
@ -72,7 +71,6 @@ public function paginateForIndex(array $tableQuery, User $user): LengthAwarePagi
}); });
} }
public function getInProgressCuttings(User $user): Collection public function getInProgressCuttings(User $user): Collection
{ {
return Cutting::query() return Cutting::query()
@ -98,7 +96,6 @@ public function getInProgressCuttings(User $user): Collection
}); });
} }
public function getCompletedCuttings(User $user): Collection public function getCompletedCuttings(User $user): Collection
{ {
return Cutting::query() return Cutting::query()
@ -124,7 +121,6 @@ public function getCompletedCuttings(User $user): Collection
}); });
} }
public function rawMaterialCatalog(?Cutting $cutting = null, ?User $user = null): Collection public function rawMaterialCatalog(?Cutting $cutting = null, ?User $user = null): Collection
{ {
$selectedPriceIds = $cutting $selectedPriceIds = $cutting
@ -159,7 +155,6 @@ public function rawMaterialCatalog(?Cutting $cutting = null, ?User $user = null)
}); });
} }
public function productCatalog(?Cutting $cutting = null, ?User $user = null): Collection public function productCatalog(?Cutting $cutting = null, ?User $user = null): Collection
{ {
$selectedVariantIds = $cutting $selectedVariantIds = $cutting
@ -229,7 +224,6 @@ public function findForEdit(Cutting $cutting): Cutting
return $cutting; return $cutting;
} }
public function draftMaterialsForUser(User $user): array public function draftMaterialsForUser(User $user): array
{ {
return $this->draftMaterialsQuery($user) return $this->draftMaterialsQuery($user)
@ -243,7 +237,6 @@ public function draftMaterialsForUser(User $user): array
->all(); ->all();
} }
public function draftResultsForUser(User $user): array public function draftResultsForUser(User $user): array
{ {
return $this->draftResultsQuery($user) return $this->draftResultsQuery($user)
@ -257,7 +250,6 @@ public function draftResultsForUser(User $user): array
->all(); ->all();
} }
public function syncDraftMaterial(array $validated, User $user): array public function syncDraftMaterial(array $validated, User $user): array
{ {
$price = RawMaterialPrice::query() $price = RawMaterialPrice::query()
@ -291,7 +283,6 @@ public function syncDraftMaterial(array $validated, User $user): array
return $this->presentDraftMaterial($item); return $this->presentDraftMaterial($item);
} }
public function syncDraftResult(array $validated, User $user): array public function syncDraftResult(array $validated, User $user): array
{ {
$variant = ProductVariant::query() $variant = ProductVariant::query()
@ -365,7 +356,6 @@ public function removeDraftResult(User $user, ProductVariant $productVariant): v
->delete(); ->delete();
} }
public function create(array $validated, User $user): Cutting public function create(array $validated, User $user): Cutting
{ {
try { try {
@ -376,7 +366,6 @@ public function create(array $validated, User $user): Cutting
->lockForUpdate() ->lockForUpdate()
->get(); ->get();
$draftResults = $this->draftResultsQuery($user) $draftResults = $this->draftResultsQuery($user)
->lockForUpdate() ->lockForUpdate()
->get(); ->get();
@ -440,7 +429,6 @@ public function create(array $validated, User $user): Cutting
return $cutting; return $cutting;
} }
public function update(Cutting $cutting, array $validated): void public function update(Cutting $cutting, array $validated): void
{ {
if (! $cutting->status->isEditable()) { if (! $cutting->status->isEditable()) {
@ -651,7 +639,6 @@ public function transitionStatus(
); );
} }
private function buildMaterials(array $materials): array private function buildMaterials(array $materials): array
{ {
return collect($materials) return collect($materials)
@ -682,7 +669,6 @@ private function buildMaterials(array $materials): array
->all(); ->all();
} }
private function buildResults(array $results): array private function buildResults(array $results): array
{ {
return collect($results) return collect($results)
@ -834,7 +820,6 @@ private function applySorting(Builder $query, string $sort, string $direction):
$query->latest(); $query->latest();
} }
private function draftMaterialsQuery(User $user): Builder private function draftMaterialsQuery(User $user): Builder
{ {
return CuttingMaterial::query() return CuttingMaterial::query()
@ -842,7 +827,6 @@ private function draftMaterialsQuery(User $user): Builder
->where('user_id', $user->id); ->where('user_id', $user->id);
} }
private function draftResultsQuery(User $user): Builder private function draftResultsQuery(User $user): Builder
{ {
return CuttingResult::query() return CuttingResult::query()
@ -850,7 +834,6 @@ private function draftResultsQuery(User $user): Builder
->where('user_id', $user->id); ->where('user_id', $user->id);
} }
private function presentDraftMaterial(CuttingMaterial $item): array private function presentDraftMaterial(CuttingMaterial $item): array
{ {
$price = $item->rawMaterialPrice; $price = $item->rawMaterialPrice;
@ -868,7 +851,6 @@ private function presentDraftMaterial(CuttingMaterial $item): array
]; ];
} }
private function presentDraftResult(CuttingResult $item): array private function presentDraftResult(CuttingResult $item): array
{ {
$variant = $item->productVariant; $variant = $item->productVariant;
@ -956,7 +938,6 @@ public function calculateCostPerUnit(Cutting $cutting): int
return (int) round($this->calculateTotalProductionCost($cutting) / $totalPieces); return (int) round($this->calculateTotalProductionCost($cutting) / $totalPieces);
} }
private function storeResultPrices(Cutting $cutting, array $resultPrices): void private function storeResultPrices(Cutting $cutting, array $resultPrices): void
{ {
$costPerUnit = (int) ($cutting->cost_per_unit ?? $this->calculateCostPerUnit($cutting)); $costPerUnit = (int) ($cutting->cost_per_unit ?? $this->calculateCostPerUnit($cutting));

View File

@ -56,7 +56,6 @@ public function stockColumn(ProductStockQuality $quality): string
}; };
} }
public function paginateForIndex(array $tableQuery, User $user): LengthAwarePaginator public function paginateForIndex(array $tableQuery, User $user): LengthAwarePaginator
{ {
$query = Order::query() $query = Order::query()
@ -105,7 +104,6 @@ public function paginateForIndex(array $tableQuery, User $user): LengthAwarePagi
}); });
} }
public function customerOptions(): array public function customerOptions(): array
{ {
return Customer::query() return Customer::query()
@ -118,7 +116,6 @@ public function customerOptions(): array
->all(); ->all();
} }
public function marketingOptions(): array public function marketingOptions(): array
{ {
return User::query() return User::query()
@ -134,7 +131,6 @@ public function marketingOptions(): array
->all(); ->all();
} }
public function storePriceTypeOptions(): array public function storePriceTypeOptions(): array
{ {
return collect(PriceType::cases()) return collect(PriceType::cases())
@ -147,7 +143,6 @@ public function storePriceTypeOptions(): array
->all(); ->all();
} }
public function catalogItems(?Order $order = null, ?User $user = null): Collection public function catalogItems(?Order $order = null, ?User $user = null): Collection
{ {
$orderVariantIds = $order $orderVariantIds = $order
@ -283,7 +278,6 @@ public function findForShow(Order $order): Order
return $order; return $order;
} }
public function draftItemsForUser(User $user): array public function draftItemsForUser(User $user): array
{ {
return $this->draftItemsQuery($user) return $this->draftItemsQuery($user)
@ -297,7 +291,6 @@ public function draftItemsForUser(User $user): array
->all(); ->all();
} }
public function syncDraftItem(array $validated, User $user): array public function syncDraftItem(array $validated, User $user): array
{ {
// Force retail price type and stock quality for cashier role // Force retail price type and stock quality for cashier role
@ -355,7 +348,6 @@ public function removeDraftItem(User $user, ProductVariant $productVariant, Prod
->delete(); ->delete();
} }
public function resyncDraftPrices(User $user, string $priceTypeValue): array public function resyncDraftPrices(User $user, string $priceTypeValue): array
{ {
// Force retail price type for cashier role // Force retail price type for cashier role
@ -388,7 +380,6 @@ public function resyncDraftPrices(User $user, string $priceTypeValue): array
return $this->draftItemsForUser($user); return $this->draftItemsForUser($user);
} }
public function create(array $validated, User $user): Order public function create(array $validated, User $user): Order
{ {
try { try {
@ -403,7 +394,6 @@ public function create(array $validated, User $user): Order
$order = DB::transaction(function () use ($validated, $user): Order { $order = DB::transaction(function () use ($validated, $user): Order {
$priceType = $this->resolvePriceType($validated['channel'], $validated['price_type']); $priceType = $this->resolvePriceType($validated['channel'], $validated['price_type']);
$draftItems = $this->draftItemsQuery($user) $draftItems = $this->draftItemsQuery($user)
->lockForUpdate() ->lockForUpdate()
->get(); ->get();
@ -509,7 +499,6 @@ public function create(array $validated, User $user): Order
return $order; return $order;
} }
public function update(Order $order, array $validated): void public function update(Order $order, array $validated): void
{ {
$order->ensureEditable(); $order->ensureEditable();
@ -694,7 +683,6 @@ public function transitionStatus(Order $order, OrderStatus $status): void
); );
} }
private function buildLineItems(array $items, PriceType $priceType): array private function buildLineItems(array $items, PriceType $priceType): array
{ {
return collect($items) return collect($items)
@ -753,7 +741,6 @@ private function resolvePriceType(string $channel, string $priceType): PriceType
return $priceTypeEnum; return $priceTypeEnum;
} }
private function draftItemsQuery(User $user): Builder private function draftItemsQuery(User $user): Builder
{ {
return OrderItem::query() return OrderItem::query()
@ -761,7 +748,6 @@ private function draftItemsQuery(User $user): Builder
->where('user_id', $user->id); ->where('user_id', $user->id);
} }
private function presentDraftItem(OrderItem $item): array private function presentDraftItem(OrderItem $item): array
{ {
$variant = $item->productVariant; $variant = $item->productVariant;
@ -778,7 +764,6 @@ private function presentDraftItem(OrderItem $item): array
]; ];
} }
private function applyDraftPrices(EloquentCollection $items, PriceType $priceType): void private function applyDraftPrices(EloquentCollection $items, PriceType $priceType): void
{ {
foreach ($items as $index => $item) { foreach ($items as $index => $item) {
@ -817,7 +802,6 @@ private function availableStock(ProductVariant $variant, ProductStockQuality $st
return (int) $variant->{$this->stockColumn($stockQuality)}; return (int) $variant->{$this->stockColumn($stockQuality)};
} }
private function syncPhotos(Order $order, array $validated): void private function syncPhotos(Order $order, array $validated): void
{ {
$paymentType = $validated['payment_type'] ?? null; $paymentType = $validated['payment_type'] ?? null;
@ -834,7 +818,6 @@ private function syncPhotos(Order $order, array $validated): void
); );
} }
private function lineItemsForSnapshot(EloquentCollection|array $items): array private function lineItemsForSnapshot(EloquentCollection|array $items): array
{ {
return collect($items) return collect($items)
@ -870,7 +853,6 @@ private function resolveUnitPrice(int $variantId, PriceType $priceType, ?string
return (int) $price->price; return (int) $price->price;
} }
private function presentVariantPrices(int $variantId): array private function presentVariantPrices(int $variantId): array
{ {
return collect($this->cuttingResultPriceResolver->latestPricesForVariant($variantId)) return collect($this->cuttingResultPriceResolver->latestPricesForVariant($variantId))

View File

@ -15,10 +15,10 @@
use App\Services\Master\ProductService; use App\Services\Master\ProductService;
use App\Services\Master\RawMaterialService; use App\Services\Master\RawMaterialService;
use App\Services\System\PushNotificationService; use App\Services\System\PushNotificationService;
use App\Support\ActivityLog\ModelLabel;
use App\Support\OwnerVerification\VerificationChangeFormatter;
use App\Services\System\Setting\MarketplaceService; use App\Services\System\Setting\MarketplaceService;
use App\Settings\MarketplaceSettings; use App\Settings\MarketplaceSettings;
use App\Support\ActivityLog\ModelLabel;
use App\Support\OwnerVerification\VerificationChangeFormatter;
use Illuminate\Contracts\Pagination\LengthAwarePaginator; use Illuminate\Contracts\Pagination\LengthAwarePaginator;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Pagination\LengthAwarePaginator as Paginator; use Illuminate\Pagination\LengthAwarePaginator as Paginator;
@ -47,7 +47,6 @@ public function hasPendingMarketplaceVerification(): bool
->exists(); ->exists();
} }
public function paginateForIndex( public function paginateForIndex(
User $user, User $user,
array $tableQuery, array $tableQuery,
@ -101,7 +100,6 @@ public function paginateForIndex(
->through(fn (OwnerVerificationRequest $request) => $this->presentRequestRow($request)); ->through(fn (OwnerVerificationRequest $request) => $this->presentRequestRow($request));
} }
private function pendingCuttingRows(User $user, array $tableQuery): Collection private function pendingCuttingRows(User $user, array $tableQuery): Collection
{ {
$rows = $this->stockService $rows = $this->stockService
@ -143,7 +141,6 @@ public function pendingCountForUser(User $user): int
return $requestCount + Cutting::query()->pendingVerification()->count(); return $requestCount + Cutting::query()->pendingVerification()->count();
} }
public function subjectTypeOptions(User $user): array public function subjectTypeOptions(User $user): array
{ {
$options = OwnerVerificationRequest::query() $options = OwnerVerificationRequest::query()
@ -317,7 +314,6 @@ private function clearVerificationRequestMedia(OwnerVerificationRequest $request
}; };
} }
private function presentRequestRow(OwnerVerificationRequest $request): array private function presentRequestRow(OwnerVerificationRequest $request): array
{ {
$payload = is_array($request->payload) ? $request->payload : []; $payload = is_array($request->payload) ? $request->payload : [];
@ -347,7 +343,6 @@ private function presentRequestRow(OwnerVerificationRequest $request): array
]; ];
} }
private function presentCuttingRow(Cutting $cutting): array private function presentCuttingRow(Cutting $cutting): array
{ {
$totalPieces = $cutting->results->sum('cutting_result'); $totalPieces = $cutting->results->sum('cutting_result');
@ -379,7 +374,6 @@ private function presentCuttingRow(Cutting $cutting): array
]; ];
} }
private function buildVerificationRequestQuery( private function buildVerificationRequestQuery(
User $user, User $user,
array $tableQuery, array $tableQuery,
@ -454,7 +448,6 @@ private function shouldIncludeCuttings(
return Cutting::query()->pendingVerification()->exists(); return Cutting::query()->pendingVerification()->exists();
} }
private function makePaginator( private function makePaginator(
Collection $items, Collection $items,
int $total, int $total,

View File

@ -16,7 +16,6 @@
use App\Support\Media\MediaPresenter; use App\Support\Media\MediaPresenter;
use Illuminate\Contracts\Pagination\LengthAwarePaginator; use Illuminate\Contracts\Pagination\LengthAwarePaginator;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection as EloquentCollection;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
@ -31,7 +30,6 @@ public function __construct(
private readonly PushNotificationService $pushNotificationService, private readonly PushNotificationService $pushNotificationService,
) {} ) {}
public function paginateForIndex(array $tableQuery): LengthAwarePaginator public function paginateForIndex(array $tableQuery): LengthAwarePaginator
{ {
$query = Purchase::query() $query = Purchase::query()
@ -76,7 +74,6 @@ public function paginateForIndex(array $tableQuery): LengthAwarePaginator
}); });
} }
public function supplierOptions(): array public function supplierOptions(): array
{ {
return Supplier::query() return Supplier::query()
@ -89,7 +86,6 @@ public function supplierOptions(): array
->all(); ->all();
} }
public function catalogItems(?Purchase $purchase = null, ?User $user = null): Collection public function catalogItems(?Purchase $purchase = null, ?User $user = null): Collection
{ {
$purchasePriceIds = $purchase $purchasePriceIds = $purchase
@ -150,7 +146,6 @@ public function findForEdit(Purchase $purchase): Purchase
return $purchase; return $purchase;
} }
public function draftItemsForUser(User $user): array public function draftItemsForUser(User $user): array
{ {
return $this->draftItemsQuery($user) return $this->draftItemsQuery($user)
@ -164,7 +159,6 @@ public function draftItemsForUser(User $user): array
->all(); ->all();
} }
public function syncDraftItem(array $validated, User $user): array public function syncDraftItem(array $validated, User $user): array
{ {
$price = RawMaterialPrice::query() $price = RawMaterialPrice::query()
@ -205,7 +199,6 @@ public function removeDraftItem(User $user, RawMaterialPrice $rawMaterialPrice):
->delete(); ->delete();
} }
public function create(array $validated, User $user): Purchase public function create(array $validated, User $user): Purchase
{ {
try { try {
@ -282,7 +275,6 @@ public function create(array $validated, User $user): Purchase
return $purchase; return $purchase;
} }
public function update(Purchase $purchase, array $validated, User $user): void public function update(Purchase $purchase, array $validated, User $user): void
{ {
$purchase->load(['supplier', 'items.rawMaterialPrice.rawMaterial:id,name']); $purchase->load(['supplier', 'items.rawMaterialPrice.rawMaterial:id,name']);
@ -434,7 +426,6 @@ public function applyDelete(OwnerVerificationRequest $verificationRequest): void
$this->executeDelete($purchase); $this->executeDelete($purchase);
} }
private function buildLineItems(array $items): array private function buildLineItems(array $items): array
{ {
return collect($items) return collect($items)
@ -461,7 +452,6 @@ private function buildLineItems(array $items): array
->all(); ->all();
} }
private function syncPhotos(Purchase $purchase, array $validated): void private function syncPhotos(Purchase $purchase, array $validated): void
{ {
$this->mediaService->syncCollection( $this->mediaService->syncCollection(
@ -475,7 +465,6 @@ private function syncPhotos(Purchase $purchase, array $validated): void
); );
} }
private function draftItemsQuery(User $user): Builder private function draftItemsQuery(User $user): Builder
{ {
return PurchaseItem::query() return PurchaseItem::query()
@ -483,7 +472,6 @@ private function draftItemsQuery(User $user): Builder
->where('user_id', $user->id); ->where('user_id', $user->id);
} }
private function presentDraftItem(PurchaseItem $item): array private function presentDraftItem(PurchaseItem $item): array
{ {
$price = $item->rawMaterialPrice; $price = $item->rawMaterialPrice;
@ -561,7 +549,6 @@ private function executeDelete(Purchase $purchase): void
}); });
} }
private function applyPayloadToPurchase( private function applyPayloadToPurchase(
Purchase $purchase, Purchase $purchase,
array $payload, array $payload,
@ -601,7 +588,6 @@ private function applyPayloadToPurchase(
}); });
} }
private function snapshotPurchase(Purchase $purchase): array private function snapshotPurchase(Purchase $purchase): array
{ {
$purchase->load([ $purchase->load([
@ -631,7 +617,6 @@ private function snapshotPurchase(Purchase $purchase): array
]; ];
} }
private function buildPayloadFromValidated(array $validated): array private function buildPayloadFromValidated(array $validated): array
{ {
$lineItems = $this->enrichLineItems($this->buildLineItems($validated['items'])); $lineItems = $this->enrichLineItems($this->buildLineItems($validated['items']));
@ -654,7 +639,6 @@ private function buildPayloadFromValidated(array $validated): array
]; ];
} }
private function enrichLineItems(array $lineItems): array private function enrichLineItems(array $lineItems): array
{ {
$prices = RawMaterialPrice::query() $prices = RawMaterialPrice::query()
@ -675,7 +659,6 @@ private function enrichLineItems(array $lineItems): array
->all(); ->all();
} }
private function syncRequestPhotos(OwnerVerificationRequest $verificationRequest, array $validated): void private function syncRequestPhotos(OwnerVerificationRequest $verificationRequest, array $validated): void
{ {
$this->mediaService->syncCollection( $this->mediaService->syncCollection(
@ -689,7 +672,6 @@ private function syncRequestPhotos(OwnerVerificationRequest $verificationRequest
); );
} }
private function applyRequestPhotos( private function applyRequestPhotos(
OwnerVerificationRequest $verificationRequest, OwnerVerificationRequest $verificationRequest,
Purchase $purchase, Purchase $purchase,
@ -710,7 +692,6 @@ private function applyRequestPhotos(
} }
} }
private function payloadNew(OwnerVerificationRequest $verificationRequest): array private function payloadNew(OwnerVerificationRequest $verificationRequest): array
{ {
$payload = $verificationRequest->payload ?? []; $payload = $verificationRequest->payload ?? [];

View File

@ -19,7 +19,6 @@ public function __construct(
private readonly PushNotificationService $pushNotificationService, private readonly PushNotificationService $pushNotificationService,
) {} ) {}
public function transfer(int $variantId, int $quantity, User $user, ?string $notes = null): OwnerVerificationRequest public function transfer(int $variantId, int $quantity, User $user, ?string $notes = null): OwnerVerificationRequest
{ {
if ($quantity <= 0) { if ($quantity <= 0) {
@ -100,7 +99,6 @@ public function transfer(int $variantId, int $quantity, User $user, ?string $not
} }
} }
public function applyStockRetailTransfer(OwnerVerificationRequest $request): void public function applyStockRetailTransfer(OwnerVerificationRequest $request): void
{ {
$payload = $request->payload ?? []; $payload = $request->payload ?? [];
@ -137,7 +135,6 @@ public function applyStockRetailTransfer(OwnerVerificationRequest $request): voi
}); });
} }
public function rejectStockRetailTransfer(OwnerVerificationRequest $request): void public function rejectStockRetailTransfer(OwnerVerificationRequest $request): void
{ {
// No-op: nothing was changed yet, so nothing to rollback. // No-op: nothing was changed yet, so nothing to rollback.

View File

@ -20,7 +20,6 @@ public function __construct(
private readonly PushNotificationService $pushNotificationService, private readonly PushNotificationService $pushNotificationService,
) {} ) {}
public function getPendingVerificationCuttings(User $user): Collection public function getPendingVerificationCuttings(User $user): Collection
{ {
return Cutting::query() return Cutting::query()
@ -39,7 +38,6 @@ public function getPendingVerificationCuttings(User $user): Collection
}); });
} }
public function getPendingApprovalCuttings(User $user): Collection public function getPendingApprovalCuttings(User $user): Collection
{ {
return Cutting::query() return Cutting::query()
@ -60,7 +58,6 @@ public function getPendingApprovalCuttings(User $user): Collection
}); });
} }
public function submitVerification( public function submitVerification(
Cutting $cutting, Cutting $cutting,
User $user, User $user,
@ -125,7 +122,6 @@ public function submitVerification(
); );
} }
public function approveVerification( public function approveVerification(
Cutting $cutting, Cutting $cutting,
User $user, User $user,
@ -176,7 +172,6 @@ public function approveVerification(
); );
} }
public function rejectVerification( public function rejectVerification(
Cutting $cutting, Cutting $cutting,
User $user, User $user,
@ -245,7 +240,6 @@ private function applyProductStockOnVerify(Cutting $cutting): void
} }
} }
private function storeResultPrices(Cutting $cutting, array $resultPrices): void private function storeResultPrices(Cutting $cutting, array $resultPrices): void
{ {
// Extract harga_modal from the first variant's prices and set as cost_per_unit // Extract harga_modal from the first variant's prices and set as cost_per_unit
@ -285,7 +279,6 @@ private function storeResultPrices(Cutting $cutting, array $resultPrices): void
} }
} }
private function applyResultPricesToProducts(Cutting $cutting): void private function applyResultPricesToProducts(Cutting $cutting): void
{ {
$resultPrices = $cutting->resultPrices()->with('productVariant')->get(); $resultPrices = $cutting->resultPrices()->with('productVariant')->get();

View File

@ -4,6 +4,7 @@
use App\Enums\StokOpnameStatus; use App\Enums\StokOpnameStatus;
use App\Models\Product; use App\Models\Product;
use App\Models\ProductVariant;
use App\Models\StokOpname; use App\Models\StokOpname;
use App\Models\User; use App\Models\User;
use App\Services\System\PushNotificationService; use App\Services\System\PushNotificationService;
@ -19,7 +20,6 @@ public function __construct(
private readonly PushNotificationService $pushNotificationService, private readonly PushNotificationService $pushNotificationService,
) {} ) {}
public function paginateForIndex(array $tableQuery): LengthAwarePaginator public function paginateForIndex(array $tableQuery): LengthAwarePaginator
{ {
$query = StokOpname::query() $query = StokOpname::query()
@ -44,7 +44,6 @@ public function paginateForIndex(array $tableQuery): LengthAwarePaginator
->withQueryString(); ->withQueryString();
} }
public function catalogItems(): array public function catalogItems(): array
{ {
return Product::query() return Product::query()
@ -69,7 +68,6 @@ public function catalogItems(): array
->toArray(); ->toArray();
} }
public function findForEdit(StokOpname $stokOpname): array public function findForEdit(StokOpname $stokOpname): array
{ {
$stokOpname->load(['items.productVariant.product', 'createdBy.profile']); $stokOpname->load(['items.productVariant.product', 'createdBy.profile']);
@ -96,7 +94,6 @@ public function findForEdit(StokOpname $stokOpname): array
]; ];
} }
public function create(array $validated, User $user): StokOpname public function create(array $validated, User $user): StokOpname
{ {
try { try {
@ -125,7 +122,6 @@ public function create(array $validated, User $user): StokOpname
} }
} }
public function update(StokOpname $stokOpname, array $validated): void public function update(StokOpname $stokOpname, array $validated): void
{ {
if ($stokOpname->status !== StokOpnameStatus::DRAFT && $stokOpname->status !== StokOpnameStatus::REJECTED) { if ($stokOpname->status !== StokOpnameStatus::DRAFT && $stokOpname->status !== StokOpnameStatus::REJECTED) {
@ -183,7 +179,6 @@ public function delete(StokOpname $stokOpname): void
} }
} }
public function submit(StokOpname $stokOpname, User $user): void public function submit(StokOpname $stokOpname, User $user): void
{ {
if ($stokOpname->status !== StokOpnameStatus::DRAFT && $stokOpname->status !== StokOpnameStatus::REJECTED) { if ($stokOpname->status !== StokOpnameStatus::DRAFT && $stokOpname->status !== StokOpnameStatus::REJECTED) {
@ -224,7 +219,6 @@ public function submit(StokOpname $stokOpname, User $user): void
); );
} }
public function verify(StokOpname $stokOpname, User $user, ?string $verificationNotes = null): void public function verify(StokOpname $stokOpname, User $user, ?string $verificationNotes = null): void
{ {
if ($stokOpname->status !== StokOpnameStatus::PENDING) { if ($stokOpname->status !== StokOpnameStatus::PENDING) {
@ -269,7 +263,6 @@ public function verify(StokOpname $stokOpname, User $user, ?string $verification
); );
} }
public function reject(StokOpname $stokOpname, User $user, string $reason): void public function reject(StokOpname $stokOpname, User $user, string $reason): void
{ {
if ($stokOpname->status !== StokOpnameStatus::PENDING) { if ($stokOpname->status !== StokOpnameStatus::PENDING) {
@ -306,7 +299,6 @@ public function reject(StokOpname $stokOpname, User $user, string $reason): void
); );
} }
public function autoSave(array $validated, User $user): StokOpname public function autoSave(array $validated, User $user): StokOpname
{ {
try { try {
@ -345,13 +337,12 @@ public function autoSave(array $validated, User $user): StokOpname
} }
} }
private function syncItems(StokOpname $stokOpname, array $items): void private function syncItems(StokOpname $stokOpname, array $items): void
{ {
$stokOpname->items()->delete(); $stokOpname->items()->delete();
foreach ($items as $item) { foreach ($items as $item) {
$systemStock = \App\Models\ProductVariant::find($item['product_variant_id'])?->stock ?? 0; $systemStock = ProductVariant::find($item['product_variant_id'])?->stock ?? 0;
$stokOpname->items()->create([ $stokOpname->items()->create([
'product_variant_id' => $item['product_variant_id'], 'product_variant_id' => $item['product_variant_id'],

View File

@ -27,7 +27,6 @@ public function __construct(
private readonly PushNotificationService $pushNotificationService, private readonly PushNotificationService $pushNotificationService,
) {} ) {}
public function paginateForIndex(array $tableQuery, string $isActive, string $categoryId = '', string $stockStatus = ''): LengthAwarePaginator public function paginateForIndex(array $tableQuery, string $isActive, string $categoryId = '', string $stockStatus = ''): LengthAwarePaginator
{ {
$query = Product::query() $query = Product::query()
@ -114,7 +113,6 @@ public function findForEdit(Product $product): Product
return $product; return $product;
} }
public function create(array $validated, User $user): void public function create(array $validated, User $user): void
{ {
try { try {
@ -169,7 +167,6 @@ public function create(array $validated, User $user): void
); );
} }
public function update(Product $product, array $validated, User $user): void public function update(Product $product, array $validated, User $user): void
{ {
try { try {
@ -243,7 +240,6 @@ public function delete(Product $product, User $user): void
); );
} }
public function toggleStatus(Product $product, array $validated, User $user): void public function toggleStatus(Product $product, array $validated, User $user): void
{ {
try { try {
@ -348,7 +344,6 @@ public function applyUpdate(OwnerVerificationRequest $verificationRequest): void
$this->applyPayloadToProduct($product, $this->payloadNew($verificationRequest), $verificationRequest); $this->applyPayloadToProduct($product, $this->payloadNew($verificationRequest), $verificationRequest);
} }
private function applyPayloadToProduct( private function applyPayloadToProduct(
Product $product, Product $product,
array $payload, array $payload,
@ -500,7 +495,6 @@ private function rollbackUpdate(OwnerVerificationRequest $verificationRequest):
$this->applyPayloadToProduct($product, $oldPayload); $this->applyPayloadToProduct($product, $oldPayload);
} }
private function payloadOld(OwnerVerificationRequest $verificationRequest): array private function payloadOld(OwnerVerificationRequest $verificationRequest): array
{ {
$payload = $verificationRequest->payload ?? []; $payload = $verificationRequest->payload ?? [];
@ -512,7 +506,6 @@ private function payloadOld(OwnerVerificationRequest $verificationRequest): arra
return []; return [];
} }
private function payloadNew(OwnerVerificationRequest $verificationRequest): array private function payloadNew(OwnerVerificationRequest $verificationRequest): array
{ {
$payload = $verificationRequest->payload ?? []; $payload = $verificationRequest->payload ?? [];
@ -524,7 +517,6 @@ private function payloadNew(OwnerVerificationRequest $verificationRequest): arra
return $payload; return $payload;
} }
private function snapshotProduct(Product $product): array private function snapshotProduct(Product $product): array
{ {
$product->load(['categories', 'variants']); $product->load(['categories', 'variants']);
@ -545,7 +537,6 @@ private function snapshotProduct(Product $product): array
]); ]);
} }
private function enrichPayload(array $data): array private function enrichPayload(array $data): array
{ {
$categoryIds = $data['category_ids'] ?? []; $categoryIds = $data['category_ids'] ?? [];
@ -557,7 +548,6 @@ private function enrichPayload(array $data): array
return $data; return $data;
} }
private function buildPayloadFromValidated(array $validated): array private function buildPayloadFromValidated(array $validated): array
{ {
return [ return [
@ -576,7 +566,6 @@ private function buildPayloadFromValidated(array $validated): array
]; ];
} }
private function syncVariantImages( private function syncVariantImages(
ProductVariant $variant, ProductVariant $variant,
array $variantData, array $variantData,
@ -593,7 +582,6 @@ private function syncVariantImages(
); );
} }
private function syncRequestVariantImages( private function syncRequestVariantImages(
OwnerVerificationRequest $verificationRequest, OwnerVerificationRequest $verificationRequest,
array $variantData, array $variantData,
@ -613,7 +601,6 @@ private function syncRequestVariantImages(
); );
} }
private function applyVariantImageChanges( private function applyVariantImageChanges(
OwnerVerificationRequest $verificationRequest, OwnerVerificationRequest $verificationRequest,
ProductVariant $variant, ProductVariant $variant,

View File

@ -27,7 +27,6 @@ public function __construct(
private readonly PushNotificationService $pushNotificationService, private readonly PushNotificationService $pushNotificationService,
) {} ) {}
public function paginateForIndex(array $tableQuery, string $isActive, string $stockStatus = ''): LengthAwarePaginator public function paginateForIndex(array $tableQuery, string $isActive, string $stockStatus = ''): LengthAwarePaginator
{ {
$query = RawMaterial::query() $query = RawMaterial::query()
@ -108,7 +107,6 @@ public function findForEdit(RawMaterial $rawMaterial): RawMaterial
return $rawMaterial; return $rawMaterial;
} }
public function create(array $validated, User $user): void public function create(array $validated, User $user): void
{ {
try { try {
@ -155,7 +153,6 @@ public function create(array $validated, User $user): void
); );
} }
public function update(RawMaterial $rawMaterial, array $validated, User $user): void public function update(RawMaterial $rawMaterial, array $validated, User $user): void
{ {
try { try {
@ -229,7 +226,6 @@ public function delete(RawMaterial $rawMaterial, User $user): void
); );
} }
public function toggleStatus(RawMaterial $rawMaterial, array $validated, User $user): void public function toggleStatus(RawMaterial $rawMaterial, array $validated, User $user): void
{ {
try { try {
@ -387,7 +383,6 @@ public function applyToggleStatus(OwnerVerificationRequest $verificationRequest)
]); ]);
} }
private function applyPayloadToRawMaterial( private function applyPayloadToRawMaterial(
RawMaterial $rawMaterial, RawMaterial $rawMaterial,
array $payload, array $payload,
@ -482,7 +477,6 @@ private function rollbackUpdate(OwnerVerificationRequest $verificationRequest):
$this->applyPayloadToRawMaterial($rawMaterial, $oldPayload); $this->applyPayloadToRawMaterial($rawMaterial, $oldPayload);
} }
private function payloadOld(OwnerVerificationRequest $verificationRequest): array private function payloadOld(OwnerVerificationRequest $verificationRequest): array
{ {
$payload = $verificationRequest->payload ?? []; $payload = $verificationRequest->payload ?? [];
@ -494,7 +488,6 @@ private function payloadOld(OwnerVerificationRequest $verificationRequest): arra
return []; return [];
} }
private function payloadNew(OwnerVerificationRequest $verificationRequest): array private function payloadNew(OwnerVerificationRequest $verificationRequest): array
{ {
$payload = $verificationRequest->payload ?? []; $payload = $verificationRequest->payload ?? [];
@ -506,7 +499,6 @@ private function payloadNew(OwnerVerificationRequest $verificationRequest): arra
return $payload; return $payload;
} }
private function snapshotRawMaterial(RawMaterial $rawMaterial): array private function snapshotRawMaterial(RawMaterial $rawMaterial): array
{ {
$rawMaterial->load(['prices']); $rawMaterial->load(['prices']);
@ -526,7 +518,6 @@ private function snapshotRawMaterial(RawMaterial $rawMaterial): array
]); ]);
} }
private function enrichPayload(array $data): array private function enrichPayload(array $data): array
{ {
if (isset($data['unit'])) { if (isset($data['unit'])) {
@ -541,7 +532,6 @@ private function enrichPayload(array $data): array
return $data; return $data;
} }
private function buildPayloadFromValidated(array $validated): array private function buildPayloadFromValidated(array $validated): array
{ {
return [ return [
@ -570,7 +560,6 @@ private function applySorting(Builder $query, string $sort, string $direction):
$query->latest(); $query->latest();
} }
private function createPrice(RawMaterial $rawMaterial, array $priceData, int $index): RawMaterialPrice private function createPrice(RawMaterial $rawMaterial, array $priceData, int $index): RawMaterialPrice
{ {
$price = $rawMaterial->prices()->create([ $price = $rawMaterial->prices()->create([
@ -584,7 +573,6 @@ private function createPrice(RawMaterial $rawMaterial, array $priceData, int $in
return $price; return $price;
} }
private function syncPriceImages(RawMaterialPrice $price, array $priceData, int $index): void private function syncPriceImages(RawMaterialPrice $price, array $priceData, int $index): void
{ {
$this->mediaService->syncCollection( $this->mediaService->syncCollection(
@ -598,7 +586,6 @@ private function syncPriceImages(RawMaterialPrice $price, array $priceData, int
); );
} }
private function syncRequestPriceImages( private function syncRequestPriceImages(
OwnerVerificationRequest $verificationRequest, OwnerVerificationRequest $verificationRequest,
array $priceData, array $priceData,
@ -618,7 +605,6 @@ private function syncRequestPriceImages(
); );
} }
private function applyPriceImageChanges( private function applyPriceImageChanges(
OwnerVerificationRequest $verificationRequest, OwnerVerificationRequest $verificationRequest,
RawMaterialPrice $price, RawMaterialPrice $price,

View File

@ -12,7 +12,6 @@
class MediaService class MediaService
{ {
public function syncCollection( public function syncCollection(
HasMedia $model, HasMedia $model,
string $collection, string $collection,
@ -115,7 +114,6 @@ public function replaceSingleFile(
return $this->addUploadedFile($model, $file, $collection, $type); return $this->addUploadedFile($model, $file, $collection, $type);
} }
private function customProperties(HasMedia $model, ?string $type): array private function customProperties(HasMedia $model, ?string $type): array
{ {
$properties = [ $properties = [

View File

@ -293,7 +293,7 @@ public function getExpenseSummary(?Carbon $startDate = null, ?Carbon $endDate =
->first(); ->first();
$purchaseTotal = (int) ($purchase->total ?? 0); $purchaseTotal = (int) ($purchase->total ?? 0);
if (auth()->user()?->hasRole(\App\Enums\Role::ADMIN_TOKO->value)) { if (auth()->user()?->hasRole(Role::ADMIN_TOKO->value)) {
$purchaseTotal = 0; $purchaseTotal = 0;
} }
$expenseTotal = (int) ($expenses->total ?? 0); $expenseTotal = (int) ($expenses->total ?? 0);
@ -352,7 +352,7 @@ public function getMonthlyExpense(?Carbon $startDate = null, ?Carbon $endDate =
$monthLabel = $current->locale('id')->translatedFormat('M Y'); $monthLabel = $current->locale('id')->translatedFormat('M Y');
$purchaseAmount = (int) ($purchases->firstWhere('month_key', $key)->total ?? 0); $purchaseAmount = (int) ($purchases->firstWhere('month_key', $key)->total ?? 0);
if (auth()->user()?->hasRole(\App\Enums\Role::ADMIN_TOKO->value)) { if (auth()->user()?->hasRole(Role::ADMIN_TOKO->value)) {
$purchaseAmount = 0; $purchaseAmount = 0;
} }
$expenseAmount = (int) ($expenses->firstWhere('month_key', $key)->total ?? 0); $expenseAmount = (int) ($expenses->firstWhere('month_key', $key)->total ?? 0);
@ -433,7 +433,7 @@ public function getProfitMetrics(?Carbon $startDate = null, ?Carbon $endDate = n
->when($startDate && $endDate, fn ($q) => $q->whereBetween('purchases.created_at', [$startDate, $endDate])) ->when($startDate && $endDate, fn ($q) => $q->whereBetween('purchases.created_at', [$startDate, $endDate]))
->sum('total'); ->sum('total');
if (auth()->user()?->hasRole(\App\Enums\Role::ADMIN_TOKO->value)) { if (auth()->user()?->hasRole(Role::ADMIN_TOKO->value)) {
$purchaseTotal = 0; $purchaseTotal = 0;
} }

View File

@ -5,6 +5,7 @@
use App\Enums\OrderChannel; use App\Enums\OrderChannel;
use App\Enums\OrderStatus; use App\Enums\OrderStatus;
use App\Enums\PaymentType; use App\Enums\PaymentType;
use App\Enums\Role;
use App\Models\Attendance; use App\Models\Attendance;
use App\Models\CashAccount; use App\Models\CashAccount;
use App\Models\CashTransaction; use App\Models\CashTransaction;
@ -19,7 +20,6 @@
class DashboardService class DashboardService
{ {
public function getTodayAttendanceForUser(User $user): ?array public function getTodayAttendanceForUser(User $user): ?array
{ {
$employee = $user->employee; $employee = $user->employee;
@ -160,7 +160,7 @@ public function getExpenseSummary(): array
->first(); ->first();
$purchaseTotal = (int) ($purchase->total ?? 0); $purchaseTotal = (int) ($purchase->total ?? 0);
if (auth()->user()?->hasRole(\App\Enums\Role::ADMIN_TOKO->value)) { if (auth()->user()?->hasRole(Role::ADMIN_TOKO->value)) {
$purchaseTotal = 0; $purchaseTotal = 0;
} }
$expenseTotal = (int) ($expenses->total ?? 0); $expenseTotal = (int) ($expenses->total ?? 0);

View File

@ -6,19 +6,16 @@
class PushNotificationService class PushNotificationService
{ {
public function sendToRoles(string $title, string $body, array $roles, string $url = '/admin/dashboard'): void public function sendToRoles(string $title, string $body, array $roles, string $url = '/admin/dashboard'): void
{ {
SendPushNotificationJob::dispatch($title, $body, $url, $roles); SendPushNotificationJob::dispatch($title, $body, $url, $roles);
} }
public function sendToUser(string $title, string $body, int $userId, string $url = '/admin/dashboard'): void public function sendToUser(string $title, string $body, int $userId, string $url = '/admin/dashboard'): void
{ {
SendPushNotificationJob::dispatch($title, $body, $url, [], $userId); SendPushNotificationJob::dispatch($title, $body, $url, [], $userId);
} }
public function sendToAll(string $title, string $body, string $url = '/admin/dashboard'): void public function sendToAll(string $title, string $body, string $url = '/admin/dashboard'): void
{ {
SendPushNotificationJob::dispatch($title, $body, $url, []); SendPushNotificationJob::dispatch($title, $body, $url, []);

View File

@ -6,7 +6,6 @@
class PushSubscriptionService class PushSubscriptionService
{ {
public function updateOrCreateSubscription(array $validated, int $userId): void public function updateOrCreateSubscription(array $validated, int $userId): void
{ {
PushSubscription::updateOrCreate( PushSubscription::updateOrCreate(
@ -21,7 +20,6 @@ public function updateOrCreateSubscription(array $validated, int $userId): void
); );
} }
public function deleteSubscription(string $endpoint, int $userId): void public function deleteSubscription(string $endpoint, int $userId): void
{ {
PushSubscription::where('user_id', $userId) PushSubscription::where('user_id', $userId)

View File

@ -2,8 +2,8 @@
namespace App\Services\System; namespace App\Services\System;
use App\Enums\Role as EnumsRole;
use App\Enums\Permission as PermissionEnum; use App\Enums\Permission as PermissionEnum;
use App\Enums\Role as EnumsRole;
use Illuminate\Contracts\Pagination\LengthAwarePaginator; use Illuminate\Contracts\Pagination\LengthAwarePaginator;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;

View File

@ -20,7 +20,6 @@ public function __construct(
private readonly PushNotificationService $pushNotificationService, private readonly PushNotificationService $pushNotificationService,
) {} ) {}
private function tiktokFeeKeys(): array private function tiktokFeeKeys(): array
{ {
return [ return [
@ -33,7 +32,6 @@ private function tiktokFeeKeys(): array
]; ];
} }
private function shopeeFeeKeys(): array private function shopeeFeeKeys(): array
{ {
return [ return [
@ -153,7 +151,6 @@ public function applyVerificationRequest(OwnerVerificationRequest $request): voi
$this->saveSettings($newPayload); $this->saveSettings($newPayload);
} }
public function buildOrderSnapshot(OrderChannel $channel, int $totalAmount, array $lineItems, bool $isAffiliate = false): ?array public function buildOrderSnapshot(OrderChannel $channel, int $totalAmount, array $lineItems, bool $isAffiliate = false): ?array
{ {
$feeSnapshot = $this->feeRulesForChannel($channel); $feeSnapshot = $this->feeRulesForChannel($channel);
@ -186,7 +183,6 @@ public function buildOrderSnapshot(OrderChannel $channel, int $totalAmount, arra
]; ];
} }
private function excludeAffiliateFee(array $fees, OrderChannel $channel): array private function excludeAffiliateFee(array $fees, OrderChannel $channel): array
{ {
$affiliateKey = match ($channel) { $affiliateKey = match ($channel) {
@ -206,7 +202,6 @@ private function excludeAffiliateFee(array $fees, OrderChannel $channel): array
return $fees; return $fees;
} }
private function feeRulesForChannel(OrderChannel $channel): ?array private function feeRulesForChannel(OrderChannel $channel): ?array
{ {
$settings = app(MarketplaceSettings::class); $settings = app(MarketplaceSettings::class);
@ -241,13 +236,11 @@ private function feeRulesForChannel(OrderChannel $channel): ?array
}; };
} }
private function presentFeeRule(array $data): array private function presentFeeRule(array $data): array
{ {
return MarketplaceFeeRule::fromArray($data)->toArray(); return MarketplaceFeeRule::fromArray($data)->toArray();
} }
private function normalizeFeeRule(array $data): array private function normalizeFeeRule(array $data): array
{ {
return MarketplaceFeeRule::fromArray($data)->toArray(); return MarketplaceFeeRule::fromArray($data)->toArray();

View File

@ -31,6 +31,7 @@
use App\Models\SystemConfiguration; use App\Models\SystemConfiguration;
use App\Models\User; use App\Models\User;
use App\Models\UserProfile; use App\Models\UserProfile;
use App\Settings\MarketplaceSettings;
class ModelLabel class ModelLabel
{ {
@ -67,7 +68,7 @@ class ModelLabel
SystemConfiguration::class => 'Konfigurasi Sistem', SystemConfiguration::class => 'Konfigurasi Sistem',
User::class => 'Pengguna', User::class => 'Pengguna',
UserProfile::class => 'Profil Pengguna', UserProfile::class => 'Profil Pengguna',
\App\Settings\MarketplaceSettings::class => 'Pengaturan Marketplace', MarketplaceSettings::class => 'Pengaturan Marketplace',
]; ];
public static function for(?string $modelClass): string public static function for(?string $modelClass): string

View File

@ -21,17 +21,17 @@
use App\Http\Controllers\Admin\Manage\OwnerVerificationController; use App\Http\Controllers\Admin\Manage\OwnerVerificationController;
use App\Http\Controllers\Admin\Manage\Purchase\PurchaseController; use App\Http\Controllers\Admin\Manage\Purchase\PurchaseController;
use App\Http\Controllers\Admin\Manage\Purchase\PurchaseDraftItemController; use App\Http\Controllers\Admin\Manage\Purchase\PurchaseDraftItemController;
use App\Http\Controllers\Admin\Manage\StokOpnameController;
use App\Http\Controllers\Admin\Manage\Stock\StockController; use App\Http\Controllers\Admin\Manage\Stock\StockController;
use App\Http\Controllers\Admin\Manage\Stock\StockRetailController; use App\Http\Controllers\Admin\Manage\Stock\StockRetailController;
use App\Http\Controllers\Admin\Manage\StokOpnameController;
use App\Http\Controllers\Admin\Master\CategoryController; use App\Http\Controllers\Admin\Master\CategoryController;
use App\Http\Controllers\Admin\Master\CustomerController; use App\Http\Controllers\Admin\Master\CustomerController;
use App\Http\Controllers\Admin\Master\ProductController; use App\Http\Controllers\Admin\Master\ProductController;
use App\Http\Controllers\Admin\Master\RawMaterialController; use App\Http\Controllers\Admin\Master\RawMaterialController;
use App\Http\Controllers\Admin\Master\SupplierController; use App\Http\Controllers\Admin\Master\SupplierController;
use App\Http\Controllers\Admin\NotificationController;
use App\Http\Controllers\Admin\System\ActivityLogController; use App\Http\Controllers\Admin\System\ActivityLogController;
use App\Http\Controllers\Admin\System\RoleController; use App\Http\Controllers\Admin\System\RoleController;
use App\Http\Controllers\Admin\NotificationController;
use App\Http\Controllers\Admin\System\SettingController; use App\Http\Controllers\Admin\System\SettingController;
use App\Http\Controllers\Auth\LoginController; use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\LogoutController; use App\Http\Controllers\Auth\LogoutController;

View File

@ -4,7 +4,6 @@
use App\Enums\OwnerVerificationStatus; use App\Enums\OwnerVerificationStatus;
use App\Enums\Permission as PermissionEnum; use App\Enums\Permission as PermissionEnum;
use App\Enums\RawMaterialUnit; use App\Enums\RawMaterialUnit;
use App\Models\OwnerVerificationRequest;
use App\Models\RawMaterial; use App\Models\RawMaterial;
use App\Models\RawMaterialPrice; use App\Models\RawMaterialPrice;
use App\Models\User; use App\Models\User;

View File

@ -1,5 +1,7 @@
<?php <?php
use App\Models\OwnerVerificationRequest;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase; use Tests\TestCase;
@ -49,9 +51,9 @@ function something()
// .. // ..
} }
function approveLatestOwnerVerificationRequest(\App\Models\User $verifier): \App\Models\OwnerVerificationRequest function approveLatestOwnerVerificationRequest(User $verifier): OwnerVerificationRequest
{ {
$verificationRequest = \App\Models\OwnerVerificationRequest::query()->pending()->latest()->firstOrFail(); $verificationRequest = OwnerVerificationRequest::query()->pending()->latest()->firstOrFail();
test()->actingAs($verifier) test()->actingAs($verifier)
->post(route('admin.manage.owner_verifications.approve_request', $verificationRequest)) ->post(route('admin.manage.owner_verifications.approve_request', $verificationRequest))