update revisi 1
This commit is contained in:
@@ -17,6 +17,8 @@ use App\Models\FormEntertaimentPresentation;
|
||||
use App\Models\FormVehicleRunningCost;
|
||||
use App\Models\FormOthers;
|
||||
use App\Models\FormMeetingSeminar;
|
||||
use App\Models\UserHasCabang;
|
||||
use App\Models\Cabang;
|
||||
|
||||
class AdminsController extends Controller
|
||||
{
|
||||
@@ -24,6 +26,7 @@ class AdminsController extends Controller
|
||||
public function index(): Renderable
|
||||
{
|
||||
$this->checkAuthorization(auth()->user(), ['admin.view']);
|
||||
session()->put('redirect_url', route('admin.admins.index'));
|
||||
|
||||
$pageInfo = [
|
||||
'title' => 'User Access List',
|
||||
@@ -33,7 +36,7 @@ class AdminsController extends Controller
|
||||
|
||||
return view('backend.pages.admins.index', [
|
||||
'admins' => Admin::all(),
|
||||
'pageInfo' => $pageInfo
|
||||
'pageInfo' => $pageInfo,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -49,7 +52,8 @@ class AdminsController extends Controller
|
||||
|
||||
return view('backend.pages.admins.create', [
|
||||
'roles' => Role::all(),
|
||||
'pageInfo' => $pageInfo
|
||||
'pageInfo' => $pageInfo,
|
||||
'cabangs' => Cabang::all()
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -65,6 +69,14 @@ class AdminsController extends Controller
|
||||
$admin->phone = $request->phone;
|
||||
$admin->save();
|
||||
|
||||
// Assign the user to a cabang
|
||||
if($request->cabang_id) {
|
||||
UserHasCabang::create([
|
||||
'user_id' => $admin->id,
|
||||
'cabang_id' => $request->cabang_id
|
||||
]);
|
||||
}
|
||||
|
||||
if ($request->roles) {
|
||||
$admin->assignRole($request->roles);
|
||||
}
|
||||
@@ -81,7 +93,7 @@ class AdminsController extends Controller
|
||||
// }
|
||||
|
||||
session()->flash('success', 'Admin has been created.');
|
||||
return redirect()->route('admin.admins.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
public function edit(int $id): Renderable
|
||||
@@ -99,7 +111,8 @@ class AdminsController extends Controller
|
||||
return view('backend.pages.admins.edit', [
|
||||
'admin' => $admin,
|
||||
'roles' => Role::all(),
|
||||
'pageInfo' => $pageInfo
|
||||
'pageInfo' => $pageInfo,
|
||||
'cabangs' => Cabang::all()
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -122,8 +135,14 @@ class AdminsController extends Controller
|
||||
$admin->assignRole($request->roles);
|
||||
}
|
||||
|
||||
// Update the user's cabang
|
||||
if($request->cabang_id) {
|
||||
$userHasCabang = UserHasCabang::where('user_id', $admin->id)->first();
|
||||
$userHasCabang ? $userHasCabang->update(['cabang_id' => $request->cabang_id]) : UserHasCabang::create(['user_id' => $admin->id, 'cabang_id' => $request->cabang_id]);
|
||||
}
|
||||
|
||||
session()->flash('success', 'Admin has been updated.');
|
||||
return redirect()->route('admin.admins.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
public function expense($user_id)
|
||||
@@ -162,6 +181,6 @@ class AdminsController extends Controller
|
||||
$admin = Admin::findOrFail($id);
|
||||
$admin->delete();
|
||||
session()->flash('success', 'Admin has been deleted.');
|
||||
return redirect()->route('admin.admins.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,8 @@ class RolesController extends Controller
|
||||
public function index(): Renderable
|
||||
{
|
||||
$this->checkAuthorization(auth()->user(), ['role.view']);
|
||||
session()->put('redirect_url', route('admin.roles.index'));
|
||||
|
||||
$pageInfo = [
|
||||
'title' => 'List Roles',
|
||||
'sub_title' => 'List All User Roles',
|
||||
@@ -59,7 +61,7 @@ class RolesController extends Controller
|
||||
}
|
||||
|
||||
session()->flash('success', 'Role has been created.');
|
||||
return redirect()->route('admin.roles.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
public function edit(int $id): Renderable|RedirectResponse
|
||||
@@ -104,7 +106,7 @@ class RolesController extends Controller
|
||||
}
|
||||
|
||||
session()->flash('success', 'Role has been updated.');
|
||||
return redirect()->route('admin.roles.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
public function destroy(int $id): RedirectResponse
|
||||
@@ -119,6 +121,6 @@ class RolesController extends Controller
|
||||
|
||||
$role->delete();
|
||||
session()->flash('success', 'Role has been deleted.');
|
||||
return redirect()->route('admin.roles.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
@@ -26,14 +26,25 @@ class FormEntertainmentPresentationController extends Controller
|
||||
{
|
||||
$this->checkAuthorization(auth()->user(), ['forms.entertainment.view']);
|
||||
|
||||
// get user role
|
||||
// get user role
|
||||
$role = auth()->user()->getRoleNames()[0];
|
||||
$forms = null;
|
||||
$forms = FormEntertaimentPresentation::get();
|
||||
|
||||
if($role == 'Marketing Information System' || $role == 'superadmin') {
|
||||
$forms = FormEntertaimentPresentation::get();
|
||||
} else {
|
||||
$forms = FormEntertaimentPresentation::where('user_id', auth()->user()->id)->get();
|
||||
if ($role == 'Admin Region') {
|
||||
$region_id = auth()->user()->getMyCabangAndRegionId()['region'];
|
||||
|
||||
if ($region_id) {
|
||||
$users = UserHasCabang::whereHas('cabang', function ($query) use ($region_id) {
|
||||
$query->where('region_id', $region_id);
|
||||
})->get();
|
||||
|
||||
$userIds = $users->pluck('user_id')->toArray();
|
||||
$forms = $forms->whereIn('user_id', $userIds);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$forms = $forms->where('user_id', auth()->user()->id);
|
||||
}
|
||||
|
||||
session()->put('redirect_url', route('forms.entertainment'));
|
||||
@@ -61,7 +72,7 @@ class FormEntertainmentPresentationController extends Controller
|
||||
'name' => 'required',
|
||||
'alamat' => 'required',
|
||||
'nik_or_npwp' => 'required',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,heic,heif|max:2048',
|
||||
'bukti2' => 'nullable|file|mimes:xlsx,xls,csv',
|
||||
'bukti3' => 'nullable|file|mimes:pdf',
|
||||
]);
|
||||
@@ -165,7 +176,7 @@ class FormEntertainmentPresentationController extends Controller
|
||||
'name' => 'required',
|
||||
'alamat' => 'required',
|
||||
'nik_or_npwp' => 'required',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,heic,heif|max:2048',
|
||||
'bukti2' => 'nullable|file|mimes:xlsx,xls,csv',
|
||||
'bukti3' => 'nullable|file|mimes:pdf',
|
||||
]);
|
||||
|
||||
@@ -26,14 +26,25 @@ class FormMeetingSeminarController extends Controller
|
||||
{
|
||||
$this->checkAuthorization(auth()->user(), ['forms.meeting.view']);
|
||||
|
||||
// get user role
|
||||
// get user role
|
||||
$role = auth()->user()->getRoleNames()[0];
|
||||
$forms = null;
|
||||
$forms = FormMeetingSeminar::get();
|
||||
|
||||
if($role == 'Marketing Information System' || $role == 'superadmin') {
|
||||
$forms = FormMeetingSeminar::get();
|
||||
} else {
|
||||
$forms = FormMeetingSeminar::where('user_id', auth()->user()->id)->get();
|
||||
if ($role == 'Admin Region') {
|
||||
$region_id = auth()->user()->getMyCabangAndRegionId()['region'];
|
||||
|
||||
if ($region_id) {
|
||||
$users = UserHasCabang::whereHas('cabang', function ($query) use ($region_id) {
|
||||
$query->where('region_id', $region_id);
|
||||
})->get();
|
||||
|
||||
$userIds = $users->pluck('user_id')->toArray();
|
||||
$forms = $forms->whereIn('user_id', $userIds);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$forms = $forms->where('user_id', auth()->user()->id);
|
||||
}
|
||||
|
||||
session()->put('redirect_url', route('forms.meeting'));
|
||||
@@ -57,7 +68,7 @@ class FormMeetingSeminarController extends Controller
|
||||
'allowance' => 'required',
|
||||
'transport_ankot' => 'required',
|
||||
'hotel' => 'required',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,heic,heif|max:2048',
|
||||
'bukti2' => 'nullable|file|mimes:xlsx,xls,csv',
|
||||
'bukti3' => 'nullable|file|mimes:pdf',
|
||||
]);
|
||||
@@ -154,7 +165,7 @@ class FormMeetingSeminarController extends Controller
|
||||
'allowance' => 'required',
|
||||
'transport_ankot' => 'required',
|
||||
'hotel' => 'required',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,heic,heif|max:2048',
|
||||
'bukti2' => 'nullable|file|mimes:xlsx,xls,csv',
|
||||
'bukti3' => 'nullable|file|mimes:pdf',
|
||||
]);
|
||||
|
||||
@@ -30,10 +30,24 @@ class FormOtherController extends Controller
|
||||
$role = auth()->user()->getRoleNames()[0];
|
||||
$forms = null;
|
||||
|
||||
if($role == 'Marketing Information System' || $role == 'superadmin') {
|
||||
$forms = FormOthers::get();
|
||||
} else {
|
||||
$forms = FormOthers::where('user_id', auth()->user()->id)->get();
|
||||
// get user role
|
||||
$role = auth()->user()->getRoleNames()[0];
|
||||
$forms = FormOthers::get();
|
||||
|
||||
if ($role == 'Admin Region') {
|
||||
$region_id = auth()->user()->getMyCabangAndRegionId()['region'];
|
||||
|
||||
if ($region_id) {
|
||||
$users = UserHasCabang::whereHas('cabang', function ($query) use ($region_id) {
|
||||
$query->where('region_id', $region_id);
|
||||
})->get();
|
||||
|
||||
$userIds = $users->pluck('user_id')->toArray();
|
||||
$forms = $forms->whereIn('user_id', $userIds);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$forms = $forms->where('user_id', auth()->user()->id);
|
||||
}
|
||||
|
||||
session()->put('redirect_url', route('forms.other'));
|
||||
@@ -60,7 +74,7 @@ class FormOtherController extends Controller
|
||||
'tanggal' => 'required|date',
|
||||
'keterangan' => 'required',
|
||||
'total' => 'required',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,heic,heif|max:2048',
|
||||
'bukti2' => 'nullable|file|mimes:xlsx,xls,csv',
|
||||
'bukti3' => 'nullable|file|mimes:pdf',
|
||||
]);
|
||||
@@ -159,7 +173,7 @@ class FormOtherController extends Controller
|
||||
'tanggal' => 'required|date',
|
||||
'keterangan' => 'required',
|
||||
'total' => 'required',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,heic,heif|max:2048',
|
||||
'bukti2' => 'nullable|file|mimes:xlsx,xls,csv',
|
||||
'bukti3' => 'nullable|file|mimes:pdf',
|
||||
]);
|
||||
|
||||
@@ -28,12 +28,22 @@ class FormUpCountryController extends Controller
|
||||
|
||||
// get user role
|
||||
$role = auth()->user()->getRoleNames()[0];
|
||||
$forms = null;
|
||||
$forms = FormUpCountry::get();
|
||||
|
||||
if($role == 'Marketing Information System' || $role == 'superadmin') {
|
||||
$forms = FormUpCountry::with('rayon')->get();
|
||||
} else {
|
||||
$forms = FormUpCountry::with('rayon')->where('user_id', auth()->user()->id)->get();
|
||||
if ($role == 'Admin Region') {
|
||||
$region_id = auth()->user()->getMyCabangAndRegionId()['region'];
|
||||
|
||||
if ($region_id) {
|
||||
$users = UserHasCabang::whereHas('cabang', function ($query) use ($region_id) {
|
||||
$query->where('region_id', $region_id);
|
||||
})->get();
|
||||
|
||||
$userIds = $users->pluck('user_id')->toArray();
|
||||
$forms = $forms->whereIn('user_id', $userIds);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$forms = $forms->where('user_id', auth()->user()->id);
|
||||
}
|
||||
|
||||
session()->put('redirect_url', route('forms.up-country'));
|
||||
@@ -63,7 +73,7 @@ class FormUpCountryController extends Controller
|
||||
'allowance' => 'required',
|
||||
'transport_dalkot' => 'required',
|
||||
'transport_ankot' => 'required',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,heic,heif|max:2048',
|
||||
'bukti2' => 'nullable|file|mimes:xlsx,xls,csv',
|
||||
'bukti3' => 'nullable|file|mimes:pdf',
|
||||
]);
|
||||
@@ -171,7 +181,7 @@ class FormUpCountryController extends Controller
|
||||
'transport_dalkot' => 'required',
|
||||
'transport_ankot' => 'required',
|
||||
'hotel' => 'required',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,heic,heif|max:2048',
|
||||
'bukti2' => 'nullable|file|mimes:xlsx,xls,csv',
|
||||
'bukti3' => 'nullable|file|mimes:pdf',
|
||||
]);
|
||||
|
||||
@@ -28,12 +28,22 @@ class FormVehicleController extends Controller
|
||||
|
||||
// get user role
|
||||
$role = auth()->user()->getRoleNames()[0];
|
||||
$forms = null;
|
||||
$forms = FormVehicleRunningCost::get();
|
||||
|
||||
if($role == 'Marketing Information System' || $role == 'superadmin') {
|
||||
$forms = FormVehicleRunningCost::get();
|
||||
} else {
|
||||
$forms = FormVehicleRunningCost::where('user_id', auth()->user()->id)->get();
|
||||
if ($role == 'Admin Region') {
|
||||
$region_id = auth()->user()->getMyCabangAndRegionId()['region'];
|
||||
|
||||
if ($region_id) {
|
||||
$users = UserHasCabang::whereHas('cabang', function ($query) use ($region_id) {
|
||||
$query->where('region_id', $region_id);
|
||||
})->get();
|
||||
|
||||
$userIds = $users->pluck('user_id')->toArray();
|
||||
$forms = $forms->whereIn('user_id', $userIds);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$forms = $forms->where('user_id', auth()->user()->id);
|
||||
}
|
||||
|
||||
session()->put('redirect_url', route('forms.vehicle'));
|
||||
@@ -61,7 +71,7 @@ class FormVehicleController extends Controller
|
||||
'tipe_bensin' => 'required|in:pertalite,pertamax',
|
||||
'nopol' => 'required',
|
||||
'keterangan' => 'required',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,heic,heif|max:2048',
|
||||
'bukti2' => 'nullable|file|mimes:xlsx,xls,csv',
|
||||
'bukti3' => 'nullable|file|mimes:pdf',
|
||||
]);
|
||||
@@ -165,7 +175,7 @@ class FormVehicleController extends Controller
|
||||
'tipe_bensin' => 'required|in:pertalite,pertamax',
|
||||
'nopol' => 'required',
|
||||
'keterangan' => 'required',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||
'bukti1' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,heic,heif|max:2048',
|
||||
'bukti2' => 'nullable|file|mimes:xlsx,xls,csv',
|
||||
'bukti3' => 'nullable|file|mimes:pdf',
|
||||
]);
|
||||
|
||||
@@ -11,6 +11,8 @@ class CategoryController extends Controller
|
||||
public function index()
|
||||
{
|
||||
$this->checkAuthorization(auth()->user(), ['category.view']);
|
||||
session()->put('redirect_url', route('admin.category.index'));
|
||||
|
||||
return view('backend.pages.master.category.index', [
|
||||
'categories' => Kategori::all()
|
||||
]);
|
||||
@@ -36,7 +38,7 @@ class CategoryController extends Controller
|
||||
]);
|
||||
|
||||
session()->flash('success', 'Category has been created.');
|
||||
return redirect()->route('admin.category.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
@@ -61,7 +63,7 @@ class CategoryController extends Controller
|
||||
]);
|
||||
|
||||
session()->flash('success', 'Category has been updated.');
|
||||
return redirect()->route('admin.category.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
@@ -70,6 +72,6 @@ class CategoryController extends Controller
|
||||
Kategori::findOrfail($id)->delete();
|
||||
|
||||
session()->flash('success', 'Category has been deleted.');
|
||||
return redirect()->route('admin.category.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,8 @@ class CostCentreController extends Controller
|
||||
public function index()
|
||||
{
|
||||
$this->checkAuthorization(auth()->user(), ['cost.view']);
|
||||
session()->put('redirect_url', route('admin.cost.index'));
|
||||
|
||||
return view('backend.pages.master.cost.index', [
|
||||
'costs' => CostCentre::all()
|
||||
]);
|
||||
@@ -36,7 +38,7 @@ class CostCentreController extends Controller
|
||||
]);
|
||||
|
||||
session()->flash('success', 'Cost Centre has been created.');
|
||||
return redirect()->route('admin.cost.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
@@ -61,7 +63,7 @@ class CostCentreController extends Controller
|
||||
]);
|
||||
|
||||
session()->flash('success', 'Cost has been updated.');
|
||||
return redirect()->route('admin.cost.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
@@ -70,6 +72,6 @@ class CostCentreController extends Controller
|
||||
CostCentre::findOrfail($id)->delete();
|
||||
|
||||
session()->flash('success', 'Cost has been deleted.');
|
||||
return redirect()->route('admin.cost.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,8 @@ class RayonController extends Controller
|
||||
public function index()
|
||||
{
|
||||
$this->checkAuthorization(auth()->user(), ['rayon.view']);
|
||||
session()->put('redirect_url', route('admin.rayon.index'));
|
||||
|
||||
return view('backend.pages.master.rayon.index', [
|
||||
'rayons' => Rayon::all()
|
||||
]);
|
||||
@@ -36,7 +38,7 @@ class RayonController extends Controller
|
||||
]);
|
||||
|
||||
session()->flash('success', 'Rayon has been created.');
|
||||
return redirect()->route('admin.rayon.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
@@ -61,7 +63,7 @@ class RayonController extends Controller
|
||||
]);
|
||||
|
||||
session()->flash('success', 'Rayon has been updated.');
|
||||
return redirect()->route('admin.rayon.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
@@ -70,6 +72,6 @@ class RayonController extends Controller
|
||||
Rayon::findOrfail($id)->delete();
|
||||
|
||||
session()->flash('success', 'Rayon has been deleted.');
|
||||
return redirect()->route('admin.rayon.index');
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
@@ -104,4 +104,55 @@ class Admin extends Authenticatable
|
||||
'region_head' => null,
|
||||
];
|
||||
}
|
||||
|
||||
public function getMyCabangAndRegion()
|
||||
{
|
||||
// Fetch the UserHasCabang entry for this admin
|
||||
$userHasCabang = $this->hasOne(UserHasCabang::class, 'user_id')->with('cabang')->first();
|
||||
|
||||
if ($userHasCabang && $userHasCabang->cabang) {
|
||||
$cabang = $userHasCabang->cabang;
|
||||
|
||||
// Fetch the region
|
||||
$region = $cabang->region;
|
||||
|
||||
return [
|
||||
'cabang' => $cabang ? $cabang->name : '-',
|
||||
'region' => $region ? $region->name : '-',
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'cabang' => '-',
|
||||
'region' => '-',
|
||||
];
|
||||
}
|
||||
|
||||
public function getMyCabangAndRegionId()
|
||||
{
|
||||
// Fetch the UserHasCabang entry for this admin
|
||||
$userHasCabang = $this->hasOne(UserHasCabang::class, 'user_id')->with('cabang')->first();
|
||||
|
||||
if ($userHasCabang && $userHasCabang->cabang) {
|
||||
$cabang = $userHasCabang->cabang;
|
||||
|
||||
// Fetch the region
|
||||
$region = $cabang->region;
|
||||
|
||||
return [
|
||||
'cabang' => $cabang ? $cabang->id : '-',
|
||||
'region' => $region ? $region->id : '-',
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'cabang' => '-',
|
||||
'region' => '-',
|
||||
];
|
||||
}
|
||||
|
||||
public function cabang()
|
||||
{
|
||||
return $this->hasOne(UserHasCabang::class, 'user_id')->with('cabang');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user