Merge branch 'staging' of https://git.putrakuningan.com/daengdeni/lpj into tender

This commit is contained in:
2025-03-05 11:23:24 +07:00
7 changed files with 131 additions and 57 deletions

View File

@@ -148,26 +148,17 @@ use Illuminate\Support\Facades\Auth;
public function edit($id) public function edit($id)
{ {
// dd(Carbon::now()->addDays(1)->format('d F Y')); $penawaran = PenawaranTender::with(['jenisLaporan','tujuanPenilaianKjpp','detail.kjpp','penilaian','persetujuan_penawaran'])->where('id',$id)->first();
// dd(Carbon::now()->subDays(1)->format('d F Y')); jenis_laporan_name $penawaran->attachmentku = $penawaran->detail->attachment;
$penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id') $penawaran->detail_penawaran_no_proposal = $penawaran->detail->no_proposal;
->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') $penawaran->detail_penawaran_tgl_proposal = $penawaran->detail->tgl_proposal;
->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') $penawaran->detail_penawaran_biaya_penawaran = $penawaran->detail->biaya_penawaran;
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id') $penawaran->kjpp_name = $penawaran->detail->kjpp->name;
->leftJoin('penilaian', 'penilaian.nomor_registrasi','=','penawaran.nomor_registrasi') $penawaran->kjpp_address = $penawaran->detail->kjpp->address;
->where('detail_penawaran.status','=',1) $penawaran->jenis_laporan_name = $penawaran->jenisLaporan->name;
->where('penawaran.id','=', $id) $penawaran->jenis_laporan_code = $penawaran->jenisLaporan->code;
->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', $penawaran->tujuan_penilaian_kjpp_name = $penawaran->tujuanPenilaianKjpp->name;
'detail_penawaran.no_proposal as detail_penawaran_no_proposal', $penawaran->penilaian_waktu_penilain = $penawaran->penilaian->waktu_penilaian;
'detail_penawaran.tgl_proposal as detail_penawaran_tgl_proposal',
'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran',
'kjpp.name as kjpp_name',
'kjpp.address as kjpp_address',
'jenis_laporan.name as jenis_laporan_name',
'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name',
'jenis_laporan.code as jenis_laporan_code',
'penilaian.waktu_penilaian as penilaian_waktu_penilain'
)->first();
$permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi) $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)
->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id') ->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id')
@@ -236,28 +227,24 @@ use Illuminate\Support\Facades\Auth;
public function update(Request $request, $id): JsonResponse public function update(Request $request, $id): JsonResponse
{ {
// init // init
$data1 = []; $data1 = [];
// $dataPermohonan = array(); // $dataPermohonan = array();
$dataPenawaran = []; $dataPenawaran = [];
// data // data
$penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id') $penawaran = PenawaranTender::with(['jenisLaporan','tujuanPenilaianKjpp','detail.kjpp','penilaian','persetujuan_penawaran'])->where('id',$id)->first();
->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') $penawaran->attachmentku = $penawaran->detail->attachment;
->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') $penawaran->detail_penawaran_no_proposal = $penawaran->detail->no_proposal;
->leftJoin('penilaian', 'penilaian.nomor_registrasi','=','penawaran.nomor_registrasi') $penawaran->detail_penawaran_tgl_proposal = $penawaran->detail->tgl_proposal;
->where('detail_penawaran.status','=',1) $penawaran->detail_penawaran_biaya_penawaran = $penawaran->detail->biaya_penawaran;
->where('penawaran.id','=', $id) $penawaran->kjpp_name = $penawaran->detail->kjpp->name;
->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', $penawaran->kjpp_address = $penawaran->detail->kjpp->address;
'detail_penawaran.no_proposal as detail_penawaran_no_proposal', $penawaran->jenis_laporan_name = $penawaran->jenisLaporan->name;
'detail_penawaran.tgl_proposal as detail_penawaran_tgl_proposal', $penawaran->jenis_laporan_code = $penawaran->jenisLaporan->code;
'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran', $penawaran->tujuan_penilaian_kjpp_name = $penawaran->tujuanPenilaianKjpp->name;
'kjpp.name as kjpp_name', $penawaran->penilaian_waktu_penilain = $penawaran->penilaian->waktu_penilaian;
'kjpp.address as kjpp_address',
'jenis_laporan.name as jenis_laporan_name',
'jenis_laporan.code as jenis_laporan_code',
'penilaian.waktu_penilaian as penilaian_waktu_penilain'
)->first();
$permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi) $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)
->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id') ->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id')

View File

@@ -15,7 +15,7 @@ class CustomFieldRequest extends FormRequest
{ {
return [ return [
'name' => 'required|max:255', 'name' => 'required|max:255',
'type' => 'required|in:text,select,radio,checkbox', 'type' => 'required|in:text,select,radio,checkbox,date,number',
'label' => 'nullable|max:255', 'label' => 'nullable|max:255',
'urutan_prioritas' => [ 'urutan_prioritas' => [
'nullable', 'nullable',

View File

@@ -59,4 +59,12 @@ class PenawaranTender extends Model
public function persetujuan(){ public function persetujuan(){
return $this->belongsTo(PersetujuanPenawaran::class, 'id', 'penawaran_id'); return $this->belongsTo(PersetujuanPenawaran::class, 'id', 'penawaran_id');
} }
public function penilaian(){
return $this->belongsTo(Penilaian::class, 'nomor_registrasi', 'nomor_registrasi');
}
public function persetujuan_penawaran(){
return $this->belongsTo(PersetujuanPenawaran::class, 'id', 'penawaran_id');
}
} }

View File

@@ -58,8 +58,10 @@
<select class="input @error('type') border-danger bg-danger-light @enderror" name="type"> <select class="input @error('type') border-danger bg-danger-light @enderror" name="type">
<option value="text" {{ (isset($customField->type) && $customField->type == 'text') ? 'selected' : '' }}>Text</option> <option value="text" {{ (isset($customField->type) && $customField->type == 'text') ? 'selected' : '' }}>Text</option>
<option value="radio" {{ (isset($customField->type) && $customField->type == 'radio') ? 'selected' : '' }}>Radio</option> <option value="radio" {{ (isset($customField->type) && $customField->type == 'radio') ? 'selected' : '' }}>Radio</option>
<option value="number" {{ (isset($customField->type) && $customField->type == 'select') ? 'selected' : '' }}>Select</option> <option value="select" {{ (isset($customField->type) && $customField->type == 'select') ? 'selected' : '' }}>Select</option>
<option value="option" {{ (isset($customField->type) && $customField->type == 'checkbox') ? 'selected' : '' }}>Checkbox</option> <option value="checkbox" {{ (isset($customField->type) && $customField->type == 'checkbox') ? 'selected' : '' }}>Checkbox</option>
<option value="date" {{ (isset($customField->type) && $customField->type == 'date') ? 'selected' : '' }}>Date</option>
<option value="number" {{ (isset($customField->type) && $customField->type == 'number') ? 'selected' : '' }}>Number</option>
</select> </select>
@error('type') @error('type')
<em class="alert text-danger text-sm">{{ $message }}</em> <em class="alert text-danger text-sm">{{ $message }}</em>

View File

@@ -317,11 +317,38 @@
@if($detail->jenisLegalitasJaminan->custom_fields) @if($detail->jenisLegalitasJaminan->custom_fields)
@foreach($detail->jenisLegalitasJaminan->custom_fields as $key) @foreach($detail->jenisLegalitasJaminan->custom_fields as $key)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
@php
$customField = getCustomField($key);
$fieldValue = json_decode($detail->details)->{$customField->name} ?? '';
@endphp
<label class="form-label max-w-56 capitalize"> <label class="form-label max-w-56 capitalize">
{{ getCustomField($key)->label ?? "" }} {{ $customField->label ?? "" }}
</label> </label>
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
<input class="input" type="text" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{getCustomField($key)->name}}]" value="{{ json_decode($detail->details)->{getCustomField($key)->name} ?? '' }}"> @switch($customField->type)
@case('text')
<input class="input" type="text" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" value="{{ $fieldValue }}" placeholder="...">
@break
@case('number')
<input class="input" type="number" step="0.01" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" value="{{ $fieldValue }}" placeholder="...">
@break
@case('date')
<input class="input" type="date" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" value="{{ $fieldValue }}">
@break
@case('textarea')
<textarea class="textarea" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" placeholder="...">{{ $fieldValue }}</textarea>
@break
@case('select')
<select class="select" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]">
<option value="">Select an option</option>
@foreach($customField->options as $option)
<option value="{{ $option }}" {{ $fieldValue == $option ? 'selected' : '' }}>{{ $option }}</option>
@endforeach
</select>
@break
@default
<input class="input" type="text" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" value="{{ $fieldValue }}" placeholder="...">
@endswitch
</div> </div>
</div> </div>
@endforeach @endforeach
@@ -330,11 +357,37 @@
@if($detail->jenisLegalitasJaminan->custom_fields) @if($detail->jenisLegalitasJaminan->custom_fields)
@foreach($detail->jenisLegalitasJaminan->custom_fields as $key) @foreach($detail->jenisLegalitasJaminan->custom_fields as $key)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
@php
$customField = getCustomField($key);
@endphp
<label class="form-label max-w-56 capitalize"> <label class="form-label max-w-56 capitalize">
{{ getCustomField($key)->label }} {{ $customField->label }}
</label> </label>
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
<input class="input" type="text" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{getCustomField($key)->name}}]" placeholder="..."> @switch($customField->type)
@case('text')
<input class="input" type="text" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" placeholder="...">
@break
@case('number')
<input class="input" type="number" step="0.01" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" placeholder="...">
@break
@case('date')
<input class="input" type="date" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]">
@break
@case('textarea')
<textarea class="textarea" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" placeholder="..."></textarea>
@break
@case('select')
<select class="select" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]">
<option value="">Select an option</option>
@foreach($customField->options as $option)
<option value="{{ $option }}">{{ $option }}</option>
@endforeach
</select>
@break
@default
<input class="input" type="text" name="custom_field[{{$detail->jenisLegalitasJaminan->id}}][{{$customField->name}}]" placeholder="...">
@endswitch
</div> </div>
</div> </div>
@endforeach @endforeach
@@ -387,12 +440,36 @@
@if($item->custom_fields) @if($item->custom_fields)
@foreach($item->custom_fields as $field) @foreach($item->custom_fields as $field)
@php $custom_field = getCustomField($field) @endphp
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56 capitalize"> <label class="form-label max-w-56 capitalize">
{{ getCustomField($field)->label }} {{ $custom_field->label }}
</label> </label>
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
<input class="input" type="text" name="custom_field[{{$item->id}}][{{getCustomField($field)->name}}]" placeholder="..."> @switch($custom_field->type)
@case('text')
<input class="input" type="text" name="custom_field[{{$item->id}}][{{$custom_field->name}}]" placeholder="...">
@break
@case('number')
<input class="input" type="number" step="0.01" name="custom_field[{{$item->id}}][{{$custom_field->name}}]" placeholder="...">
@break
@case('date')
<input class="input" type="date" name="custom_field[{{$item->id}}][{{$custom_field->name}}]">
@break
@case('textarea')
<textarea class="textarea" name="custom_field[{{$item->id}}][{{$custom_field->name}}]" placeholder="..."></textarea>
@break
@case('select')
<select class="select" name="custom_field[{{$item->id}}][{{$custom_field->name}}]">
<option value="">Select an option</option>
@foreach($custom_field->options as $option)
<option value="{{ $option }}">{{ $option }}</option>
@endforeach
</select>
@break
@default
<input class="input" type="text" name="custom_field[{{$item->id}}][{{$custom_field->name}}]" placeholder="...">
@endswitch
</div> </div>
</div> </div>
@endforeach @endforeach
@@ -627,7 +704,7 @@
case "text": case "text":
return `<input class="input" type="text" name="custom_field[${itemId}][${fieldName}]" value="${value}">`; return `<input class="input" type="text" name="custom_field[${itemId}][${fieldName}]" value="${value}">`;
case "number": case "number":
return `<input class="input" type="number" name="custom_field[${itemId}][${fieldName}]" value="${value}">`; return `<input class="input" type="number" step="0.01" name="custom_field[${itemId}][${fieldName}]" value="${value}">`;
case "date": case "date":
return `<input class="input" type="date" name="custom_field[${itemId}][${fieldName}]" value="${value}">`; return `<input class="input" type="date" name="custom_field[${itemId}][${fieldName}]" value="${value}">`;
case "textarea": case "textarea":

View File

@@ -50,7 +50,7 @@
</table> </table>
<br/> <br/>
<center> <center>
<h2 style="text-decoration: underline;">SURAT PERINTAH KERJA</h2> <h2 style="text-decoration: underline;">SURAT PERINTAH KERJAaaa</h2>
<p> <p>
No. {{ $penawaran->spk_no }} No. {{ $penawaran->spk_no }}
<data id="date"></data> <data id="date"></data>
@@ -58,12 +58,11 @@
<p>Tanggal: <?php <p>Tanggal: <?php
echo date('d F Y'); ?></p> echo date('d F Y'); ?></p>
</center> </center>
<br>
<h3>Kepada</h3> <h3>Kepada</h3>
<p style="color: red; margin-left:25px">{{ $penawaran->kjpp_name }}</p>
<p style="color: red; margin-left:25px">{{ $penawaran->kjpp_address }}</p>
<br/> <br/>
<p style="color: red;">{{ $penawaran->kjpp_name }}</p>
<p style="color: red;">{{ $penawaran->kjpp_address }}</p>
<br/>
<h3>Perihal: <b>Penunjukan sebagai Penyedia Jasa Penilaian Agunan</b></h3>
<br/> <br/>
<p style="text-align: justify;"> <p style="text-align: justify;">
Berdasarkan surat penawaran Saudara Berdasarkan surat penawaran Saudara
@@ -238,8 +237,8 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<span style="color: red;">{{ $data->user->name }}</span><br> <span style="color: red;">{{ $penawaran->persetujuan_penawaran->creator->name }}</span><br>
<span style="color: red;">{{ $data->user->getRoleNames()[0] }}</span> <span style="color: red;">{{ $penawaran->persetujuan_penawaran->creator->getRoleNames()[0] }}</span>
</td> </td>
<td align="center">(……………………………………..)</td> <td align="center">(……………………………………..)</td>
</tr> </tr>

View File

@@ -74,10 +74,11 @@
Tanggal: <?php Tanggal: <?php
echo date('d F Y'); ?></p> echo date('d F Y'); ?></p>
</center> </center>
<br>
<h3>Kepada</h3> <h3>Kepada</h3>
<p style="color: red; margin-left:25px">{{ $penawaran->kjpp_name }}</p>
<p style="color: red; margin-left:25px">{{ $penawaran->kjpp_address }}</p>
<br/> <br/>
<p style="color: red;">{{ $penawaran->kjpp_name }}</p>
<p style="color: red;">{{ $penawaran->kjpp_address }}</p>
<br/> <br/>
<h3>Perihal: <b>Penunjukan sebagai Penyedia Jasa Penilaian Agunan</b></h3> <h3>Perihal: <b>Penunjukan sebagai Penyedia Jasa Penilaian Agunan</b></h3>
<br/> <br/>
@@ -257,8 +258,8 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<span style="color: red;">{{ $data->user->name }}</span><br> <span style="color: red;">{{ $penawaran->persetujuan_penawaran->creator->name }}</span><br>
<span style="color: red;">{{ $data->user->getRoleNames()[0] }}</span> <span style="color: red;">{{ $penawaran->persetujuan_penawaran->creator->getRoleNames()[0] }}</span>
</td> </td>
<td align="center">(……………………………………..)</td> <td align="center">(……………………………………..)</td>
</tr> </tr>