Merge branch 'staging' into feature/senior-officer

This commit is contained in:
majid
2024-11-19 11:00:58 +07:00
20 changed files with 664 additions and 233 deletions

View File

@@ -3,13 +3,20 @@
namespace Modules\Lpj\Http\Controllers;
use Exception;
use Barryvdh\DomPDF\PDF;
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 Illuminate\Support\Facades\Storage;
use Modules\Lpj\Models\PenawaranTender;
use Modules\Lpj\Models\StatusPermohonan;
use Modules\Lpj\Models\TujuanPenilaianKJPP;
@@ -66,12 +73,14 @@ class TenderController extends Controller
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
// Add created_by/updated_by from the authenticated user
$userId = auth()->user()->id;
$userId = Auth::user()->id;
$validated['nomor_registrasi'] = $permohonan->nomor_registrasi;
$validated['status'] = $request->input('status') ?? 'tender';
$validated['updated_by'] = $userId; // Updating the record
$validated['end_date'] = $request->input('end_date') . ' 17:00:00';
// dd($validated['end_date']);
$permohonan->update($validated);
// Adding created_by for the new PenawaranTender record
@@ -117,6 +126,15 @@ class TenderController extends Controller
$penawaranExists = PenawaranTender::where('nomor_registrasi', $noreg)->exists();
$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!');
}
if ($penawaran1->status != 'tender') {
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;
@@ -141,8 +159,18 @@ class TenderController extends Controller
{
// Find the specific penawaran by its ID
$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!');
}
$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!');
}
$status = StatusPermohonan::all();
$tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all();
$jenis_laporan = JenisLaporan::all();
@@ -152,6 +180,8 @@ class TenderController extends Controller
$kjpp = KJPP::all();
// dd($penawaran);
return view('lpj::penawaran.edit', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'noreg', 'kjpps', 'permohonan'));
}
@@ -171,13 +201,15 @@ class TenderController extends Controller
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
// Ambil ID user yang sedang login
$userId = auth()->user()->id;
$userId = Auth::user()->id;
// Jangan ubah created_by untuk data yang sudah ada
$validated['nomor_registrasi'] = $penawaran->nomor_registrasi;
$validated['status'] = $request->input('status') ?? 'tender';
$validated['created_by'] = $userId;
$validated['updated_by'] = $userId; // Hanya update 'updated_by'
$validated['end_date'] = $request->input('end_date') . ' 17:00:00';
// dd($validated['end_date']);
// Update data penawaran dan permohonan
$penawaran->update($validated);
@@ -228,7 +260,7 @@ class TenderController extends Controller
DB::commit();
return redirect()
->route('tender.penawaran.index')
->route('tender.penawaran.ulang.index')
->with('success', 'Data Penawaran updated successfully');
} catch (Exception $e) {
// Rollback jika ada kesalahan
@@ -247,19 +279,46 @@ class TenderController extends Controller
public function showSuratTender($noreg)
{
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
// 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!');
}
if ($penawaran->status != 'tender') {
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!');
}
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();
date_default_timezone_set('Asia/Jakarta');
$now = date('Y-m-d H:i:s');
// Jika batas tanggal penawaran sudah lewat
if ($penawaran->end_date < date('Y-m-d')) {
if ($penawaran->end_date < $now) {
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'));
return view('lpj::penawaran.surat_tender', compact('penawaran', 'noreg', 'permohonan', 'villages', 'districts', 'cities', 'provinces'));
}
public function datatablesPenawaran(Request $request)
@@ -414,4 +473,31 @@ class TenderController extends Controller
// Kembalikan hasil pengecekan sebagai JSON
return response()->json(['exists' => $exists]);
}
public function downloadSuratTender($noreg)
{
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
$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!');
}
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();
$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'));
return $pdf->download('surat_tender' . time() . '.pdf');
}
}