added notifications

This commit is contained in:
Jagad R R
2025-01-17 16:17:53 +07:00
parent 47eb2950ef
commit f4a8972a1d
13 changed files with 344 additions and 9 deletions
@@ -5,11 +5,7 @@ namespace App\Http\Controllers\Forms;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\FormOthers;
use App\Models\Rayon;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
use App\Models\Region;
use App\Models\Cabang;
use App\Models\UserHasCabang;
use App\Models\Kategori;
use Illuminate\Support\Str;
@@ -25,6 +21,7 @@ use App\Helpers\AuditTrailHelper;
use App\Rules\FileType;
use App\Models\Admin;
use App\Helpers\BudgetHelper;
use App\Helpers\NotificationHelper;
class FormOtherController extends Controller
{
@@ -173,6 +170,7 @@ class FormOtherController extends Controller
$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];
$receiver_ids = [];
// Collect all recipients (emails and phone numbers) for the specified roles
foreach ($roles as $role) {
@@ -190,12 +188,14 @@ class FormOtherController extends Controller
foreach ($users as $user) {
$recipients[] = $user->email;
$phoneNumbers[] = $user->phone;
$receiver_ids[] = $user->id;
}
}
// Remove duplicate email addresses, if any
$recipients = array_unique($recipients);
$phoneNumbers = array_unique($phoneNumbers);
$receiver_ids = array_unique($receiver_ids);
// Generate URL and send WhatsApp notification
$url = route('forms.other.view', $form->id);
@@ -210,6 +210,9 @@ class FormOtherController extends Controller
$url
));
// Send notification to the user
NotificationHelper::newExpense($form->user_id, $expense_number, $receiver_ids);
AuditTrailHelper::AddAuditTrail('Insert', 'Insert New Expense at Form Other (' . $expense_number . ')');
session()->flash('success', 'Form has been created.');
return redirect()->back();
@@ -298,7 +301,6 @@ class FormOtherController extends Controller
'status' => 'Approved 1',
]);
$heads = $form->user->getCabangAndRegionHead();
$name = $form->user->name;
$expense_number = $form->expense_number;
$tanggal = $form->created_at;
@@ -308,6 +310,7 @@ class FormOtherController extends Controller
$roles = ['Marketing Information System', 'Admin Region', 'Area Manager Cabang'];
$recipients = [$form->user->email, auth()->user()->email];
$phoneNumbers = [$form->user->phone, auth()->user()->phone];
$receiver_ids = [];
$cabang_id = UserHasCabang::where('user_id', $form->user_id)->first()->cabang_id;
foreach ($roles as $role) {
@@ -325,12 +328,14 @@ class FormOtherController extends Controller
foreach ($users as $user) {
$recipients[] = $user->email;
$phoneNumbers[] = $user->phone;
$receiver_ids[] = $user->id;
}
}
// Remove duplicate data, if any
$recipients = array_unique($recipients);
$phoneNumbers = array_unique($phoneNumbers);
$receiver_ids = array_unique($receiver_ids);
// send whatsapp message
$url = route('forms.other.view', $form->id);
@@ -345,6 +350,8 @@ class FormOtherController extends Controller
$url
));
NotificationHelper::approveExpense($form->user_id, $expense_number, $receiver_ids);
AuditTrailHelper::AddAuditTrail('Approve', 'Approve Expense at Form Other (' . $form->expense_number . ')');
session()->flash('success', 'Form has been approved.');
return redirect()->back();
@@ -369,6 +376,7 @@ class FormOtherController extends Controller
$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];
$receiver_ids = [];
$cabang_id = UserHasCabang::where('user_id', $form->user_id)->first()->cabang_id;
@@ -387,12 +395,14 @@ class FormOtherController extends Controller
foreach ($users as $user) {
$recipients[] = $user->email;
$phoneNumbers[] = $user->phone;
$receiver_ids[] = $user->id;
}
}
// Remove duplicate data, if any
$recipients = array_unique($recipients);
$phoneNumbers = array_unique($phoneNumbers);
$receiver_ids = array_unique($receiver_ids);
// send whatsapp message
$url = route('forms.other.view', $form->id);
@@ -407,6 +417,8 @@ class FormOtherController extends Controller
$url
));
NotificationHelper::approve2Expense($form->user_id, $expense_number, $receiver_ids);
AuditTrailHelper::AddAuditTrail('Approve', 'Approve Expense at Form Other (' . $form->expense_number . ')');
session()->flash('success', 'Form has been approved.');
return redirect()->back();