diff --git a/app/Helpers/WhatsappHelper.php b/app/Helpers/WhatsappHelper.php index 6a3fe68..ed06a60 100644 --- a/app/Helpers/WhatsappHelper.php +++ b/app/Helpers/WhatsappHelper.php @@ -59,4 +59,30 @@ class WhatsappHelper return $response->getBody()->getContents(); } + + public static function finalApprove($phones, $expense_number) + { + $client = new Client(); + + $data = []; + foreach ($phones as $phone) { + $data[] = [ + 'phone' => $phone, + 'message' => 'Pengajuan pengeluaran anda dengan nomor *' . $expense_number . '* telah ditutup karena telah selesai diproses. Silahkan buka website untuk melihat detailnya.', + 'source' => 'web' + ]; + } + + $response = $client->post(env('WABLAS_HOST') . '/api/v2/send-message', [ + 'headers' => [ + 'Authorization' => env('WABLAS_TOKEN'), + 'Content-Type' => 'application/json' + ], + 'json' => [ + 'data' => $data + ] + ]); + + return $response->getBody()->getContents(); + } } diff --git a/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php b/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php index f6a6d0e..6934204 100644 --- a/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php +++ b/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php @@ -17,6 +17,7 @@ use Illuminate\Support\Str; use Illuminate\Support\Facades\Mail; use App\Mail\ExpenseApproved; use App\Mail\ExpenseRejected; +use App\Mail\FinalApprove; use App\Helpers\WhatsappHelper; class FormEntertainmentPresentationController extends Controller @@ -305,6 +306,41 @@ class FormEntertainmentPresentationController extends Controller 'status' => 'Closed' ]); + $heads = $form->user->getCabangAndRegionHead(); + $name = $form->user->name; + $expense_number = $form->expense_number; + $tanggal = $form->tanggal; + $total = $form->total; + + // Collect all recipients + $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']; + } + + if ($heads['region_head']) { + $recipients[] = $heads['region_head']['email']; + $phoneNumbers[] = $heads['region_head']['phone']; + } + + // Remove duplicate email addresses, if any + $recipients = array_unique($recipients); + $phoneNumbers = array_unique($phoneNumbers); + + // Send bulk email + Mail::to($recipients)->send(new FinalApprove( + $name, + $expense_number, + $tanggal, + $total + )); + + // send whatsapp message + WhatsappHelper::finalApprove($phoneNumbers, $expense_number); + session()->flash('success', 'Form has been final approved.'); return redirect()->back(); } diff --git a/app/Http/Controllers/Forms/FormMeetingSeminarController.php b/app/Http/Controllers/Forms/FormMeetingSeminarController.php index 14d2822..696865b 100644 --- a/app/Http/Controllers/Forms/FormMeetingSeminarController.php +++ b/app/Http/Controllers/Forms/FormMeetingSeminarController.php @@ -17,6 +17,7 @@ use Illuminate\Support\Str; use Illuminate\Support\Facades\Mail; use App\Mail\ExpenseApproved; use App\Mail\ExpenseRejected; +use App\Mail\FinalApprove; use App\Helpers\WhatsappHelper; class FormMeetingSeminarController extends Controller @@ -291,6 +292,41 @@ class FormMeetingSeminarController extends Controller 'status' => 'Closed' ]); + $heads = $form->user->getCabangAndRegionHead(); + $name = $form->user->name; + $expense_number = $form->expense_number; + $tanggal = $form->tanggal; + $total = $form->total; + + // Collect all recipients + $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']; + } + + if ($heads['region_head']) { + $recipients[] = $heads['region_head']['email']; + $phoneNumbers[] = $heads['region_head']['phone']; + } + + // Remove duplicate email addresses, if any + $recipients = array_unique($recipients); + $phoneNumbers = array_unique($phoneNumbers); + + // Send bulk email + Mail::to($recipients)->send(new FinalApprove( + $name, + $expense_number, + $tanggal, + $total + )); + + // send whatsapp message + WhatsappHelper::finalApprove($phoneNumbers, $expense_number); + session()->flash('success', 'Form has been final approved.'); return redirect()->back(); } diff --git a/app/Http/Controllers/Forms/FormOtherController.php b/app/Http/Controllers/Forms/FormOtherController.php index c62050d..c98f58e 100644 --- a/app/Http/Controllers/Forms/FormOtherController.php +++ b/app/Http/Controllers/Forms/FormOtherController.php @@ -17,6 +17,7 @@ use App\Helpers\NextCloudHelper; use Illuminate\Support\Facades\Mail; use App\Mail\ExpenseApproved; use App\Mail\ExpenseRejected; +use App\Mail\FinalApprove; use App\Helpers\WhatsappHelper; class FormOtherController extends Controller @@ -296,6 +297,41 @@ class FormOtherController extends Controller 'status' => 'Closed' ]); + $heads = $form->user->getCabangAndRegionHead(); + $name = $form->user->name; + $expense_number = $form->expense_number; + $tanggal = $form->tanggal; + $total = $form->total; + + // Collect all recipients + $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']; + } + + if ($heads['region_head']) { + $recipients[] = $heads['region_head']['email']; + $phoneNumbers[] = $heads['region_head']['phone']; + } + + // Remove duplicate email addresses, if any + $recipients = array_unique($recipients); + $phoneNumbers = array_unique($phoneNumbers); + + // Send bulk email + Mail::to($recipients)->send(new FinalApprove( + $name, + $expense_number, + $tanggal, + $total + )); + + // send whatsapp message + WhatsappHelper::finalApprove($phoneNumbers, $expense_number); + session()->flash('success', 'Form has been final approved.'); return redirect()->back(); } diff --git a/app/Http/Controllers/Forms/FormUpCountryController.php b/app/Http/Controllers/Forms/FormUpCountryController.php index 3637854..16c7f74 100644 --- a/app/Http/Controllers/Forms/FormUpCountryController.php +++ b/app/Http/Controllers/Forms/FormUpCountryController.php @@ -17,6 +17,7 @@ use Illuminate\Support\Str; use Illuminate\Support\Facades\Mail; use App\Mail\ExpenseApproved; use App\Mail\ExpenseRejected; +use App\Mail\FinalApprove; use App\Helpers\WhatsappHelper; class FormUpCountryController extends Controller @@ -361,6 +362,41 @@ class FormUpCountryController extends Controller 'status' => 'Closed' ]); + $heads = $form->user->getCabangAndRegionHead(); + $name = $form->user->name; + $expense_number = $form->expense_number; + $tanggal = $form->tanggal; + $total = $form->total; + + // Collect all recipients + $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']; + } + + if ($heads['region_head']) { + $recipients[] = $heads['region_head']['email']; + $phoneNumbers[] = $heads['region_head']['phone']; + } + + // Remove duplicate email addresses, if any + $recipients = array_unique($recipients); + $phoneNumbers = array_unique($phoneNumbers); + + // Send bulk email + Mail::to($recipients)->send(new FinalApprove( + $name, + $expense_number, + $tanggal, + $total + )); + + // send whatsapp message + WhatsappHelper::finalApprove($phoneNumbers, $expense_number); + session()->flash('success', 'Form has been final approved.'); return redirect()->back(); } diff --git a/app/Http/Controllers/Forms/FormVehicleController.php b/app/Http/Controllers/Forms/FormVehicleController.php index 49d5f9c..683f4f7 100644 --- a/app/Http/Controllers/Forms/FormVehicleController.php +++ b/app/Http/Controllers/Forms/FormVehicleController.php @@ -17,6 +17,7 @@ use Illuminate\Support\Str; use Illuminate\Support\Facades\Mail; use App\Mail\ExpenseApproved; use App\Mail\ExpenseRejected; +use App\Mail\FinalApprove; use App\Helpers\WhatsappHelper; class FormVehicleController extends Controller @@ -306,6 +307,41 @@ class FormVehicleController extends Controller 'status' => 'Closed' ]); + $heads = $form->user->getCabangAndRegionHead(); + $name = $form->user->name; + $expense_number = $form->expense_number; + $tanggal = $form->tanggal; + $total = $form->total; + + // Collect all recipients + $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']; + } + + if ($heads['region_head']) { + $recipients[] = $heads['region_head']['email']; + $phoneNumbers[] = $heads['region_head']['phone']; + } + + // Remove duplicate email addresses, if any + $recipients = array_unique($recipients); + $phoneNumbers = array_unique($phoneNumbers); + + // Send bulk email + Mail::to($recipients)->send(new FinalApprove( + $name, + $expense_number, + $tanggal, + $total + )); + + // send whatsapp message + WhatsappHelper::finalApprove($phoneNumbers, $expense_number); + session()->flash('success', 'Form has been final approved.'); return redirect()->back(); } diff --git a/app/Mail/FinalApprove.php b/app/Mail/FinalApprove.php new file mode 100644 index 0000000..fedb1c2 --- /dev/null +++ b/app/Mail/FinalApprove.php @@ -0,0 +1,61 @@ + $this->name, + 'expense_number' => $this->expense_number, + 'tanggal' => $this->tanggal, + 'total' => $this->total, + ], + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/resources/views/mail/approved.blade.php b/resources/views/mail/approved.blade.php index 0b937d9..4ac914e 100644 --- a/resources/views/mail/approved.blade.php +++ b/resources/views/mail/approved.blade.php @@ -302,9 +302,6 @@  
- - - Expense Approved diff --git a/resources/views/mail/closed.blade.php b/resources/views/mail/closed.blade.php new file mode 100644 index 0000000..a8c9e97 --- /dev/null +++ b/resources/views/mail/closed.blade.php @@ -0,0 +1,362 @@ + + + + + + Expense Closed + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/views/mail/rejected.blade.php b/resources/views/mail/rejected.blade.php index 9e12216..2707d37 100644 --- a/resources/views/mail/rejected.blade.php +++ b/resources/views/mail/rejected.blade.php @@ -302,9 +302,6 @@  
- - - Expense Rejected