revised notification for new approval system

This commit is contained in:
Jagad R R
2025-01-16 16:42:06 +07:00
parent 45dd0a67b6
commit 47eb2950ef
6 changed files with 350 additions and 159 deletions
@@ -236,10 +236,10 @@ class FormUpCountryController extends Controller
'status' => 'On Progress',
]);
// Send notification to MIS and Admin Region
$roles = ['Marketing Information System', 'Admin Region'];
$recipients = [];
$phoneNumbers = [];
// Send notification to MIS and Admin Region and Area Manager Cabang
$roles = ['Marketing Information System', 'Admin Region', 'Area Manager Cabang', 'Marketing Operational Manager Region'];
$recipients = [$form->user->email, auth()->user()->email];
$phoneNumbers = [$form->user->phone, auth()->user()->phone];
$name = auth()->user()->name;
$tanggal = $form->tanggal;
@@ -247,7 +247,17 @@ class FormUpCountryController extends Controller
// Collect all recipients (emails and phone numbers) for the specified roles
foreach ($roles as $role) {
$users = Admin::getUserByRoleName($role);
$users = Admin::getUserByRoleName($role)->filter(function ($user) use ($role, $cabang) {
// Include 'Marketing Information System' without cabang filtering
if ($role === 'Marketing Information System') {
return true;
}
// Ensure user has a cabang and matches the current cabang ID
return $user->cabang && $user->cabang->cabang->id === $cabang->id;
});
// Extract emails and phone numbers
foreach ($users as $user) {
$recipients[] = $user->email;
$phoneNumbers[] = $user->phone;
@@ -256,6 +266,7 @@ class FormUpCountryController extends Controller
// Remove duplicate email addresses, if any
$recipients = array_unique($recipients);
$phoneNumbers = array_unique($phoneNumbers);
// Generate URL and send WhatsApp notification
$url = route('forms.up-country.view', $form->id);
@@ -423,24 +434,33 @@ class FormUpCountryController extends Controller
'status' => 'Approved 1',
]);
$heads = $form->user->getCabangAndRegionHead();
$name = $form->user->name;
$expense_number = $form->expense_number;
$tanggal = $form->tanggal;
$total = $form->total;
// Collect all recipients
$roles = ['Marketing Information System', 'Admin Region', 'Area Manager Cabang'];
$recipients = [$form->user->email, auth()->user()->email];
$phoneNumbers = [$form->user->phone, auth()->user()->phone];
if ($heads['cabang_head']) {
$recipients[] = $heads['cabang_head']['email'];
$phoneNumbers[] = $heads['cabang_head']['phone'];
}
$cabang_id = UserHasCabang::where('user_id', $form->user_id)->first()->cabang_id;
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;
}
if ($heads['region_head']) {
$recipients[] = $heads['region_head']['email'];
$phoneNumbers[] = $heads['region_head']['phone'];
// Ensure user has a cabang and matches the current cabang ID
return $user->cabang && $user->cabang->cabang->id === $cabang_id;
});
// Extract emails and phone numbers
foreach ($users as $user) {
$recipients[] = $user->email;
$phoneNumbers[] = $user->phone;
}
}
// Remove duplicate data, if any
@@ -476,24 +496,33 @@ class FormUpCountryController extends Controller
'status' => 'Approved 2',
]);
$heads = $form->user->getCabangAndRegionHead();
$name = $form->user->name;
$expense_number = $form->expense_number;
$tanggal = $form->tanggal;
$total = $form->total;
// Collect all recipients
$roles = ['Marketing Information System', 'Admin Region', 'Area Manager Cabang', 'Marketing Operational Manager Region'];
$recipients = [$form->user->email, auth()->user()->email];
$phoneNumbers = [$form->user->phone, auth()->user()->phone];
if ($heads['cabang_head']) {
$recipients[] = $heads['cabang_head']['email'];
$phoneNumbers[] = $heads['cabang_head']['phone'];
}
$cabang_id = UserHasCabang::where('user_id', $form->user_id)->first()->cabang_id;
if ($heads['region_head']) {
$recipients[] = $heads['region_head']['email'];
$phoneNumbers[] = $heads['region_head']['phone'];
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;
}
// Ensure user has a cabang and matches the current cabang ID
return $user->cabang && $user->cabang->cabang->id === $cabang_id;
});
// Extract emails and phone numbers
foreach ($users as $user) {
$recipients[] = $user->email;
$phoneNumbers[] = $user->phone;
}
}
// Remove duplicate data, if any
@@ -553,24 +582,31 @@ class FormUpCountryController extends Controller
'approved_total' => array_sum($approved_data),
]);
$heads = $form->user->getCabangAndRegionHead();
$name = $form->user->name;
$expense_number = $form->expense_number;
$tanggal = $form->tanggal;
$total = $form->approved_total;
// Collect all recipients
$roles = ['Head of Sales Marketing', 'Marketing Operational Manager Region'];
$recipients = [$form->user->email, auth()->user()->email];
$phoneNumbers = [$form->user->phone, auth()->user()->phone];
if ($heads['cabang_head']) {
$recipients[] = $heads['cabang_head']['email'];
$phoneNumbers[] = $heads['cabang_head']['phone'];
}
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;
}
if ($heads['region_head']) {
$recipients[] = $heads['region_head']['email'];
$phoneNumbers[] = $heads['region_head']['phone'];
// Ensure user has a cabang and matches the current cabang ID
return $user->cabang && $user->cabang->cabang->id === $cabang_id;
});
// Extract emails and phone numbers
foreach ($users as $user) {
$recipients[] = $user->email;
$phoneNumbers[] = $user->phone;
}
}
// Remove duplicate email addresses, if any