From a4dff44e360518bd86551c6825ab948ee793779b Mon Sep 17 00:00:00 2001 From: Jagad R R Date: Tue, 4 Mar 2025 12:24:36 +0700 Subject: [PATCH] update notif --- ...ormEntertainmentPresentationController.php | 99 ++++++++++++----- .../Forms/FormMeetingSeminarController.php | 99 ++++++++++++----- .../Controllers/Forms/FormOtherController.php | 102 ++++++++++++------ .../Forms/FormUpCountryController.php | 99 ++++++++++++----- .../Forms/FormVehicleController.php | 100 ++++++++++++----- 5 files changed, 357 insertions(+), 142 deletions(-) diff --git a/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php b/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php index acd4601..a5a90d2 100644 --- a/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php +++ b/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php @@ -192,18 +192,29 @@ class FormEntertainmentPresentationController extends Controller $receiver_ids = []; // Collect all recipients (emails and phone numbers) for the specified roles + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang) { - // Include 'Marketing Information System' without cabang filtering + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { if ($role === 'Marketing Information System') { - return true; + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang->id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -343,19 +354,30 @@ class FormEntertainmentPresentationController extends Controller $recipients = [$form->user->email, auth()->user()->email]; $phoneNumbers = [$form->user->phone, auth()->user()->phone]; - $cabang_id = UserHasCabang::where('user_id', $form->user_id)->first()->cabang_id; + // Collect all recipients (emails and phone numbers) for the specified roles + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { if ($role === 'Marketing Information System') { - return true; + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -416,20 +438,30 @@ class FormEntertainmentPresentationController extends Controller $recipients = [$form->user->email, auth()->user()->email]; $phoneNumbers = [$form->user->phone, auth()->user()->phone]; - $cabang_id = UserHasCabang::where('user_id', $form->user_id)->first()->cabang_id; + // Collect all recipients (emails and phone numbers) for the specified roles + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering - if ($role === 'Marketing Information System') { - return true; + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { + if ($role === 'Marketing Information System' || $role === 'Head of Sales Marketing') { + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -501,18 +533,29 @@ class FormEntertainmentPresentationController extends Controller $recipients = [$form->user->email, auth()->user()->email]; $phoneNumbers = [$form->user->phone, auth()->user()->phone]; + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering - if ($role === 'Marketing Information System') { - return true; + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { + if ($role === 'Marketing Information System' || $role === 'Head of Sales Marketing') { + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; diff --git a/app/Http/Controllers/Forms/FormMeetingSeminarController.php b/app/Http/Controllers/Forms/FormMeetingSeminarController.php index 9eeeda2..f2496e4 100644 --- a/app/Http/Controllers/Forms/FormMeetingSeminarController.php +++ b/app/Http/Controllers/Forms/FormMeetingSeminarController.php @@ -226,18 +226,29 @@ class FormMeetingSeminarController extends Controller $receiver_ids = []; // Collect all recipients (emails and phone numbers) for the specified roles + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang) { - // Include 'Marketing Information System' without cabang filtering + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { if ($role === 'Marketing Information System') { - return true; + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang->id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -421,19 +432,30 @@ class FormMeetingSeminarController extends Controller $phoneNumbers = [$form->user->phone, auth()->user()->phone]; $receiver_ids = []; - $cabang_id = UserHasCabang::where('user_id', $form->user_id)->first()->cabang_id; + // Collect all recipients (emails and phone numbers) for the specified roles + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { if ($role === 'Marketing Information System') { - return true; + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -494,20 +516,30 @@ class FormMeetingSeminarController extends Controller $phoneNumbers = [$form->user->phone, auth()->user()->phone]; $receiver_ids = []; - $cabang_id = UserHasCabang::where('user_id', $form->user_id)->first()->cabang_id; + // Collect all recipients (emails and phone numbers) for the specified roles + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering - if ($role === 'Marketing Information System') { - return true; + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { + if ($role === 'Marketing Information System' || $role === 'Head of Sales Marketing') { + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -579,18 +611,29 @@ class FormMeetingSeminarController extends Controller $recipients = [$form->user->email, auth()->user()->email]; $phoneNumbers = [$form->user->phone, auth()->user()->phone]; + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering - if ($role === 'Marketing Information System') { - return true; + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { + if ($role === 'Marketing Information System' || $role === 'Head of Sales Marketing') { + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; diff --git a/app/Http/Controllers/Forms/FormOtherController.php b/app/Http/Controllers/Forms/FormOtherController.php index b72449d..32fc096 100644 --- a/app/Http/Controllers/Forms/FormOtherController.php +++ b/app/Http/Controllers/Forms/FormOtherController.php @@ -22,6 +22,7 @@ use App\Rules\FileType; use App\Models\Admin; use App\Helpers\BudgetHelper; use App\Helpers\NotificationHelper; +use App\Models\Cabang; use Illuminate\Support\Facades\Log; class FormOtherController extends Controller @@ -186,18 +187,29 @@ class FormOtherController extends Controller $receiver_ids = []; // Collect all recipients (emails and phone numbers) for the specified roles + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang) { - // Include 'Marketing Information System' without cabang filtering - if ($role === 'Marketing Information System' || $role === 'Admin Region') { - return true; + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { + if ($role === 'Marketing Information System') { + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang->id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -332,19 +344,29 @@ class FormOtherController extends Controller $phoneNumbers = [$form->user->phone, auth()->user()->phone]; $receiver_ids = []; - $cabang_id = UserHasCabang::where('user_id', $form->user_id)->first()->cabang_id; + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering - if ($role === 'Marketing Information System' || $role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { - return true; + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { + if ($role === 'Marketing Information System') { + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -405,20 +427,29 @@ class FormOtherController extends Controller $phoneNumbers = [$form->user->phone, auth()->user()->phone]; $receiver_ids = []; - $cabang_id = UserHasCabang::where('user_id', $form->user_id)->first()->cabang_id; + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering - if ($role === 'Marketing Information System' || $role === 'Head of Sales Marketing' || $role === 'Marketing Operational Manager Region') { - return true; + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { + if ($role === 'Marketing Information System' || $role === 'Head of Sales Marketing') { + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -490,18 +521,29 @@ class FormOtherController extends Controller $recipients = [$form->user->email, auth()->user()->email]; $phoneNumbers = [$form->user->phone, auth()->user()->phone]; + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering - if ($role === 'Marketing Information System') { - return true; + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { + if ($role === 'Marketing Information System' || $role === 'Head of Sales Marketing') { + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; diff --git a/app/Http/Controllers/Forms/FormUpCountryController.php b/app/Http/Controllers/Forms/FormUpCountryController.php index b83e377..c439a23 100644 --- a/app/Http/Controllers/Forms/FormUpCountryController.php +++ b/app/Http/Controllers/Forms/FormUpCountryController.php @@ -257,18 +257,29 @@ class FormUpCountryController extends Controller $total = $form->total; // Collect all recipients (emails and phone numbers) for the specified roles + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang) { - // Include 'Marketing Information System' without cabang filtering + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { if ($role === 'Marketing Information System') { - return true; + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang->id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -483,19 +494,30 @@ class FormUpCountryController extends Controller $phoneNumbers = [$form->user->phone, auth()->user()->phone]; $receiver_ids = []; - $cabang_id = UserHasCabang::where('user_id', $form->user_id)->first()->cabang_id; + // Collect all recipients (emails and phone numbers) for the specified roles + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { if ($role === 'Marketing Information System') { - return true; + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -555,20 +577,30 @@ class FormUpCountryController extends Controller $phoneNumbers = [$form->user->phone, auth()->user()->phone]; $receiver_ids = []; - $cabang_id = UserHasCabang::where('user_id', $form->user_id)->first()->cabang_id; + // Collect all recipients (emails and phone numbers) for the specified roles + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering - if ($role === 'Marketing Information System') { - return true; + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { + if ($role === 'Marketing Information System' || $role === 'Head of Sales Marketing') { + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -639,18 +671,29 @@ class FormUpCountryController extends Controller $recipients = [$form->user->email, auth()->user()->email]; $phoneNumbers = [$form->user->phone, auth()->user()->phone]; + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering - if ($role === 'Marketing Information System') { - return true; + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { + if ($role === 'Marketing Information System' || $role === 'Head of Sales Marketing') { + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; diff --git a/app/Http/Controllers/Forms/FormVehicleController.php b/app/Http/Controllers/Forms/FormVehicleController.php index ae395e1..f547847 100644 --- a/app/Http/Controllers/Forms/FormVehicleController.php +++ b/app/Http/Controllers/Forms/FormVehicleController.php @@ -193,18 +193,29 @@ class FormVehicleController extends Controller $receiver_ids = []; // Collect all recipients (emails and phone numbers) for the specified roles + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang) { - // Include 'Marketing Information System' without cabang filtering + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { if ($role === 'Marketing Information System') { - return true; + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang->id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -345,19 +356,30 @@ class FormVehicleController extends Controller $phoneNumbers = [$form->user->phone, auth()->user()->phone]; $receiver_ids = []; - $cabang_id = UserHasCabang::where('user_id', $form->user_id)->first()->cabang_id; + // Collect all recipients (emails and phone numbers) for the specified roles + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { if ($role === 'Marketing Information System') { - return true; + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -418,20 +440,30 @@ class FormVehicleController extends Controller $phoneNumbers = [$form->user->phone, auth()->user()->phone]; $receiver_ids = []; - $cabang_id = UserHasCabang::where('user_id', $form->user_id)->first()->cabang_id; + // Collect all recipients (emails and phone numbers) for the specified roles + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering - if ($role === 'Marketing Information System') { - return true; + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { + if ($role === 'Marketing Information System' || $role === 'Head of Sales Marketing') { + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone; @@ -503,18 +535,30 @@ class FormVehicleController extends Controller $recipients = [$form->user->email, auth()->user()->email]; $phoneNumbers = [$form->user->phone, auth()->user()->phone]; + // Collect all recipients (emails and phone numbers) for the specified roles + $cabang = UserHasCabang::where('user_id', $form->user_id)->first(); + $cabang_id = $cabang ? $cabang->cabang_id : null; + + $cabangData = $cabang_id ? Cabang::where('id', $cabang_id)->first() : null; + $region_id = $cabangData ? $cabangData->region->id : null; + foreach ($roles as $role) { - $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id) { - // Include 'Marketing Information System' without cabang filtering - if ($role === 'Marketing Information System') { - return true; + $users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang_id, $region_id) { + if ($role === 'Marketing Information System' || $role === 'Head of Sales Marketing') { + return true; // Tidak ada filter cabang untuk peran ini + } + + if (!$user->cabang || !$user->cabang->cabang) { + return false; // Pastikan user memiliki cabang } - // Ensure user has a cabang and matches the current cabang ID - return $user->cabang && $user->cabang->cabang->id === $cabang_id; + if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') { + return $user->cabang->cabang->region->id === $region_id; + } + + return $user->cabang->cabang->id === $cabang_id; }); - // Extract emails and phone numbers foreach ($users as $user) { $recipients[] = $user->email; $phoneNumbers[] = $user->phone;