diff --git a/app/Http/Controllers/TenderController.php b/app/Http/Controllers/TenderController.php index 2e26ed1..7de57f0 100644 --- a/app/Http/Controllers/TenderController.php +++ b/app/Http/Controllers/TenderController.php @@ -42,10 +42,9 @@ class TenderController extends Controller $tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all(); $jenis_laporan = JenisLaporan::all(); - $kjpps = PenawaranDetailTender::pluck('kjpp_rekanan_id')->toArray(); - $kjpp = KJPP::whereNotIn('id', $kjpps)->get(); + $kjpp = KJPP::all(); - return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'id', 'kjpps')); + return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'id')); } /** @@ -55,8 +54,6 @@ class TenderController extends Controller { $validated = $request->validated(); - // dd($validated); - DB::beginTransaction(); try { @@ -65,13 +62,11 @@ class TenderController extends Controller $validated['nomor_registrasi'] = $penawaran->nomor_registrasi; $validated['status'] = $request->input('status') ?? 'Tender'; - // dd($validated['status']); $penawaranId = PenawaranTender::create($validated); $kjpps = $request->input('kjpp', []); - // loop untuk insert data users ke tabel teams_users foreach ($kjpps as $kjpp) { PenawaranDetailTender::create([ 'penawaran_id' => $penawaranId->id, @@ -113,19 +108,73 @@ class TenderController extends Controller /** * 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. */ diff --git a/app/Models/PenawaranTender.php b/app/Models/PenawaranTender.php index ece9b07..414f6d9 100644 --- a/app/Models/PenawaranTender.php +++ b/app/Models/PenawaranTender.php @@ -3,6 +3,7 @@ namespace Modules\Lpj\Models; use Illuminate\Database\Eloquent\Model; +use Modules\Lpj\Models\PenawaranDetailTender; use Illuminate\Database\Eloquent\Factories\HasFactory; class PenawaranTender extends Model @@ -15,4 +16,9 @@ class PenawaranTender extends Model protected $table = 'penawaran'; protected $guarded = ['id']; + + public function penawaranKjpp() + { + return $this->hasMany(PenawaranDetailTender::class, 'penawaran_id'); + } } diff --git a/resources/views/penawaran/edit.blade.php b/resources/views/penawaran/edit.blade.php new file mode 100644 index 0000000..144cfa6 --- /dev/null +++ b/resources/views/penawaran/edit.blade.php @@ -0,0 +1,213 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName(), request()->route('id')) }} +@endsection + +@section('content') +