Feature Registrasi menambahkan inputan SLA (kebutuhan SPK PDF), Feature SPK menambahkan parameter SLA generate number SPK
This commit is contained in:
@@ -106,11 +106,14 @@ use Modules\Lpj\Models\HolidayCalendar;
|
||||
// generate last penawaran.code
|
||||
function onLastnumberCodePenawaran(): string
|
||||
{
|
||||
// chek data penawaran terakhir --> mengurutkan data berdasarkan kolom `created_at` secara DESC
|
||||
// ambil code terakhir
|
||||
$maxCode = PenawaranTender::max('code');
|
||||
// chek data penawaran terakhir --> mengurutkan data berdasarkan kolom `created_at` secara DESC
|
||||
// $penawaran = PenawaranTender::latest()->first();
|
||||
$penawaran = PenawaranTender::where('code','=',$maxCode)->first();
|
||||
$code_penawaran_last='';
|
||||
|
||||
// nomor di set 0001
|
||||
$noUrutAkhirString = sprintf("%04s", 1);
|
||||
if($penawaran)
|
||||
{
|
||||
@@ -121,10 +124,124 @@ use Modules\Lpj\Models\HolidayCalendar;
|
||||
{
|
||||
$noUrutAkhirString = sprintf("%04s", abs($code_penawaran_last + 1));
|
||||
}
|
||||
// jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 0001
|
||||
}
|
||||
|
||||
return 'NP'.Carbon::now()->format('y').$noUrutAkhirString;
|
||||
}
|
||||
|
||||
// generate last penawaran.no_spk
|
||||
function onLastnumberCodePenawaranSPK($jenis_laporan_code): string
|
||||
{
|
||||
|
||||
// 20241124_001 ==> spk_no_core
|
||||
// XXX / PJ / JKT / MONTH-ROM / FR|SR / 2024
|
||||
// 001 / PJ / JKT / XI / FR / 2024
|
||||
$maxCode = PenawaranTender::max('spk_no_core');
|
||||
$penawaran = PenawaranTender::where('spk_no_core','=',$maxCode)->first();
|
||||
$no_spk_penawaran_last='';
|
||||
$year_penawaran_last='';
|
||||
$year_now = Carbon::now()->year;
|
||||
// nomor di set 001
|
||||
$noUrutAkhirString = sprintf("%03s", 1);
|
||||
if($penawaran)
|
||||
{
|
||||
$no_spk_penawaran_last = substr ($maxCode, -3);
|
||||
$year_penawaran_last = substr ($maxCode, 0, 4);
|
||||
|
||||
if($year_now == $year_penawaran_last)
|
||||
{
|
||||
$noUrutAkhirString = sprintf("%03s", abs($no_spk_penawaran_last + 1));
|
||||
}
|
||||
// jika ternyata tahun tdk sama (kurang dari tahun sekarang), maka nomor di set 001
|
||||
}
|
||||
|
||||
$month = onRomawi(Carbon::now()->month);
|
||||
|
||||
$lastSPK = $noUrutAkhirString.' / PJ / JKT / '. $month .' / ' .$jenis_laporan_code.' / '.$year_now;
|
||||
return $lastSPK;
|
||||
}
|
||||
|
||||
function onRomawi(int $bln): string
|
||||
{
|
||||
switch ($bln){
|
||||
case 1:
|
||||
return "I";
|
||||
break;
|
||||
case 2:
|
||||
return "II";
|
||||
break;
|
||||
case 3:
|
||||
return "III";
|
||||
break;
|
||||
case 4:
|
||||
return "IV";
|
||||
break;
|
||||
case 5:
|
||||
return "V";
|
||||
break;
|
||||
case 6:
|
||||
return "VI";
|
||||
break;
|
||||
case 7:
|
||||
return "VII";
|
||||
break;
|
||||
case 8:
|
||||
return "VIII";
|
||||
break;
|
||||
case 9:
|
||||
return "IX";
|
||||
break;
|
||||
case 10:
|
||||
return "X";
|
||||
break;
|
||||
case 11:
|
||||
return "XI";
|
||||
break;
|
||||
case 12:
|
||||
return "XII";
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function penyebut($nilai) {
|
||||
$nilai = abs($nilai);
|
||||
$huruf = array("", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas");
|
||||
$temp = "";
|
||||
if ($nilai < 12) {
|
||||
$temp = " ". $huruf[$nilai];
|
||||
} else if ($nilai <20) {
|
||||
$temp = penyebut($nilai - 10). " belas";
|
||||
} else if ($nilai < 100) {
|
||||
$temp = penyebut($nilai/10)." puluh". penyebut($nilai % 10);
|
||||
} else if ($nilai < 200) {
|
||||
$temp = " seratus" . penyebut($nilai - 100);
|
||||
} else if ($nilai < 1000) {
|
||||
$temp = penyebut($nilai/100) . " ratus" . penyebut($nilai % 100);
|
||||
} else if ($nilai < 2000) {
|
||||
$temp = " seribu" . penyebut($nilai - 1000);
|
||||
} else if ($nilai < 1000000) {
|
||||
$temp = penyebut($nilai/1000) . " ribu" . penyebut($nilai % 1000);
|
||||
} else if ($nilai < 1000000000) {
|
||||
$temp = penyebut($nilai/1000000) . " juta" . penyebut($nilai % 1000000);
|
||||
} else if ($nilai < 1000000000000) {
|
||||
$temp = penyebut($nilai/1000000000) . " milyar" . penyebut(fmod($nilai,1000000000));
|
||||
} else if ($nilai < 1000000000000000) {
|
||||
$temp = penyebut($nilai/1000000000000) . " trilyun" . penyebut(fmod($nilai,1000000000000));
|
||||
}
|
||||
return $temp;
|
||||
}
|
||||
|
||||
function terbilang($nilai) {
|
||||
if($nilai<0) {
|
||||
$hasil = "minus ". trim(penyebut($nilai));
|
||||
} else {
|
||||
$hasil = trim(penyebut($nilai));
|
||||
}
|
||||
return $hasil;
|
||||
}
|
||||
// andy add
|
||||
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
}
|
||||
} else {
|
||||
$data['status'] = 'error';
|
||||
$data['message'] ['message_ajax'] = ["no ajax request"];
|
||||
$data['message']['message_ajax'] = ["no ajax request"];
|
||||
}
|
||||
|
||||
return response()->json($data);
|
||||
@@ -149,6 +149,7 @@
|
||||
if ($tindakan == 0) {
|
||||
$dataku['jenis_penilaian_id'] = $request->jenis_penilaian;
|
||||
$dataku['region_id'] = $request->region;
|
||||
$dataku['sla'] = $request->sla;
|
||||
$dataku['status'] = 'registered';
|
||||
if ($request->catatan2) {
|
||||
$dataku['registrasi_catatan'] = $request->catatan2;
|
||||
@@ -205,6 +206,12 @@
|
||||
$validateIt['region'] = ['required'];
|
||||
$messageIt ['region.required'] = 'Silahkan pilih Region';
|
||||
}
|
||||
else
|
||||
{
|
||||
$validateIt['sla'] = ['required'];
|
||||
$messageIt ['sla.required'] = 'Silahkan isi SLA';
|
||||
}
|
||||
|
||||
} elseif ($tindakan == 1) {
|
||||
$validateIt['catatan'] = ['required'];
|
||||
$messageIt ['catatan.required'] = 'Silahkan isi Catatan';
|
||||
|
||||
@@ -104,12 +104,11 @@ use Illuminate\Support\Facades\Auth;
|
||||
|
||||
}
|
||||
|
||||
// data dokumen_spk
|
||||
if($obj->dokumen)
|
||||
// data spk_dokumen_path
|
||||
if($obj->penawaran->spk_dokumen_path)
|
||||
{
|
||||
$spkpenawaran_path = Storage::url($obj->dokumen);
|
||||
// dd($spkpenawaran_path);
|
||||
$data[$i]->dokumen = $spkpenawaran_path;
|
||||
$spk_dokumen_path = Storage::url($obj->penawaran->spk_dokumen_path);
|
||||
$data[$i]->penawaran->spk_dokumen_path = $spk_dokumen_path;
|
||||
}
|
||||
|
||||
$i++;
|
||||
@@ -151,6 +150,7 @@ use Illuminate\Support\Facades\Auth;
|
||||
$penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id')
|
||||
->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id')
|
||||
->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id')
|
||||
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
|
||||
->where('detail_penawaran.status','=',1)
|
||||
->where('penawaran.id','=', $id)
|
||||
->select('penawaran.*', 'detail_penawaran.attachment as attachmentku',
|
||||
@@ -159,7 +159,9 @@ use Illuminate\Support\Facades\Auth;
|
||||
'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'
|
||||
'jenis_laporan.name as jenis_laporan_name',
|
||||
'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name',
|
||||
'jenis_laporan.code as jenis_laporan_code'
|
||||
)->first();
|
||||
|
||||
$permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)
|
||||
@@ -168,19 +170,30 @@ use Illuminate\Support\Facades\Auth;
|
||||
->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name',
|
||||
'dokumen_jaminan.address as dokumen_jaminan_address');
|
||||
|
||||
$data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first();
|
||||
$data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian','dokumenjaminan'])->first();
|
||||
|
||||
if($penawaran->detail_penawaran_tgl_proposal)
|
||||
$penawaran->detail_penawaran_tgl_proposal = Carbon::parse($penawaran->detail_penawaran_tgl_proposal)->format('d F Y');
|
||||
|
||||
|
||||
// generate no spk
|
||||
$spk_no_last=$penawaran->spk_no;
|
||||
if(!$spk_no_last)
|
||||
{
|
||||
$spk_no_last = onLastnumberCodePenawaranSPK($penawaran->jenis_laporan_code);
|
||||
$penawaran->spk_no = $spk_no_last;
|
||||
}
|
||||
|
||||
// generate no spk
|
||||
|
||||
return view('lpj::spk.edit', compact('data', 'penawaran'));
|
||||
}
|
||||
|
||||
public function update(Request $request, $id): JsonResponse
|
||||
{
|
||||
// init
|
||||
$data1 = array();
|
||||
$dataPermohonan = array();
|
||||
$data1 = [];
|
||||
// $dataPermohonan = array();
|
||||
$dataPenawaran = [];
|
||||
// data
|
||||
|
||||
$penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id')
|
||||
@@ -194,7 +207,8 @@ use Illuminate\Support\Facades\Auth;
|
||||
'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'
|
||||
'jenis_laporan.name as jenis_laporan_name',
|
||||
'jenis_laporan.code as jenis_laporan_code'
|
||||
)->first();
|
||||
|
||||
$permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)
|
||||
@@ -202,7 +216,7 @@ use Illuminate\Support\Facades\Auth;
|
||||
->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id')
|
||||
->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name');
|
||||
|
||||
$data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first();
|
||||
$data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian','dokumenjaminan'])->first();
|
||||
|
||||
if($penawaran->detail_penawaran_tgl_proposal)
|
||||
$penawaran->detail_penawaran_tgl_proposal = Carbon::parse($penawaran->detail_penawaran_tgl_proposal)->format('d F Y');
|
||||
@@ -213,15 +227,33 @@ use Illuminate\Support\Facades\Auth;
|
||||
$newFileNameWithPath = $folderPath . $newFileName;
|
||||
|
||||
// update table permohonan
|
||||
$dataPermohonan=['dokumen' => $newFileNameWithPath];
|
||||
$data->update($dataPermohonan);
|
||||
// $dataPermohonan=['dokumen' => $newFileNameWithPath];
|
||||
// $data->update($dataPermohonan);
|
||||
// update table permohonan
|
||||
|
||||
// update table penawaran
|
||||
$dataPenawaran['spk_dokumen_path'] = $newFileNameWithPath;
|
||||
if(!$penawaran->spk_no)
|
||||
{
|
||||
$spk_no_last = onLastnumberCodePenawaranSPK($penawaran->jenis_laporan_code);
|
||||
// $penawaran->no_spk = $no_spk_last;
|
||||
$date_now = Carbon::now()->format('Ymd');// 20240124
|
||||
$spk_number = substr ($spk_no_last, 0, 3);
|
||||
$dataPenawaran['spk_no'] = $spk_no_last;
|
||||
$dataPenawaran['spk_no_core'] = $date_now.'_'.$spk_number;
|
||||
|
||||
$penawaran->spk_no = $spk_no_last;
|
||||
|
||||
}
|
||||
$penawaranM = PenawaranTender::find($penawaran->id);
|
||||
$penawaranM->update($dataPenawaran);
|
||||
// update table penawaran
|
||||
|
||||
// pdf path
|
||||
$spkpenawaran_path = Storage::url($newFileNameWithPath);
|
||||
|
||||
$pdf =Pdf::loadView('lpj::spk.documentSPK', compact('data', 'penawaran'));
|
||||
|
||||
$pdf->setPaper('A4', 'portrait');
|
||||
$content = $pdf->download()->getOriginalContent();
|
||||
Storage::put('public/'.$newFileNameWithPath,$content);
|
||||
|
||||
@@ -260,8 +292,10 @@ use Illuminate\Support\Facades\Auth;
|
||||
}
|
||||
|
||||
public function download($id) {
|
||||
$document = Permohonan::find($id);
|
||||
|
||||
return response()->download(storage_path('app/public/' .$document->dokumen));
|
||||
// dokumen pdf diambil dari penawaran.spk_dokumen_path
|
||||
$permohonan = Permohonan::find($id);
|
||||
$document = PenawaranTender::where('nomor_registrasi','=',$permohonan->nomor_registrasi)->first();
|
||||
|
||||
return response()->download(storage_path('app/public/' .$document->spk_dokumen_path));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
'registrasi_at',
|
||||
'jenis_penilaian_id',
|
||||
'region_id',
|
||||
'sla'
|
||||
];
|
||||
|
||||
protected static function boot()
|
||||
@@ -153,4 +154,9 @@
|
||||
{
|
||||
return $this->hasMany(PermohonanHistory::class, 'permohonan_id', 'id')->orderBy('created_at', 'desc');
|
||||
}
|
||||
|
||||
public function dokumenjaminan()
|
||||
{
|
||||
return $this->hasMany(DokumenJaminan::class);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user