Perbaikan CONFLICT (content): Merge conflict in app/Http/Controllers/OtorisasiPenawaranController.php
This commit is contained in:
@@ -1,27 +1,26 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Modules\Lpj\Http\Controllers;
|
namespace Modules\Lpj\Http\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Response;
|
use Carbon\Carbon;
|
||||||
use App\Http\Controllers\Controller;
|
use Exception;
|
||||||
use Carbon\Carbon;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Exception;
|
use Illuminate\Http\Request;
|
||||||
use Maatwebsite\Excel\Facades\Excel;
|
use Illuminate\Http\Response;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Storage;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Validator;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Maatwebsite\Excel\Facades\Excel;
|
||||||
use Modules\Lpj\Models\KJPP;
|
use Modules\Lpj\Models\KJPP;
|
||||||
use Modules\Lpj\Models\PenawaranDetailTender;
|
use Modules\Lpj\Models\PenawaranDetailTender;
|
||||||
use Modules\Lpj\Models\PenawaranDetailTenderLog;
|
use Modules\Lpj\Models\PenawaranDetailTenderLog;
|
||||||
use Modules\Lpj\Models\PenawaranTender;
|
use Modules\Lpj\Models\PenawaranTender;
|
||||||
|
use Modules\Lpj\Models\Permohonan;
|
||||||
|
|
||||||
use Modules\Lpj\Models\Permohonan;
|
class OtorisasiPenawaranController extends Controller
|
||||||
|
{
|
||||||
class OtorisasiPenawaranController extends Controller
|
|
||||||
{
|
|
||||||
public $user;
|
public $user;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -40,22 +39,30 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve data from the database
|
// Retrieve data from the database
|
||||||
$query =PenawaranTender::query()
|
$query = PenawaranTender::query()->select(
|
||||||
->select('penawaran.*',
|
'penawaran.*',
|
||||||
'debitures.name as debitures_name',
|
'debitures.name as debitures_name',
|
||||||
'permohonan.tanggal_permohonan',
|
'permohonan.tanggal_permohonan',
|
||||||
'users.name as user_pemohon',
|
'users.name as user_pemohon',
|
||||||
'branches.name as branches_name',
|
'branches.name as branches_name',
|
||||||
'tujuan_penilaian.name as tujuan_penilaian_name',
|
'tujuan_penilaian.name as tujuan_penilaian_name',
|
||||||
'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name')
|
'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name',
|
||||||
->leftJoin('permohonan', 'permohonan.nomor_registrasi', '=', 'penawaran.nomor_registrasi')
|
)->leftJoin('permohonan', 'permohonan.nomor_registrasi', '=', 'penawaran.nomor_registrasi')->leftJoin(
|
||||||
->leftJoin('debitures', 'debitures.id', '=', 'permohonan.debiture_id')
|
'debitures',
|
||||||
->leftJoin('users', 'users.id', '=', 'permohonan.user_id')
|
'debitures.id',
|
||||||
->leftJoin('branches', 'branches.id', '=', 'permohonan.branch_id')
|
'=',
|
||||||
->leftJoin('tujuan_penilaian', 'tujuan_penilaian.id','=','permohonan.tujuan_penilaian_id')
|
'permohonan.debiture_id',
|
||||||
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
|
)->leftJoin('users', 'users.id', '=', 'permohonan.user_id')->leftJoin(
|
||||||
->where('penawaran.status','=','proposal-tender')
|
'branches',
|
||||||
->withCount('penawarandetails');
|
'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
|
// Apply search filter if provided
|
||||||
if ($request->has('search') && !empty($request->get('search'))) {
|
if ($request->has('search') && !empty($request->get('search'))) {
|
||||||
@@ -97,7 +104,6 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
// format date
|
// format date
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($data as $obj) {
|
foreach ($data as $obj) {
|
||||||
|
|
||||||
// tanggal_permohonan
|
// tanggal_permohonan
|
||||||
if ($obj->tanggal_permohonan) {
|
if ($obj->tanggal_permohonan) {
|
||||||
$data[$i]->tanggal_permohonan = Carbon::parse($obj->tanggal_permohonan)->format('d M Y');
|
$data[$i]->tanggal_permohonan = Carbon::parse($obj->tanggal_permohonan)->format('d M Y');
|
||||||
@@ -105,10 +111,10 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
|
|
||||||
// date_range
|
// date_range
|
||||||
$data[$i]->date_range = "-";
|
$data[$i]->date_range = "-";
|
||||||
if ($obj->start_date && $obj->end_date)
|
if ($obj->start_date && $obj->end_date) {
|
||||||
{
|
$data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y') . ' - ' . Carbon::parse(
|
||||||
$data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y') . ' - ' .
|
$obj->end_date,
|
||||||
Carbon::parse($obj->end_date)->format('d M Y');
|
)->format('d M Y');
|
||||||
}
|
}
|
||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
@@ -129,7 +135,7 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
'pageCount' => $pageCount,
|
'pageCount' => $pageCount,
|
||||||
'page' => $currentPage,
|
'page' => $currentPage,
|
||||||
'totalCount' => $totalRecords,
|
'totalCount' => $totalRecords,
|
||||||
'data' => $data
|
'data' => $data,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,10 +147,10 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
|
|
||||||
public function setData(Request $request): JsonResponse
|
public function setData(Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$data = array();
|
$data = [];
|
||||||
$penawaran = array();
|
$penawaran = [];
|
||||||
$penawrandetails = array();
|
$penawrandetails = [];
|
||||||
$penawarandetailLogs = array();
|
$penawarandetailLogs = [];
|
||||||
|
|
||||||
if (request()->ajax()) {
|
if (request()->ajax()) {
|
||||||
$id = $request->id;
|
$id = $request->id;
|
||||||
@@ -228,8 +234,8 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
|
|
||||||
public function otorisasiPenawaranKJPP(Request $request, $id): JsonResponse
|
public function otorisasiPenawaranKJPP(Request $request, $id): JsonResponse
|
||||||
{
|
{
|
||||||
$data = array();
|
$data = [];
|
||||||
$dataDetailPenawaranLog=[];
|
$dataDetailPenawaranLog = [];
|
||||||
if (request()->ajax()) {
|
if (request()->ajax()) {
|
||||||
|
|
||||||
// cek masa aktif penawaran
|
// cek masa aktif penawaran
|
||||||
@@ -268,7 +274,7 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
Permohonan::where('nomor_registrasi',$request->noReg)
|
Permohonan::where('nomor_registrasi',$request->noReg)
|
||||||
->update(['status'=>'spk',
|
->update(['status'=>'persetujuan-penawaran',
|
||||||
'updated_by' => Auth::id(),
|
'updated_by' => Auth::id(),
|
||||||
'updated_at' => now()
|
'updated_at' => now()
|
||||||
]);
|
]);
|
||||||
@@ -337,7 +343,7 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
public function penawaranulang(Request $request, $id): JsonResponse
|
public function penawaranulang(Request $request, $id): JsonResponse
|
||||||
{
|
{
|
||||||
// $id ==> penawaran.id
|
// $id ==> penawaran.id
|
||||||
$data = array();
|
$data = [];
|
||||||
$dataDetailPenawaranLog=[];
|
$dataDetailPenawaranLog=[];
|
||||||
if (request()->ajax()) {
|
if (request()->ajax()) {
|
||||||
|
|
||||||
@@ -411,7 +417,7 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['message']['message_error'] = array("Penawaran ulang failed.");
|
$data['message']['message_error'] = array("Penawaran ulang failed..");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -419,7 +425,6 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['message']['message_error'] = array("no ajax request");
|
$data['message']['message_error'] = array("no ajax request");
|
||||||
}
|
}
|
||||||
|
|
||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -39,8 +39,9 @@ class PenilaiController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function show($id)
|
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'));
|
return view('lpj::penilai.show', compact('permohonan'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ class PenilaianController extends Controller
|
|||||||
|
|
||||||
if (isset($validatedData['penilai_surveyor_id'])) {
|
if (isset($validatedData['penilai_surveyor_id'])) {
|
||||||
$user_ids[] = $validatedData['penilai_surveyor_id'];
|
$user_ids[] = $validatedData['penilai_surveyor_id'];
|
||||||
}else {
|
} else {
|
||||||
$user_ids[] = $validatedData['penilai_id'];
|
$user_ids[] = $validatedData['penilai_id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,11 +126,11 @@ class PenilaianController extends Controller
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
DB::commit();
|
DB::commit();
|
||||||
|
return response()->json(['success' => true, 'message' => 'Data berhasil disimpan'], 200);
|
||||||
return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil disimpan');
|
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
DB::rollBack();
|
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',
|
'status' => 'assign',
|
||||||
]);
|
]);
|
||||||
DB::commit();
|
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) {
|
} catch (Exception $e) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
return redirect()->route('penilaian.index')->with('error', $e->getMessage());
|
return response()->json([ 'success' => false, 'error' => $e->getMessage()]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
147
app/Http/Controllers/PersetujuanPenawaranController.php
Normal file
147
app/Http/Controllers/PersetujuanPenawaranController.php
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Modules\Lpj\Http\Requests\PersetujuanPenawaranRequest;
|
||||||
|
use Modules\Lpj\Models\Permohonan;
|
||||||
|
use Modules\Lpj\Models\PersetujuanPenawaran;
|
||||||
|
|
||||||
|
class PersetujuanPenawaranController extends Controller
|
||||||
|
{
|
||||||
|
public $user;
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$persetujuanPenawarans = PersetujuanPenawaran::all();
|
||||||
|
return view('lpj::persetujuan_penawaran.index', compact('persetujuanPenawarans'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*/
|
||||||
|
public function store(PersetujuanPenawaranRequest $request)
|
||||||
|
{
|
||||||
|
$validated = $request->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,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -40,6 +40,10 @@ use Modules\Lpj\Models\Lantai;
|
|||||||
use Modules\Lpj\Models\Inspeksi;
|
use Modules\Lpj\Models\Inspeksi;
|
||||||
use Modules\Lpj\Models\ViewUnit;
|
use Modules\Lpj\Models\ViewUnit;
|
||||||
use Modules\Lpj\Models\ObjekJaminan;
|
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\RuteJaminan;
|
||||||
use Modules\Lpj\Models\AnalisaUnit;
|
use Modules\Lpj\Models\AnalisaUnit;
|
||||||
use Modules\Lpj\Models\GolonganMasySekitar;
|
use Modules\Lpj\Models\GolonganMasySekitar;
|
||||||
@@ -48,6 +52,8 @@ use Modules\Lpj\Models\LaluLintasLokasi;
|
|||||||
use Modules\Lpj\Models\SpekBagunanAnalisaDetail;
|
use Modules\Lpj\Models\SpekBagunanAnalisaDetail;
|
||||||
use Modules\Lpj\Http\Requests\SurveyorRequest;
|
use Modules\Lpj\Http\Requests\SurveyorRequest;
|
||||||
use Modules\Lpj\Http\Requests\FormSurveyorRequest;
|
use Modules\Lpj\Http\Requests\FormSurveyorRequest;
|
||||||
|
use Modules\Lpj\Emails\SendEmail;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
|
||||||
class SurveyorController extends Controller
|
class SurveyorController extends Controller
|
||||||
{
|
{
|
||||||
@@ -93,6 +99,10 @@ class SurveyorController extends Controller
|
|||||||
$spekBangunan = SpekBangunan::all();
|
$spekBangunan = SpekBangunan::all();
|
||||||
$saranaPelengkap = SaranaPelengkap::all();
|
$saranaPelengkap = SaranaPelengkap::all();
|
||||||
$arahMataAngin = ArahMataAngin::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',
|
'forminspeksi',
|
||||||
'formDenah',
|
'formDenah',
|
||||||
'formFoto',
|
'formFoto',
|
||||||
'jaminanId'
|
'jaminanId',
|
||||||
|
'jenisKendaraan',
|
||||||
|
'jenisKapal',
|
||||||
|
'jenisPesawat',
|
||||||
|
'modelAlatBerat'
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -167,7 +181,7 @@ class SurveyorController extends Controller
|
|||||||
$rules = $this->getActionSpecificRules($data, $action, $request);
|
$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();
|
$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)]);
|
$inspeksi->update(['data_form' => json_encode($rules)]);
|
||||||
} else {
|
} else {
|
||||||
Inspeksi::create([
|
Inspeksi::create([
|
||||||
@@ -210,7 +224,7 @@ class SurveyorController extends Controller
|
|||||||
foreach ($pisah as $act) {
|
foreach ($pisah as $act) {
|
||||||
if (isset($allRules[$act])) {
|
if (isset($allRules[$act])) {
|
||||||
$rules = array_merge($rules, $allRules[$act]);
|
$rules = array_merge($rules, $allRules[$act]);
|
||||||
if ($act == 'tanah' || $act == 'bangunan') {
|
if ($act == 'tanah' || $act == 'bangunan' || $act == 'apartemen-kantor') {
|
||||||
$hasAssetDescriptionRules = true;
|
$hasAssetDescriptionRules = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -226,7 +240,6 @@ class SurveyorController extends Controller
|
|||||||
|
|
||||||
public function storeDenah(Request $request)
|
public function storeDenah(Request $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$validatedData = $request->validate([
|
$validatedData = $request->validate([
|
||||||
'foto_denah' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
'foto_denah' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
|
||||||
@@ -237,22 +250,25 @@ class SurveyorController extends Controller
|
|||||||
|
|
||||||
$validatedData['foto_denah'] = $this->uploadFile($request->file('foto_denah'), 'foto_denah');
|
$validatedData['foto_denah'] = $this->uploadFile($request->file('foto_denah'), 'foto_denah');
|
||||||
|
|
||||||
|
|
||||||
$formatJsonDenah = [
|
$formatJsonDenah = [
|
||||||
'foto_denah' => $validatedData['foto_denah'],
|
'foto_denah' => $validatedData['foto_denah'],
|
||||||
'luas' => $validatedData['luas'],
|
'luas' => $validatedData['luas'],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first();
|
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))
|
||||||
if ($request->input('permohonan_id') == $inspeksi->permohonan_id && $request->input('jenis_jaminan_id') == $inspeksi->jenis_jaminan_id) {
|
->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if ($inspeksi) {
|
||||||
$inspeksi->update([
|
$inspeksi->update([
|
||||||
'denah_form' => json_encode($formatJsonDenah)
|
'denah_form' => json_encode($formatJsonDenah)
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
Inspeksi::create([
|
Inspeksi::create([
|
||||||
'permohonan_id' => $request->input('permohonan_id'),
|
'permohonan_id' => $request->input('permohonan_id'),
|
||||||
'denah_form' => json_encode($formatFotojson)
|
'jenis_jaminan_id' => $request->input('jenis_jaminan_id'),
|
||||||
|
'denah_form' => json_encode($formatJsonDenah)
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -261,7 +277,6 @@ class SurveyorController extends Controller
|
|||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
return response()->json(['success' => false, 'message' => 'Data gagal disimpan: ' . $e->getMessage()], 500);
|
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_unit' => $foto_lantai_unit,
|
||||||
'foto_lantai_lainnya' => $foto_lantai_lainnya,
|
'foto_lantai_lainnya' => $foto_lantai_lainnya,
|
||||||
'foto_rute_lainnya' => $foto_rute_lainnya,
|
'foto_rute_lainnya' => $foto_rute_lainnya,
|
||||||
'basement' => $basement,
|
'foto_basement' => $basement,
|
||||||
'gerbang' => $gerbang,
|
'foto_gerbang' => $gerbang,
|
||||||
'pendamping' => $pendamping
|
'pendamping' => $pendamping
|
||||||
];
|
];
|
||||||
|
|
||||||
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first();
|
$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([
|
$inspeksi->update([
|
||||||
'foto_form' => json_encode($formatFotojson)
|
'foto_form' => json_encode($formatFotojson)
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
Inspeksi::create([
|
Inspeksi::create([
|
||||||
'permohonan_id' => $request->input('permohonan_id'),
|
'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 {
|
try {
|
||||||
$cekButton = $this->checkButtonStatus($id)->getData();
|
// $cekButton = $this->checkButtonStatus($id);
|
||||||
if (!$cekButton->buttonDisable) {
|
// if (!$cekButton->buttonDisable) {
|
||||||
$permohonan = Permohonan::find($id);
|
$permohonan = Permohonan::find($id);
|
||||||
$permohonan->update([
|
$permohonan->update([
|
||||||
'status' => 'done',
|
'status' => 'done',
|
||||||
]);
|
]);
|
||||||
return response()->json(['success' => true, 'message' => 'Form surveyor submitted successfully'], 200);
|
return response()->json(['success' => true, 'message' => 'Form surveyor submitted successfully'], 200);
|
||||||
} else {
|
// } else {
|
||||||
return response()->json(['error' => 'Something went wrong'], 400);
|
// return response()->json(['error' => 'Something went wrong'], 400);
|
||||||
}
|
// }
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
return response()->json(['error' => 'Something went wrong', 'message' => $e->getMessage()], 500);
|
return response()->json(['error' => 'Something went wrong', 'message' => $e->getMessage()], 500);
|
||||||
}
|
}
|
||||||
@@ -436,7 +455,11 @@ class SurveyorController extends Controller
|
|||||||
return response()->json(['buttonDisable' => true]);
|
return response()->json(['buttonDisable' => true]);
|
||||||
}
|
}
|
||||||
} catch (\Exception $e) {
|
} 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)
|
public function storeJadwal(Request $request)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$validate = $request->validate([
|
$validate = $request->validate([
|
||||||
'id' => 'required',
|
'id' => 'required',
|
||||||
'waktu_penilaian' => 'required',
|
'waktu_penilaian' => 'required',
|
||||||
'deskripsi_penilaian' => 'required'
|
'deskripsi_penilaian' => 'required'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// return response()->json([
|
// $user = ['user' => 'rustammajid76@gmail.com'];
|
||||||
// 'daa'=>$validate
|
|
||||||
// ]);
|
// $emailData = [
|
||||||
|
// 'email' => 'rustammajid76@gmail.com',
|
||||||
|
// 'subject' => 'Test',
|
||||||
|
// 'emailData' => '<h2>Hello, World!</h2><h2>This is the email content. Waktu Penilaian:</h2>'
|
||||||
|
// ];
|
||||||
|
|
||||||
|
// $this->sendMessage($emailData, $user);
|
||||||
|
|
||||||
$id = $request->input('id');
|
$id = $request->input('id');
|
||||||
$penilaian = Penilaian::findOrFail($id);
|
$penilaian = Penilaian::findOrFail($id);
|
||||||
|
|
||||||
$penilaian->update([
|
$penilaian->update([
|
||||||
'waktu_penilaian' => $validate['waktu_penilaian'],
|
'waktu_penilaian' => $validate['waktu_penilaian'],
|
||||||
'deskripsi_penilaian' => $validate['deskripsi_penilaian'],
|
'deskripsi_penilaian' => $validate['deskripsi_penilaian'],
|
||||||
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('surveyor.index')
|
->route('surveyor.index')
|
||||||
->with('success', 'Jadwal berhasil dibuat.');
|
->with('success', 'Jadwal berhasil dibuat.');
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
return redirect()
|
return response()->json(['buttonDisable' => $e->getMessage()]);
|
||||||
->route('surveyor.index')
|
|
||||||
->with('error', 'Gagal membuat jadwal: ' . $e->getMessage());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function storeAproved($id)
|
public function storeAproved($id)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
@@ -534,7 +562,10 @@ class SurveyorController extends Controller
|
|||||||
$tingkatKeramaian = TingkatKeramaian::all();
|
$tingkatKeramaian = TingkatKeramaian::all();
|
||||||
$laluLintasLokasi = LaluLintasLokasi::all();
|
$laluLintasLokasi = LaluLintasLokasi::all();
|
||||||
$perkerasanJalan = PerkerasanJalan::all();
|
$perkerasanJalan = PerkerasanJalan::all();
|
||||||
|
$jenisKendaraan = JenisKendaraan::all();
|
||||||
|
$jenisKapal = JenisKapal::all();
|
||||||
|
$jenisPesawat = JenisPesawat::all();
|
||||||
|
$modelAlatBerat = ModelAlatBerat::all();
|
||||||
|
|
||||||
// return response()->json([
|
// return response()->json([
|
||||||
// 'per'=>
|
// 'per'=>
|
||||||
@@ -571,7 +602,11 @@ class SurveyorController extends Controller
|
|||||||
'laluLintasLokasi',
|
'laluLintasLokasi',
|
||||||
'perkerasanJalan',
|
'perkerasanJalan',
|
||||||
'link_url_region',
|
'link_url_region',
|
||||||
'forminspeksi'
|
'forminspeksi',
|
||||||
|
'jenisKendaraan',
|
||||||
|
'jenisKapal',
|
||||||
|
'jenisPesawat',
|
||||||
|
'modelAlatBerat'
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -628,7 +663,7 @@ class SurveyorController extends Controller
|
|||||||
* Data pembanding.
|
* Data pembanding.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function dataPembanding($id)
|
public function dataPembanding($id, $jaminanId)
|
||||||
{
|
{
|
||||||
$permohonan = Permohonan::with(
|
$permohonan = Permohonan::with(
|
||||||
[
|
[
|
||||||
@@ -646,7 +681,16 @@ class SurveyorController extends Controller
|
|||||||
$branches = Branch::all();
|
$branches = Branch::all();
|
||||||
$provinces = Province::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],
|
'lantai-unit' => ['Lantai Unit', 'lantai-unit', Lantai::class],
|
||||||
'view-unit' => ['View Unit', 'view-unit', ViewUnit::class],
|
'view-unit' => ['View Unit', 'view-unit', ViewUnit::class],
|
||||||
'gol-mas-sekitar' => ['Golongan Masyarakat Sekitar', 'gol-mas-sekitar', GolonganMasySekitar::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,
|
'Golongan Masyarakat Sekitar' => GolonganMasySekitar::class,
|
||||||
'Lantai Unit' => Lantai::class,
|
'Lantai Unit' => Lantai::class,
|
||||||
'View Unit' => ViewUnit::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,
|
'spek-bangunan' => SpekBangunan::class,
|
||||||
'lantai-unit' => Lantai::class,
|
'lantai-unit' => Lantai::class,
|
||||||
'view-unit' => ViewUnit::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(),
|
'golMasySekitar' => GolonganMasySekitar::all(),
|
||||||
'tingkatKeramaian' => TingkatKeramaian::all(),
|
'tingkatKeramaian' => TingkatKeramaian::all(),
|
||||||
'laluLintasLokasi' => LaluLintasLokasi::all(),
|
'laluLintasLokasi' => LaluLintasLokasi::all(),
|
||||||
|
'jenisPesawat' => JenisPesawat::all(),
|
||||||
|
'modelAlatBerat' => ModelAlatBerat::all(),
|
||||||
|
'jenisKapal' => JenisKapal::all(),
|
||||||
|
'jenisKendaraan' => JenisKendaraan::all(),
|
||||||
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -1060,7 +1120,11 @@ class SurveyorController extends Controller
|
|||||||
'spek-bangunan' => ['Spek Bangunan', 'spek-bangunan'],
|
'spek-bangunan' => ['Spek Bangunan', 'spek-bangunan'],
|
||||||
'lantai-unit' => ['Lantai Unit', 'lantai-unit'],
|
'lantai-unit' => ['Lantai Unit', 'lantai-unit'],
|
||||||
'view-unit' => ['View Unit', 'view-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)
|
private function getAssetData($data)
|
||||||
@@ -1107,14 +1171,25 @@ class SurveyorController extends Controller
|
|||||||
|
|
||||||
private function getBangunanData($data, $request): array
|
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 [
|
return [
|
||||||
'luas_tanah_bagunan' => $data['luas_tanah_bagunan'] ?? null,
|
'luas_tanah_bagunan' => $data['luas_tanah_bagunan'] ?? null,
|
||||||
'jenis_bangunan' => $data['jenis_bangunan'] ?? null,
|
'jenis_bangunan' => $data['jenis_bangunan'] ?? null,
|
||||||
'kondisi_bangunan' => $data['kondisi_bangunan'] ?? null,
|
'kondisi_bangunan' => $data['kondisi_bangunan'] ?? null,
|
||||||
'sifat_bangunan' => $data['sifat_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_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' => $data['sarana_pelengkap'] ?? [],
|
||||||
'sarana_pelengkap_input' => $data['sarana_pelengkap_input'] ?? null,
|
'sarana_pelengkap_input' => $data['sarana_pelengkap_input'] ?? null,
|
||||||
];
|
];
|
||||||
@@ -1154,6 +1229,7 @@ class SurveyorController extends Controller
|
|||||||
'fakta_negatif' => $data['fakta_negatif'] ?? null,
|
'fakta_negatif' => $data['fakta_negatif'] ?? null,
|
||||||
'rute_menuju' => $data['rute_menuju'] ?? null,
|
'rute_menuju' => $data['rute_menuju'] ?? null,
|
||||||
'batas_batas' => $data['batas_batas'] ?? null,
|
'batas_batas' => $data['batas_batas'] ?? null,
|
||||||
|
'batas_batas_input' => $data['batas_batas_input'] ?? null,
|
||||||
'kondisi_lingkungan' => $data['kondisi_lingkungan'] ?? null,
|
'kondisi_lingkungan' => $data['kondisi_lingkungan'] ?? null,
|
||||||
'kondisi_lain_bangunan' => $data['kondisi_lain_bangunan'] ?? null,
|
'kondisi_lain_bangunan' => $data['kondisi_lain_bangunan'] ?? null,
|
||||||
'informasi_dokument' => $data['informasi_dokument'] ?? null,
|
'informasi_dokument' => $data['informasi_dokument'] ?? null,
|
||||||
@@ -1210,47 +1286,361 @@ class SurveyorController extends Controller
|
|||||||
unlink($fullPath);
|
unlink($fullPath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private function getKapalData($data): array
|
|
||||||
|
|
||||||
|
private function getKapalData($data, $request): array
|
||||||
{
|
{
|
||||||
return [
|
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 [
|
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 [
|
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 [
|
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 [
|
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,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ use Modules\Lpj\Exports\PenawaranTenderExport;
|
|||||||
use Modules\Lpj\Http\Requests\TenderPenawaranRequest;
|
use Modules\Lpj\Http\Requests\TenderPenawaranRequest;
|
||||||
use Modules\Lpj\Jobs\SendPenawaranKJPPTenderJob;
|
use Modules\Lpj\Jobs\SendPenawaranKJPPTenderJob;
|
||||||
use Modules\Lpj\Jobs\SendPenawaranTenderJob;
|
use Modules\Lpj\Jobs\SendPenawaranTenderJob;
|
||||||
|
use Modules\Lpj\Models\PenawaranEmailTenderLog;
|
||||||
|
|
||||||
class TenderController extends Controller
|
class TenderController extends Controller
|
||||||
{
|
{
|
||||||
@@ -618,7 +619,9 @@ class TenderController extends Controller
|
|||||||
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
||||||
|
|
||||||
// Retrieve data from the database
|
// 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
|
// Apply sorting if provided
|
||||||
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
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
|
// Get the data for the current page
|
||||||
$data = $query->with(['kjpp', 'penawaran', 'emailTenderLog'])->get();
|
$data = $query->get();
|
||||||
|
|
||||||
// add column "No"
|
// add column "No"
|
||||||
$i = 0;
|
$i = 0;
|
||||||
@@ -670,20 +658,9 @@ class TenderController extends Controller
|
|||||||
$j++;
|
$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 the response data as a JSON object
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'draw' => $request->get('draw'),
|
'draw' => $request->get('draw'),
|
||||||
'recordsTotal' => $totalRecords,
|
|
||||||
'recordsFiltered' => $filteredRecords,
|
|
||||||
'pageCount' => $pageCount,
|
|
||||||
'page' => $currentPage,
|
|
||||||
'totalCount' => $totalRecords,
|
|
||||||
'data' => $data,
|
'data' => $data,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
@@ -800,8 +777,6 @@ class TenderController extends Controller
|
|||||||
|
|
||||||
$dp1 = PenawaranDetailTender::with('kjpp')->where('kjpp_rekanan_id', '=', $id)->first();
|
$dp1 = PenawaranDetailTender::with('kjpp')->where('kjpp_rekanan_id', '=', $id)->first();
|
||||||
|
|
||||||
// dd($dp1->kjpp);
|
|
||||||
|
|
||||||
foreach ($permohonan->debiture->documents as $document) {
|
foreach ($permohonan->debiture->documents as $document) {
|
||||||
$village_permohonan = $document->village_code;
|
$village_permohonan = $document->village_code;
|
||||||
$district_permohonan = $document->district_code;
|
$district_permohonan = $document->district_code;
|
||||||
@@ -814,8 +789,20 @@ class TenderController extends Controller
|
|||||||
$cities = City::where('code', $city_permohonan)->get();
|
$cities = City::where('code', $city_permohonan)->get();
|
||||||
$provinces = Province::where('code', $province_permohonan)->get();
|
$provinces = Province::where('code', $province_permohonan)->get();
|
||||||
|
|
||||||
try {
|
$subject = 'Send Penawaran K J P P Email';
|
||||||
$balikan = SendPenawaranKJPPTenderJob::dispatch(
|
|
||||||
|
$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,
|
$kjpps,
|
||||||
$dp1,
|
$dp1,
|
||||||
$penawaran,
|
$penawaran,
|
||||||
@@ -825,10 +812,66 @@ class TenderController extends Controller
|
|||||||
$cities,
|
$cities,
|
||||||
$provinces
|
$provinces
|
||||||
);
|
);
|
||||||
} catch (\Exception $e) {
|
|
||||||
return redirect()->route('tender.penawaran.ulang.index')->with('error', 'Email Penawaran Gagal Terkirim!');
|
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!');
|
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!');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ class FormSurveyorRequest extends FormRequest
|
|||||||
'kapal' => $this->getKapalRules(),
|
'kapal' => $this->getKapalRules(),
|
||||||
'kendaraan' => $this->getKendaraanRules(),
|
'kendaraan' => $this->getKendaraanRules(),
|
||||||
'mesin' => $this->getMesinRules(),
|
'mesin' => $this->getMesinRules(),
|
||||||
'pesawat' => $this->getLinkunganRules(),
|
'pesawat' => $this->getPesawatRules(),
|
||||||
'alat-berat' => $this->getLinkunganRules(),
|
'alat-berat' => $this->getAlatBeratRules(),
|
||||||
'apartemen-kantor' => $this->getUnitRules(),
|
'apartemen-kantor' => $this->getUnitRules(),
|
||||||
'lingkungan' => $this->getLinkunganRules(),
|
'lingkungan' => $this->getLinkunganRules(),
|
||||||
'fakta' => $this->getCommonRules(),
|
'fakta' => $this->getCommonRules(),
|
||||||
@@ -51,7 +51,7 @@ class FormSurveyorRequest extends FormRequest
|
|||||||
foreach ($pisah as $act) {
|
foreach ($pisah as $act) {
|
||||||
if (isset($allRules[$act])) {
|
if (isset($allRules[$act])) {
|
||||||
$rules = array_merge($rules, $allRules[$act]);
|
$rules = array_merge($rules, $allRules[$act]);
|
||||||
if ($act == 'tanah' || $act == 'bangunan') {
|
if ($act == 'tanah' || $act == 'bangunan' || $act == 'apartemen-kantor') {
|
||||||
$hasAssetDescriptionRules = true;
|
$hasAssetDescriptionRules = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -162,8 +162,91 @@ class FormSurveyorRequest extends FormRequest
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'action' => 'required',
|
'action' => 'required',
|
||||||
'kondisi_kapal' => 'required',
|
'nama_wakil_debitur' => 'required',
|
||||||
'kondisi_kapal_lain' => '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 [
|
return [
|
||||||
'action' => 'required',
|
'action' => 'required',
|
||||||
'kondisi_kendaraan' => 'required',
|
'tanggal_survey' => 'required',
|
||||||
'kondisi_kendaraan_lain' => '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 [
|
return [
|
||||||
'action' => 'required',
|
'action' => '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',
|
'kondisi_mesin' => 'required',
|
||||||
'kondisi_mesin_lain' => 'required',
|
'faktor_positif' => 'nullable',
|
||||||
|
'faktor_negatif' => 'nullable',
|
||||||
|
'kesimpulan' => 'nullable',
|
||||||
|
'catatan' => 'nullable',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,12 +338,173 @@ class FormSurveyorRequest extends FormRequest
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'action' => 'required',
|
'action' => 'required',
|
||||||
'kondisi_alat_berat' => 'required',
|
'tanggal_survey' => 'required',
|
||||||
'kondisi_alat_berat_lain' => '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
|
private function getAssetDescriptionRules(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
@@ -229,6 +537,7 @@ class FormSurveyorRequest extends FormRequest
|
|||||||
'fakta_negatif' => 'nullable|array',
|
'fakta_negatif' => 'nullable|array',
|
||||||
'rute_menuju' => 'nullable',
|
'rute_menuju' => 'nullable',
|
||||||
'batas_batas' => 'nullable|array',
|
'batas_batas' => 'nullable|array',
|
||||||
|
'batas_batas_input' => 'nullable|array',
|
||||||
'kondisi_lingkungan' => 'nullable|array',
|
'kondisi_lingkungan' => 'nullable|array',
|
||||||
'kondisi_lain_bangunan' => 'nullable|array',
|
'kondisi_lain_bangunan' => 'nullable|array',
|
||||||
'informasi_dokument' => 'nullable',
|
'informasi_dokument' => 'nullable',
|
||||||
|
|||||||
76
app/Http/Requests/PersetujuanPenawaranRequest.php
Normal file
76
app/Http/Requests/PersetujuanPenawaranRequest.php
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\app\Http\Requests;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
|
class PersetujuanPenawaranRequest extends FormRequest
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the user is authorized to make this request.
|
||||||
|
*/
|
||||||
|
public function authorize()
|
||||||
|
: bool
|
||||||
|
{
|
||||||
|
return true; // Adjust this based on your authorization logic
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the validation rules that apply to the request.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Get the validation rules that apply to the request.
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
: array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'penawaran_id' => '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.',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -28,6 +28,10 @@ class SurveyorRequest extends FormRequest
|
|||||||
'spek-bangunan' => 'spek_bangunan',
|
'spek-bangunan' => 'spek_bangunan',
|
||||||
'lantai-unit' => 'lantai',
|
'lantai-unit' => 'lantai',
|
||||||
'view-unit' => 'view_unit',
|
'view-unit' => 'view_unit',
|
||||||
|
'jenis-pesawat' => 'jenis_pesawat',
|
||||||
|
'model-alat-berat' => 'model_alat_berat',
|
||||||
|
'jenis-kapal' => 'jenis_kapal',
|
||||||
|
'jenis-kendaraan' => 'jenis_kendaraan',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
24
app/Models/JenisKapal.php
Normal file
24
app/Models/JenisKapal.php
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
// use Modules\Lpj\Database\Factories\JenisKapalFactory;
|
||||||
|
|
||||||
|
class JenisKapal extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'jenis_kapal';
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
protected $fillable = ['name', 'code', 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_by', 'updated_by', 'deleted_by'];
|
||||||
|
// protected static function newFactory(): JenisKapalFactory
|
||||||
|
// {
|
||||||
|
// // return JenisKapalFactory::new();
|
||||||
|
// }
|
||||||
|
}
|
||||||
23
app/Models/JenisKendaraan.php
Normal file
23
app/Models/JenisKendaraan.php
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
// use Modules\Lpj\Database\Factories\JenisKendaraanFactory;
|
||||||
|
|
||||||
|
class JenisKendaraan extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'jenis_kendaraan';
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*/
|
||||||
|
protected $fillable = ['name', 'code', 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_by', 'updated_by', 'deleted_by'];
|
||||||
|
|
||||||
|
// protected static function newFactory(): JenisKendaraanFactory
|
||||||
|
// {
|
||||||
|
// // return JenisKendaraanFactory::new();
|
||||||
|
// }
|
||||||
|
}
|
||||||
23
app/Models/JenisPesawat.php
Normal file
23
app/Models/JenisPesawat.php
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
// use Modules\Lpj\Database\Factories\JenisPesawatFactory;
|
||||||
|
|
||||||
|
class JenisPesawat extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'jenis_pesawat';
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*/
|
||||||
|
protected $fillable = ['name', 'code', 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_by', 'updated_by', 'deleted_by'];
|
||||||
|
|
||||||
|
// protected static function newFactory(): JenisPesawatFactory
|
||||||
|
// {
|
||||||
|
// // return JenisPesawatFactory::new();
|
||||||
|
// }
|
||||||
|
}
|
||||||
23
app/Models/ModelAlatBerat.php
Normal file
23
app/Models/ModelAlatBerat.php
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
// use Modules\Lpj\Database\Factories\ModelAlatBeratFactory;
|
||||||
|
|
||||||
|
class ModelAlatBerat extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'model_alat_berat';
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*/
|
||||||
|
protected $fillable = ['name', 'code', 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_by', 'updated_by', 'deleted_by'];
|
||||||
|
|
||||||
|
// protected static function newFactory(): ModelAlatBeratFactory
|
||||||
|
// {
|
||||||
|
// // return ModelAlatBeratFactory::new();
|
||||||
|
// }
|
||||||
|
}
|
||||||
@@ -27,9 +27,4 @@ class PenawaranDetailTender extends Model
|
|||||||
{
|
{
|
||||||
return $this->belongsTo(KJPP::class, 'kjpp_rekanan_id', 'id');
|
return $this->belongsTo(KJPP::class, 'kjpp_rekanan_id', 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function emailTenderLog(): BelongsTo
|
|
||||||
{
|
|
||||||
return $this->belongsTo(PenawaranEmailTenderLog::class, 'penawaran_id', 'id', PenawaranTender::class);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,4 +15,9 @@ class PenawaranEmailTenderLog extends Model
|
|||||||
* The attributes that are mass assignable.
|
* The attributes that are mass assignable.
|
||||||
*/
|
*/
|
||||||
protected $guarded = ['id'];
|
protected $guarded = ['id'];
|
||||||
|
|
||||||
|
public function penawaran()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(PenawaranTender::class, 'penawaran_id', 'id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,8 +24,17 @@ class PenawaranTender extends Model
|
|||||||
{
|
{
|
||||||
return $this->hasMany(PenawaranDetailTender::class, 'penawaran_id', 'id')->where('status', '=', 1);
|
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
|
// andy add
|
||||||
|
|
||||||
|
public function emailTenderLog(): HasMany
|
||||||
|
{
|
||||||
|
return $this->hasMany(PenawaranEmailTenderLog::class, 'penawaran_id', 'id');
|
||||||
|
}
|
||||||
|
|
||||||
public function penawaranKjpp()
|
public function penawaranKjpp()
|
||||||
{
|
{
|
||||||
return $this->hasMany(PenawaranDetailTender::class, 'penawaran_id');
|
return $this->hasMany(PenawaranDetailTender::class, 'penawaran_id');
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Modules\Lpj\Models;
|
namespace Modules\Lpj\Models;
|
||||||
|
|
||||||
|
use Modules\Usermanagement\Models\User;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Modules\Lpj\Database\Factories\PenilaianTeamFactory;
|
use Modules\Lpj\Database\Factories\PenilaianTeamFactory;
|
||||||
@@ -24,7 +25,7 @@ class PenilaianTeam extends Model
|
|||||||
|
|
||||||
public function team(){
|
public function team(){
|
||||||
|
|
||||||
return $this->belongsTo(Team::class, 'team_id', 'id');
|
return $this->belongsTo(Teams::class, 'team_id', 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function penilaian(){
|
public function penilaian(){
|
||||||
|
|||||||
@@ -136,7 +136,7 @@
|
|||||||
|
|
||||||
public function penawaranTender()
|
public function penawaranTender()
|
||||||
{
|
{
|
||||||
return $this->hasMany(PenawaranTender::class, 'nomor_registrasi');
|
return $this->belongsTo(PenawaranTender::class, 'nomor_registrasi', 'nomor_registrasi');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function region()
|
public function region()
|
||||||
|
|||||||
56
app/Models/PersetujuanPenawaran.php
Normal file
56
app/Models/PersetujuanPenawaran.php
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Models;
|
||||||
|
|
||||||
|
use Modules\Lpj\Models\Base;
|
||||||
|
use Modules\Lpj\Models\PenawaranTender;
|
||||||
|
use Modules\Lpj\Models\Region;
|
||||||
|
use Modules\Usermanagemenet\Models\User;
|
||||||
|
|
||||||
|
class PersetujuanPenawaran extends Base
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $table = 'persetujuan_penawaran';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'penawaran_id',
|
||||||
|
'nomor_proposal_penawaran',
|
||||||
|
'tanggal_proposal_penawaran',
|
||||||
|
'biaya_final',
|
||||||
|
'sla_resume',
|
||||||
|
'sla_final',
|
||||||
|
'catatan',
|
||||||
|
'attachment',
|
||||||
|
'region_id',
|
||||||
|
'status',
|
||||||
|
'authorized_status',
|
||||||
|
'authorized_at',
|
||||||
|
'authorized_by',
|
||||||
|
];
|
||||||
|
|
||||||
|
protected $casts = [
|
||||||
|
'tanggal_proposal_penawaran' => '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');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('jenis_kendaraan', function (Blueprint $table) {
|
||||||
|
$table->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');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class () extends Migration {
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('model_alat_berat', function (Blueprint $table) {
|
||||||
|
$table->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');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class () extends Migration {
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('jenis_pesawat', function (Blueprint $table) {
|
||||||
|
$table->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');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('jenis_kapal', function (Blueprint $table) {
|
||||||
|
$table->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');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('penawaran_email_tender_log', function (Blueprint $table) {
|
||||||
|
$table->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();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration {
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
: void
|
||||||
|
{
|
||||||
|
Schema::table('persetujuan_penawaran', function (Blueprint $table) {
|
||||||
|
$table->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();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
375
module.json
375
module.json
@@ -5,8 +5,12 @@
|
|||||||
"description": "",
|
"description": "",
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"priority": 0,
|
"priority": 0,
|
||||||
"providers": ["Modules\\Lpj\\Providers\\LpjServiceProvider"],
|
"providers": [
|
||||||
"files": ["app/Helpers/Lpj.php"],
|
"Modules\\Lpj\\Providers\\LpjServiceProvider"
|
||||||
|
],
|
||||||
|
"files": [
|
||||||
|
"app/Helpers/Lpj.php"
|
||||||
|
],
|
||||||
"menu": {
|
"menu": {
|
||||||
"main": [
|
"main": [
|
||||||
{
|
{
|
||||||
@@ -16,7 +20,23 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo"]
|
"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",
|
"title": "Registrasi",
|
||||||
@@ -25,7 +45,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Tender",
|
"title": "Tender",
|
||||||
@@ -34,7 +57,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"],
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin"
|
||||||
|
],
|
||||||
"sub": [
|
"sub": [
|
||||||
{
|
{
|
||||||
"title": "Data Proses Penawaran",
|
"title": "Data Proses Penawaran",
|
||||||
@@ -42,7 +68,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Data Penawaran Ulang",
|
"title": "Data Penawaran Ulang",
|
||||||
@@ -50,7 +79,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -61,7 +93,12 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin","EO Appraisal","DD Appraisal"],
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin",
|
||||||
|
"EO Appraisal",
|
||||||
|
"DD Appraisal"
|
||||||
|
],
|
||||||
"sub": [
|
"sub": [
|
||||||
{
|
{
|
||||||
"title": "Otorisasi Penawaran",
|
"title": "Otorisasi Penawaran",
|
||||||
@@ -69,7 +106,12 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin","EO Appraisal","DD Appraisal"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin",
|
||||||
|
"EO Appraisal",
|
||||||
|
"DD Appraisal"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -80,7 +122,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Registrasi Final",
|
"title": "Registrasi Final",
|
||||||
@@ -89,7 +134,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Pembatalan",
|
"title": "Pembatalan",
|
||||||
@@ -98,7 +146,11 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Data Debitur",
|
"title": "Data Debitur",
|
||||||
@@ -107,7 +159,11 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Authorization",
|
"title": "Authorization",
|
||||||
@@ -116,7 +172,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-eo"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-eo"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Assignment",
|
"title": "Assignment",
|
||||||
@@ -125,7 +184,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "senior-officer"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"senior-officer"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Team Activity",
|
"title": "Team Activity",
|
||||||
@@ -134,7 +196,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","senior-officer"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"senior-officer"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Otorisator",
|
"title": "Otorisator",
|
||||||
@@ -143,7 +208,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","senior-officer"],
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"senior-officer"
|
||||||
|
],
|
||||||
"sub": [
|
"sub": [
|
||||||
{
|
{
|
||||||
"title": "Pelaporan",
|
"title": "Pelaporan",
|
||||||
@@ -151,7 +219,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","senior-officer"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"senior-officer"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Pembayaran",
|
"title": "Pembayaran",
|
||||||
@@ -159,7 +230,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","senior-officer"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"senior-officer"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Pembatalan",
|
"title": "Pembatalan",
|
||||||
@@ -167,7 +241,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","senior-officer"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"senior-officer"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "SLA",
|
"title": "SLA",
|
||||||
@@ -175,7 +252,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","senior-officer"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"senior-officer"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -186,9 +266,11 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"title": "Activity",
|
"title": "Activity",
|
||||||
"path": "activity",
|
"path": "activity",
|
||||||
@@ -211,7 +293,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Laporan",
|
"title": "Laporan",
|
||||||
@@ -234,7 +319,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Standard",
|
"title": "Standard",
|
||||||
@@ -259,7 +347,11 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"master": [
|
"master": [
|
||||||
@@ -284,7 +376,11 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Jenis Legalitas Jaminan",
|
"title": "Jenis Legalitas Jaminan",
|
||||||
@@ -292,7 +388,11 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Jenis Aset",
|
"title": "Jenis Aset",
|
||||||
@@ -300,7 +400,11 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Jenis Dokumen",
|
"title": "Jenis Dokumen",
|
||||||
@@ -308,7 +412,11 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Tujuan Penilaian",
|
"title": "Tujuan Penilaian",
|
||||||
@@ -316,7 +424,11 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Nilai Plafond",
|
"title": "Nilai Plafond",
|
||||||
@@ -324,7 +436,11 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Hubungan Pemilik Jaminan",
|
"title": "Hubungan Pemilik Jaminan",
|
||||||
@@ -332,7 +448,11 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Hubungan Penghuni Jaminan",
|
"title": "Hubungan Penghuni Jaminan",
|
||||||
@@ -340,7 +460,11 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Arah Mata Angin",
|
"title": "Arah Mata Angin",
|
||||||
@@ -348,7 +472,9 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator"]
|
"roles": [
|
||||||
|
"administrator"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Status Permohonan",
|
"title": "Status Permohonan",
|
||||||
@@ -356,7 +482,9 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator"]
|
"roles": [
|
||||||
|
"administrator"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Region",
|
"title": "Region",
|
||||||
@@ -364,7 +492,11 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin", "senior-officer"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin",
|
||||||
|
"senior-officer"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Staff Appraisal",
|
"title": "Staff Appraisal",
|
||||||
@@ -372,7 +504,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "senior-officer"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"senior-officer"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Jenis Penilaian",
|
"title": "Jenis Penilaian",
|
||||||
@@ -380,7 +515,11 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin", "senior-officer"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin",
|
||||||
|
"senior-officer"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "KJPP",
|
"title": "KJPP",
|
||||||
@@ -388,7 +527,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Jenis Laporan",
|
"title": "Jenis Laporan",
|
||||||
@@ -396,7 +538,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Tujuan Penilaian KJPP",
|
"title": "Tujuan Penilaian KJPP",
|
||||||
@@ -404,7 +549,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ijin Usaha",
|
"title": "Ijin Usaha",
|
||||||
@@ -412,7 +560,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "SLA",
|
"title": "SLA",
|
||||||
@@ -420,7 +571,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Bentuk",
|
"title": "Bentuk",
|
||||||
@@ -428,7 +582,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kontur Tanah",
|
"title": "Kontur Tanah",
|
||||||
@@ -436,7 +593,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Posisi Kavling",
|
"title": "Posisi Kavling",
|
||||||
@@ -444,7 +604,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ketinggian Tanah",
|
"title": "Ketinggian Tanah",
|
||||||
@@ -452,7 +615,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kondisi Fisik Tanah",
|
"title": "Kondisi Fisik Tanah",
|
||||||
@@ -460,7 +626,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Jenis Bangunan",
|
"title": "Jenis Bangunan",
|
||||||
@@ -468,7 +637,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kondisi Bangunan",
|
"title": "Kondisi Bangunan",
|
||||||
@@ -476,7 +648,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Sifat Bangunan",
|
"title": "Sifat Bangunan",
|
||||||
@@ -484,25 +659,32 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"title": "Sarana Pelengkap",
|
"title": "Sarana Pelengkap",
|
||||||
"path": "basicdata.sarana-pelengkap",
|
"path": "basicdata.sarana-pelengkap",
|
||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"title": "Lalu Lintas Sekitar",
|
"title": "Lalu Lintas Sekitar",
|
||||||
"path": "basicdata.lalu-lintas-lokasi",
|
"path": "basicdata.lalu-lintas-lokasi",
|
||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Tingkat Keramaian",
|
"title": "Tingkat Keramaian",
|
||||||
@@ -510,7 +692,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Masyarakat Sekitar",
|
"title": "Masyarakat Sekitar",
|
||||||
@@ -518,7 +703,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Lantai Unit",
|
"title": "Lantai Unit",
|
||||||
@@ -526,7 +714,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "View unit",
|
"title": "View unit",
|
||||||
@@ -534,7 +725,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Spesifikasi Bangunan",
|
"title": "Spesifikasi Bangunan",
|
||||||
@@ -542,7 +736,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kategori Speksikasi Bangunan",
|
"title": "Kategori Speksikasi Bangunan",
|
||||||
@@ -550,7 +747,10 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Perkerasan jalan",
|
"title": "Perkerasan jalan",
|
||||||
@@ -558,10 +758,55 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator","surveyor"]
|
"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"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -210,7 +210,11 @@
|
|||||||
},
|
},
|
||||||
due_date: {
|
due_date: {
|
||||||
title: '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: {
|
paparan: {
|
||||||
title: 'Paparan',
|
title: 'Paparan',
|
||||||
@@ -236,6 +240,11 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function formatDateFromISO(isoDateString) {
|
function formatDateFromISO(isoDateString) {
|
||||||
const date = new Date(isoDateString);
|
const date = new Date(isoDateString);
|
||||||
const day = String(date.getDate()).padStart(2, '0');
|
const day = String(date.getDate()).padStart(2, '0');
|
||||||
|
|||||||
@@ -75,7 +75,7 @@
|
|||||||
name="form_kategori[]" multiple="multiple">
|
name="form_kategori[]" multiple="multiple">
|
||||||
|
|
||||||
<option value="">Pilih Form</option>
|
<option value="">Pilih Form</option>
|
||||||
@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)
|
||||||
<option value="{{ $item }}"
|
<option value="{{ $item }}"
|
||||||
@if (isset($jenisJaminan->form_kategori) && in_array($item, json_decode($jenisJaminan->form_kategori, true))) {{ 'selected' }} @endif>
|
@if (isset($jenisJaminan->form_kategori) && in_array($item, json_decode($jenisJaminan->form_kategori, true))) {{ 'selected' }} @endif>
|
||||||
{{ $item }}
|
{{ $item }}
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
const apiUrl = element.getAttribute('data-api-url');
|
const apiUrl = element.getAttribute('data-api-url');
|
||||||
const dataTableOptions = {
|
const dataTableOptions = {
|
||||||
apiEndpoint: apiUrl,
|
apiEndpoint: apiUrl,
|
||||||
pageSize: 5,
|
|
||||||
columns: {
|
columns: {
|
||||||
no: {
|
no: {
|
||||||
title: 'No',
|
title: 'No',
|
||||||
@@ -92,7 +91,31 @@
|
|||||||
status: {
|
status: {
|
||||||
title: 'Status',
|
title: 'Status',
|
||||||
render: (item, data) => {
|
render: (item, data) => {
|
||||||
return `${data.emailTenderLog?.status ?? '-'}`
|
// Cek jika ada email log
|
||||||
|
if (data.penawaran.email_tender_log && data.penawaran.email_tender_log.length > 0) {
|
||||||
|
// Buat full string KJPP untuk matching
|
||||||
|
const kjppString = `${data.kjpp.code} | ${data.kjpp.name}`;
|
||||||
|
|
||||||
|
// Filter log berdasarkan string KJPP yang sesuai
|
||||||
|
const log = data.penawaran.email_tender_log.find(log =>
|
||||||
|
log.kjpp === kjppString
|
||||||
|
);
|
||||||
|
|
||||||
|
if (log) {
|
||||||
|
// Set warna badge berdasarkan status
|
||||||
|
const statusColors = {
|
||||||
|
'success': 'badge-success',
|
||||||
|
'failed': 'badge-danger'
|
||||||
|
};
|
||||||
|
|
||||||
|
const color = statusColors[log.status] || 'badge-secondary';
|
||||||
|
|
||||||
|
return `<span class="badge ${color} mb-1">${log.status}</span>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Jika tidak ada log, tampilkan strip
|
||||||
|
return '<span class="badge">-</span>';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
|
|||||||
@@ -34,8 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="card-body grid gap-5">
|
<div class="card-body grid gap-5">
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
<div class="card card-grid min-w-full" data-datatable="false" data-datatable-page-size="5"
|
<div class="card card-grid min-w-full" data-datatable="false" id="kjpp-table"
|
||||||
id="kjpp-table"
|
|
||||||
data-api-url="{{ route('tender.penawaran.showKirimSurat.datatables', $noreg) }}">
|
data-api-url="{{ route('tender.penawaran.showKirimSurat.datatables', $noreg) }}">
|
||||||
<div class="card-header py-5 flex-wrap">
|
<div class="card-header py-5 flex-wrap">
|
||||||
<div class="card-title">
|
<div class="card-title">
|
||||||
@@ -89,21 +88,6 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
|
||||||
class="card-footer justify-center md:justify-between flex-col md:flex-row gap-3 text-gray-600 text-2sm font-medium">
|
|
||||||
<div class="flex items-center gap-2">
|
|
||||||
Show
|
|
||||||
<select class="select select-sm w-16" data-datatable-size="true" name="perpage">
|
|
||||||
</select>
|
|
||||||
per page
|
|
||||||
</div>
|
|
||||||
<div class="flex items-center gap-4">
|
|
||||||
<span data-datatable-info="true"> </span>
|
|
||||||
<div class="pagination" data-datatable-pagination="true">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,9 +5,10 @@
|
|||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||||
<div class="card pb-2.5">
|
|
||||||
<div class=" card-grid min-w-full" data-datatable="false" data-datatable-page-size="5"
|
|
||||||
|
<div class="card card-grid min-w-full" data-datatable="false" data-datatable-page-size="5"
|
||||||
data-datatable-state-save="false" id="penilai-table" data-api-url="{{ route('penilai.dataForTables') }}">
|
data-datatable-state-save="false" id="penilai-table" data-api-url="{{ route('penilai.dataForTables') }}">
|
||||||
<div class="card-header py-5 flex-wrap">
|
<div class="card-header py-5 flex-wrap">
|
||||||
<h3 class="card-title">
|
<h3 class="card-title">
|
||||||
@@ -86,8 +87,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
|
|||||||
@@ -88,27 +88,36 @@
|
|||||||
{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</p>
|
{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@foreach($permohonan->debiture->documents as $dokumen)
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body grid gap-5">
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
@php
|
||||||
|
$surveyor = $permohonan->penilaian->userPenilai->where('role', 'surveyor')->first();
|
||||||
|
$penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first();
|
||||||
|
|
||||||
|
@endphp
|
||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
Surveyor
|
Surveyor
|
||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
||||||
{{ $permohonan->penilaian->userSurveyor->name }}</p>
|
<p class="flex w-full text-gray-600 font-medium text-sm">{{ $surveyor->userPenilaiTeam->name }}</p>
|
||||||
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
||||||
Region 1</p>
|
<p class="flex w-full text-gray-600 font-medium text-sm">{{ $permohonan->region->name }}</p>
|
||||||
</div>
|
</div>
|
||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
Penilai
|
Penilai
|
||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
|
||||||
|
<p class="flex w-full text-gray-600 font-medium text-sm">{{ $penilai->userPenilaiTeam->name }}</p>
|
||||||
|
|
||||||
<p class="flex w-full text-gray-600 font-medium text-sm">
|
<p class="flex w-full text-gray-600 font-medium text-sm">
|
||||||
@foreach ($permohonan->penilaian->teams->teamsUsers as $index => $penilaian)
|
{{ $permohonan->region->name }}
|
||||||
{{ $penilaian->user->name }}{{ $index + 1 < count($permohonan->penilaian->teams->teamsUsers) ? ', ' : '' }}
|
|
||||||
@endforeach
|
|
||||||
</p>
|
|
||||||
<p class="flex w-full text-gray-600 font-medium text-sm">
|
|
||||||
{{ $permohonan->penilaian->teams->regions->name }}
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -154,7 +163,48 @@
|
|||||||
PJ/001/001</p>
|
PJ/001/001</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full card-footer mt-2 ">
|
||||||
|
<div class="flex gap-5">
|
||||||
|
<a class="btn btn-primary" href="">
|
||||||
|
LAMPIRAN FOTO DAN DOKUMEN
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a class="btn btn-primary" href="">
|
||||||
|
KERTAS KERJA
|
||||||
|
</a>
|
||||||
|
<a class="btn btn-primary" href="">
|
||||||
|
PAPARAN
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a class="btn btn-primary" href="">
|
||||||
|
WORKSHEET
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="flex justify-end gap-5">
|
||||||
|
<a class="btn btn-success" href="">
|
||||||
|
SAVE
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a class="btn btn-success" href="">
|
||||||
|
REPORT
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<a class="btn btn-success" href="">
|
||||||
|
PRINT OUT
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -4,25 +4,12 @@
|
|||||||
{{ Breadcrumbs::render(request()->route()->getName()) }}
|
{{ Breadcrumbs::render(request()->route()->getName()) }}
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@push('styles')
|
|
||||||
<style>
|
|
||||||
.modal {
|
|
||||||
width: 50%;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
position: fixed;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@endpush
|
|
||||||
|
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||||
@include('lpj::component.detail-jaminan',['backLink' => 'penilaian.index'])
|
@include('lpj::component.detail-jaminan', ['backLink' => 'penilaian.index'])
|
||||||
|
|
||||||
<div class="card pb-2.5">
|
<div class="card pb-2.5">
|
||||||
<div class="card-header" id="basic_settings">
|
<div class="card-header" id="basic_settings">
|
||||||
@@ -33,9 +20,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<form
|
<form id="form-assignment" class="">
|
||||||
action="{{ isset($penilaian->nomor_registrasi) ? route('penilaian.update', $permohonan) : route('penilaian.store') }}"
|
|
||||||
method="POST" class="">
|
|
||||||
@if (isset($penilaian->nomor_registrasi))
|
@if (isset($penilaian->nomor_registrasi))
|
||||||
@method('PUT')
|
@method('PUT')
|
||||||
@endif
|
@endif
|
||||||
@@ -86,10 +71,8 @@
|
|||||||
<option value="berbeda">Berbeda</option>
|
<option value="berbeda">Berbeda</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
<em id="error-surveyor_selection" class="alert text-danger text-sm"></em>
|
||||||
|
|
||||||
@error('surveyor_selection')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -108,9 +91,9 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@error('penilai_surveyor_id')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error-penilai_surveyor_id" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -141,9 +124,9 @@
|
|||||||
@endif
|
@endif
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@error('surveyor_id')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error-surveyor_id" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@elseif($penilaianTeam->isEmpty())
|
@elseif($penilaianTeam->isEmpty())
|
||||||
@@ -166,9 +149,9 @@
|
|||||||
@endif
|
@endif
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@error('surveyor_id')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error-surveyor_id" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
@@ -192,9 +175,9 @@
|
|||||||
@endif
|
@endif
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@error('surveyor_region_id')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error-surveyor_region_id" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -220,9 +203,7 @@
|
|||||||
@endif
|
@endif
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@error('penilai_id')
|
<em id="error-penilai_id" class="alert text-danger text-sm"></em>
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@elseif($penilaianTeam->isEmpty())
|
@elseif($penilaianTeam->isEmpty())
|
||||||
@@ -244,9 +225,7 @@
|
|||||||
@endif
|
@endif
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@error('penilai_id')
|
<em id="error-penilai_id" class="alert text-danger text-sm"></em>
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
@@ -268,9 +247,7 @@
|
|||||||
@endif
|
@endif
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@error('penilai_region_id')
|
<em id="error-penilai_region_id" class="alert text-danger text-sm"></em>
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -285,9 +262,8 @@
|
|||||||
<input class="input @error('tanggal_kunjungan') border-danger bg-danger-light @enderror"
|
<input class="input @error('tanggal_kunjungan') border-danger bg-danger-light @enderror"
|
||||||
type="datetime-local" name="tanggal_kunjungan"
|
type="datetime-local" name="tanggal_kunjungan"
|
||||||
value="{{ isset($penilaian->tanggal_kunjungan) ? \Carbon\Carbon::createFromTimestamp($penilaian->tanggal_kunjungan)->format('Y-m-d\TH:i') : '' }}">
|
value="{{ isset($penilaian->tanggal_kunjungan) ? \Carbon\Carbon::createFromTimestamp($penilaian->tanggal_kunjungan)->format('Y-m-d\TH:i') : '' }}">
|
||||||
@error('tanggal_kunjungan')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error-tanggal_kunjungan" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -300,13 +276,13 @@
|
|||||||
<textarea class="textarea @error('keterangan') border-danger bg-danger-light @enderror" rows="3"
|
<textarea class="textarea @error('keterangan') border-danger bg-danger-light @enderror" rows="3"
|
||||||
type="text" name="keterangan">{{ $penilaian->keterangan ?? '' }}</textarea>
|
type="text" name="keterangan">{{ $penilaian->keterangan ?? '' }}</textarea>
|
||||||
</div>
|
</div>
|
||||||
@error('keterangan')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error-keterangan" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-end card-footer mt-2">
|
<div class="flex justify-end card-footer mt-2">
|
||||||
<button type="submit" class="btn btn-success">
|
<button type="button" onclick="submitAssignment()" class="btn btn-success">
|
||||||
Aprove
|
Aprove
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
@@ -321,8 +297,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="modal fade" data-modal="true" id="modal_revisi" data-backdrop="static" data-keyboard="false">
|
<div class="modal" data-modal="true" id="modal_revisi"">
|
||||||
<div class="modal-content">
|
<div class="modal-content max-w-[600px] top-[10%]">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h3 class="modal-title">Revisi</h3>
|
<h3 class="modal-title">Revisi</h3>
|
||||||
<button class="btn btn-xs btn-icon btn-light" data-modal-dismiss="true">
|
<button class="btn btn-xs btn-icon btn-light" data-modal-dismiss="true">
|
||||||
@@ -368,13 +344,15 @@
|
|||||||
<div class="modal-footer justify-end mt-2">
|
<div class="modal-footer justify-end mt-2">
|
||||||
<div class="flex gap-4">
|
<div class="flex gap-4">
|
||||||
<button type="button" class="btn btn-light" data-modal-dismiss="true">Cancel</button>
|
<button type="button" class="btn btn-light" data-modal-dismiss="true">Cancel</button>
|
||||||
<button id="btnSubmit" type="submit" class="btn btn-primary">Submit</button>
|
<button id="btnSubmit" type="submit" class="btn btn-primary"
|
||||||
|
data-modal-dismiss="true">Submit</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@endsection
|
@endsection
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
<script>
|
<script>
|
||||||
@@ -462,10 +440,57 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function submitAssignment() {
|
||||||
|
const formElement = $('#form-assignment')[0];
|
||||||
|
const formData = new FormData(formElement);
|
||||||
|
|
||||||
|
|
||||||
|
const urlAssignment =
|
||||||
|
"{{ isset($penilaian->nomor_registrasi) ? route('penilaian.update', $permohonan) : route('penilaian.store') }}";
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: urlAssignment,
|
||||||
|
type: 'POST',
|
||||||
|
data: formData,
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
headers: {
|
||||||
|
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
||||||
|
},
|
||||||
|
success: function(response) {
|
||||||
|
if (response.success) {
|
||||||
|
window.location.href =
|
||||||
|
'{{ route('penilaian.index') }}';
|
||||||
|
} else {
|
||||||
|
|
||||||
|
showErrorMessages(response.errors);
|
||||||
|
}
|
||||||
|
console.log(response);
|
||||||
|
},
|
||||||
|
error: function(xhr) {
|
||||||
|
// Handle errors from the server
|
||||||
|
showErrorMessages(xhr.responseJSON?.errors);
|
||||||
|
console.error('Error occurred:', xhr.statusText);
|
||||||
|
console.log('Response:', xhr.responseText);
|
||||||
|
},
|
||||||
|
complete: function() {
|
||||||
|
// Re-enable the button and hide the spinner
|
||||||
|
$('#saveButton').prop('disabled', false);
|
||||||
|
$('#saveButtonText').show();
|
||||||
|
$('#saveButtonSpinner').hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function showErrorMessages(errors) {
|
||||||
|
$('.alert').text('');
|
||||||
|
if (errors) {
|
||||||
|
$.each(errors, function(key, value) {
|
||||||
|
$(`#error-${key}`).text(value[0]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<script>
|
|
||||||
|
|
||||||
</script>
|
|
||||||
@endpush
|
@endpush
|
||||||
|
|||||||
154
resources/views/persetujuan_penawaran/index.blade.php
Normal file
154
resources/views/persetujuan_penawaran/index.blade.php
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
@extends('layouts.main')
|
||||||
|
|
||||||
|
@section('breadcrumbs')
|
||||||
|
{{ Breadcrumbs::render('persetujuan-penawaran') }}
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||||
|
<div class="card card-grid min-w-full" data-datatable="false" data-datatable-page-size="5" data-datatable-state-save="false" id="persetujuan-penawaran-table" data-api-url="{{ route('persetujuan-penawaran.datatables') }}">
|
||||||
|
<div class="card-header py-5 flex-wrap">
|
||||||
|
<h3 class="card-title">
|
||||||
|
Daftar Persetujuan Penawaran
|
||||||
|
</h3>
|
||||||
|
<div class="flex flex-wrap gap-2 lg:gap-5">
|
||||||
|
<div class="flex">
|
||||||
|
<label class="input input-sm"> <i class="ki-filled ki-magnifier"> </i>
|
||||||
|
<input placeholder="Search Persetujuan Penawaran" id="search" type="text" value="">
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-wrap gap-2.5">
|
||||||
|
<div class="h-[24px] border border-r-gray-200"></div>
|
||||||
|
<a class="btn btn-sm btn-light" href="#"> Export to Excel </a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="scrollable-x-auto">
|
||||||
|
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm" data-datatable-table="true">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="w-14">
|
||||||
|
<input class="checkbox checkbox-sm" data-datatable-check="true" type="checkbox"/>
|
||||||
|
</th>
|
||||||
|
<th class="min-w-[150px]" data-datatable-column="nomor_registrasi">
|
||||||
|
<span class="sort"> <span class="sort-label"> Nomor Registrasi </span>
|
||||||
|
<span class="sort-icon"> </span> </span>
|
||||||
|
</th>
|
||||||
|
<th class="min-w-[150px]" data-datatable-column="nama_debitur">
|
||||||
|
<span class="sort"> <span class="sort-label"> Nama Debitur </span>
|
||||||
|
<span class="sort-icon"> </span> </span>
|
||||||
|
</th>
|
||||||
|
<th class="min-w-[150px]" data-datatable-column="nomor_proposal_penawaran">
|
||||||
|
<span class="sort"> <span class="sort-label"> Nomor Proposal </span>
|
||||||
|
<span class="sort-icon"> </span> </span>
|
||||||
|
</th>
|
||||||
|
<th class="min-w-[150px]" data-datatable-column="tanggal_proposal_penawaran">
|
||||||
|
<span class="sort"> <span class="sort-label"> Tanggal Proposal </span>
|
||||||
|
<span class="sort-icon"> </span> </span>
|
||||||
|
</th>
|
||||||
|
<th class="min-w-[150px]" data-datatable-column="biaya_final">
|
||||||
|
<span class="sort"> <span class="sort-label"> Biaya Final </span>
|
||||||
|
<span class="sort-icon"> </span> </span>
|
||||||
|
</th>
|
||||||
|
<th class="min-w-[150px]" data-datatable-column="sla_resume">
|
||||||
|
<span class="sort"> <span class="sort-label"> SLA Resume </span>
|
||||||
|
<span class="sort-icon"> </span> </span>
|
||||||
|
</th>
|
||||||
|
<th class="min-w-[150px]" data-datatable-column="sla_final">
|
||||||
|
<span class="sort"> <span class="sort-label"> SLA Final </span>
|
||||||
|
<span class="sort-icon"> </span> </span>
|
||||||
|
</th>
|
||||||
|
<th class="min-w-[150px]" data-datatable-column="catatan">
|
||||||
|
<span class="sort"> <span class="sort-label"> Catatan </span>
|
||||||
|
<span class="sort-icon"> </span> </span>
|
||||||
|
</th>
|
||||||
|
<th class="min-w-[50px] text-center" data-datatable-column="actions">Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@push('scripts')
|
||||||
|
<script type="module">
|
||||||
|
const element = document.querySelector('#persetujuan-penawaran-table');
|
||||||
|
const searchInput = document.getElementById('search');
|
||||||
|
|
||||||
|
const apiUrl = element.getAttribute('data-api-url');
|
||||||
|
const dataTableOptions = {
|
||||||
|
apiEndpoint: apiUrl,
|
||||||
|
pageSize: 5,
|
||||||
|
columns: {
|
||||||
|
select: {
|
||||||
|
render: (item, data, context) => {
|
||||||
|
const checkbox = document.createElement('input');
|
||||||
|
checkbox.className = 'checkbox checkbox-sm';
|
||||||
|
checkbox.type = 'checkbox';
|
||||||
|
checkbox.value = data.id.toString();
|
||||||
|
checkbox.setAttribute('data-datatable-row-check', 'true');
|
||||||
|
return checkbox.outerHTML.trim();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
nomor_registrasi: {
|
||||||
|
title: 'Nomor Registrasi',
|
||||||
|
},
|
||||||
|
nama_debitur: {
|
||||||
|
title: 'Nama Debitur',
|
||||||
|
render: (item, data) => {
|
||||||
|
return `${data.debiture.name}`;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
nomor_proposal_penawaran: {
|
||||||
|
title: 'Nomor Proposal',
|
||||||
|
render: (item, data) => {
|
||||||
|
return `${data.penawaran_tender.detail.no_proposal}`;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
tanggal_proposal_penawaran: {
|
||||||
|
title: 'Tanggal Proposal',
|
||||||
|
render: (item, data) => {
|
||||||
|
return `${data.penawaran_tender.detail.tgl_proposal}`;
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
biaya_final: {
|
||||||
|
title: 'Biaya Final',
|
||||||
|
render: (item, data) => {
|
||||||
|
return `${data.penawaran_tender.detail.biaya_penawaran}`;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
sla_resume: {
|
||||||
|
title: 'SLA Resume',
|
||||||
|
},
|
||||||
|
sla_final: {
|
||||||
|
title: 'SLA Final',
|
||||||
|
},
|
||||||
|
catatan: {
|
||||||
|
title: 'Catatan',
|
||||||
|
},
|
||||||
|
actions: {
|
||||||
|
title: 'Action',
|
||||||
|
render: (item, data) => {
|
||||||
|
return `<div class="flex flex-nowrap justify-center">
|
||||||
|
<a class="btn btn-sm btn-icon btn-clear btn-warning" href="persetujuan-penawaran/${data.id}/edit">
|
||||||
|
<i class="ki-outline ki-pencil"></i>
|
||||||
|
</a>
|
||||||
|
</div>`;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
let dataTable = new KTDataTable(element, dataTableOptions);
|
||||||
|
// Custom search functionality
|
||||||
|
searchInput.addEventListener('input', function () {
|
||||||
|
const searchValue = this.value.trim();
|
||||||
|
dataTable.search(searchValue, true);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@endpush
|
||||||
@@ -1,30 +1,96 @@
|
|||||||
|
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
|
||||||
|
<div class="card-body">
|
||||||
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="py-4 px-6">
|
||||||
|
<h1 class="text-md font-medium text-gray-900">Order Penilaian</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid gap-5 grid-cols-2">
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Tujuan Penilaian</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->tujuanPenilaian))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->tujuanPenilaian->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Tanggal Survey</label>
|
||||||
|
<div class="flex flex-wrap items-base line w-full">
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->created_at->format('d/m/Y') }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Cab/Direktorat</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->branch))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->branch->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">AO</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->user))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->user->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
|
||||||
|
<div class="card-body">
|
||||||
<div class="py-4 px-6">
|
<div class="py-4 px-6">
|
||||||
<h1 class="text-md font-medium text-gray-900">Identitas Debitur</h1>
|
<h1 class="text-md font-medium text-gray-900">Identitas Debitur</h1>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="grid gap-5">
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Nama Calon Debitur</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->debiture->name))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->debiture->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Nama Wakil Debitur</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input type="text" name="nama_wakil" class="input"
|
||||||
|
placeholder="Masukkan Hubungan Calon Debitur">
|
||||||
|
<em id="error-nama_wakil" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Hubungan Calon Debitur</label>
|
<label class="form-label max-w-56">Hubungan Calon Debitur</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="bentuk_tanah" class="input"
|
<input type="text" name="hub_calon_debitur" class="input"
|
||||||
placeholder="Masukkan Hubungan Calon Debitur">
|
placeholder="Masukkan Hubungan Calon Debitur">
|
||||||
|
|
||||||
@error('bentuk_tanah')
|
<em id="error-hub_calon_debitur" class="alert text-danger text-sm"></em>
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{-- lokasi jaminan --}}
|
{{-- lokasi jaminan --}}
|
||||||
@include('lpj::surveyor.components.lokasi-jaminan')
|
@include('lpj::surveyor.components.lokasi-jaminan')
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
|
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
|
||||||
|
<div class="card-body">
|
||||||
<div class="py-4 px-6">
|
<div class="py-4 px-6">
|
||||||
<h1 class="text-md font-medium text-gray-900">Data Data Jaminan</h1>
|
<h1 class="text-md font-medium text-gray-900">Data Data Jaminan</h1>
|
||||||
</div>
|
</div>
|
||||||
@@ -32,43 +98,103 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Model</label>
|
<label class="form-label max-w-56">Model</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<select class="input tomselect w-full @error('hadapMataAngin') border-danger bg-danger-light @enderror"
|
<select
|
||||||
name="hadapMataAngin">
|
class="input tomselect w-full @error('model_unit') border-danger bg-danger-light @enderror"
|
||||||
|
name="jenis_model">
|
||||||
<option value="">Select Model Kendaraan </option>
|
<option value="">Select Model Kendaraan </option>
|
||||||
@if (isset($arahMataAngin))
|
@if (isset($modelAlatBerat))
|
||||||
@foreach ($arahMataAngin as $item)
|
@foreach ($modelAlatBerat as $item)
|
||||||
<option value="{{ $item->name }}"
|
<option value="{{ $item->name }}"
|
||||||
{{ old('hadapMataAngin') == $item->name ? 'selected' : '' }}>{{ $item->name }}
|
{{ old('') == $item->name ? 'selected' : '' }}>{{ $item->name }}
|
||||||
</option>
|
</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
@error('hadapMataAngin')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error-jenis_model" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@php
|
@php
|
||||||
$inputDataJaminan = [];
|
|
||||||
|
|
||||||
$inputDataJaminan = [
|
$inputDataJaminan = [
|
||||||
['label' => 'Nomor Lambung', 'index' => 0],
|
[
|
||||||
['label' => 'Model Unit', 'index' => 1],
|
'label' => 'Nomor Lambung',
|
||||||
['label' => 'Tahun Pembuatan', 'index' => 2],
|
'name' => 'nomor_lambung',
|
||||||
['label' => 'Merk', 'index' => 3],
|
'index' => 0,
|
||||||
['label' => 'Negara Pembuat', 'index' => 4],
|
],
|
||||||
['label' => 'Tahun Pembelian', 'index' => 5],
|
[
|
||||||
['label' => 'Nomor Faktur/Invoice', 'index' => 6],
|
'label' => 'Model Unit',
|
||||||
['label' => 'Nomor Kontrak Pembelian', 'index' => 7],
|
'name' => 'model_unit',
|
||||||
['label' => 'Nama Pemilik', 'index' => 8],
|
'index' => 1,
|
||||||
['label' => 'Alamaat Pemilik', 'index' => 9],
|
],
|
||||||
['label' => 'Nomor Asuransi', 'index' => 10],
|
[
|
||||||
['label' => 'Nomor Rangka', 'index' => 11],
|
'label' => 'Tahun Pembuatan',
|
||||||
['label' => 'Nomor Mesin', 'index' => 12],
|
'name' => 'tahun_pembuatan',
|
||||||
['label' => 'Hour Mesin', 'index' => 13],
|
'index' => 2,
|
||||||
['label' => 'Overhaul Mesin', 'index' => 14],
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Merk',
|
||||||
|
'name' => 'merk',
|
||||||
|
'index' => 3,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Negara Pembuat',
|
||||||
|
'name' => 'negara_pembuat',
|
||||||
|
'index' => 4,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Tahun Pembelian',
|
||||||
|
'name' => 'tahun_pembelian',
|
||||||
|
'index' => 5,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Nomor Faktur/Invoice',
|
||||||
|
'name' => 'nomor_faktur',
|
||||||
|
'index' => 6,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Nomor Kontrak Pembelian',
|
||||||
|
'name' => 'nomor_kontrak',
|
||||||
|
'index' => 7,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Nama Pemilik',
|
||||||
|
'name' => 'nama_pemilik',
|
||||||
|
'index' => 8,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Alamaat Pemilik',
|
||||||
|
'name' => 'alamat_pemilik',
|
||||||
|
'index' => 9,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Nomor Asuransi',
|
||||||
|
'name' => 'nomor_asuransi',
|
||||||
|
'index' => 10,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Nomor Rangka',
|
||||||
|
'name' => 'nomor_rangka',
|
||||||
|
'index' => 11,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Nomor Mesin',
|
||||||
|
'name' => 'nomor_mesin',
|
||||||
|
'index' => 12,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Hour Meters',
|
||||||
|
'name' => 'hour_mesters',
|
||||||
|
'index' => 13,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Overhaul Mesin',
|
||||||
|
'name' => 'overhaul_mesin',
|
||||||
|
'index' => 14,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
@endphp
|
@endphp
|
||||||
@@ -79,62 +205,97 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="bentuk_tanah" class="input"
|
<input type="text" name="{{ $item['name'] }}" class="input"
|
||||||
placeholder="Masukkan {{ $item['label'] }}">
|
placeholder="Masukkan {{ $item['label'] }}">
|
||||||
|
|
||||||
@error('bentuk_tanah')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error-{{ $item['name'] }}" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
|
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
|
||||||
|
<div class="card-body">
|
||||||
<div class="py-4 px-6">
|
<div class="py-4 px-6">
|
||||||
<h1 class="text-md font-medium text-gray-900">Kondisi Objek Jaminan</h1>
|
<h1 class="text-md font-medium text-gray-900">Kondisi Objek Jaminan</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid gap-5">
|
<div class="grid gap-5">
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
||||||
<label class="form-label max-w-56">Model</label>
|
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
|
||||||
<select class="input tomselect w-full @error('hadapMataAngin') border-danger bg-danger-light @enderror"
|
|
||||||
name="hadapMataAngin">
|
|
||||||
<option value="">Select Model Kendaraan </option>
|
|
||||||
@if (isset($arahMataAngin))
|
|
||||||
@foreach ($arahMataAngin as $item)
|
|
||||||
<option value="{{ $item->name }}"
|
|
||||||
{{ old('hadapMataAngin') == $item->name ? 'selected' : '' }}>{{ $item->name }}
|
|
||||||
</option>
|
|
||||||
@endforeach
|
|
||||||
@endif
|
|
||||||
</select>
|
|
||||||
|
|
||||||
@error('hadapMataAngin')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@php
|
@php
|
||||||
$kondisiObjeck = [];
|
|
||||||
|
|
||||||
$kondisiObjeck = [
|
$kondisiObjeck = [
|
||||||
['label' => 'Mesin dan Panel Instrument', 'index' => 0],
|
[
|
||||||
['label' => 'Fungsi mesin dan panel instrument', 'index' => 1],
|
'label' => 'Mesin dan Panel Instrument',
|
||||||
['label' => 'Interior (jok, dll)', 'index' => 2],
|
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
|
||||||
['label' => 'Rangka dan Karoseri', 'index' => 3],
|
'name' => 'mesin_panel',
|
||||||
['label' => 'Ban', 'index' => 4],
|
'index' => 0,
|
||||||
['label' => 'Velg', 'index' => 5],
|
],
|
||||||
['label' => 'Air Conditioner', 'index' => 6],
|
[
|
||||||
['label' => 'Aksesoris Tambahan lainnya', 'index' => 7],
|
'label' => 'Fungsi mesin dan panel instrument',
|
||||||
['label' => 'LCD', 'index' => 8],
|
'value' => ['Berfungsi', 'Rusak'],
|
||||||
['label' => 'Perlengkapan Keamanan', 'index' => 9],
|
'name' => 'fungsi_panel',
|
||||||
['label' => 'Asuransi', 'index' => 10],
|
'index' => 1,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Interior (jok, dll)',
|
||||||
|
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
|
||||||
|
'name' => 'interior',
|
||||||
|
'index' => 2,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Rangka dan Karoseri',
|
||||||
|
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
|
||||||
|
'name' => 'rangka_Karoseri',
|
||||||
|
'index' => 3,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Ban',
|
||||||
|
'value' => ['Standard', 'Tidak Standard'],
|
||||||
|
'name' => 'ban',
|
||||||
|
'index' => 4,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Velg',
|
||||||
|
'value' => ['Standard', 'Tidak Standard'],
|
||||||
|
'name' => 'velg',
|
||||||
|
'index' => 5,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Air Conditioner',
|
||||||
|
'value' => ['Ada', 'Tidak Ada'],
|
||||||
|
'name' => 'air_conditioner',
|
||||||
|
'index' => 6,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Aksesoris Tambahan lainnya',
|
||||||
|
'value' => ['Ada', 'Tidak Ada'],
|
||||||
|
'name' => 'aksesoris',
|
||||||
|
'index' => 7,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'LCD',
|
||||||
|
'value' => ['Ada', 'Tidak Ada'],
|
||||||
|
'name' => 'lcd',
|
||||||
|
'index' => 8,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Perlengkapan Keamanan',
|
||||||
|
'value' => ['Ada', 'Tidak Ada'],
|
||||||
|
'name' => 'perlengkapan',
|
||||||
|
'index' => 9,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Asuransi',
|
||||||
|
'value' => ['Ada', 'Tidak Ada'],
|
||||||
|
'name' => 'asuransi',
|
||||||
|
'index' => 10,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
@endphp
|
@endphp
|
||||||
@@ -145,15 +306,120 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="bentuk_tanah" class="input"
|
<div class="flex flex-col items-start gap-4">
|
||||||
placeholder="Masukkan {{ $item['label'] }}">
|
@if (isset($item['value']))
|
||||||
|
@foreach ($item['value'] as $value)
|
||||||
@error('bentuk_tanah')
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<label class="form-label max-w-56 gap-2.5" style="width: 500px">
|
||||||
@enderror
|
<input class="checkbox" name="{{ $item['name'] }}[]" type="checkbox"
|
||||||
</div>
|
value="{{ $value }}"
|
||||||
|
{{ in_array($value, old($item['name'], $forminspeksi[$item['name']] ?? [])) ? 'checked' : '' }} />
|
||||||
|
{{ $value }}
|
||||||
|
</label>
|
||||||
|
<input type="text" name="{{ $item['name'] }}_input[]"
|
||||||
|
class="input w-full"
|
||||||
|
id="bentukTanahInput-{{ $loop->parent->index }}-{{ $loop->index }}"
|
||||||
|
placeholder="Masukkan {{ $value }}..."
|
||||||
|
value="{{ old($item['name'] . '_input.' . $loop->index, $forminspeksi[$item['name'] . '_input'][$loop->index] ?? '') }}">
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
<div class="w-full">
|
||||||
|
<em id="error-{{ $item['name'] }}" class="alert text-danger text-sm"></em>
|
||||||
|
<em id="error-{{ $item['name'] }}-input-{{ $loop->index }}"
|
||||||
|
class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Perusahaan Asuransi</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input type="text" name="perusahaan_asuransi" class="input"
|
||||||
|
placeholder="Pesurahaan Asuransi">
|
||||||
|
<em class="alert text-danger text-sm"></em>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Tahun Berakhir</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input type="date" name="tahun_berakhir" class="input" placeholder="Tahun berakhir">
|
||||||
|
<em class="alert text-danger text-sm"></em>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card bg-white rounded-lg overflow-hidden">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class=" py-4 ">
|
||||||
|
<h1 class="text-md font-medium text-gray-900">Analisis Fakta</h1>
|
||||||
|
</div>
|
||||||
|
<div class="grid gap-5">
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Faktor Positif</label>
|
||||||
|
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
|
<textarea class="textarea mt-2" name="fakta_positif[]" rows="3">{{ old('fakta_positif.0', $forminspeksi['fakta_positif'][0] ?? '') }}</textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
|
<em id="error-fakta_positif" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn btn-primary btn-sm mt-5"
|
||||||
|
onclick="addClonableItem('fakta-positif-container', 'fakta_positif')">
|
||||||
|
<i class="ki-outline ki-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Faktor Negatif</label>
|
||||||
|
<div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
|
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="3">{{ old('fakta_negatif.0', $forminspeksi['fakta_negatif'][0] ?? '') }}</textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
|
<em id="error-fakta_negatif" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn btn-primary btn-sm mt-5"
|
||||||
|
onclick="addClonableItem('fakta-negatif-container', 'fakta_negatif')">
|
||||||
|
<i class="ki-outline ki-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Catatan Yang Perlu Diperhatikan</label>
|
||||||
|
<div id="catatan-container" class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="catatan flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
|
<textarea class="textarea mt-2" name="catatan[]" rows="3">{{ old('catatan.0', $forminspeksi['catatan'][0] ?? '') }}</textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
|
<em id="error-catatan" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
<button type="button"
|
||||||
|
onclick="addClonableItem('catatan-container', 'catatan')"
|
||||||
|
class="btn btn-primary btn-sm mt-5 ">
|
||||||
|
<i class="ki-outline ki-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
|
||||||
|
|
||||||
<div class=" py-4 px-6">
|
<div class=" py-4 ">
|
||||||
<h1 class="text-md font-medium text-gray-900">Analisa Unit</h1>
|
<h1 class="text-md font-medium text-gray-900">Analisa Unit</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid gap-5">
|
<div class="grid gap-5">
|
||||||
@@ -18,19 +18,18 @@
|
|||||||
<div class="grid grid-cols-2 md:grid-cols-3 gap-4 mt-2">
|
<div class="grid grid-cols-2 md:grid-cols-3 gap-4 mt-2">
|
||||||
<label class="form-label flex items-center gap-3 text-nowrap">
|
<label class="form-label flex items-center gap-3 text-nowrap">
|
||||||
<input type="radio" class="radio" name="luas_unit" value="sesuai"
|
<input type="radio" class="radio" name="luas_unit" value="sesuai"
|
||||||
{{ old('luas', isset($analisa) && optional($analisa)->luas) == 'sesuai' ? 'checked' : '' }}>
|
{{ old('luas_unit', $forminspeksi['luas_unit'] ?? '') == 'sesuai' ? 'checked' : '' }}>
|
||||||
<span class="ml-2">Sesuai</span>
|
<span class="ml-2">Sesuai</span>
|
||||||
</label>
|
</label>
|
||||||
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
||||||
<input type="radio" class="radio" name="luas_unit" value="tidak sesuai"
|
<input type="radio" class="radio" name="luas_unit" value="tidak sesuai"
|
||||||
{{ old('luas', isset($analisa) && optional($analisa)->luas) == 'tidak sesuai' ? 'checked' : '' }}>
|
{{ old('luas_unit', $forminspeksi['luas_unit'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
|
||||||
<span class="ml-2">Tidak Sesuai</span>
|
<span class="ml-2">Tidak Sesuai</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@error('luas')
|
<em id="error-luas_unit" class="alert text-danger text-sm"></em>
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -44,7 +43,7 @@
|
|||||||
@foreach ($jenisBangunan as $item)
|
@foreach ($jenisBangunan as $item)
|
||||||
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
||||||
<input class="checkbox" name="jenis_unit[]" type="checkbox"
|
<input class="checkbox" name="jenis_unit[]" type="checkbox"
|
||||||
value="{{ $item->name }}" />
|
value="{{ $item->name }}" {{ in_array($item->name, old('jenis_unit', $forminspeksi['jenis_unit'] ?? [])) ? 'checked' : '' }} />
|
||||||
{{ $item->name }}
|
{{ $item->name }}
|
||||||
</label>
|
</label>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -64,7 +63,7 @@
|
|||||||
@foreach ($kondisiBangunan as $item)
|
@foreach ($kondisiBangunan as $item)
|
||||||
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
||||||
<input class="checkbox" name="kondisi_unit[]" type="checkbox"
|
<input class="checkbox" name="kondisi_unit[]" type="checkbox"
|
||||||
value="{{ $item->name }}" />
|
value="{{ $item->name }}" {{ in_array($item->name, old('kondisi_unit', $forminspeksi['kondisi_unit'] ?? [])) ? 'checked' : '' }} />
|
||||||
{{ $item->name }}
|
{{ $item->name }}
|
||||||
</label>
|
</label>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -75,7 +74,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- Posisi Unit -->
|
<!-- Posisi Unit -->
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Posisi Unit</label>
|
<label class="form-label max-w-56">Posisi Unit</label>
|
||||||
@@ -86,7 +84,7 @@
|
|||||||
@foreach ($ketinggianTanah as $item)
|
@foreach ($ketinggianTanah as $item)
|
||||||
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
||||||
<input class="checkbox" name="posisi_unit[]" type="checkbox"
|
<input class="checkbox" name="posisi_unit[]" type="checkbox"
|
||||||
value="{{ $item->name }}" />
|
value="{{ $item->name }}" {{ in_array($item->name, old('posisi_unit', $forminspeksi['posisi_unit'] ?? [])) ? 'checked' : '' }} />
|
||||||
{{ $item->name }}
|
{{ $item->name }}
|
||||||
</label>
|
</label>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -110,7 +108,7 @@
|
|||||||
@foreach ($lantai as $item)
|
@foreach ($lantai as $item)
|
||||||
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
||||||
<input class="checkbox" name="lantai[]" type="checkbox"
|
<input class="checkbox" name="lantai[]" type="checkbox"
|
||||||
value="{{ $item->name }}" />
|
value="{{ $item->name }}" {{ in_array($item->name, old('lantai', $forminspeksi['lantai'] ?? [])) ? 'checked' : '' }} />
|
||||||
{{ $item->name }}
|
{{ $item->name }}
|
||||||
</label>
|
</label>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -132,7 +130,7 @@
|
|||||||
@foreach ($viewUnit as $item)
|
@foreach ($viewUnit as $item)
|
||||||
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
||||||
<input class="checkbox" name="view[]" type="checkbox"
|
<input class="checkbox" name="view[]" type="checkbox"
|
||||||
value="{{ $item->name }}" />
|
value="{{ $item->name }}" {{ in_array($item->name, old('view', $forminspeksi['view'] ?? [])) ? 'checked' : '' }} />
|
||||||
{{ $item->name }}
|
{{ $item->name }}
|
||||||
</label>
|
</label>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -152,7 +150,7 @@
|
|||||||
@foreach ($bentukTanah as $item)
|
@foreach ($bentukTanah as $item)
|
||||||
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
||||||
<input class="checkbox" name="bentuk_unit[]" type="checkbox"
|
<input class="checkbox" name="bentuk_unit[]" type="checkbox"
|
||||||
value="{{ $item->name }}" />
|
value="{{ $item->name }}" {{ in_array($item->name, old('bentuk_unit', $forminspeksi['bentuk_unit'] ?? [])) ? 'checked' : '' }} />
|
||||||
{{ $item->name }}
|
{{ $item->name }}
|
||||||
</label>
|
</label>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|||||||
@@ -116,8 +116,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- Spek Bangunan -->
|
<!-- Spek Bangunan -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="gap-2.5">
|
<div class="gap-2.5">
|
||||||
<div class="flex items-stretch flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-stretch flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Spek Bangunan</label>
|
<label class="form-label max-w-56">Spek Bangunan</label>
|
||||||
@@ -145,7 +143,6 @@
|
|||||||
@endif
|
@endif
|
||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<em id="error-spek_bangunan_{{ $item->name }}"
|
<em id="error-spek_bangunan_{{ $item->name }}"
|
||||||
class="alert text-danger text-sm"></em>
|
class="alert text-danger text-sm"></em>
|
||||||
</div>
|
</div>
|
||||||
@@ -154,13 +151,13 @@
|
|||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
<button type="button"
|
<button type="button"
|
||||||
class="mt-2 btn btn-danger btn-outline btn-xs delete-button">Hapus</button>
|
class="mt-2 btn btn-danger btn-outline btn-xs remove-btn" style="display: none;">Hapus</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex justify-end">
|
<div class="flex justify-end">
|
||||||
<button class="btn btn-xs btn-primary" type="button" id="addBagunan">
|
<button class="btn btn-xs btn-primary" type="button" onclick="addClonableItem('spek-bangunan-container', 'spek-bangunan')">
|
||||||
tambah bangunan
|
tambah bangunan
|
||||||
<i class="ki-filled ki-plus"></i>
|
<i class="ki-filled ki-plus"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -9,6 +9,10 @@
|
|||||||
@elseif(request()->has('form') && request('form') === 'inspeksi')
|
@elseif(request()->has('form') && request('form') === 'inspeksi')
|
||||||
<a class="card border-2 border-dashed border-brand-clarity bg-center bg-[length:600px] bg-no-repeat add-new-bg"
|
<a class="card border-2 border-dashed border-brand-clarity bg-center bg-[length:600px] bg-no-repeat add-new-bg"
|
||||||
href="{{ route('surveyor.inspeksi', ['id' => $permohonan->id, 'jaminanId' => $dokumen->jenisJaminan->id]) }}?form=create-inspeksi&inspeksi={{ $permohonan->id }}&jenis_jaminan={{ $dokumen->jenisJaminan->id }}">
|
href="{{ route('surveyor.inspeksi', ['id' => $permohonan->id, 'jaminanId' => $dokumen->jenisJaminan->id]) }}?form=create-inspeksi&inspeksi={{ $permohonan->id }}&jenis_jaminan={{ $dokumen->jenisJaminan->id }}">
|
||||||
|
|
||||||
|
@elseif(request()->has('form') && request('form') === 'data-pembanding')
|
||||||
|
<a class="card border-2 border-dashed border-brand-clarity bg-center bg-[length:600px] bg-no-repeat add-new-bg"
|
||||||
|
href="{{ route('surveyor.data-pembanding', ['id' => $permohonan->id, 'jaminanId' => $dokumen->jenisJaminan->id]) }}?form=data-pembanding&pembanding={{ $permohonan->id }}&jenis_jaminan={{ $dokumen->jenisJaminan->id }}">
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<div class="card-body grid items-center">
|
<div class="card-body grid items-center">
|
||||||
|
|||||||
@@ -1,30 +1,473 @@
|
|||||||
|
@extends('layouts.main')
|
||||||
|
|
||||||
<div class="grid">
|
{{-- @section('breadcrumbs')
|
||||||
<div class="card-grid min-w-full" data-datatable="false" data-datatable-page-size="5" data-datatable-state-save="false" id="data-table" data-api-url="">
|
{{ Breadcrumbs::render(request()->route()->getName()) }}
|
||||||
<div class="card-header py-5 flex-wrap">
|
@endsection --}}
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||||
|
<div class="card min-w-full">
|
||||||
|
<div class="card min-w-full">
|
||||||
|
<div class="card-header">
|
||||||
|
<h3 class="card-title">
|
||||||
|
Data Pembanding
|
||||||
|
</h3>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<a href="{{ route('surveyor.show', ['id' => request('pembanding')]) }}?form=data-pembanding"
|
||||||
|
class="btn btn-xs btn-info">
|
||||||
|
<i class="ki-filled ki-exit-left"></i> Back
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid gap-5">
|
||||||
|
<div class="card-grid min-w-full" data-datatable="false" data-datatable-page-size="5"
|
||||||
|
data-datatable-state-save="false" id="data-table" data-api-url="">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header py-5 flex-wrap flex justify-end">
|
||||||
|
<button id="addColumnBtn" class="btn btn-primary btn-sm">
|
||||||
|
<i class="ki-filled ki-plus"></i> Tambah Kolom
|
||||||
|
</button>
|
||||||
|
<button id="removeColumnBtn" class="btn btn-danger btn-sm ml-2" style="display: none;">
|
||||||
|
<i class="ki-filled ki-minus"></i> Hapus Kolom
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="scrollable-x-auto">
|
<div class="scrollable-x-auto">
|
||||||
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm" data-datatable-table="true">
|
<table id="dataTable"
|
||||||
|
class="table table-auto table-border align-middle text-gray-700 font-medium text-sm"
|
||||||
|
data-datatable-table="true">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
<th class="min-w-[250px]" data-datatable-column="code" style="min-width: 350px">
|
||||||
<th class="min-w-[250px]" data-datatable-column="code">
|
|
||||||
<span class="sort"> <span class="sort-label"> Nama </span>
|
<span class="sort"> <span class="sort-label"> Nama </span>
|
||||||
<span class="sort-icon"> </span> </span>
|
<span class="sort-icon"> </span> </span>
|
||||||
</th>
|
</th>
|
||||||
<th class="min-w-[250px]" data-datatable-column="name">
|
<th class="min-w-[250px]" data-datatable-column="name" style="min-width: 350px">
|
||||||
<span class="sort"> <span class="sort-label"> Data Pembanding </span>
|
<span class="sort"> <span class="sort-label"> Objek Penilaian </span>
|
||||||
<span class="sort-icon"> </span> </span>
|
<span class="sort-icon"> </span> </span>
|
||||||
</th>
|
</th>
|
||||||
<th class="min-w-[50px] text-center" data-datatable-column="actions">Data Pembading 2</th>
|
<th class="min-w-[50px]" data-datatable-column="actions"
|
||||||
|
style="min-width: 350px"id="dataPembanding2Header">
|
||||||
|
Data Pembanding 1
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Foto
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@php
|
||||||
|
$formFoto = json_decode($forminspeksi['foto_form'], true);
|
||||||
|
|
||||||
|
$formIns = json_decode($forminspeksi['data_form'], true);
|
||||||
|
|
||||||
|
@endphp
|
||||||
|
|
||||||
|
@if (isset($formFoto['object_jaminan']) &&
|
||||||
|
count($formFoto['object_jaminan']) > 0 &&
|
||||||
|
isset($formFoto['object_jaminan'][0]['foto_object']))
|
||||||
|
<img src="{{ asset('storage/' . $formFoto['object_jaminan'][0]['foto_object']) }}"
|
||||||
|
class="img-responsive" alt="Gambar Pendamping"
|
||||||
|
style="width: 10rem; height: 10rem;" id="uploadedImage1">
|
||||||
|
@else
|
||||||
|
<img src="#" class="img-responsive" alt="Gambar Pendamping"
|
||||||
|
style="width: 10rem; height: 10rem; display: none;" id="uploadedImage1">
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<input type="file" class="file-input mt-2" placeholder=""
|
||||||
|
onchange="previewImage(event, 'uploadedImage1')" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<img src="" class="img-responsive" alt="Gambar Pendamping"
|
||||||
|
style="width: 10rem; height: 10rem; display: none;" id="uploadedImage2">
|
||||||
|
<input type="file" class="file-input" placeholder=""
|
||||||
|
onchange="previewImage(event, 'uploadedImage2')" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<p>Alamat</p>
|
||||||
|
<p>Desa</p>
|
||||||
|
<p>Kecamatan</p>
|
||||||
|
<p>Kabupaten</p>
|
||||||
|
<p>Provinsi</p>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" value="{{ isset($formIns['nama_jalan']) ? $formIns['nama_jalan'] . ' ' . $formIns['desa_kelurahan'] : ""}}" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" value="{{ isset($formIns['kecamatan']) ? $formIns['kecamatan'] : ""}}" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" value="{{ isset($formIns['kota_kabupaten']) ? $formIns['kota_kabupaten'] : ""}}" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" value="{{ isset($formIns['provinsi']) ? $formIns['provinsi'] : ""}}" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Data Pembanding 1" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Data Pembanding 1" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Tahun Penilaian
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Luas Tanah
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Luas Bangunan
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Tahun Bangunan
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Estimasi Tahun Visual
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Kepemilikan
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Harga
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Tinggi Lantai
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Lebar Depan
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Lebar Jalan
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Sumber
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Nomor tlp
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Titik Lokasi
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div class="flex items-center">
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" value="{{ isset($formIns['kordinat_lat']) ? $formIns['kordinat_lat'] : ""}}" />
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" value="{{ isset($formIns['kordinat_lng']) ? $formIns['kordinat_lng'] : ""}}" />
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<div class="flex items-center">
|
||||||
|
<input type="text" class="input" placeholder="Data pembanding" />
|
||||||
|
<input type="text" class="input" placeholder="Data pembanding" />
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Link Internet
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="3">Lokasi</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<p>Jarak Ke jalan utama</p>
|
||||||
|
<p>Lebar jalan depan aset (m)</p>
|
||||||
|
<p>Posisi kavling</p>
|
||||||
|
<p>Tingkat Keramaian (Occupancy)</p>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" value="{{ isset($formIns['jarak_jalan_utama']) ? $formIns['jarak_jalan_utama'] : ""}}" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" value="{{ isset($formIns['jarak_cbd_point']) ? $formIns['jarak_cbd_point'] : ""}}" />
|
||||||
|
|
||||||
|
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" value="{{ isset($formIns['posisi_kavling']) ? $formIns['posisi_kavling'][0] : ""}}" />
|
||||||
|
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" value="{{ isset($formIns['tingkat_keramaian']) ? $formIns['tingkat_keramaian'][0] : ""}}" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Data Pembanding 1" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Data Pembanding 1" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="3">Karakteristik Fisik</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<p>Kondisi Fisik Tanah</p>
|
||||||
|
<p>Beda Ketinggian dengan Jalan</p>
|
||||||
|
<p>Bentuk Tanah</p>
|
||||||
|
<p>Lebar Depan</p>
|
||||||
|
<p>Fasos Fasum</p>
|
||||||
|
<p>Lain-lain</p>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" value="{{ isset($formIns['kondisi_fisik_tanah']) ? $formIns['kondisi_fisik_tanah'][0] : ""}}" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" value="{{ isset($formIns['ketinggian_jalan']) ? $formIns['ketinggian_jalan'][0] : ""}}" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" value="{{ isset($formIns['bentuk_tanah']) ? $formIns['bentuk_tanah'][0] : ""}}" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" value="{{ isset($formIns['bentuk_tanah']) ? $formIns['bentuk_tanah'][0] : ""}}" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Data Pembanding 1" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Data Pembanding 1" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Data Pembanding 1" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Data Pembanding 1" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Karakteristik Ekonomi
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<p>Pengunaan</p>
|
||||||
|
<p>Zonasi/Tata Kota</p>
|
||||||
|
<p> KDB, KLB, KTB, KDH & Peraturan Lainnya</p>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Objek Penilaian" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="input" placeholder="Data Pembanding 1" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Data Pembanding 1" />
|
||||||
|
<input type="text" class="input mt-2" placeholder="Objek Penilaian" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
let columnCount = 1;
|
||||||
|
|
||||||
|
document.getElementById('addColumnBtn').addEventListener('click', function() {
|
||||||
|
columnCount++;
|
||||||
|
|
||||||
|
// Create new header cell
|
||||||
|
const newHeader = document.createElement('th');
|
||||||
|
newHeader.className = 'min-w-[350px] text-center';
|
||||||
|
newHeader.style.minWidth = '350px';
|
||||||
|
newHeader.textContent = `Data Pembanding ${columnCount}`;
|
||||||
|
document.querySelector('#dataTable thead tr').appendChild(newHeader);
|
||||||
|
|
||||||
|
document.getElementById('removeColumnBtn').style.display = 'inline-block';
|
||||||
|
|
||||||
|
|
||||||
|
const rows = document.querySelectorAll('#dataTable tbody tr');
|
||||||
|
rows.forEach((row, index) => {
|
||||||
|
const newCell = document.createElement('td');
|
||||||
|
newCell.className = 'text-center';
|
||||||
|
|
||||||
|
if (index === 0) {
|
||||||
|
const imgElement = document.createElement('img');
|
||||||
|
imgElement.src = '';
|
||||||
|
imgElement.className = 'img-responsive';
|
||||||
|
imgElement.alt = 'Gambar Pendamping';
|
||||||
|
imgElement.style.width = '10rem';
|
||||||
|
imgElement.style.height = '10rem';
|
||||||
|
imgElement.style.display = 'none';
|
||||||
|
imgElement.id = `uploadedImage${columnCount}-${index + 1}`;
|
||||||
|
|
||||||
|
const fileInput = document.createElement('input');
|
||||||
|
fileInput.type = 'file';
|
||||||
|
fileInput.className = 'file-input';
|
||||||
|
fileInput.placeholder = '';
|
||||||
|
fileInput.onchange = function(event) {
|
||||||
|
previewImage(event, imgElement.id);
|
||||||
|
};
|
||||||
|
|
||||||
|
newCell.appendChild(imgElement);
|
||||||
|
newCell.appendChild(fileInput);
|
||||||
|
} else {
|
||||||
|
// Other rows get text inputs
|
||||||
|
const numInputs = row.querySelectorAll('input').length;
|
||||||
|
for (let i = 0; i < numInputs; i++) {
|
||||||
|
const textInput = document.createElement('input');
|
||||||
|
textInput.type = 'text';
|
||||||
|
textInput.className = 'input mt-2';
|
||||||
|
textInput.placeholder = `Data Pembanding ${columnCount}`;
|
||||||
|
newCell.appendChild(textInput);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
row.appendChild(newCell);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Update colspan on label row
|
||||||
|
const colspanRow = document.createElement('tr');
|
||||||
|
const colspanCell = document.createElement('td');
|
||||||
|
colspanCell.colSpan = 3 + columnCount - 1;
|
||||||
|
colspanCell.textContent = `Data Pembanding ${columnCount}`;
|
||||||
|
colspanRow.appendChild(colspanCell);
|
||||||
|
document.querySelector('#dataTable tbody').insertBefore(colspanRow, rows[0]);
|
||||||
|
});
|
||||||
|
|
||||||
|
document.getElementById('removeColumnBtn').addEventListener('click', function() {
|
||||||
|
if (columnCount > 1) { // Pastikan ada kolom yang bisa dihapus
|
||||||
|
columnCount--; // Decrement jumlah kolom
|
||||||
|
|
||||||
|
|
||||||
|
const headers = document.querySelectorAll('#dataTable thead tr th');
|
||||||
|
headers[headers.length - 1].remove();
|
||||||
|
const rows = document.querySelectorAll('#dataTable tbody tr');
|
||||||
|
rows.forEach(row => {
|
||||||
|
const cells = row.querySelectorAll('td');
|
||||||
|
cells[cells.length - 1].remove();
|
||||||
|
});
|
||||||
|
if (columnCount === 1) {
|
||||||
|
document.getElementById('removeColumnBtn').style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function previewImage(event, imgElementId) {
|
||||||
|
const file = event.target.files[0];
|
||||||
|
const imgElement = document.getElementById(imgElementId);
|
||||||
|
|
||||||
|
if (file) {
|
||||||
|
const reader = new FileReader();
|
||||||
|
reader.onload = function(e) {
|
||||||
|
imgElement.src = e.target.result;
|
||||||
|
imgElement.style.display = 'block';
|
||||||
|
}
|
||||||
|
reader.readAsDataURL(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<div class="card min-w-full">
|
<div class="card min-w-full">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h3 class="card-title">
|
<h3 class="card-title">
|
||||||
Data Jaminan
|
Denah
|
||||||
</h3>
|
</h3>
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-2">
|
||||||
<a href="{{ route('surveyor.show', ['id' => request('denah')]) }}?form=denah"
|
<a href="{{ route('surveyor.show', ['id' => request('denah')]) }}?form=denah"
|
||||||
@@ -139,16 +139,19 @@
|
|||||||
<span class="form-label">Upload Denah</span>
|
<span class="form-label">Upload Denah</span>
|
||||||
</label>
|
</label>
|
||||||
<div class="w-full grid gap-5">
|
<div class="w-full grid gap-5">
|
||||||
<img id="foto_denah"
|
<img id="foto_denah-preview"
|
||||||
src="{{ isset($formFoto['foto_denah']) ? asset('storage/' . old('foto_denah', $formFoto['foto_denah'])) : '#' }}"
|
src="{{ isset($formDenah['foto_denah']) ? asset('storage/' . old('foto_denah', $formDenah['foto_denah'])) : '' }}"
|
||||||
alt="Gambar foto_denah" style="width: 30rem;">
|
alt="Gambar foto_denah" style="{{ isset($formDenah['foto_denah']) ? 'width: 30rem;' : 'display: none;' }}">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="input-group w-full flex gap-2">
|
<div class="input-group w-full flex gap-2">
|
||||||
<input type="file"
|
<input type="file"
|
||||||
value="{{ old('foto_denah', isset($formDenah['foto_denah']) ? $formDenah['foto_denah'] : '') }}"
|
value="{{ old('foto_denah', isset($formDenah['foto_denah']) ? $formDenah['foto_denah'] : '') }}"
|
||||||
name="foto_denah" class="file-input file-input-bordered w-full "
|
name="foto_denah" class="file-input file-input-bordered w-full "
|
||||||
accept="image/*">
|
accept="image/*"
|
||||||
|
onchange="previewImage(this, 'foto_denah-preview')"
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -173,9 +176,9 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@error('luas')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error-luas" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-end gap-2" style="margin-right: 20px; margin-top: 20px">
|
<div class="flex justify-end gap-2" style="margin-right: 20px; margin-top: 20px">
|
||||||
@@ -196,6 +199,18 @@
|
|||||||
|
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
<script>
|
<script>
|
||||||
|
function previewImage(input, previewId) {
|
||||||
|
if (input.files && input.files[0]) {
|
||||||
|
var reader = new FileReader();
|
||||||
|
reader.onload = function(e) {
|
||||||
|
$('#' + previewId).attr('src', e.target.result).show();
|
||||||
|
}
|
||||||
|
reader.readAsDataURL(input.files[0]);
|
||||||
|
} else {
|
||||||
|
$('#' + previewId).hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function submitDenah() {
|
function submitDenah() {
|
||||||
|
|
||||||
const formElement = $('#formDenah')[0];
|
const formElement = $('#formDenah')[0];
|
||||||
|
|||||||
@@ -7,26 +7,37 @@
|
|||||||
<div class="grid gap-5">
|
<div class="grid gap-5">
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Faktor Positif</label>
|
<label class="form-label max-w-56">Faktor Positif</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
<textarea class="textarea mt-2" name="fakta_positif[]" rows="3">{{ old('fakta_positif.0', $forminspeksi['fakta_positif'][0] ?? '') }}</textarea>
|
<textarea class="textarea mt-2" name="fakta_positif[]" rows="3">{{ old('fakta_positif.0', $forminspeksi['fakta_positif'][0] ?? '') }}</textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
<em id="error-fakta_positif" class="alert text-danger text-sm"></em>
|
<em id="error-fakta_positif" class="alert text-danger text-sm"></em>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="btn btn-primary btn-sm">
|
<button type="button" class="btn btn-primary btn-sm mt-5"
|
||||||
|
onclick="addClonableItem('fakta-positif-container', 'fakta_positif')">
|
||||||
<i class="ki-outline ki-plus"></i>
|
<i class="ki-outline ki-plus"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Faktor Negatif</label>
|
<label class="form-label max-w-56">Faktor Negatif</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="3">{{ old('fakta_negatif.0', $forminspeksi['fakta_negatif'][0] ?? '') }}</textarea>
|
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="3">{{ old('fakta_negatif.0', $forminspeksi['fakta_negatif'][0] ?? '') }}</textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
<em id="error-fakta_negatif" class="alert text-danger text-sm"></em>
|
<em id="error-fakta_negatif" class="alert text-danger text-sm"></em>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-primary btn-sm">
|
<button type="button" class="btn btn-primary btn-sm mt-5"
|
||||||
|
onclick="addClonableItem('fakta-negatif-container', 'fakta_negatif')">
|
||||||
<i class="ki-outline ki-plus"></i>
|
<i class="ki-outline ki-plus"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
@@ -41,37 +52,19 @@
|
|||||||
<label class="form-label max-w-56">Batas batas</label>
|
<label class="form-label max-w-56">Batas batas</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<div class="grid grid-cols-1 gap-4 items-center w-full">
|
<div class="grid grid-cols-1 gap-4 items-center w-full">
|
||||||
@php
|
|
||||||
$inputBatas = [];
|
@if (isset($arahMataAngin))
|
||||||
$inputBatas = [
|
@foreach ($arahMataAngin as $item)
|
||||||
[
|
|
||||||
'label' => 'Utara',
|
|
||||||
'index' => 0,
|
|
||||||
'value' => old('batas_batas.0', $forminspeksi['batas_batas'][0] ?? ''),
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'label' => 'Timur',
|
|
||||||
'index' => 1,
|
|
||||||
'value' => $forminspeksi['batas_batas'][1] ?? '',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'label' => 'Selatan',
|
|
||||||
'index' => 2,
|
|
||||||
'value' => $forminspeksi['batas_batas'][2] ?? '',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'label' => 'Barat',
|
|
||||||
'index' => 3,
|
|
||||||
'value' => $forminspeksi['batas_batas'][3] ?? '',
|
|
||||||
],
|
|
||||||
];
|
|
||||||
@endphp
|
|
||||||
@if ($inputBatas > 0)
|
|
||||||
@foreach ($inputBatas as $item)
|
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
<label class="form-label max-w-56 gap-2.5" style="width: 500px">
|
||||||
<input type="text" name="batas_batas[]" class="input"
|
<input class="checkbox" name="batas_batas[]" type="checkbox"
|
||||||
value="{{ $item['value'] }}" />
|
value="{{ $item->name }}"
|
||||||
|
{{ in_array($item->name, old('batas_batas', $forminspeksi['batas_batas'] ?? [])) ? 'checked' : '' }} />
|
||||||
|
{{ $item->name }}
|
||||||
|
</label>
|
||||||
|
<input type="text" name="batas_batas_input[]" class="input w-full"
|
||||||
|
id="bentukTanahInput" placeholder="Masukkan Batas {{ $item->name }}..."
|
||||||
|
value="{{ old('batas_batas_input.' . $loop->index, $forminspeksi['batas_batas_input'][$loop->index] ?? '') }}">
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
@@ -83,270 +76,65 @@
|
|||||||
|
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Kondisi lain terkait lingkungan</label>
|
<label class="form-label max-w-56">Kondisi lain terkait lingkungan</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full" id="kondisi-lingkungan-container">
|
||||||
<textarea class="textarea mt-2" name="kondisi_lingkungan[]" rows="3">{{ old('kondisi_lingkungan.0', $forminspeksi['kondisi_lingkungan'][0] ?? '') }}</textarea>
|
<div class="kondisi_lingkungan flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
|
<textarea class="textarea mt-2" name="kondisi_lingkungan[]" rows="3" placeholder="Tambahkan keterangan"></textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
<em id="error-kondisi_lingkungan" class="alert text-danger text-sm"></em>
|
<em id="error-kondisi_lingkungan" class="alert text-danger text-sm"></em>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-primary btn-sm mt-5 ">
|
|
||||||
|
<button class="btn btn-primary btn-sm mt-5" type="button"
|
||||||
|
onclick="addClonableItem('kondisi-lingkungan-container', 'kondisi_lingkungan')">
|
||||||
<i class="ki-outline ki-plus"></i>
|
<i class="ki-outline ki-plus"></i>
|
||||||
</button>
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Kondisi lain terkait Bangunan</label>
|
<label class="form-label max-w-56">Kondisi lain terkait Bangunan</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div id="kondisi-lain-bangunan-container" class="flex flex-wrap items-baseline w-full">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="kondisi_lain_bangunan flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
<textarea class="textarea mt-2" name="kondisi_lain_bangunan[]" rows="3">{{ old('kondisi_lain_bangunan.0', $forminspeksi['kondisi_lain_bangunan'][0] ?? '') }}</textarea>
|
<textarea class="textarea mt-2" name="kondisi_lain_bangunan[]" rows="3">{{ old('kondisi_lain_bangunan.0', $forminspeksi['kondisi_lain_bangunan'][0] ?? '') }}</textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
<em id="error-kondisi_lain_bangunan" class="alert text-danger text-sm"></em>
|
<em id="error-kondisi_lain_bangunan" class="alert text-danger text-sm"></em>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-primary btn-sm mt-5 ">
|
<button type="button"
|
||||||
|
onclick="addClonableItem('kondisi-lain-bangunan-container', 'kondisi_lain_bangunan')"
|
||||||
|
class="btn btn-primary btn-sm mt-5 ">
|
||||||
<i class="ki-outline ki-plus"></i>
|
<i class="ki-outline ki-plus"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Informasi Terkait Dokumen</label>
|
<label class="form-label max-w-56">Informasi Terkait Dokumen</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div id="informasi-dokument-container" class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="informasi_dokument flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
<textarea class="textarea mt-2" name="informasi_dokument" rows="3">{{ old('informasi_dokument.0', $forminspeksi['informasi_dokument'][0] ?? '') }}</textarea>
|
<textarea class="textarea mt-2" name="informasi_dokument" rows="3">{{ old('informasi_dokument.0', $forminspeksi['informasi_dokument'][0] ?? '') }}</textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
<em id="error-informasi_dokument" class="alert text-danger text-sm"></em>
|
<em id="error-informasi_dokument" class="alert text-danger text-sm"></em>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-primary btn-sm mt-5 ">
|
<button class="btn btn-primary btn-sm mt-5 " type="button"
|
||||||
|
onclick="addClonableItem('informasi-dokument-container', 'informasi_dokument')">
|
||||||
<i class="ki-outline ki-plus"></i>
|
<i class="ki-outline ki-plus"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Informasi Tata Ruang -->
|
|
||||||
|
|
||||||
<div class="card w-full bg-white">
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="py-4">
|
|
||||||
<h1 class="text-md font-medium text-gray-900">Informasi Dinas Tata Ruang</h1>
|
|
||||||
</div>
|
|
||||||
<!-- Informasi Tata Ruang Form -->
|
|
||||||
<div class="grid gap-5">
|
|
||||||
|
|
||||||
|
|
||||||
@php
|
|
||||||
$inputDinasTata = [
|
|
||||||
[
|
|
||||||
'label' => 'Peruntukan',
|
|
||||||
'name' => 'peruntukan',
|
|
||||||
'index' => 0,
|
|
||||||
'value' => old(
|
|
||||||
'peruntukan',
|
|
||||||
isset($forminspeksi['peruntukan']) ? $forminspeksi['peruntukan'] : '',
|
|
||||||
),
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'label' => 'KDB',
|
|
||||||
'name' => 'kdb',
|
|
||||||
'index' => 1,
|
|
||||||
'value' => old('kdb', isset($forminspeksi['kdb']) ? $forminspeksi['kdb'] : ''),
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'label' => 'KDH',
|
|
||||||
'name' => 'kdh',
|
|
||||||
'index' => 2,
|
|
||||||
'value' => old('kdh', isset($forminspeksi['kdh']) ? $forminspeksi['kdh'] : ''),
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'label' => 'gsb',
|
|
||||||
'name' => 'gsb',
|
|
||||||
'index' => 3,
|
|
||||||
'value' => old('gsb', isset($forminspeksi['gsb']) ? $forminspeksi['gsb'] : ''),
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'label' => 'Max Lantai',
|
|
||||||
'name' => 'max_lantai',
|
|
||||||
'index' => 4,
|
|
||||||
'value' => old(
|
|
||||||
'max_lantai',
|
|
||||||
isset($forminspeksi['max_lantai']) ? $forminspeksi['max_lantai'] : '',
|
|
||||||
),
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'label' => 'KLB',
|
|
||||||
'name' => 'klb',
|
|
||||||
'index' => 5,
|
|
||||||
'value' => old('klb', isset($forminspeksi['klb']) ? $forminspeksi['klb'] : ''),
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'label' => 'GSS',
|
|
||||||
'name' => 'gss',
|
|
||||||
'index' => 6,
|
|
||||||
'value' => old('gss', isset($forminspeksi['gss']) ? $forminspeksi['gss'] : ''),
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'label' => 'Pelebaran Jalan',
|
|
||||||
'name' => 'pelebaran_jalan',
|
|
||||||
'index' => 7,
|
|
||||||
'value' => old(
|
|
||||||
'pelebaran_jalan',
|
|
||||||
isset($forminspeksi['pelebaran_jalan']) ? $forminspeksi['pelebaran_jalan'] : '',
|
|
||||||
),
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'label' => 'Nama Petugas TK',
|
|
||||||
'name' => 'nama_petugas',
|
|
||||||
'index' => 8,
|
|
||||||
'value' => old(
|
|
||||||
'nama_petugas',
|
|
||||||
isset($forminspeksi['nama_petugas']) ? $forminspeksi['nama_petugas'] : '',
|
|
||||||
),
|
|
||||||
],
|
|
||||||
];
|
|
||||||
@endphp
|
|
||||||
|
|
||||||
@if (count($inputDinasTata) > 0)
|
|
||||||
@foreach ($inputDinasTata as $item)
|
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
||||||
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
|
||||||
<input type="text" name="{{ $item['name'] }}" class="input"
|
|
||||||
placeholder="Masukkan {{ $item['label'] }}" value="{{ $item['value'] }}">
|
|
||||||
@error($item['name'])
|
|
||||||
<em class="alert text-danger text-sm"></em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endforeach
|
|
||||||
@endif
|
|
||||||
|
|
||||||
|
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
||||||
<label class="form-label max-w-56">
|
|
||||||
<span class="form-label">Gistaru</span>
|
|
||||||
</label>
|
|
||||||
<div class="input-group w-full flex gap-2">
|
|
||||||
<input class="name_rute" type="hidden" name="name_rute" value="rute">
|
|
||||||
<div class="w-full">
|
|
||||||
<input id="inputGistaru" type="file" name="foto_gistaru"
|
|
||||||
class="file-input file-input-bordered w-full" accept="image/*"
|
|
||||||
onchange="previewImage(this, 'gistaru-preview')">
|
|
||||||
<img id="gistaru-preview"
|
|
||||||
src="{{ asset('storage/' . (isset($forminspeksi['foto_gistaru']) ? $forminspeksi['foto_gistaru'] : '')) }}"
|
|
||||||
alt="Foto Gistaru" class="mt-2 max-w-full h-auto"
|
|
||||||
style="{{ isset($forminspeksi['foto_gistaru']) ? '' : 'display: none;' }}">
|
|
||||||
</div>
|
|
||||||
<a href="https://gistaru.atrbpn.go.id/rtronline" type="button" class="btn btn-light"
|
|
||||||
target="_blank">
|
|
||||||
<i class="ki-outline ki-abstract-33"></i> Gistaru
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
||||||
<label class="form-label max-w-56">
|
|
||||||
<span class="form-label">Bhumi</span>
|
|
||||||
</label>
|
|
||||||
<div class="input-group w-full flex gap-2">
|
|
||||||
<input class="name_rute" type="hidden" name="name_rute" value="rute">
|
|
||||||
<div class="w-full">
|
|
||||||
<input id="inputBhumi" type="file" name="foto_bhumi"
|
|
||||||
class="file-input file-input-bordered w-full" accept="image/*"
|
|
||||||
onchange="previewImage(this, 'bhumi-preview')">
|
|
||||||
<img id="bhumi-preview"
|
|
||||||
src="{{ asset('storage/' . (isset($forminspeksi['foto_bhumi']) ? $forminspeksi['foto_bhumi'] : '')) }}"
|
|
||||||
alt="Foto Bhumi" class="mt-2 max-w-full h-auto"
|
|
||||||
style="{{ isset($forminspeksi['foto_bhumi']) ? '' : 'display: none;' }}">
|
|
||||||
</div>
|
|
||||||
<a href="https://bhumi.atrbpn.go.id/peta" type="button" class="btn btn-light"
|
|
||||||
target="_blank">
|
|
||||||
<i class="ki-outline ki-abstract-33"></i> Bhumi
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@if (isset($link_url_region->regions->url))
|
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
||||||
<label class="form-label max-w-56">
|
|
||||||
<span class="form-label">{{ $link_url_region->regions->name_url }}</span>
|
|
||||||
</label>
|
|
||||||
<div class="input-group w-full flex gap-2">
|
|
||||||
<input class="name_rute" type="hidden" name="name_rute" value="rute">
|
|
||||||
<div class="w-full">
|
|
||||||
<input id="inputArgisRegion" type="file" name="foto_argis_region"
|
|
||||||
class="file-input file-input-bordered w-full" accept="image/*"
|
|
||||||
onchange="previewImage(this, 'argis-region-preview')">
|
|
||||||
<img id="argis-region-preview"
|
|
||||||
src="{{ asset('storage/' . (isset($forminspeksi['foto_argis_region']) ? $forminspeksi['foto_argis_region'] : '')) }}"
|
|
||||||
alt="Foto Argis Region" class="mt-2 max-w-full h-auto"
|
|
||||||
style="{{ isset($forminspeksi['foto_argis_region']) ? '' : 'display: none;' }}">
|
|
||||||
</div>
|
|
||||||
<a href="{{ $link_url_region->regions->url }}" type="button" class="btn btn-light"
|
|
||||||
target="_blank">
|
|
||||||
<i class="ki-outline ki-abstract-33"></i>
|
|
||||||
{{ $link_url_region->regions->name_url }}
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
<!-- Peta Section -->
|
|
||||||
|
|
||||||
<div class="mt-2" style="margin-top: 20px">
|
|
||||||
<input type="hidden" name="lat" id="lat"
|
|
||||||
value="{{ old('lat', isset($analisa->analisaFakta) ? $analisa->analisaFakta->lat : '') }}">
|
|
||||||
<input type="hidden" name="lng" id="lng"
|
|
||||||
value="{{ old('lng', isset($analisa->analisaFakta) ? $analisa->analisaFakta->lng : '') }}">
|
|
||||||
<div class=" border p-6 rounded-lg shadow-lg flex items-center justify-center"
|
|
||||||
style="height: 300px">
|
|
||||||
<iframe id="mapFrame" frameborder="0" style="width: 100%; height: 100%;"></iframe>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Upload Photo Button -->
|
|
||||||
<div class=" flex w-full mt-2" style="margin-top: 20px">
|
|
||||||
<div class="flex flex-col input-group w-full">
|
|
||||||
<label for="" class="block text-sm font-medium text-gray-700">Upload Photo</label>
|
|
||||||
|
|
||||||
<div class="w-full">
|
|
||||||
<input id="foto_tempat" type="file" name="foto_tempat"
|
|
||||||
|
|
||||||
class="file-input file-input-bordered w-full" accept="image/*"
|
|
||||||
onchange="previewImage(this, 'argis-region-preview')">
|
|
||||||
<img id="argis-region-preview"
|
|
||||||
src="{{ asset('storage/' . (isset($forminspeksi['foto_tempat']) ? $forminspeksi['foto_tempat'] : '')) }}"
|
|
||||||
alt="Foto Argis Region" class="mt-2 max-w-full h-auto"
|
|
||||||
style="{{ isset($forminspeksi['foto_tempat']) ? '' : 'display: none;' }}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Notes Section -->
|
|
||||||
<div class="mt-2" style="margin-top: 20px">
|
|
||||||
<div class="bg-white p-6 rounded-lg">
|
|
||||||
<h4 class="block text-sm font-medium text-gray-700 mt-2">Catatan yang Perlu Diperhatikan
|
|
||||||
</h4>
|
|
||||||
<textarea name="keterangan" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="3">{{ old('keterangan', $forminspeksi['keterangan'] ?? '') }}</textarea>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
|
||||||
function previewImage(input, previewId) {
|
|
||||||
if (input.files && input.files[0]) {
|
|
||||||
var reader = new FileReader();
|
|
||||||
reader.onload = function(e) {
|
|
||||||
$('#' + previewId).attr('src', e.target.result).show();
|
|
||||||
}
|
|
||||||
reader.readAsDataURL(input.files[0]);
|
|
||||||
} else {
|
|
||||||
$('#' + previewId).hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|||||||
@@ -79,21 +79,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{{-- <div class="card">
|
|
||||||
<div class="card-body"> --}}
|
|
||||||
<form id="formFoto" method="POST" class="grid gap-5" enctype="multipart/form-data">
|
<form id="formFoto" method="POST" class="grid gap-5" enctype="multipart/form-data">
|
||||||
|
|
||||||
|
|
||||||
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
|
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
|
||||||
<input type="hidden" name="jenis_jaminan_id" value="{{ request('jenis_jaminan') }}">
|
<input type="hidden" name="jenis_jaminan_id" value="{{ request('jenis_jaminan') }}">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card bg-white rounded-lg shadow-md">
|
<div class="card bg-white rounded-lg shadow-md">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class=" text-white py-4 px-6 flex items-center justify-between">
|
<div class=" text-white py-4 flex items-center justify-between">
|
||||||
<h1 class="text-md font-medium text-gray-900">Rute Menuju Lokasi</h1>
|
<h1 class="text-md font-medium text-gray-900">Rute Menuju Lokasi</h1>
|
||||||
<button id="btnRute" type="button" class="btn btn-primary btn-sm">
|
<button id="btnRute" type="button" class="btn btn-primary btn-sm">
|
||||||
<i class="ki-filled ki-plus text-lg"></i>
|
<i class="ki-filled ki-plus text-lg"></i>
|
||||||
@@ -109,18 +101,18 @@
|
|||||||
<span class="form-label">Foto Rute Menuju Lokasi</span>
|
<span class="form-label">Foto Rute Menuju Lokasi</span>
|
||||||
</label>
|
</label>
|
||||||
<div class="input-group w-full flex flex-col gap-2">
|
<div class="input-group w-full flex flex-col gap-2">
|
||||||
|
<div class="preview-container">
|
||||||
<img id="foto_rute-preview-{{ $index }}"
|
<img id="foto_rute-preview-{{ $index }}"
|
||||||
src="{{ asset('storage/' . $photo['foto_rute']) }}"
|
src="{{ asset('storage/' . $photo['foto_rute']) }}"
|
||||||
alt="Foto Rute {{ $index }}" class="mt-2 h-auto"
|
alt="Foto Rute {{ $index }}" class="mt-2 h-auto"
|
||||||
style="display: block; width: 30rem;">
|
style="display: block; width: 30rem;">
|
||||||
|
</div>
|
||||||
<div class="input-group w-full gap-2">
|
<div class="input-group w-full gap-2">
|
||||||
<input class="name_rute" type="hidden" name="name_rute[]"
|
<input class="name_rute" type="hidden" name="name_rute[]"
|
||||||
value="rute_{{ $index }}">
|
value="rute_{{ $index }}">
|
||||||
<input id="inputRute-{{ $index }}" type="file" name="foto_rute[]"
|
<input id="inputRute-{{ $index }}" type="file" name="foto_rute[]"
|
||||||
class="file-input file-input-bordered w-full" accept="image/*"
|
class="file-input file-input-bordered w-full" accept="image/*"
|
||||||
capture="camera"
|
capture="camera" onchange="previewImage(this, 'foto_rute-preview')">
|
||||||
onchange="previewImage(this, 'foto_rute-preview-{{ $index }}')">
|
|
||||||
|
|
||||||
|
|
||||||
<button type="button" id="btnCamera-{{ $index }}" class="btn btn-light"
|
<button type="button" id="btnCamera-{{ $index }}" class="btn btn-light"
|
||||||
@@ -136,8 +128,8 @@
|
|||||||
<i class="ki-filled ki-trash"></i>
|
<i class="ki-filled ki-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
|
||||||
</div>
|
</div>
|
||||||
|
@endforeach
|
||||||
@else
|
@else
|
||||||
<div id="inputContainerRute" style="margin-top: 10px">
|
<div id="inputContainerRute" style="margin-top: 10px">
|
||||||
<div class="flex w-full items-center justify-center gap-4 mb-4">
|
<div class="flex w-full items-center justify-center gap-4 mb-4">
|
||||||
@@ -146,14 +138,15 @@
|
|||||||
</label>
|
</label>
|
||||||
|
|
||||||
<div class="input-group w-full flex flex-col gap-2">
|
<div class="input-group w-full flex flex-col gap-2">
|
||||||
|
<div class="preview-container">
|
||||||
<img id="foto_rute-preview" src="" alt="Foto Rute" class="mt-2 h-auto"
|
<img id="foto_rute-preview" src="" alt="Foto Rute" class="mt-2 h-auto"
|
||||||
style="display: none; width: 30rem;">
|
style="display: none; width: 30rem;">
|
||||||
|
</div>
|
||||||
<div class="input-group w-full gap-2">
|
<div class="input-group w-full gap-2">
|
||||||
<input class="name_rute" type="hidden" name="name_rute[]" value="rute">
|
<input class="name_rute" type="hidden" name="name_rute[]" value="rute">
|
||||||
<input id="inputRute" type="file" name="foto_rute[]"
|
<input id="inputRute" type="file" name="foto_rute[]"
|
||||||
class="file-input file-input-bordered w-full" accept="image/*" capture="camera"
|
class="file-input file-input-bordered w-full" accept="image/*"
|
||||||
onchange="previewImage(this, 'foto_rute-preview')">
|
capture="camera" onchange="previewImage(this, 'foto_rute-preview')">
|
||||||
<button type="button" id="btnCamera" class="btn btn-light"
|
<button type="button" id="btnCamera" class="btn btn-light"
|
||||||
data-modal-toggle="#cameraModal">
|
data-modal-toggle="#cameraModal">
|
||||||
<i class="ki-outline ki-abstract-33"></i> Camera
|
<i class="ki-outline ki-abstract-33"></i> Camera
|
||||||
@@ -168,17 +161,17 @@
|
|||||||
<span class="alert text-danger text-sm"></span>
|
<span class="alert text-danger text-sm"></span>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
<div id="inputContainerRute" style="margin-top: 10px">
|
<div id="inputContainerGerbang" style="margin-top: 10px">
|
||||||
<div class="flex w-full items-center justify-center gap-4 mb-4">
|
<div class="flex w-full items-center justify-center gap-4 mb-4">
|
||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
<span class="form-label">Foto Gerbang & Nama Perumahan</span>
|
<span class="form-label">Foto Gerbang & Nama Perumahan</span>
|
||||||
</label>
|
</label>
|
||||||
<div class="input-group w-full flex flex-col gap-2">
|
<div class="input-group w-full flex flex-col gap-2">
|
||||||
<input class="name_gerbang" type="hidden" name="name_gerbang" value="rute">
|
<input class="name_gerbang" type="hidden" name="name_gerbang" value="gerbang">
|
||||||
<img id="foto_gerbang-preview"
|
<img id="foto_gerbang-preview"
|
||||||
src="{{ isset($formFoto['gerbang']) ? asset('storage/' . $formFoto['gerbang']) : '' }}"
|
src="{{ isset($formFoto['foto_gerbang']) ? asset('storage/' . $formFoto['foto_gerbang']) : '' }}"
|
||||||
alt="Foto Gerbong" class="mt-2 max-w-full h-auto"
|
alt="Foto Gerbong" class="mt-2 max-w-full h-auto"
|
||||||
style="{{ isset($formFoto['gerbang']) ? '' : 'display: none;' }} width: 30rem;">
|
style="{{ isset($formFoto['foto_gerbang']) ? '' : 'display: none;' }} width: 30rem;">
|
||||||
<div class="input-group w-full flex gap-2">
|
<div class="input-group w-full flex gap-2">
|
||||||
<input id="inputRute" type="file" name="foto_gerbang"
|
<input id="inputRute" type="file" name="foto_gerbang"
|
||||||
class="file-input file-input-bordered w-full" accept="image/*" capture="camera"
|
class="file-input file-input-bordered w-full" accept="image/*" capture="camera"
|
||||||
@@ -192,23 +185,61 @@
|
|||||||
</div>
|
</div>
|
||||||
<span class="alert text-danger text-sm"></span>
|
<span class="alert text-danger text-sm"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="ruteLainnya" style="margin-top: 10px">
|
<div id="ruteLainnya" style="margin-top: 10px">
|
||||||
|
@if (isset($formFoto['foto_rute_lainnya']) && is_array($formFoto['foto_rute_lainnya']))
|
||||||
|
@foreach ($formFoto['foto_rute_lainnya'] as $Index => $photo)
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-5"
|
||||||
|
id="photoContainer">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Masukkan nama rute lainnya
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="flex flex-col lg:flex-row gap-2 w-full">
|
||||||
|
<div class="flex flex-wrap items-baseline px-2">
|
||||||
|
<input class="input" type="text" name="name_rute_lainnya[]"
|
||||||
|
value="{{ $photo['name_rute_lainnya'] }}">
|
||||||
|
</div>
|
||||||
|
<div class="input-group w-full flex flex-col gap-2">
|
||||||
|
<img id="foto_rute_lainnya-preview-"
|
||||||
|
src="{{ asset('storage/' . $photo['foto_rute_lainnya']) }}"
|
||||||
|
alt="Foto Rute " class="mt-2 max-w-full h-auto"
|
||||||
|
style="width: 30rem;">
|
||||||
|
<div class="input-group w-full flex gap-2">
|
||||||
|
<input type="file" name="foto_rute_lainnya[]"
|
||||||
|
class="file-input file-input-bordered w-full"
|
||||||
|
value="{{ $photo['foto_rute_lainnya'] }}" accept="image/*"
|
||||||
|
onchange="previewImage(this, 'foto_rute_lainnya-preview-{{ $index }}')">
|
||||||
|
<button type="button" id="btnCamera-{{ $index }}"
|
||||||
|
class="btn btn-light" data-modal-toggle="#cameraModal">
|
||||||
|
<i class="ki-outline ki-abstract-33"></i> Camera
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn btn-danger btn-sm delete-btn"
|
||||||
|
onclick="deletePhoto('{{ $index }}')">
|
||||||
|
<i class="ki-filled ki-trash"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button type="button" class="btn btn-primary btn-sm" id="btnAddMore" style="margin-top: 10px">
|
<button type="button" class="btn btn-primary btn-sm" id="btnAddMore" style="margin-top: 10px">
|
||||||
<i class="ki-outline ki-plus text-2sm"></i>
|
<i class="ki-outline ki-plus text-2sm"></i> Lainnya
|
||||||
Lainnya
|
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card bg-white rounded-lg shadow-md">
|
<div class="card bg-white rounded-lg shadow-md">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class=" text-white py-4 px-6 flex items-center justify-between">
|
<div class="text-white py-4 flex items-center justify-between">
|
||||||
<h1 class="text-md font-medium text-gray-900">Objek Jaminan</h1>
|
<h1 class="text-md font-medium text-gray-900">Objek Jaminan</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@php
|
||||||
|
$processedCategories = [];
|
||||||
|
@endphp
|
||||||
|
|
||||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||||
@if ($dokumen->jenisJaminan)
|
@if ($dokumen->jenisJaminan)
|
||||||
@@ -220,18 +251,19 @@
|
|||||||
value="{{ is_array($formKategori) ? implode(',', $formKategori) : $formKategori }}">
|
value="{{ is_array($formKategori) ? implode(',', $formKategori) : $formKategori }}">
|
||||||
<input type="hidden" name="type"
|
<input type="hidden" name="type"
|
||||||
value="{{ is_array($formKategori) ? implode(',', $formKategori) : $formKategori }}">
|
value="{{ is_array($formKategori) ? implode(',', $formKategori) : $formKategori }}">
|
||||||
|
|
||||||
@if (is_array($formKategori))
|
@if (is_array($formKategori))
|
||||||
@foreach ($formKategori as $kategori)
|
@foreach ($formKategori as $kategori)
|
||||||
@if ($kategori === 'tanah' || $kategori === 'bangunan')
|
@if (!in_array($kategori, $processedCategories))
|
||||||
@php
|
@php
|
||||||
|
$objekViews = [];
|
||||||
|
if ($kategori === 'tanah') {
|
||||||
$objekViews = [
|
$objekViews = [
|
||||||
['label' => 'Tampak Samping Kiri', 'index' => 0],
|
['label' => 'Tampak Samping Kiri', 'index' => 0],
|
||||||
['label' => 'Tampak Samping Kanan', 'index' => 1],
|
['label' => 'Tampak Samping Kanan', 'index' => 1],
|
||||||
['label' => 'Nomor Rumah/Unit', 'index' => 2],
|
['label' => 'Nomor Rumah/Unit', 'index' => 2],
|
||||||
];
|
];
|
||||||
@endphp
|
} elseif ($kategori === 'apartemen-kantor') {
|
||||||
@elseif ($kategori === 'apartemen-kantor')
|
|
||||||
@php
|
|
||||||
$objekViews = [
|
$objekViews = [
|
||||||
['label' => 'Tampak Loby', 'index' => 0],
|
['label' => 'Tampak Loby', 'index' => 0],
|
||||||
['label' => 'Tampak Lift', 'index' => 1],
|
['label' => 'Tampak Lift', 'index' => 1],
|
||||||
@@ -240,9 +272,7 @@
|
|||||||
['label' => 'Tampak Depan Unit', 'index' => 4],
|
['label' => 'Tampak Depan Unit', 'index' => 4],
|
||||||
['label' => 'Nomor Unit', 'index' => 5],
|
['label' => 'Nomor Unit', 'index' => 5],
|
||||||
];
|
];
|
||||||
@endphp
|
} elseif ($kategori === 'kendaraan') {
|
||||||
@elseif ($kategori === 'kendaraan')
|
|
||||||
@php
|
|
||||||
$objekViews = [
|
$objekViews = [
|
||||||
['label' => 'Tampak Depan Objek', 'index' => 0],
|
['label' => 'Tampak Depan Objek', 'index' => 0],
|
||||||
['label' => 'Tampak Kanan Objek', 'index' => 1],
|
['label' => 'Tampak Kanan Objek', 'index' => 1],
|
||||||
@@ -254,11 +284,12 @@
|
|||||||
['label' => 'Tampak Aksesoris Tambahan', 'index' => 7],
|
['label' => 'Tampak Aksesoris Tambahan', 'index' => 7],
|
||||||
['label' => 'Tampak Nomor Rangka', 'index' => 8],
|
['label' => 'Tampak Nomor Rangka', 'index' => 8],
|
||||||
['label' => 'Tampak Nomor Mesin', 'index' => 9],
|
['label' => 'Tampak Nomor Mesin', 'index' => 9],
|
||||||
['label' => 'Tampak Penilai dan Pendamping di lapangan', 'index' => 10],
|
[
|
||||||
|
'label' => 'Tampak Penilai dan Pendamping di lapangan',
|
||||||
|
'index' => 10,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
@endphp
|
} elseif ($kategori === 'kapal') {
|
||||||
@elseif ($kategori === 'kapal')
|
|
||||||
@php
|
|
||||||
$objekViews = [
|
$objekViews = [
|
||||||
['label' => 'Tampak Depan', 'index' => 0],
|
['label' => 'Tampak Depan', 'index' => 0],
|
||||||
['label' => 'Tampak Kanan', 'index' => 1],
|
['label' => 'Tampak Kanan', 'index' => 1],
|
||||||
@@ -270,53 +301,80 @@
|
|||||||
['label' => 'Tampak Aksesoris Tambahan', 'index' => 7],
|
['label' => 'Tampak Aksesoris Tambahan', 'index' => 7],
|
||||||
['label' => 'Tampak Nomor Rangka', 'index' => 8],
|
['label' => 'Tampak Nomor Rangka', 'index' => 8],
|
||||||
['label' => 'Tampak Nomor Mesin', 'index' => 9],
|
['label' => 'Tampak Nomor Mesin', 'index' => 9],
|
||||||
['label' => 'Tampak Penilai dan Pendamping di lapangan', 'index' => 10],
|
[
|
||||||
|
'label' => 'Tampak Penilai dan Pendamping di lapangan',
|
||||||
|
'index' => 10,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
} elseif ($kategori === 'mesin') {
|
||||||
|
$objekViews = [
|
||||||
|
['label' => 'Tampak Depan', 'index' => 0],
|
||||||
|
['label' => 'Tampak Kanan', 'index' => 1],
|
||||||
|
['label' => 'Tampak Samping Kiri', 'index' => 2],
|
||||||
|
['label' => 'Tampak Belakang', 'index' => 3],
|
||||||
|
['label' => 'Tampak Bagian Dalam', 'index' => 4],
|
||||||
|
['label' => 'Nomor Panel Instrument', 'index' => 5],
|
||||||
|
['label' => 'Tampak Hours Meters', 'index' => 6],
|
||||||
|
['label' => 'Tampak Aksesoris Tambahan', 'index' => 7],
|
||||||
|
['label' => 'Tampak Nomor Rangka', 'index' => 8],
|
||||||
|
['label' => 'Tampak Nomor Mesin', 'index' => 9],
|
||||||
|
[
|
||||||
|
'label' => 'Foto Tampak Aksesoris Tambahan Lainnya',
|
||||||
|
'index' => 10,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Tampak Penilai dan Pendamping di lapangan',
|
||||||
|
'index' => 10,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
@endphp
|
@endphp
|
||||||
@endif
|
|
||||||
|
|
||||||
|
|
||||||
@if (count($objekViews) > 0)
|
@if (count($objekViews) > 0)
|
||||||
@foreach ($objekViews as $view)
|
@foreach ($objekViews as $view)
|
||||||
<div class="flex flex-wrap gap-4 {{ !$loop->first ? 'mt-2' : '' }}">
|
<div class="flex flex-wrap gap-4 {{ !$loop->first ? 'mt-2' : '' }}">
|
||||||
<div class="flex w-full gap-4">
|
<div class="flex w-full gap-4">
|
||||||
<label class="form-label max-w-56"><span class="form-label">{{ $view['label'] }}</span>
|
<label class="form-label max-w-56"><span
|
||||||
</label>
|
class="form-label">{{ $view['label'] }}</span></label>
|
||||||
<input type="hidden" class="form-control" name="name_objek[]"
|
<input type="hidden" class="form-control"
|
||||||
value="{{ $view['label'] }}" />
|
name="name_objek[]" value="{{ $view['label'] }}" />
|
||||||
<div class="w-full grid gap-5">
|
<div class="w-full grid gap-5">
|
||||||
<img id="foto_object_jaminan_preview_{{ $view['index'] }}"
|
<img id="foto_object_jaminan_preview_{{ $view['index'] }}"
|
||||||
src="{{ isset($formFoto['object_jaminan'][$view['index']]['foto_object']) ? asset('storage/' . $formFoto['object_jaminan'][$view['index']]['foto_object']) : '' }}"
|
src="{{ isset($formFoto['object_jaminan'][$view['index']]['foto_object']) ? asset('storage/' . $formFoto['object_jaminan'][$view['index']]['foto_object']) : '' }}"
|
||||||
alt="{{ $view['label'] }}" class="mb-2 w-48 h-auto"
|
alt="{{ $view['label'] }}" class="mb-2 w-48 h-auto"
|
||||||
onchange="previewImage(this, 'foto_object_jaminan_preview_{{ $view['index'] }}')"
|
style="{{ isset($formFoto['object_jaminan'][$view['index']]['foto_object']) ? '' : 'display: none;' }} width: 30rem;">
|
||||||
style="{{ isset($formFoto['foto_object']) ? '' : 'display: none;' }} width: 30rem;">
|
|
||||||
|
|
||||||
<div class="input-group w-full flex gap-2">
|
<div class="input-group w-full flex gap-2">
|
||||||
<input type="file" name="foto_objek[]"
|
<input type="file" name="foto_objek[]"
|
||||||
class="file-input file-input-bordered w-full" accept="image/*" capture="camera">
|
class="file-input file-input-bordered w-full"
|
||||||
<button type="button" id="btnCamera" class="btn btn-light"
|
accept="image/*" capture="camera">
|
||||||
|
<button type="button" id="btnCamera"
|
||||||
|
class="btn btn-light"
|
||||||
data-modal-toggle="#cameraModal">
|
data-modal-toggle="#cameraModal">
|
||||||
<i class="ki-outline ki-abstract-33"></i> Camera
|
<i class="ki-outline ki-abstract-33"></i> Camera
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
<textarea name="deskripsi_objek[]" class="textarea" rows="3" placeholder="Deskripsi">{{ isset($formFoto['object_jaminan'][$view['index']]) ? str_replace($view['label'] . ': ', '', $formFoto['object_jaminan'][$view['index']]['deskripsi_objek']) : '' }}</textarea>
|
||||||
<textarea name="deskripsi_objek[]" class="textarea" rows="3" placeholder="Deskripsi">{{ isset($formFoto) && isset($formFoto['object_jaminan'][$view['index']]) ? str_replace($view['label'] . ': ', '', $formFoto['object_jaminan'][$view['index']]['deskripsi_objek']) : '' }}</textarea>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span class="alert text-danger text-sm"></span>
|
<span class="alert text-danger text-sm"></span>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
@endforeach
|
|
||||||
@endif
|
|
||||||
@endif
|
|
||||||
@endif
|
|
||||||
@endforeach
|
|
||||||
|
|
||||||
|
@php
|
||||||
|
$processedCategories[] = $kategori;
|
||||||
|
@endphp
|
||||||
|
@endif
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
@endif
|
||||||
|
@endif
|
||||||
|
@endforeach
|
||||||
|
|
||||||
<div class="flex flex-wrap gap-4 w-full">
|
<div class="flex flex-wrap gap-4 w-full">
|
||||||
<div class="w-full ">
|
<div class="w-full">
|
||||||
<div class=" text-white py-4 px-6 flex items-center justify-between w-full">
|
<div class="text-white py-4 flex items-center justify-between w-full">
|
||||||
<label class="form-label">
|
<label class="form-label">
|
||||||
<span class="form-label">Lantai</span>
|
<span class="form-label">Lantai</span>
|
||||||
</label>
|
</label>
|
||||||
@@ -333,7 +391,6 @@
|
|||||||
<span class="form-label">Foto Lantai 1</span>
|
<span class="form-label">Foto Lantai 1</span>
|
||||||
</label>
|
</label>
|
||||||
<div class="w-full grid gap-5">
|
<div class="w-full grid gap-5">
|
||||||
|
|
||||||
<img src="{{ asset('storage/' . old('foto_lantai_unit', $item['foto_lantai_unit'])) }}"
|
<img src="{{ asset('storage/' . old('foto_lantai_unit', $item['foto_lantai_unit'])) }}"
|
||||||
alt="Gambar Pendamping" style="width: 30rem;">
|
alt="Gambar Pendamping" style="width: 30rem;">
|
||||||
<input type="hidden" name="name_lantai_unit[]" value="lantai">
|
<input type="hidden" name="name_lantai_unit[]" value="lantai">
|
||||||
@@ -345,32 +402,28 @@
|
|||||||
<i class="ki-filled ki-trash"></i>
|
<i class="ki-filled ki-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<span id="inputLantaiError" class="alert text-danger text-sm"></span>
|
||||||
@error('foto_lantai_unit.*')
|
|
||||||
<span class="alert text-danger text-sm">{{ $message }}</span>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@else
|
@else
|
||||||
<div id="inputContainerLantai" class="w-full">
|
<div id="inputContainerLantai" class="w-full">
|
||||||
<div class="flex w-full items-center justify-center gap-4">
|
<div class="flex w-full items-center justify-center gap-4">
|
||||||
|
|
||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
<span class="form-label">Foto Lantai 1</span>
|
<span class="form-label">Foto Lantai 1</span>
|
||||||
</label>
|
</label>
|
||||||
<div class="input-group w-full flex gap-2">
|
<div class="input-group w-full flex gap-2">
|
||||||
<input type="hidden" name="name_lantai_unit[]" value="lantai">
|
<input type="hidden" name="name_lantai_unit[]" value="lantai">
|
||||||
<input id="inputLantai" type="file" name="foto_lantai_unit[]"
|
<input id="inputLantai" type="file" name="foto_lantai_unit[]"
|
||||||
class="file-input file-input-bordered w-full" accept="image/*" capture="camera">
|
class="file-input file-input-bordered w-full" accept="image/*"
|
||||||
|
capture="camera">
|
||||||
<button type="button" id="btnCamera" class="btn btn-light"
|
<button type="button" id="btnCamera" class="btn btn-light"
|
||||||
data-modal-toggle="#cameraModal">
|
data-modal-toggle="#cameraModal">
|
||||||
<i class="ki-outline ki-abstract-33"></i> Camera
|
<i class="ki-outline ki-abstract-33"></i> Camera
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="btn btn-danger btn-sm delete-btn" style="display: none;"
|
<button type="button" class="btn btn-danger btn-sm delete-btn"
|
||||||
id="btnDelete">
|
style="display: none;" id="btnDelete">
|
||||||
<i class="ki-filled ki-trash"></i>
|
<i class="ki-filled ki-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -387,34 +440,27 @@
|
|||||||
</label>
|
</label>
|
||||||
<div class="input-group w-full flex flex-col gap-2">
|
<div class="input-group w-full flex flex-col gap-2">
|
||||||
<input type="hidden" name="name_basement" value="basement">
|
<input type="hidden" name="name_basement" value="basement">
|
||||||
|
<img id="foto_basement_preview"
|
||||||
<img id="basement"
|
src="{{ isset($formFoto['foto_basement']) ? asset('storage/' . old('foto_basement', $formFoto['foto_basement'])) : '#' }}"
|
||||||
src="{{ isset($formFoto['basement']) ? asset('storage/' . old('basement', $formFoto['basement'])) : '#' }}"
|
alt="Gambar foto_basement" style="width: 30rem;"
|
||||||
alt="Gambar basement" style="width: 30rem;" onerror="this.style.display='none';"
|
onerror="this.style.display='none';"
|
||||||
onchange="previewImage(this, 'basement')">
|
onchange="previewImage(this, 'foto_basement_preview')">
|
||||||
<div class="input-group w-full flex gap-2">
|
<div class="input-group w-full flex gap-2">
|
||||||
<input id="inputLantai" type="file" name="foto_basement"
|
<input id="inputBasement" type="file" name="foto_basement"
|
||||||
class="file-input file-input-bordered w-full" accept="image/*" capture="camera">
|
class="file-input file-input-bordered w-full" accept="image/*" capture="camera">
|
||||||
<button type="button" id="btnCamera" class="btn btn-light"
|
<button type="button" id="btnCamera" class="btn btn-light" data-modal-toggle="#cameraModal">
|
||||||
data-modal-toggle="#cameraModal">
|
|
||||||
<i class="ki-outline ki-abstract-33"></i> Camera
|
<i class="ki-outline ki-abstract-33"></i> Camera
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="btn btn-danger btn-sm delete-btn" style="display: none;"
|
<button type="button" class="btn btn-danger btn-sm delete-btn" style="display: none;" id="btnDelete">
|
||||||
id="btnDelete">
|
|
||||||
<i class="ki-filled ki-trash"></i>
|
<i class="ki-filled ki-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@error('foto_lantai_unit.*')
|
<span id="alertBasement" class="alert text-danger text-sm"></span>
|
||||||
<span class="alert text-danger text-sm">{{ $message }}</span>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="lantaiLainnya" style="margin-top: 10px"></div>
|
||||||
<div id="lantaiLainnya" style="margin-top: 10px">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button type="button" class="btn btn-primary btn-sm" id="btnAddMoreObject"
|
<button type="button" class="btn btn-primary btn-sm" id="btnAddMoreObject"
|
||||||
style="margin-top: 10px">
|
style="margin-top: 10px">
|
||||||
@@ -426,66 +472,57 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card bg-white rounded-lg shadow-md">
|
<div class="card bg-white rounded-lg shadow-md">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class=" text-white py-4 px-6 flex items-center justify-between">
|
<div class="text-white py-4 flex items-center justify-between">
|
||||||
<h1 class="text-md font-medium text-gray-900">Lingkungan</h1>
|
<h1 class="text-md font-medium text-gray-900">Lingkungan</h1>
|
||||||
<button id="btnLingkungan" type="button" class="btn btn-primary btn-sm">
|
<button id="btnLingkungan" type="button" class="btn btn-primary btn-sm">
|
||||||
<i class="ki-filled ki-plus text-lg"></i>
|
<i class="ki-filled ki-plus text-lg"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if (isset($formFoto['lingkungan']))
|
@if (isset($formFoto['lingkungan']) && is_array($formFoto['lingkungan']) && count($formFoto['lingkungan']) > 0)
|
||||||
@foreach ($formFoto['lingkungan'] as $item)
|
@foreach ($formFoto['lingkungan'] as $key => $item)
|
||||||
<div id="inputContainerLingkungan" style="margin-top: 10px">
|
<div id="inputContainerLingkungan_{{ $key }}" style="margin-top: 10px">
|
||||||
<div class="flex w-full items-center justify-center gap-4 mb-4">
|
<div class="flex w-full items-center justify-center gap-4 mb-4">
|
||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
<span class="form-label">Lingkungan</span>
|
<span class="form-label">Lingkungan</span>
|
||||||
</label>
|
</label>
|
||||||
<div class="w-full grid gap-5">
|
<div class="w-full grid gap-5">
|
||||||
<img src="{{ asset('storage/' . old('foto_lingkungan', $item['foto_lingkungan'])) }}"
|
<img id="foto_lingkungan_preview_{{ $key }}"
|
||||||
alt="Gambar Pendamping" style="width: 30rem;">
|
src="{{ asset('storage/' . old('foto_lingkungan.' . $key, $item['foto_lingkungan'])) }}"
|
||||||
|
alt="Gambar Lingkungan" style="width: 30rem;">
|
||||||
<div class="input-group w-full flex gap-2">
|
|
||||||
<input type="hidden" name="name_lingkungan[]" value="lingkungan">
|
<input type="hidden" name="name_lingkungan[]" value="lingkungan">
|
||||||
<input id="inputLingkungan" type="file" name="foto_lingkungan[]"
|
<div class="input-group w-full flex gap-2">
|
||||||
|
<input id="inputLingkungan_{{ $key }}" type="file" name="foto_lingkungan[]"
|
||||||
class="file-input file-input-bordered w-full" accept="image/*" capture="camera">
|
class="file-input file-input-bordered w-full" accept="image/*" capture="camera">
|
||||||
<button type="button" id="btnCamera" class="btn btn-light"
|
<button type="button" id="btnCamera" class="btn btn-light" data-modal-toggle="#cameraModal">
|
||||||
data-modal-toggle="#cameraModal">
|
|
||||||
<i class="ki-outline ki-abstract-33"></i> Camera
|
<i class="ki-outline ki-abstract-33"></i> Camera
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="btn btn-danger btn-sm delete-btn" style="display: none;"
|
<button type="button" class="btn btn-danger btn-sm delete-btn" style="display: none;" id="btnDelete">
|
||||||
id="btnDelete">
|
|
||||||
<i class="ki-filled ki-trash"></i>
|
<i class="ki-filled ki-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span class="alert text-danger text-sm"></span>
|
<span class="alert text-danger text-sm"></span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@else
|
@else
|
||||||
<div id="inputContainerLingkungan" style="margin-top: 10px">
|
<div id="inputContainerLingkungan_0" style="margin-top: 10px">
|
||||||
<div class="flex w-full items-center justify-center gap-4 mb-4">
|
<div class="flex w-full items-center justify-center gap-4 mb-4">
|
||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
<span class="form-label">Lingkungan</span>
|
<span class="form-label">Lingkungan</span>
|
||||||
</label>
|
</label>
|
||||||
<div class="input-group w-full flex gap-2">
|
<div class="input-group w-full flex gap-2">
|
||||||
<input type="hidden" name="name_lingkungan[]" value="lingkungan">
|
<input type="hidden" name="name_lingkungan[]" value="lingkungan">
|
||||||
<input id="inputLingkungan" type="file" name="foto_lingkungan[]"
|
<input id="inputLingkungan_0" type="file" name="foto_lingkungan[]"
|
||||||
class="file-input file-input-bordered w-full" accept="image/*" capture="camera">
|
class="file-input file-input-bordered w-full" accept="image/*" capture="camera">
|
||||||
|
<button type="button" id="btnCamera" class="btn btn-light" data-modal-toggle="#cameraModal">
|
||||||
<button type="button" id="btnCamera" class="btn btn-light"
|
|
||||||
data-modal-toggle="#cameraModal">
|
|
||||||
<i class="ki-outline ki-abstract-33"></i> Camera
|
<i class="ki-outline ki-abstract-33"></i> Camera
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
<button type="button" class="btn btn-danger btn-sm delete-btn" style="display: none;" id="btnDelete">
|
||||||
<button type="button" class="btn btn-danger btn-sm delete-btn" style="display: none;"
|
|
||||||
id="btnDelete">
|
|
||||||
<i class="ki-filled ki-trash"></i>
|
<i class="ki-filled ki-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -494,12 +531,9 @@
|
|||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card bg-white rounded-lg shadow-md">
|
<div class="card bg-white rounded-lg shadow-md">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
<div class=" text-white py-4 flex items-center justify-between">
|
||||||
|
|
||||||
<div class=" text-white py-4 px-6 flex items-center justify-between">
|
|
||||||
<h1 class="text-md font-medium text-gray-900">Pendamping</h1>
|
<h1 class="text-md font-medium text-gray-900">Pendamping</h1>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-top: 5px">
|
<div style="margin-top: 5px">
|
||||||
@@ -550,9 +584,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
{{--
|
|
||||||
</div>
|
|
||||||
</div> --}}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@@ -573,7 +606,7 @@
|
|||||||
<canvas id="canvas" class="hidden w-full h-auto"></canvas>
|
<canvas id="canvas" class="hidden w-full h-auto"></canvas>
|
||||||
<canvas id="drawingCanvas" class="hidden absolute top-0 left-0 w-full h-full"></canvas>
|
<canvas id="drawingCanvas" class="hidden absolute top-0 left-0 w-full h-full"></canvas>
|
||||||
<div id="textOverlay" class="position-absolute top-0 left-0 w-100 h-100 pointer-events-none">
|
<div id="textOverlay" class="position-absolute top-0 left-0 w-100 h-100 pointer-events-none">
|
||||||
<!-- Text elements will be added here dynamically -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -636,10 +669,9 @@
|
|||||||
<button id="backButton" class="btn btn-warning btn-sm">
|
<button id="backButton" class="btn btn-warning btn-sm">
|
||||||
<i class="ki-outline ki-arrow-left"></i> Kembali
|
<i class="ki-outline ki-arrow-left"></i> Kembali
|
||||||
</button>
|
</button>
|
||||||
<button id="saveButton" class="btn btn-success btn-sm">
|
<button id="saveButton" class="btn btn-success btn-sm" data-modal-dismiss="true">
|
||||||
<i class="ki-outline ki-check"></i> Simpan
|
<i class="ki-outline ki-check"></i> Simpan
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -652,25 +684,14 @@
|
|||||||
|
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
<script>
|
<script>
|
||||||
function previewImage(input, previewId) {
|
|
||||||
if (input.files && input.files[0]) {
|
|
||||||
var reader = new FileReader();
|
|
||||||
reader.onload = function(e) {
|
|
||||||
$('#' + previewId).attr('src', e.target.result).show();
|
|
||||||
}
|
|
||||||
reader.readAsDataURL(input.files[0]);
|
|
||||||
} else {
|
|
||||||
$('#' + previewId).hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function submitFoto() {
|
function submitFoto() {
|
||||||
const formElement = $('#formFoto')[0];
|
const formElement = $('#formFoto')[0];
|
||||||
const formData = new FormData(formElement);
|
const formData = new FormData(formElement);
|
||||||
for (const [key, value] of formData.entries()) {
|
// for (const [key, value] of formData.entries()) {
|
||||||
console.log(`Key: ${key}, Value: ${value}`);
|
// console.log(`Key: ${key}, Value: ${value}`);
|
||||||
}
|
// }
|
||||||
|
|
||||||
// Disable the button and show the spinner
|
// Disable the button and show the spinner
|
||||||
$('#saveButtonFoto').prop('disabled', true);
|
$('#saveButtonFoto').prop('disabled', true);
|
||||||
@@ -680,6 +701,7 @@
|
|||||||
$.ajax({
|
$.ajax({
|
||||||
url: '{{ route('surveyor.storeFoto') }}',
|
url: '{{ route('surveyor.storeFoto') }}',
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
|
|
||||||
data: formData,
|
data: formData,
|
||||||
processData: false,
|
processData: false,
|
||||||
contentType: false,
|
contentType: false,
|
||||||
@@ -691,7 +713,7 @@
|
|||||||
window.location.href =
|
window.location.href =
|
||||||
'{{ route('surveyor.show', ['id' => $permohonan->id]) }}?form=foto';
|
'{{ route('surveyor.show', ['id' => $permohonan->id]) }}?form=foto';
|
||||||
}
|
}
|
||||||
console.log(response);
|
|
||||||
},
|
},
|
||||||
error: function(xhr, status, error) {
|
error: function(xhr, status, error) {
|
||||||
let errors = xhr.responseJSON?.errors;
|
let errors = xhr.responseJSON?.errors;
|
||||||
@@ -750,15 +772,24 @@
|
|||||||
<div class="flex flex-wrap items-baseline px-2">
|
<div class="flex flex-wrap items-baseline px-2">
|
||||||
<input class="input" type="text" name="name_${inputName}[]">
|
<input class="input" type="text" name="name_${inputName}[]">
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class=" w-full flex flex-col gap-2">
|
||||||
|
<img id="foto_${inputName}-preview"
|
||||||
|
src="{{ isset($formFoto['gerbang']) ? asset('storage/' . $formFoto['gerbang']) : '' }}"
|
||||||
|
alt="Foto Gerbong" class="mt-2 max-w-full h-auto"
|
||||||
|
style="{{ isset($formFoto['gerbang']) ? '' : 'display: none;' }} width: 30rem;">
|
||||||
|
|
||||||
|
|
||||||
<div class="input-group w-full flex gap-2">
|
<div class="input-group w-full flex gap-2">
|
||||||
<input id="inputPendamping" type="file" name="foto_${inputName}"
|
<input id="inputLainnya" type="file" name="foto_${inputName}[]"
|
||||||
class="file-input file-input-bordered w-full" accept="image/*" capture="camera">
|
class="file-input file-input-bordered w-full" accept="image/*" capture="camera"
|
||||||
|
onchange="previewImage(this, 'foto_${inputName}-preview')"
|
||||||
|
>
|
||||||
<button type="button" id="btnCamera" class="btn btn-light"
|
<button type="button" id="btnCamera" class="btn btn-light"
|
||||||
data-modal-toggle="#cameraModal">
|
data-modal-toggle="#cameraModal">
|
||||||
<i class="ki-outline ki-abstract-33"></i> Camera
|
<i class="ki-outline ki-abstract-33"></i> Camera
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="btn btn-danger btn-sm delete-button">
|
<button type="button" class="btn btn-danger btn-sm delete-button">
|
||||||
<i class="ki-filled ki-trash"></i>
|
<i class="ki-filled ki-trash"></i>
|
||||||
@@ -789,13 +820,13 @@
|
|||||||
.draggable-text:hover {
|
.draggable-text:hover {
|
||||||
outline: 1px dashed #666;
|
outline: 1px dashed #666;
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
document.head.appendChild(style);
|
document.head.appendChild(style);
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
// Initialize camera editor
|
|
||||||
const editor = new UniversalCameraEditor();
|
|
||||||
|
|
||||||
// Get all camera buttons
|
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
const editor = new UniversalCameraEditor();
|
||||||
const cameraButtons = document.querySelectorAll('#btnCamera');
|
const cameraButtons = document.querySelectorAll('#btnCamera');
|
||||||
const modal = document.getElementById('cameraModal');
|
const modal = document.getElementById('cameraModal');
|
||||||
const closeModal = document.getElementById('closeModal');
|
const closeModal = document.getElementById('closeModal');
|
||||||
@@ -803,9 +834,6 @@
|
|||||||
// Current input field to update
|
// Current input field to update
|
||||||
let currentInputField = null;
|
let currentInputField = null;
|
||||||
|
|
||||||
// Confirm text button
|
|
||||||
|
|
||||||
|
|
||||||
// Handle camera button click
|
// Handle camera button click
|
||||||
cameraButtons.forEach(button => {
|
cameraButtons.forEach(button => {
|
||||||
button.addEventListener('click', function(e) {
|
button.addEventListener('click', function(e) {
|
||||||
@@ -818,99 +846,42 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
closeModal.addEventListener('click', function() {
|
closeModal.addEventListener('click', function() {
|
||||||
modal.classList.add('hidden');
|
modal.classList.add('hidden');
|
||||||
editor.closeCamera();
|
editor.closeCamera();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Override save function
|
// Override save function
|
||||||
editor.saveAndUpload = async function() {
|
editor.saveAndUpload = async function() {
|
||||||
try {
|
try {
|
||||||
// Membuat canvas akhir
|
// Create final canvas
|
||||||
const finalCanvas = document.createElement('canvas');
|
const finalCanvas = document.createElement('canvas');
|
||||||
finalCanvas.width = this.canvas.width;
|
finalCanvas.width = this.canvas.width;
|
||||||
finalCanvas.height = this.canvas.height;
|
finalCanvas.height = this.canvas.height;
|
||||||
const ctx = finalCanvas.getContext('2d');
|
const ctx = finalCanvas.getContext('2d');
|
||||||
|
|
||||||
// Menggambar foto asli dan hasil edit di canvas akhir
|
// Draw original photo and edited result on final canvas
|
||||||
ctx.drawImage(this.canvas, 0, 0);
|
ctx.drawImage(this.canvas, 0, 0);
|
||||||
ctx.drawImage(this.drawingCanvas, 0, 0);
|
ctx.drawImage(this.drawingCanvas, 0, 0);
|
||||||
|
|
||||||
// Konversi canvas ke Blob dan buat file
|
// Convert canvas to Blob and create file
|
||||||
finalCanvas.toBlob(async (blob) => {
|
finalCanvas.toBlob(async (blob) => {
|
||||||
const file = new File([blob], `camera_photo_${Date.now()}.jpg`, {
|
const file = new File([blob], `camera_photo_${Date.now()}.jpg`, {
|
||||||
type: "image/jpeg"
|
type: "image/jpeg"
|
||||||
});
|
});
|
||||||
|
|
||||||
// Membuat FileList dan memperbarui field input
|
// Create FileList and update input field
|
||||||
const dataTransfer = new DataTransfer();
|
const dataTransfer = new DataTransfer();
|
||||||
dataTransfer.items.add(file);
|
dataTransfer.items.add(file);
|
||||||
|
|
||||||
if (currentInputField) {
|
if (currentInputField) {
|
||||||
currentInputField.files = dataTransfer.files;
|
currentInputField.files = dataTransfer.files;
|
||||||
|
|
||||||
// Trigger event "change" untuk memperbarui tampilan
|
|
||||||
const event = new Event('change', {
|
const event = new Event('change', {
|
||||||
bubbles: true
|
bubbles: true
|
||||||
});
|
});
|
||||||
currentInputField.dispatchEvent(event);
|
currentInputField.dispatchEvent(event);
|
||||||
|
|
||||||
// Tampilkan preview jika container preview ada
|
|
||||||
const previewContainer = currentInputField.closest('.input-group')
|
const previewContainer = currentInputField.closest('.input-group')
|
||||||
.querySelector('.preview-container');
|
.querySelector('.preview-container');
|
||||||
if (previewContainer) {
|
|
||||||
const img = document.createElement('img');
|
|
||||||
img.src = URL.createObjectURL(file);
|
|
||||||
img.className = 'w-full h-32 object-cover rounded-lg';
|
|
||||||
previewContainer.innerHTML = ''; // Bersihkan container preview
|
|
||||||
previewContainer.appendChild(img); // Tambah gambar preview
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Menutup modal
|
|
||||||
const modal = document.getElementById('cameraModal');
|
|
||||||
modal.classList.remove('show');
|
|
||||||
modal.style.display = 'none';
|
|
||||||
modal.setAttribute('aria-hidden', 'true');
|
|
||||||
document.body.classList.remove('modal-open');
|
|
||||||
|
|
||||||
// Menghapus backdrop modal jika ada
|
|
||||||
const backdrop = document.querySelector('.modal-backdrop');
|
|
||||||
if (backdrop) {
|
|
||||||
backdrop.remove();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hentikan stream kamera
|
|
||||||
if (editor.stream) {
|
|
||||||
editor.stream.getTracks().forEach(track => track.stop());
|
|
||||||
editor.stream = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Mengatur ulang ke kondisi awal (reset kamera)
|
|
||||||
editor.closeCamera()
|
|
||||||
|
|
||||||
}, 'image/jpeg', 0.8);
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Error saving photo:', error);
|
|
||||||
alert('Error saving photo. Please try again.');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Preview for regular file input change
|
|
||||||
document.addEventListener('change', function(e) {
|
|
||||||
if (e.target && e.target.type === 'file') {
|
|
||||||
const file = e.target.files[0];
|
|
||||||
if (file && file.type.startsWith('image/')) {
|
|
||||||
const previewContainer = e.target.closest('.input-group').querySelector('.preview-container');
|
|
||||||
if (previewContainer) {
|
if (previewContainer) {
|
||||||
const img = document.createElement('img');
|
const img = document.createElement('img');
|
||||||
img.src = URL.createObjectURL(file);
|
img.src = URL.createObjectURL(file);
|
||||||
@@ -919,9 +890,39 @@
|
|||||||
previewContainer.appendChild(img);
|
previewContainer.appendChild(img);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
// Close modal
|
||||||
|
|
||||||
|
modal.classList.remove('show');
|
||||||
|
modal.style.display = 'none';
|
||||||
|
modal.setAttribute('aria-hidden', 'true');
|
||||||
|
// document.body.classList.remove('modal-open');
|
||||||
|
|
||||||
|
|
||||||
|
// Remove modal backdrop if exists
|
||||||
|
const backdrop = document.querySelector('.modal-backdrop');
|
||||||
|
if (backdrop) {
|
||||||
|
backdrop.remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Stop camera stream
|
||||||
|
if (editor.stream) {
|
||||||
|
editor.stream.getTracks().forEach(track => track.stop());
|
||||||
|
editor.stream = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reset camera to initial state
|
||||||
|
editor.closeCamera();
|
||||||
|
|
||||||
|
// Reset scroll if needed
|
||||||
|
window.scrollTo(0, 0); // Adjust as necessary
|
||||||
|
}, 'image/jpeg', 0.8);
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error saving photo:', error);
|
||||||
|
alert('Error saving photo. Please try again.');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
// Handle escape key
|
// Handle escape key
|
||||||
@@ -941,25 +942,17 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
|
|
||||||
// Generic function to handle adding new input and delete functionality
|
|
||||||
function setupInputHandlers(containerId, buttonId, labelText, inputDataClass, buttonDeleteClass) {
|
function setupInputHandlers(containerId, buttonId, labelText, inputDataClass, buttonDeleteClass) {
|
||||||
const inputContainer = document.getElementById(containerId);
|
const inputContainer = document.getElementById(containerId);
|
||||||
const addButton = document.getElementById(buttonId);
|
const addButton = document.getElementById(buttonId);
|
||||||
|
|
||||||
// Function to update the labels with the correct number
|
|
||||||
function updateLabels() {
|
function updateLabels() {
|
||||||
const labels = inputContainer.querySelectorAll('.form-label span');
|
const labels = inputContainer.querySelectorAll('.form-label span');
|
||||||
labels.forEach((label, index) => {
|
labels.forEach((label, index) => {
|
||||||
label.textContent = `${labelText} ${index + 1}`;
|
label.textContent = `${labelText} ${index + 1}`;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function to show or hide delete buttons
|
|
||||||
function handleDeleteButtons() {
|
function handleDeleteButtons() {
|
||||||
const deleteBtns = inputContainer.querySelectorAll(`.${buttonDeleteClass}`);
|
const deleteBtns = inputContainer.querySelectorAll(`.${buttonDeleteClass}`);
|
||||||
deleteBtns.forEach(btn => {
|
deleteBtns.forEach(btn => {
|
||||||
@@ -967,46 +960,64 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function to create a new input
|
|
||||||
function createNewInput() {
|
function createNewInput() {
|
||||||
// Clone the first child (input group) and reset input values
|
|
||||||
const newDiv = inputContainer.children[0].cloneNode(true);
|
const newDiv = inputContainer.children[0].cloneNode(true);
|
||||||
|
|
||||||
// Clear the input file value
|
|
||||||
const inputFile = newDiv.querySelector(`.${inputDataClass}`);
|
const inputFile = newDiv.querySelector(`.${inputDataClass}`);
|
||||||
|
inputFile.id = `inputRute-${inputContainer.children.length}`;
|
||||||
|
|
||||||
|
// Reset input file value
|
||||||
if (inputFile) {
|
if (inputFile) {
|
||||||
inputFile.value = ''; // Ensure the input field exists before resetting
|
inputFile.value = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find and set up the delete button for the new input group
|
// Update the camera button to set currentInputField
|
||||||
|
const cameraButton = newDiv.querySelector('#btnCamera');
|
||||||
|
if (cameraButton) {
|
||||||
|
cameraButton.addEventListener('click', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
currentInputField = inputFile; // Set current input field to the new input
|
||||||
|
modal.classList.remove('hidden');
|
||||||
|
modal.classList.add('modal-open');
|
||||||
|
editor.startCamera();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add delete button functionality
|
||||||
const deleteBtn = newDiv.querySelector(`.${buttonDeleteClass}`);
|
const deleteBtn = newDiv.querySelector(`.${buttonDeleteClass}`);
|
||||||
if (deleteBtn) { // Ensure the delete button exists before adding the listener
|
if (deleteBtn) {
|
||||||
deleteBtn.addEventListener('click', function() {
|
deleteBtn.addEventListener('click', function() {
|
||||||
inputContainer.removeChild(newDiv);
|
inputContainer.removeChild(newDiv);
|
||||||
handleDeleteButtons();
|
handleDeleteButtons();
|
||||||
updateLabels();
|
updateLabels();
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
console.error('Delete button not found in the cloned element.');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add margin to new inputs
|
// Update preview container
|
||||||
newDiv.style.marginTop = '10px';
|
const previewContainer = document.createElement('div');
|
||||||
|
previewContainer.className = 'preview-container';
|
||||||
|
|
||||||
// Append the new input group
|
const img = document.createElement('img');
|
||||||
|
img.id = `foto_rute-preview-${inputFile.id}`;
|
||||||
|
img.src = '';
|
||||||
|
img.className = 'mt-2 h-auto';
|
||||||
|
img.style.display = 'none';
|
||||||
|
img.style.width = '30rem';
|
||||||
|
previewContainer.appendChild(img);
|
||||||
|
|
||||||
|
// Append preview container to the new input group
|
||||||
|
const inputGroup = newDiv.querySelector('.input-group');
|
||||||
|
inputGroup.appendChild(previewContainer);
|
||||||
|
|
||||||
|
newDiv.style.marginTop = '10px';
|
||||||
inputContainer.appendChild(newDiv);
|
inputContainer.appendChild(newDiv);
|
||||||
updateLabels();
|
updateLabels();
|
||||||
handleDeleteButtons();
|
handleDeleteButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add event listener for the "Add" button
|
if (addButton) {
|
||||||
if (addButton) { // Ensure the add button exists
|
|
||||||
addButton.addEventListener('click', createNewInput);
|
addButton.addEventListener('click', createNewInput);
|
||||||
} else {
|
|
||||||
console.error('Add button not found.');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize delete button on the first input
|
|
||||||
const firstDeleteBtn = inputContainer.children[0].querySelector(`.${buttonDeleteClass}`);
|
const firstDeleteBtn = inputContainer.children[0].querySelector(`.${buttonDeleteClass}`);
|
||||||
if (firstDeleteBtn) {
|
if (firstDeleteBtn) {
|
||||||
firstDeleteBtn.addEventListener('click', function() {
|
firstDeleteBtn.addEventListener('click', function() {
|
||||||
@@ -1016,20 +1027,20 @@
|
|||||||
updateLabels();
|
updateLabels();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
console.error('Initial delete button not found.');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initial update of the labels
|
|
||||||
updateLabels();
|
updateLabels();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Call the function for both "Rute Menuju Lokasi" and "Lantai"
|
|
||||||
setupInputHandlers('inputContainerRute', 'btnRute', 'Foto Rute Menuju Lokasi', 'file-input',
|
setupInputHandlers('inputContainerRute', 'btnRute', 'Foto Rute Menuju Lokasi', 'file-input',
|
||||||
'delete-btn');
|
'delete-btn');
|
||||||
setupInputHandlers('inputContainerLantai', 'btnLantai', 'Foto Lantai', 'file-input', 'delete-btn');
|
setupInputHandlers('inputContainerLantai', 'btnLantai', 'Foto Lantai', 'file-input', 'delete-btn');
|
||||||
setupInputHandlers('inputContainerLingkungan', 'btnLingkungan', 'linkungan', 'file-input',
|
setupInputHandlers('inputContainerLingkungan', 'btnLingkungan', 'Lingkungan', 'file-input',
|
||||||
'delete-btn');
|
'delete-btn');
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@endpush
|
@endpush
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -45,15 +45,14 @@
|
|||||||
<input type="text" class="input form-control" name="debitur_perwakilan[]"
|
<input type="text" class="input form-control" name="debitur_perwakilan[]"
|
||||||
value="{{ old('debitur_perwakilan', isset($forminspeksi['debitur_perwakilan']) ? implode(', ', $forminspeksi['debitur_perwakilan']) : '') }}"
|
value="{{ old('debitur_perwakilan', isset($forminspeksi['debitur_perwakilan']) ? implode(', ', $forminspeksi['debitur_perwakilan']) : '') }}"
|
||||||
placeholder="Masukkan Debitur/Perwakilan" />
|
placeholder="Masukkan Debitur/Perwakilan" />
|
||||||
<button type="button" class="btn btn-danger btn-outline btn-xs delete-button"
|
<button type="button" class="btn btn-danger btn-outline btn-xs remove-btn"
|
||||||
style="display: none">Hapus</button>
|
style="display: none">Hapus</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button id="addPerwakilan" type="button" class="btn-md btn btn-primary">
|
<button onclick="addClonableItem('perwakilan', 'perwakilan')" type="button" class="btn-md btn btn-primary">
|
||||||
<i class="ki-filled ki-plus"></i>
|
<i class="ki-filled ki-plus"></i>
|
||||||
</button>
|
</button>
|
||||||
<em id="error-debitur_perwakilan" class="alert text-danger text-sm"></em>
|
<em id="error-debitur_perwakilan" class="alert text-danger text-sm"></em>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -101,22 +100,26 @@
|
|||||||
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
|
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
|
||||||
<label class="form-label flex items-center gap-3 text-nowrap">
|
<label class="form-label flex items-center gap-3 text-nowrap">
|
||||||
<input onclick="toggleJenisAsset('jenis_asset')" type="radio" class="radio"
|
<input onclick="toggleJenisAsset('jenis_asset')" type="radio" class="radio"
|
||||||
name="jenis_asset" value="sesuai" {{ old('jenis_asset', $forminspeksi['jenis_asset'] ?? '') == 'sesuai' ? 'checked' : '' }}>
|
name="jenis_asset" value="sesuai"
|
||||||
|
{{ old('jenis_asset', $forminspeksi['jenis_asset'] ?? '') == 'sesuai' ? 'checked' : '' }}>
|
||||||
<span class="ml-2">Ya</span>
|
<span class="ml-2">Ya</span>
|
||||||
</label>
|
</label>
|
||||||
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
||||||
<input onclick="toggleJenisAsset('jenis_asset')" type="radio" class="radio"
|
<input onclick="toggleJenisAsset('jenis_asset')" type="radio" class="radio"
|
||||||
name="jenis_asset" value="tidak sesuai" {{ old('jenis_asset', $forminspeksi['jenis_asset'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
|
name="jenis_asset" value="tidak sesuai"
|
||||||
|
{{ old('jenis_asset', $forminspeksi['jenis_asset'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
|
||||||
<span class="ml-2">Tidak</span>
|
<span class="ml-2">Tidak</span>
|
||||||
</label>
|
</label>
|
||||||
<!-- Select dropdown untuk "Tidak Sesuai" -->
|
<!-- Select dropdown untuk "Tidak Sesuai" -->
|
||||||
<select id="jenis_asset"
|
<select id="jenis_asset"
|
||||||
class="input w-full @error('jenis_asset_tidak_sesuai') border-danger bg-danger-light @enderror"
|
class="input w-full @error('jenis_asset_tidak_sesuai') border-danger bg-danger-light @enderror"
|
||||||
name="jenis_asset_tidak_sesuai" style="{{ old('jenis_asset', $forminspeksi['jenis_asset'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
|
name="jenis_asset_tidak_sesuai"
|
||||||
|
style="{{ old('jenis_asset', $forminspeksi['jenis_asset'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
|
||||||
<option value="">Select Jenis asset</option>
|
<option value="">Select Jenis asset</option>
|
||||||
@if (isset($arahMataAngin))
|
@if (isset($arahMataAngin))
|
||||||
@foreach ($arahMataAngin as $item)
|
@foreach ($arahMataAngin as $item)
|
||||||
<option value="{{ $item->name }}" {{ old('jenis_asset_tidak_sesuai', $forminspeksi['jenis_asset_tidak_sesuai'] ?? '') == $item->name ? 'selected' : '' }}>
|
<option value="{{ $item->name }}"
|
||||||
|
{{ old('jenis_asset_tidak_sesuai', $forminspeksi['jenis_asset_tidak_sesuai'] ?? '') == $item->name ? 'selected' : '' }}>
|
||||||
{{ $item->name }}
|
{{ $item->name }}
|
||||||
</option>
|
</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -134,11 +137,7 @@
|
|||||||
|
|
||||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||||
<span class="text-2sm text-gray-700">
|
<span class="text-2sm text-gray-700">
|
||||||
{{ $dokumen->pemilik->address ?? '' }},
|
{{ formatAlamat($dokumen) }}
|
||||||
<br> {{ $dokumen->pemilik->village->name ?? '' }},
|
|
||||||
{{ $dokumen->pemilik->district->name ?? '' }}, {{ $dokumen->pemilik->city->name ?? '' }},
|
|
||||||
{{ $dokumen->pemilik->province->name ?? '' }} -
|
|
||||||
{{ $dokumen->pemilik->village->postal_code ?? '' }}
|
|
||||||
</span>
|
</span>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|
||||||
@@ -146,22 +145,25 @@
|
|||||||
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
|
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
|
||||||
<label class="form-label flex items-center gap-3 text-nowrap">
|
<label class="form-label flex items-center gap-3 text-nowrap">
|
||||||
<input onclick="toggleTidakSesuai('alamat_sesuai','alamat_tidak_sesuai')" type="radio"
|
<input onclick="toggleTidakSesuai('alamat_sesuai','alamat_tidak_sesuai')" type="radio"
|
||||||
class="radio" name="alamat_sesuai" value="sesuai" {{ old('alamat_sesuai', $forminspeksi['alamat_sesuai'] ?? '') == 'sesuai' ? 'checked' : '' }}>
|
class="radio" name="alamat_sesuai" value="sesuai"
|
||||||
|
{{ old('alamat_sesuai', $forminspeksi['alamat_sesuai'] ?? '') == 'sesuai' ? 'checked' : '' }}>
|
||||||
<span class="ml-2">Ya</span>
|
<span class="ml-2">Ya</span>
|
||||||
</label>
|
</label>
|
||||||
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
||||||
<input onclick="toggleTidakSesuai('alamat_sesuai','alamat_tidak_sesuai')" type="radio"
|
<input onclick="toggleTidakSesuai('alamat_sesuai','alamat_tidak_sesuai')" type="radio"
|
||||||
class="radio" name="alamat_sesuai" value="tidak sesuai" {{ old('alamat_sesuai', $forminspeksi['alamat_sesuai'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
|
class="radio" name="alamat_sesuai" value="tidak sesuai"
|
||||||
|
{{ old('alamat_sesuai', $forminspeksi['alamat_sesuai'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
|
||||||
<span class="ml-2">Tidak</span>
|
<span class="ml-2">Tidak</span>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<input type="text" name="alamat_tidak_sesuai" id="alamat_tidak_sesuai"
|
<input type="text" name="alamat_tidak_sesuai" id="alamat_tidak_sesuai"
|
||||||
class="input w-full" placeholder="Masukan jenis asset Tanah"
|
class="input w-full" placeholder="Masukan jenis asset Tanah"
|
||||||
value="{{ old('alamat_tidak_sesuai', $forminspeksi['alamat_tidak_sesuai'] ?? '') }}" style="{{ old('alamat_sesuai', $forminspeksi['alamat_sesuai'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
|
value="{{ old('alamat_tidak_sesuai', $forminspeksi['alamat_tidak_sesuai'] ?? '') }}"
|
||||||
|
style="{{ old('alamat_sesuai', $forminspeksi['alamat_sesuai'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
|
||||||
</div>
|
</div>
|
||||||
<em id="error-alamat" class="alert text-danger text-sm"></em>
|
<em id="error-alamat" class="alert text-danger text-sm"></em>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid gap-2 mt-5" >
|
<div class="grid gap-2 mt-5">
|
||||||
@php
|
@php
|
||||||
|
|
||||||
$inputDataLoaksi = [];
|
$inputDataLoaksi = [];
|
||||||
@@ -171,7 +173,8 @@
|
|||||||
'index' => 0,
|
'index' => 0,
|
||||||
'name' => 'nama_jalan',
|
'name' => 'nama_jalan',
|
||||||
'value' => old(
|
'value' => old(
|
||||||
'nama_jalan', isset($forminspeksi['nama_jalan']) ? $forminspeksi['nama_jalan'] : '',
|
'nama_jalan',
|
||||||
|
isset($forminspeksi['nama_jalan']) ? $forminspeksi['nama_jalan'] : '',
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
||||||
@@ -180,32 +183,36 @@
|
|||||||
'index' => 3,
|
'index' => 3,
|
||||||
'name' => 'desa_kelurahan',
|
'name' => 'desa_kelurahan',
|
||||||
'value' => old(
|
'value' => old(
|
||||||
'desa_kelurahan', isset($forminspeksi['desa_kelurahan']) ? $forminspeksi['desa_kelurahan'] : '',
|
'desa_kelurahan',
|
||||||
)
|
isset($forminspeksi['desa_kelurahan']) ? $forminspeksi['desa_kelurahan'] : '',
|
||||||
|
),
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'label' => 'Kecamatan',
|
'label' => 'Kecamatan',
|
||||||
'index' => 4,
|
'index' => 4,
|
||||||
'name' => 'kecamatan',
|
'name' => 'kecamatan',
|
||||||
'value' => old(
|
'value' => old(
|
||||||
'kecamatan', isset($forminspeksi['kecamatan']) ? $forminspeksi['kecamatan'] : '',
|
'kecamatan',
|
||||||
)
|
isset($forminspeksi['kecamatan']) ? $forminspeksi['kecamatan'] : '',
|
||||||
|
),
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'label' => 'Kota/Kabupaten',
|
'label' => 'Kota/Kabupaten',
|
||||||
'index' => 5,
|
'index' => 5,
|
||||||
'name' => 'kota_kabupaten',
|
'name' => 'kota_kabupaten',
|
||||||
'value' => old(
|
'value' => old(
|
||||||
'kota_kabupaten', isset($forminspeksi['kota_kabupaten']) ? $forminspeksi['kota_kabupaten'] : '',
|
'kota_kabupaten',
|
||||||
)
|
isset($forminspeksi['kota_kabupaten']) ? $forminspeksi['kota_kabupaten'] : '',
|
||||||
|
),
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'label' => 'Provinsi',
|
'label' => 'Provinsi',
|
||||||
'index' => 6,
|
'index' => 6,
|
||||||
'name' => 'provinsi',
|
'name' => 'provinsi',
|
||||||
'value' => old(
|
'value' => old(
|
||||||
'provinsi', isset($forminspeksi['provinsi']) ? $forminspeksi['provinsi'] : '',
|
'provinsi',
|
||||||
)
|
isset($forminspeksi['provinsi']) ? $forminspeksi['provinsi'] : '',
|
||||||
|
),
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -220,10 +227,7 @@
|
|||||||
<input type="text" name="{{ $item['name'] }}" class="input"
|
<input type="text" name="{{ $item['name'] }}" class="input"
|
||||||
placeholder="Masukkan {{ $item['label'] }}"
|
placeholder="Masukkan {{ $item['label'] }}"
|
||||||
value="{{ $item['value'] }}">
|
value="{{ $item['value'] }}">
|
||||||
|
<em id="error-{{ $item['name'] }}" class="alert text-danger text-sm"></em>
|
||||||
@error($item['name'])
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -253,7 +257,8 @@
|
|||||||
<input class="input" type="text" name="kordinat_lng" id="lng"
|
<input class="input" type="text" name="kordinat_lng" id="lng"
|
||||||
value="{{ old('kordinat_lng') }}" @readonly(true)>
|
value="{{ old('kordinat_lng') }}" @readonly(true)>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="btn btn-sm btn-primary" onclick="getUserLocation()">Ambil Kordinat</button>
|
<button type="button" class="btn btn-sm btn-primary" onclick="getUserLocation()">Ambil
|
||||||
|
Kordinat</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -261,43 +266,122 @@
|
|||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
<div data-accordion="true">
|
||||||
|
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||||
|
<div class="accordion-item [&:not(:last-child)]:border-b border-b-gray-200" data-accordion-item="true"
|
||||||
|
id="accordion_detail_jaminan">
|
||||||
|
<button class="accordion-toggle py-4 group "
|
||||||
|
data-accordion-toggle="#accordion_detail_jaminan_{{ $loop->index }}">
|
||||||
|
<span class="text-base text-gray-900 font-medium">
|
||||||
|
Status Kepemilikan
|
||||||
|
</span>
|
||||||
|
<i class="ki-outline ki-plus text-gray-600 text-2sm accordion-active:hidden block">
|
||||||
|
</i>
|
||||||
|
<i class="ki-outline ki-minus text-gray-600 text-2sm accordion-active:block hidden">
|
||||||
|
</i>
|
||||||
|
</button>
|
||||||
|
|
||||||
<div class=" mx-auto bg-white rounded-lg overflow-text">
|
<div class="accordion-content hidden" id="accordion_detail_jaminan_{{ $loop->index }}">
|
||||||
<div class="py-4 ">
|
<div class="card-table scrollable-x-auto pb-3">
|
||||||
<h1 class="text-md font-medium text-gray-900">Status Kepemilikan</h1>
|
<a href="{{ route('debitur.jaminan.bulk.download', ['id' => $permohonan->debiture->id, 'jaminan' => $dokumen->id]) }}"
|
||||||
|
class="ml-6 btn btn-dark dark:btn-light">
|
||||||
|
<i class="ki-outline ki-cloud-download"></i> Download Semua Dokumen
|
||||||
|
</a>
|
||||||
|
<table class="table align-middle text-sm text-gray-500">
|
||||||
|
@foreach ($dokumen->detail as $detail)
|
||||||
|
<tr>
|
||||||
|
<td class="py-2 text-gray-600 font-normal max-w-[100px]">
|
||||||
|
{{ $loop->index + 1 }}. {{ $detail->jenisLegalitasJaminan->name }}
|
||||||
|
</td>
|
||||||
|
<td class="py-2 text-gray-800 font-normaltext-sm">
|
||||||
|
{{ $detail->name ?? '' }}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="py-3 max-w-[100px] align-top">
|
||||||
|
Dokumen Jaminan
|
||||||
|
</td>
|
||||||
|
<td class="py-3 text-gray-700 text-2sm font-normal">
|
||||||
|
|
||||||
|
@if (isset($detail->dokumen_jaminan))
|
||||||
|
@php
|
||||||
|
$dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan))
|
||||||
|
? json_decode($detail->dokumen_jaminan)
|
||||||
|
: [$detail->dokumen_jaminan];
|
||||||
|
$dokumen_nomor = is_array(json_decode($detail->dokumen_nomor))
|
||||||
|
? json_decode($detail->dokumen_nomor)
|
||||||
|
: ($detail->dokumen_nomor
|
||||||
|
? [$detail->dokumen_nomor]
|
||||||
|
: []);
|
||||||
|
@endphp
|
||||||
|
@foreach ($dokumen_jaminan as $index => $dokumen)
|
||||||
|
<div class="flex w-full lg:w-[30%]">
|
||||||
|
@if (in_array(Auth::user()->roles[0]->name, ['administrator', 'pemohon-eo']))
|
||||||
|
@if (!empty($dokumen_nomor))
|
||||||
|
<span class="flex-1 mt-2 text-info">Nomor Dokumen :
|
||||||
|
{{ $dokumen_nomor[$index] }}</span>
|
||||||
|
@endif
|
||||||
|
<a href="{{ route('debitur.jaminan.download', ['id' => $permohonan->debiture->id, 'dokumen' => $detail->id, 'index' => $index]) }}"
|
||||||
|
class="flex-none badge badge-sm badge-outline mt-2 mr-2">
|
||||||
|
{{ basename($dokumen) }}
|
||||||
|
<i class="ki-filled ki-cloud-download"></i>
|
||||||
|
</a>
|
||||||
|
@endif
|
||||||
|
<span
|
||||||
|
class="flex-none badge badge-sm badge-outline badge-warning mt-2"
|
||||||
|
onclick="viewPDF('{{ Storage::url($dokumen_jaminan[$index]) }}')"><i
|
||||||
|
class="ki-filled ki-eye mr-2"></i>Preview</span>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="py-3 max-w-[100px]">
|
||||||
|
Keterangan
|
||||||
|
</td>
|
||||||
|
<td class="py-3 text-gray-700 text-2sm font-normal">
|
||||||
|
{{ $detail->keterangan ?? '' }}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class=" mx-auto bg-white rounded-lg overflow-hidden">
|
|
||||||
<div class="py-4 ">
|
|
||||||
<h1 class="text-md font-medium text-gray-900">Izin Bangunan</h1>
|
|
||||||
</div>
|
</div>
|
||||||
|
@endforeach
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@include('lpj::component.pdfviewer')
|
||||||
<div class=" mx-auto bg-white rounded-lg overflow-hidden">
|
|
||||||
<div class="py-4 ">
|
|
||||||
<h1 class="text-md font-medium text-gray-900">SPPT PBB</h1>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class=" mx-auto bg-white rounded-lg overflow-hidden">
|
|
||||||
<div class="py-4 ">
|
|
||||||
<h1 class="text-md font-medium text-gray-900">Dokument Lainnya</h1>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class=" mx-auto bg-white rounded-lg overflow-hidden">
|
<div class=" mx-auto bg-white rounded-lg overflow-hidden">
|
||||||
<div class="py-4 ">
|
<div class="py-4 ">
|
||||||
<h1 class="text-md font-medium text-gray-900">Hubungan cadeb/debitur dengan Pemilik Jaminan</h1>
|
<h1 class="text-md font-medium text-gray-900">Hubungan cadeb/debitur dengan Pemilik Jaminan</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Pemilik Jaminan</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||||
|
{{ $dokumen->pemilik->hubungan_pemilik->name?? "" }}
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class=" mx-auto bg-white rounded-lg overflow-hidden">
|
<div class=" mx-auto bg-white rounded-lg overflow-hidden">
|
||||||
<div class="py-4 ">
|
<div class="py-4 ">
|
||||||
<h1 class="text-md font-medium text-gray-900">Hubungan Cadeb/Debitur dengan Penghuni Jaminan</h1>
|
<h1 class="text-md font-medium text-gray-900">Hubungan Cadeb/Debitur dengan Penghuni Jaminan</h1>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Penghuni Jaminan</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||||
|
{{ $dokumen->penghuni->hubungan_penghuni->name?? "" }}
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
209
resources/views/surveyor/components/informasi.blade.php
Normal file
209
resources/views/surveyor/components/informasi.blade.php
Normal file
@@ -0,0 +1,209 @@
|
|||||||
|
<!-- Informasi Tata Ruang -->
|
||||||
|
<div class="card w-full bg-white">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="py-4">
|
||||||
|
<h1 class="text-md font-medium text-gray-900">Informasi Dinas Tata Ruang</h1>
|
||||||
|
</div>
|
||||||
|
<!-- Informasi Tata Ruang Form -->
|
||||||
|
<div class="grid gap-5">
|
||||||
|
|
||||||
|
|
||||||
|
@php
|
||||||
|
$inputDinasTata = [
|
||||||
|
[
|
||||||
|
'label' => 'Peruntukan',
|
||||||
|
'name' => 'peruntukan',
|
||||||
|
'index' => 0,
|
||||||
|
'value' => old(
|
||||||
|
'peruntukan',
|
||||||
|
isset($forminspeksi['peruntukan']) ? $forminspeksi['peruntukan'] : '',
|
||||||
|
),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'KDB',
|
||||||
|
'name' => 'kdb',
|
||||||
|
'index' => 1,
|
||||||
|
'value' => old('kdb', isset($forminspeksi['kdb']) ? $forminspeksi['kdb'] : ''),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'KDH',
|
||||||
|
'name' => 'kdh',
|
||||||
|
'index' => 2,
|
||||||
|
'value' => old('kdh', isset($forminspeksi['kdh']) ? $forminspeksi['kdh'] : ''),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'gsb',
|
||||||
|
'name' => 'gsb',
|
||||||
|
'index' => 3,
|
||||||
|
'value' => old('gsb', isset($forminspeksi['gsb']) ? $forminspeksi['gsb'] : ''),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Max Lantai',
|
||||||
|
'name' => 'max_lantai',
|
||||||
|
'index' => 4,
|
||||||
|
'value' => old(
|
||||||
|
'max_lantai',
|
||||||
|
isset($forminspeksi['max_lantai']) ? $forminspeksi['max_lantai'] : '',
|
||||||
|
),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'KLB',
|
||||||
|
'name' => 'klb',
|
||||||
|
'index' => 5,
|
||||||
|
'value' => old('klb', isset($forminspeksi['klb']) ? $forminspeksi['klb'] : ''),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'GSS',
|
||||||
|
'name' => 'gss',
|
||||||
|
'index' => 6,
|
||||||
|
'value' => old('gss', isset($forminspeksi['gss']) ? $forminspeksi['gss'] : ''),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Pelebaran Jalan',
|
||||||
|
'name' => 'pelebaran_jalan',
|
||||||
|
'index' => 7,
|
||||||
|
'value' => old(
|
||||||
|
'pelebaran_jalan',
|
||||||
|
isset($forminspeksi['pelebaran_jalan']) ? $forminspeksi['pelebaran_jalan'] : '',
|
||||||
|
),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Nama Petugas TK',
|
||||||
|
'name' => 'nama_petugas',
|
||||||
|
'index' => 8,
|
||||||
|
'value' => old(
|
||||||
|
'nama_petugas',
|
||||||
|
isset($forminspeksi['nama_petugas']) ? $forminspeksi['nama_petugas'] : '',
|
||||||
|
),
|
||||||
|
],
|
||||||
|
];
|
||||||
|
@endphp
|
||||||
|
|
||||||
|
@if (count($inputDinasTata) > 0)
|
||||||
|
@foreach ($inputDinasTata as $item)
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input type="text" name="{{ $item['name'] }}" class="input"
|
||||||
|
placeholder="Masukkan {{ $item['label'] }}" value="{{ $item['value'] }}">
|
||||||
|
@error($item['name'])
|
||||||
|
<em class="alert text-danger text-sm"></em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
<span class="form-label">Gistaru</span>
|
||||||
|
</label>
|
||||||
|
<div class="input-group w-full flex gap-2">
|
||||||
|
<input class="name_rute" type="hidden" name="name_rute" value="rute">
|
||||||
|
<div class="w-full">
|
||||||
|
<input id="inputGistaru" type="file" name="foto_gistaru"
|
||||||
|
class="file-input file-input-bordered w-full" accept="image/*"
|
||||||
|
onchange="previewImage(this, 'gistaru-preview')">
|
||||||
|
<img id="gistaru-preview"
|
||||||
|
src="{{ asset('storage/' . (isset($forminspeksi['foto_gistaru']) ? $forminspeksi['foto_gistaru'] : '')) }}"
|
||||||
|
alt="Foto Gistaru" class="mt-2 max-w-full h-auto"
|
||||||
|
style="{{ isset($forminspeksi['foto_gistaru']) ? '' : 'display: none;' }}">
|
||||||
|
</div>
|
||||||
|
<a href="https://gistaru.atrbpn.go.id/rtronline" type="button" class="btn btn-light"
|
||||||
|
target="_blank">
|
||||||
|
<i class="ki-outline ki-abstract-33"></i> Gistaru
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
<span class="form-label">Bhumi</span>
|
||||||
|
</label>
|
||||||
|
<div class="input-group w-full flex gap-2">
|
||||||
|
<input class="name_rute" type="hidden" name="name_rute" value="rute">
|
||||||
|
<div class="w-full">
|
||||||
|
<input id="inputBhumi" type="file" name="foto_bhumi"
|
||||||
|
class="file-input file-input-bordered w-full" accept="image/*"
|
||||||
|
onchange="previewImage(this, 'bhumi-preview')">
|
||||||
|
<img id="bhumi-preview"
|
||||||
|
src="{{ asset('storage/' . (isset($forminspeksi['foto_bhumi']) ? $forminspeksi['foto_bhumi'] : '')) }}"
|
||||||
|
alt="Foto Bhumi" class="mt-2 max-w-full h-auto"
|
||||||
|
style="{{ isset($forminspeksi['foto_bhumi']) ? '' : 'display: none;' }}">
|
||||||
|
</div>
|
||||||
|
<a href="https://bhumi.atrbpn.go.id/peta" type="button" class="btn btn-light"
|
||||||
|
target="_blank">
|
||||||
|
<i class="ki-outline ki-abstract-33"></i> Bhumi
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@if (isset($link_url_region->regions->url))
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
<span class="form-label">{{ $link_url_region->regions->name_url }}</span>
|
||||||
|
</label>
|
||||||
|
<div class="input-group w-full flex gap-2">
|
||||||
|
<input class="name_rute" type="hidden" name="name_rute" value="rute">
|
||||||
|
<div class="w-full">
|
||||||
|
<input id="inputArgisRegion" type="file" name="foto_argis_region"
|
||||||
|
class="file-input file-input-bordered w-full" accept="image/*"
|
||||||
|
onchange="previewImage(this, 'argis-region-preview')">
|
||||||
|
<img id="argis-region-preview"
|
||||||
|
src="{{ asset('storage/' . (isset($forminspeksi['foto_argis_region']) ? $forminspeksi['foto_argis_region'] : '')) }}"
|
||||||
|
alt="Foto Argis Region" class="mt-2 max-w-full h-auto"
|
||||||
|
style="{{ isset($forminspeksi['foto_argis_region']) ? '' : 'display: none;' }}">
|
||||||
|
</div>
|
||||||
|
<a href="{{ $link_url_region->regions->url }}" type="button" class="btn btn-light"
|
||||||
|
target="_blank">
|
||||||
|
<i class="ki-outline ki-abstract-33"></i>
|
||||||
|
{{ $link_url_region->regions->name_url }}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<!-- Peta Section -->
|
||||||
|
|
||||||
|
<div class="mt-2" style="margin-top: 20px">
|
||||||
|
<input type="hidden" name="lat" id="lat"
|
||||||
|
value="{{ old('lat', isset($analisa->analisaFakta) ? $analisa->analisaFakta->lat : '') }}">
|
||||||
|
<input type="hidden" name="lng" id="lng"
|
||||||
|
value="{{ old('lng', isset($analisa->analisaFakta) ? $analisa->analisaFakta->lng : '') }}">
|
||||||
|
<div class=" border p-6 rounded-lg shadow-lg flex items-center justify-center"
|
||||||
|
style="height: 300px">
|
||||||
|
<iframe id="mapFrame" frameborder="0" style="width: 100%; height: 100%;"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Upload Photo Button -->
|
||||||
|
<div class=" flex w-full mt-2" style="margin-top: 20px">
|
||||||
|
<div class="flex flex-col input-group w-full">
|
||||||
|
<label for="" class="block text-sm font-medium text-gray-700">Upload Photo</label>
|
||||||
|
|
||||||
|
<div class="w-full">
|
||||||
|
<input id="foto_tempat" type="file" name="foto_tempat"
|
||||||
|
|
||||||
|
class="file-input file-input-bordered w-full" accept="image/*"
|
||||||
|
onchange="previewImage(this, 'foto_tempat-preview')">
|
||||||
|
|
||||||
|
<img id="foto_tempat-preview"
|
||||||
|
src="{{ asset('storage/' . (isset($forminspeksi['foto_tempat']) ? $forminspeksi['foto_tempat'] : '')) }}"
|
||||||
|
alt="Foto Argis Region" class="mt-2 max-w-full h-auto"
|
||||||
|
style="{{ isset($forminspeksi['foto_tempat']) ? '' : 'display: none;' }}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Notes Section -->
|
||||||
|
<div class="mt-2" style="margin-top: 20px">
|
||||||
|
<div class="bg-white p-6 rounded-lg">
|
||||||
|
<h4 class="block text-sm font-medium text-gray-700 mt-2">Catatan yang Perlu Diperhatikan
|
||||||
|
</h4>
|
||||||
|
<textarea name="keterangan" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="3">{{ old('keterangan', $forminspeksi['keterangan'] ?? '') }}</textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -30,8 +30,7 @@
|
|||||||
@csrf
|
@csrf
|
||||||
|
|
||||||
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
|
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
|
||||||
<input type="text
|
<input type="hidden" name="jenis_jaminan_id" value="{{ request('jenis_jaminan') }}">
|
||||||
" name="jenis_jaminan_id" value="{{ request('jenis_jaminan') }}">
|
|
||||||
|
|
||||||
|
|
||||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||||
@@ -170,4 +169,44 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function previewImage(input, previewId) {
|
||||||
|
if (input.files && input.files[0]) {
|
||||||
|
var reader = new FileReader();
|
||||||
|
reader.onload = function(e) {
|
||||||
|
$('#' + previewId).attr('src', e.target.result).show();
|
||||||
|
}
|
||||||
|
reader.readAsDataURL(input.files[0]);
|
||||||
|
} else {
|
||||||
|
$('#' + previewId).hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function addClonableItem(containerId, itemClass) {
|
||||||
|
const container = document.getElementById(containerId);
|
||||||
|
if (!container) {
|
||||||
|
console.error(`Container with ID "${containerId}" not found.`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const template = container.querySelector(`.${itemClass}`);
|
||||||
|
if (!template) {
|
||||||
|
console.error(`Template with class "${itemClass}" not found in container "${containerId}".`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const newElement = template.cloneNode(true);
|
||||||
|
const inputs = newElement.querySelectorAll('input, textarea');
|
||||||
|
inputs.forEach(input => (input.value = ''));
|
||||||
|
|
||||||
|
const deleteButton = newElement.querySelector('.remove-btn');
|
||||||
|
if (deleteButton) {
|
||||||
|
deleteButton.style.display = 'inline-block';
|
||||||
|
deleteButton.addEventListener('click', () => newElement.remove());
|
||||||
|
}
|
||||||
|
|
||||||
|
container.appendChild(newElement);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@endpush
|
@endpush
|
||||||
|
|||||||
@@ -1,27 +1,97 @@
|
|||||||
|
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
|
|
||||||
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
|
<div class="py-4 px-6">
|
||||||
|
<h1 class="text-md font-medium text-gray-900">Order Penilaian</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid gap-5 grid-cols-2">
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Tujuan Penilaian</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->tujuanPenilaian))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->tujuanPenilaian->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Tanggal Survey</label>
|
||||||
|
<div class="flex flex-wrap items-base line w-full">
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->created_at->format('d/m/Y') }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Cab/Direktorat</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->branch))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->branch->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">AO</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->user))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->user->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
|
||||||
|
<div class="card-body">
|
||||||
<div class="py-4 px-6">
|
<div class="py-4 px-6">
|
||||||
<h1 class="text-md font-medium text-gray-900">Identitas Debitur</h1>
|
<h1 class="text-md font-medium text-gray-900">Identitas Debitur</h1>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="grid gap-5">
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Nama Calon Debitur</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->debiture->name))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->debiture->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Nama Wakil Debitur</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input type="text" name="nama_wakil" class="input"
|
||||||
|
placeholder="Masukkan Hubungan Calon Debitur">
|
||||||
|
|
||||||
|
<em id="error-nama_wakil" class="alert text-danger text-sm"></em>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Hubungan Calon Debitur</label>
|
<label class="form-label max-w-56">Hubungan Calon Debitur</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="hub_calon_debitur" class="input"
|
<input type="text" name="hub_calon_debitur" class="input"
|
||||||
placeholder="Masukkan Hubungan Calon Debitur">
|
placeholder="Masukkan Hubungan Calon Debitur">
|
||||||
|
|
||||||
@error('hub_calon_debitur')
|
<em id="error-hub_calon_debitur" class="alert text-danger text-sm"></em>
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
</div>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{-- lokasi jaminan --}}
|
{{-- lokasi jaminan --}}
|
||||||
@include('lpj::surveyor.components.lokasi-jaminan')
|
@include('lpj::surveyor.components.lokasi-jaminan')
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
|
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
|
||||||
<div class="py-4 px-6">
|
<div class="py-4 px-6">
|
||||||
<h1 class="text-md font-medium text-gray-900">Data Data Jaminan</h1>
|
<h1 class="text-md font-medium text-gray-900">Data Data Jaminan</h1>
|
||||||
@@ -33,8 +103,8 @@
|
|||||||
<select class="input tomselect w-full @error('hadapMataAngin') border-danger bg-danger-light @enderror"
|
<select class="input tomselect w-full @error('hadapMataAngin') border-danger bg-danger-light @enderror"
|
||||||
name="hadapMataAngin">
|
name="hadapMataAngin">
|
||||||
<option value="">Select Jenis</option>
|
<option value="">Select Jenis</option>
|
||||||
@if (isset($arahMataAngin))
|
@if (isset($jenisKapal))
|
||||||
@foreach ($arahMataAngin as $item)
|
@foreach ($jenisKapal as $item)
|
||||||
<option value="{{ $item->name }}"
|
<option value="{{ $item->name }}"
|
||||||
{{ old('hadapMataAngin') == $item->name ? 'selected' : '' }}>{{ $item->name }}
|
{{ old('hadapMataAngin') == $item->name ? 'selected' : '' }}>{{ $item->name }}
|
||||||
</option>
|
</option>
|
||||||
@@ -43,7 +113,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
@error('hadapMataAngin')
|
@error('hadapMataAngin')
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -64,7 +134,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
@error('hadapMataAngin')
|
@error('hadapMataAngin')
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -85,7 +155,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
@error('hadapMataAngin')
|
@error('hadapMataAngin')
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -107,34 +177,109 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
@error('hadapMataAngin')
|
@error('hadapMataAngin')
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@php
|
@php
|
||||||
$inputDataJaminan = [];
|
|
||||||
|
|
||||||
$inputDataJaminan = [
|
$inputDataJaminan = [
|
||||||
['label' => 'Nama Kapal', 'index' => 0],
|
[
|
||||||
['label' => 'Pemilik Kapal', 'index' => 1],
|
'label' => 'Nama Kapal',
|
||||||
['label' => 'Bendera', 'index' => 2],
|
'name' => 'nama_kapal',
|
||||||
['label' => 'Nomor Tanda Selar', 'index' => 3],
|
'index' => 0,
|
||||||
['label' => 'Kapal', 'index' => 4],
|
],
|
||||||
['label' => 'Galangan', 'index' => 5],
|
[
|
||||||
['label' => 'Kapal/Shipyard', 'index' => 6],
|
'label' => 'Pemilik Kapal',
|
||||||
['label' => 'Tahun Pembuatan', 'index' => 7],
|
'name' => 'pemilik_kapal',
|
||||||
['label' => 'Tahun Lanuncing', 'index' => 8],
|
'index' => 1,
|
||||||
['label' => 'DWT (ton)', 'index' => 9],
|
],
|
||||||
['label' => 'LWT (ton)', 'index' => 10],
|
[
|
||||||
['label' => 'Gross Tonnage (ton)', 'index' => 11],
|
'label' => 'Bendera',
|
||||||
['label' => 'Net Tonnage (ton)', 'index' => 12],
|
'name' => 'bendera',
|
||||||
['label' => 'Tenaga Mesin (HP)', 'index' => 13],
|
'index' => 2,
|
||||||
['label' => 'LOA', 'index' => 14],
|
],
|
||||||
['label' => 'LBP', 'index' => 15],
|
[
|
||||||
['label' => 'Beam', 'index' => 16],
|
'label' => 'Nomor Tanda Selar',
|
||||||
['label' => 'Depth', 'index' => 17],
|
'name' => 'nomor_selar',
|
||||||
['label' => 'Draft', 'index' => 18],
|
'index' => 3,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Kapal',
|
||||||
|
'name' => 'kapal',
|
||||||
|
'index' => 4,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Galangan',
|
||||||
|
'name' => 'galangan_kapal',
|
||||||
|
'index' => 5,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Kapal/Shipyard',
|
||||||
|
'name' => 'kapal_shipyard',
|
||||||
|
'index' => 6,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Tahun Pembuatan',
|
||||||
|
'name' => 'tahun_pembuatan',
|
||||||
|
'index' => 7,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Tahun Lanuncing',
|
||||||
|
'name' => 'tahun_launcing',
|
||||||
|
'index' => 8,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'DWT (ton)',
|
||||||
|
'name' => 'dwt',
|
||||||
|
'index' => 9,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'LWT (ton)',
|
||||||
|
'name' => 'lwt',
|
||||||
|
'index' => 10,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Gross Tonnage (ton)',
|
||||||
|
'name' => 'gross_tonnage',
|
||||||
|
'index' => 11,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Net Tonnage (ton)',
|
||||||
|
'name' => 'net_tonnage',
|
||||||
|
'index' => 12,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Tenaga Mesin (HP)',
|
||||||
|
'name' => 'tenaga_mesin',
|
||||||
|
'index' => 13,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'LOA',
|
||||||
|
'name' => 'loa',
|
||||||
|
'index' => 14,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'LBP',
|
||||||
|
'name' => 'lbp',
|
||||||
|
'index' => 15,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Beam',
|
||||||
|
'name' => 'beam',
|
||||||
|
'index' => 16,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Depth',
|
||||||
|
'name' => 'depth',
|
||||||
|
'index' => 17,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Draft',
|
||||||
|
'name' => 'draft',
|
||||||
|
'index' => 18,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@@ -144,24 +289,16 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="bentuk_tanah" class="input"
|
<input type="text" name="{{ $item['name'] }}" class="input"
|
||||||
placeholder="Masukkan {{ $item['label'] }}">
|
placeholder="Masukkan {{ $item['label'] }}">
|
||||||
|
|
||||||
@error('bentuk_tanah')
|
<em id="error_{{ $item['name'] }}" class="alert text-danger text-sm"></em>
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex justify-end" style="margin-top: 10px">
|
|
||||||
<button class="btn btn-xs btn-primary" type="button" id="addBagunan">
|
|
||||||
tambah mesin
|
|
||||||
<i class="ki-filled ki-plus"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
|
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
|
||||||
@@ -170,33 +307,64 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="grid gap-5">
|
<div class="grid gap-5">
|
||||||
@php
|
@php
|
||||||
$inputDataLoaksi = [];
|
|
||||||
|
|
||||||
$inputDataLoaksi = [
|
$inputStrukturKapal = [
|
||||||
['label' => 'Lambung Kapal', 'index' => 0],
|
[
|
||||||
['label' => 'Dek', 'index' => 1],
|
'label' => 'Lambung Kapal',
|
||||||
['label' => 'Struktur Rangka', 'index' => 2],
|
'name' => 'lambung_kapal',
|
||||||
['label' => 'Palka', 'index' => 3],
|
'index' => 0,
|
||||||
['label' => 'Pondasi Mesin', 'index' => 4],
|
],
|
||||||
['label' => 'Area Mesin', 'index' => 5],
|
[
|
||||||
['label' => 'Cat dan Korosi', 'index' => 6],
|
'label' => 'Dek',
|
||||||
['label' => 'Sistem Pengelasan', 'index' => 7]
|
'name' => 'dek',
|
||||||
|
'index' => 1,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Struktur Rangka',
|
||||||
|
'name' => 'struktur_rangka',
|
||||||
|
'index' => 2,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Palka',
|
||||||
|
'name' => 'palka',
|
||||||
|
'index' => 3,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Pondasi Mesin',
|
||||||
|
'name' => 'pondasi_mesin',
|
||||||
|
'index' => 4,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Area Mesin',
|
||||||
|
'name' => 'area_mesin',
|
||||||
|
'index' => 5,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Cat dan Korosi',
|
||||||
|
'name' => 'cat_dan_korosi',
|
||||||
|
'index' => 6,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Sistem Pengelasan',
|
||||||
|
'name' => 'sistem_pengelasan',
|
||||||
|
'index' => 7,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@if (count($inputDataLoaksi) > 0)
|
@if (count($inputStrukturKapal) > 0)
|
||||||
@foreach ($inputDataLoaksi as $item)
|
@foreach ($inputStrukturKapal as $item)
|
||||||
<!-- Nomor Lambung -->
|
<!-- Nomor Lambung -->
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="bentuk_tanah" class="input"
|
<input type="text" name="{{ $item['name'] }}" class="input"
|
||||||
placeholder="Masukkan {{ $item['label'] }}">
|
placeholder="Masukkan {{ $item['label'] }}">
|
||||||
|
|
||||||
@error('bentuk_tanah')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error_{{ $item['name'] }}" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -204,10 +372,10 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
|
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<textarea name="deskripsi" id="" class="textarea"></textarea>
|
<textarea name="deskripsi_struktur" id="" class="textarea"></textarea>
|
||||||
@error('deskripsi')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error_deskripsi_struktur" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -220,33 +388,60 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="grid gap-5">
|
<div class="grid gap-5">
|
||||||
@php
|
@php
|
||||||
$inputDataLoaksi = [];
|
$inputPeralatan = [
|
||||||
|
[
|
||||||
$inputDataLoaksi = [
|
'label' => 'Sekoci/Lifeboat',
|
||||||
['label' => 'Sekoci/Lifeboat', 'index' => 0],
|
'name' => 'sekoci',
|
||||||
['label' => 'Jaket Pelampung', 'index' => 1],
|
'index' => 0,
|
||||||
['label' => 'Alat Pemadam', 'index' => 2],
|
],
|
||||||
['label' => 'Rambu Darurat', 'index' => 3],
|
[
|
||||||
['label' => 'Sistem Alarm', 'index' => 4],
|
'label' => 'Jaket Pelampung',
|
||||||
['label' => 'Sistem Pencegah', 'index' => 5],
|
'name' => 'jaket_pelampung',
|
||||||
['label' => 'Kebaran', 'index' => 6],
|
'index' => 1,
|
||||||
['label' => 'Lampu Darurat', 'index' => 7]
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Alat Pemadam',
|
||||||
|
'name' => 'alat_pemadaman',
|
||||||
|
'index' => 2,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Rambu Darurat',
|
||||||
|
'name' => 'rambu_darurat',
|
||||||
|
'index' => 3,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Sistem Alarm',
|
||||||
|
'name' => 'sistem_alarm',
|
||||||
|
'index' => 4,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Sistem Pencegah',
|
||||||
|
'name' => 'sistem_pencegah',
|
||||||
|
'index' => 5,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Kebakaran',
|
||||||
|
'name' => 'kebakaran',
|
||||||
|
'index' => 6,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Lampu Darurat',
|
||||||
|
'name' => 'lampu_darurat',
|
||||||
|
'index' => 7,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@if (count($inputDataLoaksi) > 0)
|
@if (count($inputPeralatan) > 0)
|
||||||
@foreach ($inputDataLoaksi as $item)
|
@foreach ($inputPeralatan as $item)
|
||||||
<!-- Nomor Lambung -->
|
<!-- Nomor Lambung -->
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="bentuk_tanah" class="input"
|
<input type="text" name="{{ $item['name'] }}" class="input"
|
||||||
placeholder="Masukkan {{ $item['label'] }}">
|
placeholder="Masukkan {{ $item['label'] }}">
|
||||||
|
<em id="error_{{ $item['name'] }}" class="alert text-danger text-sm"></em>
|
||||||
@error('bentuk_tanah')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -254,10 +449,10 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
|
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<textarea name="deskripsi" id="" class="textarea"></textarea>
|
<textarea name="deskripsi_peralatan" id="" class="textarea"></textarea>
|
||||||
@error('deskripsi')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error_deskripsi_peralatan" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -270,15 +465,38 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="grid gap-5">
|
<div class="grid gap-5">
|
||||||
@php
|
@php
|
||||||
$inputDataLoaksi = [];
|
|
||||||
|
|
||||||
$inputDataLoaksi = [
|
$inputDataLoaksi = [
|
||||||
['label' => 'Gps', 'index' => 0],
|
[
|
||||||
['label' => 'Radat', 'index' => 1],
|
'label' => 'Gps',
|
||||||
['label' => 'Radio Komunikasi', 'index' => 2],
|
'name' => 'gps',
|
||||||
['label' => 'Lampu Navigasi', 'index' => 3],
|
'index' => 0,
|
||||||
['label' => 'Sistem Kendali otomatis', 'index' => 4],
|
],
|
||||||
['label' => 'Kompas', 'index' => 5],
|
[
|
||||||
|
'label' => 'Radar',
|
||||||
|
'name' => 'radar',
|
||||||
|
'index' => 1,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Radio Komunikasi',
|
||||||
|
'name' => 'radio_komunikasi',
|
||||||
|
'index' => 2,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Lampu Navigasi',
|
||||||
|
'name' => 'lampu_navigasi',
|
||||||
|
'index' => 3,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Sistem Kendali otomatis',
|
||||||
|
'name' => 'sistem_kendali_otomatis',
|
||||||
|
'index' => 4,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Kompas',
|
||||||
|
'name' => 'kompas',
|
||||||
|
'index' => 5,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
@endphp
|
@endphp
|
||||||
@@ -289,12 +507,11 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="bentuk_tanah" class="input"
|
<input type="text" name="{{ $item['name'] }}" class="input"
|
||||||
placeholder="Masukkan {{ $item['label'] }}">
|
placeholder="Masukkan {{ $item['label'] }}">
|
||||||
|
|
||||||
@error('bentuk_tanah')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error_{{ $item['name'] }}" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -302,10 +519,8 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
|
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<textarea name="deskripsi" id="" class="textarea"></textarea>
|
<textarea name="deskripsi_navigasi" id="" class="textarea"></textarea>
|
||||||
@error('deskripsi')
|
<em id="error_deskripsi_navigasi" class="alert text-danger text-sm"></em>
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -319,31 +534,51 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="grid gap-5">
|
<div class="grid gap-5">
|
||||||
@php
|
@php
|
||||||
$inputDataLoaksi = [];
|
|
||||||
|
|
||||||
$inputDataLoaksi = [
|
$inputSistemPengerak = [
|
||||||
['label' => 'Mesin Utama', 'index' => 0],
|
[
|
||||||
['label' => 'Mesin Bantu', 'index' => 1],
|
'label' => 'Mesin Utama',
|
||||||
['label' => 'Pompa Pendingin', 'index' => 2],
|
'name' => 'mesin_utama',
|
||||||
['label' => 'Sistem Pelumasan', 'index' => 3],
|
'index' => 0,
|
||||||
['label' => 'Propeller', 'index' => 4],
|
],
|
||||||
['label' => 'Sistem Kelistrikan', 'index' => 5],
|
[
|
||||||
|
'label' => 'Mesin Bantu',
|
||||||
|
'name' => 'mesin_bantu',
|
||||||
|
'index' => 1,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Pompa Pendingin',
|
||||||
|
'name' => 'pompa_pendingin',
|
||||||
|
'index' => 2,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Sistem Pelumasan',
|
||||||
|
'name' => 'sistem_pelumasan',
|
||||||
|
'index' => 3,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Propeller',
|
||||||
|
'name' => 'propeller',
|
||||||
|
'index' => 4,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Sistem Kelistrikan',
|
||||||
|
'name' => 'sistem_kelistrikan',
|
||||||
|
'index' => 5,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@if (count($inputDataLoaksi) > 0)
|
@if (count($inputSistemPengerak) > 0)
|
||||||
@foreach ($inputDataLoaksi as $item)
|
@foreach ($inputSistemPengerak as $item)
|
||||||
<!-- Nomor Lambung -->
|
<!-- Nomor Lambung -->
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="bentuk_tanah" class="input"
|
<input type="text" name="{{ $item['name'] }}" class="input"
|
||||||
placeholder="Masukkan {{ $item['label'] }}">
|
placeholder="Masukkan {{ $item['label'] }}">
|
||||||
|
<em id="error_{{ $item['name'] }}" class="alert text-danger text-sm"></em>
|
||||||
@error('bentuk_tanah')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -351,10 +586,8 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
|
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<textarea name="deskripsi" id="" class="textarea"></textarea>
|
<textarea name="deskripsi_mesin_penggerak" id="" class="textarea"></textarea>
|
||||||
@error('deskripsi')
|
<em id="error_deskripsi_mesin_penggerak" class="alert text-danger text-sm"></em>
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -368,29 +601,45 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="grid gap-5">
|
<div class="grid gap-5">
|
||||||
@php
|
@php
|
||||||
$inputDataLoaksi = [];
|
$inputSistemKelistrikan = [];
|
||||||
|
|
||||||
$inputDataLoaksi = [
|
$inputSistemKelistrikan = [
|
||||||
['label' => 'Lampu Navigasi', 'index' => 0],
|
[
|
||||||
['label' => 'Sistem Penerangan', 'index' => 1],
|
'label' => 'Lampu Navigasi',
|
||||||
['label' => 'Sistem Panel Distribusi', 'index' => 2],
|
'name' => 'lampu_navigasi',
|
||||||
['label' => 'Kabel dan Perangkat Pendukung', 'index' => 3],
|
'index' => 0,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Sistem Penerangan',
|
||||||
|
'name' => 'sistem_penerangan',
|
||||||
|
'index' => 1,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Sistem Panel Distribusi',
|
||||||
|
'name' => 'sistem_panel_distribusi',
|
||||||
|
'index' => 2,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Kabel dan Perangkat Pendukung',
|
||||||
|
'name' => 'kabel_perangkat',
|
||||||
|
'index' => 3,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@if (count($inputDataLoaksi) > 0)
|
@if (count($inputSistemKelistrikan) > 0)
|
||||||
@foreach ($inputDataLoaksi as $item)
|
@foreach ($inputSistemKelistrikan as $item)
|
||||||
<!-- Nomor Lambung -->
|
<!-- Nomor Lambung -->
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="bentuk_tanah" class="input"
|
<input type="text" name="{{ $item['name'] }}" class="input"
|
||||||
placeholder="Masukkan {{ $item['label'] }}">
|
placeholder="Masukkan {{ $item['label'] }}">
|
||||||
|
|
||||||
@error('bentuk_tanah')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error_{{ $item['name'] }}" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -398,10 +647,10 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
|
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<textarea name="deskripsi" id="" class="textarea"></textarea>
|
<textarea name="deskripsi_kelistrikan" id="" class="textarea"></textarea>
|
||||||
@error('deskripsi')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error_deskripsi_kelistrikan" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -414,19 +663,35 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="grid gap-5">
|
<div class="grid gap-5">
|
||||||
@php
|
@php
|
||||||
$inputDataLoaksi = [];
|
|
||||||
|
|
||||||
$inputDataLoaksi = [
|
|
||||||
['label' => 'Kebersihan Dek Luar', 'index' => 0],
|
$inputLinkungan = [
|
||||||
['label' => 'Tangki Limbah', 'index' => 1],
|
[
|
||||||
['label' => 'Sistem Pengelolaan Limbah', 'index' => 2],
|
'label' => 'Kebersihan Dek Luar',
|
||||||
['label' => 'Pengelolaan Air Ballast', 'index' => 3],
|
'name' => 'kebersihan_dek_luar',
|
||||||
|
'index' => 0,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Tangki Limbah',
|
||||||
|
'name' => 'tangki_limbah',
|
||||||
|
'index' => 1,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Sistem Pengelolaan Limbah',
|
||||||
|
'name' => 'sistem_pengelolaan_limbah',
|
||||||
|
'index' => 2,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Pengelolaan Air Ballast',
|
||||||
|
'name' => 'pengelolaan_air_ballast',
|
||||||
|
'index' => 3,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@if (count($inputDataLoaksi) > 0)
|
@if (count($inputLinkungan) > 0)
|
||||||
@foreach ($inputDataLoaksi as $item)
|
@foreach ($inputLinkungan as $item)
|
||||||
<!-- Nomor Lambung -->
|
<!-- Nomor Lambung -->
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
||||||
@@ -434,9 +699,9 @@
|
|||||||
<input type="text" name="bentuk_tanah" class="input"
|
<input type="text" name="bentuk_tanah" class="input"
|
||||||
placeholder="Masukkan {{ $item['label'] }}">
|
placeholder="Masukkan {{ $item['label'] }}">
|
||||||
|
|
||||||
@error('bentuk_tanah')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error_{{ $item['name'] }}" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -444,11 +709,78 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
|
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<textarea name="deskripsi" id="" class="textarea"></textarea>
|
<textarea name="deskripsi_kebersihan" id="" class="textarea"></textarea>
|
||||||
@error('deskripsi')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error_deskripsi_kebersihan" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card bg-white rounded-lg overflow-hidden">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class=" py-4 ">
|
||||||
|
<h1 class="text-md font-medium text-gray-900">Analisis Fakta</h1>
|
||||||
|
</div>
|
||||||
|
<div class="grid gap-5">
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Faktor Positif</label>
|
||||||
|
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
|
<textarea class="textarea mt-2" name="fakta_positif[]" rows="3">{{ old('fakta_positif.0', $forminspeksi['fakta_positif'][0] ?? '') }}</textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
|
<em id="error-fakta_positif" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn btn-primary btn-sm mt-5"
|
||||||
|
onclick="addClonableItem('fakta-positif-container', 'fakta_positif')">
|
||||||
|
<i class="ki-outline ki-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Faktor Negatif</label>
|
||||||
|
<div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
|
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="3">{{ old('fakta_negatif.0', $forminspeksi['fakta_negatif'][0] ?? '') }}</textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
|
<em id="error-fakta_negatif" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn btn-primary btn-sm mt-5"
|
||||||
|
onclick="addClonableItem('fakta-negatif-container', 'fakta_negatif')">
|
||||||
|
<i class="ki-outline ki-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Catatan Yang Perlu Diperhatikan</label>
|
||||||
|
<div id="catatan-container" class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="catatan flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
|
<textarea class="textarea mt-2" name="catatan[]" rows="3">{{ old('catatan.0', $forminspeksi['catatan'][0] ?? '') }}</textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
|
<em id="error-catatan" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
<button type="button"
|
||||||
|
onclick="addClonableItem('catatan-container', 'catatan')"
|
||||||
|
class="btn btn-primary btn-sm mt-5 ">
|
||||||
|
<i class="ki-outline ki-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|||||||
@@ -5,17 +5,53 @@
|
|||||||
<div class="py-4 px-6">
|
<div class="py-4 px-6">
|
||||||
<h1 class="text-md font-medium text-gray-900">Order Penilaian</h1>
|
<h1 class="text-md font-medium text-gray-900">Order Penilaian</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="grid gap-5 grid-cols-2">
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Tujuan Penilaian</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->tujuanPenilaian))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->tujuanPenilaian->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Tanggal Survey</label>
|
<label class="form-label max-w-56">Tanggal Survey</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-base line w-full">
|
||||||
<input type="date" name="tanggal_survey" class="input" placeholder="Masukkan Hubungan Calon Debitur">
|
<p class="text-2sm text-gray-700">{{ $permohonan->created_at->format('d/m/Y') }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
@error('bentuk_tanah')
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<label class="form-label max-w-56">Cab/Direktorat</label>
|
||||||
@enderror
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->branch))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->branch->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">AO</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->user))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->user->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mt-5">
|
||||||
|
<label class="form-label max-w-56">Tanggal Survey</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input type="date" name="tanggal_survey" class="input"
|
||||||
|
placeholder="Masukkan Hubungan Calon Debitur">
|
||||||
|
<em id="error-tanggal_survey" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@@ -27,24 +63,33 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="grid gap-5">
|
<div class="grid gap-5">
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Nama Calon Debitur</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->debiture->name))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->debiture->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Nama Wakil Debitur</label>
|
<label class="form-label max-w-56">Nama Wakil Debitur</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="bentuk_tanah" class="input" placeholder="Masukkan Hubungan Calon Debitur">
|
<input type="text" name="nama_wakil" class="input"
|
||||||
|
placeholder="Masukkan Hubungan Calon Debitur">
|
||||||
|
|
||||||
|
<em id="error-nama_wakil" class="alert text-danger text-sm"></em>
|
||||||
|
|
||||||
@error('bentuk_tanah')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Hubungan Calon Debitur</label>
|
<label class="form-label max-w-56">Hubungan Calon Debitur</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="bentuk_tanah" class="input" placeholder="Masukkan Hubungan Calon Debitur">
|
<input type="text" name="hub_calon_debitur" class="input"
|
||||||
|
placeholder="Masukkan Hubungan Calon Debitur">
|
||||||
|
|
||||||
|
<em id="error-hub_calon_debitur" class="alert text-danger text-sm"></em>
|
||||||
|
|
||||||
@error('bentuk_tanah')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -65,41 +110,69 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">BPKB</label>
|
<label class="form-label max-w-56">BPKB</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="tanggal_survey" class="input" placeholder="BPKP">
|
<p class="text-2sm text-gray-700">N/A</p>
|
||||||
@error('hadapMataAngin')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">STNK</label>
|
<label class="form-label max-w-56">STNK</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="tanggal_survey" class="input" placeholder="STNK">
|
<p class="text-2sm text-gray-700">N/A</p>
|
||||||
@error('hadapMataAngin')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Deskripsi kendaraan sesuai dokument</label>
|
<label class="form-label max-w-56 text-md">Deskripsi kendaraan sesuai dokument :</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
|
||||||
|
|
||||||
@error('hadapMataAngin')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@php
|
@php
|
||||||
$inputDataJaminan = [];
|
|
||||||
$inputDataJaminan = [
|
$inputDataJaminan = [
|
||||||
['label' => 'Tipe/Model', 'index' => 0],
|
[
|
||||||
['label' => 'Merek', 'index' => 1],
|
'label' => 'Nama pemilik',
|
||||||
['label' => 'Tahun Pembuatan', 'index' => 2],
|
'name' => 'nama_pemilik',
|
||||||
['label' => 'Negara Pembuat', 'index' => 3],
|
'index' => 0,
|
||||||
['label' => 'Kondisi Mesin', 'index' => 4],
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Nomor polisi',
|
||||||
|
'name' => 'nomor_polisi_jaminan',
|
||||||
|
'index' => 1,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Merek',
|
||||||
|
'name' => 'merek_jaminan',
|
||||||
|
'index' => 2,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'jenis',
|
||||||
|
'name' => 'jenis',
|
||||||
|
'index' => 3,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Warna',
|
||||||
|
'name' => 'warna_jaminan',
|
||||||
|
'index' => 4,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Nomor Rangka/NIK/VIN',
|
||||||
|
'name' => 'nomor_rangka_jaminan',
|
||||||
|
'index' => 5,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Nomor Mesin',
|
||||||
|
'name' => 'nomor_mesin_jaminan',
|
||||||
|
'index' => 6,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Masa Berlaku STNK',
|
||||||
|
'name' => 'masa_stnk',
|
||||||
|
'index' => 7,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Masa Berlaku Pajak',
|
||||||
|
'name' => 'masa_pajak',
|
||||||
|
'index' => 8,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@@ -109,26 +182,548 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="bentuk_tanah" class="input"
|
<p class="text-2sm text-gray-700">N/A</p>
|
||||||
placeholder="Masukkan {{ $item['label'] }}">
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
@error('bentuk_tanah')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
|
||||||
@enderror
|
<div class="card-body">
|
||||||
|
<div class="py-4 px-6">
|
||||||
|
<h1 class="text-md font-medium text-gray-900">Kondisi Fisik Objek</h1>
|
||||||
|
</div>
|
||||||
|
<div class="grid gap-5">
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Kendaraan</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="flex flex-col items-start gap-4">
|
||||||
|
@if (isset($jenisKendaraan))
|
||||||
|
@foreach ($jenisKendaraan as $item)
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56 gap-2.5" style="width: 500px">
|
||||||
|
<input class="checkbox" name="kendaraan[]" type="checkbox"
|
||||||
|
value="{{ $item->name }}"
|
||||||
|
{{ in_array($item->name, old('kendaraan', $forminspeksi['kendaraan'] ?? [])) ? 'checked' : '' }} />
|
||||||
|
{{ $item->name }}
|
||||||
|
</label>
|
||||||
|
<input type="text" name="sarana_pelengkap_input[]" class="input w-full"
|
||||||
|
id="bentukTanahInput" placeholder="Masukkan {{ $item->name }}..."
|
||||||
|
value="{{ old('sarana_pelengkap_input.' . $loop->index, $forminspeksi['sarana_pelengkap_input'][$loop->index] ?? '') }}">
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<em id="error-kendaraan" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Kondisi</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input type="text" name="kondisi" class="input" placeholder="Masukkan Kondisi">
|
||||||
|
<em id="error-kondisi" class="alert text-danger text-sm"></em>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Nomor polisi</label>
|
||||||
|
<div class="mt-2">
|
||||||
|
@if (isset($permohonan->debiture->documents))
|
||||||
|
@foreach ($permohonan->debiture->documents as $item)
|
||||||
|
@php
|
||||||
|
$details = json_decode($item->detail);
|
||||||
|
$nomo_polisi = isset($details['nomo_polisi']) ? $details['nomo_polisi'] : 'N/A';
|
||||||
|
@endphp
|
||||||
|
<p class="text-2sm text-gray-700">{{ $nomo_polisi }} </p>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
<div class="flex-wrap items-stretch">
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
|
||||||
|
<label class="form-label flex items-center gap-3 text-nowrap">
|
||||||
|
<input type="radio" class="radio" name="nomor_polisi" value="sesuai"
|
||||||
|
onclick="toggleTidakSesuai('nomor_polisi', 'nomor_polis_tidak_sesuai')"
|
||||||
|
{{ old('nomor_polisi', $forminspeksi['nomor_polisi'] ?? '') == 'sesuai' ? 'checked' : '' }}>
|
||||||
|
<span class="ml-2">Sesuai</span>
|
||||||
|
</label>
|
||||||
|
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
||||||
|
<input type="radio" class="radio" name="nomor_polisi" value="tidak sesuai"
|
||||||
|
onclick="toggleTidakSesuai('nomor_polisi', 'nomor_polis_tidak_sesuai')"
|
||||||
|
{{ old('nomor_polisi', $forminspeksi['nomor_polisi'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
|
||||||
|
<span class="ml-2">Tidak Sesuai</span>
|
||||||
|
</label>
|
||||||
|
<input type="text" name="nomor_polis_tidak_sesuai" id="nomor_polis_tidak_sesuai"
|
||||||
|
class="input w-full" placeholder="Masukan Nomor polisi"
|
||||||
|
value="{{ old('nomor_polis_tidak_sesuai', $forminspeksi['nomor_polis_tidak_sesuai'] ?? '') }}"
|
||||||
|
style="{{ old('nomor_polisi', $forminspeksi['nomor_polisi'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
|
||||||
|
</div>
|
||||||
|
<em id="error-nomor_polisi" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Merek</label>
|
||||||
|
<div class="mt-2">
|
||||||
|
@if (isset($permohonan->debiture->documents))
|
||||||
|
@foreach ($permohonan->debiture->documents as $item)
|
||||||
|
@php
|
||||||
|
$details = json_decode($item->detail);
|
||||||
|
$merek = isset($details['merek']) ? $details['merek'] : 'N/A';
|
||||||
|
@endphp
|
||||||
|
<p class="text-2sm text-gray-700">{{ $merek }} </p>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
<div class="flex-wrap items-stretch">
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
|
||||||
|
<label class="form-label flex items-center gap-3 text-nowrap">
|
||||||
|
<input type="radio" class="radio" name="merek" value="sesuai"
|
||||||
|
onclick="toggleTidakSesuai('merek', 'merek_tidak_sesuai')"
|
||||||
|
{{ old('merek', $forminspeksi['merek'] ?? '') == 'sesuai' ? 'checked' : '' }}>
|
||||||
|
<span class="ml-2">Sesuai</span>
|
||||||
|
</label>
|
||||||
|
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
||||||
|
<input type="radio" class="radio" name="merek" value="tidak sesuai"
|
||||||
|
onclick="toggleTidakSesuai('merek', 'merek_tidak_sesuai')"
|
||||||
|
{{ old('merek', $forminspeksi['merek'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
|
||||||
|
<span class="ml-2">Tidak Sesuai</span>
|
||||||
|
</label>
|
||||||
|
<input type="text" name="merek_tidak_sesuai" id="merek_tidak_sesuai"
|
||||||
|
class="input w-full" placeholder="Masukan Merek"
|
||||||
|
value="{{ old('merek_tidak_sesuai', $forminspeksi['merek_tidak_sesuai'] ?? '') }}"
|
||||||
|
style="{{ old('merek', $forminspeksi['merek'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
|
||||||
|
</div>
|
||||||
|
<em id="error-merek" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Warna</label>
|
||||||
|
<div class="mt-2">
|
||||||
|
@if (isset($permohonan->debiture->documents))
|
||||||
|
@foreach ($permohonan->debiture->documents as $item)
|
||||||
|
@php
|
||||||
|
$details = json_decode($item->detail);
|
||||||
|
$warna = isset($details['warna']) ? $details['warna'] : 'N/A';
|
||||||
|
@endphp
|
||||||
|
<p class="text-2sm text-gray-700">{{ $warna }} </p>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
<div class="flex-wrap items-stretch">
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
|
||||||
|
<label class="form-label flex items-center gap-3 text-nowrap">
|
||||||
|
<input type="radio" class="radio" name="warna" value="sesuai"
|
||||||
|
onclick="toggleTidakSesuai('warna', 'warna_tidak_sesuai')"
|
||||||
|
{{ old('warna', $forminspeksi['warna'] ?? '') == 'sesuai' ? 'checked' : '' }}>
|
||||||
|
<span class="ml-2">Sesuai</span>
|
||||||
|
</label>
|
||||||
|
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
||||||
|
<input type="radio" class="radio" name="warna" value="tidak sesuai"
|
||||||
|
onclick="toggleTidakSesuai('warna', 'warna_tidak_sesuai')"
|
||||||
|
{{ old('warna', $forminspeksi['warna'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
|
||||||
|
<span class="ml-2">Tidak Sesuai</span>
|
||||||
|
</label>
|
||||||
|
<input type="text" name="warna_tidak_sesuai" id="warna_tidak_sesuai"
|
||||||
|
class="input w-full" placeholder="Masukan Warna"
|
||||||
|
value="{{ old('warna_tidak_sesuai', $forminspeksi['warna_tidak_sesuai'] ?? '') }}"
|
||||||
|
style="{{ old('warna', $forminspeksi['warna'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
|
||||||
|
</div>
|
||||||
|
<em id="error-warna" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Nomor Rangka</label>
|
||||||
|
<div class="mt-2">
|
||||||
|
@if (isset($permohonan->debiture->documents))
|
||||||
|
@foreach ($permohonan->debiture->documents as $item)
|
||||||
|
@php
|
||||||
|
$details = json_decode($item->detail);
|
||||||
|
$nomor_rangka = isset($details['nomor_rangka']) ? $details['nomor_rangka'] : 'N/A';
|
||||||
|
@endphp
|
||||||
|
<p class="text-2sm text-gray-700">{{ $nomor_rangka }} </p>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
<div class="flex-wrap items-stretch">
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
|
||||||
|
<label class="form-label flex items-center gap-3 text-nowrap">
|
||||||
|
<input type="radio" class="radio" name="nomor_rangka" value="sesuai"
|
||||||
|
onclick="toggleTidakSesuai('nomor_rangka', 'nomor_rangka_tidak_sesuai')"
|
||||||
|
{{ old('nomor_rangka', $forminspeksi['nomor_rangka'] ?? '') == 'sesuai' ? 'checked' : '' }}>
|
||||||
|
<span class="ml-2">Sesuai</span>
|
||||||
|
</label>
|
||||||
|
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
||||||
|
<input type="radio" class="radio" name="nomor_rangka" value="tidak sesuai"
|
||||||
|
onclick="toggleTidakSesuai('nomor_rangka', 'nomor_rangka_tidak_sesuai')"
|
||||||
|
{{ old('nomor_rangka', $forminspeksi['nomor_rangka'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
|
||||||
|
<span class="ml-2">Tidak Sesuai</span>
|
||||||
|
</label>
|
||||||
|
<input type="text" name="nomor_rangka_tidak_sesuai" id="nomor_rangka_tidak_sesuai"
|
||||||
|
class="input w-full" placeholder="Masukan Nomor Rangka"
|
||||||
|
value="{{ old('nomor_rangka_tidak_sesuai', $forminspeksi['nomor_rangka_tidak_sesuai'] ?? '') }}"
|
||||||
|
style="{{ old('nomor_rangka', $forminspeksi['nomor_rangka'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
|
||||||
|
</div>
|
||||||
|
<em id="error-nomor_rangka" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Nomor Mesin</label>
|
||||||
|
<div class="mt-2">
|
||||||
|
@if (isset($permohonan->debiture->documents))
|
||||||
|
@foreach ($permohonan->debiture->documents as $item)
|
||||||
|
@php
|
||||||
|
$details = json_decode($item->detail);
|
||||||
|
$nomor_mesin = isset($details['nomor_mesin']) ? $details['nomor_mesin'] : 'N/A';
|
||||||
|
@endphp
|
||||||
|
<p class="text-2sm text-gray-700">{{ $nomor_mesin }} </p>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
<div class="flex-wrap items-stretch">
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="grid grid-cols-3 md:grid-cols-3 gap-4 mt-2">
|
||||||
|
<label class="form-label flex items-center gap-3 text-nowrap">
|
||||||
|
<input type="radio" class="radio" name="nomor_mesin" value="sesuai"
|
||||||
|
onclick="toggleTidakSesuai('nomor_mesin', 'nomor_mesin_tidak_sesuai')"
|
||||||
|
{{ old('nomor_mesin', $forminspeksi['nomor_mesin'] ?? '') == 'sesuai' ? 'checked' : '' }}>
|
||||||
|
<span class="ml-2">Sesuai</span>
|
||||||
|
</label>
|
||||||
|
<label class="form-label flex items-center gap-2.5 text-nowrap">
|
||||||
|
<input type="radio" class="radio" name="nomor_mesin" value="tidak sesuai"
|
||||||
|
onclick="toggleTidakSesuai('nomor_mesin', 'nomor_mesin_tidak_sesuai')"
|
||||||
|
{{ old('nomor_mesin', $forminspeksi['nomor_mesin'] ?? '') == 'tidak sesuai' ? 'checked' : '' }}>
|
||||||
|
<span class="ml-2">Tidak Sesuai</span>
|
||||||
|
</label>
|
||||||
|
<input type="text" name="nomor_mesin_tidak_sesuai" id="nomor_mesin_tidak_sesuai"
|
||||||
|
class="input w-full" placeholder="Masukan Nomor Mesin"
|
||||||
|
value="{{ old('nomor_mesin_tidak_sesuai', $forminspeksi['nomor_mesin_tidak_sesuai'] ?? '') }}"
|
||||||
|
style="{{ old('nomor_mesin', $forminspeksi['nomor_mesin'] ?? '') == 'tidak sesuai' ? '' : 'display: none;' }}">
|
||||||
|
</div>
|
||||||
|
<em id="error-nomor_mesin" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Posisi Kilometer</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input type="text" name="posisi_kilometer" class="input" placeholder="Posisi Kilometer">
|
||||||
|
|
||||||
|
<em id="error-posisi_kilometer" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@php
|
||||||
|
$inputDataJaminan = [
|
||||||
|
[
|
||||||
|
'label' => 'Transmisi',
|
||||||
|
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
|
||||||
|
'name' => 'transmisi',
|
||||||
|
'index' => 0,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Mesin dan panel Instrument',
|
||||||
|
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
|
||||||
|
'name' => 'mesin_panel_instrument',
|
||||||
|
'index' => 1,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Fungsi Mesin dan panel Instument',
|
||||||
|
'value' => ['Berfungsi', 'Rusak'],
|
||||||
|
'name' => 'fungsi_mesin_panel_instrument',
|
||||||
|
'index' => 2,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Interior',
|
||||||
|
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
|
||||||
|
'name' => 'interior',
|
||||||
|
'index' => 3,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Jumlah pintu',
|
||||||
|
'value' => ['Dua Pintu', 'Empat Pintu', 'Lain-Lain'],
|
||||||
|
'name' => 'jumlah_pintu',
|
||||||
|
'index' => 4,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Rangka dan karoseri',
|
||||||
|
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
|
||||||
|
'name' => 'rangka_karoseri',
|
||||||
|
'index' => 5,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Ban',
|
||||||
|
'value' => ['Standard', 'Tidak Standard'],
|
||||||
|
'name' => 'ban',
|
||||||
|
'index' => 6,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Velg',
|
||||||
|
'value' => ['Standard', 'Tidak Standard'],
|
||||||
|
'name' => 'velg',
|
||||||
|
'index' => 7,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Bamper Depan',
|
||||||
|
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
|
||||||
|
'name' => 'bamper_depan',
|
||||||
|
'index' => 8,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Bamper Belakang',
|
||||||
|
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
|
||||||
|
'name' => 'bamper_belakang',
|
||||||
|
'index' => 9,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Lampu depan',
|
||||||
|
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
|
||||||
|
'name' => 'lampu_depan',
|
||||||
|
'index' => 10,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Lampu belakang',
|
||||||
|
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
|
||||||
|
'name' => 'lampu_belakang',
|
||||||
|
'index' => 11,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Kaca kendaraan',
|
||||||
|
'value' => ['Terawat', 'Cukup Terawat', 'Tidak Terawat'],
|
||||||
|
'name' => 'kaca_kendaraan',
|
||||||
|
'index' => 12,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Air Conditioner',
|
||||||
|
'value' => ['Ada', 'Tidak Ada'],
|
||||||
|
'name' => 'air_conditioner',
|
||||||
|
'index' => 13,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Tape/Radio/CD dan perlengkapan (Equalizer, Booster, dll)',
|
||||||
|
'value' => ['Ada', 'Tidak Ada'],
|
||||||
|
'name' => 'tape_radio_cd',
|
||||||
|
'index' => 14,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Sensor parkir',
|
||||||
|
'value' => ['Ada', 'Tidak Ada'],
|
||||||
|
'name' => 'sensor_parkir',
|
||||||
|
'index' => 15,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Sensor Camera (360), Recorder',
|
||||||
|
'value' => ['Ada', 'Tidak Ada'],
|
||||||
|
'name' => 'sensor_camera_recorder',
|
||||||
|
'index' => 16,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Lcd',
|
||||||
|
'value' => ['Ada', 'Tidak Ada'],
|
||||||
|
'name' => 'lcd',
|
||||||
|
'index' => 17,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Sabuk Keselamatan',
|
||||||
|
'value' => ['Ada', 'Tidak Ada'],
|
||||||
|
'name' => 'sabuk_keselamatan',
|
||||||
|
'index' => 18,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Airbag',
|
||||||
|
'value' => ['Ada', 'Tidak Ada'],
|
||||||
|
'name' => 'airbag',
|
||||||
|
'index' => 19,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Asuransi',
|
||||||
|
'value' => ['Ada', 'Tidak Ada'],
|
||||||
|
'name' => 'asuransi',
|
||||||
|
'index' => 20,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
@endphp
|
||||||
|
|
||||||
|
@if (count($inputDataJaminan) > 0)
|
||||||
|
@foreach ($inputDataJaminan as $item)
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="flex flex-col items-start gap-4">
|
||||||
|
@if (isset($item['value']))
|
||||||
|
@foreach ($item['value'] as $value)
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56 gap-2.5" style="width: 500px">
|
||||||
|
<input class="checkbox" name="{{ $item['name'] }}[]" type="checkbox"
|
||||||
|
value="{{ $value }}"
|
||||||
|
{{ in_array($value, old($item['name'], $forminspeksi[$item['name']] ?? [])) ? 'checked' : '' }} />
|
||||||
|
{{ $value }}
|
||||||
|
</label>
|
||||||
|
<input type="text" name="{{ $item['name'] }}_input[]"
|
||||||
|
class="input w-full"
|
||||||
|
id="bentukTanahInput-{{ $loop->parent->index }}-{{ $loop->index }}"
|
||||||
|
placeholder="Masukkan {{ $value }}..."
|
||||||
|
value="{{ old($item['name'] . '_input.' . $loop->index, $forminspeksi[$item['name'] . '_input'][$loop->index] ?? '') }}">
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="w-full">
|
||||||
|
<em id="error-{{ $item['name'] }}" class="alert text-danger text-sm"></em>
|
||||||
|
<em id="error-{{ $item['name'] }}-input-{{ $loop->index }}"
|
||||||
|
class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Deskripsi/Keterangan Lain Lain </label>
|
<label class="form-label max-w-56">Perusahaan Asuransi</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<textarea name="deskripsi" id="" class="textarea"></textarea>
|
<input type="text" name="perusahaan_asuransi" class="input"
|
||||||
@error('deskripsi')
|
placeholder="Pesurahaan Asuransi">
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Tahun Berakhir</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input type="date" name="tahun_berakhir" class="input" placeholder="Tahun berakhir">
|
||||||
|
<em class="alert text-danger text-sm"></em>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="card bg-white rounded-lg overflow-hidden">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class=" py-4 ">
|
||||||
|
<h1 class="text-md font-medium text-gray-900">Analisis Fakta</h1>
|
||||||
|
</div>
|
||||||
|
<div class="grid gap-5">
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Faktor Positif</label>
|
||||||
|
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
|
<textarea class="textarea mt-2" name="fakta_positif[]" rows="3">{{ old('fakta_positif.0', $forminspeksi['fakta_positif'][0] ?? '') }}</textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
|
<em id="error-fakta_positif" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn btn-primary btn-sm mt-5"
|
||||||
|
onclick="addClonableItem('fakta-positif-container', 'fakta_positif')">
|
||||||
|
<i class="ki-outline ki-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Faktor Negatif</label>
|
||||||
|
<div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
|
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="3">{{ old('fakta_negatif.0', $forminspeksi['fakta_negatif'][0] ?? '') }}</textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
|
<em id="error-fakta_negatif" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn btn-primary btn-sm mt-5"
|
||||||
|
onclick="addClonableItem('fakta-negatif-container', 'fakta_negatif')">
|
||||||
|
<i class="ki-outline ki-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Analisa makro</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full" id="analisa-makro-container">
|
||||||
|
<div class="analisa_makro flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
|
<textarea class="textarea mt-2" name="analisa_makro[]" rows="3" placeholder="Tambahkan keterangan"></textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
|
<em id="error-analisa_makro" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button class="btn btn-primary btn-sm mt-5" type="button"
|
||||||
|
onclick="addClonableItem('analisa-makro-container', 'analisa_makro')">
|
||||||
|
<i class="ki-outline ki-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Kesimpulan</label>
|
||||||
|
<div id="kesimpulan-container" class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="kesimpulan flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
|
<textarea class="textarea mt-2" name="kesimpulan[]" rows="3">{{ old('kesimpulan.0', $forminspeksi['kesimpulan'][0] ?? '') }}</textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
|
<em id="error-kesimpulan" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
<button type="button"
|
||||||
|
onclick="addClonableItem('kesimpulan-container', 'kesimpulan')"
|
||||||
|
class="btn btn-primary btn-sm mt-5 ">
|
||||||
|
<i class="ki-outline ki-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Catatan Lainnya</label>
|
||||||
|
<div id="catatan-container" class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="catatan flex items-center gap-2 mt-2 textarea-group w-full">
|
||||||
|
<textarea class="textarea mt-2" name="catatan[]" rows="3">{{ old('catatan.0', $forminspeksi['catatan'][0] ?? '') }}</textarea>
|
||||||
|
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||||
|
<i class="ki-outline ki-trash"></i>
|
||||||
|
</button>
|
||||||
|
<em id="error-catatan" class="alert text-danger text-sm"></em>
|
||||||
|
</div>
|
||||||
|
<button type="button"
|
||||||
|
onclick="addClonableItem('catatan-container', 'catatan')"
|
||||||
|
class="btn btn-primary btn-sm mt-5 ">
|
||||||
|
<i class="ki-outline ki-plus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -8,13 +8,13 @@
|
|||||||
|
|
||||||
$inputDataLoaksi = [];
|
$inputDataLoaksi = [];
|
||||||
$inputDataLoaksi = [
|
$inputDataLoaksi = [
|
||||||
['label' => 'Nama Jalan', 'index' => 0, 'name' => 'nama_jalan', 'value' => old('lokasi_jalan', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_jalan : '')],
|
['label' => 'Nama Jalan', 'index' => 0, 'name' => 'nama_jalan', 'value' => old('nama_jalan', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_jalan : '')],
|
||||||
['label' => 'Perumahan/Gang', 'index' => 1, 'name' => 'perumahan_gang', 'value' => old('lokasi_perumahan_gang', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_perumahan_gang : '')],
|
['label' => 'Perumahan/Gang', 'index' => 1, 'name' => 'perumahan_gang', 'value' => old('lokasi_perumahan_gang', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_perumahan_gang : '')],
|
||||||
['label' => 'Blok/Nomor', 'index' => 2, 'name' => 'blok_nomor', 'value' => old('lokasi_blok_nomor', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_blok_nomor : '')],
|
['label' => 'Blok/Nomor', 'index' => 2, 'name' => 'blok_nomor', 'value' => old('blok_nomor', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_blok_nomor : '')],
|
||||||
['label' => 'Desa/Kelurahan', 'index' => 3, 'name' => 'desa_kelurahan', 'value' => old('lokasi_desa_kelurahan', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_desa_kelurahan : '')],
|
['label' => 'Desa/Kelurahan', 'index' => 3, 'name' => 'desa_kelurahan', 'value' => old('desa_kelurahan', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_desa_kelurahan : '')],
|
||||||
['label' => 'Kecamatan', 'index' => 4, 'name' => 'kecamatan' , 'value' => old('lokasi_kecamatan', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_kecamatan : '')],
|
['label' => 'Kecamatan', 'index' => 4, 'name' => 'kecamatan' , 'value' => old('kecamatan', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_kecamatan : '')],
|
||||||
['label' => 'Kota/Kotamadya', 'index' => 5, 'name' => 'kota_kotamadya', 'value' => old('lokasi_kota_kotamadya', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_kota_kotamadya : '')],
|
['label' => 'Kota/Kotamadya', 'index' => 5, 'name' => 'kota_madya', 'value' => old('kota_madya', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_kota_kotamadya : '')],
|
||||||
['label' => 'Provinsi', 'index' => 6, 'name' => 'provinsi', 'value' => old('lokasi_provinsi', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_provinsi : '')],
|
['label' => 'Provinsi', 'index' => 6, 'name' => 'provinsi', 'value' => old('provinsi', isset($analisa->analisaLingkungan) ? $analisa->analisaLingkungan->lokasi_provinsi : '')],
|
||||||
];
|
];
|
||||||
|
|
||||||
@endphp
|
@endphp
|
||||||
|
|||||||
@@ -1,27 +1,97 @@
|
|||||||
|
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="py-4 px-6">
|
||||||
|
<h1 class="text-md font-medium text-gray-900">Order Penilaian</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid gap-5 grid-cols-2">
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Tujuan Penilaian</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->tujuanPenilaian))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->tujuanPenilaian->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Tanggal Survey</label>
|
||||||
|
<div class="flex flex-wrap items-base line w-full">
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->created_at->format('d/m/Y') }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Cab/Direktorat</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->branch))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->branch->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">AO</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->user))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->user->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
|
|
||||||
|
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
|
||||||
|
<div class="card-body">
|
||||||
<div class="py-4 px-6">
|
<div class="py-4 px-6">
|
||||||
<h1 class="text-md font-medium text-gray-900">Identitas Debitur</h1>
|
<h1 class="text-md font-medium text-gray-900">Identitas Debitur</h1>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="grid gap-5">
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Nama Calon Debitur</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if (isset($permohonan->debiture->name))
|
||||||
|
<p class="text-2sm text-gray-700">{{ $permohonan->debiture->name }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">Nama Wakil Debitur</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input type="text" name="nama_wakil" class="input"
|
||||||
|
placeholder="Masukkan Hubungan Calon Debitur">
|
||||||
|
|
||||||
|
<em id="error-nama_wakil" class="alert text-danger text-sm"></em>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Hubungan Calon Debitur</label>
|
<label class="form-label max-w-56">Hubungan Calon Debitur</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="bentuk_tanah" class="input"
|
<input type="text" name="hub_calon_debitur" class="input"
|
||||||
placeholder="Masukkan Hubungan Calon Debitur">
|
placeholder="Masukkan Hubungan Calon Debitur">
|
||||||
|
|
||||||
@error('bentuk_tanah')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error-hub_calon_debitur" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{-- lokasi jaminan --}}
|
{{-- lokasi jaminan --}}
|
||||||
@include('lpj::surveyor.components.lokasi-jaminan')
|
@include('lpj::surveyor.components.lokasi-jaminan')
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class=""max-w-4xl mx-auto bg-white rounded-lg shadow-md overflow-hidden">
|
<div class="card bg-white rounded-lg shadow-md overflow-hidden">
|
||||||
|
<div class="card-body">
|
||||||
<div class="py-4 px-6">
|
<div class="py-4 px-6">
|
||||||
<h1 class="text-md font-medium text-gray-900">Data Data Jaminan</h1>
|
<h1 class="text-md font-medium text-gray-900">Data Data Jaminan</h1>
|
||||||
</div>
|
</div>
|
||||||
@@ -29,7 +99,8 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">Model</label>
|
<label class="form-label max-w-56">Model</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<select class="input tomselect w-full @error('hadapMataAngin') border-danger bg-danger-light @enderror"
|
<select
|
||||||
|
class="input tomselect w-full @error('hadapMataAngin') border-danger bg-danger-light @enderror"
|
||||||
name="hadapMataAngin">
|
name="hadapMataAngin">
|
||||||
<option value="">Select Model Kendaraan </option>
|
<option value="">Select Model Kendaraan </option>
|
||||||
@if (isset($arahMataAngin))
|
@if (isset($arahMataAngin))
|
||||||
@@ -51,11 +122,31 @@
|
|||||||
$inputDataJaminan = [];
|
$inputDataJaminan = [];
|
||||||
|
|
||||||
$inputDataJaminan = [
|
$inputDataJaminan = [
|
||||||
['label' => 'Tipe/Model', 'index' => 0],
|
[
|
||||||
['label' => 'Merek', 'index' => 1],
|
'label' => 'Tipe/Model',
|
||||||
['label' => 'Tahun Pembuatan', 'index' => 2],
|
'name' => 'tipe_model',
|
||||||
['label' => 'Negara Pembuat', 'index' => 3],
|
'index' => 0,
|
||||||
['label' => 'Kondisi Mesin', 'index' => 4],
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Merek',
|
||||||
|
'name' => 'merek',
|
||||||
|
'index' => 1,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Tahun Pembuatan',
|
||||||
|
'name' => 'tahun_pembuatan',
|
||||||
|
'index' => 2,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Negara Pembuat',
|
||||||
|
'name' => 'negara_pembuat',
|
||||||
|
'index' => 3,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Kondisi Mesin',
|
||||||
|
'name' => 'kondisi_mesin',
|
||||||
|
'index' => 4,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@@ -65,12 +156,12 @@
|
|||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
<label class="form-label max-w-56">{{ $item['label'] }}</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input type="text" name="bentuk_tanah" class="input"
|
<input type="text" name="{{ $item['name'] }}" class="input"
|
||||||
placeholder="Masukkan {{ $item['label'] }}">
|
placeholder="Masukkan {{ $item['label'] }}">
|
||||||
|
|
||||||
@error('bentuk_tanah')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em id="error-{{ $item['name'] }}" class="alert text-danger text-sm"></em>
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -93,7 +184,5 @@
|
|||||||
<i class="ki-filled ki-plus"></i>
|
<i class="ki-filled ki-plus"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -316,9 +316,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function toggleJenisAsset(params) {
|
function toggleJenisAsset(params) {
|
||||||
const inputData = document.querySelector(`input[name="${params}"]:checked`);
|
const inputData = document.querySelector(`input[name="${params}"]:checked`);
|
||||||
const luasTanah = document.getElementById('jenis_asset');
|
const luasTanah = document.getElementById('jenis_asset');
|
||||||
@@ -347,25 +344,5 @@
|
|||||||
const selectElement = document.getElementById('selectTidakSesuai');
|
const selectElement = document.getElementById('selectTidakSesuai');
|
||||||
selectElement.style.display = showSelect ? 'block' : 'none';
|
selectElement.style.display = showSelect ? 'block' : 'none';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const perwakilanContainer = document.getElementById('perwakilan');
|
|
||||||
const addPerwakilanButton = document.getElementById('addPerwakilan');
|
|
||||||
|
|
||||||
// Tambahkan event listener untuk tombol "Tambah"
|
|
||||||
addPerwakilanButton.addEventListener('click', function() {
|
|
||||||
// Clone elemen ".perwakilan"
|
|
||||||
const newDiv = perwakilanContainer.querySelector('.perwakilan').cloneNode(true);
|
|
||||||
|
|
||||||
newDiv.querySelector('input').value = '';
|
|
||||||
const deleteButton = newDiv.querySelector('.delete-button');
|
|
||||||
deleteButton.style.display = 'inline-block';
|
|
||||||
|
|
||||||
deleteButton.addEventListener('click', function() {
|
|
||||||
newDiv.remove();
|
|
||||||
});
|
|
||||||
|
|
||||||
perwakilanContainer.appendChild(newDiv);
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
@endpush
|
@endpush
|
||||||
|
|||||||
@@ -18,45 +18,7 @@
|
|||||||
@endpush
|
@endpush
|
||||||
|
|
||||||
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||||
<div class="card">
|
|
||||||
<div class="card-header" id="advanced_settings_appearance">
|
|
||||||
<h3 class="card-title">
|
|
||||||
Surveyor
|
|
||||||
</h3>
|
|
||||||
<div class="flex items-center gap-2">
|
|
||||||
<a href="{{ route('surveyor.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i>
|
|
||||||
Back</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="card-body lg:py-7.5 grid grid-cols-3">
|
|
||||||
<div class="mb-5">
|
|
||||||
<h3 class="text-md font-medium text-gray-900">
|
|
||||||
Nomor Register Permohonan:
|
|
||||||
</h3>
|
|
||||||
<span class="text-2sm text-gray-700">
|
|
||||||
{{ $permohonan->nomor_registrasi }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mb-5">
|
|
||||||
<h3 class="text-md font-medium text-gray-900">
|
|
||||||
Waktu Survei:
|
|
||||||
</h3>
|
|
||||||
<span class="text-2sm text-gray-700">
|
|
||||||
{{ $permohonan->penilaian->tanggal_kunjungan }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mb-5">
|
|
||||||
<h3 class="text-md font-medium text-gray-900">
|
|
||||||
Keterangan:
|
|
||||||
</h3>
|
|
||||||
<span class="text-2sm text-gray-700">
|
|
||||||
{{ $permohonan->penilaian->keterangan }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@include('lpj::component.detail-jaminan',['backLink'=>'surveyor.index'])
|
@include('lpj::component.detail-jaminan',['backLink'=>'surveyor.index'])
|
||||||
|
|
||||||
@@ -74,17 +36,17 @@
|
|||||||
<a href="{{ route('surveyor.show', array_merge(request()->query(), ['id' => $surveyor, 'form' => 'foto'])) }}"
|
<a href="{{ route('surveyor.show', array_merge(request()->query(), ['id' => $surveyor, 'form' => 'foto'])) }}"
|
||||||
class="btn btn-xs {{ request()->has('form') && request('form') == 'foto' ? 'btn-outline btn-primary' : 'btn-light' }}">FOTO</a>
|
class="btn btn-xs {{ request()->has('form') && request('form') == 'foto' ? 'btn-outline btn-primary' : 'btn-light' }}">FOTO</a>
|
||||||
|
|
||||||
{{-- <a href="{{ route('surveyor.show', array_merge(request()->query(), ['id' => $surveyor, 'form' => 'data-pembanding'])) }}"
|
<a href="{{ route('surveyor.show', array_merge(request()->query(), ['id' => $surveyor, 'form' => 'data-pembanding'])) }}"
|
||||||
class="btn btn-xs {{ request()->has('form') && request('form') == 'data-pembanding' ? 'btn-outline btn-primary' : 'btn-light' }}">DATA
|
class="btn btn-xs {{ request()->has('form') && request('form') == 'data-pembanding' ? 'btn-outline btn-primary' : 'btn-light' }}">DATA
|
||||||
PEMBANDING</a> --}}
|
PEMBANDING</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@if (request()->has('form') && request('form') == 'denah')
|
@if (request()->has('form') && request('form') == 'denah')
|
||||||
@include('lpj::surveyor.components.card-tambah')
|
@include('lpj::surveyor.components.card-tambah')
|
||||||
{{-- @elseif(request()->has('form') && request('form') == 'data-pembanding')
|
@elseif(request()->has('form') && request('form') == 'data-pembanding')
|
||||||
@include('lpj::surveyor.components.data-pembanding') --}}
|
@include('lpj::surveyor.components.card-tambah')
|
||||||
@elseif(request()->has('form') && request('form') == 'foto')
|
@elseif(request()->has('form') && request('form') == 'foto')
|
||||||
@include('lpj::surveyor.components.card-tambah')
|
@include('lpj::surveyor.components.card-tambah')
|
||||||
@else
|
@else
|
||||||
@@ -94,9 +56,7 @@
|
|||||||
|
|
||||||
<div class="card-footer ">
|
<div class="card-footer ">
|
||||||
<div class="flex gap-5">
|
<div class="flex gap-5">
|
||||||
<button type="button" id="btnProses" class="btn btn-success">
|
|
||||||
Proses
|
|
||||||
</button>
|
|
||||||
<button type="button" id="btnSubmit" class="btn btn-primary">
|
<button type="button" id="btnSubmit" class="btn btn-primary">
|
||||||
Submit
|
Submit
|
||||||
</button>
|
</button>
|
||||||
@@ -111,8 +71,6 @@
|
|||||||
<script>
|
<script>
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
checkButtonStatus();
|
checkButtonStatus();
|
||||||
|
|
||||||
document.getElementById('btnProses').addEventListener('click', onProses);
|
|
||||||
document.getElementById('btnSubmit').addEventListener('click', onSubmit);
|
document.getElementById('btnSubmit').addEventListener('click', onSubmit);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -143,7 +101,7 @@
|
|||||||
function onSubmit() {
|
function onSubmit() {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "{{ route('surveyor.submitSurveyor', ['id' => $surveyor]) }}",
|
url: "{{ route('surveyor.submitSurveyor', ['id' => $surveyor]) }}",
|
||||||
type: "GET",
|
type: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5,26 +5,11 @@
|
|||||||
@endsection
|
@endsection
|
||||||
@section('content')
|
@section('content')
|
||||||
@push('styles')
|
@push('styles')
|
||||||
<style>
|
|
||||||
.modal {
|
|
||||||
|
|
||||||
width: 50%;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
position: fixed;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@endpush
|
@endpush
|
||||||
|
|
||||||
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||||
<div class="card pb-2.5">
|
<div class="card card-grid min-w-full" data-datatable="false" data-datatable-page-size="5"
|
||||||
|
|
||||||
|
|
||||||
<div class="card-grid min-w-full" data-datatable="false" data-datatable-page-size="5"
|
|
||||||
data-datatable-state-save="false" id="permohonan-table" data-api-url="{{ route('surveyor.datatables') }}">
|
data-datatable-state-save="false" id="permohonan-table" data-api-url="{{ route('surveyor.datatables') }}">
|
||||||
<div class="card-header py-5 flex-wrap">
|
<div class="card-header py-5 flex-wrap">
|
||||||
<h3 class="card-title">
|
<h3 class="card-title">
|
||||||
@@ -109,7 +94,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@@ -215,14 +200,13 @@ function jadwal(id){
|
|||||||
return `${day}-${month}-${year}`;
|
return `${day}-${month}-${year}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ihfdksfjhjfjbkdfkdsfdsjkjdjdsgjjgdgjhgdgjkhdshggkhgkhdghskghkjkhjsdgjkgdjhg
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@endpush
|
@endpush
|
||||||
|
|
||||||
<div class="modal fade" data-modal="true" id="modal_jadwal" data-backdrop="static" data-keyboard="false">
|
<div class="modal" data-modal="true" id="modal_jadwal" >
|
||||||
<div class="modal-content">
|
<div class="modal-content max-w-[600px] top-[10%]">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h3 class="modal-title">Kunjungan</h3>
|
<h3 class="modal-title">Kunjungan</h3>
|
||||||
<button class="btn btn-xs btn-icon btn-light" data-modal-dismiss="true">
|
<button class="btn btn-xs btn-icon btn-light" data-modal-dismiss="true">
|
||||||
@@ -233,7 +217,7 @@ function jadwal(id){
|
|||||||
<form action="{{ route('surveyor.storeJadwal')}}" method="POST" enctype="multipart/form-data" id="revisiForm">
|
<form action="{{ route('surveyor.storeJadwal')}}" method="POST" enctype="multipart/form-data" id="revisiForm">
|
||||||
@method('put')
|
@method('put')
|
||||||
@csrf
|
@csrf
|
||||||
<input id="ids" type="text" name="id">
|
<input id="ids" type="hidden" name="id">
|
||||||
|
|
||||||
<div class="pl-1 grid gap-2.5">
|
<div class="pl-1 grid gap-2.5">
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
|||||||
@@ -469,7 +469,11 @@ $basicDataRoutes = [
|
|||||||
'lantai-unit' => 'Lantai Unit',
|
'lantai-unit' => 'Lantai Unit',
|
||||||
'view-unit' => 'View Unit',
|
'view-unit' => 'View Unit',
|
||||||
'bentuk-unit' => 'Bentuk unit',
|
'bentuk-unit' => 'Bentuk unit',
|
||||||
'perkerasan-jalan' => 'Perkerasan jalan'
|
'perkerasan-jalan' => 'Perkerasan jalan',
|
||||||
|
'jenis-pesawat' => 'Jenis pesawat',
|
||||||
|
'model-alat-berat' => 'Model Alat Berat',
|
||||||
|
'jenis-kapal' => 'Jenis kapal',
|
||||||
|
'jenis-kendaraan' => 'Jenis kendaraan',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
@@ -560,5 +564,10 @@ Breadcrumbs::for('sla', function (BreadcrumbTrail $trail) {
|
|||||||
$trail->push('SLA', route('basicdata.sla.index'));
|
$trail->push('SLA', route('basicdata.sla.index'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
Breadcrumbs::for('persetujuan-penawaran', function (BreadcrumbTrail $trail) {
|
||||||
|
$trail->push('Persetujuan Penawaran', route('persetujuan-penawaran.index'));
|
||||||
|
});
|
||||||
|
|
||||||
// add andy
|
// add andy
|
||||||
require __DIR__ . '/breadcrumbs_registrasi.php';
|
require __DIR__ . '/breadcrumbs_registrasi.php';
|
||||||
|
|||||||
162
routes/web.php
162
routes/web.php
@@ -1,38 +1,40 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use Modules\Lpj\Http\Controllers\SLAController;
|
use Modules\Lpj\Http\Controllers\ActivityController;
|
||||||
use Modules\Lpj\Http\Controllers\KJPPController;
|
use Modules\Lpj\Http\Controllers\ArahMataAnginController;
|
||||||
use Modules\Lpj\Http\Controllers\TeamsController;
|
use Modules\Lpj\Http\Controllers\DebitureController;
|
||||||
use Modules\Lpj\Http\Controllers\RegionController;
|
use Modules\Lpj\Http\Controllers\DokumenJaminanController;
|
||||||
use Modules\Lpj\Http\Controllers\ResumeController;
|
use Modules\Lpj\Http\Controllers\HubunganPemilikJaminanController;
|
||||||
use Modules\Lpj\Http\Controllers\TenderController;
|
use Modules\Lpj\Http\Controllers\HubunganPenghuniJaminanController;
|
||||||
use Modules\Lpj\Http\Controllers\LaporanController;
|
use Modules\Lpj\Http\Controllers\IjinUsahaController;
|
||||||
use Modules\Lpj\Http\Controllers\PenilaiController;
|
use Modules\Lpj\Http\Controllers\JenisDokumenController;
|
||||||
use Modules\Lpj\Http\Controllers\ActivityController;
|
use Modules\Lpj\Http\Controllers\JenisFasilitasKreditController;
|
||||||
use Modules\Lpj\Http\Controllers\DebitureController;
|
use Modules\Lpj\Http\Controllers\JenisJaminanController;
|
||||||
use Modules\Lpj\Http\Controllers\SurveyorController;
|
use Modules\Lpj\Http\Controllers\JenisLaporanController;
|
||||||
use Modules\Lpj\Http\Controllers\IjinUsahaController;
|
use Modules\Lpj\Http\Controllers\JenisLegalitasJaminanController;
|
||||||
use Modules\Lpj\Http\Controllers\PenilaianController;
|
use Modules\Lpj\Http\Controllers\JenisPenilaianController;
|
||||||
use Modules\Lpj\Http\Controllers\PermohonanController;
|
use Modules\Lpj\Http\Controllers\KJPPController;
|
||||||
use Modules\Lpj\Http\Controllers\JenisDokumenController;
|
use Modules\Lpj\Http\Controllers\LaporanController;
|
||||||
use Modules\Lpj\Http\Controllers\JenisJaminanController;
|
use Modules\Lpj\Http\Controllers\NilaiPlafondController;
|
||||||
use Modules\Lpj\Http\Controllers\JenisLaporanController;
|
use Modules\Lpj\Http\Controllers\PemilikJaminanController;
|
||||||
use Modules\Lpj\Http\Controllers\NilaiPlafondController;
|
use Modules\Lpj\Http\Controllers\PenilaianController;
|
||||||
use Modules\Lpj\Http\Controllers\ArahMataAnginController;
|
use Modules\Lpj\Http\Controllers\PenilaiController;
|
||||||
use Modules\Lpj\Http\Controllers\DokumenJaminanController;
|
use Modules\Lpj\Http\Controllers\PermohonanController;
|
||||||
use Modules\Lpj\Http\Controllers\JenisPenilaianController;
|
use Modules\Lpj\Http\Controllers\PersetujuanPenawaranController;
|
||||||
use Modules\Lpj\Http\Controllers\PemilikJaminanController;
|
use Modules\Lpj\Http\Controllers\RegionController;
|
||||||
use Modules\Lpj\Http\Controllers\TujuanPenilaianController;
|
use Modules\Lpj\Http\Controllers\ResumeController;
|
||||||
use Modules\Lpj\Http\Controllers\StatusPermohonanController;
|
use Modules\Lpj\Http\Controllers\SLAController;
|
||||||
use Modules\Lpj\Http\Controllers\TujuanPenilaianKJPPController;
|
use Modules\Lpj\Http\Controllers\StatusPermohonanController;
|
||||||
use Modules\Lpj\Http\Controllers\JenisFasilitasKreditController;
|
use Modules\Lpj\Http\Controllers\SurveyorController;
|
||||||
use Modules\Lpj\Http\Controllers\JenisLegalitasJaminanController;
|
use Modules\Lpj\Http\Controllers\TeamsController;
|
||||||
// use Modules\Lpj\Http\Controllers\ActivityController;
|
use Modules\Lpj\Http\Controllers\TenderController;
|
||||||
use Modules\Lpj\Http\Controllers\HubunganPemilikJaminanController;
|
use Modules\Lpj\Http\Controllers\TujuanPenilaianController;
|
||||||
use Modules\Lpj\Http\Controllers\HubunganPenghuniJaminanController;
|
use Modules\Lpj\Http\Controllers\TujuanPenilaianKJPPController;
|
||||||
|
|
||||||
/*
|
// use Modules\Lpj\Http\Controllers\ActivityController;
|
||||||
|
|
||||||
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Web Routes
|
| Web Routes
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@@ -43,7 +45,7 @@ use Modules\Lpj\Http\Controllers\HubunganPenghuniJaminanController;
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Route::middleware(['auth'])->group(function () {
|
Route::middleware(['auth'])->group(function () {
|
||||||
Route::get('api/check-penawaran/{nomor_registrasi}', [TenderController::class, 'checkPenawaranExistence']);
|
Route::get('api/check-penawaran/{nomor_registrasi}', [TenderController::class, 'checkPenawaranExistence']);
|
||||||
|
|
||||||
Route::name('basicdata.')->prefix('basic-data')->group(function () {
|
Route::name('basicdata.')->prefix('basic-data')->group(function () {
|
||||||
@@ -66,7 +68,8 @@ Route::middleware(['auth'])->group(function () {
|
|||||||
Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class);
|
Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class);
|
||||||
|
|
||||||
Route::name('jenis-jaminan.')->prefix('jenis-jaminan')->group(function () {
|
Route::name('jenis-jaminan.')->prefix('jenis-jaminan')->group(function () {
|
||||||
Route::get('legalitas/{id}/{jenisJaminanId}', [DokumenJaminanController::class, 'getLegalitasJaminan'])->name('legalitas');
|
Route::get('legalitas/{id}/{jenisJaminanId}', [DokumenJaminanController::class, 'getLegalitasJaminan'])
|
||||||
|
->name('legalitas');
|
||||||
Route::get('restore/{id}', [JenisJaminanController::class, 'restore'])->name('restore');
|
Route::get('restore/{id}', [JenisJaminanController::class, 'restore'])->name('restore');
|
||||||
Route::get('datatables', [JenisJaminanController::class, 'dataForDatatables'])->name('datatables');
|
Route::get('datatables', [JenisJaminanController::class, 'dataForDatatables'])->name('datatables');
|
||||||
Route::get('export', [JenisJaminanController::class, 'export'])->name('export');
|
Route::get('export', [JenisJaminanController::class, 'export'])->name('export');
|
||||||
@@ -263,7 +266,9 @@ Route::middleware(['auth'])->group(function () {
|
|||||||
// End Activity Jenis Laporan route
|
// End Activity Jenis Laporan route
|
||||||
|
|
||||||
// basic data surveyor
|
// basic data surveyor
|
||||||
Route::get('datatablesSurveyory/{type}', [SurveyorController::class, 'dataForDatatablesData'])->name('datatablesSurveyory');
|
Route::get('datatablesSurveyory/{type}', [SurveyorController::class, 'dataForDatatablesData'])->name(
|
||||||
|
'datatablesSurveyory',
|
||||||
|
);
|
||||||
Route::get('createData/{type}', [SurveyorController::class, 'createData'])->name('createData');
|
Route::get('createData/{type}', [SurveyorController::class, 'createData'])->name('createData');
|
||||||
Route::get('/{type}/{id}', [SurveyorController::class, 'editData'])->name('editData');
|
Route::get('/{type}/{id}', [SurveyorController::class, 'editData'])->name('editData');
|
||||||
Route::post('storeData/{type}', [SurveyorController::class, 'storeData'])->name('storeData');
|
Route::post('storeData/{type}', [SurveyorController::class, 'storeData'])->name('storeData');
|
||||||
@@ -295,12 +300,14 @@ Route::middleware(['auth'])->group(function () {
|
|||||||
'view-unit' => 'View Unit',
|
'view-unit' => 'View Unit',
|
||||||
'bentuk-unit' => 'Bentuk unit',
|
'bentuk-unit' => 'Bentuk unit',
|
||||||
'perkerasan-jalan' => 'Perkerasan jalan',
|
'perkerasan-jalan' => 'Perkerasan jalan',
|
||||||
|
'jenis-pesawat' => 'Jenis pesawat',
|
||||||
|
'model-alat-berat' => 'Model Alat Berat',
|
||||||
|
'jenis-kapal' => 'Jenis kapal',
|
||||||
|
'jenis-kendaraan' => 'Jenis kendaraan',
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($headers as $type => $header) {
|
foreach ($headers as $type => $header) {
|
||||||
Route::get($type, [SurveyorController::class, 'data'])
|
Route::get($type, [SurveyorController::class, 'data'])->name($type . '.index')->defaults('type', $type);
|
||||||
->name($type . '.index')
|
|
||||||
->defaults('type', $type);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -309,7 +316,6 @@ Route::middleware(['auth'])->group(function () {
|
|||||||
Route::get('datatables', [DebitureController::class, 'dataForDatatables'])->name('datatables');
|
Route::get('datatables', [DebitureController::class, 'dataForDatatables'])->name('datatables');
|
||||||
Route::get('export', [DebitureController::class, 'export'])->name('export');
|
Route::get('export', [DebitureController::class, 'export'])->name('export');
|
||||||
|
|
||||||
|
|
||||||
Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () {
|
Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () {
|
||||||
Route::get('download', [DokumenJaminanController::class, 'download'])->name('download');
|
Route::get('download', [DokumenJaminanController::class, 'download'])->name('download');
|
||||||
Route::get('bulk-download', [DokumenJaminanController::class, 'bulkDownload'])->name('bulk.download');
|
Route::get('bulk-download', [DokumenJaminanController::class, 'bulkDownload'])->name('bulk.download');
|
||||||
@@ -391,18 +397,33 @@ Route::middleware(['auth'])->group(function () {
|
|||||||
'penawaran.datatables',
|
'penawaran.datatables',
|
||||||
);
|
);
|
||||||
Route::get('penawaran/{noreg}/suratTender', [TenderController::class, 'showSuratTender'])->name(
|
Route::get('penawaran/{noreg}/suratTender', [TenderController::class, 'showSuratTender'])->name(
|
||||||
'penawaran.showSuratTender'
|
'penawaran.showSuratTender',
|
||||||
);
|
);
|
||||||
Route::get('penawaran/{noreg}/suratTender/downloadpdf', [TenderController::class, 'downloadSuratTender'])->name('penawaran.downloadSuratTender');
|
Route::get('penawaran/{noreg}/suratTender/downloadpdf', [TenderController::class, 'downloadSuratTender'])
|
||||||
|
->name('penawaran.downloadSuratTender');
|
||||||
// Kirim Email Penawaran
|
// Kirim Email Penawaran
|
||||||
Route::get('penawaran/{noreg}/showKirimEmail', [TenderController::class, 'showKirimEmail'])->name('penawaran.showKirimEmail');
|
Route::get('penawaran/{noreg}/showKirimEmail', [TenderController::class, 'showKirimEmail'])->name(
|
||||||
Route::get('penawaran/{noreg}/kirimEmailAll', [TenderController::class, 'kirimEmailAll'])->name('penawaran.kirimEmailAll');
|
'penawaran.showKirimEmail',
|
||||||
Route::get('penawaran/{noreg}/suratTenderKJPP/{id}', [TenderController::class, 'suratTenderKJPP'])->name('penawaran.suratTenderKJPP');
|
);
|
||||||
Route::get('penawaran/{noreg}/suratTenderKJPP/{id}/kirimEmailKJPP', [TenderController::class, 'kirimEmailKJPP'])->name('penawaran.kirimEmailKJPP');
|
Route::get('penawaran/{noreg}/kirimEmailAll', [TenderController::class, 'kirimEmailAll'])->name(
|
||||||
Route::get('penawaran/suratTenderShow/{noreg}/datatables', [TenderController::class, 'dataTablesShowKirimSurat'])->name('penawaran.showKirimSurat.datatables');
|
'penawaran.kirimEmailAll',
|
||||||
|
);
|
||||||
|
Route::get('penawaran/{noreg}/suratTenderKJPP/{id}', [TenderController::class, 'suratTenderKJPP'])->name(
|
||||||
|
'penawaran.suratTenderKJPP',
|
||||||
|
);
|
||||||
|
Route::get(
|
||||||
|
'penawaran/{noreg}/suratTenderKJPP/{id}/kirimEmailKJPP',
|
||||||
|
[TenderController::class, 'kirimEmailKJPP'],
|
||||||
|
)->name('penawaran.kirimEmailKJPP');
|
||||||
|
Route::get(
|
||||||
|
'penawaran/suratTenderShow/{noreg}/datatables',
|
||||||
|
[TenderController::class, 'dataTablesShowKirimSurat'],
|
||||||
|
)->name('penawaran.showKirimSurat.datatables');
|
||||||
// Download Surat Tender KJPP
|
// Download Surat Tender KJPP
|
||||||
Route::get('penawaran/{noreg}/suratTenderKJPP/{id}/downloadSuratTenderKJPP', [TenderController::class, 'downloadSuratTenderKJPP'])
|
Route::get(
|
||||||
->name('penawaran.downloadSuratTenderKJPP');
|
'penawaran/{noreg}/suratTenderKJPP/{id}/downloadSuratTenderKJPP',
|
||||||
|
[TenderController::class, 'downloadSuratTenderKJPP'],
|
||||||
|
)->name('penawaran.downloadSuratTenderKJPP');
|
||||||
|
|
||||||
// Penawaran Ulang
|
// Penawaran Ulang
|
||||||
Route::get('penawaran/ulang', [TenderController::class, 'penawaran_ulang_index'])->name(
|
Route::get('penawaran/ulang', [TenderController::class, 'penawaran_ulang_index'])->name(
|
||||||
@@ -444,7 +465,9 @@ Route::middleware(['auth'])->group(function () {
|
|||||||
|
|
||||||
Route::name('progres.')->prefix('progres')->group(function () {
|
Route::name('progres.')->prefix('progres')->group(function () {
|
||||||
Route::get('/', [ActivityController::class, 'progres_activity'])->name('index');
|
Route::get('/', [ActivityController::class, 'progres_activity'])->name('index');
|
||||||
Route::get('/datatables/{id}', [ActivityController::class, 'dataTablesForActivity'])->name('datatables');
|
Route::get('/datatables/{id}', [ActivityController::class, 'dataTablesForActivity'])->name(
|
||||||
|
'datatables',
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::get('/teams/{regionId}', [ActivityController::class, 'dataTablesForActivity']);
|
Route::get('/teams/{regionId}', [ActivityController::class, 'dataTablesForActivity']);
|
||||||
@@ -456,32 +479,46 @@ Route::middleware(['auth'])->group(function () {
|
|||||||
|
|
||||||
|
|
||||||
Route::name('otorisator.')->prefix('otorisator')->group(function () {
|
Route::name('otorisator.')->prefix('otorisator')->group(function () {
|
||||||
Route::get('pelaporan', [PenilaianController::class, 'otorisator'])->name('pelaporan.index')->defaults('type', 'pelaporan');
|
Route::get('pelaporan', [PenilaianController::class, 'otorisator'])->name('pelaporan.index')->defaults(
|
||||||
Route::get('pembayaran', [PenilaianController::class, 'otorisator'])->name('pembayaran.index')->defaults('type', 'pembayaran');
|
'type',
|
||||||
Route::get('pembatalan', [PenilaianController::class, 'otorisator'])->name('pembatalan.index')->defaults('type', 'pembatalan');
|
'pelaporan',
|
||||||
|
);
|
||||||
|
Route::get('pembayaran', [PenilaianController::class, 'otorisator'])->name('pembayaran.index')->defaults(
|
||||||
|
'type',
|
||||||
|
'pembayaran',
|
||||||
|
);
|
||||||
|
Route::get('pembatalan', [PenilaianController::class, 'otorisator'])->name('pembatalan.index')->defaults(
|
||||||
|
'type',
|
||||||
|
'pembatalan',
|
||||||
|
);
|
||||||
Route::get('sla', [PenilaianController::class, 'otorisator'])->name('sla.index')->defaults('type', 'sla');
|
Route::get('sla', [PenilaianController::class, 'otorisator'])->name('sla.index')->defaults('type', 'sla');
|
||||||
Route::get('/datatables/{otorisator}', [PenilaianController::class, 'dataForAuthorization'])->name('datatables');
|
Route::get('/datatables/{otorisator}', [PenilaianController::class, 'dataForAuthorization'])->name(
|
||||||
|
'datatables',
|
||||||
|
);
|
||||||
Route::get('show/{id}', [PenilaianController::class, 'show'])->name('show');
|
Route::get('show/{id}', [PenilaianController::class, 'show'])->name('show');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Route::name('surveyor.')->prefix('surveyor')->group(function () {
|
Route::name('surveyor.')->prefix('surveyor')->group(function () {
|
||||||
Route::get('/', [SurveyorController::class, 'index'])->name('index');
|
Route::get('/', [SurveyorController::class, 'index'])->name('index');
|
||||||
Route::get('{id}/show', [SurveyorController::class, 'show'])->name('show');
|
Route::get('{id}/show', [SurveyorController::class, 'show'])->name('show');
|
||||||
Route::post('store', [SurveyorController::class, 'store'])->name('store');
|
Route::post('store', [SurveyorController::class, 'store'])->name('store');
|
||||||
Route::post('storeDenah', [SurveyorController::class, 'storeDenah'])->name('storeDenah');
|
Route::post('storeDenah', [SurveyorController::class, 'storeDenah'])->name('storeDenah');
|
||||||
Route::put('storeJadwal', [SurveyorController::class, 'storeJadwal'])->name('storeJadwal');
|
Route::put('storeJadwal', [SurveyorController::class, 'storeJadwal'])->name('storeJadwal');
|
||||||
Route::get('storeAproved/{id}', [SurveyorController::class, 'storeAproved'])->name('storeAproved');
|
Route::put('storeAproved/{id}', [SurveyorController::class, 'storeAproved'])->name('storeAproved');
|
||||||
Route::post('storeFoto', [SurveyorController::class, 'storeFoto'])->name('storeFoto');
|
Route::post('storeFoto', [SurveyorController::class, 'storeFoto'])->name('storeFoto');
|
||||||
Route::get('checkButtonStatus/{id}', [SurveyorController::class, 'checkButtonStatus'])->name('checkButtonStatus');
|
Route::get('checkButtonStatus/{id}', [SurveyorController::class, 'checkButtonStatus'])->name(
|
||||||
|
'checkButtonStatus',
|
||||||
|
);
|
||||||
|
|
||||||
Route::get('datatables', [SurveyorController::class, 'dataForDatatables'])->name('datatables');
|
Route::get('datatables', [SurveyorController::class, 'dataForDatatables'])->name('datatables');
|
||||||
Route::get('inspeksi/{id}/{jaminanId}', [SurveyorController::class, 'formInspeksi'])->name('inspeksi');
|
Route::get('inspeksi/{id}/{jaminanId}', [SurveyorController::class, 'formInspeksi'])->name('inspeksi');
|
||||||
Route::get('denah/{id}/{jaminanId}', [SurveyorController::class, 'denah'])->name('denah');
|
Route::get('denah/{id}/{jaminanId}', [SurveyorController::class, 'denah'])->name('denah');
|
||||||
Route::get('foto/{id}/{jaminanId}', [SurveyorController::class, 'foto'])->name('foto');
|
Route::get('foto/{id}/{jaminanId}', [SurveyorController::class, 'foto'])->name('foto');
|
||||||
Route::get('data-pembanding/{id}', [SurveyorController::class, 'dataPembanding'])->name('data-pembanding');
|
Route::get('data-pembanding/{id}/{jaminanId}', [SurveyorController::class, 'dataPembanding'])->name(
|
||||||
Route::get('submitSurveyor/{id}', [SurveyorController::class, 'submitSurveyor'])->name('submitSurveyor');
|
'data-pembanding',
|
||||||
|
);
|
||||||
|
Route::post('submitSurveyor/{id}', [SurveyorController::class, 'submitSurveyor'])->name('submitSurveyor');
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::name('penilai.')->prefix('penilai')->group(function () {
|
Route::name('penilai.')->prefix('penilai')->group(function () {
|
||||||
@@ -489,6 +526,11 @@ Route::middleware(['auth'])->group(function () {
|
|||||||
Route::get('/{id}/show', [PenilaiController::class, 'show'])->name('show');
|
Route::get('/{id}/show', [PenilaiController::class, 'show'])->name('show');
|
||||||
Route::get('datatables', [PenilaiController::class, 'dataForDatatables'])->name('dataForTables');
|
Route::get('datatables', [PenilaiController::class, 'dataForDatatables'])->name('dataForTables');
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
require __DIR__ . '/registrasi.php';
|
Route::get('persetujuan-penawaran/datatables', [PersetujuanPenawaranController::class, 'dataForDatatables'])
|
||||||
|
->name('persetujuan-penawaran.datatables');
|
||||||
|
|
||||||
|
Route::resource('persetujuan-penawaran', PersetujuanPenawaranController::class);
|
||||||
|
});
|
||||||
|
|
||||||
|
require __DIR__ . '/registrasi.php';
|
||||||
|
|||||||
Reference in New Issue
Block a user