Menambahkan feature -Tombol Penawaran Ulang- (berguna untuk antisipasi perpanjang waktu penawaran dan lainnya). Dan menerapkannya di flow Otorisasi Tender, Proses Penawaran, dan Proses Penawaran Ulang
This commit is contained in:
@@ -36,7 +36,8 @@ use Modules\Lpj\Models\HolidayCalendar;
|
|||||||
|
|
||||||
$start_date = strtotime($penawaran->start_date);
|
$start_date = strtotime($penawaran->start_date);
|
||||||
$end_date = strtotime($penawaran->end_date);
|
$end_date = strtotime($penawaran->end_date);
|
||||||
$todays_date = strtotime(now());
|
// $todays_date = strtotime(now());
|
||||||
|
$todays_date = strtotime("+1 day", strtotime(now()));
|
||||||
|
|
||||||
$allow = true;
|
$allow = true;
|
||||||
if ($todays_date >= $start_date && $todays_date <= $end_date) {
|
if ($todays_date >= $start_date && $todays_date <= $end_date) {
|
||||||
|
|||||||
@@ -135,6 +135,7 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
|
|
||||||
public function edit($id)
|
public function edit($id)
|
||||||
{
|
{
|
||||||
|
// id ==> penawaran.id
|
||||||
return view('lpj::otorisasipenawaran.edit', compact('id'));
|
return view('lpj::otorisasipenawaran.edit', compact('id'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,6 +166,11 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
$h=0;
|
$h=0;
|
||||||
foreach($penawarandetailLogs as $obj1)
|
foreach($penawarandetailLogs as $obj1)
|
||||||
{
|
{
|
||||||
|
// tgl_proposal
|
||||||
|
if ($obj1->tgl_proposal) {
|
||||||
|
$penawarandetailLogs[$h]->tgl_proposal = Carbon::parse($obj1->tgl_proposal)->format('d M Y');
|
||||||
|
}
|
||||||
|
|
||||||
if($obj1->dokumen_persetujuan && Storage::disk('public')->exists($obj1->dokumen_persetujuan))
|
if($obj1->dokumen_persetujuan && Storage::disk('public')->exists($obj1->dokumen_persetujuan))
|
||||||
{
|
{
|
||||||
$penawarandetailLogs_path = Storage::url($obj1->dokumen_persetujuan);
|
$penawarandetailLogs_path = Storage::url($obj1->dokumen_persetujuan);
|
||||||
@@ -178,6 +184,11 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
$i=0;
|
$i=0;
|
||||||
foreach($penawrandetails as $obj)
|
foreach($penawrandetails as $obj)
|
||||||
{
|
{
|
||||||
|
// tgl_proposal
|
||||||
|
if ($obj->tgl_proposal) {
|
||||||
|
$penawrandetails[$i]->tgl_proposal = Carbon::parse($obj->tgl_proposal)->format('d M Y');
|
||||||
|
}
|
||||||
|
|
||||||
if($obj->dokumen_persetujuan && Storage::disk('public')->exists($obj->dokumen_persetujuan))
|
if($obj->dokumen_persetujuan && Storage::disk('public')->exists($obj->dokumen_persetujuan))
|
||||||
{
|
{
|
||||||
$penawrandetails_path = Storage::url($obj->dokumen_persetujuan);
|
$penawrandetails_path = Storage::url($obj->dokumen_persetujuan);
|
||||||
@@ -272,6 +283,8 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
'detail_penawaran_id' =>$model->id,
|
'detail_penawaran_id' =>$model->id,
|
||||||
'kjpp_rekanan_id' =>$model->kjpp_rekanan_id,
|
'kjpp_rekanan_id' =>$model->kjpp_rekanan_id,
|
||||||
'penawaran_id' =>$model->penawaran_id,
|
'penawaran_id' =>$model->penawaran_id,
|
||||||
|
'no_proposal' =>$model->no_proposal,
|
||||||
|
'tgl_proposal' =>$model->tgl_proposal,
|
||||||
'biaya_penawaran' =>$model->biaya_penawaran,
|
'biaya_penawaran' =>$model->biaya_penawaran,
|
||||||
'attachment' =>$model->attachment,
|
'attachment' =>$model->attachment,
|
||||||
'dokumen_persetujuan' =>$model->dokumen_persetujuan,
|
'dokumen_persetujuan' =>$model->dokumen_persetujuan,
|
||||||
@@ -305,12 +318,12 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['message'] ['active_date_range'] = array("Penawaran sudah di tutup");
|
$data['message']['message_error'] = array("Penawaran sudah di tutup");
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['message']['message_ajax'] = array("no ajax request");
|
$data['message']['message_error'] = array("no ajax request");
|
||||||
}
|
}
|
||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
@@ -320,4 +333,93 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
$prosespenawaran = PenawaranTender::find($id);
|
$prosespenawaran = PenawaranTender::find($id);
|
||||||
return view('lpj::otorisasipenawaran.show', compact('id','prosespenawaran'));
|
return view('lpj::otorisasipenawaran.show', compact('id','prosespenawaran'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function penawaranulang(Request $request, $id): JsonResponse
|
||||||
|
{
|
||||||
|
// $id ==> penawaran.id
|
||||||
|
$data = array();
|
||||||
|
$dataDetailPenawaranLog=[];
|
||||||
|
if (request()->ajax()) {
|
||||||
|
|
||||||
|
|
||||||
|
DB::beginTransaction();
|
||||||
|
try {
|
||||||
|
|
||||||
|
// update detail_penawaran => detail_penawaran.status = 1 (untuk all KJPP)
|
||||||
|
// update penawaran => penawaran.status ="tender", penawaran.updated_at, penawaran.updated_by
|
||||||
|
// update permohonan => permohonan.status ="tender", permohonan.updated_at, permohonan.updated_by
|
||||||
|
// insert detail_permohonan_log
|
||||||
|
|
||||||
|
PenawaranDetailTender::where('penawaran_id', $id)
|
||||||
|
->update(['status' => 1,
|
||||||
|
'updated_by' => Auth::id(),
|
||||||
|
'updated_at' => now()
|
||||||
|
]);
|
||||||
|
|
||||||
|
PenawaranTender::where('id', $id)
|
||||||
|
->update(['status'=>'tender',
|
||||||
|
'updated_by' => Auth::id(),
|
||||||
|
'updated_at' => now()
|
||||||
|
]);
|
||||||
|
|
||||||
|
Permohonan::where('nomor_registrasi',$request->noReg)
|
||||||
|
->update(['status'=>'tender',
|
||||||
|
'updated_by' => Auth::id(),
|
||||||
|
'updated_at' => now()
|
||||||
|
]);
|
||||||
|
|
||||||
|
$detailPenawaran = PenawaranDetailTender::where('penawaran_id', $id)
|
||||||
|
->distinct()
|
||||||
|
->get();
|
||||||
|
|
||||||
|
// log
|
||||||
|
if(sizeof($detailPenawaran)>0)
|
||||||
|
{
|
||||||
|
|
||||||
|
foreach ($detailPenawaran as $model) {
|
||||||
|
array_push($dataDetailPenawaranLog, [
|
||||||
|
'detail_penawaran_id' =>$model->id,
|
||||||
|
'kjpp_rekanan_id' =>$model->kjpp_rekanan_id,
|
||||||
|
'penawaran_id' =>$model->penawaran_id,
|
||||||
|
'no_proposal' =>$model->no_proposal,
|
||||||
|
'tgl_proposal' =>$model->tgl_proposal,
|
||||||
|
'biaya_penawaran' =>$model->biaya_penawaran,
|
||||||
|
'attachment' =>$model->attachment,
|
||||||
|
'dokumen_persetujuan' =>$model->dokumen_persetujuan,
|
||||||
|
'status' =>$model->status,
|
||||||
|
'authorized_status' =>$model->authorized_status,
|
||||||
|
'authorized_at' =>$model->authorized_at,
|
||||||
|
'authorized_at' =>$model->authorized_at,
|
||||||
|
'created_at' =>$model->created_at,
|
||||||
|
'updated_at' =>$model->updated_at,
|
||||||
|
'deleted_at' =>$model->deleted_at,
|
||||||
|
'created_by' =>$model->created_by,
|
||||||
|
'updated_by' =>$model->updated_by,
|
||||||
|
'deleted_by' =>$model->deleted_by
|
||||||
|
]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
PenawaranDetailTenderLog::insert($dataDetailPenawaranLog);
|
||||||
|
}
|
||||||
|
// log
|
||||||
|
|
||||||
|
DB::commit();
|
||||||
|
$data['detailPenawaran'] = $detailPenawaran;
|
||||||
|
$data['status'] = 'success';
|
||||||
|
$data['message']['message_success'] = array('Penawaran ulang successfully');
|
||||||
|
} catch (Exception $e) {
|
||||||
|
DB::rollBack();
|
||||||
|
$data['status'] = 'error';
|
||||||
|
$data['message']['message_error'] = array("Penawaran ulang failed.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$data['status'] = 'error';
|
||||||
|
$data['message']['message_error'] = array("no ajax request");
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json($data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,6 +168,7 @@ class ProsesPenawaranController extends Controller
|
|||||||
|
|
||||||
public function edit($id)
|
public function edit($id)
|
||||||
{
|
{
|
||||||
|
// $id => penawaran.id
|
||||||
return view('lpj::prosespenawaran.edit', compact('id'));
|
return view('lpj::prosespenawaran.edit', compact('id'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -232,11 +233,19 @@ class ProsesPenawaranController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function update(Request $request, $id): JsonResponse
|
public function update(Request $request, $id): JsonResponse
|
||||||
{
|
{
|
||||||
|
// $id => detail_penawaran.id
|
||||||
// init
|
// init
|
||||||
$data = array();
|
$data = array();
|
||||||
$dataPenawaranDetail = array();
|
$dataPenawaranDetail = array();
|
||||||
if (request()->ajax()) {
|
if (request()->ajax()) {
|
||||||
|
|
||||||
|
$penawarandetail = PenawaranDetailTender::find($id);
|
||||||
|
// cek masa aktif penawaran
|
||||||
|
$checkActiveDateRange = checkActiveDateRangePenawaran($penawarandetail->penawaran_id);
|
||||||
|
// cek status (penawaran.status = tender)
|
||||||
|
$penawaran = PenawaranTender::find($penawarandetail->penawaran_id);
|
||||||
|
if($checkActiveDateRange && ('tender'==$penawaran->status))
|
||||||
|
{
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$dataPenawaranDetail = ['updated_by' => Auth::id(),
|
$dataPenawaranDetail = ['updated_by' => Auth::id(),
|
||||||
@@ -282,6 +291,12 @@ class ProsesPenawaranController extends Controller
|
|||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['message'] ['message_error_try_catch'] = array('Proses Penawarn KJPP failed.');
|
$data['message'] ['message_error_try_catch'] = array('Proses Penawarn KJPP failed.');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$data['status'] = 'error';
|
||||||
|
$data['message']['active_date_range'] = array("Penawaran sudah di tutup");
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
@@ -319,15 +334,17 @@ class ProsesPenawaranController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function updateAll(Request $request, $id): JsonResponse
|
public function updateAll(Request $request, $id): JsonResponse
|
||||||
{
|
{
|
||||||
|
// $id = penawaran.id
|
||||||
// init
|
// init
|
||||||
$data = array();
|
$data = array();
|
||||||
$dataPermohonan = array();
|
$dataPermohonan = array();
|
||||||
$dataPenawaran = array();
|
$dataPenawaran = array();
|
||||||
$penawaran = PenawaranTender::find($id);
|
|
||||||
$checkActiveDateRange = checkActiveDateRangePenawaran($id);
|
|
||||||
|
|
||||||
// cek masa aktif penawaran
|
// cek masa aktif penawaran
|
||||||
if($checkActiveDateRange)
|
$checkActiveDateRange = checkActiveDateRangePenawaran($id);
|
||||||
|
// cek status (penawaran.status = tender)
|
||||||
|
$penawaran = PenawaranTender::find($id);
|
||||||
|
if($checkActiveDateRange && ('tender'==$penawaran->status))
|
||||||
{
|
{
|
||||||
|
|
||||||
$checkKelengkapanDetailKJPP = checkKelengkapanDetailKJPP($id);
|
$checkKelengkapanDetailKJPP = checkKelengkapanDetailKJPP($id);
|
||||||
@@ -376,13 +393,21 @@ class ProsesPenawaranController extends Controller
|
|||||||
|
|
||||||
public function updateKJPPStatus(Request $request, $id): JsonResponse
|
public function updateKJPPStatus(Request $request, $id): JsonResponse
|
||||||
{
|
{
|
||||||
|
// $id => detail_penawaran.id
|
||||||
// init
|
// init
|
||||||
$data = array();
|
$data = array();
|
||||||
$dataDetailPenawaran = array();
|
$dataDetailPenawaran = array();
|
||||||
|
|
||||||
|
$detailpenawaran = PenawaranDetailTender::find($id);
|
||||||
|
// cek masa aktif penawaran
|
||||||
|
$checkActiveDateRange = checkActiveDateRangePenawaran($detailpenawaran->penawaran_id);
|
||||||
|
// cek status (penawaran.status = tender)
|
||||||
|
$penawaran = PenawaranTender::find($detailpenawaran->penawaran_id);
|
||||||
|
if($checkActiveDateRange && ('tender'==$penawaran->status))
|
||||||
|
{
|
||||||
try {
|
try {
|
||||||
$detailpenawaran = PenawaranDetailTender::findOrFail($id);
|
|
||||||
$data['id']=$id;
|
// $data['id']=$id;
|
||||||
|
|
||||||
$dataDetailPenawaran = ['status' => '0',
|
$dataDetailPenawaran = ['status' => '0',
|
||||||
'updated_by' => Auth::id(),
|
'updated_by' => Auth::id(),
|
||||||
@@ -396,7 +421,13 @@ class ProsesPenawaranController extends Controller
|
|||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
|
||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['message'] ['message_error_try_catch'] = array("Gagal delete Penawaran KJPP ".$request->kjppName);
|
$data['message'] ['message_error'] = array("Gagal delete Penawaran KJPP ".$request->kjppName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$data['status'] = 'error';
|
||||||
|
$data['message']['message_error'] = array("Penawaran sudah di tutup");
|
||||||
}
|
}
|
||||||
|
|
||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
@@ -416,6 +447,12 @@ class ProsesPenawaranController extends Controller
|
|||||||
$dataPenawaranDetail = array();
|
$dataPenawaranDetail = array();
|
||||||
$failed = 0;
|
$failed = 0;
|
||||||
|
|
||||||
|
// cek masa aktif penawaran
|
||||||
|
$checkActiveDateRange = checkActiveDateRangePenawaran($id);
|
||||||
|
// cek status (penawaran.status = tender)
|
||||||
|
$penawaran = PenawaranTender::find($id);
|
||||||
|
if($checkActiveDateRange && ('tender'==$penawaran->status))
|
||||||
|
{
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -501,6 +538,12 @@ class ProsesPenawaranController extends Controller
|
|||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['message'] ['message_error_try_catch'] = array('Proses Draft Penawaran KJPP failed.');
|
$data['message'] ['message_error_try_catch'] = array('Proses Draft Penawaran KJPP failed.');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$data['status'] = 'error';
|
||||||
|
$data['message']['active_date_range'] = array("Penawaran sudah di tutup");
|
||||||
|
}
|
||||||
|
|
||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
@@ -511,6 +554,12 @@ class ProsesPenawaranController extends Controller
|
|||||||
$data = array();
|
$data = array();
|
||||||
// $data['request']=$request->all();
|
// $data['request']=$request->all();
|
||||||
$dataPenawaranDetail = array();
|
$dataPenawaranDetail = array();
|
||||||
|
// cek masa aktif penawaran
|
||||||
|
$checkActiveDateRange = checkActiveDateRangePenawaran($request->penawaran_id);
|
||||||
|
// cek status (penawaran.status = tender)
|
||||||
|
$penawaran = PenawaranTender::find($request->penawaran_id);
|
||||||
|
if($checkActiveDateRange && ('tender'==$penawaran->status))
|
||||||
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$dataPenawaranDetail = [
|
$dataPenawaranDetail = [
|
||||||
@@ -531,6 +580,12 @@ class ProsesPenawaranController extends Controller
|
|||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['message'] ['message_error_try_catch'] = array('Proses Tambah KJPP failed.');
|
$data['message'] ['message_error_try_catch'] = array('Proses Tambah KJPP failed.');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$data['status'] = 'error';
|
||||||
|
$data['message']['active_date_range'] = array("Penawaran sudah di tutup");
|
||||||
|
}
|
||||||
|
|
||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
@@ -964,6 +1019,7 @@ class ProsesPenawaranController extends Controller
|
|||||||
|
|
||||||
public function showPermohonan($id)
|
public function showPermohonan($id)
|
||||||
{
|
{
|
||||||
|
// $id => permohonan.id
|
||||||
$permohonan = Permohonan::find($id);
|
$permohonan = Permohonan::find($id);
|
||||||
return view('lpj::prosespenawaran.showPermohonan', compact('id', 'permohonan'));
|
return view('lpj::prosespenawaran.showPermohonan', compact('id', 'permohonan'));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,8 +34,10 @@ use Illuminate\Support\Facades\Auth;
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve data from the database
|
// Retrieve data from the database
|
||||||
$query =Permohonan::query()->with(['penawaran','penawaran.tujuanPenilaianKjpp'])
|
// $query =Permohonan::query()->with(['penawaran','penawaran.tujuanPenilaianKjpp'])->where('permohonan.status','=','spk');
|
||||||
->where('permohonan.status','=','spk');
|
// $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian','penilaian'])->get();
|
||||||
|
$query =Permohonan::query()->with(['user', 'debiture', 'branch', 'tujuanPenilaian','penilaian','penawaran','penawaran.tujuanPenilaianKjpp'])->where('permohonan.status','=','spk');
|
||||||
|
|
||||||
|
|
||||||
// Apply search filter if provided
|
// Apply search filter if provided
|
||||||
if ($request->has('search') && !empty($request->get('search'))) {
|
if ($request->has('search') && !empty($request->get('search'))) {
|
||||||
@@ -78,21 +80,27 @@ use Illuminate\Support\Facades\Auth;
|
|||||||
$i=0;
|
$i=0;
|
||||||
foreach($data as $obj)
|
foreach($data as $obj)
|
||||||
{
|
{
|
||||||
if($obj->tanggal_penilaian_sebelumnya)
|
// tanggal_permohonan
|
||||||
{
|
if ($obj->tanggal_permohonan) {
|
||||||
$data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format('d F Y H:i:s');
|
$data[$i]->tanggal_permohonan = Carbon::parse($obj->tanggal_permohonan)->format('d M Y');
|
||||||
}
|
}
|
||||||
|
|
||||||
if($obj->biaya_kjpp_sebelumnya)
|
if($obj->penawaran->tanggal_penilaian_sebelumnya)
|
||||||
{
|
{
|
||||||
$data[$i]->biaya_kjpp_sebelumnya = formatRupiah($obj->biaya_kjpp_sebelumnya);
|
$data[$i]->penawaran->tanggal_penilaian_sebelumnya = Carbon::parse($obj->penawaran->tanggal_penilaian_sebelumnya)->format('d F Y H:i:s');
|
||||||
|
}
|
||||||
|
|
||||||
|
if($obj->penawaran->biaya_kjpp_sebelumnya)
|
||||||
|
{
|
||||||
|
$data[$i]->penawaran->biaya_kjpp_sebelumnya = formatRupiah($obj->penawaran->biaya_kjpp_sebelumnya);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// date_range
|
// date_range
|
||||||
if($obj->start_date && $obj->end_date)
|
if($obj->penawaran->start_date && $obj->penawaran->end_date)
|
||||||
{
|
{
|
||||||
$data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y').' - '.Carbon::parse($obj->end_date)->format('d M Y');
|
$data[$i]->date_range = Carbon::parse($obj->penawaran->start_date)->format('d M Y').' - '.
|
||||||
|
Carbon::parse($obj->penawaran->end_date)->format('d M Y');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,7 +115,6 @@ use Illuminate\Support\Facades\Auth;
|
|||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Calculate the page count
|
// Calculate the page count
|
||||||
$pageCount = ceil($totalRecords / $request->get('size'));
|
$pageCount = ceil($totalRecords / $request->get('size'));
|
||||||
|
|
||||||
@@ -147,6 +154,8 @@ use Illuminate\Support\Facades\Auth;
|
|||||||
->where('detail_penawaran.status','=',1)
|
->where('detail_penawaran.status','=',1)
|
||||||
->where('penawaran.id','=', $id)
|
->where('penawaran.id','=', $id)
|
||||||
->select('penawaran.*', 'detail_penawaran.attachment as attachmentku',
|
->select('penawaran.*', 'detail_penawaran.attachment as attachmentku',
|
||||||
|
'detail_penawaran.no_proposal as detail_penawaran_no_proposal',
|
||||||
|
'detail_penawaran.tgl_proposal as detail_penawaran_tgl_proposal',
|
||||||
'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran',
|
'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran',
|
||||||
'kjpp.name as kjpp_name',
|
'kjpp.name as kjpp_name',
|
||||||
'kjpp.address as kjpp_address',
|
'kjpp.address as kjpp_address',
|
||||||
@@ -161,6 +170,9 @@ use Illuminate\Support\Facades\Auth;
|
|||||||
|
|
||||||
$data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first();
|
$data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first();
|
||||||
|
|
||||||
|
if($penawaran->detail_penawaran_tgl_proposal)
|
||||||
|
$penawaran->detail_penawaran_tgl_proposal = Carbon::parse($penawaran->detail_penawaran_tgl_proposal)->format('d F Y');
|
||||||
|
|
||||||
return view('lpj::spk.edit', compact('data', 'penawaran'));
|
return view('lpj::spk.edit', compact('data', 'penawaran'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -177,6 +189,9 @@ use Illuminate\Support\Facades\Auth;
|
|||||||
->where('detail_penawaran.status','=',1)
|
->where('detail_penawaran.status','=',1)
|
||||||
->where('penawaran.id','=', $id)
|
->where('penawaran.id','=', $id)
|
||||||
->select('penawaran.*', 'detail_penawaran.attachment as attachmentku',
|
->select('penawaran.*', 'detail_penawaran.attachment as attachmentku',
|
||||||
|
'detail_penawaran.no_proposal as detail_penawaran_no_proposal',
|
||||||
|
'detail_penawaran.tgl_proposal as detail_penawaran_tgl_proposal',
|
||||||
|
'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran',
|
||||||
'kjpp.name as kjpp_name',
|
'kjpp.name as kjpp_name',
|
||||||
'kjpp.address as kjpp_address',
|
'kjpp.address as kjpp_address',
|
||||||
'jenis_laporan.name as jenis_laporan_name'
|
'jenis_laporan.name as jenis_laporan_name'
|
||||||
@@ -189,6 +204,9 @@ use Illuminate\Support\Facades\Auth;
|
|||||||
|
|
||||||
$data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first();
|
$data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first();
|
||||||
|
|
||||||
|
if($penawaran->detail_penawaran_tgl_proposal)
|
||||||
|
$penawaran->detail_penawaran_tgl_proposal = Carbon::parse($penawaran->detail_penawaran_tgl_proposal)->format('d F Y');
|
||||||
|
|
||||||
$folderPath = 'uploads/spk/';
|
$folderPath = 'uploads/spk/';
|
||||||
$extension = '.pdf';
|
$extension = '.pdf';
|
||||||
$newFileName = "SPK_".$penawaran->nomor_registrasi."_".Auth::user()->id."_".time(). $extension;
|
$newFileName = "SPK_".$penawaran->nomor_registrasi."_".Auth::user()->id."_".time(). $extension;
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||||
|
<!-- $id ==> penawaran.id -->
|
||||||
<input type="hidden" id="id" name="id" value="{{ $id }}">
|
<input type="hidden" id="id" name="id" value="{{ $id }}">
|
||||||
<div class="card pb-2.5">
|
<div class="card pb-2.5">
|
||||||
<div class="card-header" id="basic_settings">
|
<div class="card-header" id="basic_settings">
|
||||||
@@ -63,6 +64,9 @@
|
|||||||
<div class="card min-w-full">
|
<div class="card min-w-full">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h3 class="card-title">Data KJPP</h3>
|
<h3 class="card-title">Data KJPP</h3>
|
||||||
|
<button type="button" class="btn btn-sm btn-danger" id="{{$route[1]}}_toPenawaranUlang">
|
||||||
|
<i class="ki-filled ki-wrench"></i>Penawaran Ulang
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-table scrollable-x-auto">
|
<div class="card-table scrollable-x-auto">
|
||||||
<table class="table table-border align-middle text-gray-700 font-medium text-sm">
|
<table class="table table-border align-middle text-gray-700 font-medium text-sm">
|
||||||
|
|||||||
@@ -177,11 +177,12 @@
|
|||||||
actions: {
|
actions: {
|
||||||
title: 'Status',
|
title: 'Status',
|
||||||
render: (item, data) => {
|
render: (item, data) => {
|
||||||
|
// data.id ==> penawaran.id
|
||||||
return `<div class="flex flex-nowrap justify-center">
|
return `<div class="flex flex-nowrap justify-center">
|
||||||
<a onclick="showOtorisasiPenawaranData(${data.id})" class="btn btn-sm btn-icon btn-clear btn-primary" title="Detail">
|
<a onclick="showOtorisasiPenawaranData(${data.id})" class="btn btn-sm btn-icon btn-clear btn-primary" title="Detail">
|
||||||
<i class="ki-outline ki-eye"></i>
|
<i class="ki-outline ki-eye"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="btn btn-sm btn-icon btn-clear btn-info" title="Proses Penawaran" href="otorisasitender/penawaran/${data.id}/edit">
|
<a class="btn btn-sm btn-icon btn-clear btn-info" title="Otorisasi Penawaran" href="otorisasitender/penawaran/${data.id}/edit">
|
||||||
<i class="ki-outline ki-notepad-edit"></i>
|
<i class="ki-outline ki-notepad-edit"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>`;
|
</div>`;
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ function otorisasiKJPP(penawaran_id, id, kjpp_id, kjppName, biaya_penawaran) {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Swal.fire('Error!', response.message.message_error_try_catch[0], 'error');
|
Swal.fire('Error!', response.message.message_error[0], 'error');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -146,18 +146,33 @@
|
|||||||
i++;
|
i++;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
// update proses penawaran ulang & permohonan status
|
// update status
|
||||||
$("#{{$route[1]}}_toEdit").click(function(e) {
|
$("#{{$route[1]}}_toPenawaranUlang").click(function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
|
Swal.fire({
|
||||||
|
title: ' ',
|
||||||
|
text: "Yakin akan Penawaran ulang?",
|
||||||
|
icon: 'warning',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonColor: '#3085d6',
|
||||||
|
cancelButtonColor: '#d33',
|
||||||
|
confirmButtonText: 'Yes'
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.isConfirmed)
|
||||||
|
{
|
||||||
//define variable
|
//define variable
|
||||||
|
// $id ==> penawaran.id
|
||||||
let token = "{{ csrf_token() }}";
|
let token = "{{ csrf_token() }}";
|
||||||
let useURL = "";
|
let noReg = $("#textReg").text();
|
||||||
|
let useURL = "{{ route($route[0].'.'.$route[1].'.penawaranulang',$id) }}";
|
||||||
|
|
||||||
var input_data = new Object();
|
var input_data = new Object();
|
||||||
input_data._token = token;
|
input_data._token = token;
|
||||||
input_data.id = "{{ $id }}";
|
input_data.id = "{{ $id }}";
|
||||||
|
input_data.noReg =noReg;
|
||||||
|
// alert('url = ' + useURL);
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: useURL,
|
url: useURL,
|
||||||
type: "PUT",
|
type: "PUT",
|
||||||
@@ -168,19 +183,16 @@
|
|||||||
console.log(response);
|
console.log(response);
|
||||||
if('success' == response.status)
|
if('success' == response.status)
|
||||||
{
|
{
|
||||||
// toastr.success(response.message);
|
swal.fire('Sukses Penawaran ulang!', response.message.message_success[0], 'success').then(() => {
|
||||||
toastrSuccess(response.message);
|
var url = "{{ route('otorisasitender.penawaran.index') }}";
|
||||||
setTimeout(function () {
|
|
||||||
var url = "{{ route('tender.prosespenawaran.index') }}";
|
|
||||||
$(location).attr('href',url);
|
$(location).attr('href',url);
|
||||||
// window.location.href = "https://www.newurl.com";
|
});
|
||||||
}, 2000);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// toastr.error(response.message);
|
Swal.fire('Error!', response.message.message_error[0], 'error');
|
||||||
toastrError(response.message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
error: function(response, textStatus, errorThrown) {
|
error: function(response, textStatus, errorThrown) {
|
||||||
// var errors = response.responseJSON.errors;
|
// var errors = response.responseJSON.errors;
|
||||||
@@ -189,8 +201,10 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
});
|
});
|
||||||
*/
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@endpush
|
@endpush
|
||||||
@@ -65,6 +65,9 @@
|
|||||||
<div class="card min-w-full">
|
<div class="card min-w-full">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h3 class="card-title">Data KJPP</h3>
|
<h3 class="card-title">Data KJPP</h3>
|
||||||
|
<button type="button" class="btn btn-sm btn-danger" id="{{$route[1]}}_toProsesPenawaran">
|
||||||
|
<i class="ki-filled ki-wrench"></i>Penawaran Ulang
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-table scrollable-x-auto">
|
<div class="card-table scrollable-x-auto">
|
||||||
<table class="table table-border align-middle text-gray-700 font-medium text-sm">
|
<table class="table table-border align-middle text-gray-700 font-medium text-sm">
|
||||||
|
|||||||
@@ -128,6 +128,9 @@
|
|||||||
<div class="card min-w-full">
|
<div class="card min-w-full">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h3 class="card-title">Data KJPP</h3>
|
<h3 class="card-title">Data KJPP</h3>
|
||||||
|
<button type="button" class="btn btn-sm btn-danger" id="{{$route[1]}}_toPenawaranUlang">
|
||||||
|
<i class="ki-filled ki-wrench"></i>Penawaran Ulang
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-table scrollable-x-auto">
|
<div class="card-table scrollable-x-auto">
|
||||||
<table class="table table-border align-middle text-gray-700 font-medium text-sm">
|
<table class="table table-border align-middle text-gray-700 font-medium text-sm">
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function updateData(id, kjpp_id, kjppName){
|
function updateData(id, kjpp_id, kjppName){
|
||||||
|
// id => detail_penawaran.id
|
||||||
removeErrorCssMsg();
|
removeErrorCssMsg();
|
||||||
let no_proposal = $("#{{$route[1]}}_no_proposal_"+id).val();
|
let no_proposal = $("#{{$route[1]}}_no_proposal_"+id).val();
|
||||||
let tgl_proposal = $("#{{$route[1]}}_tgl_proposal_"+id).val();
|
let tgl_proposal = $("#{{$route[1]}}_tgl_proposal_"+id).val();
|
||||||
@@ -92,6 +93,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function deleteData(data, kjppName) {
|
function deleteData(data, kjppName) {
|
||||||
|
// data => detail_penawaran.id
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
title: 'Are you sure?',
|
title: 'Are you sure?',
|
||||||
text: "You won't be able to revert KJPP "+kjppName+"!",
|
text: "You won't be able to revert KJPP "+kjppName+"!",
|
||||||
@@ -126,7 +128,7 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Swal.fire('Error!', response.message.message_error_try_catch[0], 'error');
|
Swal.fire('Error!', response.message.message_error[0], 'error');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -66,6 +66,7 @@
|
|||||||
|
|
||||||
function setTablesKJPP1(datas)
|
function setTablesKJPP1(datas)
|
||||||
{
|
{
|
||||||
|
// value.id => detail_penawaran.id
|
||||||
let i=1;
|
let i=1;
|
||||||
$.each(datas, function(key, value){
|
$.each(datas, function(key, value){
|
||||||
var kjppName = value.kjpp_code+' - '+value.kjpp_name;
|
var kjppName = value.kjpp_code+' - '+value.kjpp_name;
|
||||||
@@ -288,6 +289,65 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// update status
|
||||||
|
$("#{{$route[1]}}_toProsesPenawaran").click(function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
Swal.fire({
|
||||||
|
title: ' ',
|
||||||
|
text: "Yakin akan Penawaran ulang?",
|
||||||
|
icon: 'warning',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonColor: '#3085d6',
|
||||||
|
cancelButtonColor: '#d33',
|
||||||
|
confirmButtonText: 'Yes'
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.isConfirmed)
|
||||||
|
{
|
||||||
|
//define variable
|
||||||
|
// $id ==> penawaran.id
|
||||||
|
let token = "{{ csrf_token() }}";
|
||||||
|
let noReg = $("#textReg").text();
|
||||||
|
let useURL = "{{ route('otorisasitender.penawaran.penawaranulang',$id) }}";
|
||||||
|
|
||||||
|
var input_data = new Object();
|
||||||
|
input_data._token = token;
|
||||||
|
input_data.id = "{{ $id }}";
|
||||||
|
input_data.noReg =noReg;
|
||||||
|
// alert('url = ' + useURL);
|
||||||
|
$.ajax({
|
||||||
|
url: useURL,
|
||||||
|
type: "PUT",
|
||||||
|
cache: false,
|
||||||
|
data: input_data,
|
||||||
|
dataType: "json",
|
||||||
|
success: function(response) {
|
||||||
|
console.log(response);
|
||||||
|
if('success' == response.status)
|
||||||
|
{
|
||||||
|
swal.fire('Sukses Penawaran ulang!', response.message.message_success[0], 'success').then(() => {
|
||||||
|
var url = "{{ route('tender.prosespenawaran.index') }}";
|
||||||
|
$(location).attr('href',url);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Swal.fire('Error!', response.message.message_error[0], 'error');
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
error: function(response, textStatus, errorThrown) {
|
||||||
|
// var errors = response.responseJSON.errors;
|
||||||
|
// console.log(errors);
|
||||||
|
console.log(response);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@endpush
|
@endpush
|
||||||
@@ -147,5 +147,63 @@
|
|||||||
$('#{{$route[1]}}_kjpps1').append(new Option(stringVal, value.id));
|
$('#{{$route[1]}}_kjpps1').append(new Option(stringVal, value.id));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// update status
|
||||||
|
$("#{{$route[1]}}_toPenawaranUlang").click(function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
Swal.fire({
|
||||||
|
title: ' ',
|
||||||
|
text: "Yakin akan Penawaran ulang?",
|
||||||
|
icon: 'warning',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonColor: '#3085d6',
|
||||||
|
cancelButtonColor: '#d33',
|
||||||
|
confirmButtonText: 'Yes'
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.isConfirmed)
|
||||||
|
{
|
||||||
|
//define variable
|
||||||
|
// $id ==> penawaran.id
|
||||||
|
let token = "{{ csrf_token() }}";
|
||||||
|
let noReg = $("#textReg").text();
|
||||||
|
let useURL = "{{ route('otorisasitender.penawaran.penawaranulang',$id) }}";
|
||||||
|
|
||||||
|
var input_data = new Object();
|
||||||
|
input_data._token = token;
|
||||||
|
input_data.id = "{{ $id }}";
|
||||||
|
input_data.noReg =noReg;
|
||||||
|
// alert('url = ' + useURL);
|
||||||
|
$.ajax({
|
||||||
|
url: useURL,
|
||||||
|
type: "PUT",
|
||||||
|
cache: false,
|
||||||
|
data: input_data,
|
||||||
|
dataType: "json",
|
||||||
|
success: function(response) {
|
||||||
|
console.log(response);
|
||||||
|
if('success' == response.status)
|
||||||
|
{
|
||||||
|
swal.fire('Sukses Penawaran ulang!', response.message.message_success[0], 'success').then(() => {
|
||||||
|
var url = "{{ route('tender.prosespenawaran.index') }}";
|
||||||
|
$(location).attr('href',url);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Swal.fire('Error!', response.message.message_error[0], 'error');
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
error: function(response, textStatus, errorThrown) {
|
||||||
|
// var errors = response.responseJSON.errors;
|
||||||
|
// console.log(errors);
|
||||||
|
console.log(response);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
@endpush
|
@endpush
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -36,18 +36,38 @@
|
|||||||
<span class="sort-icon"> </span> </span>
|
<span class="sort-icon"> </span> </span>
|
||||||
</th>
|
</th>
|
||||||
<th class="min-w-[150px]" data-datatable-column="code">
|
<th class="min-w-[150px]" data-datatable-column="code">
|
||||||
<span class="sort"> <span class="sort-label"> Kode Penawaran </span>
|
<span class="sort"> <span class="sort-label"> Nomor Penawaran </span>
|
||||||
<span class="sort-icon"> </span> </span>
|
<span class="sort-icon"> </span> </span>
|
||||||
</th>
|
</th>
|
||||||
<th class="min-w-[150px]" data-datatable-column="start_date">
|
<th class="min-w-[150px]" data-datatable-column="tanggal_permohonan">
|
||||||
|
<span class="sort"> <span class="sort-label"> Tanggal Permohonan </span>
|
||||||
|
<span class="sort-icon"> </span> </span>
|
||||||
|
</th>
|
||||||
|
<th class="min-w-[150px]" data-datatable-column="user_id">
|
||||||
|
<span class="sort"> <span class="sort-label"> User Pemohon </span>
|
||||||
|
<span class="sort-icon"> </span> </span>
|
||||||
|
</th>
|
||||||
|
<th class="min-w-[150px]" data-datatable-column="branch_id">
|
||||||
|
<span class="sort"> <span class="sort-label"> Cabang Pemohon </span>
|
||||||
|
<span class="sort-icon"> </span> </span>
|
||||||
|
</th>
|
||||||
|
<th class="min-w-[150px]" data-datatable-column="debitur_id">
|
||||||
|
<span class="sort"> <span class="sort-label"> Debitur </span>
|
||||||
|
<span class="sort-icon"> </span> </span>
|
||||||
|
</th>
|
||||||
|
<th class="min-w-[150px]" data-datatable-column="date_range">
|
||||||
<span class="sort"> <span class="sort-label"> Tanggal Penawaran </span>
|
<span class="sort"> <span class="sort-label"> Tanggal Penawaran </span>
|
||||||
<span class="sort-icon"> </span> </span>
|
<span class="sort-icon"> </span> </span>
|
||||||
</th>
|
</th>
|
||||||
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_kjpp_id">
|
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_id">
|
||||||
<span class="sort"> <span class="sort-label"> Tujuan Penilaian </span>
|
<span class="sort"> <span class="sort-label"> Tujuan Penilaian </span>
|
||||||
<span class="sort-icon"> </span> </span>
|
<span class="sort-icon"> </span> </span>
|
||||||
</th>
|
</th>
|
||||||
<th class="min-w-[150px]" data-datatable-column="nama_kjpp_sebelumnya">
|
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_kjpp_id">
|
||||||
|
<span class="sort"> <span class="sort-label"> Tujuan Penilaian KJPP </span>
|
||||||
|
<span class="sort-icon"> </span> </span>
|
||||||
|
</th>
|
||||||
|
<th class="min-w-[150px]" data-datatable-column="kjpp_data">
|
||||||
<span class="sort"> <span class="sort-label">KJPP Data</span>
|
<span class="sort"> <span class="sort-label">KJPP Data</span>
|
||||||
<span class="sort-icon"> </span> </span>
|
<span class="sort-icon"> </span> </span>
|
||||||
</th>
|
</th>
|
||||||
@@ -84,15 +104,6 @@
|
|||||||
var url = "{{ url('/') }}"+url1;
|
var url = "{{ url('/') }}"+url1;
|
||||||
$(location).attr('href',url);
|
$(location).attr('href',url);
|
||||||
}
|
}
|
||||||
|
|
||||||
function formatTanggalIndonesia(dateString) {
|
|
||||||
const date = new Date(dateString);
|
|
||||||
const day = date.getDate().toString().padStart(2, '0');
|
|
||||||
const monthNames = ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'];
|
|
||||||
const month = monthNames[date.getMonth()];
|
|
||||||
const year = date.getFullYear();
|
|
||||||
return `${day} ${month} ${year}`;
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
<script type="module">
|
<script type="module">
|
||||||
const element = document.querySelector('#spk-table');
|
const element = document.querySelector('#spk-table');
|
||||||
@@ -117,7 +128,7 @@
|
|||||||
title: 'Nomor Registrasi',
|
title: 'Nomor Registrasi',
|
||||||
},
|
},
|
||||||
code: {
|
code: {
|
||||||
title: 'Kode Penawaran',
|
title: 'Nomor Penawaran',
|
||||||
render: (item, data) => {
|
render: (item, data) => {
|
||||||
if(data.penawaran) {
|
if(data.penawaran) {
|
||||||
return `${data.penawaran.code}`;
|
return `${data.penawaran.code}`;
|
||||||
@@ -126,16 +137,41 @@
|
|||||||
return '-';
|
return '-';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
date_range: {
|
tanggal_permohonan: {
|
||||||
title: 'Tanggal Penawaran',
|
title: 'Tanggal Permohonan',
|
||||||
|
},
|
||||||
|
user_id: {
|
||||||
|
title: 'User Pemohon',
|
||||||
render: (item, data) => {
|
render: (item, data) => {
|
||||||
const startDate = formatTanggalIndonesia(data.penawaran.start_date);
|
return `${data.user.name}`;
|
||||||
const endDate = formatTanggalIndonesia(data.penawaran.end_date);
|
|
||||||
return `${startDate} - ${endDate}`;
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
tujuan_penilaian_kjpp_name: {
|
branch_id: {
|
||||||
|
title: 'Cabang Pemohon',
|
||||||
|
render: (item, data) => {
|
||||||
|
return `${data.branch.name}`;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
debitur_id: {
|
||||||
|
title: 'Debitur',
|
||||||
|
render: (item, data) => {
|
||||||
|
if (data.debiture) {
|
||||||
|
return `${data.debiture.name}`;
|
||||||
|
}
|
||||||
|
return "-";
|
||||||
|
},
|
||||||
|
},
|
||||||
|
date_range: {
|
||||||
|
title: 'Tanggal Penawaran'
|
||||||
|
},
|
||||||
|
tujuan_penilaian_id: {
|
||||||
title: 'Tujuan Penilaian',
|
title: 'Tujuan Penilaian',
|
||||||
|
render: (item, data) => {
|
||||||
|
return `${data.tujuan_penilaian.name}`;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
tujuan_penilaian_kjpp_id: {
|
||||||
|
title: 'Tujuan Penilaian KJPP',
|
||||||
render: (item, data) => {
|
render: (item, data) => {
|
||||||
if(data.penawaran.tujuan_penilaian_kjpp) {
|
if(data.penawaran.tujuan_penilaian_kjpp) {
|
||||||
return `${data.penawaran.tujuan_penilaian_kjpp.name}`;
|
return `${data.penawaran.tujuan_penilaian_kjpp.name}`;
|
||||||
@@ -144,7 +180,7 @@
|
|||||||
return '-';
|
return '-';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
nama_kjpp_sebelumnya: {
|
kjpp_data: {
|
||||||
title: 'Nama KJPP Terpilih',
|
title: 'Nama KJPP Terpilih',
|
||||||
render: (item, data) => {
|
render: (item, data) => {
|
||||||
return `${data.penawaran.nama_kjpp_sebelumnya}`+'<br />'
|
return `${data.penawaran.nama_kjpp_sebelumnya}`+'<br />'
|
||||||
|
|||||||
@@ -96,6 +96,9 @@ Route::middleware(['auth'])->group(function () {
|
|||||||
|
|
||||||
// update KJPP data, detail penawaran
|
// update KJPP data, detail penawaran
|
||||||
Route::put('/otorisasiPenawaranKJPP/{penawaran}', 'otorisasiPenawaranKJPP')->name('penawaran.otorisasiPenawaranKJPP');
|
Route::put('/otorisasiPenawaranKJPP/{penawaran}', 'otorisasiPenawaranKJPP')->name('penawaran.otorisasiPenawaranKJPP');
|
||||||
|
|
||||||
|
// revisi penawaran ulang
|
||||||
|
Route::put('/penawaranulang/{penawaranulang}', 'penawaranulang')->name('penawaran.penawaranulang');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user