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:
parent
754b65259e
commit
10934a2aba
@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
@ -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')),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@ -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)' ?? '-',
|
||||
|
||||
@ -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',
|
||||
|
||||
Loading…
Reference in New Issue
Block a user