Menambahkan fitur log pada saat kirim tender dari semua KJPP
This commit is contained in:
@@ -684,7 +684,12 @@ class TenderController extends Controller
|
|||||||
->with('error', 'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!');
|
->with('error', 'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!');
|
||||||
}
|
}
|
||||||
|
|
||||||
$detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran->id)->where('status', '=', 1)->pluck('kjpp_rekanan_id')->toArray();
|
$detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran->id)
|
||||||
|
->where('status', '=', 1)
|
||||||
|
->pluck('kjpp_rekanan_id')
|
||||||
|
->toArray();
|
||||||
|
|
||||||
|
|
||||||
$kjpps = KJPP::whereIn('id', $detail_penawaran)
|
$kjpps = KJPP::whereIn('id', $detail_penawaran)
|
||||||
->get()
|
->get()
|
||||||
->map(function ($item) {
|
->map(function ($item) {
|
||||||
@@ -702,10 +707,11 @@ class TenderController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return array_filter($emails);
|
return [
|
||||||
})
|
'kjpp' => $item,
|
||||||
->flatten()
|
'emails' => array_filter($emails)
|
||||||
->toArray();
|
];
|
||||||
|
});
|
||||||
|
|
||||||
foreach ($permohonan->debiture->documents as $document) {
|
foreach ($permohonan->debiture->documents as $document) {
|
||||||
$village_permohonan = $document->village_code;
|
$village_permohonan = $document->village_code;
|
||||||
@@ -719,9 +725,22 @@ class TenderController extends Controller
|
|||||||
$cities = City::where('code', $city_permohonan)->get();
|
$cities = City::where('code', $city_permohonan)->get();
|
||||||
$provinces = Province::where('code', $province_permohonan)->get();
|
$provinces = Province::where('code', $province_permohonan)->get();
|
||||||
|
|
||||||
|
$subject = 'Send Penawaran Email';
|
||||||
|
|
||||||
|
$body_pdf = view('lpj::penawaran.kirimEmail', [
|
||||||
|
'penawaran' => $penawaran,
|
||||||
|
'permohonan' => $permohonan,
|
||||||
|
'kjpps' => $kjpps->pluck('emails')->flatten()->toArray(),
|
||||||
|
'villages' => $villages,
|
||||||
|
'districts' => $districts,
|
||||||
|
'cities' => $cities,
|
||||||
|
'provinces' => $provinces
|
||||||
|
])->render();
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Dispatch job untuk mengirim email
|
||||||
SendPenawaranTenderJob::dispatch(
|
SendPenawaranTenderJob::dispatch(
|
||||||
$kjpps,
|
$kjpps->pluck('emails')->flatten()->toArray(),
|
||||||
$penawaran,
|
$penawaran,
|
||||||
$permohonan,
|
$permohonan,
|
||||||
$villages,
|
$villages,
|
||||||
@@ -730,7 +749,118 @@ class TenderController extends Controller
|
|||||||
$provinces
|
$provinces
|
||||||
);
|
);
|
||||||
|
|
||||||
return redirect()->route('tender.penawaran.ulang.index')->with('success', 'Email Penawaran Berhasil Terkirim!');
|
// Proses log email untuk setiap KJPP
|
||||||
|
foreach ($kjpps as $kjppData) {
|
||||||
|
foreach ($kjppData['emails'] as $email) {
|
||||||
|
// Cek log yang sudah ada
|
||||||
|
$log = PenawaranEmailTenderLog::where('penawaran_id', $penawaran->id)
|
||||||
|
->where('to_email', $email)
|
||||||
|
->where('status', 'failed')
|
||||||
|
->first();
|
||||||
|
|
||||||
|
$log1 = PenawaranEmailTenderLog::where('penawaran_id', $penawaran->id)
|
||||||
|
->where('to_email', $email)
|
||||||
|
->where('status', 'success')
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if ($log) {
|
||||||
|
// Update log failed menjadi success
|
||||||
|
$log->update([
|
||||||
|
'penawaran_id' => $penawaran->id,
|
||||||
|
'kjpp' => $kjppData['kjpp']->code . ' | ' . $kjppData['kjpp']->name,
|
||||||
|
'to_email' => $email,
|
||||||
|
'subject' => $subject,
|
||||||
|
'body_pdf' => $body_pdf,
|
||||||
|
'status' => 'success',
|
||||||
|
'error_message' => null,
|
||||||
|
'updated_at' => now(),
|
||||||
|
]);
|
||||||
|
} else if ($log1) {
|
||||||
|
// Update timestamp jika sudah success
|
||||||
|
$log1->update([
|
||||||
|
'penawaran_id' => $penawaran->id,
|
||||||
|
'kjpp' => $kjppData['kjpp']->code . ' | ' . $kjppData['kjpp']->name,
|
||||||
|
'to_email' => $email,
|
||||||
|
'subject' => $subject,
|
||||||
|
'body_pdf' => $body_pdf,
|
||||||
|
'updated_at' => now(),
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
// Buat log baru
|
||||||
|
PenawaranEmailTenderLog::create([
|
||||||
|
'penawaran_id' => $penawaran->id,
|
||||||
|
'kjpp' => $kjppData['kjpp']->code . ' | ' . $kjppData['kjpp']->name,
|
||||||
|
'to_email' => $email,
|
||||||
|
'subject' => $subject,
|
||||||
|
'body_pdf' => $body_pdf,
|
||||||
|
'status' => 'success',
|
||||||
|
'error_message' => null,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('tender.penawaran.ulang.index')
|
||||||
|
->with('success', 'Email Penawaran Berhasil Terkirim!');
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
// Log email gagal untuk setiap KJPP
|
||||||
|
foreach ($kjpps as $kjppData) {
|
||||||
|
foreach ($kjppData['emails'] as $email) {
|
||||||
|
$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) {
|
||||||
|
// Update log success menjadi failed
|
||||||
|
$log->update([
|
||||||
|
'penawaran_id' => $penawaran->id,
|
||||||
|
'kjpp' => $kjppData['kjpp']->code . ' | ' . $kjppData['kjpp']->name,
|
||||||
|
'to_email' => $email,
|
||||||
|
'subject' => $subject,
|
||||||
|
'body_pdf' => $body_pdf,
|
||||||
|
'status' => 'failed',
|
||||||
|
'error_message' => $e->getMessage(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
]);
|
||||||
|
} else if ($log1) {
|
||||||
|
// Update error message jika sudah failed
|
||||||
|
$log1->update([
|
||||||
|
'penawaran_id' => $penawaran->id,
|
||||||
|
'kjpp' => $kjppData['kjpp']->code . ' | ' . $kjppData['kjpp']->name,
|
||||||
|
'to_email' => $email,
|
||||||
|
'subject' => $subject,
|
||||||
|
'body_pdf' => $body_pdf,
|
||||||
|
'error_message' => $e->getMessage(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
// Buat log baru dengan status failed
|
||||||
|
PenawaranEmailTenderLog::create([
|
||||||
|
'penawaran_id' => $penawaran->id,
|
||||||
|
'kjpp' => $kjppData['kjpp']->code . ' | ' . $kjppData['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!');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function kirimEmailKJPP($noreg, $id)
|
public function kirimEmailKJPP($noreg, $id)
|
||||||
@@ -831,6 +961,11 @@ class TenderController extends Controller
|
|||||||
if ($log) {
|
if ($log) {
|
||||||
// Jika log ditemukan dan statusnya 'failed', update status menjadi 'success'
|
// Jika log ditemukan dan statusnya 'failed', update status menjadi 'success'
|
||||||
$log->update([
|
$log->update([
|
||||||
|
'penawaran_id' => $penawaran->id,
|
||||||
|
'kjpp' => $dp1->kjpp->code . ' | ' . $dp1->kjpp->name,
|
||||||
|
'to_email' => $email,
|
||||||
|
'subject' => $subject,
|
||||||
|
'body_pdf' => $body_pdf,
|
||||||
'status' => 'success',
|
'status' => 'success',
|
||||||
'error_message' => null, // Reset error_message saat status diubah menjadi success
|
'error_message' => null, // Reset error_message saat status diubah menjadi success
|
||||||
'updated_at' => now(),
|
'updated_at' => now(),
|
||||||
@@ -838,6 +973,11 @@ class TenderController extends Controller
|
|||||||
} else if ($log1) {
|
} else if ($log1) {
|
||||||
// Jika log ditemukan dan statusnya 'success' biarkan saja
|
// Jika log ditemukan dan statusnya 'success' biarkan saja
|
||||||
$log1->update([
|
$log1->update([
|
||||||
|
'penawaran_id' => $penawaran->id,
|
||||||
|
'kjpp' => $dp1->kjpp->code . ' | ' . $dp1->kjpp->name,
|
||||||
|
'to_email' => $email,
|
||||||
|
'subject' => $subject,
|
||||||
|
'body_pdf' => $body_pdf,
|
||||||
'updated_at' => now(),
|
'updated_at' => now(),
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
@@ -873,6 +1013,11 @@ class TenderController extends Controller
|
|||||||
if ($log) {
|
if ($log) {
|
||||||
// Jika log ditemukan dan statusnya 'success', update status menjadi 'failed'
|
// Jika log ditemukan dan statusnya 'success', update status menjadi 'failed'
|
||||||
$log->update([
|
$log->update([
|
||||||
|
'penawaran_id' => $penawaran->id,
|
||||||
|
'kjpp' => $dp1->kjpp->code . ' | ' . $dp1->kjpp->name,
|
||||||
|
'to_email' => $email,
|
||||||
|
'subject' => $subject,
|
||||||
|
'body_pdf' => $body_pdf,
|
||||||
'status' => 'failed',
|
'status' => 'failed',
|
||||||
'error_message' => $e->getMessage(),
|
'error_message' => $e->getMessage(),
|
||||||
'updated_at' => now(),
|
'updated_at' => now(),
|
||||||
@@ -880,6 +1025,11 @@ class TenderController extends Controller
|
|||||||
} else if ($log1) {
|
} else if ($log1) {
|
||||||
// Jika log ditemukan dan statusnya 'failed' biarkan saja
|
// Jika log ditemukan dan statusnya 'failed' biarkan saja
|
||||||
$log1->update([
|
$log1->update([
|
||||||
|
'penawaran_id' => $penawaran->id,
|
||||||
|
'kjpp' => $dp1->kjpp->code . ' | ' . $dp1->kjpp->name,
|
||||||
|
'to_email' => $email,
|
||||||
|
'subject' => $subject,
|
||||||
|
'body_pdf' => $body_pdf,
|
||||||
'error_message' => $e->getMessage(),
|
'error_message' => $e->getMessage(),
|
||||||
'updated_at' => now(),
|
'updated_at' => now(),
|
||||||
]);
|
]);
|
||||||
|
|||||||
Reference in New Issue
Block a user