perbaiki looping pada kirim surat tender kjpp pada saat gagal kirim
This commit is contained in:
@@ -2,28 +2,28 @@
|
|||||||
|
|
||||||
namespace Modules\Lpj\Http\Controllers;
|
namespace Modules\Lpj\Http\Controllers;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Modules\Lpj\Models\KJPP;
|
||||||
use Illuminate\Support\Facades\DB;
|
|
||||||
use Maatwebsite\Excel\Facades\Excel;
|
|
||||||
use Modules\Location\Models\City;
|
use Modules\Location\Models\City;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Modules\Lpj\Models\Permohonan;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Maatwebsite\Excel\Facades\Excel;
|
||||||
|
use Modules\Location\Models\Village;
|
||||||
|
use Modules\Lpj\Models\JenisLaporan;
|
||||||
use Modules\Location\Models\District;
|
use Modules\Location\Models\District;
|
||||||
use Modules\Location\Models\Province;
|
use Modules\Location\Models\Province;
|
||||||
use Modules\Location\Models\Village;
|
use Modules\Lpj\Models\PenawaranTender;
|
||||||
|
use Modules\Lpj\Models\StatusPermohonan;
|
||||||
|
use Modules\Lpj\Models\TujuanPenilaianKJPP;
|
||||||
|
use Modules\Lpj\Models\PenawaranDetailTender;
|
||||||
use Modules\Lpj\Exports\PenawaranTenderExport;
|
use Modules\Lpj\Exports\PenawaranTenderExport;
|
||||||
use Modules\Lpj\Http\Requests\TenderPenawaranRequest;
|
use Modules\Lpj\Http\Requests\TenderPenawaranRequest;
|
||||||
use Modules\Lpj\Jobs\SendPenawaranKJPPTenderJob;
|
use Modules\Lpj\Jobs\SendPenawaranKJPPTenderJob;
|
||||||
use Modules\Lpj\Jobs\SendPenawaranTenderJob;
|
use Modules\Lpj\Jobs\SendPenawaranTenderJob;
|
||||||
use Modules\Lpj\Models\JenisLaporan;
|
|
||||||
use Modules\Lpj\Models\KJPP;
|
|
||||||
use Modules\Lpj\Models\PenawaranDetailTender;
|
|
||||||
use Modules\Lpj\Models\PenawaranEmailTenderLog;
|
use Modules\Lpj\Models\PenawaranEmailTenderLog;
|
||||||
use Modules\Lpj\Models\PenawaranTender;
|
|
||||||
use Modules\Lpj\Models\Permohonan;
|
|
||||||
use Modules\Lpj\Models\StatusPermohonan;
|
|
||||||
use Modules\Lpj\Models\TujuanPenilaianKJPP;
|
|
||||||
|
|
||||||
class TenderController extends Controller
|
class TenderController extends Controller
|
||||||
{
|
{
|
||||||
@@ -46,11 +46,8 @@
|
|||||||
|
|
||||||
// Jika nomor_registrasi sudah ada, kembalikan respon 403 Forbidden
|
// Jika nomor_registrasi sudah ada, kembalikan respon 403 Forbidden
|
||||||
if ($penawaranExists) {
|
if ($penawaranExists) {
|
||||||
return redirect()
|
return redirect()->route('tender.penawaran.editPenawaran', ['noreg' => $noreg])
|
||||||
->route('tender.penawaran.editPenawaran', ['noreg' => $noreg])->with(
|
->with('error', 'Penawaran dengan nomor registrasi ini sudah ada, Anda akan diarahkan ke halaman edit.');
|
||||||
'error',
|
|
||||||
'Penawaran dengan nomor registrasi ini sudah ada, Anda akan diarahkan ke halaman edit.',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
||||||
@@ -61,10 +58,7 @@
|
|||||||
|
|
||||||
$kjpp = KJPP::all();
|
$kjpp = KJPP::all();
|
||||||
|
|
||||||
return view(
|
return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'noreg', 'permohonan'));
|
||||||
'lpj::penawaran/create',
|
|
||||||
compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'noreg', 'permohonan'),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -101,7 +95,7 @@
|
|||||||
'penawaran_id' => $penawaranId->id,
|
'penawaran_id' => $penawaranId->id,
|
||||||
'kjpp_rekanan_id' => $kjpp,
|
'kjpp_rekanan_id' => $kjpp,
|
||||||
'created_by' => $userId, // Set created_by for details
|
'created_by' => $userId, // Set created_by for details
|
||||||
'updated_by' => $userId,
|
'updated_by' => $userId
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,12 +103,14 @@
|
|||||||
DB::commit();
|
DB::commit();
|
||||||
|
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('tender.penawaran.index')->with('success', 'Data Penawaran created successfully');
|
->route('tender.penawaran.index')
|
||||||
|
->with('success', 'Data Penawaran created successfully');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
|
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('tender.penawaran.createPenawaran', $noreg)->with('error', 'Validation failed: ' . $e);
|
->route('tender.penawaran.createPenawaran', $noreg)
|
||||||
|
->with('error', 'Validation failed: ' . $e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,27 +129,17 @@
|
|||||||
$penawaran1 = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
$penawaran1 = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
||||||
|
|
||||||
if (!$penawaran1) {
|
if (!$penawaran1) {
|
||||||
return redirect()->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])->with(
|
return redirect()->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])->with('error', 'Penawaran dengan nomor registrasi ini belum dibuat. Silahkan isi terlebih dahulu!');
|
||||||
'error',
|
|
||||||
'Penawaran dengan nomor registrasi ini belum dibuat. Silahkan isi terlebih dahulu!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($penawaran1->status != 'tender') {
|
if ($penawaran1->status != 'tender') {
|
||||||
return redirect()->route('spk.index')->with(
|
return redirect()->route('spk.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!');
|
||||||
'error',
|
|
||||||
'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// dd($penawaran1->id);
|
// dd($penawaran1->id);
|
||||||
if ($penawaran1) {
|
if ($penawaran1) {
|
||||||
$penawaran = $penawaran1;
|
$penawaran = $penawaran1;
|
||||||
$detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran1->id)->where(
|
$detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran1->id)->where('status', '=', 1)->pluck('kjpp_rekanan_id')->toArray();
|
||||||
'status',
|
|
||||||
'=',
|
|
||||||
1,
|
|
||||||
)->pluck('kjpp_rekanan_id')->toArray();
|
|
||||||
$kjpps = KJPP::whereIn('id', $detail_penawaran)->get();
|
$kjpps = KJPP::whereIn('id', $detail_penawaran)->get();
|
||||||
$tujuan_penilaian_kjpp = TujuanPenilaianKJPP::where('id', $penawaran->tujuan_penilaian_kjpp_id)->get();
|
$tujuan_penilaian_kjpp = TujuanPenilaianKJPP::where('id', $penawaran->tujuan_penilaian_kjpp_id)->get();
|
||||||
$jenis_laporan = JenisLaporan::where('id', $penawaran->jenis_laporan_id)->get();
|
$jenis_laporan = JenisLaporan::where('id', $penawaran->jenis_laporan_id)->get();
|
||||||
@@ -164,10 +150,7 @@
|
|||||||
|
|
||||||
// dd($kjpps);
|
// dd($kjpps);
|
||||||
|
|
||||||
return view(
|
return view('lpj::penawaran.show', compact('noreg', 'penawaran', 'kjpps', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'penawaranExists'));
|
||||||
'lpj::penawaran.show',
|
|
||||||
compact('noreg', 'penawaran', 'kjpps', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'penawaranExists'),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -179,50 +162,28 @@
|
|||||||
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
||||||
|
|
||||||
if (!$penawaran) {
|
if (!$penawaran) {
|
||||||
return redirect()->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])->with(
|
return redirect()->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])->with('error', 'Penawaran dengan nomor registrasi ini belum dibuat. Silahkan isi terlebih dahulu!');
|
||||||
'error',
|
|
||||||
'Penawaran dengan nomor registrasi ini belum dibuat. Silahkan isi terlebih dahulu!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
||||||
|
|
||||||
|
|
||||||
if ($penawaran->status != 'tender') {
|
if ($penawaran->status != 'tender') {
|
||||||
return redirect()->route('spk.index')->with(
|
return redirect()->route('spk.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!');
|
||||||
'error',
|
|
||||||
'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$status = StatusPermohonan::all();
|
$status = StatusPermohonan::all();
|
||||||
$tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all();
|
$tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all();
|
||||||
$jenis_laporan = JenisLaporan::all();
|
$jenis_laporan = JenisLaporan::all();
|
||||||
|
|
||||||
$detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran->id)->where(
|
$detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran->id)->where('status', '=', 1)->pluck('kjpp_rekanan_id')->toArray();
|
||||||
'status',
|
|
||||||
'=',
|
|
||||||
1,
|
|
||||||
)->pluck('kjpp_rekanan_id')->toArray();
|
|
||||||
$kjpps = KJPP::whereIn('id', $detail_penawaran)->pluck('id')->toArray();
|
$kjpps = KJPP::whereIn('id', $detail_penawaran)->pluck('id')->toArray();
|
||||||
|
|
||||||
$kjpp = KJPP::all();
|
$kjpp = KJPP::all();
|
||||||
|
|
||||||
// dd($penawaran);
|
// dd($penawaran);
|
||||||
|
|
||||||
return view(
|
return view('lpj::penawaran.edit', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'noreg', 'kjpps', 'permohonan'));
|
||||||
'lpj::penawaran.edit',
|
|
||||||
compact(
|
|
||||||
'status',
|
|
||||||
'tujuan_penilaian_kjpp',
|
|
||||||
'jenis_laporan',
|
|
||||||
'kjpp',
|
|
||||||
'penawaran',
|
|
||||||
'noreg',
|
|
||||||
'kjpps',
|
|
||||||
'permohonan',
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -270,10 +231,9 @@
|
|||||||
|
|
||||||
// Tangani penambahan atau perubahan KJPP baru
|
// Tangani penambahan atau perubahan KJPP baru
|
||||||
foreach ($kjpps as $kjpp) {
|
foreach ($kjpps as $kjpp) {
|
||||||
$existingDetail = PenawaranDetailTender::where('penawaran_id', $penawaran->id)->where(
|
$existingDetail = PenawaranDetailTender::where('penawaran_id', $penawaran->id)
|
||||||
'kjpp_rekanan_id',
|
->where('kjpp_rekanan_id', $kjpp)
|
||||||
$kjpp,
|
->first();
|
||||||
)->first();
|
|
||||||
|
|
||||||
// dd($existingDetail);
|
// dd($existingDetail);
|
||||||
|
|
||||||
@@ -301,16 +261,15 @@
|
|||||||
DB::commit();
|
DB::commit();
|
||||||
|
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('tender.penawaran.ulang.index')->with('success', 'Data Penawaran updated successfully');
|
->route('tender.penawaran.ulang.index')
|
||||||
|
->with('success', 'Data Penawaran updated successfully');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
// Rollback jika ada kesalahan
|
// Rollback jika ada kesalahan
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
|
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('tender.penawaran.createPenawaran', $noreg)->with(
|
->route('tender.penawaran.createPenawaran', $noreg)
|
||||||
'error',
|
->with('error', 'Validation failed: ' . $e->getMessage());
|
||||||
'Validation failed: ' . $e->getMessage(),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -325,27 +284,18 @@
|
|||||||
|
|
||||||
// Kalau tidak ketemu nomor registrasi dengan tabel penawaran
|
// Kalau tidak ketemu nomor registrasi dengan tabel penawaran
|
||||||
if (!$penawaran) {
|
if (!$penawaran) {
|
||||||
return redirect()
|
return redirect()->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])
|
||||||
->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])->with(
|
->with('error', 'Anda Belum Membuat Penawaran. Silahkan isi terlebih dahulu!');
|
||||||
'error',
|
|
||||||
'Anda Belum Membuat Penawaran. Silahkan isi terlebih dahulu!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($penawaran->status != 'tender') {
|
if ($penawaran->status != 'tender') {
|
||||||
return redirect()->route('spk.index')->with(
|
return redirect()->route('spk.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!');
|
||||||
'error',
|
|
||||||
'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Kalau tidak ada dokumen jaminan maka di arahkan ke halaman dokumen jaminan
|
// Kalau tidak ada dokumen jaminan maka di arahkan ke halaman dokumen jaminan
|
||||||
if ($permohonan->debiture->documents->isEmpty()) {
|
if ($permohonan->debiture->documents->isEmpty()) {
|
||||||
return redirect()
|
return redirect()->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])
|
||||||
->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])->with(
|
->with('error', 'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!');
|
||||||
'error',
|
|
||||||
'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($permohonan->debiture->documents as $document) {
|
foreach ($permohonan->debiture->documents as $document) {
|
||||||
@@ -365,17 +315,11 @@
|
|||||||
$now = date('Y-m-d H:i:s');
|
$now = date('Y-m-d H:i:s');
|
||||||
// Jika batas tanggal penawaran sudah lewat
|
// Jika batas tanggal penawaran sudah lewat
|
||||||
if ($penawaran->end_date < $now) {
|
if ($penawaran->end_date < $now) {
|
||||||
return redirect()
|
return redirect()->route('tender.penawaran.editPenawaran', ['noreg' => $noreg])
|
||||||
->route('tender.penawaran.editPenawaran', ['noreg' => $noreg])->with(
|
->with('error', 'Sudah Kadaluarsa. Silahkan perpanjang tanggal penawaran terlebih dahulu!');
|
||||||
'error',
|
|
||||||
'Sudah Kadaluarsa. Silahkan perpanjang tanggal penawaran terlebih dahulu!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return view(
|
return view('lpj::penawaran.surat_tender', compact('penawaran', 'noreg', 'permohonan', 'villages', 'districts', 'cities', 'provinces'));
|
||||||
'lpj::penawaran.surat_tender',
|
|
||||||
compact('penawaran', 'noreg', 'permohonan', 'villages', 'districts', 'cities', 'provinces'),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function suratTenderKJPP($noreg, $id)
|
public function suratTenderKJPP($noreg, $id)
|
||||||
@@ -385,27 +329,18 @@
|
|||||||
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
||||||
|
|
||||||
if (!$penawaran) {
|
if (!$penawaran) {
|
||||||
return redirect()
|
return redirect()->route('tender.penawaran.createPenawaran', ['noreg' => $penawaran->nomor_registrasi])
|
||||||
->route('tender.penawaran.createPenawaran', ['noreg' => $penawaran->nomor_registrasi])->with(
|
->with('error', 'Anda Belum Membuat Penawaran. Silahkan isi terlebih dahulu!');
|
||||||
'error',
|
|
||||||
'Anda Belum Membuat Penawaran. Silahkan isi terlebih dahulu!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($penawaran->status != 'tender') {
|
if ($penawaran->status != 'tender') {
|
||||||
return redirect()->route('spk.index')->with(
|
return redirect()->route('spk.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!');
|
||||||
'error',
|
|
||||||
'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Kalau tidak ada dokumen jaminan maka di arahkan ke halaman dokumen jaminan
|
// Kalau tidak ada dokumen jaminan maka di arahkan ke halaman dokumen jaminan
|
||||||
if ($permohonan->debiture->documents->isEmpty()) {
|
if ($permohonan->debiture->documents->isEmpty()) {
|
||||||
return redirect()
|
return redirect()->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])
|
||||||
->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])->with(
|
->with('error', 'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!');
|
||||||
'error',
|
|
||||||
'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($permohonan->debiture->documents as $document) {
|
foreach ($permohonan->debiture->documents as $document) {
|
||||||
@@ -425,11 +360,8 @@
|
|||||||
$now = date('Y-m-d H:i:s');
|
$now = date('Y-m-d H:i:s');
|
||||||
// Jika batas tanggal penawaran sudah lewat
|
// Jika batas tanggal penawaran sudah lewat
|
||||||
if ($penawaran->end_date < $now) {
|
if ($penawaran->end_date < $now) {
|
||||||
return redirect()
|
return redirect()->route('tender.penawaran.editPenawaran', ['noreg' => $noreg])
|
||||||
->route('tender.penawaran.editPenawaran', ['noreg' => $noreg])->with(
|
->with('error', 'Sudah Kadaluarsa. Silahkan perpanjang tanggal penawaran terlebih dahulu!');
|
||||||
'error',
|
|
||||||
'Sudah Kadaluarsa. Silahkan perpanjang tanggal penawaran terlebih dahulu!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$detail_penawaran = PenawaranDetailTender::with('kjpp')->where('kjpp_rekanan_id', '=', $kjpp->id)->get();
|
$detail_penawaran = PenawaranDetailTender::with('kjpp')->where('kjpp_rekanan_id', '=', $kjpp->id)->get();
|
||||||
@@ -438,20 +370,7 @@
|
|||||||
$detail_penawaran_1 = $detail->kjpp;
|
$detail_penawaran_1 = $detail->kjpp;
|
||||||
}
|
}
|
||||||
|
|
||||||
return view(
|
return view('lpj::penawaran.surat_tender_kjpp', compact('penawaran', 'noreg', 'permohonan', 'villages', 'districts', 'cities', 'provinces', 'detail_penawaran_1', 'id'));
|
||||||
'lpj::penawaran.surat_tender_kjpp',
|
|
||||||
compact(
|
|
||||||
'penawaran',
|
|
||||||
'noreg',
|
|
||||||
'permohonan',
|
|
||||||
'villages',
|
|
||||||
'districts',
|
|
||||||
'cities',
|
|
||||||
'provinces',
|
|
||||||
'detail_penawaran_1',
|
|
||||||
'id',
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function datatablesPenawaran(Request $request)
|
public function datatablesPenawaran(Request $request)
|
||||||
@@ -613,10 +532,7 @@
|
|||||||
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
||||||
|
|
||||||
if ($penawaran->status != 'tender') {
|
if ($penawaran->status != 'tender') {
|
||||||
return redirect()->route('spk.index')->with(
|
return redirect()->route('spk.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!');
|
||||||
'error',
|
|
||||||
'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($permohonan->debiture->documents as $document) {
|
foreach ($permohonan->debiture->documents as $document) {
|
||||||
@@ -632,10 +548,7 @@
|
|||||||
$provinces = Province::where('code', $province_permohonan)->get();
|
$provinces = Province::where('code', $province_permohonan)->get();
|
||||||
|
|
||||||
$pdf = app('dompdf.wrapper'); // create an instance of the PDF class
|
$pdf = app('dompdf.wrapper'); // create an instance of the PDF class
|
||||||
$pdf->loadView(
|
$pdf->loadView('lpj::penawaran.surat_tender_download', compact('penawaran', 'permohonan', 'villages', 'districts', 'cities', 'provinces'));
|
||||||
'lpj::penawaran.surat_tender_download',
|
|
||||||
compact('penawaran', 'permohonan', 'villages', 'districts', 'cities', 'provinces'),
|
|
||||||
);
|
|
||||||
|
|
||||||
return $pdf->download('surat_tender' . time() . '.pdf');
|
return $pdf->download('surat_tender' . time() . '.pdf');
|
||||||
}
|
}
|
||||||
@@ -647,10 +560,7 @@
|
|||||||
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
||||||
|
|
||||||
if ($penawaran->status != 'tender') {
|
if ($penawaran->status != 'tender') {
|
||||||
return redirect()->route('spk.index')->with(
|
return redirect()->route('spk.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!');
|
||||||
'error',
|
|
||||||
'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($permohonan->debiture->documents as $document) {
|
foreach ($permohonan->debiture->documents as $document) {
|
||||||
@@ -672,10 +582,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
$pdf = app('dompdf.wrapper'); // create an instance of the PDF class
|
$pdf = app('dompdf.wrapper'); // create an instance of the PDF class
|
||||||
$pdf->loadView(
|
$pdf->loadView('lpj::penawaran.surat_tender_kjpp_download', compact('penawaran', 'permohonan', 'villages', 'districts', 'cities', 'provinces', 'detail_penawaran_1'));
|
||||||
'lpj::penawaran.surat_tender_kjpp_download',
|
|
||||||
compact('penawaran', 'permohonan', 'villages', 'districts', 'cities', 'provinces', 'detail_penawaran_1'),
|
|
||||||
);
|
|
||||||
|
|
||||||
return $pdf->download('surat_tender_kjpp' . time() . '.pdf');
|
return $pdf->download('surat_tender_kjpp' . time() . '.pdf');
|
||||||
}
|
}
|
||||||
@@ -687,26 +594,17 @@
|
|||||||
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
||||||
|
|
||||||
if (!$penawaran) {
|
if (!$penawaran) {
|
||||||
return redirect()
|
return redirect()->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])
|
||||||
->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])->with(
|
->with('error', 'Anda Belum Membuat Penawaran. Silahkan isi terlebih dahulu!');
|
||||||
'error',
|
|
||||||
'Anda Belum Membuat Penawaran. Silahkan isi terlebih dahulu!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($penawaran->status != 'tender') {
|
if ($penawaran->status != 'tender') {
|
||||||
return redirect()->route('spk.index')->with(
|
return redirect()->route('spk.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!');
|
||||||
'error',
|
|
||||||
'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($permohonan->debiture->documents->isEmpty()) {
|
if ($permohonan->debiture->documents->isEmpty()) {
|
||||||
return redirect()
|
return redirect()->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])
|
||||||
->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])->with(
|
->with('error', 'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!');
|
||||||
'error',
|
|
||||||
'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('lpj::penawaran.showKirimEmail', compact('penawaran', 'permohonan', 'noreg'));
|
return view('lpj::penawaran.showKirimEmail', compact('penawaran', 'permohonan', 'noreg'));
|
||||||
@@ -721,9 +619,7 @@
|
|||||||
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
||||||
|
|
||||||
// Retrieve data from the database
|
// Retrieve data from the database
|
||||||
$query = PenawaranDetailTender::query()->where('penawaran_id', '=', $penawaran->id)->with(
|
$query = PenawaranDetailTender::query()->where('penawaran_id', '=', $penawaran->id)->with(['kjpp', 'penawaran', 'penawaran.emailTenderLog']);
|
||||||
['kjpp', 'penawaran', 'penawaran.emailTenderLog'],
|
|
||||||
);
|
|
||||||
|
|
||||||
// dd($query);
|
// dd($query);
|
||||||
|
|
||||||
@@ -735,23 +631,18 @@
|
|||||||
// Handle sorting for related table columns
|
// Handle sorting for related table columns
|
||||||
if ($column === 'nama_kjpp') {
|
if ($column === 'nama_kjpp') {
|
||||||
// Join with the KJPP table and sort by the name column
|
// Join with the KJPP table and sort by the name column
|
||||||
$query
|
$query->join('kjpp', 'detail_penawaran.kjpp_rekanan_id', '=', 'kjpp.id')
|
||||||
->join('kjpp', 'detail_penawaran.kjpp_rekanan_id', '=', 'kjpp.id')
|
|
||||||
->orderBy('kjpp.name', $order)
|
->orderBy('kjpp.name', $order)
|
||||||
->select('detail_penawaran.*'); // Select only the main table columns to avoid conflicts
|
->select('detail_penawaran.*'); // Select only the main table columns to avoid conflicts
|
||||||
} else {
|
} else if ($column === 'nomor_kjpp') {
|
||||||
if ($column === 'nomor_kjpp') {
|
$query->join('kjpp', 'detail_penawaran.kjpp_rekanan_id', '=', 'kjpp.id')
|
||||||
$query
|
->orderBy('kjpp.code', $order)
|
||||||
->join('kjpp', 'detail_penawaran.kjpp_rekanan_id', '=', 'kjpp.id')->orderBy(
|
->select('detail_penawaran.*');
|
||||||
'kjpp.code',
|
|
||||||
$order,
|
|
||||||
)->select('detail_penawaran.*');
|
|
||||||
} else {
|
} else {
|
||||||
// Sort by columns in the main table
|
// Sort by columns in the main table
|
||||||
$query->orderBy($column, $order);
|
$query->orderBy($column, $order);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Get the data for the current page
|
// Get the data for the current page
|
||||||
$data = $query->get();
|
$data = $query->get();
|
||||||
@@ -760,6 +651,7 @@
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
$j = 1;
|
$j = 1;
|
||||||
foreach ($data as $obj) {
|
foreach ($data as $obj) {
|
||||||
|
|
||||||
// tanggal_permohonan
|
// tanggal_permohonan
|
||||||
$data[$i]->numbernya = $j;
|
$data[$i]->numbernya = $j;
|
||||||
$i++;
|
$i++;
|
||||||
@@ -779,245 +671,23 @@
|
|||||||
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
||||||
|
|
||||||
if (!$penawaran) {
|
if (!$penawaran) {
|
||||||
return redirect()
|
return redirect()->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])
|
||||||
->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])->with(
|
->with('error', 'Anda Belum Membuat Penawaran. Silahkan isi terlebih dahulu!');
|
||||||
'error',
|
|
||||||
'Anda Belum Membuat Penawaran. Silahkan isi terlebih dahulu!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($penawaran->status != 'tender') {
|
if ($penawaran->status != 'tender') {
|
||||||
return redirect()->route('spk.index')->with(
|
return redirect()->route('spk.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!');
|
||||||
'error',
|
|
||||||
'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($permohonan->debiture->documents->isEmpty()) {
|
if ($permohonan->debiture->documents->isEmpty()) {
|
||||||
return redirect()
|
return redirect()->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])
|
||||||
->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])->with(
|
->with('error', 'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!');
|
||||||
'error',
|
|
||||||
'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran->id)->where(
|
$detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran->id)->where('status', '=', 1)->pluck('kjpp_rekanan_id')->toArray();
|
||||||
'status',
|
$kjpps = KJPP::whereIn('id', $detail_penawaran)
|
||||||
'=',
|
->get()
|
||||||
1,
|
->map(function ($item) {
|
||||||
)->pluck('kjpp_rekanan_id')->toArray();
|
|
||||||
|
|
||||||
|
|
||||||
$kjpps = KJPP::whereIn('id', $detail_penawaran)->get()->map(function ($item) {
|
|
||||||
$emails = [$item->email_kantor];
|
|
||||||
|
|
||||||
// Parse JSON string jika ada dan tidak kosong
|
|
||||||
if (!empty($item->detail_email_kantor) && $item->detail_email_kantor !== '[]') {
|
|
||||||
$detail_emails = json_decode($item->detail_email_kantor, true);
|
|
||||||
if (is_array($detail_emails)) {
|
|
||||||
foreach ($detail_emails as $detail) {
|
|
||||||
if (isset($detail['email_kantor'])) {
|
|
||||||
$emails[] = $detail['email_kantor'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return [
|
|
||||||
'kjpp' => $item,
|
|
||||||
'emails' => array_filter($emails),
|
|
||||||
];
|
|
||||||
});
|
|
||||||
|
|
||||||
foreach ($permohonan->debiture->documents as $document) {
|
|
||||||
$village_permohonan = $document->village_code;
|
|
||||||
$district_permohonan = $document->district_code;
|
|
||||||
$city_permohonan = $document->city_code;
|
|
||||||
$province_permohonan = $document->province_code;
|
|
||||||
}
|
|
||||||
|
|
||||||
$villages = Village::where('code', $village_permohonan)->get();
|
|
||||||
$districts = District::where('code', $district_permohonan)->get();
|
|
||||||
$cities = City::where('code', $city_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();
|
|
||||||
|
|
||||||
// Dispatch job untuk mengirim email
|
|
||||||
SendPenawaranTenderJob::dispatch(
|
|
||||||
$kjpps->pluck('emails')->flatten()->toArray(),
|
|
||||||
$penawaran,
|
|
||||||
$permohonan,
|
|
||||||
$villages,
|
|
||||||
$districts,
|
|
||||||
$cities,
|
|
||||||
$provinces,
|
|
||||||
);
|
|
||||||
|
|
||||||
try {
|
|
||||||
// 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)
|
|
||||||
{
|
|
||||||
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
|
||||||
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
|
||||||
|
|
||||||
if (!$penawaran) {
|
|
||||||
return redirect()
|
|
||||||
->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])->with(
|
|
||||||
'error',
|
|
||||||
'Anda Belum Membuat Penawaran. Silahkan isi terlebih dahulu!',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($penawaran->status != 'tender') {
|
|
||||||
return redirect()->route('spk.index')->with(
|
|
||||||
'error',
|
|
||||||
'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($permohonan->debiture->documents->isEmpty()) {
|
|
||||||
return redirect()
|
|
||||||
->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])->with(
|
|
||||||
'error',
|
|
||||||
'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$detail_penawaran = PenawaranDetailTender::with('kjpp')->where('kjpp_rekanan_id', '=', $id)->pluck(
|
|
||||||
'kjpp_rekanan_id',
|
|
||||||
)->toArray();
|
|
||||||
$kjpps = KJPP::whereIn('id', $detail_penawaran)->get()->map(function ($item) {
|
|
||||||
$emails = [$item->email_kantor];
|
$emails = [$item->email_kantor];
|
||||||
|
|
||||||
// Parse JSON string jika ada dan tidak kosong
|
// Parse JSON string jika ada dan tidak kosong
|
||||||
@@ -1033,7 +703,77 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
return array_filter($emails);
|
return array_filter($emails);
|
||||||
})->flatten()->toArray();
|
})
|
||||||
|
->flatten()
|
||||||
|
->toArray();
|
||||||
|
|
||||||
|
foreach ($permohonan->debiture->documents as $document) {
|
||||||
|
$village_permohonan = $document->village_code;
|
||||||
|
$district_permohonan = $document->district_code;
|
||||||
|
$city_permohonan = $document->city_code;
|
||||||
|
$province_permohonan = $document->province_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
$villages = Village::where('code', $village_permohonan)->get();
|
||||||
|
$districts = District::where('code', $district_permohonan)->get();
|
||||||
|
$cities = City::where('code', $city_permohonan)->get();
|
||||||
|
$provinces = Province::where('code', $province_permohonan)->get();
|
||||||
|
|
||||||
|
|
||||||
|
SendPenawaranTenderJob::dispatch(
|
||||||
|
$kjpps,
|
||||||
|
$penawaran,
|
||||||
|
$permohonan,
|
||||||
|
$villages,
|
||||||
|
$districts,
|
||||||
|
$cities,
|
||||||
|
$provinces
|
||||||
|
);
|
||||||
|
|
||||||
|
return redirect()->route('tender.penawaran.ulang.index')->with('success', 'Email Penawaran Berhasil Terkirim!');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function kirimEmailKJPP($noreg, $id)
|
||||||
|
{
|
||||||
|
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
||||||
|
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
||||||
|
|
||||||
|
if (!$penawaran) {
|
||||||
|
return redirect()->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])
|
||||||
|
->with('error', 'Anda Belum Membuat Penawaran. Silahkan isi terlebih dahulu!');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($penawaran->status != 'tender') {
|
||||||
|
return redirect()->route('spk.index')->with('error', 'Penawaran dengan nomor registrasi ini sudah masuk SPK tidak bisa masuk penawaran lagi!');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($permohonan->debiture->documents->isEmpty()) {
|
||||||
|
return redirect()->route('debitur.jaminan.create', ['id' => $permohonan->debiture->id])
|
||||||
|
->with('error', 'Anda Belum Membuat Dokumen Jaminan. Silahkan isi terlebih dahulu!');
|
||||||
|
}
|
||||||
|
|
||||||
|
$detail_penawaran = PenawaranDetailTender::with('kjpp')->where('kjpp_rekanan_id', '=', $id)->pluck('kjpp_rekanan_id')->toArray();
|
||||||
|
$kjpps = KJPP::whereIn('id', $detail_penawaran)
|
||||||
|
->get()
|
||||||
|
->map(function ($item) {
|
||||||
|
$emails = [$item->email_kantor];
|
||||||
|
|
||||||
|
// Parse JSON string jika ada dan tidak kosong
|
||||||
|
if (!empty($item->detail_email_kantor) && $item->detail_email_kantor !== '[]') {
|
||||||
|
$detail_emails = json_decode($item->detail_email_kantor, true);
|
||||||
|
if (is_array($detail_emails)) {
|
||||||
|
foreach ($detail_emails as $detail) {
|
||||||
|
if (isset($detail['email_kantor'])) {
|
||||||
|
$emails[] = $detail['email_kantor'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return array_filter($emails);
|
||||||
|
})
|
||||||
|
->flatten()
|
||||||
|
->toArray();
|
||||||
|
|
||||||
$dp1 = PenawaranDetailTender::with('kjpp')->where('kjpp_rekanan_id', '=', $id)->first();
|
$dp1 = PenawaranDetailTender::with('kjpp')->where('kjpp_rekanan_id', '=', $id)->first();
|
||||||
|
|
||||||
@@ -1059,7 +799,7 @@
|
|||||||
'villages' => $villages,
|
'villages' => $villages,
|
||||||
'districts' => $districts,
|
'districts' => $districts,
|
||||||
'cities' => $cities,
|
'cities' => $cities,
|
||||||
'provinces' => $provinces,
|
'provinces' => $provinces
|
||||||
])->render();
|
])->render();
|
||||||
|
|
||||||
SendPenawaranKJPPTenderJob::dispatch(
|
SendPenawaranKJPPTenderJob::dispatch(
|
||||||
@@ -1070,7 +810,7 @@
|
|||||||
$villages,
|
$villages,
|
||||||
$districts,
|
$districts,
|
||||||
$cities,
|
$cities,
|
||||||
$provinces,
|
$provinces
|
||||||
);
|
);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -1090,24 +830,13 @@
|
|||||||
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(),
|
||||||
]);
|
]);
|
||||||
} else {
|
} else if ($log1) {
|
||||||
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 {
|
||||||
@@ -1125,13 +854,9 @@
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return redirect()->route('tender.penawaran.ulang.index')->with(
|
return redirect()->route('tender.penawaran.ulang.index')->with('success', 'Email Penawaran Berhasil Terkirim!');
|
||||||
'success',
|
} catch (\Exception $e) {
|
||||||
'Email Penawaran Berhasil Terkirim!',
|
|
||||||
);
|
|
||||||
} catch (Exception $e) {
|
|
||||||
// Log email gagal
|
// Log email gagal
|
||||||
foreach ($kjpps as $email) {
|
foreach ($kjpps as $email) {
|
||||||
$log = PenawaranEmailTenderLog::where('penawaran_id', $penawaran->id)
|
$log = PenawaranEmailTenderLog::where('penawaran_id', $penawaran->id)
|
||||||
@@ -1147,24 +872,13 @@
|
|||||||
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(),
|
||||||
]);
|
]);
|
||||||
} else {
|
} else if ($log1) {
|
||||||
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(),
|
||||||
]);
|
]);
|
||||||
@@ -1182,11 +896,8 @@
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return redirect()->route('tender.penawaran.showKirimEmail', ['noreg' => $noreg])->with(
|
return redirect()->route('tender.penawaran.showKirimEmail', ['noreg' => $noreg])->with('error', 'Email Penawaran Gagal Terkirim!');
|
||||||
'error',
|
|
||||||
'Email Penawaran Gagal Terkirim!',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user