Merge branch 'staging' into feature/senior-officer
This commit is contained in:
@@ -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')
|
||||||
@@ -398,4 +385,17 @@ use Illuminate\Support\Facades\Auth;
|
|||||||
|
|
||||||
return response()->download(storage_path('app/public/' .$document->spk_dokumen_path));
|
return response()->download(storage_path('app/public/' .$document->spk_dokumen_path));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function updateSla(Request $request, $id): JsonResponse
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'sla' => 'required|integer|min:1',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$permohonan = Permohonan::where('nomor_registrasi','=',$id)->first();
|
||||||
|
$permohonan->sla = $request->sla;
|
||||||
|
$permohonan->save();
|
||||||
|
|
||||||
|
return response()->json(['message' => 'SLA updated successfully']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ class TenderPenawaranRequest extends FormRequest
|
|||||||
{
|
{
|
||||||
$rules = [
|
$rules = [
|
||||||
'nama_kjpp_sebelumnya' => 'nullable',
|
'nama_kjpp_sebelumnya' => 'nullable',
|
||||||
'biaya_kjpp_sebelumnya' => 'nullable|numeric',
|
'biaya_kjpp_sebelumnya' => 'nullable',
|
||||||
'tanggal_penilaian_sebelumnya' => 'nullable',
|
'tanggal_penilaian_sebelumnya' => 'nullable',
|
||||||
'nomor_registrasi' => 'required',
|
'nomor_registrasi' => 'required',
|
||||||
'kjpp.*' => 'exists:kjpp,id',
|
'kjpp.*' => 'exists:kjpp,id',
|
||||||
|
|||||||
@@ -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');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,8 +53,9 @@
|
|||||||
Biaya KJPP Sebelumnya
|
Biaya KJPP Sebelumnya
|
||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input class="flex w-full text-gray-600 font-medium text-sm input-custom" type="text"
|
<input type="hidden" name="biaya_kjpp_sebelumnya"
|
||||||
name="biaya_kjpp_sebelumnya" readonly
|
value="{{ $penawaran->biaya_kjpp_sebelumnya !== null ? $penawaran->biaya_kjpp_sebelumnya : '' }}">
|
||||||
|
<input class="flex w-full text-gray-600 font-medium text-sm input-custom" type="text" readonly
|
||||||
value="{{ $penawaran->biaya_kjpp_sebelumnya !== null ? formatRupiah($penawaran->biaya_kjpp_sebelumnya) : '' }}">
|
value="{{ $penawaran->biaya_kjpp_sebelumnya !== null ? formatRupiah($penawaran->biaya_kjpp_sebelumnya) : '' }}">
|
||||||
</div>
|
</div>
|
||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
|
|||||||
@@ -216,7 +216,13 @@
|
|||||||
</a>`;
|
</a>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
return `<div class="flex flex-nowrap justify-center">`+iconDetail+iconProses+`</div>`;
|
|
||||||
|
var iconSendEmail = ` <a href="/tender/penawaran/${data.nomor_registrasi}/showKirimEmail" class="btn btn-sm btn-icon btn-clear btn-success" title="Kirim Email">
|
||||||
|
<i class="ki-filled ki-paper-plane"></i>
|
||||||
|
</a>`;
|
||||||
|
|
||||||
|
|
||||||
|
return `<div class="flex flex-nowrap justify-center">`+iconDetail+iconProses+iconSendEmail+`</div>`;
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -98,12 +98,63 @@
|
|||||||
|
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function spkCreate(regId)
|
function spkCreate(regId, sla)
|
||||||
{
|
{
|
||||||
var url1 = "/spk/"+regId+"/edit";
|
const csrf = '{{ @csrf_token() }}';
|
||||||
var url = "{{ url('/') }}"+url1;
|
if (!sla) {
|
||||||
$(location).attr('href',url);
|
Swal.fire({
|
||||||
|
title: 'Input SLA',
|
||||||
|
input: 'number',
|
||||||
|
inputAttributes: {
|
||||||
|
min: 1,
|
||||||
|
step: 1
|
||||||
|
},
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonText: 'Submit',
|
||||||
|
showLoaderOnConfirm: true,
|
||||||
|
preConfirm: (inputValue) => {
|
||||||
|
if (inputValue) {
|
||||||
|
return fetch(`/spk/update-sla/${regId}`, {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'X-CSRF-TOKEN': `${csrf}`
|
||||||
|
},
|
||||||
|
body: JSON.stringify({ sla: inputValue })
|
||||||
|
})
|
||||||
|
.then(response => {
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(response.statusText)
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
Swal.showValidationMessage(
|
||||||
|
`Request failed: ${error}`
|
||||||
|
)
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
Swal.showValidationMessage('SLA is required')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
allowOutsideClick: () => !Swal.isLoading()
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.isConfirmed) {
|
||||||
|
Swal.fire({
|
||||||
|
title: 'SLA updated successfully',
|
||||||
|
icon: 'success'
|
||||||
|
}).then(() => {
|
||||||
|
// Redirect to edit page after successful SLA update
|
||||||
|
window.location.href = "{{ url('/') }}/spk/"+regId+"/edit";
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// If SLA is not empty, directly redirect to edit page
|
||||||
|
window.location.href = "{{ url('/') }}/spk/"+regId+"/edit";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<script type="module">
|
<script type="module">
|
||||||
const element = document.querySelector('#spk-table');
|
const element = document.querySelector('#spk-table');
|
||||||
@@ -203,11 +254,12 @@
|
|||||||
actions: {
|
actions: {
|
||||||
title: 'Status',
|
title: 'Status',
|
||||||
render: (item, data) => {
|
render: (item, data) => {
|
||||||
|
console.log(data.id);
|
||||||
var spkShow ='';
|
var spkShow ='';
|
||||||
var spkCreate='';
|
var spkCreate='';
|
||||||
if(!data.spk_dokumen_path)
|
if(!data.spk_dokumen_path)
|
||||||
{
|
{
|
||||||
spkCreate=`<a class="btn btn-sm btn-icon btn-clear btn-info" title="Buat SPK" onclick="spkCreate(${data.id})" >
|
spkCreate=`<a class="btn btn-sm btn-icon btn-clear btn-info" title="Buat SPK" onclick="spkCreate(${data.id}, ${data.permohonan.sla})" >
|
||||||
<i class="ki-outline ki-notepad-edit"></i>
|
<i class="ki-outline ki-notepad-edit"></i>
|
||||||
</a>`;
|
</a>`;
|
||||||
}
|
}
|
||||||
@@ -218,7 +270,7 @@
|
|||||||
<i class="ki-filled ki-cloud-download"></i>
|
<i class="ki-filled ki-cloud-download"></i>
|
||||||
</a> `;
|
</a> `;
|
||||||
if(data.status==='spk') {
|
if(data.status==='spk') {
|
||||||
spkCreate = `<a class="btn btn-sm btn-icon btn-clear btn-info" title="Buat SPK" onclick="spkCreate(${data.id})" >
|
spkCreate = `<a class="btn btn-sm btn-icon btn-clear btn-info" title="Buat SPK" onclick="spkCreate(${data.id}, ${data.permohonan.sla})" >
|
||||||
<i class="ki-outline ki-notepad-edit"></i>
|
<i class="ki-outline ki-notepad-edit"></i>
|
||||||
</a>`;
|
</a>`;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,6 +110,7 @@ Route::middleware(['auth'])->group(function () {
|
|||||||
|
|
||||||
Route::get('/spk', 'index')->name('spk.index');
|
Route::get('/spk', 'index')->name('spk.index');
|
||||||
Route::get('/spk/datatables', 'dataForDatatables')->name('spk.datatables');
|
Route::get('/spk/datatables', 'dataForDatatables')->name('spk.datatables');
|
||||||
|
Route::POST('/spk/update-sla/{id}', 'updateSla')->name('spk.update-sla');
|
||||||
Route::get('/spk/{spk}', 'show')->name('spk.show');
|
Route::get('/spk/{spk}', 'show')->name('spk.show');
|
||||||
Route::get('/spk/{spk}/edit', 'edit')->name('spk.edit');
|
Route::get('/spk/{spk}/edit', 'edit')->name('spk.edit');
|
||||||
Route::put('/spk/{spk}', 'update')->name('spk.update');
|
Route::put('/spk/{spk}', 'update')->name('spk.update');
|
||||||
|
|||||||
Reference in New Issue
Block a user