Merge remote-tracking branch 'origin/tender' into staging

# Conflicts:
#	module.json
#	routes/breadcrumbs.php
This commit is contained in:
Daeng Deni Mardaeni
2024-10-05 11:13:35 +07:00
11 changed files with 617 additions and 134 deletions

View File

@@ -2,19 +2,22 @@
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;
use Maatwebsite\Excel\Facades\Excel;
use Modules\Lpj\Models\PenawaranTender;
use Modules\Lpj\Exports\PenawaranTenderExport;
use Modules\Lpj\Http\Requests\TenderPenawaranRequest;
use Modules\Lpj\Models\JenisLaporan;
use Modules\Lpj\Models\KJPP;
use Modules\Lpj\Models\Permohonan;
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;
class TenderController extends Controller
{
@@ -38,6 +41,7 @@ class TenderController extends Controller
$status = StatusPermohonan::all();
$tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all();
$jenis_laporan = JenisLaporan::all();
$kjpp = KJPP::all();
return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'id'));
@@ -50,27 +54,38 @@ class TenderController extends Controller
{
$validated = $request->validated();
if ($validated) {
DB::beginTransaction();
try {
$penawaran = PenawaranTender::find($id);
$validated['nomor_registrasi'] = $penawaran->nomor_registrasi;
// Mengatasi null untuk nama_kjpp_sebelumnya, biaya_kjpp_sebelumnya, dan tanggal_penilaian_sebelumnya
$validated['nama_kjpp_sebelumnya'] = json_encode($request->input('nama_kjpp_sebelumnya') ?? []);
$validated['biaya_kjpp_sebelumnya'] = $request->input('biaya_kjpp_sebelumnya') ?? '';
$validated['tanggal_penilaian_sebelumnya'] = $request->input('tanggal_penilaian_sebelumnya') ?? '';
$validated['status'] = $request->input('status') ?? 'Tender';
// dd($validated);
$penawaranId = PenawaranTender::create($validated);
PenawaranTender::create($validated);
$kjpps = $request->input('kjpp', []);
foreach ($kjpps as $kjpp) {
PenawaranDetailTender::create([
'penawaran_id' => $penawaranId->id,
'kjpp_rekanan_id' => $kjpp
]);
}
// Commit the transaction
DB::commit();
return redirect()
->route('tender.penawaran.index')
->with('success', 'Data Penawaran created successfully');
} else {
} catch (Exception $e) {
DB::rollBack();
return redirect()
->route('tender.penawaran.createPenawaran', $id)
->with('error', 'Validation failed');
->with('error', 'Validation failed: ' . $e);
}
}
@@ -80,27 +95,86 @@ class TenderController extends Controller
public function penawaran_show($id)
{
$penawaran = PenawaranTender::find($id);
$kjpps = KJPP::find($id);
$detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $id)->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();
return view('lpj::penawaran.show', compact('id', 'penawaran', 'kjpps'));
// dd($kjpps);
return view('lpj::penawaran.show', compact('id', 'penawaran', 'kjpps', 'tujuan_penilaian_kjpp', 'jenis_laporan'));
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
public function penawaran_edit($id)
{
return view('lpj::edit');
// Find the specific penawaran by its ID
$penawaran = PenawaranTender::find($id);
$status = StatusPermohonan::all();
$tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all();
$jenis_laporan = JenisLaporan::all();
$detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $id)->pluck('kjpp_rekanan_id')->toArray();
$kjpps = KJPP::whereIn('id', $detail_penawaran)->pluck('id')->toArray();
$kjpp = KJPP::all();
return view('lpj::penawaran.edit', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'id', 'kjpps'));
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, $id)
public function penawaran_update(TenderPenawaranRequest $request, $id)
{
//
$validated = $request->validated();
// dd($validated);
DB::beginTransaction();
try {
$penawaran = PenawaranTender::find($id);
$validated['nomor_registrasi'] = $penawaran->nomor_registrasi;
$validated['status'] = $request->input('status') ?? 'Tender';
$penawaran->update($validated);
$kjpps = $request->input('kjpp', []);
foreach ($penawaran->penawaranKjpp as $kjpp) {
$kjpp->delete(); // Assuming penawaranKjpp is a relationship on the PenawaranTender model
}
foreach ($kjpps as $kjpp) {
PenawaranDetailTender::create([
'penawaran_id' => $penawaran->id,
'kjpp_rekanan_id' => $kjpp
]);
}
// Commit the transaction
DB::commit();
return redirect()
->route('tender.penawaran.index')
->with('success', 'Data Penawaran created successfully');
} catch (Exception $e) {
DB::rollBack();
return redirect()
->route('tender.penawaran.createPenawaran', $id)
->with('error', 'Validation failed: ' . $e);
}
}
/**
* Remove the specified resource from storage.
*/