feat: Adjust role permissions for warehouse management, analysis, and member vouchers, while refining customer table actions, warehouse column visibility, and dashboard statistics.

This commit is contained in:
Yoga Pangestu 2026-01-05 22:36:29 +07:00
parent 754b65259e
commit 10934a2aba
4 changed files with 25 additions and 18 deletions

View File

@ -71,6 +71,10 @@ public function columns(): array
Column::make('Aksi')
->label(function ($row) {
if ($row->user) {
return '';
}
$actions = '';
if (auth()->user()->can('update customer')) {
@ -96,6 +100,7 @@ public function columns(): array
public function builder(): Builder
{
return Customer::select('customers.id', 'name', 'phone_number', 'gender', 'customers.created_at')->with('user', 'orders');
return Customer::select('customers.id', 'name', 'phone_number', 'gender', 'customers.created_at', 'user_id')
->with('user', 'orders');
}
}

View File

@ -48,7 +48,7 @@ public function columns(): array
return $actions;
})
->html()
->hideIf(auth()->user()->cannot('view warehouse') && auth()->user()->cannot('update warehouse') && auth()->user()->cannot('delete warehouse')),
->hideIf(auth()->user()->cannot('show warehouse') && auth()->user()->cannot('update warehouse') && auth()->user()->cannot('delete warehouse')),
];
}

View File

@ -202,7 +202,7 @@ public function render(): View
->get()->keyBy('orderable_type');
$this->todayCategoryChart = [
'labels' => ['Parfum', 'Produk Jadi', 'Botol'],
'labels' => ['Parfum', 'Produk', 'Botol'],
'data' => [
(int) ($categorySales->get(Perfume::class)?->total ?? 0),
(int) ($categorySales->get(Product::class)?->total ?? 0),
@ -287,7 +287,7 @@ public function render(): View
];
$this->stats = array_values(array_filter([
[
auth()->user()->hasRole(['Developer', 'Owner']) ? [
'title' => 'Average Order Value (AOV)',
'value' => formatCurrencyNumber($todayAov, 'Rp'),
'previous' => formatCurrencyNumber($yesterdayAov, 'Rp'),
@ -295,8 +295,9 @@ public function render(): View
? round((($todayAov - $yesterdayAov) / $yesterdayAov) * 100, 1).'%'
: '∞%',
'trendUp' => $todayAov > $yesterdayAov,
],
[
] : null,
auth()->user()->hasRole(['Developer', 'Owner']) ? [
'title' => 'Profit Margin',
'value' => round($todayProfitMargin, 1).'%',
'previous' => round($yesterdayProfitMargin, 1).'%',
@ -304,7 +305,8 @@ public function render(): View
? round($todayProfitMargin - $yesterdayProfitMargin, 1).'%'
: '∞%',
'trendUp' => $todayProfitMargin > $yesterdayProfitMargin,
],
] : null,
[
'title' => 'Total Order',
'value' => $todayOrder,
@ -314,6 +316,7 @@ public function render(): View
: '∞%',
'trendUp' => $todayOrder > $yesterdayOrder,
],
[
'title' => 'Pendapatan',
'value' => formatCurrencyNumber($todayIncome, 'Rp'),
@ -345,6 +348,7 @@ public function render(): View
: '∞%',
'trendUp' => $todayNewMembers > $yesterdayNewMembers,
],
[
'title' => 'Diskon',
'value' => formatCurrencyNumber($todayDiscount, 'Rp'),
@ -355,6 +359,7 @@ public function render(): View
'trendUp' => $todayDiscount > $yesterdayDiscount,
'formatted' => formatCurrencyNumber($todayDiscount, 'Rp'),
],
[
'title' => 'Voucher Terpakai',
'value' => $todayVoucher,
@ -364,6 +369,7 @@ public function render(): View
: '∞%',
'trendUp' => $todayVoucher > $yesterdayVoucher,
],
[
'title' => 'Beban Toko',
'value' => formatCurrencyNumber($todayExpense, 'Rp'),
@ -413,6 +419,7 @@ public function render(): View
: '∞%',
'trendUp' => $todaySoldPerfume > $yesterdaySoldPerfume,
],
[
'title' => 'Top Parfum',
'value' => optional($todayTopPerfume?->orderable)->name.' ('.$todayTopPerfume?->total_sold.'ml)' ?? '-',

View File

@ -183,8 +183,6 @@ public function run(): void
// member
'view member overview',
'view member voucher',
'view member membership',
'view member reward',
@ -200,16 +198,12 @@ public function run(): void
$developer->syncPermissions($permissions, array_diff($permissions, [
'view member overview',
'view partner overview',
'view member voucher',
'view member membership',
]));
$owner->syncPermissions($permissions, array_diff($permissions, [
'view member overview',
'view partner overview',
'view member voucher',
'view member membership',
'view member reward',
]));
@ -218,7 +212,7 @@ public function run(): void
'view member overview',
'view partner overview',
'view member voucher',
'view analysis',
'view member membership',
'view member reward',
@ -226,6 +220,11 @@ public function run(): void
'update outlet',
'delete outlet',
'show warehouse',
'create warehouse',
'update warehouse',
'delete warehouse',
'view user',
'create user',
'update user',
@ -314,8 +313,6 @@ public function run(): void
'view partner overview',
'view analysis',
'view member voucher',
'view member membership',
'view member reward',
@ -457,8 +454,6 @@ public function run(): void
'view member overview',
'view member voucher',
'view member membership',
'view member reward',