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