diff --git a/app/Http/Controllers/Admin/Finance/CashController.php b/app/Http/Controllers/Admin/Finance/CashController.php index c777f5a..bed4b1a 100644 --- a/app/Http/Controllers/Admin/Finance/CashController.php +++ b/app/Http/Controllers/Admin/Finance/CashController.php @@ -20,7 +20,13 @@ public function index(): View { return view('pages.admin.finance.cashes', [ 'pageTitle' => 'Kas', - 'cashes' => Cash::latest()->get(), + 'cashes' => Cash::with(['user', 'user.biography']) + ->barbershop() + ->when(auth()->user()->role_id === 4, function ($query) { + return $query->where('user_id', auth()->id()); + }) + ->latest() + ->get(), ]); } diff --git a/app/Http/Controllers/Admin/Finance/ExpenseController.php b/app/Http/Controllers/Admin/Finance/ExpenseController.php index 869992a..5c94b94 100644 --- a/app/Http/Controllers/Admin/Finance/ExpenseController.php +++ b/app/Http/Controllers/Admin/Finance/ExpenseController.php @@ -20,7 +20,13 @@ public function index(): View { return view('pages.admin.finance.expenses', [ 'pageTitle' => 'Pengeluaran', - 'expenses' => Expense::with(['user', 'user.biography'])->barbershop()->latest()->get(), + 'expenses' => Expense::with(['user', 'user.biography']) + ->barbershop() + ->when(auth()->user()->role_id === 4, function ($query) { + return $query->where('user_id', auth()->id()); + }) + ->latest() + ->get(), ]); } diff --git a/app/Http/Controllers/Admin/Finance/PayrollController.php b/app/Http/Controllers/Admin/Finance/PayrollController.php index a0a9a01..554cb64 100644 --- a/app/Http/Controllers/Admin/Finance/PayrollController.php +++ b/app/Http/Controllers/Admin/Finance/PayrollController.php @@ -18,7 +18,14 @@ public function index(): View { return view('pages.admin.finance.payroll.index', [ 'pageTitle' => 'Gaji', - 'payrolls' => Payroll::latest()->get(), + 'payrolls' => Payroll::with(['employee', 'employee.biography']) + ->barbershop() + ->when(in_array(auth()->user()->role_id, [4, 5]), function ($query) { + return $query->where('user_id', auth()->id()) + ->orWhere('employee_id', auth()->id()); + }) + ->latest() + ->get(), ]); } diff --git a/app/Http/Controllers/Admin/Manage/AttendanceController.php b/app/Http/Controllers/Admin/Manage/AttendanceController.php index f9abbc3..e9efcdd 100644 --- a/app/Http/Controllers/Admin/Manage/AttendanceController.php +++ b/app/Http/Controllers/Admin/Manage/AttendanceController.php @@ -22,7 +22,11 @@ class AttendanceController extends Controller public function index(Request $request): View|JsonResponse { if ($request->ajax()) { - $attendances = Attendance::query(); + $attendances = Attendance::with('attachments') + ->barbershop() + ->when(in_array(auth()->user()->role_id, [4, 5]), function ($query) { + return $query->where('user_id', auth()->id()); + }); return DataTables::eloquent($attendances) ->addIndexColumn() @@ -79,8 +83,8 @@ public function index(Request $request): View|JsonResponse return view('pages.admin.manage.attendances', [ 'pageTitle' => 'Kehadiran', - 'checkInAttendance' => Attendance::where('user_id', Auth::id())->whereDate('created_at', today())->first(), - 'checkOutAttendance' => Attendance::where('user_id', Auth::id())->whereDate('created_at', today())->whereNotNull('check_out')->first(), + 'checkInAttendance' => Attendance::with('attachments')->where('user_id', Auth::id())->whereDate('created_at', today())->first(), + 'checkOutAttendance' => Attendance::with('attachments')->where('user_id', Auth::id())->whereDate('created_at', today())->whereNotNull('check_out')->first(), ]); } diff --git a/app/Http/Controllers/Admin/Manage/InventoryController.php b/app/Http/Controllers/Admin/Manage/InventoryController.php index c1e547f..3474a1d 100644 --- a/app/Http/Controllers/Admin/Manage/InventoryController.php +++ b/app/Http/Controllers/Admin/Manage/InventoryController.php @@ -20,7 +20,10 @@ public function index(): View { return view('pages.admin.manage.inventory', [ 'pageTitle' => 'Barang', - 'inventory' => Inventory::with(['user', 'user.biography'])->barbershop()->latest()->get(), + 'inventory' => Inventory::with(['user', 'user.biography', 'attachment']) + ->barbershop() + ->latest() + ->get(), ]); } diff --git a/app/Http/Controllers/Admin/Manage/TransactionController.php b/app/Http/Controllers/Admin/Manage/TransactionController.php index 43550ca..304aee8 100644 --- a/app/Http/Controllers/Admin/Manage/TransactionController.php +++ b/app/Http/Controllers/Admin/Manage/TransactionController.php @@ -7,6 +7,7 @@ use App\Models\Customer; use App\Models\Service; use App\Models\Transaction; +use App\Models\User; use App\Traits\DeleteAttachment; use App\Traits\UploadAttachment; use Illuminate\Contracts\View\View; @@ -23,7 +24,13 @@ public function index(): View { return view('pages.admin.manage.transaction.index', [ 'pageTitle' => 'Transaksi', - 'transactions' => Transaction::with(['user', 'user.biography'])->barbershop()->latest()->get(), + 'transactions' => Transaction::with(['user', 'user.biography']) + ->barbershop() + ->when(auth()->user()->role_id === 5, function ($query) { + return $query->where('user_id', auth()->id()); + }) + ->latest() + ->get(), ]); } @@ -31,8 +38,9 @@ public function create(): View { return view('pages.admin.manage.transaction.create', [ 'pageTitle' => 'Tambah Transaksi', - 'services' => Service::latest()->get(), - 'customers' => Customer::latest()->get(), + 'services' => Service::query()->barbershop()->latest()->get(), + 'customers' => Customer::query()->barbershop()->latest()->get(), + 'barber' => User::with('biography')->barbershop()->barber()->latest()->get(), ]); } @@ -52,7 +60,7 @@ public function store(TransactionRequest $request): RedirectResponse ]); } $newTransaction = Transaction::create(array_merge($validatedData, [ - 'user_id' => $userId, + 'user_id' => $validatedData['barber'], 'barbershop_id' => $barbershopId, 'service_id' => $validatedData['service'], 'customer_id' => $customer ? $customer->id : $validatedData['customer'], @@ -69,8 +77,9 @@ public function edit(Transaction $transaction): View { return view('pages.admin.manage.transaction.edit', [ 'pageTitle' => 'Edit Transaksi', - 'services' => Service::latest()->get(), - 'customers' => Customer::latest()->get(), + 'services' => Service::query()->barbershop()->latest()->get(), + 'customers' => Customer::query()->barbershop()->latest()->get(), + 'barber' => User::with('biography')->barbershop()->barber()->latest()->get(), 'transaction' => $transaction, ]); } @@ -81,6 +90,7 @@ public function update(Transaction $transaction, TransactionRequest $request): R DB::transaction(function () use ($validatedData, $transaction) { $transaction->update(array_merge($validatedData, [ + 'user_id' => $validatedData['barber'], 'service_id' => $validatedData['service'], 'customer_id' => $validatedData['customer'], ])); diff --git a/app/Http/Controllers/Admin/Master/CustomerController.php b/app/Http/Controllers/Admin/Master/CustomerController.php index 90c9f6c..a75d563 100644 --- a/app/Http/Controllers/Admin/Master/CustomerController.php +++ b/app/Http/Controllers/Admin/Master/CustomerController.php @@ -18,7 +18,10 @@ public function index(): View { return view('pages.admin.master.customers', [ 'pageTitle' => 'Pelanggan', - 'customers' => Customer::with(['user', 'user.biography'])->barbershop()->latest()->get(), + 'customers' => Customer::with(['user', 'user.biography']) + ->barbershop() + ->latest() + ->get(), ]); } diff --git a/app/Http/Controllers/Admin/Master/ServiceController.php b/app/Http/Controllers/Admin/Master/ServiceController.php index 2f18159..f1ebb78 100644 --- a/app/Http/Controllers/Admin/Master/ServiceController.php +++ b/app/Http/Controllers/Admin/Master/ServiceController.php @@ -15,7 +15,10 @@ public function index(): View { return view('pages.admin.master.service.index', [ 'pageTitle' => 'Layanan', - 'services' => Service::latest()->get(), + 'services' => Service::with(['user', 'biography']) + ->barbershop() + ->latest() + ->get(), ]); } diff --git a/app/Http/Controllers/Admin/Master/UserController.php b/app/Http/Controllers/Admin/Master/UserController.php index 259b17f..1ad3e29 100644 --- a/app/Http/Controllers/Admin/Master/UserController.php +++ b/app/Http/Controllers/Admin/Master/UserController.php @@ -23,7 +23,10 @@ public function index(): View { return view('pages.admin.master.user.index', [ 'pageTitle' => 'Pengguna', - 'users' => User::latest()->get(), + 'users' => User::with(['biography', 'attachment']) + ->barbershop() + ->latest() + ->get(), ]); } diff --git a/app/Http/Requests/Admin/Manage/TransactionRequest.php b/app/Http/Requests/Admin/Manage/TransactionRequest.php index d8fd074..d9a4672 100644 --- a/app/Http/Requests/Admin/Manage/TransactionRequest.php +++ b/app/Http/Requests/Admin/Manage/TransactionRequest.php @@ -31,6 +31,7 @@ public function rules(): array $isEdit = $this->isMethod('put'); return [ + 'barber' => ['required', Rule::exists('users', 'id')], 'service' => ['required', Rule::exists('services', 'id')], 'customer' => ['required'], 'price' => ['required', 'numeric', 'min:0', 'max:999999.99'], diff --git a/app/Models/Attendance.php b/app/Models/Attendance.php index 2e9c97e..5ab2aad 100644 --- a/app/Models/Attendance.php +++ b/app/Models/Attendance.php @@ -2,11 +2,13 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\SoftDeletes; +use Illuminate\Support\Facades\Auth; class Attendance extends Model { @@ -19,9 +21,10 @@ class Attendance extends Model 'check_out', ]; - protected $with = [ - 'attachments', - ]; + public function scopeBarbershop(Builder $query): Builder + { + return $query->where('barbershop_id', Auth::user()->barbershop_id); + } public function user(): BelongsTo { diff --git a/app/Models/Barbershop.php b/app/Models/Barbershop.php index d9ae03c..360c5b7 100644 --- a/app/Models/Barbershop.php +++ b/app/Models/Barbershop.php @@ -28,10 +28,6 @@ class Barbershop extends Model 'cash', ]; - protected $with = [ - 'attachment', - ]; - protected $cascadeDeletes = [ 'users', 'customers', diff --git a/app/Models/Cash.php b/app/Models/Cash.php index 6a42c68..a833315 100644 --- a/app/Models/Cash.php +++ b/app/Models/Cash.php @@ -2,11 +2,13 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\MorphOne; use Illuminate\Database\Eloquent\SoftDeletes; +use Illuminate\Support\Facades\Auth; class Cash extends Model { @@ -21,6 +23,11 @@ class Cash extends Model 'amount', ]; + public function scopeBarbershop(Builder $query): Builder + { + return $query->where('barbershop_id', Auth::user()->barbershop_id); + } + public function user(): BelongsTo { return $this->belongsTo(User::class); diff --git a/app/Models/Payroll.php b/app/Models/Payroll.php index ab1730f..de36f89 100644 --- a/app/Models/Payroll.php +++ b/app/Models/Payroll.php @@ -2,11 +2,13 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\MorphOne; use Illuminate\Database\Eloquent\SoftDeletes; +use Illuminate\Support\Facades\Auth; class Payroll extends Model { @@ -25,6 +27,11 @@ class Payroll extends Model 'description', ]; + public function scopeBarbershop(Builder $query): Builder + { + return $query->where('barbershop_id', Auth::user()->barbershop_id); + } + public function user(): BelongsTo { return $this->belongsTo(User::class); diff --git a/resources/views/pages/admin/dashboard/overview.blade.php b/resources/views/pages/admin/dashboard/overview.blade.php index cd90cfb..3bc16e6 100644 --- a/resources/views/pages/admin/dashboard/overview.blade.php +++ b/resources/views/pages/admin/dashboard/overview.blade.php @@ -15,8 +15,12 @@
diff --git a/resources/views/pages/admin/finance/cashes.blade.php b/resources/views/pages/admin/finance/cashes.blade.php
index cd48c29..7c1a768 100644
--- a/resources/views/pages/admin/finance/cashes.blade.php
+++ b/resources/views/pages/admin/finance/cashes.blade.php
@@ -6,15 +6,17 @@