diff --git a/app/Http/Controllers/OtorisasiPenawaranController.php b/app/Http/Controllers/OtorisasiPenawaranController.php
index 44df3f5..ca25549 100644
--- a/app/Http/Controllers/OtorisasiPenawaranController.php
+++ b/app/Http/Controllers/OtorisasiPenawaranController.php
@@ -1,425 +1,430 @@
user) || !$this->user->can('debitur.view')) {
- //abort(403, 'Sorry! You are not allowed to view users.');
+ public $user;
+
+ /**
+ * Display a listing of the resource.
+ */
+ public function index()
+ {
+ // dd('hai otorisasi');
+ return view('lpj::otorisasipenawaran.index');
}
- // Retrieve data from the database
- $query =PenawaranTender::query()
- ->select('penawaran.*',
- 'debitures.name as debitures_name',
- 'permohonan.tanggal_permohonan',
- 'users.name as user_pemohon',
- 'branches.name as branches_name',
- 'tujuan_penilaian.name as tujuan_penilaian_name',
- 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name')
- ->leftJoin('permohonan', 'permohonan.nomor_registrasi', '=', 'penawaran.nomor_registrasi')
- ->leftJoin('debitures', 'debitures.id', '=', 'permohonan.debiture_id')
- ->leftJoin('users', 'users.id', '=', 'permohonan.user_id')
- ->leftJoin('branches', 'branches.id', '=', 'permohonan.branch_id')
- ->leftJoin('tujuan_penilaian', 'tujuan_penilaian.id','=','permohonan.tujuan_penilaian_id')
- ->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
- ->where('penawaran.status','=','proposal-tender')
- ->withCount('penawarandetails');
-
- // Apply search filter if provided
- if ($request->has('search') && !empty($request->get('search'))) {
- $search = $request->get('search');
- $query->where(function ($q) use ($search) {
- $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%');
- $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%');
-
- $q->orWhere('status', 'LIKE', '%' . $search . '%');
- });
- }
-
- // Apply sorting if provided
- if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
- $order = $request->get('sortOrder');
- $column = $request->get('sortField');
- $query->orderBy($column, $order);
- }
-
- // Get the total count of records
- $totalRecords = $query->count();
-
- // Apply pagination if provided
- if ($request->has('page') && $request->has('size')) {
- $page = $request->get('page');
- $size = $request->get('size');
- $offset = ($page - 1) * $size; // Calculate the offset
-
- $query->skip($offset)->take($size);
- }
-
- // Get the filtered count of records
- $filteredRecords = $query->count();
-
- // Get the data for the current page
- //$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
- $data = $query->get();
-
- // format date
- $i = 0;
- foreach ($data as $obj) {
-
- // tanggal_permohonan
- if ($obj->tanggal_permohonan) {
- $data[$i]->tanggal_permohonan = Carbon::parse($obj->tanggal_permohonan)->format('d M Y');
+ public function dataForDatatables(Request $request)
+ {
+ if (is_null($this->user) || !$this->user->can('debitur.view')) {
+ //abort(403, 'Sorry! You are not allowed to view users.');
}
- // date_range
- $data[$i]->date_range = "-";
- if ($obj->start_date && $obj->end_date)
- {
- $data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y') . ' - ' .
- Carbon::parse($obj->end_date)->format('d M Y');
+ // Retrieve data from the database
+ $query = PenawaranTender::query()->select(
+ 'penawaran.*',
+ 'debitures.name as debitures_name',
+ 'permohonan.tanggal_permohonan',
+ 'users.name as user_pemohon',
+ 'branches.name as branches_name',
+ 'tujuan_penilaian.name as tujuan_penilaian_name',
+ 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name',
+ )->leftJoin('permohonan', 'permohonan.nomor_registrasi', '=', 'penawaran.nomor_registrasi')->leftJoin(
+ 'debitures',
+ 'debitures.id',
+ '=',
+ 'permohonan.debiture_id',
+ )->leftJoin('users', 'users.id', '=', 'permohonan.user_id')->leftJoin(
+ 'branches',
+ 'branches.id',
+ '=',
+ 'permohonan.branch_id',
+ )->leftJoin('tujuan_penilaian', 'tujuan_penilaian.id', '=', 'permohonan.tujuan_penilaian_id')->leftJoin(
+ 'tujuan_penilaian_kjpp',
+ 'tujuan_penilaian_kjpp.id',
+ '=',
+ 'penawaran.tujuan_penilaian_kjpp_id',
+ )->where('penawaran.status', '=', 'proposal-tender')->withCount('penawarandetails');
+
+ // Apply search filter if provided
+ if ($request->has('search') && !empty($request->get('search'))) {
+ $search = $request->get('search');
+ $query->where(function ($q) use ($search) {
+ $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%');
+ $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%');
+
+ $q->orWhere('status', 'LIKE', '%' . $search . '%');
+ });
}
- $i++;
- }
- // format date
+ // Apply sorting if provided
+ if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
+ $order = $request->get('sortOrder');
+ $column = $request->get('sortField');
+ $query->orderBy($column, $order);
+ }
- // Calculate the page count
- $pageCount = ceil($totalRecords / $request->get('size'));
+ // Get the total count of records
+ $totalRecords = $query->count();
- // Calculate the current page number
- $currentPage = 0 + 1;
+ // Apply pagination if provided
+ if ($request->has('page') && $request->has('size')) {
+ $page = $request->get('page');
+ $size = $request->get('size');
+ $offset = ($page - 1) * $size; // Calculate the offset
- // Return the response data as a JSON object
- return response()->json([
- 'draw' => $request->get('draw'),
- 'recordsTotal' => $totalRecords,
- 'recordsFiltered' => $filteredRecords,
- 'pageCount' => $pageCount,
- 'page' => $currentPage,
- 'totalCount' => $totalRecords,
- 'data' => $data
- ]);
- }
+ $query->skip($offset)->take($size);
+ }
- public function edit($id)
- {
- // id ==> penawaran.id
- return view('lpj::otorisasipenawaran.edit', compact('id'));
- }
+ // Get the filtered count of records
+ $filteredRecords = $query->count();
- public function setData(Request $request): JsonResponse
- {
- $data = array();
- $penawaran = array();
- $penawrandetails = array();
- $penawarandetailLogs = array();
-
- if (request()->ajax()) {
- $id = $request->id;
- $penawaran = PenawaranTender::where('status','=','proposal-tender')->find($id);
-
- if ($penawaran) {
- $penawarandetailLogs = PenawaranDetailTenderLog::where('penawaran_id',$id)
- ->leftJoin('kjpp', 'kjpp.id', '=', 'detail_penawaran_logs.kjpp_rekanan_id')
- ->select('detail_penawaran_logs.*', DB::raw("DATE_FORMAT(detail_penawaran_logs.created_at, '%d-%m-%Y %H:%i') AS created_at2"),'kjpp.code AS kjpp_code', 'kjpp.name AS kjpp_name')
- ->get();
- $penawrandetails = PenawaranDetailTender::where('penawaran_id','=',$id)
- ->leftJoin('kjpp', 'kjpp.id', '=', 'detail_penawaran.kjpp_rekanan_id')
- ->select('detail_penawaran.*', 'kjpp.code AS kjpp_code', 'kjpp.name AS kjpp_name')
- ->where('detail_penawaran.status','=',1)
- ->get();
-
- if(sizeof($penawarandetailLogs)>0)
- {
- $h=0;
- 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))
- {
- $penawarandetailLogs_path = Storage::url($obj1->dokumen_persetujuan);
- $penawarandetailLogs[$h]->dokumen_persetujuan = $penawarandetailLogs_path;
- }
- $h++;
- }
+ // Get the data for the current page
+ //$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
+ $data = $query->get();
+ // format date
+ $i = 0;
+ foreach ($data as $obj) {
+ // tanggal_permohonan
+ if ($obj->tanggal_permohonan) {
+ $data[$i]->tanggal_permohonan = Carbon::parse($obj->tanggal_permohonan)->format('d M Y');
}
- $i=0;
- 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))
- {
- $penawrandetails_path = Storage::url($obj->dokumen_persetujuan);
- $penawrandetails[$i]->dokumen_persetujuan = $penawrandetails_path;
-
- }
- $i++;
+ // date_range
+ $data[$i]->date_range = "-";
+ if ($obj->start_date && $obj->end_date) {
+ $data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y') . ' - ' . Carbon::parse(
+ $obj->end_date,
+ )->format('d M Y');
}
- $penawaranString = "";
- if($penawaran->status)
- {
- $penawaranString = convertSlug($penawaran->status);
- $penawaran->status = $penawaranString;
- }
-
- $kjpp=null;
- $kjpp = KJPP::pluck('name', 'id');
- $data['penawaran'] = $penawaran;
- $data['penawrandetails'] = $penawrandetails;
- $data['penawarandetailLogs'] = $penawarandetailLogs;
- $data['status'] = 'success';
- $data['message']['message_success'] = array("data successfully found");
- } else {
- $data['status'] = 'error';
- $data['penawaran'] = null;
- $data['penawrandetails'] = null;
- $data['message']['message_data'] = array("data not found");
+ $i++;
}
- } else {
- $data['status'] = 'error';
- $data['message']['message_ajax'] = array("no ajax request");
+ // format date
+
+ // Calculate the page count
+ $pageCount = ceil($totalRecords / $request->get('size'));
+
+ // Calculate the current page number
+ $currentPage = 0 + 1;
+
+ // Return the response data as a JSON object
+ return response()->json([
+ 'draw' => $request->get('draw'),
+ 'recordsTotal' => $totalRecords,
+ 'recordsFiltered' => $filteredRecords,
+ 'pageCount' => $pageCount,
+ 'page' => $currentPage,
+ 'totalCount' => $totalRecords,
+ 'data' => $data,
+ ]);
}
+
+ public function edit($id)
+ {
+ // id ==> penawaran.id
+ return view('lpj::otorisasipenawaran.edit', compact('id'));
+ }
+
+ public function setData(Request $request): JsonResponse
+ {
+ $data = [];
+ $penawaran = [];
+ $penawrandetails = [];
+ $penawarandetailLogs = [];
- return response()->json($data);
- }
+ if (request()->ajax()) {
+ $id = $request->id;
+ $penawaran = PenawaranTender::where('status','=','proposal-tender')->find($id);
- public function otorisasiPenawaranKJPP(Request $request, $id): JsonResponse
- {
- $data = array();
- $dataDetailPenawaranLog=[];
- if (request()->ajax()) {
+ if ($penawaran) {
+ $penawarandetailLogs = PenawaranDetailTenderLog::where('penawaran_id',$id)
+ ->leftJoin('kjpp', 'kjpp.id', '=', 'detail_penawaran_logs.kjpp_rekanan_id')
+ ->select('detail_penawaran_logs.*', DB::raw("DATE_FORMAT(detail_penawaran_logs.created_at, '%d-%m-%Y %H:%i') AS created_at2"),'kjpp.code AS kjpp_code', 'kjpp.name AS kjpp_name')
+ ->get();
+ $penawrandetails = PenawaranDetailTender::where('penawaran_id','=',$id)
+ ->leftJoin('kjpp', 'kjpp.id', '=', 'detail_penawaran.kjpp_rekanan_id')
+ ->select('detail_penawaran.*', 'kjpp.code AS kjpp_code', 'kjpp.name AS kjpp_name')
+ ->where('detail_penawaran.status','=',1)
+ ->get();
- // cek masa aktif penawaran
- $detailpenawaran = PenawaranDetailTender::find($id);
- $penawaran = PenawaranTender::findOrFail($detailpenawaran->penawaran_id);
- $checkActiveDateRange = checkActiveDateRangePenawaran($detailpenawaran->penawaran_id);
- // cek masa aktif penawaran
- if($checkActiveDateRange)
- {
- DB::beginTransaction();
- try {
+ if(sizeof($penawarandetailLogs)>0)
+ {
+ $h=0;
+ foreach($penawarandetailLogs as $obj1)
+ {
+ // tgl_proposal
+ if ($obj1->tgl_proposal) {
+ $penawarandetailLogs[$h]->tgl_proposal = Carbon::parse($obj1->tgl_proposal)->format('d M Y');
+ }
- // update status KJPP yg tidak terpilih menjadi 2 -> kalah
- // update status Penawaran menjadi SPK
- // update status Permohonan menjadi SPK
- // insert detail_permohonan_log
+ if($obj1->dokumen_persetujuan && Storage::disk('public')->exists($obj1->dokumen_persetujuan))
+ {
+ $penawarandetailLogs_path = Storage::url($obj1->dokumen_persetujuan);
+ $penawarandetailLogs[$h]->dokumen_persetujuan = $penawarandetailLogs_path;
+ }
+ $h++;
+ }
- PenawaranDetailTender::where('status', 1)
- ->where('penawaran_id', $request->penawaran_id)
- ->whereNotIn('id', [$id])
- ->update(['status' => 2,
- 'updated_by' => Auth::id(),
- 'updated_at' => now()
- ]);
+ }
- PenawaranTender::where('id', $request->penawaran_id)
- ->update(['status'=>'spk',
- 'nama_kjpp_sebelumnya'=>$request->kjppName,
- 'biaya_kjpp_sebelumnya'=>$request->biaya_penawaran,
- 'tanggal_penilaian_sebelumnya'=>now(),
- 'authorized_status'=>1,
- 'authorized_at'=>now(),
- 'authorized_by'=>Auth::id(),
- 'updated_by' => Auth::id(),
- 'updated_at' => now()
- ]);
+ $i=0;
+ foreach($penawrandetails as $obj)
+ {
+ // tgl_proposal
+ if ($obj->tgl_proposal) {
+ $penawrandetails[$i]->tgl_proposal = Carbon::parse($obj->tgl_proposal)->format('d M Y');
+ }
- Permohonan::where('nomor_registrasi',$request->noReg)
- ->update(['status'=>'spk',
- 'updated_by' => Auth::id(),
- 'updated_at' => now()
- ]);
+ if($obj->dokumen_persetujuan && Storage::disk('public')->exists($obj->dokumen_persetujuan))
+ {
+ $penawrandetails_path = Storage::url($obj->dokumen_persetujuan);
+ $penawrandetails[$i]->dokumen_persetujuan = $penawrandetails_path;
- // log
- $detailPenawaran = PenawaranDetailTender::where('penawaran_id', $request->penawaran_id)->get();
- if(sizeof($detailPenawaran)>0)
- {
+ }
+ $i++;
+ }
- 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
- ]);
+ $penawaranString = "";
+ if($penawaran->status)
+ {
+ $penawaranString = convertSlug($penawaran->status);
+ $penawaran->status = $penawaranString;
+ }
- }
+ $kjpp=null;
+ $kjpp = KJPP::pluck('name', 'id');
+ $data['penawaran'] = $penawaran;
+ $data['penawrandetails'] = $penawrandetails;
+ $data['penawarandetailLogs'] = $penawarandetailLogs;
+ $data['status'] = 'success';
+ $data['message']['message_success'] = array("data successfully found");
+ } else {
+ $data['status'] = 'error';
+ $data['penawaran'] = null;
+ $data['penawrandetails'] = null;
+ $data['message']['message_data'] = array("data not found");
+ }
+ } else {
+ $data['status'] = 'error';
+ $data['message']['message_ajax'] = array("no ajax request");
+ }
- PenawaranDetailTenderLog::insert($dataDetailPenawaranLog);
- }
- // log
+ return response()->json($data);
+ }
+
+ public function otorisasiPenawaranKJPP(Request $request, $id): JsonResponse
+ {
+ $data = [];
+ $dataDetailPenawaranLog = [];
+ if (request()->ajax()) {
- DB::commit();
- $data['status'] = 'success';
- $data['message']['message_success'] = array('Otorisasi Penawaran KJPP '.$request->kjppName.' successfully');
- } catch (Exception $e) {
- DB::rollBack();
- $data['status'] = 'error';
- $data['message']['message_error'] = array("Otorisasi Penawaran KJPP failed..");
- }
- }
- else
- {
- $data['status'] = 'error';
- $data['message']['message_error'] = array("Penawaran sudah di tutup");
- }
+ // cek masa aktif penawaran
+ $detailpenawaran = PenawaranDetailTender::find($id);
+ $penawaran = PenawaranTender::findOrFail($detailpenawaran->penawaran_id);
+ $checkActiveDateRange = checkActiveDateRangePenawaran($detailpenawaran->penawaran_id);
+ // cek masa aktif penawaran
+ if($checkActiveDateRange)
+ {
+ DB::beginTransaction();
+ try {
- } else {
- $data['status'] = 'error';
- $data['message']['message_error'] = array("no ajax request");
- }
- return response()->json($data);
- }
+ // update status KJPP yg tidak terpilih menjadi 2 -> kalah
+ // update status Penawaran menjadi SPK
+ // update status Permohonan menjadi SPK
+ // insert detail_permohonan_log
- public function show($id)
- {
- $prosespenawaran = PenawaranTender::find($id);
- return view('lpj::otorisasipenawaran.show', compact('id','prosespenawaran'));
- }
+ PenawaranDetailTender::where('status', 1)
+ ->where('penawaran_id', $request->penawaran_id)
+ ->whereNotIn('id', [$id])
+ ->update(['status' => 2,
+ 'updated_by' => Auth::id(),
+ 'updated_at' => now()
+ ]);
- public function penawaranulang(Request $request, $id): JsonResponse
- {
- // $id ==> penawaran.id
- $data = array();
- $dataDetailPenawaranLog=[];
- if (request()->ajax()) {
+ PenawaranTender::where('id', $request->penawaran_id)
+ ->update(['status'=>'spk',
+ 'nama_kjpp_sebelumnya'=>$request->kjppName,
+ 'biaya_kjpp_sebelumnya'=>$request->biaya_penawaran,
+ 'tanggal_penilaian_sebelumnya'=>now(),
+ 'authorized_status'=>1,
+ 'authorized_at'=>now(),
+ 'authorized_by'=>Auth::id(),
+ 'updated_by' => Auth::id(),
+ 'updated_at' => now()
+ ]);
-
- DB::beginTransaction();
- try {
+ Permohonan::where('nomor_registrasi',$request->noReg)
+ ->update(['status'=>'persetujuan-penawaran',
+ 'updated_by' => Auth::id(),
+ 'updated_at' => now()
+ ]);
- // 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
+ $detailPenawaran = PenawaranDetailTender::where('penawaran_id', $request->penawaran_id)->get();
+ if(sizeof($detailPenawaran)>0)
+ {
- // 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
+ ]);
- 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
- PenawaranDetailTenderLog::insert($dataDetailPenawaranLog);
- }
- // log
+ DB::commit();
+ $data['status'] = 'success';
+ $data['message']['message_success'] = array('Otorisasi Penawaran KJPP '.$request->kjppName.' successfully');
+ } catch (Exception $e) {
+ DB::rollBack();
+ $data['status'] = 'error';
+ $data['message']['message_error'] = array("Otorisasi Penawaran KJPP failed..");
+ }
+ }
+ else
+ {
+ $data['status'] = 'error';
+ $data['message']['message_error'] = array("Penawaran sudah di tutup");
+ }
- 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);
+ }
+
+ public function show($id)
+ {
+ $prosespenawaran = PenawaranTender::find($id);
+ return view('lpj::otorisasipenawaran.show', compact('id','prosespenawaran'));
+ }
+
+ public function penawaranulang(Request $request, $id): JsonResponse
+ {
+ // $id ==> penawaran.id
+ $data = [];
+ $dataDetailPenawaranLog=[];
+ if (request()->ajax()) {
- } else {
- $data['status'] = 'error';
- $data['message']['message_error'] = array("no ajax request");
- }
+
+ DB::beginTransaction();
+ try {
- return response()->json($data);
- }
-}
+ // 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);
+ }
+ }
\ No newline at end of file
diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php
index 6b2a0c0..ab47dd1 100644
--- a/app/Http/Controllers/PenilaiController.php
+++ b/app/Http/Controllers/PenilaiController.php
@@ -39,8 +39,9 @@ class PenilaiController extends Controller
*/
public function show($id)
{
- $permohonan = Permohonan::with('debiture.documents.jenisjaminan')->find($id);
+ $permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian'])->find($id);
+ // return response()->json(['permohonan' => $permohonan]);
return view('lpj::penilai.show', compact('permohonan'));
}
diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php
index c5d5252..8daef81 100644
--- a/app/Http/Controllers/PenilaianController.php
+++ b/app/Http/Controllers/PenilaianController.php
@@ -98,7 +98,7 @@ class PenilaianController extends Controller
if (isset($validatedData['penilai_surveyor_id'])) {
$user_ids[] = $validatedData['penilai_surveyor_id'];
- }else {
+ } else {
$user_ids[] = $validatedData['penilai_id'];
}
@@ -126,11 +126,11 @@ class PenilaianController extends Controller
]);
DB::commit();
-
- return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil disimpan');
+ return response()->json(['success' => true, 'message' => 'Data berhasil disimpan'], 200);
} catch (Exception $e) {
DB::rollBack();
- return redirect()->route('penilaian.index')->with('error', $e->getMessage());
+
+ return response()->json(['error' => $e->getMessage()]);
}
}
}
@@ -179,10 +179,10 @@ class PenilaianController extends Controller
'status' => 'assign',
]);
DB::commit();
- return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil disimpan');
+ return response()->json(['success' => true, 'message' => 'Data berhasil disimpan'], 200);
} catch (Exception $e) {
DB::rollBack();
- return redirect()->route('penilaian.index')->with('error', $e->getMessage());
+ return response()->json([ 'success' => false, 'error' => $e->getMessage()]);
}
}
diff --git a/app/Http/Controllers/PersetujuanPenawaranController.php b/app/Http/Controllers/PersetujuanPenawaranController.php
new file mode 100644
index 0000000..73f7429
--- /dev/null
+++ b/app/Http/Controllers/PersetujuanPenawaranController.php
@@ -0,0 +1,147 @@
+validated();
+ $validated['created_by'] = Auth::id();
+
+ PersetujuanPenawaran::create($validated);
+
+ return redirect()
+ ->route('persetujuan-penawaran.index')->with('success', 'Persetujuan Penawaran created successfully.');
+ }
+
+ /**
+ * Show the form for creating a new resource.
+ */
+ public function create()
+ {
+ return view('lpj::persetujuan_penawaran.create');
+ }
+
+ /**
+ * Display the specified resource.
+ */
+ public function show(PersetujuanPenawaran $persetujuanPenawaran)
+ {
+ return view('lpj::persetujuan_penawaran.show', compact('persetujuanPenawaran'));
+ }
+
+ /**
+ * Show the form for editing the specified resource.
+ */
+ public function edit(PersetujuanPenawaran $persetujuanPenawaran)
+ {
+ return view('lpj::persetujuan_penawaran.edit', compact('persetujuanPenawaran'));
+ }
+
+ /**
+ * Update the specified resource in storage.
+ */
+ public function update(PersetujuanPenawaranRequest $request, PersetujuanPenawaran $persetujuanPenawaran)
+ {
+ $validated = $request->validated();
+ $validated['updated_by'] = Auth::id();
+
+ $persetujuanPenawaran->update($validated);
+
+ return redirect()
+ ->route('persetujuan-penawaran.index')->with('success', 'Persetujuan Penawaran updated successfully');
+ }
+
+ /**
+ * Remove the specified resource from storage.
+ */
+ public function destroy(PersetujuanPenawaran $persetujuanPenawaran)
+ {
+ $persetujuanPenawaran->delete();
+
+ return redirect()
+ ->route('persetujuan-penawaran.index')->with('success', 'Persetujuan Penawaran deleted successfully');
+ }
+
+ public function dataForDatatables(Request $request)
+ {
+ if (is_null($this->user) || !$this->user->can('persetujuan_penawaran.view')) {
+ //abort(403, 'Sorry! You are not allowed to view persetujuan penawaran.');
+ }
+
+ // Retrieve data from the database
+ $query = Permohonan::query()->where(['status' => 'persetujuan-penawaran']);
+
+ // Apply search filter if provided
+ if ($request->has('search') && !empty($request->get('search'))) {
+ $search = $request->get('search');
+ $query->where(function ($q) use ($search) {
+ $q
+ ->where('nomor_registrasi', 'LIKE', "%$search%");
+ });
+ }
+
+ // Apply sorting if provided
+ if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
+ $order = $request->get('sortOrder');
+ $column = $request->get('sortField');
+ $query->orderBy($column, $order);
+ }
+
+ // Get the total count of records
+ $totalRecords = $query->count();
+
+ // Apply pagination if provided
+ if ($request->has('page') && $request->has('size')) {
+ $page = $request->get('page');
+ $size = $request->get('size');
+ $offset = ($page - 1) * $size; // Calculate the offset
+
+ $query->skip($offset)->take($size);
+ }
+
+ // Get the filtered count of records
+ $filteredRecords = $query->count();
+
+ // Get the data for the current page
+ $data = $query->with(['debiture','penawaranTender.detail'])->get();
+
+ // Calculate the page count
+ $pageCount = ceil($totalRecords / $request->get('size'));
+
+ // Calculate the current page number
+ $currentPage = $request->get('page', 1);
+
+ // Return the response data as a JSON object
+ return response()->json([
+ 'draw' => $request->get('draw'),
+ 'recordsTotal' => $totalRecords,
+ 'recordsFiltered' => $filteredRecords,
+ 'pageCount' => $pageCount,
+ 'page' => $currentPage,
+ 'totalCount' => $totalRecords,
+ 'data' => $data,
+ ]);
+ }
+ }
diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php
index 3c86379..681dbe1 100644
--- a/app/Http/Controllers/SurveyorController.php
+++ b/app/Http/Controllers/SurveyorController.php
@@ -40,6 +40,10 @@ use Modules\Lpj\Models\Lantai;
use Modules\Lpj\Models\Inspeksi;
use Modules\Lpj\Models\ViewUnit;
use Modules\Lpj\Models\ObjekJaminan;
+use Modules\Lpj\Models\ModelAlatBerat;
+use Modules\Lpj\Models\JenisPesawat;
+use Modules\Lpj\Models\JenisKapal;
+use Modules\Lpj\Models\JenisKendaraan;
use Modules\Lpj\Models\RuteJaminan;
use Modules\Lpj\Models\AnalisaUnit;
use Modules\Lpj\Models\GolonganMasySekitar;
@@ -48,6 +52,8 @@ use Modules\Lpj\Models\LaluLintasLokasi;
use Modules\Lpj\Models\SpekBagunanAnalisaDetail;
use Modules\Lpj\Http\Requests\SurveyorRequest;
use Modules\Lpj\Http\Requests\FormSurveyorRequest;
+use Modules\Lpj\Emails\SendEmail;
+use Illuminate\Support\Facades\Mail;
class SurveyorController extends Controller
{
@@ -93,6 +99,10 @@ class SurveyorController extends Controller
$spekBangunan = SpekBangunan::all();
$saranaPelengkap = SaranaPelengkap::all();
$arahMataAngin = ArahMataAngin::all();
+ $jenisKendaraan = JenisKendaraan::all();
+ $jenisKapal = JenisKapal::all();
+ $jenisPesawat = JenisPesawat::all();
+ $modelAlatBerat = ModelAlatBerat::all();
@@ -146,7 +156,11 @@ class SurveyorController extends Controller
'forminspeksi',
'formDenah',
'formFoto',
- 'jaminanId'
+ 'jaminanId',
+ 'jenisKendaraan',
+ 'jenisKapal',
+ 'jenisPesawat',
+ 'modelAlatBerat'
));
}
/**
@@ -167,7 +181,7 @@ class SurveyorController extends Controller
$rules = $this->getActionSpecificRules($data, $action, $request);
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first();
- if ($request->input('permohonan_id') == $inspeksi->permohonan_id && $request->input('jenis_jaminan_id') == $inspeksi->jenis_jaminan_id) {
+ if ($inspeksi) {
$inspeksi->update(['data_form' => json_encode($rules)]);
} else {
Inspeksi::create([
@@ -210,7 +224,7 @@ class SurveyorController extends Controller
foreach ($pisah as $act) {
if (isset($allRules[$act])) {
$rules = array_merge($rules, $allRules[$act]);
- if ($act == 'tanah' || $act == 'bangunan') {
+ if ($act == 'tanah' || $act == 'bangunan' || $act == 'apartemen-kantor') {
$hasAssetDescriptionRules = true;
}
}
@@ -226,7 +240,6 @@ class SurveyorController extends Controller
public function storeDenah(Request $request)
{
-
try {
$validatedData = $request->validate([
'foto_denah' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
@@ -237,31 +250,33 @@ class SurveyorController extends Controller
$validatedData['foto_denah'] = $this->uploadFile($request->file('foto_denah'), 'foto_denah');
-
$formatJsonDenah = [
'foto_denah' => $validatedData['foto_denah'],
'luas' => $validatedData['luas'],
];
- $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first();
- if ($request->input('permohonan_id') == $inspeksi->permohonan_id && $request->input('jenis_jaminan_id') == $inspeksi->jenis_jaminan_id) {
+ $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))
+ ->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))
+ ->first();
+
+ if ($inspeksi) {
$inspeksi->update([
'denah_form' => json_encode($formatJsonDenah)
]);
} else {
Inspeksi::create([
'permohonan_id' => $request->input('permohonan_id'),
- 'denah_form' => json_encode($formatFotojson)
+ 'jenis_jaminan_id' => $request->input('jenis_jaminan_id'),
+ 'denah_form' => json_encode($formatJsonDenah)
]);
}
return response()->json(['success' => true, 'message' => 'Data berhasil disimpan',
- 'data' => $formatJsonDenah], 200);
+ 'data' => $formatJsonDenah], 200);
} catch (Exception $e) {
return response()->json(['success' => false, 'message' => 'Data gagal disimpan: ' . $e->getMessage()], 500);
}
-
}
@@ -368,20 +383,22 @@ class SurveyorController extends Controller
,'foto_lantai_unit' => $foto_lantai_unit,
'foto_lantai_lainnya' => $foto_lantai_lainnya,
'foto_rute_lainnya' => $foto_rute_lainnya,
- 'basement' => $basement,
- 'gerbang' => $gerbang,
+ 'foto_basement' => $basement,
+ 'foto_gerbang' => $gerbang,
'pendamping' => $pendamping
];
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first();
- if ($request->input('permohonan_id') == $inspeksi->permohonan_id && $request->input('jenis_jaminan_id') == $inspeksi->jenis_jaminan_id) {
+
+ if ($inspeksi) {
$inspeksi->update([
'foto_form' => json_encode($formatFotojson)
]);
} else {
Inspeksi::create([
'permohonan_id' => $request->input('permohonan_id'),
- 'foto_form' => json_encode($formatFotojson)
+ 'foto_form' => json_encode($formatFotojson),
+ 'jenis_jaminan_id' => $request->input('jenis_jaminan_id')
]);
}
@@ -391,19 +408,21 @@ class SurveyorController extends Controller
}
}
- public function submitSurveyor($id,$jaminanId)
+
+
+ public function submitSurveyor($id)
{
try {
- $cekButton = $this->checkButtonStatus($id)->getData();
- if (!$cekButton->buttonDisable) {
+ // $cekButton = $this->checkButtonStatus($id);
+ // if (!$cekButton->buttonDisable) {
$permohonan = Permohonan::find($id);
$permohonan->update([
'status' => 'done',
]);
return response()->json(['success' => true, 'message' => 'Form surveyor submitted successfully'], 200);
- } else {
- return response()->json(['error' => 'Something went wrong'], 400);
- }
+ // } else {
+ // return response()->json(['error' => 'Something went wrong'], 400);
+ // }
} catch (Exception $e) {
return response()->json(['error' => 'Something went wrong', 'message' => $e->getMessage()], 500);
}
@@ -436,7 +455,11 @@ class SurveyorController extends Controller
return response()->json(['buttonDisable' => true]);
}
} catch (\Exception $e) {
- return response()->json(['buttonDisable' => true]);
+ // return response()->json(['buttonDisable' => true]);
+ return response()->json([
+ 'error' => 'Something went wrong',
+ 'message' => $e->getMessage()
+ ], 500);
}
}
@@ -445,35 +468,40 @@ class SurveyorController extends Controller
public function storeJadwal(Request $request)
{
try {
-
$validate = $request->validate([
'id' => 'required',
'waktu_penilaian' => 'required',
'deskripsi_penilaian' => 'required'
]);
- // return response()->json([
- // 'daa'=>$validate
- // ]);
+ // $user = ['user' => 'rustammajid76@gmail.com'];
+
+ // $emailData = [
+ // 'email' => 'rustammajid76@gmail.com',
+ // 'subject' => 'Test',
+ // 'emailData' => '
Hello, World!
This is the email content. Waktu Penilaian:
'
+ // ];
+
+ // $this->sendMessage($emailData, $user);
+
$id = $request->input('id');
$penilaian = Penilaian::findOrFail($id);
$penilaian->update([
'waktu_penilaian' => $validate['waktu_penilaian'],
'deskripsi_penilaian' => $validate['deskripsi_penilaian'],
-
]);
return redirect()
->route('surveyor.index')
->with('success', 'Jadwal berhasil dibuat.');
} catch (\Exception $e) {
- return redirect()
- ->route('surveyor.index')
- ->with('error', 'Gagal membuat jadwal: ' . $e->getMessage());
+ return response()->json(['buttonDisable' => $e->getMessage()]);
}
}
+
+
public function storeAproved($id)
{
try {
@@ -534,7 +562,10 @@ class SurveyorController extends Controller
$tingkatKeramaian = TingkatKeramaian::all();
$laluLintasLokasi = LaluLintasLokasi::all();
$perkerasanJalan = PerkerasanJalan::all();
-
+ $jenisKendaraan = JenisKendaraan::all();
+ $jenisKapal = JenisKapal::all();
+ $jenisPesawat = JenisPesawat::all();
+ $modelAlatBerat = ModelAlatBerat::all();
// return response()->json([
// 'per'=>
@@ -571,7 +602,11 @@ class SurveyorController extends Controller
'laluLintasLokasi',
'perkerasanJalan',
'link_url_region',
- 'forminspeksi'
+ 'forminspeksi',
+ 'jenisKendaraan',
+ 'jenisKapal',
+ 'jenisPesawat',
+ 'modelAlatBerat'
));
}
@@ -628,7 +663,7 @@ class SurveyorController extends Controller
* Data pembanding.
*/
- public function dataPembanding($id)
+ public function dataPembanding($id, $jaminanId)
{
$permohonan = Permohonan::with(
[
@@ -646,7 +681,16 @@ class SurveyorController extends Controller
$branches = Branch::all();
$provinces = Province::all();
- return view('lpj::surveyor.detail', compact('permohonan', 'surveyor', 'branches', 'provinces'));
+
+ $inpeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
+ $forminspeksi = null;
+ if ($inpeksi) {
+ $forminspeksi = $inpeksi;
+ // $forminspeksi = json_decode($inpeksi->data_form, true);
+ }
+
+ // return response()->json($forminspeksi);
+ return view('lpj::surveyor.components.data-pembanding', compact('permohonan', 'surveyor', 'branches', 'provinces','forminspeksi'));
}
@@ -731,6 +775,10 @@ class SurveyorController extends Controller
'lantai-unit' => ['Lantai Unit', 'lantai-unit', Lantai::class],
'view-unit' => ['View Unit', 'view-unit', ViewUnit::class],
'gol-mas-sekitar' => ['Golongan Masyarakat Sekitar', 'gol-mas-sekitar', GolonganMasySekitar::class],
+ 'jenis-pesawat' => ['Jenis Pasawat', 'jenis-pesawat', JenisPesawat::class],
+ 'model-alat-berat' => ['Model Alat Berat', 'model-alat-berat', ModelAlatBerat::class],
+ 'jenis-kapal' => ['Jenis Kapal', 'jenis-kapal', JenisKapal::class],
+ 'jenis-kendaraan' => ['Jenis Kendaraan', 'jenis-kendaraan', JenisKendaraan::class],
];
@@ -878,7 +926,11 @@ class SurveyorController extends Controller
'Golongan Masyarakat Sekitar' => GolonganMasySekitar::class,
'Lantai Unit' => Lantai::class,
'View Unit' => ViewUnit::class,
- 'Perkerasan jalan' => PerkerasanJalan::class
+ 'Perkerasan jalan' => PerkerasanJalan::class,
+ 'Jenis pesawat' => JenisPesawat::class,
+ 'Model alat berat' => ModelAlatBerat::class,
+ 'Jenis kapal' => JenisKapal::class,
+ 'Jenis kendaraan' => JenisKendaraan::class,
];
@@ -1011,6 +1063,10 @@ class SurveyorController extends Controller
'spek-bangunan' => SpekBangunan::class,
'lantai-unit' => Lantai::class,
'view-unit' => ViewUnit::class,
+ 'jenis-pesawat' => JenisPesawat::class,
+ 'model-alat-berat' => ModelAlatBerat::class,
+ 'jenis-kapal' => JenisKapal::class,
+ 'jenis-kendaraan' => JenisKendaraan::class,
];
@@ -1038,6 +1094,10 @@ class SurveyorController extends Controller
'golMasySekitar' => GolonganMasySekitar::all(),
'tingkatKeramaian' => TingkatKeramaian::all(),
'laluLintasLokasi' => LaluLintasLokasi::all(),
+ 'jenisPesawat' => JenisPesawat::all(),
+ 'modelAlatBerat' => ModelAlatBerat::all(),
+ 'jenisKapal' => JenisKapal::all(),
+ 'jenisKendaraan' => JenisKendaraan::all(),
];
}
@@ -1060,8 +1120,12 @@ class SurveyorController extends Controller
'spek-bangunan' => ['Spek Bangunan', 'spek-bangunan'],
'lantai-unit' => ['Lantai Unit', 'lantai-unit'],
'view-unit' => ['View Unit', 'view-unit'],
- 'perkerasan-jalan' => ['Perkerasan jalan', 'perkerasan-jalan']
- ];
+ 'perkerasan-jalan' => ['Perkerasan jalan', 'perkerasan-jalan'],
+ 'jenis-pesawat' => ['Jenis pesawat', 'jenis-pesawat'],
+ 'model-alat-berat' => ['Model alat berat', 'model-alat-berat'],
+ 'jenis-kapal' => ['Jenis kapal', 'jenis-kapal'],
+ 'jenis-kendaraan' => ['Jenis kendaraan', 'jenis-kendaraan'],
+ ];
private function getAssetData($data)
{
@@ -1107,14 +1171,25 @@ class SurveyorController extends Controller
private function getBangunanData($data, $request): array
{
+ // $kategori_bangunan = [];
+ // if ($request->has('spek_kategori_bagunan')) {
+ // foreach ($request->input('spek_kategori_bagunan', []) as $value) {
+ // $kategori_bangunan[] = [
+ // 'value' => [
+ // 'data' => $data['spek_bangunan'] ?? [],
+ // ],
+ // ];
+ // }
+ // }
+
return [
'luas_tanah_bagunan' => $data['luas_tanah_bagunan'] ?? null,
'jenis_bangunan' => $data['jenis_bangunan'] ?? null,
'kondisi_bangunan' => $data['kondisi_bangunan'] ?? null,
'sifat_bangunan' => $data['sifat_bangunan'] ?? null,
- 'sifat_bangunan_input' => $data['sifat_bagunan_input'] ?? null,
+ 'sifat_bangunan_input' => $data['sifat_bangunan_input'] ?? null,
'spek_kategori_bagunan' => $data['spek_kategori_bagunan'] ?? null,
- 'spek_bangunan' => $data['spek_bangunan'] ?? null,
+ 'spek_bangunan' => $data['spek_bangunan'] ?? [],
'sarana_pelengkap' => $data['sarana_pelengkap'] ?? [],
'sarana_pelengkap_input' => $data['sarana_pelengkap_input'] ?? null,
];
@@ -1154,6 +1229,7 @@ class SurveyorController extends Controller
'fakta_negatif' => $data['fakta_negatif'] ?? null,
'rute_menuju' => $data['rute_menuju'] ?? null,
'batas_batas' => $data['batas_batas'] ?? null,
+ 'batas_batas_input' => $data['batas_batas_input'] ?? null,
'kondisi_lingkungan' => $data['kondisi_lingkungan'] ?? null,
'kondisi_lain_bangunan' => $data['kondisi_lain_bangunan'] ?? null,
'informasi_dokument' => $data['informasi_dokument'] ?? null,
@@ -1210,47 +1286,361 @@ class SurveyorController extends Controller
unlink($fullPath);
}
}
- private function getKapalData($data): array
+
+
+ private function getKapalData($data, $request): array
{
return [
- 'keterangan' => $data['keterangan']
+ 'action' => $data['action'] ?? null,
+ 'nama_wakil_debitur' => $data['nama_wakil_debitur'] ?? null,
+ 'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
+ 'dermaga' => $data['dermaga'] ?? null,
+ 'desa_kelurahan' => $data['desa_kelurahan'] ?? null,
+ 'kecamatan' => $data['kecamatan'] ?? null,
+ 'kota_madya' => $data['kota_madya'] ?? null,
+ 'provinsi' => $data['provinsi'] ?? null,
+ 'jenis' => $data['jenis'] ?? null,
+ 'size' => $data['size'] ?? null,
+ 'kondisi' => $data['kondisi'] ?? null,
+ 'klasifikasi' => $data['klasifikasi'] ?? null,
+
+ 'nama_kapal' => $data['nama_kapal'] ?? null,
+ 'pemilik_kapal' => $data['pemilik_kapal'] ?? null,
+ 'bendera' => $data['bendera'] ?? null,
+ 'nomor_selar' => $data['nomor_selar'] ?? null,
+ 'kapal' => $data['kapal'] ?? null,
+ 'galangan_kapal' => $data['galangan_kapal'] ?? null,
+ 'kapal_shipyard' => $data['kapal_shipyard'] ?? null,
+ 'tahun_pembuatan' => $data['tahun_pembuatan'] ?? null,
+ 'tahun_launcing' => $data['tahun_launcing'] ?? null,
+ 'dwt' => $data['dwt'] ?? null,
+ 'lwt' => $data['lwt'] ?? null,
+ 'gross_tonnage' => $data['gross_tonnage'] ?? null,
+ 'net_tonnage' => $data['net_tonnage'] ?? null,
+ 'tenaga_mesin' => $data['tenaga_mesin'] ?? null,
+ 'loa' => $data['loa'] ?? null,
+ 'lbp' => $data['lbp'] ?? null,
+ 'beam' => $data['beam'] ?? null,
+ 'depth' => $data['depth'] ?? null,
+ 'draft' => $data['draft'] ?? null,
+
+ 'lambung_kapal' => $data['lambung_kapal'] ?? null,
+ 'dek' => $data['dek'] ?? null,
+ 'struktur_rangka' => $data['struktur_rangka'] ?? null,
+ 'palka' => $data['palka'] ?? null,
+ 'pondasi_mesin' => $data['pondasi_mesin'] ?? null,
+ 'area_mesin' => $data['area_mesin'] ?? null,
+ 'cat_dan_korosi' => $data['cat_dan_korosi'] ?? null,
+ 'sistem_pengelasan' => $data['sistem_pengelasan'] ?? null,
+ 'deskripsi_struktur' => $data['deskripsi_struktur'] ?? null,
+
+ 'sekoci' => $data['sekoci'] ?? null,
+ 'jaket_pelampung' => $data['jaket_pelampung'] ?? null,
+ 'alat_pemadaman' => $data['alat_pemadaman'] ?? null,
+ 'rambu_darurat' => $data['rambu_darurat'] ?? null,
+ 'sistem_alarm' => $data['sistem_alarm'] ?? null,
+ 'sistem_pencegah' => $data['sistem_pencegah'] ?? null,
+ 'kebakaran' => $data['kebakaran'] ?? null,
+ 'lampu_darurat' => $data['lampu_darurat'] ?? null,
+ 'deskripsi_peralatan' => $data['deskripsi_peralatan'] ?? null,
+
+ 'gps' => $data['gps'] ?? null,
+ 'radar' => $data['radar'] ?? null,
+ 'radio_komunikasi' => $data['radio_komunikasi'] ?? null,
+ 'lampu_navigasi' => $data['lampu_navigasi'] ?? null,
+ 'sistem_kendali_otomatis' => $data['sistem_kendali_otomatis'] ?? null,
+ 'kompas' => $data['kompas'] ?? null,
+ 'deskripsi_navigasi' => $data['deskripsi_navigasi'] ?? null,
+
+ 'mesin_utama' => $data['mesin_utama'] ?? null,
+ 'mesin_bantu' => $data['mesin_bantu'] ?? null,
+ 'pompa_pendingin' => $data['pompa_pendingin'] ?? null,
+ 'sistem_pelumasan' => $data['sistem_pelumasan'] ?? null,
+ 'propeller' => $data['propeller'] ?? null,
+ 'sistem_kelistrikan' => $data['sistem_kelistrikan'] ?? null,
+ 'deskripsi_mesin_penggerak' => $data['deskripsi_mesin_penggerak'] ?? null,
+
+ 'lampu_navigasi' => $data['lampu_navigasi'] ?? null,
+ 'sistem_penerangan' => $data['sistem_penerangan'] ?? null,
+ 'sistem_panel_distribusi' => $data['sistem_panel_distribusi'] ?? null,
+ 'kabel_perangkat' => $data['kabel_perangkat'] ?? null,
+ 'deskripsi_kelistrikan' => $data['deskripsi_kelistrikan'] ?? null,
+
+ 'kebersihan_dek_luar' => $data['kebersihan_dek_luar'] ?? null,
+ 'tangki_limbah' => $data['tangki_limbah'] ?? null,
+ 'sistem_pengelolaan_limbah' => $data['sistem_pengelolaan_limbah'] ?? null,
+ 'pengelolaan_air_ballast' => $data['pengelolaan_air_ballast'] ?? null,
+ 'deskripsi_kebersihan' => $data['deskripsi_kebersihan'] ?? null,
+
+ 'fakta_positif' => $data['fakta_positif'] ?? null,
+ 'fakta_negatif' => $data['fakta_negatif'] ?? null,
+ 'analisa_makro' => $data['analisa_makro'] ?? null,
+ 'kesimpulan' => $data['kesimpulan'] ?? null,
+ 'catatan' => $data['catatan'] ?? null,
+ ];
+ }
+ public function getKendaraanData($data, $request): array
+ {
+ return [
+ 'action' => $data['action'] ?? null,
+ 'tanggal_survey' => $data['tanggal_survey'] ?? null,
+ 'nama_wakil' => $data['nama_wakil'] ?? null,
+ 'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
+ 'nama_jalan' => $data['nama_jalan'] ?? null,
+ 'perumahan_gang' => $data['perumahan_gang'] ?? null,
+ 'blok_nomor' => $data['blok_nomor'] ?? null,
+ 'desa_kelurahan' => $data['desa_kelurahan'] ?? null,
+ 'kecamatan' => $data['kecamatan'] ?? null,
+ 'kota_madya' => $data['kota_madya'] ?? null,
+ 'provinsi' => $data['provinsi'] ?? null,
+ 'kondisi' => $data['kondisi'] ?? null,
+ 'nomor_polisi' => $data['nomor_polisi'] ?? null,
+ 'nomor_polis_tidak_sesuai' => $data['nomor_polis_tidak_sesuai'] ?? null,
+ 'merek' => $data['merek'] ?? null,
+ 'merek_tidak_sesuai' => $data['merek_tidak_sesuai'] ?? null,
+ 'warna' => $data['warna'] ?? null,
+ 'warna_tidak_sesuai' => $data['warna_tidak_sesuai'] ?? null,
+ 'nomor_rangka' => $data['nomor_rangka'] ?? null,
+ 'nomor_rangka_tidak_sesuai' => $data['nomor_rangka_tidak_sesuai'] ?? null,
+ 'nomor_mesin' => $data['nomor_mesin'] ?? null,
+ 'nomor_mesin_tidak_sesuai' => $data['nomor_mesin_tidak_sesuai'] ?? null,
+ 'posisi_kilometer' => $data['posisi_kilometer'] ?? null,
+ 'transmisi' => $data['transmisi'] ?? null,
+
+
+ 'mesin_panel_instrument' => $data['mesin_panel_instrument'] ?? null,
+ 'fungsi_mesin_panel_instrument' => $data['fungsi_mesin_panel_instrument'] ?? null,
+ 'interior' => $data['interior'] ?? null,
+ 'interior' => $data['interior'] ?? null,
+
+ 'jumlah_pintu' => $data['jumlah_pintu'] ?? null,
+ 'rangka_karoseri' => $data['rangka_karoseri'] ?? null,
+ 'ban' => $data['ban'] ?? null,
+ 'velg' => $data['velg'] ?? null,
+ 'bamper_depan' => $data['bamper_depan'] ?? null,
+ 'bamper_belakang' => $data['bamper_belakang'] ?? null,
+ 'lampu_depan' => $data['lampu_depan'] ?? null,
+ 'lampu_belakang' => $data['lampu_belakang'] ?? null,
+ 'kaca_kendaraan' => $data['kaca_kendaraan'] ?? null,
+ 'air_conditioner' => $data['air_conditioner'] ?? null,
+ 'tape_radio_cd' => $data['tape_radio_cd'] ?? null,
+ 'sensor_parkir' => $data['sensor_parkir'] ?? null,
+ 'sensor_camera_recorder' => $data['sensor_camera_recorder'] ?? null,
+ 'lcd' => $data['lcd'] ?? null,
+ 'sabuk_keselamatan' => $data['sabuk_keselamatan'] ?? null,
+ 'airbag' => $data['airbag'] ?? null,
+ 'asuransi' => $data['asuransi'] ?? null,
+ 'perusahaan_asuransi' => $data['perusahaan_asuransi'] ?? null,
+ 'tahun_berakhir' => $data['tahun_berakhir'] ?? null,
+
+
+ 'fakta_positif' => $data['fakta_positif'] ?? null,
+ 'fakta_negatif' => $data['fakta_negatif'] ?? null,
+ 'analisa_makro' => $data['analisa_makro'] ?? null,
+ 'kesimpulan' => $data['kesimpulan'] ?? null,
+ 'catatan' => $data['catatan'] ?? null,
];
}
- private function getKendaraanData($data): array
+ public function getMesinData($data, $request): array
{
return [
- 'keterangan' => $data['keterangan']
+ 'action' => $data['action'] ?? null,
+ 'nama_wakil' => $data['nama_wakil'] ?? null,
+ 'nama_jalan' => $data['nama_jalan'] ?? null,
+ 'perumahan_gang' => $data['perumahan_gang'] ?? null,
+ 'blok' => $data['blok'] ?? null,
+ 'desa_kelurahan' => $data['desa_kelurahan'] ?? null,
+ 'kecamatan' => $data['kecamatan'] ?? null,
+ 'kota_madya' => $data['kota_madya'] ?? null,
+ 'provinsi' => $data['provinsi'] ?? null,
+ 'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
+ 'tipe_model' => $data['tipe_model'] ?? null,
+ 'merek' => $data['merek'] ?? null,
+ 'tahun_pembuatan' => $data['tahun_pembuatan'] ?? null,
+ 'negara_pembuat' => $data['negara_pembuat'] ?? null,
+ 'kondisi_mesin' => $data['kondisi_mesin'] ?? null,
+ 'faktor_positif' => $data['faktor_positif'] ?? null,
+ 'faktor_negatif' => $data['faktor_negatif'] ?? null,
+ 'kesimpulan' => $data['kesimpulan'] ?? null,
+ 'catatan' => $data['catatan'] ?? null,
];
}
- private function getMesinData($data): array
+ public function getAlatBeratData($data, $request): array
{
return [
- 'keterangan' => $data['keterangan']
+ 'action' => $data['action'] ?? null,
+ 'tanggal_survey' => $data['tanggal_survey'] ?? null,
+ 'nama_wakil' => $data['nama_wakil'] ?? null,
+ 'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
+ 'dengan_wadeb' => $data['dengan_wadeb'] ?? null,
+ 'nama_jalan' => $data['nama_jalan'] ?? null,
+ 'perumahan_gang' => $data['perumahan_gang'] ?? null,
+ 'blok' => $data['blok'] ?? null,
+ 'desa_kelurahan' => $data['desa_kelurahan'] ?? null,
+ 'kecamatan' => $data['kecamatan'] ?? null,
+ 'kota_madya' => $data['kota_madya'] ?? null,
+ 'provinsi' => $data['provinsi'] ?? null,
+ 'jenis_model' => $data['jenis_model'] ?? null,
+ 'nomor_lambung' => $data['nomor_lambung'] ?? null,
+ 'model_unit' => $data['model_unit'] ?? null,
+ 'tahun_pembuatan' => $data['tahun_pembuatan'] ?? null,
+ 'merk' => $data['merk'] ?? null,
+ 'negara_pembuat' => $data['negara_pembuat'] ?? null,
+ 'tahun_pembelian' => $data['tahun_pembelian'] ?? null,
+ 'nomor_faktur' => $data['nomor_faktur'] ?? null,
+ 'nomor_kontrak' => $data['nomor_kontrak'] ?? null,
+ 'nama_pemilik' => $data['nama_pemilik'] ?? null,
+ 'alamat_pemilik' => $data['alamat_pemilik'] ?? null,
+ 'nomor_asuransi' => $data['nomor_asuransi'] ?? null,
+ 'nomor_rangka' => $data['nomor_rangka'] ?? null,
+ 'nomor_mesin' => $data['nomor_mesin'] ?? null,
+ 'hour_mesters' => $data['hour_mesters'] ?? null,
+ 'overhaul_mesin' => $data['overhaul_mesin'] ?? null,
+
+ 'mesin_panel' => $data['mesin_panel'] ?? null,
+ 'fungsi_panel' => $data['fungsi_panel'] ?? null,
+ 'interior' => $data['interior'] ?? null,
+ 'rangka_Karoseri' => $data['rangka_Karoseri'] ?? null,
+ 'ban' => $data['ban'] ?? null,
+ 'velg' => $data['velg'] ?? null,
+ 'air_conditioner' => $data['air_conditioner'] ?? null,
+ 'aksesoris' => $data['aksesoris'] ?? null,
+ 'lcd' => $data['lcd'] ?? null,
+ 'perlengkapan' => $data['perlengkapan'] ?? null,
+ 'asuransi' => $data['asuransi'] ?? null,
+ 'perusahaan_asuransi' => $data['perusahaan_asuransi'] ?? null,
+ 'tahun_berakhir' => $data['tahun_berakhir'] ?? null,
+ 'sensor_kamera' => $data['sensor_kamera'] ?? null,
+ 'sabuk_keselamatan' => $data['sabuk_keselamatan'] ?? null,
+ 'air_bag' => $data['air_bag'] ?? null,
+
+ 'faktor_positif' => $data['faktor_positif'] ?? null,
+ 'faktor_negatif' => $data['faktor_negatif'] ?? null,
+ 'kesimpulan' => $data['kesimpulan'] ?? null,
+ 'catatan' => $data['catatan'] ?? null,
];
}
- private function getPesawatData($data): array
+ private function getPesawatData($data, $request): array
{
return [
- 'keterangan' => $data['keterangan']
+ 'action' => $data['action'] ?? null,
+ 'tanggal_survey' => $data['tanggal_survey'] ?? null,
+ 'nama_wakil' => $data['nama_wakil'] ?? null,
+ 'hub_calon_debitur' => $data['hub_calon_debitur'] ?? null,
+ 'bandara' => $data['bandara'] ?? null,
+ 'desa_kelurahan' => $data['desa_kelurahan'] ?? null,
+ 'kecamatan' => $data['kecamatan'] ?? null,
+ 'kota_madya' => $data['kota_madya'] ?? null,
+ 'provinsi' => $data['provinsi'] ?? null,
+
+ 'jenis_pesawat' => $data['jenis_pesawat'] ?? null,
+ 'size' => $data['size'] ?? null,
+ 'kondisi' => $data['kondisi'] ?? null,
+ 'nama_pesawat' => $data['nama_pesawat'] ?? null,
+ 'model' => $data['model'] ?? null,
+ 'nomor_registrasi' => $data['nomor_registrasi'] ?? null,
+ 'tahun_pembuatan' => $data['tahun_pembuatan'] ?? null,
+ 'certificate_of_airworthines' => $data['certificate_of_airworthines'] ?? null,
+ 'certificate_of_registration' => $data['certificate_of_registration'] ?? null,
+ 'total_service_hours' => $data['total_service_hours'] ?? null,
+ 'total_service_cycles' => $data['total_service_cycles'] ?? null,
+
+ 'last_a_check' => $data['last_a_check'] ?? null,
+ 'next_a_check' => $data['next_a_check'] ?? null,
+ 'last_b_check' => $data['last_b_check'] ?? null,
+ 'next_b_check' => $data['next_b_check'] ?? null,
+ 'last_c_check' => $data['last_c_check'] ?? null,
+ 'next_c_check' => $data['next_c_check'] ?? null,
+ 'next_d_check' => $data['next_d_check'] ?? null,
+ 'last_d_check' => $data['last_d_check'] ?? null,
+ 'deskripsi_maintenence' => $data['deskripsi_maintenence'] ?? null,
+
+ 'instrument_landing_system' => $data['instrument_landing_system'] ?? null,
+ 'traffic_collision_avoidance_system' => $data['traffic_collision_avoidance_system'] ?? null,
+ 'windshear' => $data['windshear'] ?? null,
+ 'electronic_flight' => $data['electronic_flight'] ?? null,
+ 'winglets' => $data['winglets'] ?? null,
+ 'deskripsi_konfigurasi' => $data['deskripsi_konfigurasi'] ?? null,
+
+ 'maksimal_penumpang' => $data['maksimal_penumpang'] ?? null,
+ 'jumlah_kursi' => $data['jumlah_kursi'] ?? null,
+ 'kursi_pramugari_pramugara' => $data['kursi_pramugari_pramugara'] ?? null,
+ 'kartu_fitur_keselamatan' => $data['kartu_fitur_keselamatan'] ?? null,
+ 'sabuk_pengaman' => $data['sabuk_pengaman'] ?? null,
+ 'lampu_kabin' => $data['lampu_kabin'] ?? null,
+ 'lampu_pintu_keluar' => $data['lampu_pintu_keluar'] ?? null,
+ 'intercom_kabin' => $data['intercom_kabin'] ?? null,
+ 'deskripsi_kabin' => $data['deskripsi_kabin'] ?? null,
+
+ 'badan_pesawat' => $data['badan_pesawat'] ?? null,
+ 'sayap_pesawat' => $data['sayap_pesawat'] ?? null,
+ 'ekor_pesawat' => $data['ekor_pesawat'] ?? null,
+ 'landing_gear' => $data['landing_gear'] ?? null,
+ 'sistem_pengelasan' => $data['sistem_pengelasan'] ?? null,
+ 'deskripsi_struktur' => $data['deskripsi_struktur'] ?? null,
+
+ 'gps' => $data['gps'] ?? null,
+ 'radar' => $data['radar'] ?? null,
+ 'radio_komunikasi' => $data['radio_komunikasi'] ?? null,
+ 'lampu_navigasi' => $data['lampu_navigasi'] ?? null,
+ 'sistem_autopilot' => $data['sistem_autopilot'] ?? null,
+ 'deskripsi_navigasi' => $data['deskripsi_navigasi'] ?? null,
+
+ 'tangki_bahan_bakar' => $data['tangki_bahan_bakar'] ?? null,
+ 'saluran_pipa_bahan_bakar' => $data['saluran_pipa_bahan_bakar'] ?? null,
+ 'pompa_bahan_bakar' => $data['pompa_bahan_bakar'] ?? null,
+ 'sistem_hidrolik_utama' => $data['sistem_hidrolik_utama'] ?? null,
+ 'sistem_pendigin_hidrolik' => $data['sistem_pendigin_hidrolik'] ?? null,
+ 'deskripsi_hidrolik' => $data['deskripsi_hidrolik'] ?? null,
+
+ 'mesin_utama' => $data['mesin_utama'] ?? null,
+ 'sistem_pendorong' => $data['sistem_pendorong'] ?? null,
+ 'sistem_pendigin_mesin' => $data['sistem_pendigin_mesin'] ?? null,
+ 'sistem_pelumasan' => $data['sistem_pelumasan'] ?? null,
+ 'filter_dan_perangkat_pendukung' => $data['filter_dan_perangkat_pendukung'] ?? null,
+ 'deskripsi_kondisi_mesin' => $data['deskripsi_kondisi_mesin'] ?? null,
+
+ 'jaket_pelampung' => $data['jaket_pelampung'] ?? null,
+ 'pintu_darurat' => $data['pintu_darurat'] ?? null,
+ 'alat_pemadaman_kebakaran' => $data['alat_pemadaman_kebakaran'] ?? null,
+ 'sistem_alaram_darurat' => $data['sistem_alaram_darurat'] ?? null,
+ 'sekoci' => $data['sekoci'] ?? null,
+ 'masker_oxigen' => $data['masker_oxigen'] ?? null,
+ 'sabuk_pengaman' => $data['sabuk_pengaman'] ?? null,
+ 'deskripsi_fungsi_keselamatan' => $data['deskripsi_fungsi_keselamatan'] ?? null,
+
+ 'sistem_ventilasi_ac' => $data['sistem_ventilasi_ac'] ?? null,
+ 'sistem_penerangan_kabin' => $data['sistem_penerangan_kabin'] ?? null,
+ 'panel_informasi_penumpang' => $data['panel_informasi_penumpang'] ?? null,
+ 'sistem_hiburan_kabin' => $data['sistem_hiburan_kabin'] ?? null,
+ 'deskripsi_Interior' => $data['deskripsi_Interior'] ?? null,
+
+ // Validasi untuk faktor dan kesimpulan
+ 'faktor_positif' => $data['faktor_positif'] ?? null,
+ 'faktor_negatif' => $data['faktor_negatif'] ?? null,
+ 'kesimpulan' => $data['kesimpulan'] ?? null,
+ 'catatan' => $data['catatan'] ?? null,
];
}
- private function getAlatBeratData($data): array
- {
- return [
- 'keterangan' => $data['keterangan']
- ];
- }
- private function getUnitData($data): array
+ private function getUnitData($data, $request): array
{
return [
- 'keterangan' => $data['keterangan']
+ 'action' => $data['action'] ?? null,
+ 'luas_unit' => $data['luas_unit'] ?? null,
+ 'luas_unit_tidak_sesuai' => $data['luas_unit_tidak_sesuai'] ?? null,
+ 'jenis_unit' => $data['jenis_unit'] ?? null,
+ 'kondisi_unit' => $data['kondisi_unit'] ?? null,
+ 'posisi_unit' => $data['posisi_unit'] ?? null,
+ 'lantai' => $data['lantai'] ?? null,
+ 'view' => $data['view'] ?? null,
+ 'bentuk_unit' => $data['bentuk_unit'] ?? null,
];
}
diff --git a/app/Http/Controllers/TenderController.php b/app/Http/Controllers/TenderController.php
index f4edb45..9a2e05e 100644
--- a/app/Http/Controllers/TenderController.php
+++ b/app/Http/Controllers/TenderController.php
@@ -23,6 +23,7 @@ use Modules\Lpj\Exports\PenawaranTenderExport;
use Modules\Lpj\Http\Requests\TenderPenawaranRequest;
use Modules\Lpj\Jobs\SendPenawaranKJPPTenderJob;
use Modules\Lpj\Jobs\SendPenawaranTenderJob;
+use Modules\Lpj\Models\PenawaranEmailTenderLog;
class TenderController extends Controller
{
@@ -618,7 +619,9 @@ class TenderController extends Controller
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
// Retrieve data from the database
- $query = PenawaranDetailTender::query()->where('penawaran_id', '=', $penawaran->id)->with(['kjpp', 'penawaran', 'emailTenderLog']);
+ $query = PenawaranDetailTender::query()->where('penawaran_id', '=', $penawaran->id)->with(['kjpp', 'penawaran', 'penawaran.emailTenderLog']);
+
+ // dd($query);
// Apply sorting if provided
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
@@ -641,23 +644,8 @@ class TenderController extends Controller
}
}
- // Get the total count of records
- $totalRecords = $query->count();
-
- // Apply pagination if provided
- if ($request->has('page') && $request->has('size')) {
- $page = $request->get('page');
- $size = $request->get('size');
- $offset = ($page - 1) * $size; // Calculate the offset
-
- $query->skip($offset)->take($size);
- }
-
- // Get the filtered count of records
- $filteredRecords = $query->count();
-
// Get the data for the current page
- $data = $query->with(['kjpp', 'penawaran', 'emailTenderLog'])->get();
+ $data = $query->get();
// add column "No"
$i = 0;
@@ -670,20 +658,9 @@ class TenderController extends Controller
$j++;
}
- // Calculate the page count
- $pageCount = ceil($totalRecords / $request->get('size'));
-
- // Calculate the current page number
- $currentPage = 0 + 1;
-
// Return the response data as a JSON object
return response()->json([
'draw' => $request->get('draw'),
- 'recordsTotal' => $totalRecords,
- 'recordsFiltered' => $filteredRecords,
- 'pageCount' => $pageCount,
- 'page' => $currentPage,
- 'totalCount' => $totalRecords,
'data' => $data,
]);
}
@@ -800,8 +777,6 @@ class TenderController extends Controller
$dp1 = PenawaranDetailTender::with('kjpp')->where('kjpp_rekanan_id', '=', $id)->first();
- // dd($dp1->kjpp);
-
foreach ($permohonan->debiture->documents as $document) {
$village_permohonan = $document->village_code;
$district_permohonan = $document->district_code;
@@ -814,21 +789,89 @@ class TenderController extends Controller
$cities = City::where('code', $city_permohonan)->get();
$provinces = Province::where('code', $province_permohonan)->get();
- try {
- $balikan = SendPenawaranKJPPTenderJob::dispatch(
- $kjpps,
- $dp1,
- $penawaran,
- $permohonan,
- $villages,
- $districts,
- $cities,
- $provinces
- );
- } catch (\Exception $e) {
- return redirect()->route('tender.penawaran.ulang.index')->with('error', 'Email Penawaran Gagal Terkirim!');
- }
+ $subject = 'Send Penawaran K J P P Email';
- return redirect()->route('tender.penawaran.ulang.index')->with('success', 'Email Penawaran Berhasil Terkirim!');
+ $body_pdf = view('lpj::penawaran.kirimEmailKJPP', [
+ 'dp1' => $dp1,
+ 'penawaran' => $penawaran,
+ 'permohonan' => $permohonan,
+ 'kjpps' => $kjpps,
+ 'villages' => $villages,
+ 'districts' => $districts,
+ 'cities' => $cities,
+ 'provinces' => $provinces
+ ])->render();
+
+ SendPenawaranKJPPTenderJob::dispatch(
+ $kjpps,
+ $dp1,
+ $penawaran,
+ $permohonan,
+ $villages,
+ $districts,
+ $cities,
+ $provinces
+ );
+
+ try {
+ // Proses log email
+ foreach ($kjpps as $email) {
+ // Cek apakah sudah ada log dengan status 'failed' untuk email ini
+ $log = PenawaranEmailTenderLog::where('penawaran_id', $penawaran->id)
+ ->where('to_email', $email)
+ ->where('status', 'failed')
+ ->first();
+
+ $log1 = PenawaranEmailTenderLog::where('penawaran_id', $penawaran->id)
+ ->where('to_email', $email)
+ ->where('status', 'success')
+ ->first();
+
+ if ($log) {
+ // Jika log ditemukan dan statusnya 'failed', update status menjadi 'success'
+ $log->update([
+ 'status' => 'success',
+ 'error_message' => null, // Reset error_message saat status diubah menjadi success
+ 'updated_at' => now(),
+ ]);
+ } else if ($log1) {
+ // Jika log ditemukan dan statusnya 'success' biarkan saja
+ $log1->update([ // Reset error_message saat status diubah menjadi success
+ 'updated_at' => now(),
+ ]);
+ } else {
+ // Jika tidak ada log gagal, buat log baru dengan status 'success'
+ PenawaranEmailTenderLog::create([
+ 'penawaran_id' => $penawaran->id,
+ 'kjpp' => $dp1->kjpp->code . ' | ' . $dp1->kjpp->name,
+ 'to_email' => $email,
+ 'subject' => $subject,
+ 'body_pdf' => $body_pdf,
+ 'status' => 'success',
+ 'error_message' => null, // Tidak ada error message
+ 'created_at' => now(),
+ 'updated_at' => now(),
+ ]);
+ }
+ }
+
+ return redirect()->route('tender.penawaran.ulang.index')->with('success', 'Email Penawaran Berhasil Terkirim!');
+ } catch (\Exception $e) {
+ // Log email gagal
+ foreach ($kjpps as $email) {
+ PenawaranEmailTenderLog::create([
+ 'penawaran_id' => $penawaran->id,
+ 'kjpp' => $dp1->kjpp->code . ' | ' . $dp1->kjpp->name,
+ 'to_email' => $email,
+ 'subject' => $subject,
+ 'body_pdf' => $body_pdf,
+ 'status' => 'failed',
+ 'error_message' => $e->getMessage(),
+ 'created_at' => now(),
+ 'updated_at' => now(),
+ ]);
+ }
+ return redirect()->route('tender.penawaran.showKirimEmail', ['noreg' => $noreg])->with('error', 'Email Penawaran Gagal Terkirim!');
+ }
}
}
diff --git a/app/Http/Requests/FormSurveyorRequest.php b/app/Http/Requests/FormSurveyorRequest.php
index d724c72..719b695 100644
--- a/app/Http/Requests/FormSurveyorRequest.php
+++ b/app/Http/Requests/FormSurveyorRequest.php
@@ -38,8 +38,8 @@ class FormSurveyorRequest extends FormRequest
'kapal' => $this->getKapalRules(),
'kendaraan' => $this->getKendaraanRules(),
'mesin' => $this->getMesinRules(),
- 'pesawat' => $this->getLinkunganRules(),
- 'alat-berat' => $this->getLinkunganRules(),
+ 'pesawat' => $this->getPesawatRules(),
+ 'alat-berat' => $this->getAlatBeratRules(),
'apartemen-kantor' => $this->getUnitRules(),
'lingkungan' => $this->getLinkunganRules(),
'fakta' => $this->getCommonRules(),
@@ -51,7 +51,7 @@ class FormSurveyorRequest extends FormRequest
foreach ($pisah as $act) {
if (isset($allRules[$act])) {
$rules = array_merge($rules, $allRules[$act]);
- if ($act == 'tanah' || $act == 'bangunan') {
+ if ($act == 'tanah' || $act == 'bangunan' || $act == 'apartemen-kantor') {
$hasAssetDescriptionRules = true;
}
}
@@ -162,8 +162,91 @@ class FormSurveyorRequest extends FormRequest
{
return [
'action' => 'required',
- 'kondisi_kapal' => 'required',
- 'kondisi_kapal_lain' => 'required',
+ 'nama_wakil_debitur' => 'required',
+ 'hub_calon_debitur' => 'required',
+ 'dermaga' => 'required',
+ 'desa_kelurahan' => 'required',
+ 'kecamatan' => 'required',
+ 'kota_madya' => 'required',
+ 'provinsi' => 'required',
+ 'jenis.*' => 'required',
+ 'size.*' => 'required',
+ 'kondisi.*' => 'required',
+ 'klasifikasi.*' => 'required',
+
+ 'nama_kapal' => 'required',
+ 'pemilik_kapal' => 'required',
+ 'bendera' => 'required',
+ 'nomor_selar' => 'required',
+ 'kapal' => 'required',
+ 'galangan_kapal' => 'required',
+ 'kapal_shipyard' => 'required',
+ 'tahun_pembuatan' => 'required',
+ 'tahun_launcing' => 'required',
+ 'dwt' => 'required',
+ 'lwt' => 'required',
+ 'gross_tonnage' => 'required',
+ 'net_tonnage' => 'required',
+ 'tenaga_mesin' => 'required',
+ 'loa' => 'required',
+ 'lbp' => 'required',
+ 'beam' => 'required',
+ 'depth' => 'required',
+ 'draft' => 'required',
+
+ 'lambung_kapal' => 'required',
+ 'dek' => 'required',
+ 'struktur_rangka' => 'required',
+ 'palka' => 'required',
+ 'pondasi_mesin' => 'required',
+ 'area_mesin' => 'required',
+ 'cat_dan_korosi' => 'required',
+ 'sistem_pengelasan' => 'required',
+ 'deskripsi_struktur' => 'required',
+
+ 'sekoci' => 'required',
+ 'jaket_pelampung' => 'required',
+ 'alat_pemadaman' => 'required',
+ 'rambu_darurat' => 'required',
+ 'sistem_alarm' => 'required',
+ 'sistem_pencegah' => 'required',
+ 'kebakaran' => 'required',
+ 'lampu_darurat' => 'required',
+ 'deskripsi_peralatan' => 'required',
+
+ 'gps' => 'required',
+ 'radar' => 'required',
+ 'radio_komunikasi' => 'required',
+ 'lampu_navigasi' => 'required',
+ 'sistem_kendali_otomatis' => 'required',
+ 'kompas' => 'required',
+ 'deskripsi_navigasi' => 'required',
+
+ 'mesin_utama' => 'required',
+ 'mesin_bantu' => 'required',
+ 'pompa_pendingin' => 'required',
+ 'sistem_pelumasan' => 'required',
+ 'propeller' => 'required',
+ 'sistem_kelistrikan' => 'required',
+ 'deskripsi_mesin_penggerak' => 'required',
+
+ 'lampu_navigasi' => 'required',
+ 'sistem_penerangan' => 'required',
+ 'sistem_panel_distribusi' => 'required',
+ 'kabel_perangkat' => 'required',
+ 'deskripsi_kelistrikan' => 'required',
+
+ 'kebersihan_dek_luar' => 'required',
+ 'tangki_limbah' => 'required',
+ 'sistem_pengelolaan_limbah' => 'required',
+ 'pengelolaan_air_ballast' => 'required',
+ 'deskripsi_kebersihan' => 'required',
+
+ 'fakta_positif.*' => 'nullable',
+ 'fakta_negatif.*' => 'nullable',
+ 'analisa_makro.*' => 'nullable',
+ 'kesimpulan.*' => 'nullable',
+ 'catatan.*' => 'nullable',
];
}
@@ -171,8 +254,56 @@ class FormSurveyorRequest extends FormRequest
{
return [
'action' => 'required',
- 'kondisi_kendaraan' => 'required',
- 'kondisi_kendaraan_lain' => 'required',
+ 'tanggal_survey' => 'required',
+ 'nama_wakil' => 'required',
+ 'hub_calon_debitur' => 'required',
+ 'nama_jalan' => 'required',
+ 'perumahan_gang' => 'required',
+ 'blok_nomor' => 'required',
+ 'desa_kelurahan' => 'required',
+ 'kecamatan' => 'required',
+ 'kota_madya' => 'required',
+ 'provinsi' => 'required',
+ 'kondisi' => 'required',
+ 'nomor_polisi' => 'required',
+ 'nomor_polis_tidak_sesuai' => 'nullable',
+ 'merek' => 'required',
+ 'merek_tidak_sesuai' => 'nullable',
+ 'warna' => 'required',
+ 'warna_tidak_sesuai' => 'nullable',
+ 'nomor_rangka' => 'required',
+ 'nomor_rangka_tidak_sesuai' => 'nullable',
+ 'nomor_mesin' => 'required',
+ 'nomor_mesin_tidak_sesuai' => 'nullable',
+ 'posisi_kilometer' => 'required',
+ 'transmisi' => 'required',
+ 'mesin_panel_instrument.*' => 'required',
+ 'fungsi_mesin_panel_instrument.*' => 'required',
+ 'interior.*' => 'required',
+ 'jumlah_pintu.*' => 'required',
+ 'rangka_karoseri.*' => 'required',
+ 'ban.*' => 'required',
+ 'velg.*' => 'required',
+ 'bamper_depan.*' => 'required',
+ 'bamper_belakang.*' => 'required',
+ 'lampu_depan.*' => 'required',
+ 'lampu_belakang.*' => 'required',
+ 'kaca_kendaraan.*' => 'required',
+ 'air_conditioner.*' => 'required',
+ 'tape_radio_cd.*' => 'required',
+ 'sensor_parkir.*' => 'required',
+ 'sensor_camera_recorder.*' => 'required',
+ 'lcd.*' => 'required',
+ 'sabuk_keselamatan.*' => 'required',
+ 'airbag.*' => 'required',
+ 'asuransi.*' => 'required',
+ 'perusahaan_asuransi' => 'required',
+ 'tahun_berakhir' => 'required',
+ 'fakta_positif.*' => 'nullable',
+ 'fakta_negatif.*' => 'nullable',
+ 'analisa_makro.*' => 'nullable',
+ 'kesimpulan.*' => 'nullable',
+ 'catatan.*' => 'nullable',
];
}
@@ -181,8 +312,24 @@ class FormSurveyorRequest extends FormRequest
{
return [
'action' => 'required',
- 'kondisi_mesin' => 'required',
- 'kondisi_mesin_lain' => 'required',
+ 'nama_wakil' => 'required',
+ 'nama_jalan' => 'required',
+ 'perumahan_gang' => 'required',
+ 'blok' => 'required',
+ 'desa_kelurahan' => 'required',
+ 'kecamatan' => 'required',
+ 'kota_madya' => 'required',
+ 'provinsi' => 'required',
+ 'hub_calon_debitur' => 'required',
+ 'tipe_model' => 'required',
+ 'merek' => 'required',
+ 'tahun_pembuatan' => 'required',
+ 'negara_pembuat' => 'required',
+ 'kondisi_mesin' => 'required',
+ 'faktor_positif' => 'nullable',
+ 'faktor_negatif' => 'nullable',
+ 'kesimpulan' => 'nullable',
+ 'catatan' => 'nullable',
];
}
@@ -191,12 +338,173 @@ class FormSurveyorRequest extends FormRequest
{
return [
'action' => 'required',
- 'kondisi_alat_berat' => 'required',
- 'kondisi_alat_berat_lain' => 'required',
+ 'tanggal_survey' => 'required',
+ 'nama_wakil' => 'required',
+ 'hub_calon_debitur' => 'required',
+ 'dengan_wadeb' => 'required',
+ 'nama_jalan' => 'required',
+ 'perumahan_gang' => 'required',
+ 'blok' => 'required',
+ 'desa_kelurahan' => 'required',
+ 'kecamatan' => 'required',
+ 'kota_madya' => 'required',
+ 'provinsi' => 'required',
+ 'jenis_model' => 'required',
+ 'nomor_lambung' => 'required',
+ 'model_unit' => 'required',
+ 'tahun_pembuatan' => 'required',
+ 'merk' => 'required',
+ 'negara_pembuat' => 'required',
+ 'tahun_pembelian' => 'required',
+ 'nomor_faktur' => 'nullable',
+ 'nomor_kontrak' => 'nullable',
+ 'nama_pemilik' => 'nullable',
+ 'alamat_pemilik' => 'nullable',
+ 'nomor_asuransi' => 'nullable',
+ 'nomor_rangka' => 'nullable',
+ 'nomor_mesin' => 'nullable',
+ 'hour_mesters' => 'nullable',
+ 'overhaul_mesin' => 'nullable',
+ 'mesin_panel.*' => 'nullable',
+ 'fungsi_panel.*' => 'nullable',
+ 'interior.*' => 'nullable',
+ 'rangka_Karoseri.*' => 'nullable',
+ 'ban.*' => 'nullable',
+ 'velg.*' => 'nullable',
+ 'air_conditioner.*' => 'nullable',
+ 'aksesoris.*' => 'nullable',
+ 'lcd.*' => 'nullable',
+ 'perlengkapan.*' => 'nullable',
+ 'asuransi.*' => 'nullable',
+ 'perusahaan_asuransi.*' => 'nullable',
+ 'tahun_berakhir.*' => 'nullable',
+ 'sensor_kamera.*' => 'nullable',
+ 'lcd.*' => 'nullable',
+ 'sabuk_keselamatan.*' => 'nullable',
+ 'air_bag.*' => 'nullable',
+ 'asuransi.*' => 'nullable',
+ 'perusahan_asuransi' => 'nullable',
+ 'tahun_berakhir' => 'nullable',
+ 'faktor_positif' => 'nullable',
+ 'faktor_negatif' => 'nullable',
+ 'kesimpulan' => 'nullable',
+ 'catatan' => 'nullable',
];
}
+
+ private function getPesawatRules(): array
+ {
+ return [
+ 'action' => 'required',
+ 'tanggal_survey' => 'required',
+ 'nama_wakil' => 'required',
+ 'hub_calon_debitur' => 'required',
+ 'bandara' => 'required',
+ 'desa_kelurahan' => 'required',
+ 'kecamatan' => 'required',
+ 'kota_madya' => 'required',
+ 'provinsi' => 'required',
+
+ 'jenis_pesawat' => 'required',
+ 'size' => 'required',
+ 'kondisi' => 'required',
+ 'nama_pesawat' => 'required',
+ 'model' => 'required',
+ 'nomor_registrasi' => 'required',
+ 'tahun_pembuatan' => 'required',
+ 'certificate_of_airworthines' => 'required',
+ 'certificate_of_registration' => 'required',
+ 'total_service_hours' => 'required',
+ 'total_service_cycles' => 'required',
+
+ 'last_a_check' => 'required',
+ 'next_a_check' => 'required',
+ 'last_b_check' => 'required',
+ 'next_b_check' => 'required',
+ 'last_c_check' => 'required',
+ 'next_c_check' => 'required',
+ 'next_d_check' => 'required',
+ 'last_d_check' => 'required',
+ 'deskripsi_maintenence' => 'nullable',
+
+ 'instrument_landing_system' => 'required',
+ 'traffic_collision_avoidance_system' => 'required',
+ 'windshear' => 'required',
+ 'electronic_flight' => 'required',
+ 'winglets' => 'required',
+ 'deskripsi_konfigurasi' => 'required',
+
+
+ 'maksimal_penumpang' => 'required',
+ 'jumlah_kursi' => 'required',
+ 'kursi_pramugari_pramugara' => 'required',
+ 'kartu_fitur_keselamatan' => 'required',
+ 'sabuk_pengaman' => 'required',
+ 'lampu_kabin' => 'required',
+ 'lampu_pintu_keluar' => 'required',
+ 'intercom_kabin' => 'required',
+ 'deskripsi_kabin' => 'required',
+
+
+ 'badan_pesawat' => 'required',
+ 'sayap_pesawat' => 'required',
+ 'ekor_pesawat' => 'required',
+ 'landing_gear' => 'required',
+ 'sabuk_pengaman' => 'required',
+ 'sistem_pengelasan' => 'required',
+ 'deskripsi_struktur' => 'required',
+
+ 'gps' => 'required',
+ 'radar' => 'required',
+ 'radio_komunikasi' => 'required',
+ 'lampu_navigasi' => 'required',
+ 'sistem_autopilot' => 'required',
+ 'deskripsi_navigasi' => 'required',
+
+ 'tangki_bahan_bakar' => 'required',
+ 'saluran_pipa_bahan_bakar' => 'required',
+ 'pompa_bahan_bakar' => 'required',
+ 'sistem_hidrolik_utama' => 'required',
+ 'sistem_pendigin_hidrolik' => 'required',
+ 'deskripsi_hidrolik' => 'required',
+
+ 'mesin_utama' => 'required',
+ 'sistem_pendorong' => 'required',
+ 'sistem_pendigin_mesin' => 'required',
+ 'sistem_pelumasan' => 'required',
+ 'filter_dan_perangkat_pendukung' => 'required',
+ 'deskripsi_kondisi_mesin' => 'required',
+
+
+ 'jaket_pelampung' => 'required',
+ 'pintu_darurat' => 'required',
+ 'alat_pemadaman_kebakaran' => 'required',
+ 'sistem_alaram_darurat' => 'required',
+ 'sekoci' => 'required',
+ 'masker_oxigen' => 'required',
+ 'sabuk_pengaman' => 'required',
+ 'deskripsi_fungsi_keselamatan' => 'required',
+
+
+ 'sistem_ventilasi_ac' => 'required',
+ 'sistem_penerangan_kabin' => 'required',
+ 'panel_informasi_penumpang' => 'required',
+ 'sistem_hiburan_kabin' => 'required',
+ 'deskripsi_Interior' => 'required',
+
+
+
+ 'faktor_positif.*' => 'nullable',
+ 'faktor_negatif.*' => 'nullable',
+ 'kesimpulan.*' => 'nullable',
+ 'catatan.*' => 'nullable',
+
+
+ ];
+ }
+
private function getAssetDescriptionRules(): array
{
return [
@@ -229,6 +537,7 @@ class FormSurveyorRequest extends FormRequest
'fakta_negatif' => 'nullable|array',
'rute_menuju' => 'nullable',
'batas_batas' => 'nullable|array',
+ 'batas_batas_input' => 'nullable|array',
'kondisi_lingkungan' => 'nullable|array',
'kondisi_lain_bangunan' => 'nullable|array',
'informasi_dokument' => 'nullable',
diff --git a/app/Http/Requests/PersetujuanPenawaranRequest.php b/app/Http/Requests/PersetujuanPenawaranRequest.php
new file mode 100644
index 0000000..b33cc7a
--- /dev/null
+++ b/app/Http/Requests/PersetujuanPenawaranRequest.php
@@ -0,0 +1,76 @@
+ 'required|exists:penawaran_tender,id',
+ 'nomor_proposal_penawaran' => 'nullable|string|max:255',
+ 'tanggal_proposal_penawaran' => 'nullable|date',
+ 'biaya_final' => 'nullable|numeric|min:0',
+ 'sla_resume' => 'nullable|date',
+ 'sla_final' => 'nullable|date|after_or_equal:sla_resume',
+ 'catatan' => 'nullable|string',
+ 'attachment' => 'nullable|file|mimes:pdf,doc,docx|max:10240', // Max 10MB
+ 'region_id' => 'nullable|exists:regions,id',
+ 'status' => 'nullable|boolean',
+ 'authorized_status' => 'nullable|boolean',
+ 'authorized_at' => 'nullable|date',
+ 'authorized_by' => 'nullable|exists:users,id',
+ ];
+ }
+
+ /**
+ * Get custom messages for validator errors.
+ */
+ public function messages()
+ : array
+ {
+ return [
+ 'penawaran_id.required' => 'Penawaran ID wajib diisi.',
+ 'penawaran_id.exists' => 'Penawaran ID tidak valid.',
+ 'nomor_proposal_penawaran.required' => 'Nomor proposal penawaran wajib diisi.',
+ 'tanggal_proposal_penawaran.required' => 'Tanggal proposal penawaran wajib diisi.',
+ 'tanggal_proposal_penawaran.date' => 'Tanggal proposal penawaran harus berupa tanggal yang valid.',
+ 'biaya_final.required' => 'Biaya final wajib diisi.',
+ 'biaya_final.numeric' => 'Biaya final harus berupa angka.',
+ 'biaya_final.min' => 'Biaya final tidak boleh kurang dari 0.',
+ 'sla_resume.required' => 'SLA Resume wajib diisi.',
+ 'sla_resume.date' => 'SLA Resume harus berupa tanggal yang valid.',
+ 'sla_final.required' => 'SLA Final wajib diisi.',
+ 'sla_final.date' => 'SLA Final harus berupa tanggal yang valid.',
+ 'sla_final.after_or_equal' => 'SLA Final harus sama dengan atau setelah SLA Resume.',
+ 'attachment.file' => 'Attachment harus berupa file.',
+ 'attachment.mimes' => 'Attachment harus berupa file PDF, DOC, atau DOCX.',
+ 'attachment.max' => 'Ukuran attachment tidak boleh lebih dari 10MB.',
+ 'region_id.required' => 'Region ID wajib diisi.',
+ 'region_id.exists' => 'Region ID tidak valid.',
+ 'status.required' => 'Status wajib diisi.',
+ 'status.boolean' => 'Status harus berupa nilai boolean.',
+ 'authorized_status.boolean' => 'Status otorisasi harus berupa nilai boolean.',
+ 'authorized_at.date' => 'Tanggal otorisasi harus berupa tanggal yang valid.',
+ 'authorized_by.exists' => 'ID pengguna yang mengotorisasi tidak valid.',
+ ];
+ }
+ }
diff --git a/app/Http/Requests/SurveyorRequest.php b/app/Http/Requests/SurveyorRequest.php
index 0762ad9..b6b1791 100644
--- a/app/Http/Requests/SurveyorRequest.php
+++ b/app/Http/Requests/SurveyorRequest.php
@@ -28,6 +28,10 @@ class SurveyorRequest extends FormRequest
'spek-bangunan' => 'spek_bangunan',
'lantai-unit' => 'lantai',
'view-unit' => 'view_unit',
+ 'jenis-pesawat' => 'jenis_pesawat',
+ 'model-alat-berat' => 'model_alat_berat',
+ 'jenis-kapal' => 'jenis_kapal',
+ 'jenis-kendaraan' => 'jenis_kendaraan',
];
/**
diff --git a/app/Models/JenisKapal.php b/app/Models/JenisKapal.php
new file mode 100644
index 0000000..169d29d
--- /dev/null
+++ b/app/Models/JenisKapal.php
@@ -0,0 +1,24 @@
+belongsTo(KJPP::class, 'kjpp_rekanan_id', 'id');
}
-
- public function emailTenderLog(): BelongsTo
- {
- return $this->belongsTo(PenawaranEmailTenderLog::class, 'penawaran_id', 'id', PenawaranTender::class);
- }
}
diff --git a/app/Models/PenawaranEmailTenderLog.php b/app/Models/PenawaranEmailTenderLog.php
index 9048405..224c351 100644
--- a/app/Models/PenawaranEmailTenderLog.php
+++ b/app/Models/PenawaranEmailTenderLog.php
@@ -15,4 +15,9 @@ class PenawaranEmailTenderLog extends Model
* The attributes that are mass assignable.
*/
protected $guarded = ['id'];
+
+ public function penawaran()
+ {
+ return $this->belongsTo(PenawaranTender::class, 'penawaran_id', 'id');
+ }
}
diff --git a/app/Models/PenawaranTender.php b/app/Models/PenawaranTender.php
index f38d42e..16b8532 100644
--- a/app/Models/PenawaranTender.php
+++ b/app/Models/PenawaranTender.php
@@ -24,8 +24,17 @@ class PenawaranTender extends Model
{
return $this->hasMany(PenawaranDetailTender::class, 'penawaran_id', 'id')->where('status', '=', 1);
}
+
+ public function detail(){
+ return $this->belongsTo(PenawaranDetailTender::class, 'id', 'penawaran_id')->where('status', 1);
+ }
// andy add
+ public function emailTenderLog(): HasMany
+ {
+ return $this->hasMany(PenawaranEmailTenderLog::class, 'penawaran_id', 'id');
+ }
+
public function penawaranKjpp()
{
return $this->hasMany(PenawaranDetailTender::class, 'penawaran_id');
diff --git a/app/Models/PenilaianTeam.php b/app/Models/PenilaianTeam.php
index 8df88ef..a61b5dd 100644
--- a/app/Models/PenilaianTeam.php
+++ b/app/Models/PenilaianTeam.php
@@ -2,6 +2,7 @@
namespace Modules\Lpj\Models;
+use Modules\Usermanagement\Models\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Modules\Lpj\Database\Factories\PenilaianTeamFactory;
@@ -24,7 +25,7 @@ class PenilaianTeam extends Model
public function team(){
- return $this->belongsTo(Team::class, 'team_id', 'id');
+ return $this->belongsTo(Teams::class, 'team_id', 'id');
}
public function penilaian(){
diff --git a/app/Models/Permohonan.php b/app/Models/Permohonan.php
index 0255e63..81b94b7 100644
--- a/app/Models/Permohonan.php
+++ b/app/Models/Permohonan.php
@@ -136,7 +136,7 @@
public function penawaranTender()
{
- return $this->hasMany(PenawaranTender::class, 'nomor_registrasi');
+ return $this->belongsTo(PenawaranTender::class, 'nomor_registrasi', 'nomor_registrasi');
}
public function region()
diff --git a/app/Models/PersetujuanPenawaran.php b/app/Models/PersetujuanPenawaran.php
new file mode 100644
index 0000000..d0658a6
--- /dev/null
+++ b/app/Models/PersetujuanPenawaran.php
@@ -0,0 +1,56 @@
+ 'date',
+ 'sla_resume' => 'datetime',
+ 'sla_final' => 'datetime',
+ 'status' => 'boolean',
+ 'authorized_at' => 'datetime',
+ ];
+
+ // Relationship with Penawaran
+ public function penawaran()
+ {
+ return $this->belongsTo(PenawaranTender::class, 'penawaran_id');
+ }
+
+ // Relationship with Region
+ public function region()
+ {
+ return $this->belongsTo(Region::class);
+ }
+
+ // Relationship with User (for authorized_by)
+ public function authorizedBy()
+ {
+ return $this->belongsTo(User::class, 'authorized_by');
+ }
+ }
diff --git a/database/migrations/2024_11_20_042242_create_jenis_kendaraan_table.php b/database/migrations/2024_11_20_042242_create_jenis_kendaraan_table.php
new file mode 100644
index 0000000..6a6403e
--- /dev/null
+++ b/database/migrations/2024_11_20_042242_create_jenis_kendaraan_table.php
@@ -0,0 +1,37 @@
+id();
+ $table->string('code')->unique()->index();
+ $table->string('name');
+ $table->boolean('status')->default(true);
+ $table->char('authorized_status', 1)->nullable();
+ $table->timestamps();
+ $table->timestamp('authorized_at')->nullable();
+ $table->unsignedBigInteger('authorized_by')->nullable();
+ $table->softDeletes();
+ $table->unsignedBigInteger('created_by')->nullable();
+ $table->unsignedBigInteger('updated_by')->nullable();
+ $table->unsignedBigInteger('deleted_by')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('jenis_kendaraan');
+ }
+};
diff --git a/database/migrations/2024_11_20_042337_create_model_alat_berat_table.php b/database/migrations/2024_11_20_042337_create_model_alat_berat_table.php
new file mode 100644
index 0000000..7176863
--- /dev/null
+++ b/database/migrations/2024_11_20_042337_create_model_alat_berat_table.php
@@ -0,0 +1,36 @@
+id();
+ $table->string('code')->unique()->index();
+ $table->string('name');
+ $table->boolean('status')->default(true);
+ $table->char('authorized_status', 1)->nullable();
+ $table->timestamps();
+ $table->timestamp('authorized_at')->nullable();
+ $table->unsignedBigInteger('authorized_by')->nullable();
+ $table->softDeletes();
+ $table->unsignedBigInteger('created_by')->nullable();
+ $table->unsignedBigInteger('updated_by')->nullable();
+ $table->unsignedBigInteger('deleted_by')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('model_alat_berat');
+ }
+};
diff --git a/database/migrations/2024_11_20_042453_create_jenis_pesawat_table.php b/database/migrations/2024_11_20_042453_create_jenis_pesawat_table.php
new file mode 100644
index 0000000..9cf0c61
--- /dev/null
+++ b/database/migrations/2024_11_20_042453_create_jenis_pesawat_table.php
@@ -0,0 +1,36 @@
+id();
+ $table->string('code')->unique()->index();
+ $table->string('name');
+ $table->boolean('status')->default(true);
+ $table->char('authorized_status', 1)->nullable();
+ $table->timestamps();
+ $table->timestamp('authorized_at')->nullable();
+ $table->unsignedBigInteger('authorized_by')->nullable();
+ $table->softDeletes();
+ $table->unsignedBigInteger('created_by')->nullable();
+ $table->unsignedBigInteger('updated_by')->nullable();
+ $table->unsignedBigInteger('deleted_by')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('jenis_pesawat');
+ }
+};
diff --git a/database/migrations/2024_11_20_042545_create_jenis_kapal_table.php b/database/migrations/2024_11_20_042545_create_jenis_kapal_table.php
new file mode 100644
index 0000000..3be6b80
--- /dev/null
+++ b/database/migrations/2024_11_20_042545_create_jenis_kapal_table.php
@@ -0,0 +1,37 @@
+id();
+ $table->string('code')->unique()->index();
+ $table->string('name');
+ $table->boolean('status')->default(true);
+ $table->char('authorized_status', 1)->nullable();
+ $table->timestamps();
+ $table->timestamp('authorized_at')->nullable();
+ $table->unsignedBigInteger('authorized_by')->nullable();
+ $table->softDeletes();
+ $table->unsignedBigInteger('created_by')->nullable();
+ $table->unsignedBigInteger('updated_by')->nullable();
+ $table->unsignedBigInteger('deleted_by')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('jenis_kapal');
+ }
+};
diff --git a/database/migrations/2024_11_20_073420_update_penawaran_email_tender_log.php b/database/migrations/2024_11_20_073420_update_penawaran_email_tender_log.php
new file mode 100644
index 0000000..3300063
--- /dev/null
+++ b/database/migrations/2024_11_20_073420_update_penawaran_email_tender_log.php
@@ -0,0 +1,28 @@
+text('error_message')->nullable()->change();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::table('penawaran_email_tender_log', function (Blueprint $table) {
+ $table->text('error_message')->change();
+ });
+ }
+};
diff --git a/database/migrations/2024_11_20_073530_update_persetujuan_penawaran_table.php b/database/migrations/2024_11_20_073530_update_persetujuan_penawaran_table.php
new file mode 100644
index 0000000..5428933
--- /dev/null
+++ b/database/migrations/2024_11_20_073530_update_persetujuan_penawaran_table.php
@@ -0,0 +1,47 @@
+string('nomor_proposal_penawaran')->nullable()->change();
+ $table->date('tanggal_proposal_penawaran')->nullable()->change();
+ $table->string('biaya_final')->nullable()->change();
+ $table->renameColumn('sls_resume', 'sla_resume');
+ $table->datetime('sla_resume')->nullable()->change();
+ $table->datetime('sla_final')->nullable()->change();
+ $table->string('catatan')->nullable()->change();
+ $table->string('attachment')->nullable()->change();
+ $table->foreignId('region_id')->nullable()->change();
+ $table->boolean('status')->nullable()->change();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down()
+ : void
+ {
+ Schema::table('persetujuan_penawaran', function (Blueprint $table) {
+ $table->string('nomor_proposal_penawaran')->nullable(false)->change();
+ $table->date('tanggal_proposal_penawaran')->nullable(false)->change();
+ $table->string('biaya_final')->nullable(false)->change();
+ $table->renameColumn('sla_resume', 'sls_resume');
+ $table->datetime('sls_resume')->nullable(false)->change();
+ $table->datetime('sla_final')->nullable(false)->change();
+ $table->string('catatan')->nullable(false)->change();
+ $table->string('attachment')->nullable(false)->change();
+ $table->foreignId('region_id')->nullable(false)->change();
+ $table->boolean('status')->nullable(false)->change();
+ });
+ }
+ };
diff --git a/module.json b/module.json
index 126b921..db1356b 100644
--- a/module.json
+++ b/module.json
@@ -1,570 +1,815 @@
{
- "name": "Lpj",
- "alias": "lpj",
- "database": "",
- "description": "",
- "keywords": [],
- "priority": 0,
- "providers": ["Modules\\Lpj\\Providers\\LpjServiceProvider"],
- "files": ["app/Helpers/Lpj.php"],
- "menu": {
- "main": [
- {
- "title": "Permohonan",
- "path": "permohonan",
- "icon": "ki-filled ki-questionnaire-tablet text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "pemohon-ao", "pemohon-eo"]
- },
- {
- "title": "Registrasi",
- "path": "registrasi",
- "icon": "ki-filled ki-file-added text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin"]
- },
- {
- "title": "Tender",
- "path": "tender",
- "icon": "ki-filled ki-category text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin"],
- "sub": [
- {
- "title": "Data Proses Penawaran",
- "path": "tender.prosespenawaran",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin"]
- },
- {
- "title": "Data Penawaran Ulang",
- "path": "tender.penawaran.ulang",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin"]
- }
- ]
- },
- {
- "title": "Otorisasi Tender",
- "path": "otorisasitender",
- "icon": "ki-filled ki-category text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin","EO Appraisal","DD Appraisal"],
- "sub": [
- {
- "title": "Otorisasi Penawaran",
- "path": "otorisasitender.penawaran",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin","EO Appraisal","DD Appraisal"]
- }
- ]
- },
- {
- "title": "SPK",
- "path": "spk",
- "icon": "ki-filled ki-file-added text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin"]
- },
- {
- "title": "Registrasi Final",
- "path": "registrasifinal",
- "icon": "ki-filled ki-file-added text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin"]
- },
- {
- "title": "Pembatalan",
- "path": "",
- "icon": "ki-filled ki-file-deleted text-lg text-danger",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "pemohon-ao", "pemohon-eo"]
- },
- {
- "title": "Data Debitur",
- "path": "debitur",
- "icon": "ki-filled ki-people text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "pemohon-ao", "pemohon-eo"]
- },
- {
- "title": "Authorization",
- "path": "authorization",
- "icon": "ki-filled ki-security-user text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "pemohon-eo"]
- },
- {
- "title": "Assignment",
- "path": "penilaian",
- "icon": "ki-filled ki-badge text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "senior-officer"]
- },
- {
- "title": "Team Activity",
- "path": "activity.progres",
- "icon": "ki-filled ki-questionnaire-tablet text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","senior-officer"]
- },
- {
- "title": "Otorisator",
- "path": "otorisator",
- "icon": "ki-filled ki-security-user text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","senior-officer"],
- "sub": [
- {
- "title": "Pelaporan",
- "path": "otorisator.pelaporan",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","senior-officer"]
- },
- {
- "title": "Pembayaran",
- "path": "otorisator.pembayaran",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","senior-officer"]
- },
- {
- "title": "Pembatalan",
- "path": "otorisator.pembatalan",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","senior-officer"]
- },
- {
- "title": "SLA",
- "path": "otorisator.sla",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","senior-officer"]
- }
- ]
- },
- {
- "title": "Surveyor",
- "path": "surveyor",
- "icon": "ki-filled ki-questionnaire-tablet text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
-
- {
- "title": "Activity",
- "path": "activity",
- "icon": "ki-filled ki-calendar-edit text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": [
- "administrator",
- "pemohon-ao",
- "pemohon-eo",
- "admin",
- "surveyor"
- ]
- },
- {
- "title": "Penilai",
- "path": "penilai",
- "icon": "ki-filled ki-brush text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "Laporan",
- "path": "laporan",
- "icon": "ki-filled ki-filter-tablet text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": [
- "administrator",
- "pemohon-ao",
- "pemohon-eo",
- "admin",
- "senior-officer"
- ],
- "sub": [
- {
- "title": "Sederhana",
- "path": "laporan.sederhana",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin"]
- },
- {
- "title": "Standard",
- "path": "laporan.standard",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": [
- "administrator",
- "pemohon-ao",
- "pemohon-eo",
- "admin",
- "senior-officer"
- ]
- }
- ]
- },
- {
- "title": "Resume",
- "path": "resume",
- "icon": "ki-filled ki-questionnaire-tablet text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "pemohon-ao", "pemohon-eo"]
- }
+ "name": "Lpj",
+ "alias": "lpj",
+ "database": "",
+ "description": "",
+ "keywords": [],
+ "priority": 0,
+ "providers": [
+ "Modules\\Lpj\\Providers\\LpjServiceProvider"
],
- "master": [
- {
- "title": "Basic Data",
- "path": "basicdata",
- "icon": "ki-filled ki-category text-lg",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": [
- "administrator",
- "pemohon-ao",
- "pemohon-eo",
- "admin",
- "surveyor"
- ],
- "sub": [
- {
- "title": "Jenis Fasilitas Kredit",
- "path": "basicdata.jenis-fasilitas-kredit",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "pemohon-ao", "pemohon-eo"]
- },
- {
- "title": "Jenis Legalitas Jaminan",
- "path": "basicdata.jenis-legalitas-jaminan",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "pemohon-ao", "pemohon-eo"]
- },
- {
- "title": "Jenis Aset",
- "path": "basicdata.jenis-jaminan",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "pemohon-ao", "pemohon-eo"]
- },
- {
- "title": "Jenis Dokumen",
- "path": "basicdata.jenis-dokumen",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "pemohon-ao", "pemohon-eo"]
- },
- {
- "title": "Tujuan Penilaian",
- "path": "basicdata.tujuan-penilaian",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "pemohon-ao", "pemohon-eo"]
- },
- {
- "title": "Nilai Plafond",
- "path": "basicdata.nilai-plafond",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "pemohon-ao", "pemohon-eo"]
- },
- {
- "title": "Hubungan Pemilik Jaminan",
- "path": "basicdata.hubungan-pemilik-jaminan",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "pemohon-ao", "pemohon-eo"]
- },
- {
- "title": "Hubungan Penghuni Jaminan",
- "path": "basicdata.hubungan-penghuni-jaminan",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "pemohon-ao", "pemohon-eo"]
- },
- {
- "title": "Arah Mata Angin",
- "path": "basicdata.arah-mata-angin",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator"]
- },
- {
- "title": "Status Permohonan",
- "path": "basicdata.status-permohonan",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator"]
- },
- {
- "title": "Region",
- "path": "basicdata.region",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin", "senior-officer"]
- },
- {
- "title": "Staff Appraisal",
- "path": "basicdata.teams",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "senior-officer"]
- },
- {
- "title": "Jenis Penilaian",
- "path": "basicdata.jenis-penilaian",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin", "senior-officer"]
- },
- {
- "title": "KJPP",
- "path": "basicdata.kjpp",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin"]
- },
- {
- "title": "Jenis Laporan",
- "path": "basicdata.jenis_laporan",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin"]
- },
- {
- "title": "Tujuan Penilaian KJPP",
- "path": "basicdata.tujuan_penilaian_kjpp",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin"]
- },
- {
- "title": "Ijin Usaha",
- "path": "basicdata.ijin_usaha",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin"]
- },
- {
- "title": "SLA",
- "path": "basicdata.sla",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator", "admin"]
- },
- {
- "title": "Bentuk",
- "path": "basicdata.bentuk-tanah",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "Kontur Tanah",
- "path": "basicdata.kontur-tanah",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "Posisi Kavling",
- "path": "basicdata.posisi-kavling",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "Ketinggian Tanah",
- "path": "basicdata.ketinggian-tanah",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "Kondisi Fisik Tanah",
- "path": "basicdata.kondisi-fisik-tanah",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "Jenis Bangunan",
- "path": "basicdata.jenis-bangunan",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "Kondisi Bangunan",
- "path": "basicdata.kondisi-bangunan",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "Sifat Bangunan",
- "path": "basicdata.sifat-bangunan",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
-
- {
- "title": "Sarana Pelengkap",
- "path": "basicdata.sarana-pelengkap",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
-
- {
- "title": "Lalu Lintas Sekitar",
- "path": "basicdata.lalu-lintas-lokasi",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "Tingkat Keramaian",
- "path": "basicdata.tingkat-keramaian",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "Masyarakat Sekitar",
- "path": "basicdata.gol-mas-sekitar",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "Lantai Unit",
- "path": "basicdata.lantai-unit",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "View unit",
- "path": "basicdata.view-unit",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "Spesifikasi Bangunan",
- "path": "basicdata.spek-bangunan",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "Kategori Speksikasi Bangunan",
- "path": "basicdata.spek-kategori-bangunan",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- },
- {
- "title": "Perkerasan jalan",
- "path": "basicdata.perkerasan-jalan",
- "classes": "",
- "attributes": [],
- "permission": "",
- "roles": ["administrator","surveyor"]
- }
-
-
- ]
- }
+ "files": [
+ "app/Helpers/Lpj.php"
],
- "system": []
- }
+ "menu": {
+ "main": [
+ {
+ "title": "Permohonan",
+ "path": "permohonan",
+ "icon": "ki-filled ki-questionnaire-tablet text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo"
+ ]
+ },
+ {
+ "title": "Persetujuan Penawaran",
+ "path": "persetujuan-penawaran",
+ "icon": "ki-filled ki-questionnaire-tablet text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao"
+ ]
+ },
+ {
+ "title": "Registrasi",
+ "path": "registrasi",
+ "icon": "ki-filled ki-file-added text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin"
+ ]
+ },
+ {
+ "title": "Tender",
+ "path": "tender",
+ "icon": "ki-filled ki-category text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin"
+ ],
+ "sub": [
+ {
+ "title": "Data Proses Penawaran",
+ "path": "tender.prosespenawaran",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin"
+ ]
+ },
+ {
+ "title": "Data Penawaran Ulang",
+ "path": "tender.penawaran.ulang",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin"
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Otorisasi Tender",
+ "path": "otorisasitender",
+ "icon": "ki-filled ki-category text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin",
+ "EO Appraisal",
+ "DD Appraisal"
+ ],
+ "sub": [
+ {
+ "title": "Otorisasi Penawaran",
+ "path": "otorisasitender.penawaran",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin",
+ "EO Appraisal",
+ "DD Appraisal"
+ ]
+ }
+ ]
+ },
+ {
+ "title": "SPK",
+ "path": "spk",
+ "icon": "ki-filled ki-file-added text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin"
+ ]
+ },
+ {
+ "title": "Registrasi Final",
+ "path": "registrasifinal",
+ "icon": "ki-filled ki-file-added text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin"
+ ]
+ },
+ {
+ "title": "Pembatalan",
+ "path": "",
+ "icon": "ki-filled ki-file-deleted text-lg text-danger",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo"
+ ]
+ },
+ {
+ "title": "Data Debitur",
+ "path": "debitur",
+ "icon": "ki-filled ki-people text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo"
+ ]
+ },
+ {
+ "title": "Authorization",
+ "path": "authorization",
+ "icon": "ki-filled ki-security-user text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-eo"
+ ]
+ },
+ {
+ "title": "Assignment",
+ "path": "penilaian",
+ "icon": "ki-filled ki-badge text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "senior-officer"
+ ]
+ },
+ {
+ "title": "Team Activity",
+ "path": "activity.progres",
+ "icon": "ki-filled ki-questionnaire-tablet text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "senior-officer"
+ ]
+ },
+ {
+ "title": "Otorisator",
+ "path": "otorisator",
+ "icon": "ki-filled ki-security-user text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "senior-officer"
+ ],
+ "sub": [
+ {
+ "title": "Pelaporan",
+ "path": "otorisator.pelaporan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "senior-officer"
+ ]
+ },
+ {
+ "title": "Pembayaran",
+ "path": "otorisator.pembayaran",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "senior-officer"
+ ]
+ },
+ {
+ "title": "Pembatalan",
+ "path": "otorisator.pembatalan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "senior-officer"
+ ]
+ },
+ {
+ "title": "SLA",
+ "path": "otorisator.sla",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "senior-officer"
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Surveyor",
+ "path": "surveyor",
+ "icon": "ki-filled ki-questionnaire-tablet text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Activity",
+ "path": "activity",
+ "icon": "ki-filled ki-calendar-edit text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo",
+ "admin",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Penilai",
+ "path": "penilai",
+ "icon": "ki-filled ki-brush text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Laporan",
+ "path": "laporan",
+ "icon": "ki-filled ki-filter-tablet text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo",
+ "admin",
+ "senior-officer"
+ ],
+ "sub": [
+ {
+ "title": "Sederhana",
+ "path": "laporan.sederhana",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin"
+ ]
+ },
+ {
+ "title": "Standard",
+ "path": "laporan.standard",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo",
+ "admin",
+ "senior-officer"
+ ]
+ }
+ ]
+ },
+ {
+ "title": "Resume",
+ "path": "resume",
+ "icon": "ki-filled ki-questionnaire-tablet text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo"
+ ]
+ }
+ ],
+ "master": [
+ {
+ "title": "Basic Data",
+ "path": "basicdata",
+ "icon": "ki-filled ki-category text-lg",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo",
+ "admin",
+ "surveyor"
+ ],
+ "sub": [
+ {
+ "title": "Jenis Fasilitas Kredit",
+ "path": "basicdata.jenis-fasilitas-kredit",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo"
+ ]
+ },
+ {
+ "title": "Jenis Legalitas Jaminan",
+ "path": "basicdata.jenis-legalitas-jaminan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo"
+ ]
+ },
+ {
+ "title": "Jenis Aset",
+ "path": "basicdata.jenis-jaminan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo"
+ ]
+ },
+ {
+ "title": "Jenis Dokumen",
+ "path": "basicdata.jenis-dokumen",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo"
+ ]
+ },
+ {
+ "title": "Tujuan Penilaian",
+ "path": "basicdata.tujuan-penilaian",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo"
+ ]
+ },
+ {
+ "title": "Nilai Plafond",
+ "path": "basicdata.nilai-plafond",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo"
+ ]
+ },
+ {
+ "title": "Hubungan Pemilik Jaminan",
+ "path": "basicdata.hubungan-pemilik-jaminan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo"
+ ]
+ },
+ {
+ "title": "Hubungan Penghuni Jaminan",
+ "path": "basicdata.hubungan-penghuni-jaminan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "pemohon-ao",
+ "pemohon-eo"
+ ]
+ },
+ {
+ "title": "Arah Mata Angin",
+ "path": "basicdata.arah-mata-angin",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator"
+ ]
+ },
+ {
+ "title": "Status Permohonan",
+ "path": "basicdata.status-permohonan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator"
+ ]
+ },
+ {
+ "title": "Region",
+ "path": "basicdata.region",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin",
+ "senior-officer"
+ ]
+ },
+ {
+ "title": "Staff Appraisal",
+ "path": "basicdata.teams",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "senior-officer"
+ ]
+ },
+ {
+ "title": "Jenis Penilaian",
+ "path": "basicdata.jenis-penilaian",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin",
+ "senior-officer"
+ ]
+ },
+ {
+ "title": "KJPP",
+ "path": "basicdata.kjpp",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin"
+ ]
+ },
+ {
+ "title": "Jenis Laporan",
+ "path": "basicdata.jenis_laporan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin"
+ ]
+ },
+ {
+ "title": "Tujuan Penilaian KJPP",
+ "path": "basicdata.tujuan_penilaian_kjpp",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin"
+ ]
+ },
+ {
+ "title": "Ijin Usaha",
+ "path": "basicdata.ijin_usaha",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin"
+ ]
+ },
+ {
+ "title": "SLA",
+ "path": "basicdata.sla",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "admin"
+ ]
+ },
+ {
+ "title": "Bentuk",
+ "path": "basicdata.bentuk-tanah",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Kontur Tanah",
+ "path": "basicdata.kontur-tanah",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Posisi Kavling",
+ "path": "basicdata.posisi-kavling",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Ketinggian Tanah",
+ "path": "basicdata.ketinggian-tanah",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Kondisi Fisik Tanah",
+ "path": "basicdata.kondisi-fisik-tanah",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Jenis Bangunan",
+ "path": "basicdata.jenis-bangunan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Kondisi Bangunan",
+ "path": "basicdata.kondisi-bangunan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Sifat Bangunan",
+ "path": "basicdata.sifat-bangunan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Sarana Pelengkap",
+ "path": "basicdata.sarana-pelengkap",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Lalu Lintas Sekitar",
+ "path": "basicdata.lalu-lintas-lokasi",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Tingkat Keramaian",
+ "path": "basicdata.tingkat-keramaian",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Masyarakat Sekitar",
+ "path": "basicdata.gol-mas-sekitar",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Lantai Unit",
+ "path": "basicdata.lantai-unit",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "View unit",
+ "path": "basicdata.view-unit",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Spesifikasi Bangunan",
+ "path": "basicdata.spek-bangunan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Kategori Speksikasi Bangunan",
+ "path": "basicdata.spek-kategori-bangunan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Perkerasan jalan",
+ "path": "basicdata.perkerasan-jalan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Jenis Pesawat",
+ "path": "basicdata.jenis-pesawat",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Jenis kapal",
+ "path": "basicdata.jenis-kapal",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Jenis Kendaraan",
+ "path": "basicdata.jenis-kendaraan",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ },
+ {
+ "title": "Model Alat Berat",
+ "path": "basicdata.model-alat-berat",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "surveyor"
+ ]
+ }
+ ]
+ }
+ ],
+ "system": []
+ }
}
diff --git a/resources/views/activity/progres_activity/index.blade.php b/resources/views/activity/progres_activity/index.blade.php
index 4ed5286..3884136 100644
--- a/resources/views/activity/progres_activity/index.blade.php
+++ b/resources/views/activity/progres_activity/index.blade.php
@@ -210,7 +210,11 @@
},
due_date: {
title: 'Due Date',
- render: (item, data) => `${data.due_date || ''}`,
+ render: (item, data) => {
+ const mulai = new Date(data.permohonan.created_at);
+ const selesai = new Date(data.tanggal_kunjungan)
+ return `${mulai.getDate()}-${mulai.getMonth() + 1}-${mulai.getFullYear()} - ${selesai.getDate()}-${selesai.getMonth() + 1}-${selesai.getFullYear()}`
+ },
},
paparan: {
title: 'Paparan',
@@ -236,6 +240,11 @@
});
});
+
+
+
+
+
function formatDateFromISO(isoDateString) {
const date = new Date(isoDateString);
const day = String(date.getDate()).padStart(2, '0');
diff --git a/resources/views/jenis_jaminan/create.blade.php b/resources/views/jenis_jaminan/create.blade.php
index a12b7ee..382377f 100644
--- a/resources/views/jenis_jaminan/create.blade.php
+++ b/resources/views/jenis_jaminan/create.blade.php
@@ -75,7 +75,7 @@
name="form_kategori[]" multiple="multiple">
- @foreach (['tanah', 'bangunan', 'kapal', 'kendaraan', 'mesin', 'pesawat', 'alat-berat', 'apartemen-kantor','lingkungan', 'fakta'] as $item)
+ @foreach (['tanah', 'bangunan', 'kapal', 'kendaraan', 'mesin', 'pesawat', 'alat-berat', 'apartemen-kantor','lingkungan', 'fakta','informasi'] as $item)