From e980446dfe0278aeea17b0b558ad5f5c41b6ffe1 Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Fri, 22 Nov 2024 09:14:54 +0700 Subject: [PATCH] Menambahkan kalau gagal ke kirim surat tender dari setiap kjpp yang kita klik maka update pesan error nya jika tidak ada pesan nya baru tambah pesan error nya --- app/Http/Controllers/TenderController.php | 43 ++++++++++++++++++----- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/TenderController.php b/app/Http/Controllers/TenderController.php index 9a2e05e..24fdebd 100644 --- a/app/Http/Controllers/TenderController.php +++ b/app/Http/Controllers/TenderController.php @@ -836,7 +836,7 @@ class TenderController extends Controller ]); } else if ($log1) { // Jika log ditemukan dan statusnya 'success' biarkan saja - $log1->update([ // Reset error_message saat status diubah menjadi success + $log1->update([ 'updated_at' => now(), ]); } else { @@ -858,18 +858,43 @@ class TenderController extends Controller return redirect()->route('tender.penawaran.ulang.index')->with('success', 'Email Penawaran Berhasil Terkirim!'); } catch (\Exception $e) { // Log email gagal - foreach ($kjpps as $email) { - PenawaranEmailTenderLog::create([ - 'penawaran_id' => $penawaran->id, - 'kjpp' => $dp1->kjpp->code . ' | ' . $dp1->kjpp->name, - 'to_email' => $email, - 'subject' => $subject, - 'body_pdf' => $body_pdf, + $log = PenawaranEmailTenderLog::where('penawaran_id', $penawaran->id) + ->where('to_email', $email) + ->where('status', 'success') + ->first(); + + $log1 = PenawaranEmailTenderLog::where('penawaran_id', $penawaran->id) + ->where('to_email', $email) + ->where('status', 'failed') + ->first(); + + if ($log) { + // Jika log ditemukan dan statusnya 'success', update status menjadi 'failed' + $log->update([ 'status' => 'failed', 'error_message' => $e->getMessage(), - 'created_at' => now(), 'updated_at' => now(), ]); + } else if ($log1) { + // Jika log ditemukan dan statusnya 'failed' biarkan saja + $log1->update([ + 'error_message' => $e->getMessage(), + 'updated_at' => now(), + ]); + } else { + foreach ($kjpps as $email) { + PenawaranEmailTenderLog::create([ + 'penawaran_id' => $penawaran->id, + 'kjpp' => $dp1->kjpp->code . ' | ' . $dp1->kjpp->name, + 'to_email' => $email, + 'subject' => $subject, + 'body_pdf' => $body_pdf, + 'status' => 'failed', + 'error_message' => $e->getMessage(), + 'created_at' => now(), + 'updated_at' => now(), + ]); + } } return redirect()->route('tender.penawaran.showKirimEmail', ['noreg' => $noreg])->with('error', 'Email Penawaran Gagal Terkirim!'); }