Merge remote-tracking branch 'origin/tender' into staging
This commit is contained in:
@@ -5,8 +5,6 @@ namespace Modules\Lpj\Http\Controllers;
|
||||
use Exception;
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\Lpj\Models\KJPP;
|
||||
use Illuminate\Http\Response;
|
||||
use Modules\Lpj\Models\Penawaran;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Modules\Lpj\Models\Permohonan;
|
||||
use App\Http\Controllers\Controller;
|
||||
@@ -36,8 +34,14 @@ class TenderController extends Controller
|
||||
*/
|
||||
public function penawaran_create($noreg)
|
||||
{
|
||||
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
||||
$penawaranExists = PenawaranTender::where('nomor_registrasi', '=', $noreg)->exists();
|
||||
|
||||
// Jika nomor_registrasi sudah ada, kembalikan respon 403 Forbidden
|
||||
if ($penawaranExists) {
|
||||
abort(403, 'Penawaran dengan nomor registrasi ini sudah ada.');
|
||||
}
|
||||
|
||||
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
||||
|
||||
$status = StatusPermohonan::all();
|
||||
$tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all();
|
||||
@@ -45,7 +49,7 @@ class TenderController extends Controller
|
||||
|
||||
$kjpp = KJPP::all();
|
||||
|
||||
return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'noreg'));
|
||||
return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'noreg', 'permohonan'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -58,12 +62,19 @@ class TenderController extends Controller
|
||||
DB::beginTransaction();
|
||||
|
||||
try {
|
||||
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
||||
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
||||
|
||||
$validated['nomor_registrasi'] = $penawaran->nomor_registrasi;
|
||||
// Add created_by/updated_by from the authenticated user
|
||||
$userId = auth()->user()->id;
|
||||
|
||||
$validated['status'] = $request->input('status') ?? 'Tender';
|
||||
$validated['nomor_registrasi'] = $permohonan->nomor_registrasi;
|
||||
|
||||
$validated['status'] = $request->input('status') ?? 'tender';
|
||||
$validated['updated_by'] = $userId; // Updating the record
|
||||
$permohonan->update($validated);
|
||||
|
||||
// Adding created_by for the new PenawaranTender record
|
||||
$validated['created_by'] = $userId;
|
||||
$penawaranId = PenawaranTender::create($validated);
|
||||
|
||||
$kjpps = $request->input('kjpp', []);
|
||||
@@ -71,7 +82,9 @@ class TenderController extends Controller
|
||||
foreach ($kjpps as $kjpp) {
|
||||
PenawaranDetailTender::create([
|
||||
'penawaran_id' => $penawaranId->id,
|
||||
'kjpp_rekanan_id' => $kjpp
|
||||
'kjpp_rekanan_id' => $kjpp,
|
||||
'created_by' => $userId, // Set created_by for details
|
||||
'updated_by' => $userId
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -100,6 +113,8 @@ class TenderController extends Controller
|
||||
$tujuan_penilaian_kjpp = null;
|
||||
$jenis_laporan = null;
|
||||
|
||||
$penawaranExists = PenawaranTender::where('nomor_registrasi', $noreg)->exists();
|
||||
|
||||
$penawaran1 = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
||||
// dd($penawaran1->id);
|
||||
if ($penawaran1) {
|
||||
@@ -115,7 +130,7 @@ class TenderController extends Controller
|
||||
|
||||
// dd($kjpps);
|
||||
|
||||
return view('lpj::penawaran.show', compact('noreg', 'penawaran', 'kjpps', 'tujuan_penilaian_kjpp', 'jenis_laporan'));
|
||||
return view('lpj::penawaran.show', compact('noreg', 'penawaran', 'kjpps', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'penawaranExists'));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -125,6 +140,7 @@ class TenderController extends Controller
|
||||
{
|
||||
// Find the specific penawaran by its ID
|
||||
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
||||
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
||||
|
||||
$status = StatusPermohonan::all();
|
||||
$tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all();
|
||||
@@ -135,7 +151,7 @@ class TenderController extends Controller
|
||||
|
||||
$kjpp = KJPP::all();
|
||||
|
||||
return view('lpj::penawaran.edit', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'noreg', 'kjpps'));
|
||||
return view('lpj::penawaran.edit', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'noreg', 'kjpps', 'permohonan'));
|
||||
}
|
||||
|
||||
|
||||
@@ -151,9 +167,20 @@ class TenderController extends Controller
|
||||
try {
|
||||
// Ambil data penawaran berdasarkan nomor registrasi
|
||||
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
||||
$permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first();
|
||||
|
||||
// Ambil ID user yang sedang login
|
||||
$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'
|
||||
|
||||
// Update data penawaran dan permohonan
|
||||
$penawaran->update($validated);
|
||||
$permohonan->update($validated);
|
||||
|
||||
$kjpps = $request->input('kjpp', []);
|
||||
|
||||
@@ -162,6 +189,8 @@ class TenderController extends Controller
|
||||
if (!in_array($kjpp->kjpp_rekanan_id, $kjpps)) {
|
||||
// Ubah status KJPP lama menjadi 0
|
||||
$kjpp->status = 0;
|
||||
$kjpp->created_by = $userId;
|
||||
$kjpp->updated_by = $userId; // Set updated_by
|
||||
$kjpp->save();
|
||||
}
|
||||
}
|
||||
@@ -172,10 +201,14 @@ class TenderController extends Controller
|
||||
->where('kjpp_rekanan_id', $kjpp)
|
||||
->first();
|
||||
|
||||
// dd($existingDetail);
|
||||
|
||||
if ($existingDetail) {
|
||||
// Jika KJPP sudah ada, pastikan statusnya aktif (1)
|
||||
if ($existingDetail->status == 0) {
|
||||
$existingDetail->status = 1;
|
||||
$existingDetail->created_by = $userId;
|
||||
$existingDetail->updated_by = $userId; // Set updated_by
|
||||
$existingDetail->save();
|
||||
}
|
||||
} else {
|
||||
@@ -184,6 +217,8 @@ class TenderController extends Controller
|
||||
'penawaran_id' => $penawaran->id,
|
||||
'kjpp_rekanan_id' => $kjpp,
|
||||
'status' => 1, // Default status untuk KJPP baru adalah 1
|
||||
'created_by' => $userId, // Set created_by untuk data baru
|
||||
'updated_by' => $userId, // Set updated_by juga
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -207,6 +242,7 @@ class TenderController extends Controller
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
|
||||
@@ -61,16 +61,25 @@ class TenderPenawaranRequest extends FormRequest
|
||||
$validator->after(function ($validator) {
|
||||
$startDate = strtotime($this->input('start_date'));
|
||||
$endDate = strtotime($this->input('end_date'));
|
||||
$today = strtotime(date('Y-m-d'));
|
||||
|
||||
if ($endDate < $startDate) {
|
||||
$validator->errors()->add('end_date', 'Tanggal Akhir tidak boleh lebih awal dari Tanggal Awal.');
|
||||
}
|
||||
|
||||
if ($startDate < $today) {
|
||||
$validator->errors()->add('start_date', 'Tanggal Awal tidak boleh sebelum hari ini.');
|
||||
}
|
||||
|
||||
// Validasi minimal 3 pilihan pada nama_kjpp
|
||||
$namaKjpp = $this->input('kjpp', []);
|
||||
|
||||
// jika nama KJPP itu kosong
|
||||
if (empty($namaKjpp)) {
|
||||
$validator->errors()->add('kjpp', 'Nama KJPP wajib diisi.');
|
||||
}
|
||||
// jika terisi kurang dari 3 item
|
||||
if (is_array($namaKjpp) && count($namaKjpp) < 3) {
|
||||
elseif (is_array($namaKjpp) && count($namaKjpp) < 3) {
|
||||
$validator->errors()->add('kjpp', 'Nama KJPP Sebelumnya harus memiliki minimal 3 pilihan jika diisi.');
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user