Merge branch 'tender' of https://git.putrakuningan.com/daengdeni/lpj into rasya
This commit is contained in:
@@ -35,28 +35,41 @@ class ActivityController extends Controller
|
|||||||
// Ambil user yang sedang login
|
// Ambil user yang sedang login
|
||||||
$user = auth()->user();
|
$user = auth()->user();
|
||||||
$roles = $user->load('roles');
|
$roles = $user->load('roles');
|
||||||
$regionId = null;
|
|
||||||
|
|
||||||
// Cek apakah user memiliki role 'senior officer'
|
// Inisialisasi regionId dan teamId sebagai null agar bisa dinamis
|
||||||
if ($roles->roles->pluck('name')->contains('senior officer')) {
|
$regionId = null;
|
||||||
$regionId = TeamsUsers::with('team.regions')
|
$teamId = null;
|
||||||
|
|
||||||
|
if ($roles->roles->pluck('name')->contains('senior-officer')) {
|
||||||
|
$userTeam = TeamsUsers::with('team')
|
||||||
->where('user_id', $user->id)
|
->where('user_id', $user->id)
|
||||||
->first()?->team->regions_id;
|
->first();
|
||||||
|
$regionId = $userTeam?->team->regions_id;
|
||||||
|
$teamId = $userTeam?->teams_id;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$teamsActivity = TeamsUsers::with(['user', 'team', 'team.regions'])
|
$teamsActivity = TeamsUsers::with(['user', 'team', 'team.regions', 'user.roles'])
|
||||||
->whereHas('team', function ($q) use ($regionId) {
|
->whereHas('team', function ($q) use ($regionId, $teamId) {
|
||||||
if ($regionId) {
|
if ($regionId) {
|
||||||
$q->where('regions_id', $regionId);
|
$q->where('regions_id', $regionId);
|
||||||
}
|
}
|
||||||
|
if ($teamId) {
|
||||||
|
$q->where('id', $teamId); // Hanya tim yang sama
|
||||||
|
}
|
||||||
})
|
})
|
||||||
->where('user_id', '!=', $user->id)
|
->where('user_id', '!=', $user->id)
|
||||||
|
->whereHas('user.roles', function ($query) {
|
||||||
|
// Filter hanya peran 'surveyor' atau 'surveyor-penilai'
|
||||||
|
$query->whereIn('name', ['surveyor', 'surveyor-penilai']);
|
||||||
|
})
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
return view('lpj::activity.progres_activity.index', compact('teamsActivity'));
|
return view('lpj::activity.progres_activity.index', compact('teamsActivity'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function senior()
|
public function senior()
|
||||||
{
|
{
|
||||||
return view('lpj::activity.senior_officer.index');
|
return view('lpj::activity.senior_officer.index');
|
||||||
@@ -106,6 +119,10 @@ class ActivityController extends Controller
|
|||||||
* Update the specified resource in storage.
|
* Update the specified resource in storage.
|
||||||
*/public function dataForDatatables(Request $request)
|
*/public function dataForDatatables(Request $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
|
||||||
// Check permissions
|
// Check permissions
|
||||||
if (is_null($this->user) || !$this->user->can('debitur.view')) {
|
if (is_null($this->user) || !$this->user->can('debitur.view')) {
|
||||||
// abort(403, 'Sorry! You are not allowed to view users.');
|
// abort(403, 'Sorry! You are not allowed to view users.');
|
||||||
@@ -157,7 +174,23 @@ class ActivityController extends Controller
|
|||||||
$filteredRecords = $query->count();
|
$filteredRecords = $query->count();
|
||||||
|
|
||||||
// Get data
|
// Get data
|
||||||
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
|
|
||||||
|
$data = null;
|
||||||
|
$userRole = $user->roles[0]->name ?? null;
|
||||||
|
|
||||||
|
if (in_array($userRole, ['surveyor', 'surveyor-penilai'])) {
|
||||||
|
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian',])
|
||||||
|
->whereHas('penilaian.userPenilai', function ($q) use ($user) {
|
||||||
|
$q->where('user_id', $user->id);
|
||||||
|
})
|
||||||
|
->get();
|
||||||
|
} else {
|
||||||
|
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Calculate total pages
|
// Calculate total pages
|
||||||
$pageCount = ceil($totalRecords / $request->get('size', 10));
|
$pageCount = ceil($totalRecords / $request->get('size', 10));
|
||||||
@@ -194,14 +227,24 @@ class ActivityController extends Controller
|
|||||||
|
|
||||||
public function dataTablesForActivity(Request $request, $id)
|
public function dataTablesForActivity(Request $request, $id)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (is_null($this->user) || !$this->user->can('debitur.view')) {
|
||||||
|
// abort(403, 'Sorry! You are not allowed to view users.');
|
||||||
|
}
|
||||||
// Query Penilaian dengan relasi yang diperlukan
|
// Query Penilaian dengan relasi yang diperlukan
|
||||||
$query = Penilaian::with(['permohonan', 'permohonan.debiture', 'permohonan.tujuanPenilaian'])
|
$query = Penilaian::with([
|
||||||
->where(function($q) use ($id) {
|
'permohonan',
|
||||||
$q->where('surveyor_id', $id)
|
'permohonan.debiture',
|
||||||
->orWhere('penilaian_id', $id)
|
'permohonan.tujuanPenilaian',
|
||||||
->orWhere('penilai_surveyor_id', $id);
|
'permohonan.debiture.documents.jenisJaminan',
|
||||||
|
'userPenilai'
|
||||||
|
])
|
||||||
|
->whereHas('userPenilai', function ($q) use ($id) {
|
||||||
|
$q->where('user_id', $id);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Filter pencarian
|
// Filter pencarian
|
||||||
if ($request->has('search') && !empty($request->get('search'))) {
|
if ($request->has('search') && !empty($request->get('search'))) {
|
||||||
$search = $request->get('search');
|
$search = $request->get('search');
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Exception;
|
use Exception;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
use Modules\Location\Models\City;
|
use Modules\Location\Models\City;
|
||||||
@@ -14,6 +16,7 @@
|
|||||||
use Modules\Lpj\Models\Debiture;
|
use Modules\Lpj\Models\Debiture;
|
||||||
use Modules\Lpj\Models\DetailDokumenJaminan;
|
use Modules\Lpj\Models\DetailDokumenJaminan;
|
||||||
use Modules\Lpj\Models\DokumenJaminan;
|
use Modules\Lpj\Models\DokumenJaminan;
|
||||||
|
use Modules\Lpj\Models\HubunganPemilikJaminan;
|
||||||
use Modules\Lpj\Models\JenisJaminan;
|
use Modules\Lpj\Models\JenisJaminan;
|
||||||
use Modules\Lpj\Models\JenisLegalitasJaminan;
|
use Modules\Lpj\Models\JenisLegalitasJaminan;
|
||||||
use Modules\Lpj\Models\PemilikJaminan;
|
use Modules\Lpj\Models\PemilikJaminan;
|
||||||
@@ -69,44 +72,41 @@
|
|||||||
|
|
||||||
$document = DokumenJaminan::create($validate);
|
$document = DokumenJaminan::create($validate);
|
||||||
|
|
||||||
try {
|
if ($request->jenis_legalitas_jaminan_id) {
|
||||||
foreach ($request->dokumen_jaminan as $key => $value) {
|
foreach ($request->jenis_legalitas_jaminan_id as $key => $value) {
|
||||||
$file_name = $value->getClientOriginalName();
|
$detailData = [
|
||||||
|
|
||||||
if ($file_name) {
|
|
||||||
try {
|
|
||||||
$file_name = $value->getClientOriginalName();
|
|
||||||
$value->storeAs(
|
|
||||||
'public/jaminan/' . $debitur->id . '/' . $document->id . '/',
|
|
||||||
$file_name,
|
|
||||||
);
|
|
||||||
|
|
||||||
$detail = [
|
|
||||||
'dokumen_jaminan_id' => $document->id,
|
'dokumen_jaminan_id' => $document->id,
|
||||||
'jenis_legalitas_jaminan_id' => $request->jenis_legalitas_jaminan_id[$key],
|
'jenis_legalitas_jaminan_id' => $value,
|
||||||
'dokumen_jaminan' => 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name,
|
|
||||||
'name' => $request->name[$key],
|
'name' => $request->name[$key],
|
||||||
'keterangan' => $request->keterangan[$key],
|
'keterangan' => $request->keterangan[$key],
|
||||||
];
|
];
|
||||||
DetailDokumenJaminan::create($detail);
|
|
||||||
} catch (Exception $e) {
|
$dokumenJaminan = [];
|
||||||
DB::rollBack();
|
$dokumenNomor = [];
|
||||||
return redirect()->route('debitur.jaminan.index', $id)->with(
|
if (isset($request->dokumen_jaminan[$key]) && is_array($request->dokumen_jaminan[$key])) {
|
||||||
'error',
|
foreach ($request->dokumen_jaminan[$key] as $index => $file) {
|
||||||
'Gagal upload file dokumen jaminan ' . $key . ': ' . $e->getMessage(),
|
if ($file) {
|
||||||
|
$file_name = $file->getClientOriginalName();
|
||||||
|
$file->storeAs(
|
||||||
|
'public/jaminan/' . $debitur->id . '/' . $document->id . '/',
|
||||||
|
$file_name,
|
||||||
);
|
);
|
||||||
|
$dokumenJaminan[] = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name;
|
||||||
|
$dokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DB::commit();
|
|
||||||
} catch (Exception $e) {
|
|
||||||
DB::rollBack();
|
|
||||||
return redirect()->route('debitur.jaminan.index', $id)->with(
|
|
||||||
'error',
|
|
||||||
'gg' . $e->getMessage(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!empty($dokumenJaminan)) {
|
||||||
|
$detailData['dokumen_jaminan'] = json_encode($dokumenJaminan);
|
||||||
|
$detailData['dokumen_nomor'] = json_encode($dokumenNomor);
|
||||||
|
}
|
||||||
|
|
||||||
|
DetailDokumenJaminan::create($detailData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DB::commit();
|
||||||
return redirect()->route('debitur.jaminan.index', $id)->with(
|
return redirect()->route('debitur.jaminan.index', $id)->with(
|
||||||
'success',
|
'success',
|
||||||
'Dokumen Jaminan berhasil ditambahkan',
|
'Dokumen Jaminan berhasil ditambahkan',
|
||||||
@@ -125,10 +125,18 @@
|
|||||||
$jenisJaminan = JenisJaminan::all();
|
$jenisJaminan = JenisJaminan::all();
|
||||||
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
|
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
|
||||||
$pemilikJaminan = PemilikJaminan::where('debiture_id', $id)->get();
|
$pemilikJaminan = PemilikJaminan::where('debiture_id', $id)->get();
|
||||||
|
$hubunganPemilik = HubunganPemilikJaminan::all();
|
||||||
|
|
||||||
return view(
|
return view(
|
||||||
'lpj::debitur.jaminan',
|
'lpj::debitur.jaminan',
|
||||||
compact('debitur', 'provinces', 'jenisJaminan', 'jenisLegalitasJaminan', 'pemilikJaminan'),
|
compact(
|
||||||
|
'debitur',
|
||||||
|
'provinces',
|
||||||
|
'jenisJaminan',
|
||||||
|
'jenisLegalitasJaminan',
|
||||||
|
'pemilikJaminan',
|
||||||
|
'hubunganPemilik',
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,11 +145,58 @@
|
|||||||
$debitur = Debiture::find($id);
|
$debitur = Debiture::find($id);
|
||||||
|
|
||||||
$validate = $request->validated();
|
$validate = $request->validated();
|
||||||
|
|
||||||
if ($validate) {
|
if ($validate) {
|
||||||
try {
|
try {
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
$validate['debiture_id'] = $id;
|
$validate['debiture_id'] = $id;
|
||||||
|
|
||||||
|
if ($validate['pemilik_jaminan_id'] == 00) {
|
||||||
|
$pemilik_jaminan = [
|
||||||
|
'hubungan_pemilik_jaminan_id' => request()->get('hubungan_pemilik_jaminan_id'),
|
||||||
|
'province_code' => $debitur->province_code,
|
||||||
|
'city_code' => $debitur->city_code,
|
||||||
|
'district_code' => $debitur->district_code,
|
||||||
|
'village_code' => $debitur->village_code,
|
||||||
|
'postal_code' => $debitur->postal_code,
|
||||||
|
'address' => $debitur->address,
|
||||||
|
'nomor_id' => request()->get('nomor_id'),
|
||||||
|
'name' => request()->get('pemilik_name'),
|
||||||
|
];
|
||||||
|
|
||||||
|
$detailSertifikat = [];
|
||||||
|
$names = request()->input('detail_sertifikat.name', []);
|
||||||
|
$nomorIds = request()->input('detail_sertifikat.nomor_id', []);
|
||||||
|
|
||||||
|
foreach ($names as $index => $name) {
|
||||||
|
if (isset($nomorIds[$index])) {
|
||||||
|
$detailSertifikat[] = [
|
||||||
|
'name' => $name,
|
||||||
|
'nomor_id' => $nomorIds[$index],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$pemilik_jaminan['detail_sertifikat'] = json_encode($detailSertifikat);
|
||||||
|
|
||||||
|
//dd($pemilik_jaminan);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$pemilikJaminan = PemilikJaminan::updateOrCreate([
|
||||||
|
'debiture_id' => $id,
|
||||||
|
'name' => request()->get('pemilik_name'),
|
||||||
|
], $pemilik_jaminan);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
return redirect()->route('debitur.jaminan.index', $id)->with(
|
||||||
|
'error',
|
||||||
|
'Gagal update pemilik jaminan: ' . $e->getMessage(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$validate['pemilik_jaminan_id'] = $pemilikJaminan->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($validate['pemilik_jaminan_id'] == 0) {
|
if ($validate['pemilik_jaminan_id'] == 0) {
|
||||||
$pemilik_jaminan = [
|
$pemilik_jaminan = [
|
||||||
'hubungan_pemilik_jaminan_id' => 1,
|
'hubungan_pemilik_jaminan_id' => 1,
|
||||||
@@ -160,57 +215,84 @@
|
|||||||
'debiture_id' => $id,
|
'debiture_id' => $id,
|
||||||
'name' => $debitur->name,
|
'name' => $debitur->name,
|
||||||
], $pemilik_jaminan);
|
], $pemilik_jaminan);
|
||||||
|
|
||||||
|
$validate['pemilik_jaminan_id'] = $pemilikJaminan->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
$document = DokumenJaminan::find($jaminan);
|
$document = DokumenJaminan::find($jaminan);
|
||||||
$document->update($validate);
|
$document->update($validate);
|
||||||
|
|
||||||
if ($request->detail_dokumen_jaminan_id) {
|
// Get existing detail documents
|
||||||
foreach ($request->detail_dokumen_jaminan_id as $key => $value) {
|
$existingDetails = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->get()->keyBy(
|
||||||
if (isset($request->dokumen_jaminan[$key])) {
|
'id',
|
||||||
$file = $request->dokumen_jaminan[$key];
|
);
|
||||||
|
|
||||||
|
if ($request->jenis_legalitas_jaminan_id) {
|
||||||
|
foreach ($request->jenis_legalitas_jaminan_id as $key => $value) {
|
||||||
|
$detailData = [
|
||||||
|
'dokumen_jaminan_id' => $document->id,
|
||||||
|
'jenis_legalitas_jaminan_id' => $value,
|
||||||
|
'name' => $request->name[$key],
|
||||||
|
'keterangan' => $request->keterangan[$key],
|
||||||
|
];
|
||||||
|
|
||||||
|
$dokumenJaminan = [];
|
||||||
|
$dokumenNomor=[];
|
||||||
|
|
||||||
|
if (isset($request->dokumen_jaminan[$key]) && is_array($request->dokumen_jaminan[$key])) {
|
||||||
|
foreach ($request->dokumen_jaminan[$key] as $index => $file) {
|
||||||
if ($file) {
|
if ($file) {
|
||||||
$file_name = $file->getClientOriginalName();
|
$file_name = $file->getClientOriginalName();
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($file_name)) {
|
|
||||||
$file->storeAs(
|
$file->storeAs(
|
||||||
'public/jaminan/' . $debitur->id . '/' . $document->id . '/',
|
'public/jaminan/' . $debitur->id . '/' . $document->id . '/',
|
||||||
$file_name,
|
$file_name,
|
||||||
);
|
);
|
||||||
|
$dokumenJaminan[] = 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name;
|
||||||
$detail = [
|
$dokumenNomor[] = $request->dokumen_nomor[$key][$index] ?? '';
|
||||||
'dokumen_jaminan_id' => $document->id,
|
|
||||||
'jenis_legalitas_jaminan_id' => $request->jenis_legalitas_jaminan_id[$key],
|
|
||||||
'dokumen_jaminan' => 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name,
|
|
||||||
'name' => $request->name[$key],
|
|
||||||
'keterangan' => $request->keterangan[$key],
|
|
||||||
];
|
|
||||||
if (isset($request->detail_dokumen_jaminan_id[$key])) {
|
|
||||||
$detailDocument = DetailDokumenJaminan::find(
|
|
||||||
$request->detail_dokumen_jaminan_id[$key],
|
|
||||||
);
|
|
||||||
|
|
||||||
$detailDocument->update($detail);
|
|
||||||
$detailDocument->save();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($dokumenJaminan)) {
|
||||||
|
$detailData['dokumen_jaminan'] = json_encode($dokumenJaminan);
|
||||||
|
$detailData['dokumen_nomor'] = json_encode($dokumenNomor);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($request->detail_dokumen_jaminan_id[$key])) {
|
||||||
|
$detailId = $request->detail_dokumen_jaminan_id[$key];
|
||||||
|
$detailDocument = $existingDetails->get($detailId);
|
||||||
|
if ($detailDocument) {
|
||||||
|
// Merge new files with existing ones
|
||||||
|
if (!empty($dokumenJaminan)) {
|
||||||
|
$existingFiles = json_decode(
|
||||||
|
$detailDocument->dokumen_jaminan,
|
||||||
|
true,
|
||||||
|
) ?: [];
|
||||||
|
$existingNomor = json_decode(
|
||||||
|
$detailDocument->dokumen_nomor,
|
||||||
|
true,
|
||||||
|
) ?: [];
|
||||||
|
$mergedFiles = array_merge($existingFiles, $dokumenJaminan);
|
||||||
|
$mergedNomor = array_merge($existingNomor, $dokumenNomor);
|
||||||
|
$detailData['dokumen_jaminan'] = json_encode($mergedFiles);
|
||||||
|
$detailData['dokumen_nomor'] = json_encode($mergedNomor);
|
||||||
|
}
|
||||||
|
$detailDocument->update($detailData);
|
||||||
|
$existingDetails->forget($detailId);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$detail = [
|
DetailDokumenJaminan::create($detailData);
|
||||||
'dokumen_jaminan_id' => $document->id,
|
}
|
||||||
'jenis_legalitas_jaminan_id' => $request->jenis_legalitas_jaminan_id[$key],
|
}
|
||||||
'name' => $request->name[$key],
|
}
|
||||||
'keterangan' => $request->keterangan[$key],
|
|
||||||
];
|
|
||||||
|
|
||||||
if (isset($request->detail_dokumen_jaminan_id[$key])) {
|
// Delete any remaining existing details that weren't updated
|
||||||
$detailDocument = DetailDokumenJaminan::find(
|
foreach ($existingDetails as $detail) {
|
||||||
$request->detail_dokumen_jaminan_id[$key],
|
$files = json_decode($detail->dokumen_jaminan, true) ?: [];
|
||||||
);
|
foreach ($files as $file) {
|
||||||
$detailDocument->update($detail);
|
Storage::delete('public/' . $file);
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
$detail->delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
DB::commit();
|
DB::commit();
|
||||||
@@ -231,14 +313,33 @@
|
|||||||
) {
|
) {
|
||||||
$document = DokumenJaminan::find($jaminan);
|
$document = DokumenJaminan::find($jaminan);
|
||||||
$details = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->get();
|
$details = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->get();
|
||||||
|
|
||||||
$debitur = Debiture::find($document->debiture_id);
|
$debitur = Debiture::find($document->debiture_id);
|
||||||
$provinces = Province::all();
|
$provinces = Province::all();
|
||||||
$cities = City::where('province_code', $document->province_code)->get();
|
$cities = City::where('province_code', $document->province_code)->get();
|
||||||
$districts = District::where('city_code', $document->city_code)->get();
|
$districts = District::where('city_code', $document->city_code)->get();
|
||||||
$villages = Village::where('district_code', $document->district_code)->get();
|
$villages = Village::where('district_code', $document->district_code)->get();
|
||||||
|
|
||||||
|
|
||||||
$jenisJaminan = JenisJaminan::all();
|
$jenisJaminan = JenisJaminan::all();
|
||||||
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
|
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
|
||||||
|
|
||||||
|
$_jenisJaminan = JenisJaminan::find($document->jenis_jaminan_id);
|
||||||
|
$legalitasJaminan = json_decode($_jenisJaminan->jenis_legalitas_jaminan_id, true);
|
||||||
|
|
||||||
|
$currentLegalitasJaminan = JenisLegalitasJaminan::whereIn(
|
||||||
|
'id',
|
||||||
|
$document->detail->pluck('jenis_legalitas_jaminan_id')->toArray(),
|
||||||
|
)->get();
|
||||||
|
|
||||||
|
|
||||||
|
// Remove values from $legalitasJaminan that are in $currentLegalitasJaminan
|
||||||
|
$legalitasJaminan = array_diff($legalitasJaminan, $currentLegalitasJaminan->pluck('code')->toArray());
|
||||||
|
|
||||||
|
$legalitas = JenisLegalitasJaminan::whereIn('code', $legalitasJaminan)->get();
|
||||||
|
|
||||||
$pemilikJaminan = PemilikJaminan::where('debiture_id', $document->debiture_id)->get();
|
$pemilikJaminan = PemilikJaminan::where('debiture_id', $document->debiture_id)->get();
|
||||||
|
$hubunganPemilik = HubunganPemilikJaminan::all();
|
||||||
|
|
||||||
return view(
|
return view(
|
||||||
'lpj::debitur.jaminan',
|
'lpj::debitur.jaminan',
|
||||||
@@ -253,6 +354,8 @@
|
|||||||
'districts',
|
'districts',
|
||||||
'villages',
|
'villages',
|
||||||
'pemilikJaminan',
|
'pemilikJaminan',
|
||||||
|
'hubunganPemilik',
|
||||||
|
'legalitas',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -289,7 +392,12 @@
|
|||||||
|
|
||||||
if ($zip->open($zipFilePath, ZipArchive::CREATE) === true) {
|
if ($zip->open($zipFilePath, ZipArchive::CREATE) === true) {
|
||||||
foreach ($documents as $document) {
|
foreach ($documents as $document) {
|
||||||
$filePath = storage_path('app/public/' . $document->dokumen_jaminan);
|
$files = is_array(json_decode($document->dokumen_jaminan)) ? json_decode(
|
||||||
|
$document->dokumen_jaminan,
|
||||||
|
) : [$document->dokumen_jaminan];
|
||||||
|
|
||||||
|
foreach ($files as $file) {
|
||||||
|
$filePath = storage_path('app/public/' . $file);
|
||||||
if (file_exists($filePath)) {
|
if (file_exists($filePath)) {
|
||||||
$zip->addFile($filePath, basename($filePath));
|
$zip->addFile($filePath, basename($filePath));
|
||||||
} else {
|
} else {
|
||||||
@@ -297,6 +405,7 @@
|
|||||||
return redirect()->back()->with('error', 'File not found: ' . $filePath);
|
return redirect()->back()->with('error', 'File not found: ' . $filePath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
$zip->close();
|
$zip->close();
|
||||||
|
|
||||||
if (!file_exists($zipFilePath)) {
|
if (!file_exists($zipFilePath)) {
|
||||||
@@ -318,10 +427,13 @@
|
|||||||
{
|
{
|
||||||
$dokumen = request()->get('dokumen');
|
$dokumen = request()->get('dokumen');
|
||||||
$document = DetailDokumenJaminan::find($dokumen);
|
$document = DetailDokumenJaminan::find($dokumen);
|
||||||
return response()->download(storage_path('app/public/' . $document->dokumen_jaminan));
|
$file = is_array(json_decode($document->dokumen_jaminan)) ? json_decode(
|
||||||
|
$document->dokumen_jaminan,
|
||||||
|
) : [$document->dokumen_jaminan];
|
||||||
|
return response()->download(storage_path('app/public/' . $file[request()->get('index')]));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function legalitasJaminan($id, $jaminan)
|
public function legalitasJaminan($id)
|
||||||
{
|
{
|
||||||
$jenisJaminan = JenisJaminan::find($id);
|
$jenisJaminan = JenisJaminan::find($id);
|
||||||
$legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id;
|
$legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id;
|
||||||
@@ -329,4 +441,65 @@
|
|||||||
$legalitas = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get();
|
$legalitas = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get();
|
||||||
echo json_encode($legalitas);
|
echo json_encode($legalitas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function getLegalitasJaminan($id = 10, $jenisJaminanId = 1)
|
||||||
|
: JsonResponse {
|
||||||
|
$jenisJaminan = JenisJaminan::findOrFail($jenisJaminanId);
|
||||||
|
$legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id;
|
||||||
|
$newLegalitasJaminan = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get();
|
||||||
|
|
||||||
|
$existingLegalitas = [];
|
||||||
|
$newLegalitas = [];
|
||||||
|
|
||||||
|
// Create a set of new jenis_legalitas_jaminan_ids for quick lookup
|
||||||
|
$newLegalitasIds = $newLegalitasJaminan->pluck('id')->toArray();
|
||||||
|
|
||||||
|
if ($id > 0) {
|
||||||
|
$document = DokumenJaminan::findOrFail($id);
|
||||||
|
if ($document && $document->detail) {
|
||||||
|
foreach ($document->detail as $detail) {
|
||||||
|
// Only include existing legalitas if its id is in the new set
|
||||||
|
if (in_array($detail->jenis_legalitas_jaminan_id, $newLegalitasIds)) {
|
||||||
|
$existingLegalitas[] = [
|
||||||
|
'id' => $detail->id,
|
||||||
|
'jenis_legalitas_jaminan_id' => $detail->jenis_legalitas_jaminan_id,
|
||||||
|
'name' => $detail->jenisLegalitasJaminan->name,
|
||||||
|
'dokumen_jaminan' => json_decode(
|
||||||
|
$detail->dokumen_jaminan,
|
||||||
|
) ?? $detail->dokumen_jaminan,
|
||||||
|
'dokumen_nomor' => json_decode(
|
||||||
|
$detail->dokumen_nomor,
|
||||||
|
) ?? $detail->dokumen_nomor,
|
||||||
|
'custom_field' => $detail->jenisLegalitasJaminan->custom_field,
|
||||||
|
'custom_field_type' => $detail->jenisLegalitasJaminan->custom_field_type,
|
||||||
|
'details' => $detail->details,
|
||||||
|
'keterangan' => $detail->keterangan,
|
||||||
|
'is_existing' => true,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($newLegalitasJaminan as $legalitas) {
|
||||||
|
if (!Collection::make($existingLegalitas)->contains('jenis_legalitas_jaminan_id', $legalitas->id)) {
|
||||||
|
$newLegalitas[] = [
|
||||||
|
'id' => null,
|
||||||
|
'jenis_legalitas_jaminan_id' => $legalitas->id,
|
||||||
|
'name' => $legalitas->name,
|
||||||
|
'dokumen_jaminan' => null,
|
||||||
|
'dokumen_nomor' => null,
|
||||||
|
'custom_field' => $legalitas->custom_field,
|
||||||
|
'custom_field_type' => $legalitas->custom_field_type,
|
||||||
|
'details' => null,
|
||||||
|
'keterangan' => null,
|
||||||
|
'is_existing' => false,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$combinedLegalitas = array_merge($existingLegalitas, $newLegalitas);
|
||||||
|
return response()->json($combinedLegalitas);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,8 +5,6 @@ namespace Modules\Lpj\Http\Controllers;
|
|||||||
use Throwable;
|
use Throwable;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Modules\Lpj\Models\KJPP;
|
use Modules\Lpj\Models\KJPP;
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use Modules\Lpj\Models\Branch;
|
|
||||||
use Modules\Location\Models\City;
|
use Modules\Location\Models\City;
|
||||||
use Modules\Lpj\Models\IjinUsaha;
|
use Modules\Lpj\Models\IjinUsaha;
|
||||||
use Modules\Lpj\Exports\KJPPExport;
|
use Modules\Lpj\Exports\KJPPExport;
|
||||||
@@ -58,6 +56,79 @@ class KJPPController extends Controller
|
|||||||
$validated = $request->validated();
|
$validated = $request->validated();
|
||||||
|
|
||||||
if ($validated) {
|
if ($validated) {
|
||||||
|
$detailEmailKantor = [];
|
||||||
|
$detailNamaPicReviewer = [];
|
||||||
|
$detailNomorHpPicReviewer = [];
|
||||||
|
$detailNamaPicAdmin = [];
|
||||||
|
$detailNomorHpPicAdmin = [];
|
||||||
|
$detailNamaPicMarketing = [];
|
||||||
|
$detailNomorHpPicMarketing = [];
|
||||||
|
|
||||||
|
$emailKantor = $request->input('detail_email_kantor.email_kantor', []);
|
||||||
|
$namaPicReviewer = $request->input('detail_nama_pic_reviewer.nama_pic_reviewer', []);
|
||||||
|
$nomorHpPicReviewer = $request->input('detail_nomor_hp_pic_reviewer.nomor_hp_pic_reviewer', []);
|
||||||
|
$namaPicAdmin = $request->input('detail_nama_pic_admin.nama_pic_admin', []);
|
||||||
|
$nomorHpPicAdmin = $request->input('detail_nomor_hp_pic_admin.nomor_hp_pic_admin', []);
|
||||||
|
$namaPicMarketing = $request->input('detail_nama_pic_marketing.nama_pic_marketing', []);
|
||||||
|
$nomorHpPicMarketing = $request->input('detail_nomor_hp_pic_marketing.nomor_hp_pic_marketing', []);
|
||||||
|
|
||||||
|
foreach ($emailKantor as $value) {
|
||||||
|
$detailEmailKantor[] = [
|
||||||
|
'email_kantor' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
// Encode to JSON and store
|
||||||
|
$detailEmailKantorJson = json_encode($detailEmailKantor);
|
||||||
|
|
||||||
|
// Process detail_nama_pic_reviewer
|
||||||
|
foreach ($namaPicReviewer as $value) {
|
||||||
|
$detailNamaPicReviewer[] = [
|
||||||
|
'nama_pic_reviewer' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$detailNamaPicReviewerJson = json_encode($detailNamaPicReviewer);
|
||||||
|
|
||||||
|
// Process detail_nomor_hp_pic_reviewer
|
||||||
|
foreach ($nomorHpPicReviewer as $value) {
|
||||||
|
$detailNomorHpPicReviewer[] = [
|
||||||
|
'nomor_hp_pic_reviewer' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$detailNomorHpPicReviewerJson = json_encode($detailNomorHpPicReviewer);
|
||||||
|
|
||||||
|
// Process detail_nama_pic_admin
|
||||||
|
foreach ($namaPicAdmin as $value) {
|
||||||
|
$detailNamaPicAdmin[] = [
|
||||||
|
'nama_pic_admin' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$detailNamaPicAdminJson = json_encode($detailNamaPicAdmin);
|
||||||
|
|
||||||
|
// Process detail_nomor_hp_pic_admin
|
||||||
|
foreach ($nomorHpPicAdmin as $value) {
|
||||||
|
$detailNomorHpPicAdmin[] = [
|
||||||
|
'nomor_hp_pic_admin' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$detailNomorHpPicAdminJson = json_encode($detailNomorHpPicAdmin);
|
||||||
|
|
||||||
|
// Process detail_nama_pic_marketing
|
||||||
|
foreach ($namaPicMarketing as $value) {
|
||||||
|
$detailNamaPicMarketing[] = [
|
||||||
|
'nama_pic_marketing' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$detailNamaPicMarketingJson = json_encode($detailNamaPicMarketing);
|
||||||
|
|
||||||
|
// Process detail_nomor_hp_pic_marketing
|
||||||
|
foreach ($nomorHpPicMarketing as $value) {
|
||||||
|
$detailNomorHpPicMarketing[] = [
|
||||||
|
'nomor_hp_pic_marketing' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$detailNomorHpPicMarketingJson = json_encode($detailNomorHpPicMarketing);
|
||||||
|
|
||||||
|
|
||||||
$file = $request->file('attachment');
|
$file = $request->file('attachment');
|
||||||
$filename = $file ? time() . '.' . $file->getClientOriginalExtension() : 'default.pdf';
|
$filename = $file ? time() . '.' . $file->getClientOriginalExtension() : 'default.pdf';
|
||||||
|
|
||||||
@@ -69,12 +140,20 @@ class KJPPController extends Controller
|
|||||||
Storage::copy('public/test/default.pdf', 'public/uploads_pdf/' . $filename);
|
Storage::copy('public/test/default.pdf', 'public/uploads_pdf/' . $filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
$validated['ijin_usaha_id'] = json_encode($request->input('ijin_usaha_id'));
|
$validated['detail_email_kantor'] = $detailEmailKantorJson;
|
||||||
$validated['jenis_aset_id'] = json_encode($request->input('jenis_aset_id'));
|
$validated['detail_nama_pic_reviewer'] = $detailNamaPicReviewerJson;
|
||||||
|
$validated['detail_nomor_hp_pic_reviewer'] = $detailNomorHpPicReviewerJson;
|
||||||
|
$validated['detail_nama_pic_admin'] = $detailNamaPicAdminJson;
|
||||||
|
$validated['detail_nomor_hp_pic_admin'] = $detailNomorHpPicAdminJson;
|
||||||
|
$validated['detail_nama_pic_marketing'] = $detailNamaPicMarketingJson;
|
||||||
|
$validated['detail_nomor_hp_pic_marketing'] = $detailNomorHpPicMarketingJson;
|
||||||
|
$validated['ijin_usaha_id'] = json_encode($validated['ijin_usaha_id']);
|
||||||
|
$validated['jenis_aset_id'] = json_encode($validated['jenis_aset_id']);
|
||||||
// Tambahkan nama file ke data yang divalidasi
|
// Tambahkan nama file ke data yang divalidasi
|
||||||
$validated['attachment'] = $filename;
|
$validated['attachment'] = $filename;
|
||||||
|
|
||||||
|
// dd($validated);
|
||||||
|
|
||||||
// Simpan data ke database
|
// Simpan data ke database
|
||||||
KJPP::create($validated);
|
KJPP::create($validated);
|
||||||
|
|
||||||
@@ -101,8 +180,36 @@ class KJPPController extends Controller
|
|||||||
$cities = City::where('code', $kjpp->city_code)->get();
|
$cities = City::where('code', $kjpp->city_code)->get();
|
||||||
$districts = District::where('code', $kjpp->district_code)->get();
|
$districts = District::where('code', $kjpp->district_code)->get();
|
||||||
$villages = Village::where('code', $kjpp->village_code)->get();
|
$villages = Village::where('code', $kjpp->village_code)->get();
|
||||||
// dd($branches);
|
$detailEmailKantor = json_decode($kjpp->detail_email_kantor);
|
||||||
return view('lpj::kjpp.show', compact('jenis_jaminan', 'ijin_usahas', 'ijin_usaha', 'kjpp', 'provinces', 'cities', 'districts', 'villages'));
|
$detailNamaPicReviewer = json_decode($kjpp->detail_nama_pic_reviewer);
|
||||||
|
$detailNomorHpPicReviewer = json_decode($kjpp->detail_nomor_hp_pic_reviewer);
|
||||||
|
$detailNamaPicAdmin = json_decode($kjpp->detail_nama_pic_admin);
|
||||||
|
$detailNomorHpPicAdmin = json_decode($kjpp->detail_nomor_hp_pic_admin);
|
||||||
|
$detailNamaPicMarketing = json_decode($kjpp->detail_nama_pic_marketing);
|
||||||
|
$detailNomorHpPicMarketing = json_decode($kjpp->detail_nomor_hp_pic_marketing);
|
||||||
|
|
||||||
|
$detailJoinPicReviewer = json_encode(array_map(function ($nama, $nomor) {
|
||||||
|
return [
|
||||||
|
'nama_pic_reviewer' => $nama->nama_pic_reviewer,
|
||||||
|
'nomor_hp_pic_reviewer' => $nomor->nomor_hp_pic_reviewer
|
||||||
|
];
|
||||||
|
}, $detailNamaPicReviewer, $detailNomorHpPicReviewer));
|
||||||
|
|
||||||
|
$detailJoinPicAdmin = json_encode(array_map(function ($nama, $nomor) {
|
||||||
|
return [
|
||||||
|
'nama_pic_admin' => $nama->nama_pic_admin,
|
||||||
|
'nomor_hp_pic_admin' => $nomor->nomor_hp_pic_admin
|
||||||
|
];
|
||||||
|
}, $detailNamaPicAdmin, $detailNomorHpPicAdmin));
|
||||||
|
|
||||||
|
$detailJoinPicMarketing = json_encode(array_map(function ($nama, $nomor) {
|
||||||
|
return [
|
||||||
|
'nama_pic_marketing' => $nama->nama_pic_marketing,
|
||||||
|
'nomor_hp_pic_marketing' => $nomor->nomor_hp_pic_marketing
|
||||||
|
];
|
||||||
|
}, $detailNamaPicMarketing, $detailNomorHpPicMarketing));
|
||||||
|
|
||||||
|
return view('lpj::kjpp.show', compact('jenis_jaminan', 'ijin_usahas', 'ijin_usaha', 'kjpp', 'provinces', 'cities', 'districts', 'villages', 'detailEmailKantor', 'detailJoinPicReviewer', 'detailJoinPicAdmin', 'detailJoinPicMarketing'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -117,8 +224,36 @@ class KJPPController extends Controller
|
|||||||
$cities = City::where('province_code', $kjpp->province_code)->get();
|
$cities = City::where('province_code', $kjpp->province_code)->get();
|
||||||
$districts = District::where('city_code', $kjpp->city_code)->get();
|
$districts = District::where('city_code', $kjpp->city_code)->get();
|
||||||
$villages = Village::where('district_code', $kjpp->district_code)->get();
|
$villages = Village::where('district_code', $kjpp->district_code)->get();
|
||||||
|
$detailEmailKantor = json_decode($kjpp->detail_email_kantor);
|
||||||
|
$detailNamaPicReviewer = json_decode($kjpp->detail_nama_pic_reviewer);
|
||||||
|
$detailNomorHpPicReviewer = json_decode($kjpp->detail_nomor_hp_pic_reviewer);
|
||||||
|
$detailNamaPicAdmin = json_decode($kjpp->detail_nama_pic_admin);
|
||||||
|
$detailNomorHpPicAdmin = json_decode($kjpp->detail_nomor_hp_pic_admin);
|
||||||
|
$detailNamaPicMarketing = json_decode($kjpp->detail_nama_pic_marketing);
|
||||||
|
$detailNomorHpPicMarketing = json_decode($kjpp->detail_nomor_hp_pic_marketing);
|
||||||
|
|
||||||
return view('lpj::kjpp.create', compact('kjpp', 'ijin_usaha', 'jenis_aset', 'provinces', 'cities', 'districts', 'villages'));
|
$detailJoinPicReviewer = json_encode(array_map(function ($nama, $nomor) {
|
||||||
|
return [
|
||||||
|
'nama_pic_reviewer' => $nama->nama_pic_reviewer,
|
||||||
|
'nomor_hp_pic_reviewer' => $nomor->nomor_hp_pic_reviewer
|
||||||
|
];
|
||||||
|
}, $detailNamaPicReviewer, $detailNomorHpPicReviewer));
|
||||||
|
|
||||||
|
$detailJoinPicAdmin = json_encode(array_map(function ($nama, $nomor) {
|
||||||
|
return [
|
||||||
|
'nama_pic_admin' => $nama->nama_pic_admin,
|
||||||
|
'nomor_hp_pic_admin' => $nomor->nomor_hp_pic_admin
|
||||||
|
];
|
||||||
|
}, $detailNamaPicAdmin, $detailNomorHpPicAdmin));
|
||||||
|
|
||||||
|
$detailJoinPicMarketing = json_encode(array_map(function ($nama, $nomor) {
|
||||||
|
return [
|
||||||
|
'nama_pic_marketing' => $nama->nama_pic_marketing,
|
||||||
|
'nomor_hp_pic_marketing' => $nomor->nomor_hp_pic_marketing
|
||||||
|
];
|
||||||
|
}, $detailNamaPicMarketing, $detailNomorHpPicMarketing));
|
||||||
|
|
||||||
|
return view('lpj::kjpp.create', compact('kjpp', 'ijin_usaha', 'jenis_aset', 'provinces', 'cities', 'districts', 'villages', 'detailJoinPicReviewer', 'detailJoinPicAdmin', 'detailJoinPicMarketing', 'detailEmailKantor'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -128,7 +263,82 @@ class KJPPController extends Controller
|
|||||||
{
|
{
|
||||||
$validated = $request->validated();
|
$validated = $request->validated();
|
||||||
|
|
||||||
|
// dd($validated);
|
||||||
|
|
||||||
if ($validated) {
|
if ($validated) {
|
||||||
|
$detailEmailKantor = [];
|
||||||
|
$detailNamaPicReviewer = [];
|
||||||
|
$detailNomorHpPicReviewer = [];
|
||||||
|
$detailNamaPicAdmin = [];
|
||||||
|
$detailNomorHpPicAdmin = [];
|
||||||
|
$detailNamaPicMarketing = [];
|
||||||
|
$detailNomorHpPicMarketing = [];
|
||||||
|
|
||||||
|
$emailKantor = $request->input('detail_email_kantor.email_kantor', []);
|
||||||
|
$namaPicReviewer = $request->input('detail_nama_pic_reviewer.nama_pic_reviewer', []);
|
||||||
|
$nomorHpPicReviewer = $request->input('detail_nomor_hp_pic_reviewer.nomor_hp_pic_reviewer', []);
|
||||||
|
$namaPicAdmin = $request->input('detail_nama_pic_admin.nama_pic_admin', []);
|
||||||
|
$nomorHpPicAdmin = $request->input('detail_nomor_hp_pic_admin.nomor_hp_pic_admin', []);
|
||||||
|
$namaPicMarketing = $request->input('detail_nama_pic_marketing.nama_pic_marketing', []);
|
||||||
|
$nomorHpPicMarketing = $request->input('detail_nomor_hp_pic_marketing.nomor_hp_pic_marketing', []);
|
||||||
|
|
||||||
|
foreach ($emailKantor as $value) {
|
||||||
|
$detailEmailKantor[] = [
|
||||||
|
'email_kantor' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
// Encode to JSON and store
|
||||||
|
$detailEmailKantorJson = json_encode($detailEmailKantor);
|
||||||
|
|
||||||
|
// Process detail_nama_pic_reviewer
|
||||||
|
foreach ($namaPicReviewer as $value) {
|
||||||
|
$detailNamaPicReviewer[] = [
|
||||||
|
'nama_pic_reviewer' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$detailNamaPicReviewerJson = json_encode($detailNamaPicReviewer);
|
||||||
|
|
||||||
|
// Process detail_nomor_hp_pic_reviewer
|
||||||
|
foreach ($nomorHpPicReviewer as $value) {
|
||||||
|
$detailNomorHpPicReviewer[] = [
|
||||||
|
'nomor_hp_pic_reviewer' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$detailNomorHpPicReviewerJson = json_encode($detailNomorHpPicReviewer);
|
||||||
|
|
||||||
|
// Process detail_nama_pic_admin
|
||||||
|
foreach ($namaPicAdmin as $value) {
|
||||||
|
$detailNamaPicAdmin[] = [
|
||||||
|
'nama_pic_admin' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$detailNamaPicAdminJson = json_encode($detailNamaPicAdmin);
|
||||||
|
|
||||||
|
// Process detail_nomor_hp_pic_admin
|
||||||
|
foreach ($nomorHpPicAdmin as $value) {
|
||||||
|
$detailNomorHpPicAdmin[] = [
|
||||||
|
'nomor_hp_pic_admin' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$detailNomorHpPicAdminJson = json_encode($detailNomorHpPicAdmin);
|
||||||
|
|
||||||
|
// Process detail_nama_pic_marketing
|
||||||
|
foreach ($namaPicMarketing as $value) {
|
||||||
|
$detailNamaPicMarketing[] = [
|
||||||
|
'nama_pic_marketing' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$detailNamaPicMarketingJson = json_encode($detailNamaPicMarketing);
|
||||||
|
|
||||||
|
// Process detail_nomor_hp_pic_marketing
|
||||||
|
foreach ($nomorHpPicMarketing as $value) {
|
||||||
|
$detailNomorHpPicMarketing[] = [
|
||||||
|
'nomor_hp_pic_marketing' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$detailNomorHpPicMarketingJson = json_encode($detailNomorHpPicMarketing);
|
||||||
|
|
||||||
|
|
||||||
$file = $request->file('attachment');
|
$file = $request->file('attachment');
|
||||||
$filename = $file ? time() . '.' . $file->getClientOriginalExtension() : null;
|
$filename = $file ? time() . '.' . $file->getClientOriginalExtension() : null;
|
||||||
|
|
||||||
@@ -148,6 +358,16 @@ class KJPPController extends Controller
|
|||||||
$validated['attachment'] = $kjpp->attachment ?? 'default.pdf';
|
$validated['attachment'] = $kjpp->attachment ?? 'default.pdf';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$validated['detail_email_kantor'] = $detailEmailKantorJson;
|
||||||
|
$validated['detail_nama_pic_reviewer'] = $detailNamaPicReviewerJson;
|
||||||
|
$validated['detail_nomor_hp_pic_reviewer'] = $detailNomorHpPicReviewerJson;
|
||||||
|
$validated['detail_nama_pic_admin'] = $detailNamaPicAdminJson;
|
||||||
|
$validated['detail_nomor_hp_pic_admin'] = $detailNomorHpPicAdminJson;
|
||||||
|
$validated['detail_nama_pic_marketing'] = $detailNamaPicMarketingJson;
|
||||||
|
$validated['detail_nomor_hp_pic_marketing'] = $detailNomorHpPicMarketingJson;
|
||||||
|
$validated['ijin_usaha_id'] = json_encode($validated['ijin_usaha_id']);
|
||||||
|
$validated['jenis_aset_id'] = json_encode($validated['jenis_aset_id']);
|
||||||
|
|
||||||
// Perbarui data di database
|
// Perbarui data di database
|
||||||
KJPP::where('id', $id)->update($validated);
|
KJPP::where('id', $id)->update($validated);
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
$query =PenawaranTender::query()
|
$query =PenawaranTender::query()
|
||||||
->select('penawaran.*',DB::raw("CONCAT(DATE_FORMAT(penawaran.start_date, '%d %M %Y'), ' - ', DATE_FORMAT(penawaran.end_date, '%d %M %Y')) AS date_range"), 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name')
|
->select('penawaran.*',DB::raw("CONCAT(DATE_FORMAT(penawaran.start_date, '%d %M %Y'), ' - ', DATE_FORMAT(penawaran.end_date, '%d %M %Y')) AS date_range"), 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name')
|
||||||
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
|
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
|
||||||
->where('penawaran.status','=','persetujuan-penawaran')
|
->where('penawaran.status','=','proposal-tender')
|
||||||
->withCount('penawarandetails');
|
->withCount('penawarandetails');
|
||||||
|
|
||||||
// Apply search filter if provided
|
// Apply search filter if provided
|
||||||
@@ -114,7 +114,7 @@ class OtorisasiPenawaranController extends Controller
|
|||||||
|
|
||||||
if (request()->ajax()) {
|
if (request()->ajax()) {
|
||||||
$id = $request->id;
|
$id = $request->id;
|
||||||
$penawaran = PenawaranTender::where('status','=','persetujuan-penawaran')->find($id);
|
$penawaran = PenawaranTender::where('status','=','proposal-tender')->find($id);
|
||||||
|
|
||||||
if ($penawaran) {
|
if ($penawaran) {
|
||||||
$penawarandetailLogs = PenawaranDetailTenderLog::where('penawaran_id',$id)
|
$penawarandetailLogs = PenawaranDetailTenderLog::where('penawaran_id',$id)
|
||||||
|
|||||||
@@ -63,6 +63,7 @@
|
|||||||
public function update(PemilikJaminanRequest $request, $id, $pemilik)
|
public function update(PemilikJaminanRequest $request, $id, $pemilik)
|
||||||
{
|
{
|
||||||
$validate = $request->validated();
|
$validate = $request->validated();
|
||||||
|
|
||||||
if ($validate) {
|
if ($validate) {
|
||||||
try {
|
try {
|
||||||
$pemilik = PemilikJaminan::find($pemilik);
|
$pemilik = PemilikJaminan::find($pemilik);
|
||||||
@@ -88,6 +89,7 @@
|
|||||||
$districts = District::where('city_code', $pemilik->city_code)->get();
|
$districts = District::where('city_code', $pemilik->city_code)->get();
|
||||||
$villages = Village::where('district_code', $pemilik->district_code)->get();
|
$villages = Village::where('district_code', $pemilik->district_code)->get();
|
||||||
$hubunganPemilik = HubunganPemilikJaminan::all();
|
$hubunganPemilik = HubunganPemilikJaminan::all();
|
||||||
|
$detailSertifikat = $pemilik->detail_sertifikat;
|
||||||
|
|
||||||
return view(
|
return view(
|
||||||
'lpj::pemilik_jaminan.form',
|
'lpj::pemilik_jaminan.form',
|
||||||
@@ -99,6 +101,7 @@
|
|||||||
'villages',
|
'villages',
|
||||||
'hubunganPemilik',
|
'hubunganPemilik',
|
||||||
'pemilik',
|
'pemilik',
|
||||||
|
'detailSertifikat'
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
135
app/Http/Controllers/PenilaiController.php
Normal file
135
app/Http/Controllers/PenilaiController.php
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Modules\Lpj\Models\Permohonan;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
|
||||||
|
class PenilaiController extends Controller
|
||||||
|
{
|
||||||
|
public $user;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('lpj::penilai.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('lpj::create');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the specified resource.
|
||||||
|
*/
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
$permohonan = Permohonan::with('debiture.documents.jenisjaminan')->find($id);
|
||||||
|
|
||||||
|
return view('lpj::penilai.show', compact('permohonan'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
return view('lpj::edit');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*/
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
public function dataForDatatables(Request $request)
|
||||||
|
{
|
||||||
|
if (is_null($this->user) || !$this->user->can('penilai.view')) {
|
||||||
|
//abort(403, 'Sorry! You are not allowed to view users.');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Retrieve data from the database
|
||||||
|
$query = Permohonan::query()->where('status', '=', 'done');
|
||||||
|
|
||||||
|
// Apply search filter if provided
|
||||||
|
if ($request->has('search') && !empty($request->get('search'))) {
|
||||||
|
$search = $request->get('search');
|
||||||
|
$query->where(function ($q) use ($search) {
|
||||||
|
$q->where('nomor_registrasi', 'LIKE', '%' . $search . '%');
|
||||||
|
$q->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%');
|
||||||
|
$q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%');
|
||||||
|
$q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%');
|
||||||
|
$q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%');
|
||||||
|
$q->orWhereRelation('jenisfasilitasKredit', 'name', 'LIKE', '%' . $search . '%');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply sorting if provided
|
||||||
|
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
||||||
|
$order = $request->get('sortOrder');
|
||||||
|
$column = $request->get('sortField');
|
||||||
|
$query->orderBy($column, $order);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the total count of records
|
||||||
|
$totalRecords = $query->count();
|
||||||
|
|
||||||
|
// Apply pagination if provided
|
||||||
|
if ($request->has('page') && $request->has('size')) {
|
||||||
|
$page = $request->get('page');
|
||||||
|
$size = $request->get('size');
|
||||||
|
$offset = ($page - 1) * $size; // Calculate the offset
|
||||||
|
|
||||||
|
$query->skip($offset)->take($size);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the filtered count of records
|
||||||
|
$filteredRecords = $query->count();
|
||||||
|
|
||||||
|
// Get the data for the current page
|
||||||
|
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'jenisfasilitasKredit'])->get();
|
||||||
|
|
||||||
|
// Calculate the page count
|
||||||
|
$pageCount = ceil($totalRecords / $request->get('size'));
|
||||||
|
|
||||||
|
// Calculate the current page number
|
||||||
|
$currentPage = 0 + 1;
|
||||||
|
|
||||||
|
// Return the response data as a JSON object
|
||||||
|
return response()->json([
|
||||||
|
'draw' => $request->get('draw'),
|
||||||
|
'recordsTotal' => $totalRecords,
|
||||||
|
'recordsFiltered' => $filteredRecords,
|
||||||
|
'pageCount' => $pageCount,
|
||||||
|
'page' => $currentPage,
|
||||||
|
'totalCount' => $totalRecords,
|
||||||
|
'data' => $data,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,14 +5,18 @@ namespace Modules\Lpj\Http\Controllers;
|
|||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
use Modules\Lpj\Http\Requests\PenilaianRequest;
|
use Modules\Lpj\Http\Requests\PenilaianRequest;
|
||||||
use Modules\Lpj\Models\JenisPenilaian;
|
use Modules\Lpj\Models\JenisPenilaian;
|
||||||
use Modules\Lpj\Models\Penilaian;
|
use Modules\Lpj\Models\Penilaian;
|
||||||
|
use Modules\Lpj\Models\PenilaianTeam;
|
||||||
use Modules\Lpj\Models\Permohonan;
|
use Modules\Lpj\Models\Permohonan;
|
||||||
use Modules\Lpj\Models\StatusPermohonan;
|
use Modules\Lpj\Models\StatusPermohonan;
|
||||||
use Modules\Lpj\Models\Teams;
|
use Modules\Lpj\Models\Teams;
|
||||||
|
use Modules\Lpj\Models\Regions;
|
||||||
use Modules\Lpj\Models\TeamsUsers;
|
use Modules\Lpj\Models\TeamsUsers;
|
||||||
use Modules\Usermanagement\Models\User;
|
use Modules\Usermanagement\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class PenilaianController extends Controller
|
class PenilaianController extends Controller
|
||||||
{
|
{
|
||||||
@@ -37,16 +41,95 @@ class PenilaianController extends Controller
|
|||||||
|
|
||||||
if ($validatedData) {
|
if ($validatedData) {
|
||||||
try {
|
try {
|
||||||
$penilaian = Penilaian::create($validatedData);
|
DB::beginTransaction();
|
||||||
|
|
||||||
$permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi);
|
$penilaian = Penilaian::create($validatedData);
|
||||||
|
$validatedData['penilaian_id'] = $penilaian->id;
|
||||||
|
|
||||||
|
$teams_ids = [];
|
||||||
|
$user_ids = [];
|
||||||
|
$roles = [];
|
||||||
|
|
||||||
|
if ($validatedData['surveyor_id'] === 'pilih_dari_region') {
|
||||||
|
$surveyor_region_id = $validatedData['surveyor_region_id'];
|
||||||
|
|
||||||
|
// Hapus team_id sebelumnya di Permohonan jika ada
|
||||||
|
$permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first();
|
||||||
|
if ($permohonan) {
|
||||||
$permohonan->update([
|
$permohonan->update([
|
||||||
'status' => 'assign',
|
'region_id' => $surveyor_region_id,
|
||||||
]);
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$teams_ids[] = $surveyor_region_id;
|
||||||
|
$user_ids[] = null;
|
||||||
|
$roles[] = 'surveyor';
|
||||||
|
} else {
|
||||||
|
$permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first();
|
||||||
|
$teams_ids[] = $validatedData['teams_id'];
|
||||||
|
|
||||||
|
if (isset($validatedData['penilai_surveyor_id'])) {
|
||||||
|
$user_ids[] = $validatedData['penilai_surveyor_id'];
|
||||||
|
} else {
|
||||||
|
$user_ids[] = $validatedData['surveyor_id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$roles[] = 'surveyor';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($validatedData['penilai_id'] === 'pilih_dari_region') {
|
||||||
|
$penilaian_region_id = $validatedData['penilai_region_id'];
|
||||||
|
|
||||||
|
// Hapus team_id sebelumnya di Permohonan jika ada
|
||||||
|
$permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first();
|
||||||
|
if ($permohonan) {
|
||||||
|
$permohonan->update([
|
||||||
|
'region_id' => $penilaian_region_id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$teams_ids[] = $penilaian_region_id;
|
||||||
|
$user_ids[] = null;
|
||||||
|
$roles[] = 'penilai';
|
||||||
|
} else {
|
||||||
|
$permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first();
|
||||||
|
$teams_ids[] = $validatedData['teams_id'];
|
||||||
|
|
||||||
|
if (isset($validatedData['penilai_surveyor_id'])) {
|
||||||
|
$user_ids[] = $validatedData['penilai_surveyor_id'];
|
||||||
|
}else {
|
||||||
|
$user_ids[] = $validatedData['penilai_id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$roles[] = 'penilai';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($teams_ids as $key => $teams_id) {
|
||||||
|
PenilaianTeam::create([
|
||||||
|
'penilaian_id' => $validatedData['penilaian_id'],
|
||||||
|
'team_id' => $teams_id,
|
||||||
|
'user_id' => $user_ids[$key],
|
||||||
|
'role' => $roles[$key],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($validatedData['surveyor_id'] === 'pilih_dari_region' || $validatedData['penilai_id'] === 'pilih_dari_region') {
|
||||||
|
$status = 'registered';
|
||||||
|
} else {
|
||||||
|
$status = 'assign';
|
||||||
|
}
|
||||||
|
|
||||||
|
$permohonan->update([
|
||||||
|
'status' => $status,
|
||||||
|
]);
|
||||||
|
|
||||||
|
DB::commit();
|
||||||
|
|
||||||
return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil disimpan');
|
return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil disimpan');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
DB::rollBack();
|
||||||
return redirect()->route('penilaian.index')->with('error', $e->getMessage());
|
return redirect()->route('penilaian.index')->with('error', $e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -63,22 +146,43 @@ class PenilaianController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Update the specified resource in storage.
|
* Update the specified resource in storage.
|
||||||
*/
|
*/
|
||||||
public function update(PenilaianRequest $request, $id)
|
public function update(Request $request, $id)
|
||||||
{
|
{
|
||||||
$validate = $request->validated();
|
|
||||||
if ($validate) {
|
|
||||||
try {
|
try {
|
||||||
$penilaian = Penilaian::where('nomor_registrasi', $request->nomor_registrasi)->firstOrFail();
|
DB::beginTransaction();
|
||||||
$penilaian->update($validate);
|
$penilaian = Penilaian::where('nomor_registrasi', $request->nomor_registrasi)->first();
|
||||||
|
|
||||||
|
$penilaianId = $penilaian->id;
|
||||||
|
|
||||||
|
$penilainTeam = PenilaianTeam::where('penilaian_id', $penilaianId)->get();
|
||||||
|
|
||||||
|
|
||||||
|
foreach ($penilainTeam as $item) {
|
||||||
|
if ($item->role === 'surveyor' && $item->user_id === null) {
|
||||||
|
$item->update([
|
||||||
|
'user_id' => $request->surveyor_id,
|
||||||
|
'role' => 'surveyor',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($item->role === 'penilai' && $item->user_id === null) {
|
||||||
|
$item->update([
|
||||||
|
'user_id' => $request->penilai_id,
|
||||||
|
'role' => 'penilai',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
$permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi);
|
$permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi);
|
||||||
$permohonan->update([
|
$permohonan->update([
|
||||||
'status' => 'assign',
|
'status' => 'assign',
|
||||||
]);
|
]);
|
||||||
|
DB::commit();
|
||||||
return redirect()->route('penilaian.index', $id)->with('success', 'Penilaian berhasil diubah');
|
return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil disimpan');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
return redirect()->route('penilaian.index', $id)->with('error', $e->getMessage());
|
DB::rollBack();
|
||||||
}
|
return redirect()->route('penilaian.index')->with('error', $e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,8 +191,7 @@ class PenilaianController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function assignment($id)
|
public function assignment($id)
|
||||||
{
|
{
|
||||||
$permohonan = Permohonan::with(
|
$permohonan = Permohonan::with([
|
||||||
[
|
|
||||||
'user',
|
'user',
|
||||||
'debiture.province',
|
'debiture.province',
|
||||||
'debiture.city',
|
'debiture.city',
|
||||||
@@ -96,33 +199,58 @@ class PenilaianController extends Controller
|
|||||||
'debiture.village',
|
'debiture.village',
|
||||||
'branch',
|
'branch',
|
||||||
'tujuanPenilaian',
|
'tujuanPenilaian',
|
||||||
],
|
])->findOrFail($id);
|
||||||
)->findOrFail($id);
|
|
||||||
|
|
||||||
$idPenilaian = $permohonan->jenis_penilaian_id;
|
$idPenilaian = $permohonan->jenis_penilaian_id;
|
||||||
$idRegion = $permohonan->region_id;
|
$idRegion = $permohonan->region_id;
|
||||||
|
|
||||||
$jenisPenilaian = JenisPenilaian::find($idPenilaian);
|
$jenisPenilaian = JenisPenilaian::find($idPenilaian);
|
||||||
|
|
||||||
|
$userTeam = Teams::with(['regions', 'teamsUsers.user'])
|
||||||
$teamPenilai = Teams::with(['regions', 'teamsUsers', 'teamsUsers.user', ])
|
|
||||||
->whereHas('regions', function ($q) use ($idRegion) {
|
->whereHas('regions', function ($q) use ($idRegion) {
|
||||||
$q->where('id', $idRegion);
|
$q->where('id', $idRegion);
|
||||||
})->get();
|
})
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$teamPenilai = $userTeam->flatMap(function ($team) {
|
||||||
|
return $team->teamsUsers->filter(function ($teamUser) {
|
||||||
|
return $teamUser->user->roles->contains(function ($role) {
|
||||||
|
return $role->name === 'surveyor' || $role->name === 'surveyor-penilai';
|
||||||
|
});
|
||||||
|
})->map(function ($teamUser) {
|
||||||
|
return $teamUser->user;
|
||||||
|
});
|
||||||
|
})->unique('id');
|
||||||
|
|
||||||
|
$existingTeamIds = $teamPenilai->pluck('id')->toArray();
|
||||||
|
|
||||||
|
$updateTeamPenilai = Teams::with(['regions', 'teamsUsers', 'teamsUsers.user'])
|
||||||
|
->whereNotIn('id', $existingTeamIds)
|
||||||
|
->get();
|
||||||
|
|
||||||
$regionName = null;
|
$regionName = null;
|
||||||
foreach ($teamPenilai as $item) {
|
foreach ($userTeam as $item) {
|
||||||
$regionName = $item->regions;
|
$regionName = $item->regions;
|
||||||
}
|
}
|
||||||
|
// $regionName = $userTeam->first()?->regions->name;
|
||||||
|
|
||||||
|
|
||||||
// dd($teamPenilai);
|
|
||||||
|
|
||||||
$penilaian = Penilaian::where('nomor_registrasi', $permohonan->nomor_registrasi)->first();
|
$penilaian = Penilaian::where('nomor_registrasi', $permohonan->nomor_registrasi)->first();
|
||||||
|
|
||||||
return view('lpj::penilaian.form', compact('permohonan', 'teamPenilai', 'jenisPenilaian', 'penilaian', 'regionName'));
|
|
||||||
|
$penilaianTeam = collect();
|
||||||
|
if ($penilaian && $penilaian->id) {
|
||||||
|
$penilaianTeam = PenilaianTeam::where('penilaian_id', $penilaian->id)->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// return response()->json([
|
||||||
|
// 'penilaianTeam' => $penilaianTeam
|
||||||
|
// ]);
|
||||||
|
|
||||||
|
|
||||||
|
return view('lpj::penilaian.form', compact('permohonan', 'teamPenilai', 'jenisPenilaian', 'penilaian', 'regionName', 'updateTeamPenilai', 'penilaianTeam'));
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Remove the specified resource from storage.
|
* Remove the specified resource from storage.
|
||||||
*/
|
*/
|
||||||
@@ -160,8 +288,9 @@ class PenilaianController extends Controller
|
|||||||
|
|
||||||
public function dataForDatatables(Request $request)
|
public function dataForDatatables(Request $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (is_null($this->user) || !$this->user->can('debitur.view')) {
|
if (is_null($this->user) || !$this->user->can('debitur.view')) {
|
||||||
// abort(403, 'Sorry! You are not allowed to view users.');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = Permohonan::query();
|
$query = Permohonan::query();
|
||||||
@@ -180,6 +309,9 @@ class PenilaianController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
$query->whereRaw('LOWER(status) = ?', ['registered']);
|
$query->whereRaw('LOWER(status) = ?', ['registered']);
|
||||||
|
$query->whereHas('region.teams.teamsUsers.user', function ($q) {
|
||||||
|
$q->where('id', Auth::user()->id);
|
||||||
|
});
|
||||||
|
|
||||||
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
||||||
$order = $request->get('sortOrder');
|
$order = $request->get('sortOrder');
|
||||||
@@ -202,7 +334,7 @@ class PenilaianController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
$filteredRecords = $query->count();
|
$filteredRecords = $query->count();
|
||||||
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
|
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'region.teams.teamsUsers.user'])->get();
|
||||||
|
|
||||||
$pageCount = ceil($totalRecords / $size);
|
$pageCount = ceil($totalRecords / $size);
|
||||||
|
|
||||||
@@ -222,7 +354,8 @@ class PenilaianController extends Controller
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function otorisator(Request $request){
|
public function otorisator(Request $request)
|
||||||
|
{
|
||||||
|
|
||||||
$type = $request->route('type');
|
$type = $request->route('type');
|
||||||
$header = '';
|
$header = '';
|
||||||
@@ -248,7 +381,8 @@ class PenilaianController extends Controller
|
|||||||
return view('lpj::penilaian.otorisator.index', compact('header'));
|
return view('lpj::penilaian.otorisator.index', compact('header'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function show($id){
|
public function show($id)
|
||||||
|
{
|
||||||
|
|
||||||
$permohonan = Permohonan::find($id);
|
$permohonan = Permohonan::find($id);
|
||||||
|
|
||||||
@@ -272,7 +406,10 @@ class PenilaianController extends Controller
|
|||||||
$status = 'proses paparan';
|
$status = 'proses paparan';
|
||||||
break;
|
break;
|
||||||
case 'Pembayaran':
|
case 'Pembayaran':
|
||||||
$status = 'proses pembayaran';
|
$status = 'proses';
|
||||||
|
break;
|
||||||
|
case 'Pembatalan':
|
||||||
|
$status = 'order';
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$status = '';
|
$status = '';
|
||||||
@@ -298,8 +435,12 @@ class PenilaianController extends Controller
|
|||||||
|
|
||||||
|
|
||||||
if (!empty($otorisator)) {
|
if (!empty($otorisator)) {
|
||||||
|
if ($status == 'proses') {
|
||||||
|
$query->whereIn('status_bayar', ['sudah_bayar', 'belum_bayar']);
|
||||||
|
} else {
|
||||||
$query->whereRaw('LOWER(status) = ?', [strtolower($status)]);
|
$query->whereRaw('LOWER(status) = ?', [strtolower($status)]);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Sorting berdasarkan sortField dan sortOrder
|
// Sorting berdasarkan sortField dan sortOrder
|
||||||
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace Modules\Lpj\Http\Controllers;
|
namespace Modules\Lpj\Http\Controllers;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use Barryvdh\DomPDF\Facade\Pdf;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Maatwebsite\Excel\Facades\Excel;
|
use Maatwebsite\Excel\Facades\Excel;
|
||||||
@@ -32,25 +33,20 @@
|
|||||||
|
|
||||||
public function store(PermohonanRequest $request)
|
public function store(PermohonanRequest $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
$validate = $request->validated();
|
$validate = $request->validated();
|
||||||
if ($validate) {
|
if ($validate) {
|
||||||
try {
|
try {
|
||||||
// Save to database
|
// Save to database
|
||||||
Permohonan::create($validate);
|
Permohonan::create($validate);
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('permohonan.index')
|
->route('permohonan.index')->with('success', 'Permohonan created successfully');
|
||||||
->with('success', 'Permohonan created successfully');
|
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('permohonan.create')
|
->route('permohonan.create')->with('error', 'Failed to create permohonan' . $e->getMessage());
|
||||||
->with('error', 'Failed to create permohonan' . $e->getMessage());
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('permohonan.create')
|
->route('permohonan.create')->with('success', 'error naon iye')->withInput();
|
||||||
->with('success', 'error naon iye')
|
|
||||||
->withInput();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,19 +108,20 @@
|
|||||||
public function update(PermohonanRequest $request, $id)
|
public function update(PermohonanRequest $request, $id)
|
||||||
{
|
{
|
||||||
$validate = $request->validated();
|
$validate = $request->validated();
|
||||||
|
|
||||||
if ($validate) {
|
if ($validate) {
|
||||||
try {
|
try {
|
||||||
// Update in database
|
// Update in database
|
||||||
$permohonan = Permohonan::find($id);
|
$permohonan = Permohonan::find($id);
|
||||||
|
if ($permohonan->status == 'revisi') {
|
||||||
|
$validate['status'] = 'order';
|
||||||
|
}
|
||||||
|
|
||||||
$permohonan->update($validate);
|
$permohonan->update($validate);
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('permohonan.index')
|
->route('permohonan.index')->with('success', 'Permohonan updated successfully');
|
||||||
->with('success', 'Permohonan updated successfully');
|
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('permohonan.edit', $id)
|
->route('permohonan.edit', $id)->with('error', 'Failed to update permohonan');
|
||||||
->with('error', 'Failed to update permohonan');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -304,4 +301,20 @@
|
|||||||
|
|
||||||
return redirect()->route('authorization.index')->with('success', 'Permohonan updated successfully');
|
return redirect()->route('authorization.index')->with('success', 'Permohonan updated successfully');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
$permohonan = Permohonan::find($id);
|
||||||
|
|
||||||
|
return view('lpj::permohonan.show', compact('permohonan'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function print($id)
|
||||||
|
{
|
||||||
|
$permohonan = Permohonan::find($id);
|
||||||
|
return view('lpj::permohonan.print', compact('permohonan'));
|
||||||
|
|
||||||
|
// $pdf = Pdf::loadView('lpj::permohonan.print', compact('permohonan'));
|
||||||
|
// return $pdf->stream();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ class ProsesPenawaranController extends Controller
|
|||||||
|
|
||||||
// Get the data for the current page
|
// Get the data for the current page
|
||||||
//$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
|
//$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
|
||||||
$data = $query->with(['tujuanPenilaianKJPP'])->get();
|
$data = $query->with(['tujuanPenilaianKjpp','permohonan','permohonan.debiture'])->get();
|
||||||
|
|
||||||
// Calculate the page count
|
// Calculate the page count
|
||||||
$pageCount = ceil($totalRecords / $request->get('size'));
|
$pageCount = ceil($totalRecords / $request->get('size'));
|
||||||
@@ -116,7 +116,6 @@ class ProsesPenawaranController extends Controller
|
|||||||
->get();
|
->get();
|
||||||
|
|
||||||
if ($penawaran) {
|
if ($penawaran) {
|
||||||
|
|
||||||
$i=0;
|
$i=0;
|
||||||
foreach($penawrandetails as $obj)
|
foreach($penawrandetails as $obj)
|
||||||
{
|
{
|
||||||
@@ -267,20 +266,15 @@ class ProsesPenawaranController extends Controller
|
|||||||
{
|
{
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
try {
|
try {
|
||||||
$dataPenawaran = ['status' => 'persetujuan-penawaran',
|
$_updatestatus = ['status' => 'proposal-tender',
|
||||||
'updated_by' => Auth::id(),
|
|
||||||
'updated_at' => now()
|
|
||||||
];
|
|
||||||
|
|
||||||
$dataPermohonan = ['status' => 'persetujuan-penawaran',
|
|
||||||
'updated_by' => Auth::id(),
|
'updated_by' => Auth::id(),
|
||||||
'updated_at' => now()
|
'updated_at' => now()
|
||||||
];
|
];
|
||||||
|
|
||||||
$permohonan = Permohonan::where('nomor_registrasi','=', $penawaran->nomor_registrasi)->first();
|
$permohonan = Permohonan::where('nomor_registrasi','=', $penawaran->nomor_registrasi)->first();
|
||||||
|
|
||||||
$penawaran->update($dataPenawaran);
|
$penawaran->update($_updatestatus);
|
||||||
$permohonan->update($dataPermohonan);
|
$permohonan->update($_updatestatus);
|
||||||
|
|
||||||
DB::commit();
|
DB::commit();
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class ProsesPenawaranUlangController extends Controller
|
|||||||
$query =PenawaranTender::query()
|
$query =PenawaranTender::query()
|
||||||
->select('penawaran.*',DB::raw("CONCAT(DATE_FORMAT(penawaran.start_date, '%d %M %Y'), ' - ', DATE_FORMAT(penawaran.end_date, '%d %M %Y')) AS date_range"), 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name')
|
->select('penawaran.*',DB::raw("CONCAT(DATE_FORMAT(penawaran.start_date, '%d %M %Y'), ' - ', DATE_FORMAT(penawaran.end_date, '%d %M %Y')) AS date_range"), 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name')
|
||||||
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
|
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
|
||||||
->where('penawaran.status','=','persetujuan-penawaran')
|
->where('penawaran.status','=','proposal-tender')
|
||||||
->withCount('penawarandetails');
|
->withCount('penawarandetails');
|
||||||
|
|
||||||
// Apply search filter if provided
|
// Apply search filter if provided
|
||||||
@@ -118,7 +118,7 @@ class ProsesPenawaranUlangController extends Controller
|
|||||||
|
|
||||||
if (request()->ajax()) {
|
if (request()->ajax()) {
|
||||||
$id = $request->id;
|
$id = $request->id;
|
||||||
$penawaran = PenawaranTender::where('status','=','persetujuan-penawaran')->find($id);
|
$penawaran = PenawaranTender::where('status','=','proposal-tender')->find($id);
|
||||||
|
|
||||||
if ($penawaran) {
|
if ($penawaran) {
|
||||||
$penawrandetails = PenawaranDetailTender::where('penawaran_id','=',$id)
|
$penawrandetails = PenawaranDetailTender::where('penawaran_id','=',$id)
|
||||||
|
|||||||
@@ -167,6 +167,8 @@
|
|||||||
$dataku['jenis_penilaian_id'] =$request->jenis_penilaian;
|
$dataku['jenis_penilaian_id'] =$request->jenis_penilaian;
|
||||||
$dataku['region_id'] =$request->region;
|
$dataku['region_id'] =$request->region;
|
||||||
$dataku['status'] = 'registered';
|
$dataku['status'] = 'registered';
|
||||||
|
if($request->catatan2)
|
||||||
|
$dataku['registrasi_catatan'] =$request->catatan2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5,8 +5,17 @@
|
|||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Exception;
|
use Exception;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
use Maatwebsite\Excel\Facades\Excel;
|
use Maatwebsite\Excel\Facades\Excel;
|
||||||
|
use Modules\Lpj\Models\PenawaranTender;
|
||||||
|
use Modules\Lpj\Models\Permohonan;
|
||||||
|
use Modules\Lpj\Models\Regions;
|
||||||
|
|
||||||
// use Modules\Location\Models\City;
|
// use Modules\Location\Models\City;
|
||||||
// use Modules\Location\Models\District;
|
// use Modules\Location\Models\District;
|
||||||
// use Modules\Location\Models\Province;
|
// use Modules\Location\Models\Province;
|
||||||
@@ -20,15 +29,6 @@ use Exception;
|
|||||||
// use Modules\Lpj\Models\JenisJaminan;
|
// use Modules\Lpj\Models\JenisJaminan;
|
||||||
// use Modules\Lpj\Models\JenisLegalitasJaminan;
|
// use Modules\Lpj\Models\JenisLegalitasJaminan;
|
||||||
// use Modules\Lpj\Models\PemilikJaminan;
|
// use Modules\Lpj\Models\PemilikJaminan;
|
||||||
use Modules\Lpj\Models\Permohonan;
|
|
||||||
use Modules\Lpj\Models\JenisPenilaian;
|
|
||||||
use Modules\Lpj\Models\Regions;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
|
||||||
use Illuminate\Support\Facades\Validator;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Support\Facades\DB;
|
|
||||||
|
|
||||||
use Modules\Lpj\Models\PenawaranTender;
|
|
||||||
|
|
||||||
class RegistrasiFinalController extends Controller
|
class RegistrasiFinalController extends Controller
|
||||||
{
|
{
|
||||||
@@ -46,11 +46,12 @@ use Modules\Lpj\Models\PenawaranTender;
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve data from the database
|
// Retrieve data from the database
|
||||||
$query =PenawaranTender::query()
|
$query = PenawaranTender::with(['permohonan', 'tujuanPenilaianKjpp'])->whereHas(
|
||||||
->select('penawaran.*', 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name')
|
'permohonan',
|
||||||
->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id')
|
function ($q) {
|
||||||
->where('penawaran.status','=','spk')
|
$q->where('status', '=', 'spk');
|
||||||
->withCount('penawarandetails');
|
},
|
||||||
|
)->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'))) {
|
||||||
@@ -87,27 +88,25 @@ use Modules\Lpj\Models\PenawaranTender;
|
|||||||
|
|
||||||
// Get the data for the current page
|
// Get the data for the current page
|
||||||
//$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
|
//$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
|
||||||
$data = $query->get();
|
$data = $query->with(['permohonan'])->get();
|
||||||
// dd($data);
|
// dd($data);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach($data as $obj)
|
foreach ($data as $obj) {
|
||||||
{
|
if ($obj->tanggal_penilaian_sebelumnya) {
|
||||||
if($obj->tanggal_penilaian_sebelumnya)
|
$data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format(
|
||||||
{
|
'd F Y H:i:s',
|
||||||
$data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format('d F Y H:i:s');
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($obj->biaya_kjpp_sebelumnya)
|
if ($obj->biaya_kjpp_sebelumnya) {
|
||||||
{
|
|
||||||
$data[$i]->biaya_kjpp_sebelumnya = formatRupiah($obj->biaya_kjpp_sebelumnya);
|
$data[$i]->biaya_kjpp_sebelumnya = formatRupiah($obj->biaya_kjpp_sebelumnya);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// date_range
|
// 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').' - '.Carbon::parse($obj->end_date)->format('d M Y');
|
$obj->end_date,
|
||||||
|
)->format('d M Y');
|
||||||
}
|
}
|
||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
@@ -128,13 +127,19 @@ use Modules\Lpj\Models\PenawaranTender;
|
|||||||
'pageCount' => $pageCount,
|
'pageCount' => $pageCount,
|
||||||
'page' => $currentPage,
|
'page' => $currentPage,
|
||||||
'totalCount' => $totalRecords,
|
'totalCount' => $totalRecords,
|
||||||
'data' => $data
|
'data' => $data,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function show($id)
|
public function show($id)
|
||||||
{
|
{
|
||||||
$permohonan = Permohonan::find($id);
|
$permohonan = Permohonan::find($id);
|
||||||
|
if ($permohonan->dokumen) {
|
||||||
|
$pdfSPK_path = Storage::url($permohonan->dokumen);
|
||||||
|
$permohonan->dokumen = $pdfSPK_path;
|
||||||
|
$permohonan->dokumen = '| <a download href="' . $pdfSPK_path . '" class="badge badge-sm badge-outline" target="_blank">Dokumen SPK.pdf <i class="ki-filled ki-cloud-download"></i></a>';
|
||||||
|
}
|
||||||
|
|
||||||
return view('lpj::registrasifinal.show', compact('id', 'permohonan'));
|
return view('lpj::registrasifinal.show', compact('id', 'permohonan'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,10 +148,10 @@ use Modules\Lpj\Models\PenawaranTender;
|
|||||||
return view('lpj::registrasifinal.edit', compact('id'));
|
return view('lpj::registrasifinal.edit', compact('id'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setData(Request $request): JsonResponse
|
public function setData(Request $request)
|
||||||
{
|
: JsonResponse {
|
||||||
$data = array();
|
$data = [];
|
||||||
$datas = array();
|
$datas = [];
|
||||||
|
|
||||||
if (request()->ajax()) {
|
if (request()->ajax()) {
|
||||||
$id = $request->id;
|
$id = $request->id;
|
||||||
@@ -159,36 +164,40 @@ use Modules\Lpj\Models\PenawaranTender;
|
|||||||
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $datas->nomor_registrasi)->first();
|
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $datas->nomor_registrasi)->first();
|
||||||
|
|
||||||
$penawaranString = "";
|
$penawaranString = "";
|
||||||
if($penawaran->status)
|
if ($penawaran->status) {
|
||||||
{
|
|
||||||
$penawaranString = convertSlug($penawaran->status);
|
$penawaranString = convertSlug($penawaran->status);
|
||||||
$penawaran->status = $penawaranString;
|
$penawaran->status = $penawaranString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($datas->dokumen) {
|
||||||
|
$pdfSPK_path = Storage::url($datas->dokumen);
|
||||||
|
$datas->dokumen = $pdfSPK_path;
|
||||||
|
}
|
||||||
|
|
||||||
$data['status'] = 'success';
|
$data['status'] = 'success';
|
||||||
$data['regions'] = $regions;
|
$data['regions'] = $regions;
|
||||||
$data['penawaran'] = $penawaran;
|
$data['penawaran'] = $penawaran;
|
||||||
$data['datas'] = $datas;
|
$data['datas'] = $datas;
|
||||||
$data['message']['message_success'] = array("data successfully found");
|
$data['message']['message_success'] = ["data successfully found"];
|
||||||
} else {
|
} else {
|
||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['datas'] = null;
|
$data['datas'] = null;
|
||||||
$data['message']['message_data'] = array("data not found");
|
$data['message']['message_data'] = ["data not found"];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['message']['message_ajax'] = array("no ajax request");
|
$data['message']['message_ajax'] = ["no ajax request"];
|
||||||
}
|
}
|
||||||
|
|
||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update(Request $request, $id): JsonResponse
|
public function update(Request $request, $id)
|
||||||
{
|
: JsonResponse {
|
||||||
// init
|
// init
|
||||||
$data = array();
|
$data = [];
|
||||||
$dataPermohonan = array();
|
$dataPermohonan = [];
|
||||||
$dataPenawaran = array();
|
$dataPenawaran = [];
|
||||||
|
|
||||||
if (request()->ajax()) {
|
if (request()->ajax()) {
|
||||||
$validator = RegistrasiFinalController::rulesEditnya($request, $id);
|
$validator = RegistrasiFinalController::rulesEditnya($request, $id);
|
||||||
@@ -196,12 +205,9 @@ use Modules\Lpj\Models\PenawaranTender;
|
|||||||
if ($validator['fails']) {
|
if ($validator['fails']) {
|
||||||
$data['message'] = $validator['errors'];
|
$data['message'] = $validator['errors'];
|
||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
try {
|
try {
|
||||||
|
|
||||||
// update table permohonan => status (registrasi-final), region_id, keterangan, authorized_at, authorized_status, authorized_by
|
// update table permohonan => status (registrasi-final), region_id, keterangan, authorized_at, authorized_status, authorized_by
|
||||||
// update table penawaran => status (registrasi-final)
|
// update table penawaran => status (registrasi-final)
|
||||||
$dataPermohonan = [
|
$dataPermohonan = [
|
||||||
@@ -210,14 +216,15 @@ use Modules\Lpj\Models\PenawaranTender;
|
|||||||
'keterangan' => $request->catatan,
|
'keterangan' => $request->catatan,
|
||||||
'authorized_at' => now(),
|
'authorized_at' => now(),
|
||||||
'authorized_status' => 1,
|
'authorized_status' => 1,
|
||||||
'authorized_by' => Auth::id()
|
'authorized_by' => Auth::id(),
|
||||||
];
|
];
|
||||||
|
|
||||||
$dataPenawaran = ['status' => 'registrasi-final'];
|
$dataPenawaran = ['status' => 'registrasi-final'];
|
||||||
|
|
||||||
|
|
||||||
$permohonan = Permohonan::find($id);
|
$permohonan = Permohonan::find($id);
|
||||||
$penawaran = PenawaranTender::where('nomor_registrasi','=',$permohonan->nomor_registrasi)->first();
|
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $permohonan->nomor_registrasi)
|
||||||
|
->first();
|
||||||
|
|
||||||
$permohonan->update($dataPermohonan);
|
$permohonan->update($dataPermohonan);
|
||||||
$penawaran->update($dataPenawaran);
|
$penawaran->update($dataPenawaran);
|
||||||
@@ -225,21 +232,19 @@ use Modules\Lpj\Models\PenawaranTender;
|
|||||||
DB::commit();
|
DB::commit();
|
||||||
|
|
||||||
$data['status'] = 'success';
|
$data['status'] = 'success';
|
||||||
$data['message']['message_success'] = array('Regitrasi Final '.$permohonan->nomor_registrasi.' successfully');
|
$data['message']['message_success'] = ['Regitrasi Final ' . $permohonan->nomor_registrasi . ' successfully'];
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['message']['message_try_catch'] = array('Regitrasi Final '.$permohonan->nomor_registrasi.' failed.');
|
$data['message']['message_try_catch'] = ['Regitrasi Final ' . $permohonan->nomor_registrasi . ' failed.'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$data['status'] = 'error';
|
$data['status'] = 'error';
|
||||||
$data['message']['message_ajax'] = array("no ajax request");
|
$data['message']['message_ajax'] = ["no ajax request"];
|
||||||
}
|
}
|
||||||
|
|
||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rulesEditnya($request, $id)
|
public function rulesEditnya($request, $id)
|
||||||
@@ -254,7 +259,7 @@ use Modules\Lpj\Models\PenawaranTender;
|
|||||||
|
|
||||||
$messageIt = [
|
$messageIt = [
|
||||||
'region.required' => 'Silahkan pilih Region',
|
'region.required' => 'Silahkan pilih Region',
|
||||||
'catatan.required' => 'Silahkan isi Catatan'
|
'catatan.required' => 'Silahkan isi Catatan',
|
||||||
];
|
];
|
||||||
|
|
||||||
$validator = Validator::make($request->all(), $validateIt, $messageIt);
|
$validator = Validator::make($request->all(), $validateIt, $messageIt);
|
||||||
|
|||||||
65
app/Http/Controllers/SLAController.php
Normal file
65
app/Http/Controllers/SLAController.php
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class SLAController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('lpj::SLA.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('lpj::create');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the specified resource.
|
||||||
|
*/
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
return view('lpj::show');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
return view('lpj::edit');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*/
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,13 +2,21 @@
|
|||||||
|
|
||||||
namespace Modules\Lpj\Http\Controllers;
|
namespace Modules\Lpj\Http\Controllers;
|
||||||
|
|
||||||
|
use Carbon\Carbon;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use Barryvdh\DomPDF\Facade\Pdf; // https://github.com/barryvdh/laravel-dompdf
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Maatwebsite\Excel\Facades\Excel;
|
use Maatwebsite\Excel\Facades\Excel;
|
||||||
// use Modules\Lpj\Exports\TujuanPenilaianExport;
|
// use Modules\Lpj\Exports\TujuanPenilaianExport;
|
||||||
// use Modules\Lpj\Http\Requests\TujuanPenilaianRequest;
|
// use Modules\Lpj\Http\Requests\TujuanPenilaianRequest;
|
||||||
// use Modules\Lpj\Models\TujuanPenilaian;
|
// use Modules\Lpj\Models\TujuanPenilaian;
|
||||||
|
use Modules\Lpj\Models\PenawaranTender;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Modules\Lpj\Models\Permohonan;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class SpkController extends Controller
|
class SpkController extends Controller
|
||||||
{
|
{
|
||||||
@@ -19,10 +27,223 @@
|
|||||||
return view('lpj::spk.index');
|
return view('lpj::spk.index');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function dataForDatatables(Request $request)
|
||||||
|
{
|
||||||
|
if (is_null($this->user) || !$this->user->can('debitur.view')) {
|
||||||
|
//abort(403, 'Sorry! You are not allowed to view users.');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Retrieve data from the database
|
||||||
|
$query =Permohonan::query()->with(['penawaran','penawaran.tujuanPenilaianKjpp'])
|
||||||
|
->where('permohonan.status','=','spk');
|
||||||
|
|
||||||
|
// Apply search filter if provided
|
||||||
|
if ($request->has('search') && !empty($request->get('search'))) {
|
||||||
|
$search = $request->get('search');
|
||||||
|
$query->where(function ($q) use ($search) {
|
||||||
|
$q->where('nomor_registrasi', 'LIKE', '%' . $search . '%');
|
||||||
|
$q->orWhere('penawaran.tanggal_permohonan', 'LIKE', '%' . $search . '%');
|
||||||
|
|
||||||
|
$q->orWhere('status', 'LIKE', '%' . $search . '%');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply sorting if provided
|
||||||
|
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
||||||
|
$order = $request->get('sortOrder');
|
||||||
|
$column = $request->get('sortField');
|
||||||
|
$query->orderBy($column, $order);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the total count of records
|
||||||
|
$totalRecords = $query->count();
|
||||||
|
|
||||||
|
// Apply pagination if provided
|
||||||
|
if ($request->has('page') && $request->has('size')) {
|
||||||
|
$page = $request->get('page');
|
||||||
|
$size = $request->get('size');
|
||||||
|
$offset = ($page - 1) * $size; // Calculate the offset
|
||||||
|
|
||||||
|
$query->skip($offset)->take($size);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the filtered count of records
|
||||||
|
$filteredRecords = $query->count();
|
||||||
|
|
||||||
|
// Get the data for the current page
|
||||||
|
//$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get();
|
||||||
|
|
||||||
|
$data = $query->get();
|
||||||
|
|
||||||
|
$i=0;
|
||||||
|
foreach($data as $obj)
|
||||||
|
{
|
||||||
|
if($obj->tanggal_penilaian_sebelumnya)
|
||||||
|
{
|
||||||
|
$data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format('d F Y H:i:s');
|
||||||
|
}
|
||||||
|
|
||||||
|
if($obj->biaya_kjpp_sebelumnya)
|
||||||
|
{
|
||||||
|
$data[$i]->biaya_kjpp_sebelumnya = formatRupiah($obj->biaya_kjpp_sebelumnya);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// date_range
|
||||||
|
if($obj->start_date && $obj->end_date)
|
||||||
|
{
|
||||||
|
$data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y').' - '.Carbon::parse($obj->end_date)->format('d M Y');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// data dokumen_spk
|
||||||
|
if($obj->dokumen)
|
||||||
|
{
|
||||||
|
$spkpenawaran_path = Storage::url($obj->dokumen);
|
||||||
|
// dd($spkpenawaran_path);
|
||||||
|
$data[$i]->dokumen = $spkpenawaran_path;
|
||||||
|
}
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Calculate the page count
|
||||||
|
$pageCount = ceil($totalRecords / $request->get('size'));
|
||||||
|
|
||||||
|
// Calculate the current page number
|
||||||
|
$currentPage = 0 + 1;
|
||||||
|
|
||||||
|
// Return the response data as a JSON object
|
||||||
|
return response()->json([
|
||||||
|
'draw' => $request->get('draw'),
|
||||||
|
'recordsTotal' => $totalRecords,
|
||||||
|
'recordsFiltered' => $filteredRecords,
|
||||||
|
'pageCount' => $pageCount,
|
||||||
|
'page' => $currentPage,
|
||||||
|
'totalCount' => $totalRecords,
|
||||||
|
'data' => $data
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
public function viewSpk()
|
public function viewSpk()
|
||||||
{
|
{
|
||||||
// return Excel::download(new TujuanPenilaianExport, 'tujuan_penilaian.xlsx');
|
// return Excel::download(new TujuanPenilaianExport, 'tujuan_penilaian.xlsx');
|
||||||
|
|
||||||
return view('lpj::spk.view');
|
return view('lpj::spk.view');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
$penawaran = PenawaranTender::find($id);
|
||||||
|
// return view('lpj::spk.show', compact('id','permohonan'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id')
|
||||||
|
->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id')
|
||||||
|
->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id')
|
||||||
|
->where('detail_penawaran.status','=',1)
|
||||||
|
->where('penawaran.id','=', $id)
|
||||||
|
->select('penawaran.*', 'detail_penawaran.attachment as attachmentku',
|
||||||
|
'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran',
|
||||||
|
'kjpp.name as kjpp_name',
|
||||||
|
'kjpp.address as kjpp_address',
|
||||||
|
'jenis_laporan.name as jenis_laporan_name'
|
||||||
|
)->first();
|
||||||
|
|
||||||
|
$permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)
|
||||||
|
->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id')
|
||||||
|
->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id')
|
||||||
|
->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name',
|
||||||
|
'dokumen_jaminan.address as dokumen_jaminan_address');
|
||||||
|
|
||||||
|
$data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first();
|
||||||
|
|
||||||
|
return view('lpj::spk.edit', compact('data', 'penawaran'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(Request $request, $id): JsonResponse
|
||||||
|
{
|
||||||
|
// init
|
||||||
|
$data1 = array();
|
||||||
|
$dataPermohonan = array();
|
||||||
|
// data
|
||||||
|
|
||||||
|
$penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id')
|
||||||
|
->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id')
|
||||||
|
->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id')
|
||||||
|
->where('detail_penawaran.status','=',1)
|
||||||
|
->where('penawaran.id','=', $id)
|
||||||
|
->select('penawaran.*', 'detail_penawaran.attachment as attachmentku',
|
||||||
|
'kjpp.name as kjpp_name',
|
||||||
|
'kjpp.address as kjpp_address',
|
||||||
|
'jenis_laporan.name as jenis_laporan_name'
|
||||||
|
)->first();
|
||||||
|
|
||||||
|
$permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)
|
||||||
|
->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id')
|
||||||
|
->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id')
|
||||||
|
->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name');
|
||||||
|
|
||||||
|
$data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first();
|
||||||
|
|
||||||
|
$folderPath = 'uploads/spk/';
|
||||||
|
$extension = '.pdf';
|
||||||
|
$newFileName = "SPK_".$penawaran->nomor_registrasi."_".Auth::user()->id."_".time(). $extension;
|
||||||
|
$newFileNameWithPath = $folderPath . $newFileName;
|
||||||
|
|
||||||
|
// update table permohonan
|
||||||
|
$dataPermohonan=['dokumen' => $newFileNameWithPath];
|
||||||
|
$data->update($dataPermohonan);
|
||||||
|
// update table permohonan
|
||||||
|
|
||||||
|
// pdf path
|
||||||
|
$spkpenawaran_path = Storage::url($newFileNameWithPath);
|
||||||
|
|
||||||
|
$pdf =Pdf::loadView('lpj::spk.documentSPK', compact('data', 'penawaran'));
|
||||||
|
|
||||||
|
$content = $pdf->download()->getOriginalContent();
|
||||||
|
Storage::put('public/'.$newFileNameWithPath,$content);
|
||||||
|
|
||||||
|
$data1['status'] = 'success';
|
||||||
|
$data1['spkpenawaran_path'] = $spkpenawaran_path;
|
||||||
|
$data1['message']['message_success'] = array('Generate SPK PDF successfully');
|
||||||
|
|
||||||
|
return response()->json($data1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function dokumennya()
|
||||||
|
{
|
||||||
|
// return view('lpj::spk.dokumennya');
|
||||||
|
$id="3";
|
||||||
|
$penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id')
|
||||||
|
->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id')
|
||||||
|
->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id')
|
||||||
|
->where('detail_penawaran.status','=',1)
|
||||||
|
->where('penawaran.id','=', $id)
|
||||||
|
->select('penawaran.*', 'detail_penawaran.attachment as attachmentku',
|
||||||
|
'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran',
|
||||||
|
'kjpp.name as kjpp_name',
|
||||||
|
'kjpp.address as kjpp_address',
|
||||||
|
'jenis_laporan.name as jenis_laporan_name'
|
||||||
|
)->first();
|
||||||
|
|
||||||
|
$permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)
|
||||||
|
->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id')
|
||||||
|
->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id')
|
||||||
|
->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name',
|
||||||
|
'dokumen_jaminan.address as dokumen_jaminan_address');
|
||||||
|
|
||||||
|
$data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first();
|
||||||
|
|
||||||
|
return view('lpj::spk.dokumennya', compact('data', 'penawaran'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function download($id) {
|
||||||
|
$document = Permohonan::find($id);
|
||||||
|
|
||||||
|
return response()->download(storage_path('app/public/' .$document->dokumen));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
|
|||||||
use Illuminate\Http\RedirectResponse;
|
use Illuminate\Http\RedirectResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use Modules\Lpj\Models\Permohonan;
|
use Modules\Lpj\Models\Permohonan;
|
||||||
use Modules\Lpj\Models\Branch;
|
use Modules\Lpj\Models\Branch;
|
||||||
@@ -32,9 +33,14 @@ use Modules\Lpj\Models\Denah;
|
|||||||
use Modules\Lpj\Models\FotoJaminan;
|
use Modules\Lpj\Models\FotoJaminan;
|
||||||
use Modules\Lpj\Models\Lingkungan;
|
use Modules\Lpj\Models\Lingkungan;
|
||||||
use Modules\Lpj\Models\LantaiUnit;
|
use Modules\Lpj\Models\LantaiUnit;
|
||||||
|
use Modules\Lpj\Models\Lantai;
|
||||||
|
use Modules\Lpj\Models\ViewUnit;
|
||||||
use Modules\Lpj\Models\ObjekJaminan;
|
use Modules\Lpj\Models\ObjekJaminan;
|
||||||
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\TingkatKeramaian;
|
||||||
|
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;
|
||||||
@@ -42,6 +48,7 @@ use Modules\Lpj\Http\Requests\FormSurveyorRequest;
|
|||||||
class SurveyorController extends Controller
|
class SurveyorController extends Controller
|
||||||
{
|
{
|
||||||
public $user;
|
public $user;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
*/
|
*/
|
||||||
@@ -113,6 +120,8 @@ class SurveyorController extends Controller
|
|||||||
->where('permohonan_id', $id)
|
->where('permohonan_id', $id)
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return view('lpj::surveyor.detail', compact(
|
return view('lpj::surveyor.detail', compact(
|
||||||
'buttonDisable',
|
'buttonDisable',
|
||||||
'fotojaminan',
|
'fotojaminan',
|
||||||
@@ -508,6 +517,11 @@ class SurveyorController extends Controller
|
|||||||
|
|
||||||
$query->whereRaw('LOWER(status) = ?', ['assign']);
|
$query->whereRaw('LOWER(status) = ?', ['assign']);
|
||||||
|
|
||||||
|
$query->whereHas('region.teams.teamsUsers.user', function ($q) {
|
||||||
|
$q->where('id', Auth::user()->id);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
||||||
$order = $request->get('sortOrder');
|
$order = $request->get('sortOrder');
|
||||||
$column = $request->get('sortField');
|
$column = $request->get('sortField');
|
||||||
@@ -552,6 +566,8 @@ class SurveyorController extends Controller
|
|||||||
{
|
{
|
||||||
$permohonan = $this->getPermohonanJaminanId($id, $jaminanId);
|
$permohonan = $this->getPermohonanJaminanId($id, $jaminanId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$branches = Branch::all();
|
$branches = Branch::all();
|
||||||
$provinces = Province::all();
|
$provinces = Province::all();
|
||||||
|
|
||||||
@@ -570,6 +586,11 @@ class SurveyorController extends Controller
|
|||||||
$spekBangunan = SpekBangunan::all();
|
$spekBangunan = SpekBangunan::all();
|
||||||
$saranaPelengkap = SaranaPelengkap::all();
|
$saranaPelengkap = SaranaPelengkap::all();
|
||||||
$arahMataAngin = ArahMataAngin::all();
|
$arahMataAngin = ArahMataAngin::all();
|
||||||
|
$lantai = Lantai::all();
|
||||||
|
$viewUnit = ViewUnit::all();
|
||||||
|
$golMasySekitar = GolonganMasySekitar::all();
|
||||||
|
$tingkatKeramaian = TingkatKeramaian::all();
|
||||||
|
$laluLintasLokasi = LaluLintasLokasi::all();
|
||||||
|
|
||||||
|
|
||||||
$analisa = Analisa::with('analisaTanahBangunan', 'analisaLingkungan', 'analisaFakta', 'jenisJaminan')
|
$analisa = Analisa::with('analisaTanahBangunan', 'analisaLingkungan', 'analisaFakta', 'jenisJaminan')
|
||||||
@@ -597,6 +618,11 @@ class SurveyorController extends Controller
|
|||||||
'spekBangunan',
|
'spekBangunan',
|
||||||
'saranaPelengkap',
|
'saranaPelengkap',
|
||||||
'arahMataAngin',
|
'arahMataAngin',
|
||||||
|
'lantai',
|
||||||
|
'viewUnit',
|
||||||
|
'golMasySekitar',
|
||||||
|
'tingkatKeramaian',
|
||||||
|
'laluLintasLokasi'
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -625,10 +651,6 @@ class SurveyorController extends Controller
|
|||||||
$provinces = Province::all();
|
$provinces = Province::all();
|
||||||
|
|
||||||
$fotoJaminan = FotoJaminan::with(['objekJaminan', 'lantaiUnit' ,'ruteJaminan', 'lingkungan'])->where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
|
$fotoJaminan = FotoJaminan::with(['objekJaminan', 'lantaiUnit' ,'ruteJaminan', 'lingkungan'])->where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
|
||||||
|
|
||||||
// return response()->json([
|
|
||||||
// 'data' => $fotoJaminan,
|
|
||||||
// ]);
|
|
||||||
return view('lpj::surveyor.components.foto', compact('permohonan', 'surveyor', 'branches', 'provinces', 'fotoJaminan'));
|
return view('lpj::surveyor.components.foto', compact('permohonan', 'surveyor', 'branches', 'provinces', 'fotoJaminan'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -658,25 +680,18 @@ class SurveyorController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private function getHeader(string $type): array
|
||||||
|
{
|
||||||
|
return self::HEADERS[$type] ?? [];
|
||||||
|
}
|
||||||
|
|
||||||
public function data(Request $request)
|
public function data(Request $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
$type = $request->route('type');
|
$type = $request->route('type');
|
||||||
|
$header = $this->getHeader($request->route('type'));
|
||||||
$headers = [
|
|
||||||
'bentuk-tanah' => ['Bentuk Tanah', 'bentuk-tanah'],
|
|
||||||
'kontur-tanah' => ['Kontur Tanah', 'kontur-tanah'],
|
|
||||||
'posisi-kavling' => ['Posisi Kavling', 'posisi-kavling'],
|
|
||||||
'ketinggian-tanah' => ['Ketinggian Tanah', 'ketinggian-tanah'],
|
|
||||||
'kondisi-fisik-tanah' => ['Kondisi Fisik Tanah', 'kondisi-fisik-tanah'],
|
|
||||||
'jenis-bangunan' => ['Jenis Bangunan', 'jenis-bangunan'],
|
|
||||||
'kondisi-bangunan' => ['Kondisi Bangunan', 'kondisi-bangunan'],
|
|
||||||
'sifat-bangunan' => ['Sifat Bangunan', 'sifat-bangunan'],
|
|
||||||
'sarana-pelengkap' => ['Sarana Pelengkap', 'sarana-pelengkap'],
|
|
||||||
];
|
|
||||||
|
|
||||||
$header = $headers[$type] ?? '';
|
|
||||||
|
|
||||||
return view('lpj::surveyor.data.index', compact('header'));
|
return view('lpj::surveyor.data.index', compact('header'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -684,21 +699,9 @@ class SurveyorController extends Controller
|
|||||||
public function createData($type)
|
public function createData($type)
|
||||||
{
|
{
|
||||||
|
|
||||||
$headers = [
|
$spekKategoriBagunan = SpekKategoritBangunan::all();
|
||||||
'bentuk-tanah' => ['Bentuk Tanah', 'bentuk-tanah'],
|
$header = $this->getHeader($type);
|
||||||
'kontur-tanah' => ['Kontur Tanah', 'kontur-tanah'],
|
return view('lpj::surveyor.data.form', compact('header', 'spekKategoriBagunan'));
|
||||||
'posisi-kavling' => ['Posisi Kavling', 'posisi-kavling'],
|
|
||||||
'ketinggian-tanah' => ['Ketinggian Tanah', 'ketinggian-tanah'],
|
|
||||||
'kondisi-fisik-tanah' => ['Kondisi Fisik Tanah', 'kondisi-fisik-tanah'],
|
|
||||||
'jenis-bangunan' => ['Jenis Bangunan', 'jenis-bangunan'],
|
|
||||||
'kondisi-bangunan' => ['Kondisi Bangunan', 'kondisi-bangunan'],
|
|
||||||
'sifat-bangunan' => ['Sifat Bangunan', 'sifat-bangunan'],
|
|
||||||
'sarana-pelengkap' => ['Sarana Pelengkap', 'sarana-pelengkap'],
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
$header = $headers[$type] ?? '';
|
|
||||||
return view('lpj::surveyor.data.form', compact('header'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -708,37 +711,37 @@ class SurveyorController extends Controller
|
|||||||
$validate = $request->validated();
|
$validate = $request->validated();
|
||||||
if ($validate) {
|
if ($validate) {
|
||||||
|
|
||||||
|
try {
|
||||||
$type = $request->route('type');
|
$type = $request->route('type');
|
||||||
|
|
||||||
$modelClasses = [
|
$modelClass = $this->getModelClass($type);
|
||||||
'bentuk-tanah' => BentukTanah::class,
|
|
||||||
'kontur-tanah' => KonturTanah::class,
|
|
||||||
'posisi-kavling' => PosisiKavling::class,
|
|
||||||
'bentuk-tanah' => BentukTanah::class,
|
|
||||||
'kontur-tanah' => KonturTanah::class,
|
|
||||||
'posisi-kavling' => PosisiKavling::class,
|
|
||||||
'ketinggian-tanah' => KetinggianTanah::class,
|
|
||||||
'kondisi-fisik-tanah' => KondisiFisikTanah::class,
|
|
||||||
'jenis-bangunan' => JenisBangunan::class,
|
|
||||||
'kondisi-bangunan' => KondisiBangunan::class,
|
|
||||||
'sifat-bangunan' => SifatBangunan::class,
|
|
||||||
'sarana-pelengkap' => SaranaPelengkap::class,
|
|
||||||
];
|
|
||||||
|
|
||||||
if (!array_key_exists($type, $modelClasses)) {
|
if (!$modelClass) {
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('basicdata.'. $type .'.index')
|
->route('basicdata.'. $type .'.index')
|
||||||
->with('error', 'Invalid type specified.');
|
->with('error', 'Invalid type specified.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$modelClass = $modelClasses[$type];
|
if ($type == 'spek-bangunan') {
|
||||||
$data = $request->all();
|
$validate['spek_kategori_bagunan_id'] = $request->spek_kategori_bagunan_id;
|
||||||
$data['status'] = true;
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$data = array_merge($validate, ['status' => true]);
|
||||||
$modelClass::create($data);
|
$modelClass::create($data);
|
||||||
|
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('basicdata.' . $type .'.index')
|
->route('basicdata.' . $type .'.index')
|
||||||
->with('success', 'created successfully');
|
->with('success', 'created successfully');
|
||||||
|
|
||||||
|
} catch (Exeception $e) {
|
||||||
|
|
||||||
|
return response()->json(array('error' => $e->getMessage()), 400);
|
||||||
|
// return redirect()
|
||||||
|
// ->route('basicdata.' . $type .'.index')
|
||||||
|
// ->with('error', $th->getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -757,6 +760,9 @@ class SurveyorController extends Controller
|
|||||||
'spek-bangunan' => ['Spek Bangunan', 'spek-bangunan', SpekBangunan::class],
|
'spek-bangunan' => ['Spek Bangunan', 'spek-bangunan', SpekBangunan::class],
|
||||||
'spek-kategori-bangunan' => ['Spek Kategori Bangunan', 'spek-kategori-bangunan', SpekKategoritBangunan::class],
|
'spek-kategori-bangunan' => ['Spek Kategori Bangunan', 'spek-kategori-bangunan', SpekKategoritBangunan::class],
|
||||||
'sarana-pelengkap' => ['Sarana Pelengkap', 'sarana-pelengkap', SaranaPelengkap::class],
|
'sarana-pelengkap' => ['Sarana Pelengkap', 'sarana-pelengkap', SaranaPelengkap::class],
|
||||||
|
'lantai-unit' => ['Lantai Unit', 'lantai-unit', Lantai::class],
|
||||||
|
'view-unit' => ['View Unit', 'view-unit', ViewUnit::class],
|
||||||
|
'gol-mas-sekitar' => ['Golongan Masyarakat Sekitar', 'gol-mas-sekitar', GolonganMasySekitar::class],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
@@ -769,7 +775,13 @@ class SurveyorController extends Controller
|
|||||||
$header = $dataMap[$type] ?? '';
|
$header = $dataMap[$type] ?? '';
|
||||||
$model = $modelClass::findOrFail($id);
|
$model = $modelClass::findOrFail($id);
|
||||||
|
|
||||||
return view('lpj::surveyor.data.form', compact('header', 'model'));
|
if ($type == 'spek-bangunan') {
|
||||||
|
$spekKategoriBagunan = SpekKategoritBangunan::all();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return view('lpj::surveyor.data.form', compact('header', 'model', 'spekKategoriBagunan'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -777,26 +789,22 @@ class SurveyorController extends Controller
|
|||||||
{
|
{
|
||||||
$validate = $request->validated();
|
$validate = $request->validated();
|
||||||
if ($validate) {
|
if ($validate) {
|
||||||
$modelClasses = [
|
$modelClass = $this->getModelClass($type);
|
||||||
'bentuk-tanah' => BentukTanah::class,
|
|
||||||
'kontur-tanah' => KonturTanah::class,
|
|
||||||
'posisi-kavling' => PosisiKavling::class,
|
|
||||||
'ketinggian-tanah' => KetinggianTanah::class,
|
|
||||||
'kondisi-fisik-tanah' => KondisiFisikTanah::class,
|
|
||||||
'jenis-bangunan' => JenisBangunan::class,
|
|
||||||
'kondisi-bangunan' => KondisiBangunan::class,
|
|
||||||
'sifat-bangunan' => SifatBangunan::class,
|
|
||||||
'sarana-pelengkap' => SaranaPelengkap::class,
|
|
||||||
|
|
||||||
];
|
if ($type == 'spek-bangunan') {
|
||||||
|
$validate['spek_kategori_bagunan_id'] = $request->spek_kategori_bagunan_id;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Check if the provided type exists in the modelClasses
|
// Check if the provided type exists in the modelClasses
|
||||||
if (!array_key_exists($type, $modelClasses)) {
|
if (!$modelClass) {
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('basicdata.' . $type . '.index')
|
->route('basicdata.' . $type . '.index')
|
||||||
->with('error', 'Invalid type specified.');
|
->with('error', 'Invalid type specified.');
|
||||||
}
|
}
|
||||||
$modelClass = $modelClasses[$type];
|
|
||||||
|
|
||||||
|
|
||||||
$model = $modelClass::findOrFail($id);
|
$model = $modelClass::findOrFail($id);
|
||||||
$model->update($validate);
|
$model->update($validate);
|
||||||
|
|
||||||
@@ -817,8 +825,6 @@ class SurveyorController extends Controller
|
|||||||
//abort(403, 'Sorry! You are not allowed to view users.');
|
//abort(403, 'Sorry! You are not allowed to view users.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve data from the database
|
|
||||||
|
|
||||||
$models = [
|
$models = [
|
||||||
'Bentuk Tanah' => BentukTanah::class,
|
'Bentuk Tanah' => BentukTanah::class,
|
||||||
'Kontur Tanah' => KonturTanah::class,
|
'Kontur Tanah' => KonturTanah::class,
|
||||||
@@ -828,9 +834,14 @@ class SurveyorController extends Controller
|
|||||||
'Jenis Bangunan' => JenisBangunan::class,
|
'Jenis Bangunan' => JenisBangunan::class,
|
||||||
'Kondisi Bangunan' => KondisiBangunan::class,
|
'Kondisi Bangunan' => KondisiBangunan::class,
|
||||||
'Sifat Bangunan' => SifatBangunan::class,
|
'Sifat Bangunan' => SifatBangunan::class,
|
||||||
// 'Spek Kategori Bangunan' => SpekKategoritBangunan::class,
|
'Spek Kategori Bangunan' => SpekKategoritBangunan::class,
|
||||||
// 'Spek Bangunan' => SpekBangunan::class,
|
'Spek Bangunan' => SpekBangunan::class,
|
||||||
'Sarana Pelengkap' => SaranaPelengkap::class,
|
'Sarana Pelengkap' => SaranaPelengkap::class,
|
||||||
|
'Lalu Lintas Depan Lokasi' => LaluLintasLokasi::class,
|
||||||
|
'Tingkat Keramaian' => TingkatKeramaian::class,
|
||||||
|
'Golongan Masyarakat Sekitar' => GolonganMasySekitar::class,
|
||||||
|
'Lantai Unit' => Lantai::class,
|
||||||
|
'View Unit' => ViewUnit::class,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
@@ -840,8 +851,6 @@ class SurveyorController extends Controller
|
|||||||
throw new InvalidArgumentException("Invalid type: $type");
|
throw new InvalidArgumentException("Invalid type: $type");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Apply search filter if provided
|
|
||||||
if ($request->has('search') && !empty($request->get('search'))) {
|
if ($request->has('search') && !empty($request->get('search'))) {
|
||||||
$search = $request->get('search');
|
$search = $request->get('search');
|
||||||
$query->where(function ($q) use ($search) {
|
$query->where(function ($q) use ($search) {
|
||||||
@@ -897,24 +906,13 @@ class SurveyorController extends Controller
|
|||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$modelClasses = [
|
$modelClass = $this->getModelClass($type);
|
||||||
'bentuk-tanah' => BentukTanah::class,
|
|
||||||
'kontur-tanah' => KonturTanah::class,
|
|
||||||
'posisi-kavling' => PosisiKavling::class,
|
|
||||||
'ketinggian-tanah' => KetinggianTanah::class,
|
|
||||||
'kondisi-fisik-tanah' => KondisiFisikTanah::class,
|
|
||||||
'jenis-bangunan' => JenisBangunan::class,
|
|
||||||
'kondisi-bangunan' => KondisiBangunan::class,
|
|
||||||
'sifat-bangunan' => SifatBangunan::class,
|
|
||||||
'sarana-pelengkap' => SaranaPelengkap::class,
|
|
||||||
];
|
|
||||||
|
|
||||||
|
if (!$modelClass) {
|
||||||
if (!array_key_exists($type, $modelClasses)) {
|
|
||||||
return response()->json(['success' => false, 'message' => 'Invalid type specified.'], 400);
|
return response()->json(['success' => false, 'message' => 'Invalid type specified.'], 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
$modelClass = $modelClasses[$type];
|
|
||||||
$model = $modelClass::findOrFail($id);
|
$model = $modelClass::findOrFail($id);
|
||||||
|
|
||||||
$model->delete();
|
$model->delete();
|
||||||
@@ -948,6 +946,55 @@ class SurveyorController extends Controller
|
|||||||
->findOrFail($id);
|
->findOrFail($id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function submitSurveyor(Request $request, $id)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
$permohonan = Permohonan::find($id);
|
||||||
|
$permohonan->update([
|
||||||
|
'status' => 'done',
|
||||||
|
]);
|
||||||
|
return redirect()
|
||||||
|
->route('surveyor.index')
|
||||||
|
->with('success', 'form surveyor submitted successfully');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function validateSubmit(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private function getModelClass(string $type): ?string
|
||||||
|
{
|
||||||
|
return $this->modelClasses[$type] ?? null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private $modelClasses = [
|
||||||
|
'bentuk-tanah' => BentukTanah::class,
|
||||||
|
'kontur-tanah' => KonturTanah::class,
|
||||||
|
'posisi-kavling' => PosisiKavling::class,
|
||||||
|
'ketinggian-tanah' => KetinggianTanah::class,
|
||||||
|
'kondisi-fisik-tanah' => KondisiFisikTanah::class,
|
||||||
|
'jenis-bangunan' => JenisBangunan::class,
|
||||||
|
'kondisi-bangunan' => KondisiBangunan::class,
|
||||||
|
'sifat-bangunan' => SifatBangunan::class,
|
||||||
|
'sarana-pelengkap' => SaranaPelengkap::class,
|
||||||
|
'lalu-lintas-lokasi' => LaluLintasLokasi::class,
|
||||||
|
'tingkat-keramaian' => TingkatKeramaian::class,
|
||||||
|
'gol-mas-sekitar' => GolonganMasySekitar::class,
|
||||||
|
'spek-kategori-bangunan' => SpekKategoritBangunan::class,
|
||||||
|
'spek-bangunan' => SpekBangunan::class,
|
||||||
|
'lantai-unit' => Lantai::class,
|
||||||
|
'view-unit' => ViewUnit::class,
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private function getCommonData()
|
private function getCommonData()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
@@ -964,21 +1011,34 @@ class SurveyorController extends Controller
|
|||||||
'spekKategoriBangunan' => SpekKategoritBangunan::all(),
|
'spekKategoriBangunan' => SpekKategoritBangunan::all(),
|
||||||
'spekBangunan' => SpekBangunan::all(),
|
'spekBangunan' => SpekBangunan::all(),
|
||||||
'saranaPelengkap' => SaranaPelengkap::all(),
|
'saranaPelengkap' => SaranaPelengkap::all(),
|
||||||
'arahMataAngin' => ArahMataAngin::all()
|
'arahMataAngin' => ArahMataAngin::all(),
|
||||||
|
'lantai' => Lantai::all(),
|
||||||
|
'viewUnit' => ViewUnit::all(),
|
||||||
|
'golMasySekitar' => GolonganMasySekitar::all(),
|
||||||
|
'tingkatKeramaian' => TingkatKeramaian::all(),
|
||||||
|
'laluLintasLokasi' => LaluLintasLokasi::all(),
|
||||||
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function submitSurveyor(Request $request, $id)
|
private const HEADERS = [
|
||||||
{
|
'bentuk-tanah' => ['Bentuk Tanah', 'bentuk-tanah'],
|
||||||
$permohonan = Permohonan::find($id);
|
'kontur-tanah' => ['Kontur Tanah', 'kontur-tanah'],
|
||||||
$permohonan->update([
|
'posisi-kavling' => ['Posisi Kavling', 'posisi-kavling'],
|
||||||
'status' => 'done',
|
'ketinggian-tanah' => ['Ketinggian Tanah', 'ketinggian-tanah'],
|
||||||
]);
|
'kondisi-fisik-tanah' => ['Kondisi Fisik Tanah', 'kondisi-fisik-tanah'],
|
||||||
return redirect()
|
'jenis-bangunan' => ['Jenis Bangunan', 'jenis-bangunan'],
|
||||||
->route('surveyor.index')
|
'kondisi-bangunan' => ['Kondisi Bangunan', 'kondisi-bangunan'],
|
||||||
->with('success', 'form surveyor submitted successfully');
|
'sifat-bangunan' => ['Sifat Bangunan', 'sifat-bangunan'],
|
||||||
|
'sarana-pelengkap' => ['Sarana Pelengkap', 'sarana-pelengkap'],
|
||||||
}
|
'lalu-lintas-lokasi' => ['Lalu Lintas Depan Lokasi', 'lalu-lintas-lokasi'],
|
||||||
|
'tingkat-keramaian' => ['Tingkat Keramaian', 'tingkat-keramaian'],
|
||||||
|
'gol-mas-sekitar' => ['Golongan Masyarakat Sekitar', 'gol-mas-sekitar'],
|
||||||
|
'spek-kategori-bangunan' => ['Spek Kategori Bangunan', 'spek-kategori-bangunan'],
|
||||||
|
'spek-bangunan' => ['Spek Bangunan', 'spek-bangunan'],
|
||||||
|
'lantai-unit' => ['Lantai Unit', 'lantai-unit'],
|
||||||
|
'view-unit' => ['View Unit', 'view-unit'],
|
||||||
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,17 +33,22 @@ class TeamsController extends Controller
|
|||||||
public function create()
|
public function create()
|
||||||
{
|
{
|
||||||
|
|
||||||
// cek region apakah sudah ada di tabel teams
|
|
||||||
$regionTeam = Teams::pluck('regions_id')->toArray();
|
$regionTeam = Teams::pluck('regions_id')->toArray();
|
||||||
$region = Regions::whereNotIn('id', $regionTeam)->get();
|
|
||||||
|
|
||||||
// cek user apakah sudah ada di tabel teams_users
|
$regions = Regions::whereNotIn('id', $regionTeam)->get();
|
||||||
|
|
||||||
$userTeam = TeamsUsers::pluck('user_id')->toArray();
|
$userTeam = TeamsUsers::pluck('user_id')->toArray();
|
||||||
$user = User::whereNotIn('id', $userTeam)
|
$usersWithRole = User::whereNotIn('id', $userTeam)
|
||||||
->with('roles')
|
->with('roles') // Eager load roles
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
return view('lpj::teams.form', compact('region', 'user'));
|
$user = $usersWithRole->filter(function ($user) {
|
||||||
|
return $user->roles->contains(function ($role) {
|
||||||
|
return $role->name === 'surveyor' || $role->name === 'surveyor-penilai' || $role->name === 'senior-officer';
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
return view('lpj::teams.form', compact('regions', 'user'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -97,16 +102,23 @@ class TeamsController extends Controller
|
|||||||
{
|
{
|
||||||
$teams = Teams::find($id);
|
$teams = Teams::find($id);
|
||||||
|
|
||||||
|
$regions = Regions::all();
|
||||||
$region = Regions::all();
|
|
||||||
$usedUsers = TeamsUsers::where('teams_id', '!=', $id)->pluck('user_id')->toArray();
|
$usedUsers = TeamsUsers::where('teams_id', '!=', $id)->pluck('user_id')->toArray();
|
||||||
$user = User::whereNotIn('id', $usedUsers)
|
$usersWithRole = User::whereNotIn('id', $usedUsers)
|
||||||
->with('roles')
|
->with('roles')
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
|
||||||
|
$user = $usersWithRole->filter(function ($user) {
|
||||||
|
return $user->roles->contains(function ($role) {
|
||||||
|
return $role->name === 'surveyor' || $role->name === 'surveyor-penilai' || $role->name === 'senior-officer';
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
// Ambil user yang sudah ada di tim ini
|
// Ambil user yang sudah ada di tim ini
|
||||||
$selectedUsers = $teams->teamsUsers->pluck('user_id')->toArray();
|
$selectedUsers = $teams->teamsUsers->pluck('user_id')->toArray();
|
||||||
|
|
||||||
return view('lpj::teams.form', compact('teams', 'region', 'user', 'selectedUsers'));
|
return view('lpj::teams.form', compact('teams', 'regions', 'user', 'selectedUsers'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -241,15 +241,25 @@ class TenderController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove the specified resource from storage.
|
* Tampilkan Surat Tender
|
||||||
*/
|
*/
|
||||||
public function destroy($id)
|
public function showSuratTender($noreg)
|
||||||
{
|
{
|
||||||
//
|
$penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first();
|
||||||
|
|
||||||
|
// Kalau tidak ketemu nomor registrasi dengan tabel penawaran
|
||||||
|
if (!$penawaran) {
|
||||||
|
return redirect()->route('tender.penawaran.createPenawaran', ['noreg' => $noreg])
|
||||||
|
->with('error', 'Anda Belum Membuat Penawaran. Silahkan isi terlebih dahulu!');
|
||||||
|
}
|
||||||
|
// Jika batas tanggal penawaran sudah lewat
|
||||||
|
if ($penawaran->end_date < date('Y-m-d')) {
|
||||||
|
return redirect()->route('tender.penawaran.editPenawaran', ['noreg' => $noreg])
|
||||||
|
->with('error', 'Sudah Kadaluarsa. Silahkan perpanjang tanggal penawaran terlebih dahulu!');
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('lpj::penawaran.surat_tender', compact('penawaran', 'noreg'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function datatablesPenawaran(Request $request)
|
public function datatablesPenawaran(Request $request)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
use Modules\Lpj\Rules\UniqueCifExceptZero;
|
use Modules\Lpj\Rules\UniqueCifExceptZero;
|
||||||
|
use Modules\Lpj\Rules\UniqueExcept;
|
||||||
|
|
||||||
class DebitureRequest extends FormRequest
|
class DebitureRequest extends FormRequest
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
'code' => 'required|max:6',
|
'code' => 'required|max:6',
|
||||||
'name' => 'required|max:255',
|
'name' => 'required|max:255',
|
||||||
'slug' => 'required|max:255',
|
'slug' => 'required|max:255',
|
||||||
|
'custom_field' => 'nullable|max:255',
|
||||||
|
'custom_field_type' => 'nullable|max:255',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
namespace Modules\Lpj\Http\Requests;
|
namespace Modules\Lpj\Http\Requests;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
use daengdeni\LaravelIdGenerator\IdGenerator;
|
|
||||||
|
|
||||||
class KJPPRequest extends FormRequest
|
class KJPPRequest extends FormRequest
|
||||||
{
|
{
|
||||||
@@ -17,21 +16,28 @@ class KJPPRequest extends FormRequest
|
|||||||
'jenis_kantor' => 'required',
|
'jenis_kantor' => 'required',
|
||||||
'nomor_ijin_usaha' => 'required',
|
'nomor_ijin_usaha' => 'required',
|
||||||
'province_code' => 'required',
|
'province_code' => 'required',
|
||||||
'city_code' => 'required',
|
'city_code' => 'nullable',
|
||||||
'district_code' => 'required',
|
'district_code' => 'nullable',
|
||||||
'village_code' => 'required',
|
'village_code' => 'nullable',
|
||||||
'address' => 'required',
|
'address' => 'required',
|
||||||
'postal_code' => 'required|numeric',
|
'postal_code' => 'nullable|numeric',
|
||||||
'nomor_telepon_kantor' => 'required|numeric|digits_between:8,15',
|
'nomor_telepon_kantor' => 'nullable|numeric|digits_between:8,15',
|
||||||
'email_kantor' => 'required|email',
|
'email_kantor' => 'required|email',
|
||||||
|
'detail_email_kantor' => 'nullable',
|
||||||
'nama_pimpinan' => 'required|string|not_regex:/^\d+$/|max:255',
|
'nama_pimpinan' => 'required|string|not_regex:/^\d+$/|max:255',
|
||||||
'nomor_hp_pimpinan' => 'required|numeric|digits_between:10,15',
|
'nomor_hp_pimpinan' => 'required|numeric|digits_between:10,15',
|
||||||
'nama_pic_reviewer' => 'required|string|not_regex:/^\d+$/|max:255',
|
'nama_pic_reviewer' => 'nullable|string|not_regex:/^\d+$/|max:255',
|
||||||
'nomor_hp_pic_reviewer' => 'required|numeric|digits_between:10,15',
|
'detail_nama_pic_reviewer' => 'nullable',
|
||||||
'nama_pic_admin' => 'required|string|not_regex:/^\d+$/|max:255',
|
'nomor_hp_pic_reviewer' => 'nullable|numeric|digits_between:10,15',
|
||||||
'nomor_hp_pic_admin' => 'required|numeric|digits_between:10,15',
|
'detail_nomor_hp_pic_reviewer' => 'nullable',
|
||||||
'nama_pic_marketing' => 'required|string|not_regex:/^\d+$/|max:255',
|
'nama_pic_admin' => 'nullable|string|not_regex:/^\d+$/|max:255',
|
||||||
'nomor_hp_pic_marketing' => 'required|numeric|digits_between:10,15',
|
'detail_nama_pic_admin' => 'nullable',
|
||||||
|
'nomor_hp_pic_admin' => 'nullable|numeric|digits_between:10,15',
|
||||||
|
'detail_nomor_hp_pic_admin' => 'nullable',
|
||||||
|
'nama_pic_marketing' => 'nullable|string|not_regex:/^\d+$/|max:255',
|
||||||
|
'detail_nama_pic_marketing' => 'nullable',
|
||||||
|
'nomor_hp_pic_marketing' => 'nullable|numeric|digits_between:10,15',
|
||||||
|
'detail_nomor_hp_pic_marketing' => 'nullable',
|
||||||
'ijin_usaha_id' => 'required|array',
|
'ijin_usaha_id' => 'required|array',
|
||||||
'ijin_usaha_id.*' => 'exists:ijin_usaha,code',
|
'ijin_usaha_id.*' => 'exists:ijin_usaha,code',
|
||||||
'jenis_aset_id' => 'required|array',
|
'jenis_aset_id' => 'required|array',
|
||||||
@@ -69,13 +75,8 @@ class KJPPRequest extends FormRequest
|
|||||||
'nomor_ijin_usaha.required' => 'Nomor Ijin Usaha Wajib diisi!',
|
'nomor_ijin_usaha.required' => 'Nomor Ijin Usaha Wajib diisi!',
|
||||||
'nomor_ijin_usaha.max' => 'Nomor Ijin Usaha maksimal 255 huruf!',
|
'nomor_ijin_usaha.max' => 'Nomor Ijin Usaha maksimal 255 huruf!',
|
||||||
'province_code.required' => 'Provinsi Wajib diisi!',
|
'province_code.required' => 'Provinsi Wajib diisi!',
|
||||||
'city_code.required' => 'Kota / Kabupaten Wajib diisi!',
|
|
||||||
'district_code.required' => 'Kecamatan Wajib diisi!',
|
|
||||||
'village_code.required' => 'Kelurahan Wajib diisi!',
|
|
||||||
'postal_code.required' => 'Kode Pos Wajib diisi!',
|
|
||||||
'postal_code.numeric' => 'Kode Pos harus berupa angka!',
|
'postal_code.numeric' => 'Kode Pos harus berupa angka!',
|
||||||
'address.required' => 'Alamat Kantor Wajib diisi!',
|
'address.required' => 'Alamat Kantor Wajib diisi!',
|
||||||
'nomor_telepon_kantor.required' => 'Nomor Telepon Kantor Wajib diisi!',
|
|
||||||
'nomor_telepon_kantor.numeric' => 'Nomor Telepon Kantor harus berupa angka!',
|
'nomor_telepon_kantor.numeric' => 'Nomor Telepon Kantor harus berupa angka!',
|
||||||
'nomor_telepon_kantor.digits_between' => 'Nomor Telepon Kantor minimum 8 digit dan maksimum 15 digit!',
|
'nomor_telepon_kantor.digits_between' => 'Nomor Telepon Kantor minimum 8 digit dan maksimum 15 digit!',
|
||||||
'email_kantor.required' => 'Email Kantor Wajib diisi!',
|
'email_kantor.required' => 'Email Kantor Wajib diisi!',
|
||||||
@@ -85,25 +86,17 @@ class KJPPRequest extends FormRequest
|
|||||||
'nomor_hp_pimpinan.required' => 'Nomor HP Pimpinan Wajib diisi!',
|
'nomor_hp_pimpinan.required' => 'Nomor HP Pimpinan Wajib diisi!',
|
||||||
'nomor_hp_pimpinan.numeric' => 'Nomor HP Pimpinan harus berupa angka!',
|
'nomor_hp_pimpinan.numeric' => 'Nomor HP Pimpinan harus berupa angka!',
|
||||||
'nomor_hp_pimpinan.digits_between' => 'Nomor HP Pimpinan minimum 10 digit dan maksimum 15 digit!',
|
'nomor_hp_pimpinan.digits_between' => 'Nomor HP Pimpinan minimum 10 digit dan maksimum 15 digit!',
|
||||||
'nama_pic_reviewer.required' => 'Nama PIC Reviewer Wajib diisi!',
|
|
||||||
'nama_pic_reviewer.not_regex' => 'Nama PIC Reviewer harus berupa huruf!',
|
'nama_pic_reviewer.not_regex' => 'Nama PIC Reviewer harus berupa huruf!',
|
||||||
'nomor_hp_pic_reviewer.required' => 'Nomor HP PIC Reviewer Wajib diisi!',
|
|
||||||
'nomor_hp_pic_reviewer.numeric' => 'Nomor HP PIC Reviewer harus berupa angka!',
|
'nomor_hp_pic_reviewer.numeric' => 'Nomor HP PIC Reviewer harus berupa angka!',
|
||||||
'nomor_hp_pic_reviewer.digits_between' => 'Nomor HP PIC Reviewer minimum 10 digit dan maksimum 15 digit!',
|
'nomor_hp_pic_reviewer.digits_between' => 'Nomor HP PIC Reviewer minimum 10 digit dan maksimum 15 digit!',
|
||||||
'nama_pic_admin.required' => 'Nama PIC Admin Wajib diisi!',
|
|
||||||
'nama_pic_admin.not_regex' => 'Nama PIC Admin harus berupa huruf!',
|
'nama_pic_admin.not_regex' => 'Nama PIC Admin harus berupa huruf!',
|
||||||
'nomor_hp_pic_admin.required' => 'Nomor HP PIC Admin Wajib diisi!',
|
|
||||||
'nomor_hp_pic_admin.numeric' => 'Nomor HP PIC Admin harus berupa angka!',
|
'nomor_hp_pic_admin.numeric' => 'Nomor HP PIC Admin harus berupa angka!',
|
||||||
'nomor_hp_pic_admin.digits_between' => 'Nomor HP PIC Admin minimum 10 digit dan maksimum 15 digit!',
|
'nomor_hp_pic_admin.digits_between' => 'Nomor HP PIC Admin minimum 10 digit dan maksimum 15 digit!',
|
||||||
'nama_pic_marketing.required' => 'Nama PIC Marketing Wajib diisi!',
|
|
||||||
'nama_pic_marketing.not_regex' => 'Nama PIC Marketing harus berupa huruf!',
|
'nama_pic_marketing.not_regex' => 'Nama PIC Marketing harus berupa huruf!',
|
||||||
'nomor_hp_pic_marketing.required' => 'Nomor HP PIC Marketing Wajib diisi!',
|
|
||||||
'nomor_hp_pic_marketing.numeric' => 'Nomor HP PIC Marketing harus berupa angka!',
|
'nomor_hp_pic_marketing.numeric' => 'Nomor HP PIC Marketing harus berupa angka!',
|
||||||
'nomor_hp_pic_marketing.digits_between' => 'Nomor HP PIC Marketing minimum 10 digit dan maksimum 15 digit!',
|
'nomor_hp_pic_marketing.digits_between' => 'Nomor HP PIC Marketing minimum 10 digit dan maksimum 15 digit!',
|
||||||
'ijin_usaha_id.required' => 'Ijin Usaha Wajib diisi!',
|
'ijin_usaha_id.required' => 'Ijin Usaha Wajib diisi!',
|
||||||
'ijin_usaha_id.min' => 'Ijin Usaha Wajib diisi minimal satu atau lebih!',
|
|
||||||
'jenis_aset_id.required' => 'Jenis Aset Wajib diisi!',
|
'jenis_aset_id.required' => 'Jenis Aset Wajib diisi!',
|
||||||
'jenis_aset_id.min' => 'Jenis Aset Wajib diisi minimal satu atau lebih!',
|
|
||||||
'attachment.mimes' => 'Attachment harus berformat pdf!',
|
'attachment.mimes' => 'Attachment harus berformat pdf!',
|
||||||
'attachment.max' => 'Attachment berukuran maksimum 1 MB!',
|
'attachment.max' => 'Attachment berukuran maksimum 1 MB!',
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
'address' => 'nullable|string',
|
'address' => 'nullable|string',
|
||||||
'postal_code' => 'nullable|string|max:10',
|
'postal_code' => 'nullable|string|max:10',
|
||||||
'status' => 'nullable|boolean',
|
'status' => 'nullable|boolean',
|
||||||
|
'detail_sertifikat' => 'nullable|string|max:255',
|
||||||
];
|
];
|
||||||
|
|
||||||
//$rules['nomor_id'] = 'nullable|max:16|unique:pemilik_jaminan,nomor_id,debiture_id,' . $this->debiture_id;
|
//$rules['nomor_id'] = 'nullable|max:16|unique:pemilik_jaminan,nomor_id,debiture_id,' . $this->debiture_id;
|
||||||
@@ -41,4 +42,24 @@
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation() {
|
||||||
|
|
||||||
|
$detailSertifikat = [];
|
||||||
|
$names = $this->input('detail_sertifikat.name', []);
|
||||||
|
$nomorIds = $this->input('detail_sertifikat.nomor_id', []);
|
||||||
|
|
||||||
|
foreach ($names as $index => $name) {
|
||||||
|
if (isset($nomorIds[$index])) {
|
||||||
|
$detailSertifikat[] = [
|
||||||
|
'name' => $name,
|
||||||
|
'nomor_id' => $nomorIds[$index]
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->merge([
|
||||||
|
'detail_sertifikat' => json_encode($detailSertifikat),
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,11 +33,16 @@ class PenilaianRequest extends FormRequest
|
|||||||
'tanggal_kunjungan' => 'required|max:255',
|
'tanggal_kunjungan' => 'required|max:255',
|
||||||
'status' => 'required|string',
|
'status' => 'required|string',
|
||||||
'nomor_registrasi' => 'required|string',
|
'nomor_registrasi' => 'required|string',
|
||||||
'surveyor_id' => 'nullable|required_without:penilai_surveyor_id',
|
|
||||||
'penilaian_id' => 'nullable|required_without:penilai_surveyor_id',
|
'surveyor_id' => 'nullable|required_without_all:penilai_surveyor_id,surveyor_region_id,penilai_region_id,penilai_id',
|
||||||
'penilai_surveyor_id' => 'nullable|required_without_all:surveyor_id,penilaian_id',
|
'penilai_id' => 'nullable|required_without_all:penilai_surveyor_id,surveyor_region_id,penilai_region_id,surveyor_id',
|
||||||
|
'penilai_surveyor_id' => 'nullable',
|
||||||
|
'surveyor_region_id' => 'nullable|required_without_all:penilai_surveyor_id,penilai_region_id,penilai_id,surveyor_id',
|
||||||
|
'penilai_region_id' => 'nullable|required_without_all:penilai_surveyor_id,surveyor_region_id,penilai_id,surveyor_id',
|
||||||
|
|
||||||
'keterangan' => 'nullable',
|
'keterangan' => 'nullable',
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -17,10 +17,10 @@
|
|||||||
'nomor_registrasi' => 'nullable|string|max:10',
|
'nomor_registrasi' => 'nullable|string|max:10',
|
||||||
'tanggal_permohonan' => 'nullable|date',
|
'tanggal_permohonan' => 'nullable|date',
|
||||||
'user_id' => 'nullable|exists:users,id',
|
'user_id' => 'nullable|exists:users,id',
|
||||||
'branch_id' => 'required|exists:branches,id',
|
'branch_id' => 'nullable|exists:branches,id',
|
||||||
'tujuan_penilaian_id' => 'required|exists:tujuan_penilaian,id',
|
'tujuan_penilaian_id' => 'required|exists:tujuan_penilaian,id',
|
||||||
'debiture_id' => 'required|exists:debitures,id',
|
'debiture_id' => 'required|exists:debitures,id',
|
||||||
'status' => 'required|string',
|
'status' => 'nullable|string',
|
||||||
'jenis_fasilitas_kredit_id' => 'required|exists:jenis_fasilitas_kredit,id',
|
'jenis_fasilitas_kredit_id' => 'required|exists:jenis_fasilitas_kredit,id',
|
||||||
'nilai_plafond_id' => 'required|exists:nilai_plafond,id',
|
'nilai_plafond_id' => 'required|exists:nilai_plafond,id',
|
||||||
'status_bayar' => 'required|string',
|
'status_bayar' => 'required|string',
|
||||||
@@ -49,6 +49,7 @@
|
|||||||
'tanggal_permohonan' => date('Y-m-d'),
|
'tanggal_permohonan' => date('Y-m-d'),
|
||||||
'user_id' => auth()->user()->id,
|
'user_id' => auth()->user()->id,
|
||||||
'branch_id' => auth()->user()->branch_id,
|
'branch_id' => auth()->user()->branch_id,
|
||||||
|
'status' => 'order'
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,18 +4,14 @@ namespace Modules\Lpj\Http\Requests;
|
|||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
|
use Illuminate\Validation\Rule;
|
||||||
|
|
||||||
class SurveyorRequest extends FormRequest
|
class SurveyorRequest extends FormRequest
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Get the validation rules that apply to the request.
|
* Table mapping for different actionszz
|
||||||
*/
|
*/
|
||||||
public function rules()
|
private const TABLE_MAPPING = [
|
||||||
: array
|
|
||||||
{
|
|
||||||
|
|
||||||
$action = $this->input('action');
|
|
||||||
|
|
||||||
$uniqueTable = [
|
|
||||||
'bentuk-tanah' => 'bentuk_tanah',
|
'bentuk-tanah' => 'bentuk_tanah',
|
||||||
'kontur-tanah' => 'kontur_tanah',
|
'kontur-tanah' => 'kontur_tanah',
|
||||||
'posisi-kavling' => 'posisi_kavling',
|
'posisi-kavling' => 'posisi_kavling',
|
||||||
@@ -25,41 +21,121 @@ class SurveyorRequest extends FormRequest
|
|||||||
'jenis-bangunan' => 'jenis_bangunan',
|
'jenis-bangunan' => 'jenis_bangunan',
|
||||||
'sifat-bangunan' => 'sifat_bangunan',
|
'sifat-bangunan' => 'sifat_bangunan',
|
||||||
'sarana-pelengkap' => 'sarana_pelengkap',
|
'sarana-pelengkap' => 'sarana_pelengkap',
|
||||||
'lalu_lintas_lokasi' => 'lalu_lintas_lokasi',
|
'lalu-lintas-lokasi' => 'lalu_lintas_lokasi',
|
||||||
'tingkat-keramaian' => 'tingkat_keramaian',
|
'tingkat-keramaian' => 'tingkat_keramaian',
|
||||||
|
'gol-mas-sekitar' => 'gol_mas_sekitar',
|
||||||
|
'spek-kategori-bangunan' => 'spek_kategori_bangunan',
|
||||||
|
'spek-bangunan' => 'spek_bangunan',
|
||||||
|
'lantai-unit' => 'lantai',
|
||||||
|
'view-unit' => 'view_unit',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$rules = [
|
|
||||||
'name' => 'required|max:255',
|
|
||||||
|
|
||||||
];
|
|
||||||
|
|
||||||
$id = $this->route('id');
|
|
||||||
|
|
||||||
if ($this->method() == 'PUT' || $this->method() == 'PATCH') {
|
|
||||||
$rules['code'] = 'required|max:50|unique:' . $uniqueTable[$action] . ',code,' . $id;
|
|
||||||
} else {
|
|
||||||
|
|
||||||
$rules['code'] = 'required|max:50|unique:' . $uniqueTable[$action] . ',code';
|
|
||||||
}
|
|
||||||
return $rules;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine if the user is authorized to make this request.
|
* Determine if the user is authorized to make this request.
|
||||||
*/
|
*/
|
||||||
public function authorize()
|
public function authorize(): bool
|
||||||
: bool
|
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function prepareForValidation()
|
/**
|
||||||
|
* Get the validation rules that apply to the request.
|
||||||
|
*/
|
||||||
|
public function rules(): array
|
||||||
|
{
|
||||||
|
return array_merge(
|
||||||
|
$this->getBaseRules(),
|
||||||
|
$this->getActionSpecificRules(),
|
||||||
|
$this->getCodeValidationRules()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get base validation rules
|
||||||
|
*/
|
||||||
|
private function getBaseRules(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'name' => 'required|max:255',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get action specific validation rules
|
||||||
|
*/
|
||||||
|
private function getActionSpecificRules(): array
|
||||||
|
{
|
||||||
|
$action = $this->input('action');
|
||||||
|
|
||||||
|
return match ($action) {
|
||||||
|
'spek-bangunan' => [
|
||||||
|
'spek_kategori_bangunan_id' => [
|
||||||
|
'required',
|
||||||
|
|
||||||
|
],
|
||||||
|
],
|
||||||
|
// Add more action specific rules here
|
||||||
|
default => [],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get code validation rules
|
||||||
|
*/
|
||||||
|
private function getCodeValidationRules(): array
|
||||||
|
{
|
||||||
|
$action = $this->input('action');
|
||||||
|
$table = self::TABLE_MAPPING[$action] ?? null;
|
||||||
|
|
||||||
|
if (!$table) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$rules = ['required', 'max:50'];
|
||||||
|
|
||||||
|
if ($this->isMethod('PUT') || $this->isMethod('PATCH')) {
|
||||||
|
$rules[] = Rule::unique($table, 'code')->ignore($this->route('id'));
|
||||||
|
} else {
|
||||||
|
$rules[] = Rule::unique($table, 'code');
|
||||||
|
}
|
||||||
|
|
||||||
|
return ['code' => $rules];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prepare the data for validation.
|
||||||
|
*/
|
||||||
|
protected function prepareForValidation(): void
|
||||||
{
|
{
|
||||||
$this->merge([
|
$this->merge([
|
||||||
'status' => true,
|
'status' => true,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get custom messages for validator errors.
|
||||||
|
*/
|
||||||
|
public function messages(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'name.required' => 'Nama harus diisi',
|
||||||
|
'name.max' => 'Nama tidak boleh lebih dari 255 karakter',
|
||||||
|
'code.required' => 'Kode harus diisi',
|
||||||
|
'code.max' => 'Kode tidak boleh lebih dari 50 karakter',
|
||||||
|
'code.unique' => 'Kode sudah digunakan',
|
||||||
|
'spek_kategori_bangunan_id.required' => 'Kategori bangunan harus dipilih',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get custom attributes for validator errors.
|
||||||
|
*/
|
||||||
|
public function attributes(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'name' => 'Nama',
|
||||||
|
'code' => 'Kode',
|
||||||
|
'spek_kategori_bangunan_id' => 'Kategori Bangunan',
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,13 +63,17 @@ class TenderPenawaranRequest extends FormRequest
|
|||||||
$endDate = strtotime($this->input('end_date'));
|
$endDate = strtotime($this->input('end_date'));
|
||||||
$today = strtotime(date('Y-m-d'));
|
$today = strtotime(date('Y-m-d'));
|
||||||
|
|
||||||
|
// Jika dalam keadaan tambah penawaran maka munculkan pesan ini
|
||||||
|
if ($this->method() !== 'PUT') {
|
||||||
|
if ($startDate < $today) {
|
||||||
|
$validator->errors()->add('start_date', 'Tanggal Awal tidak boleh sebelum hari ini.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($endDate < $startDate) {
|
if ($endDate < $startDate) {
|
||||||
$validator->errors()->add('end_date', 'Tanggal Akhir tidak boleh lebih awal dari Tanggal Awal.');
|
$validator->errors()->add('end_date', 'Tanggal Akhir tidak boleh lebih awal dari Tanggal Awal.');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($startDate < $today) {
|
|
||||||
$validator->errors()->add('start_date', 'Tanggal Awal tidak boleh sebelum hari ini.');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validasi minimal 3 pilihan pada nama_kjpp
|
// Validasi minimal 3 pilihan pada nama_kjpp
|
||||||
$namaKjpp = $this->input('kjpp', []);
|
$namaKjpp = $this->input('kjpp', []);
|
||||||
|
|||||||
@@ -16,8 +16,9 @@
|
|||||||
'jenis_legalitas_jaminan_id',
|
'jenis_legalitas_jaminan_id',
|
||||||
'name',
|
'name',
|
||||||
'dokumen_jaminan',
|
'dokumen_jaminan',
|
||||||
|
'dokumen_nomor',
|
||||||
'keterangan',
|
'keterangan',
|
||||||
|
'details',
|
||||||
'status',
|
'status',
|
||||||
'authorized_at',
|
'authorized_at',
|
||||||
'authorized_status',
|
'authorized_status',
|
||||||
|
|||||||
@@ -10,10 +10,12 @@ class GolonganMasySekitar extends Model
|
|||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'gol_mas_sekitar';
|
||||||
/**
|
/**
|
||||||
* The attributes that are mass assignable.
|
* The attributes that are mass assignable.
|
||||||
*/
|
*/
|
||||||
protected $fillable = [];
|
protected $fillable = ['code', 'name', 'status'];
|
||||||
|
|
||||||
|
|
||||||
protected static function newFactory(): GolonganMasySekitarFactory
|
protected static function newFactory(): GolonganMasySekitarFactory
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -19,4 +19,9 @@ class JenisLaporan extends Model
|
|||||||
|
|
||||||
|
|
||||||
protected $fillable = ['code', 'name'];
|
protected $fillable = ['code', 'name'];
|
||||||
|
|
||||||
|
public function penawaran()
|
||||||
|
{
|
||||||
|
return $this->hasMany(PenawaranTender::class, 'jenis_laporan_id', 'id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,5 +7,5 @@
|
|||||||
class JenisLegalitasJaminan extends Base
|
class JenisLegalitasJaminan extends Base
|
||||||
{
|
{
|
||||||
protected $table = 'jenis_legalitas_jaminan';
|
protected $table = 'jenis_legalitas_jaminan';
|
||||||
protected $fillable = ['code', 'name','slug'];
|
protected $fillable = ['code', 'name','slug','custom_field','custom_field_type'];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,29 +18,5 @@ class KJPP extends Model
|
|||||||
/**
|
/**
|
||||||
* The attributes that are mass assignable.
|
* The attributes that are mass assignable.
|
||||||
*/
|
*/
|
||||||
protected $fillable = [
|
protected $guarded = ['id'];
|
||||||
'code',
|
|
||||||
'name',
|
|
||||||
'jenis_kantor',
|
|
||||||
'nomor_ijin_usaha',
|
|
||||||
'province_code',
|
|
||||||
'city_code',
|
|
||||||
'district_code',
|
|
||||||
'village_code',
|
|
||||||
'address',
|
|
||||||
'postal_code',
|
|
||||||
'nomor_telepon_kantor',
|
|
||||||
'email_kantor',
|
|
||||||
'nama_pimpinan',
|
|
||||||
'nomor_hp_pimpinan',
|
|
||||||
'nama_pic_reviewer',
|
|
||||||
'nomor_hp_pic_reviewer',
|
|
||||||
'nama_pic_admin',
|
|
||||||
'nomor_hp_pic_admin',
|
|
||||||
'nama_pic_marketing',
|
|
||||||
'nomor_hp_pic_marketing',
|
|
||||||
'ijin_usaha_id',
|
|
||||||
'jenis_aset_id',
|
|
||||||
'attachment'
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class KondisiBangunan extends Model
|
|||||||
/**
|
/**
|
||||||
* The attributes that are mass assignable.
|
* The attributes that are mass assignable.
|
||||||
*/
|
*/
|
||||||
protected $fillable = [];
|
protected $fillable = ['code','name'];
|
||||||
|
|
||||||
protected static function newFactory(): KondisiBangunanFactory
|
protected static function newFactory(): KondisiBangunanFactory
|
||||||
{
|
{
|
||||||
|
|||||||
23
app/Models/Lantai.php
Normal file
23
app/Models/Lantai.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\LokasiUnitFactory;
|
||||||
|
|
||||||
|
class Lantai extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'lantai';
|
||||||
|
/**
|
||||||
|
* 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(): LokasiUnitFactory
|
||||||
|
{
|
||||||
|
//return LokasiUnitFactory::new();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -30,7 +30,8 @@ class PemilikJaminan extends Base
|
|||||||
'status',
|
'status',
|
||||||
'authorized_at',
|
'authorized_at',
|
||||||
'authorized_status',
|
'authorized_status',
|
||||||
'authorized_by'
|
'authorized_by',
|
||||||
|
'detail_sertifikat',
|
||||||
];
|
];
|
||||||
|
|
||||||
public function province()
|
public function province()
|
||||||
|
|||||||
@@ -32,8 +32,20 @@ class PenawaranTender extends Model
|
|||||||
}
|
}
|
||||||
|
|
||||||
// menambahkan relasi tujuan penilaian KJPP
|
// menambahkan relasi tujuan penilaian KJPP
|
||||||
public function tujuanPenilaianKJPP()
|
public function tujuanPenilaianKjpp()
|
||||||
{
|
{
|
||||||
return $this->hasMany(TujuanPenilaianKJPP::class, 'id', 'tujuan_penilaian_kjpp_id');
|
return $this->belongsTo(TujuanPenilaianKJPP::class, 'tujuan_penilaian_kjpp_id','id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function permohonan()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Permohonan::class, 'nomor_registrasi', 'nomor_registrasi');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function jenisLaporan()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(JenisLaporan::class, 'jenis_laporan_id', 'id');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class Penilaian extends Model
|
|||||||
*/
|
*/
|
||||||
protected $table = 'penilaian';
|
protected $table = 'penilaian';
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'jenis_penilaian_id', 'teams_id', 'tanggal_kunjungan', 'keterangan','nomor_registrasi','penilaian_id','surveyor_id','penilai_surveyor_id',
|
'jenis_penilaian_id', 'penilaian_id', 'tanggal_kunjungan', 'keterangan','nomor_registrasi',
|
||||||
'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_at',
|
'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_at',
|
||||||
'created_by', 'updated_at', 'updated_by', 'deleted_at', 'deleted_by'
|
'created_by', 'updated_at', 'updated_by', 'deleted_at', 'deleted_by'
|
||||||
];
|
];
|
||||||
@@ -39,23 +39,12 @@ class Penilaian extends Model
|
|||||||
|
|
||||||
public function userPenilai()
|
public function userPenilai()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(User::class, 'penilaian_id', 'id');
|
return $this->hasMany(PenilaianTeam::class, 'penilaian_id', 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function userSurveyor()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(User::class, 'surveyor_id', 'id');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function userPenilaiSurveyor()
|
|
||||||
{
|
|
||||||
return $this->belongsTo(User::class, 'penilai_surveyor_id', 'id');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function permohonan()
|
public function permohonan()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(Permohonan::class, 'nomor_registrasi', 'nomor_registrasi');
|
return $this->belongsTo(Permohonan::class, 'nomor_registrasi', 'nomor_registrasi');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
39
app/Models/PenilaianTeam.php
Normal file
39
app/Models/PenilaianTeam.php
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Modules\Lpj\Database\Factories\PenilaianTeamFactory;
|
||||||
|
|
||||||
|
class PenilaianTeam extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'penilaian_team';
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*/
|
||||||
|
protected $fillable = ['penilaian_id', 'team_id', 'user_id','role'];
|
||||||
|
|
||||||
|
|
||||||
|
public function userPenilaiTeam()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(User::class, 'user_id', 'id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function team(){
|
||||||
|
|
||||||
|
return $this->belongsTo(Team::class, 'team_id', 'id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function penilaian(){
|
||||||
|
|
||||||
|
return $this->hasMany(Penilaian::class, 'penilaian_id', 'id');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static function newFactory(): PenilaianTeamFactory
|
||||||
|
{
|
||||||
|
//return PenilaianTeamFactory::new();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -79,4 +79,18 @@
|
|||||||
{
|
{
|
||||||
return $this->belongsTo(Penilaian::class, 'nomor_registrasi', 'nomor_registrasi');
|
return $this->belongsTo(Penilaian::class, 'nomor_registrasi', 'nomor_registrasi');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function penawaranTender()
|
||||||
|
{
|
||||||
|
return $this->hasMany(PenawaranTender::class, 'nomor_registrasi');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function region()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Regions::class, 'region_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function penawaran(){
|
||||||
|
return $this->belongsTo(PenawaranTender::class, 'nomor_registrasi', 'nomor_registrasi');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
18
app/Models/SLA.php
Normal file
18
app/Models/SLA.php
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
|
||||||
|
class SLA extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'sla';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*/
|
||||||
|
protected $guarded = ['id'];
|
||||||
|
}
|
||||||
@@ -15,7 +15,7 @@ class SpekBangunan extends Model
|
|||||||
/**
|
/**
|
||||||
* The attributes that are mass assignable.
|
* The attributes that are mass assignable.
|
||||||
*/
|
*/
|
||||||
protected $fillable = [];
|
protected $fillable = ['code','name','status','spek_kategori_bangunan_id','authorized_status'];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class SpekKategoritBangunan extends Model
|
|||||||
/**
|
/**
|
||||||
* The attributes that are mass assignable.
|
* The attributes that are mass assignable.
|
||||||
*/
|
*/
|
||||||
protected $fillable = [];
|
protected $fillable = ['code','name','status','authorized_status'];
|
||||||
|
|
||||||
|
|
||||||
public function bangunan()
|
public function bangunan()
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ class Teams extends Model
|
|||||||
return $this->hasMany(TeamsUsers::class, 'teams_id', 'id');
|
return $this->hasMany(TeamsUsers::class, 'teams_id', 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function penilaian(){
|
public function penilaianTeam(){
|
||||||
return $this->hasMany(Penilaian::class, 'teams_id', 'id');
|
return $this->hasMany(PenilaianTeam::class, 'team_id', 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ class TingkatKeramaian extends Model
|
|||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'tingkat_keramaian';
|
||||||
/**
|
/**
|
||||||
* The attributes that are mass assignable.
|
* The attributes that are mass assignable.
|
||||||
*/
|
*/
|
||||||
|
|||||||
23
app/Models/ViewUnit.php
Normal file
23
app/Models/ViewUnit.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\ViewUnitFactory;
|
||||||
|
|
||||||
|
class ViewUnit extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'view_unit';
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*/
|
||||||
|
protected $fillable = ['name', 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'code'];
|
||||||
|
|
||||||
|
protected static function newFactory(): ViewUnitFactory
|
||||||
|
{
|
||||||
|
//return ViewUnitFactory::new();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,18 +8,25 @@ use Modules\Lpj\Models\Debiture;
|
|||||||
|
|
||||||
class UniqueCifExceptZero implements ValidationRule
|
class UniqueCifExceptZero implements ValidationRule
|
||||||
{
|
{
|
||||||
|
protected $id;
|
||||||
|
|
||||||
public function __construct($id = null)
|
public function __construct($id = null)
|
||||||
{
|
{
|
||||||
$this->id = $id;
|
$this->id = $id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function validate($attribute, $value, $fail): void
|
/**
|
||||||
{
|
* Run the validation rule.
|
||||||
if (Debiture::where($attribute, $value)
|
*/
|
||||||
->where('id', '!=', $this->id)
|
public function validate(string $attribute, mixed $value, Closure $fail)
|
||||||
->where($attribute, '!=', '0000000000')
|
: void {
|
||||||
->exists()) {
|
if ($value !== '0000000000' && $value !== null && Debiture::query()->where($attribute, $value)->when(
|
||||||
$fail('The :attribute field must be uniquse.'.$this->id);
|
$this->id,
|
||||||
|
function ($query) {
|
||||||
|
$query->where('id', '!=', $this->id);
|
||||||
|
},
|
||||||
|
)->exists()) {
|
||||||
|
$fail('The :attribute field must be unique.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,23 +18,30 @@ return new class extends Migration
|
|||||||
$table->string('jenis_kantor');
|
$table->string('jenis_kantor');
|
||||||
$table->string('nomor_ijin_usaha');
|
$table->string('nomor_ijin_usaha');
|
||||||
$table->string('province_code');
|
$table->string('province_code');
|
||||||
$table->string('city_code');
|
$table->string('city_code')->nullable();
|
||||||
$table->string('district_code');
|
$table->string('district_code')->nullable();
|
||||||
$table->string('village_code');
|
$table->string('village_code')->nullable();
|
||||||
$table->string('address');
|
$table->string('address');
|
||||||
$table->string('postal_code');
|
$table->string('postal_code')->nullable();
|
||||||
$table->string('nomor_telepon_kantor');
|
$table->string('nomor_telepon_kantor')->nullable();
|
||||||
$table->string('email_kantor');
|
$table->string('email_kantor');
|
||||||
|
$table->string('detail_email_kantor')->nullable();
|
||||||
$table->string('nama_pimpinan');
|
$table->string('nama_pimpinan');
|
||||||
$table->string('nomor_hp_pimpinan');
|
$table->string('nomor_hp_pimpinan');
|
||||||
$table->string('nama_pic_reviewer');
|
$table->string('nama_pic_reviewer')->nullable();
|
||||||
$table->string('nomor_hp_pic_reviewer');
|
$table->string('detail_nama_pic_reviewer')->nullable();
|
||||||
$table->string('nama_pic_admin');
|
$table->string('nomor_hp_pic_reviewer')->nullable();
|
||||||
$table->string('nomor_hp_pic_admin');
|
$table->string('detail_nomor_hp_pic_reviewer')->nullable();
|
||||||
$table->string('nama_pic_marketing');
|
$table->string('nama_pic_admin')->nullable();
|
||||||
$table->string('nomor_hp_pic_marketing');
|
$table->string('detail_nama_pic_admin')->nullable();
|
||||||
$table->string('ijin_usaha_id')->nullable();
|
$table->string('nomor_hp_pic_admin')->nullable();
|
||||||
$table->string('jenis_aset_id')->nullable();
|
$table->string('detail_nomor_hp_pic_admin')->nullable();
|
||||||
|
$table->string('nama_pic_marketing')->nullable();
|
||||||
|
$table->string('detail_nama_pic_marketing')->nullable();
|
||||||
|
$table->string('nomor_hp_pic_marketing')->nullable();
|
||||||
|
$table->string('detail_nomor_hp_pic_marketing')->nullable();
|
||||||
|
$table->string('ijin_usaha_id');
|
||||||
|
$table->string('jenis_aset_id');
|
||||||
$table->string('attachment')->nullable();
|
$table->string('attachment')->nullable();
|
||||||
$table->boolean('status')->default(true)->nullable();
|
$table->boolean('status')->default(true)->nullable();
|
||||||
$table->char('authorized_status', 1)->nullable();
|
$table->char('authorized_status', 1)->nullable();
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ return new class extends Migration
|
|||||||
$table->unsignedBigInteger('permohonan_id');
|
$table->unsignedBigInteger('permohonan_id');
|
||||||
$table->foreign('permohonan_id')->references('id')->on('permohonan');
|
$table->foreign('permohonan_id')->references('id')->on('permohonan');
|
||||||
$table->string('luas');
|
$table->string('luas');
|
||||||
|
$table->unsignedBigInteger('jenis_jaminan_id');
|
||||||
$table->char('authorized_status', 1)->nullable();
|
$table->char('authorized_status', 1)->nullable();
|
||||||
$table->timestamp('authorized_at')->nullable();
|
$table->timestamp('authorized_at')->nullable();
|
||||||
$table->unsignedBigInteger('authorized_by')->nullable();
|
$table->unsignedBigInteger('authorized_by')->nullable();
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ return new class extends Migration
|
|||||||
$table->string('kontur_tanah');
|
$table->string('kontur_tanah');
|
||||||
$table->string('ketinggian_jalan');
|
$table->string('ketinggian_jalan');
|
||||||
$table->string('kontur_jalan');
|
$table->string('kontur_jalan');
|
||||||
$table->string('posis_kavling');
|
$table->string('posisi_kavling');
|
||||||
$table->enum('tusuk_sate', ['yes', 'no']);
|
$table->enum('tusuk_sate', ['yes', 'no']);
|
||||||
$table->enum('lockland', ['yes', 'no']);
|
$table->enum('lockland', ['yes', 'no']);
|
||||||
$table->string('kondisi_fisik_tanah');
|
$table->string('kondisi_fisik_tanah');
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ return new class () extends Migration {
|
|||||||
|
|
||||||
$table->string('foto_denah');
|
$table->string('foto_denah');
|
||||||
$table->string('luas');
|
$table->string('luas');
|
||||||
|
$table->unsignedBigInteger('jenis_jaminan_id');
|
||||||
$table->char('authorized_status', 1)->nullable();
|
$table->char('authorized_status', 1)->nullable();
|
||||||
$table->timestamp('authorized_at')->nullable();
|
$table->timestamp('authorized_at')->nullable();
|
||||||
$table->unsignedBigInteger('authorized_by')->nullable();
|
$table->unsignedBigInteger('authorized_by')->nullable();
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ return new class () extends Migration {
|
|||||||
$table->foreign('permohonan_id')->references('id')->on('permohonan');
|
$table->foreign('permohonan_id')->references('id')->on('permohonan');
|
||||||
|
|
||||||
$table->string('pendamping');
|
$table->string('pendamping');
|
||||||
|
$table->unsignedBigInteger('jenis_jaminan_id');
|
||||||
$table->char('authorized_status', 1)->nullable();
|
$table->char('authorized_status', 1)->nullable();
|
||||||
$table->timestamp('authorized_at')->nullable();
|
$table->timestamp('authorized_at')->nullable();
|
||||||
$table->unsignedBigInteger('authorized_by')->nullable();
|
$table->unsignedBigInteger('authorized_by')->nullable();
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ return new class () extends Migration {
|
|||||||
$table->string('name');
|
$table->string('name');
|
||||||
$table->string('foto_objek');
|
$table->string('foto_objek');
|
||||||
|
|
||||||
|
$table->unsignedBigInteger('jenis_jaminan_id');
|
||||||
$table->char('authorized_status', 1)->nullable();
|
$table->char('authorized_status', 1)->nullable();
|
||||||
$table->timestamp('authorized_at')->nullable();
|
$table->timestamp('authorized_at')->nullable();
|
||||||
$table->unsignedBigInteger('authorized_by')->nullable();
|
$table->unsignedBigInteger('authorized_by')->nullable();
|
||||||
|
|||||||
@@ -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('lantai', 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('lokasi_unit');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -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('view_unit', 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('view_unit');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
<?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('sla', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('sla');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -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('kategori_jenis_aset', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->string('name');
|
||||||
|
$table->string('code');
|
||||||
|
$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('kategori_jenis_aset');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?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('penilaian', function (Blueprint $table) {
|
||||||
|
|
||||||
|
$table->dropColumn('teams_id');
|
||||||
|
|
||||||
|
|
||||||
|
$table->dropColumn('surveyor_id');
|
||||||
|
$table->dropColumn('penilaian_id');
|
||||||
|
|
||||||
|
$table->dropColumn('penilai_surveyor_id');
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('penilaian', function (Blueprint $table) {
|
||||||
|
$table->foreignIdFor(Teams::class);
|
||||||
|
$table->foreignIdFor(User::class);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?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('penilaian_team', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->unsignedBigInteger('penilaian_id');
|
||||||
|
$table->unsignedBigInteger('team_id');
|
||||||
|
$table->unsignedBigInteger('user_id');
|
||||||
|
$table->string('role');
|
||||||
|
$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('penilai_team');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -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('debitures', function (Blueprint $table) {
|
||||||
|
$table->dropUnique(['cif']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('debitures', function (Blueprint $table) {
|
||||||
|
$table->string('cif')->unique()->change();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<?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('kategori_form_analisa_inspeksi', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->string('name');
|
||||||
|
$table->string('code');
|
||||||
|
$table->unsignedBigInteger('kategori_jenis_aset_id'); // Add this line
|
||||||
|
$table->foreign('kategori_jenis_aset_id')->references('id')->on('kategori_jenis_aset');
|
||||||
|
$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('kategori_form_analisa_inspeksi');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -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::create('label_name_inspeksi', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('label_name_inspeksi');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -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('pemilik_jaminan', function (Blueprint $table) {
|
||||||
|
$table->string('detail_sertifikat')->nullable()->after('name');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('pemilik_jaminan', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('detail_sertifikat');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?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('jenis_legalitas_jaminan', function (Blueprint $table) {
|
||||||
|
$table->string('custom_field')->nullable()->after('slug');
|
||||||
|
$table->string('custom_field_type')->nullable()->after('custom_field');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('jenis_legalitas_jaminan', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('custom_field');
|
||||||
|
$table->dropColumn('custom_field_type');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -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('detail_dokumen_jaminan', function (Blueprint $table) {
|
||||||
|
$table->string('details')->nullable()->after('dokumen_jaminan_id');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('detail_dokumen_jaminan', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('details');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -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('detail_dokumen_jaminan', function (Blueprint $table) {
|
||||||
|
$table->string('dokumen_nomor')->nullable()->after('dokumen_jaminan');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('detail_dokumen_jaminan', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('dokumen_nomor');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
42
database/seeders/ArahMataAnginSeeder.php
Normal file
42
database/seeders/ArahMataAnginSeeder.php
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\ArahMataAngin;
|
||||||
|
|
||||||
|
class ArahMataAnginSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
ArahMataAngin::insert([
|
||||||
|
[
|
||||||
|
'name' => 'Utara',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Timur Laut',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Timur',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Tenggara',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Selatan',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Barat Daya',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Barat',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Barat Laut',
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
27
database/seeders/BranchSeeder.php
Normal file
27
database/seeders/BranchSeeder.php
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Basicdata\Models\Branch;
|
||||||
|
|
||||||
|
class BranchSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
Branch::insert([
|
||||||
|
[
|
||||||
|
'code' => 'C01',
|
||||||
|
'name' => 'KPNO',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
48
database/seeders/CurrencySeeder.php
Normal file
48
database/seeders/CurrencySeeder.php
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Basicdata\Models\Currency;
|
||||||
|
|
||||||
|
class CurrencySeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
Currency::insert([
|
||||||
|
[
|
||||||
|
'code' => 'IDR',
|
||||||
|
'name' => 'Rupiah',
|
||||||
|
'decimal_places' => 2,
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'MYR',
|
||||||
|
'name' => 'Ringgit',
|
||||||
|
'decimal_places' => 2,
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'SAR',
|
||||||
|
'name' => 'Riyadh',
|
||||||
|
'decimal_places' => 2,
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
158
database/seeders/DebitureSeeder.php
Normal file
158
database/seeders/DebitureSeeder.php
Normal file
@@ -0,0 +1,158 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\Debiture;
|
||||||
|
|
||||||
|
class DebitureSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
Debiture::insert([
|
||||||
|
[
|
||||||
|
'branch_id' => 1,
|
||||||
|
'cif' => '1234567890',
|
||||||
|
'name' => 'Willy',
|
||||||
|
'npwp' => '123455432109876',
|
||||||
|
'email' => 'w@gmail.com',
|
||||||
|
'phone' => '08113242341',
|
||||||
|
'nomor_rekening' => '1081666666',
|
||||||
|
'province_code' => '31',
|
||||||
|
'city_code' => '31.74',
|
||||||
|
'district_code' => '31.74.09',
|
||||||
|
'village_code' => '31.74.09.1003',
|
||||||
|
'postal_code' => '12630',
|
||||||
|
'address' => null,
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'branch_id' => 1,
|
||||||
|
'cif' => '0987654321',
|
||||||
|
'name' => 'Antonius Ginting',
|
||||||
|
'npwp' => '234567890123456',
|
||||||
|
'email' => 'x@gmail.com',
|
||||||
|
'phone' => '081234567891',
|
||||||
|
'nomor_rekening' => '987654310',
|
||||||
|
'province_code' => '31',
|
||||||
|
'city_code' => '31.71',
|
||||||
|
'district_code' => '31.71.06',
|
||||||
|
'village_code' => '31.71.06.1001',
|
||||||
|
'postal_code' => '10310',
|
||||||
|
'address' => 'Jl. Menteng Tengah No.66',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'branch_id' => 1,
|
||||||
|
'cif' => '1518467',
|
||||||
|
'name' => 'PT ABCD SEJATI',
|
||||||
|
'npwp' => '001852600023342',
|
||||||
|
'email' => 'abcd@ag.co.id',
|
||||||
|
'phone' => '081111555',
|
||||||
|
'nomor_rekening' => '0082346',
|
||||||
|
'province_code' => '31',
|
||||||
|
'city_code' => '31.74',
|
||||||
|
'district_code' => '31.74.04',
|
||||||
|
'village_code' => '31.74.04.1005',
|
||||||
|
'postal_code' => '10420',
|
||||||
|
'address' => 'Jl. Raya Kwitang No. 105, Senen, Kwitang, Jakarta Pusat',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'branch_id' => 1,
|
||||||
|
'cif' => '12345',
|
||||||
|
'name' => 'Testing',
|
||||||
|
'npwp' => '102928018391211',
|
||||||
|
'email' => 'testing@email.com',
|
||||||
|
'phone' => '098172386',
|
||||||
|
'nomor_rekening' => '12345',
|
||||||
|
'province_code' => '11',
|
||||||
|
'city_code' => '11.01',
|
||||||
|
'district_code' => '11.01.01',
|
||||||
|
'village_code' => '11.01.01.2001',
|
||||||
|
'postal_code' => '23773',
|
||||||
|
'address' => 'alamat',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'branch_id' => 1,
|
||||||
|
'cif' => '0000000000',
|
||||||
|
'name' => 'Gartika Pertiwi',
|
||||||
|
'npwp' => '123456789101112',
|
||||||
|
'email' => 'Gartika_Pertiwi@gmail.com',
|
||||||
|
'phone' => '1234567',
|
||||||
|
'nomor_rekening' => '1234567',
|
||||||
|
'province_code' => '31',
|
||||||
|
'city_code' => '31.71',
|
||||||
|
'district_code' => '31.71.04',
|
||||||
|
'village_code' => '31.71.04.1005',
|
||||||
|
'postal_code' => '10420',
|
||||||
|
'address' => null,
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'branch_id' => 1,
|
||||||
|
'cif' => '1235464575',
|
||||||
|
'name' => 'Fleming',
|
||||||
|
'npwp' => '123455432109876',
|
||||||
|
'email' => 'x@gmail.com',
|
||||||
|
'phone' => '08113242341',
|
||||||
|
'nomor_rekening' => '1081666666',
|
||||||
|
'province_code' => '31',
|
||||||
|
'city_code' => '31.74',
|
||||||
|
'district_code' => '31.74.09',
|
||||||
|
'village_code' => '31.74.09.1001',
|
||||||
|
'postal_code' => '12620',
|
||||||
|
'address' => 'testt',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'branch_id' => 1,
|
||||||
|
'cif' => '1234689743',
|
||||||
|
'name' => 'Testing 2',
|
||||||
|
'npwp' => '1234689743418451',
|
||||||
|
'email' => 'testing@mail.com',
|
||||||
|
'phone' => '081385777611',
|
||||||
|
'nomor_rekening' => '3575467279562',
|
||||||
|
'province_code' => '31',
|
||||||
|
'city_code' => '31.71',
|
||||||
|
'district_code' => '31.71.06',
|
||||||
|
'village_code' => '31.71.06.1001',
|
||||||
|
'postal_code' => '10310',
|
||||||
|
'address' => 'Jl. Menteng Raya no. 13',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
73
database/seeders/DetailDokumenJaminanSeeder.php
Normal file
73
database/seeders/DetailDokumenJaminanSeeder.php
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\DetailDokumenJaminan;
|
||||||
|
|
||||||
|
class DetailDokumenJaminanSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
DetailDokumenJaminan::insert([
|
||||||
|
[
|
||||||
|
'name' => 'Tanah Bangunan',
|
||||||
|
'dokumen_jaminan_id' => 1,
|
||||||
|
'jenis_legalitas_jaminan_id' => 1,
|
||||||
|
'dokumen_jaminan' => 'jaminan/1/1/Test.pdf',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Tanah Bangunan',
|
||||||
|
'dokumen_jaminan_id' => 1,
|
||||||
|
'jenis_legalitas_jaminan_id' => 3,
|
||||||
|
'dokumen_jaminan' => 'jaminan/1/1/Test.pdf',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Tanah Bangunan',
|
||||||
|
'dokumen_jaminan_id' => 1,
|
||||||
|
'jenis_legalitas_jaminan_id' => 4,
|
||||||
|
'dokumen_jaminan' => 'jaminan/1/1/Test.pdf',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Tanah Bangunan',
|
||||||
|
'dokumen_jaminan_id' => 1,
|
||||||
|
'jenis_legalitas_jaminan_id' => 5,
|
||||||
|
'dokumen_jaminan' => 'jaminan/1/1/Test.pdf',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Tanah Bangunan',
|
||||||
|
'dokumen_jaminan_id' => 1,
|
||||||
|
'jenis_legalitas_jaminan_id' => 6,
|
||||||
|
'dokumen_jaminan' => 'jaminan/1/1/Test.pdf',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
54
database/seeders/DetailPenawaranSeeder.php
Normal file
54
database/seeders/DetailPenawaranSeeder.php
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\PenawaranDetailTender;
|
||||||
|
|
||||||
|
class DetailPenawaranSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
PenawaranDetailTender::insert([
|
||||||
|
[
|
||||||
|
'kjpp_rekanan_id' => 1,
|
||||||
|
'penawaran_id' => 1,
|
||||||
|
'biaya_penawaran' => 15000000,
|
||||||
|
'attachment' => 'Test.pdf',
|
||||||
|
'dokumen_persetujuan' => 'uploads/penawaran/1_1_Test_2_1729826174.pdf',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'kjpp_rekanan_id' => 2,
|
||||||
|
'penawaran_id' => 1,
|
||||||
|
'biaya_penawaran' => 30000000,
|
||||||
|
'attachment' => 'Test.pdf',
|
||||||
|
'dokumen_persetujuan' => 'uploads/penawaran/2_2_Test_2_1729826198.pdf',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'kjpp_rekanan_id' => 3,
|
||||||
|
'penawaran_id' => 1,
|
||||||
|
'biaya_penawaran' => 20000000,
|
||||||
|
'attachment' => 'Test.pdf',
|
||||||
|
'dokumen_persetujuan' => 'uploads/penawaran/3_3_Test_2_1729826215.pdf',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
34
database/seeders/DokumenJaminanSeeder.php
Normal file
34
database/seeders/DokumenJaminanSeeder.php
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\DokumenJaminan;
|
||||||
|
|
||||||
|
class DokumenJaminanSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
DokumenJaminan::insert([
|
||||||
|
[
|
||||||
|
'debiture_id' => 1,
|
||||||
|
'jenis_jaminan_id' => 1,
|
||||||
|
'pemilik_jaminan_id' => 3,
|
||||||
|
'province_code' => '32',
|
||||||
|
'city_code' => '32.75',
|
||||||
|
'district_code' => '32.75.03',
|
||||||
|
'village_code' => '32.75.03.1001',
|
||||||
|
'postal_code' => '17125',
|
||||||
|
'address' => 'Jl. Apel No. 9',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
36
database/seeders/HubunganPemilikJaminanSeeder.php
Normal file
36
database/seeders/HubunganPemilikJaminanSeeder.php
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\HubunganPemilikJaminan;
|
||||||
|
|
||||||
|
class HubunganPemilikJaminanSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
HubunganPemilikJaminan::insert([
|
||||||
|
[
|
||||||
|
'name' => 'Milik Pribadi'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Suami/Istri'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Anak'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Saudara Kandung'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Ayah'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Ibu'
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
33
database/seeders/HubunganPenghuniJaminanSeeder.php
Normal file
33
database/seeders/HubunganPenghuniJaminanSeeder.php
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\HubunganPenghuniJaminan;
|
||||||
|
|
||||||
|
class HubunganPenghuniJaminanSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
HubunganPenghuniJaminan::insert([
|
||||||
|
[
|
||||||
|
'name' => 'Suami/Istri',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Anak',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Saudara Kandung',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Orang Tua',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Kontrak/Kost'
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
39
database/seeders/IjinUsahaSeeder.php
Normal file
39
database/seeders/IjinUsahaSeeder.php
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\IjinUsaha;
|
||||||
|
|
||||||
|
class IjinUsahaSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
IjinUsaha::insert([
|
||||||
|
[
|
||||||
|
'code' => 'IU001',
|
||||||
|
'name' => 'Bisnis',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'IU002',
|
||||||
|
'name' => 'Properti',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'IU003',
|
||||||
|
'name' => 'Personal Properti',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
68
database/seeders/JenisDokumenSeeder.php
Normal file
68
database/seeders/JenisDokumenSeeder.php
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\JenisDokumen;
|
||||||
|
|
||||||
|
class JenisDokumenSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
JenisDokumen::insert([
|
||||||
|
[
|
||||||
|
'name' => 'Sertifikat',
|
||||||
|
'max_size' => 15,
|
||||||
|
'description' => 'Foto copy Sertifikat sesuai dengan asli',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'PBB/NJOP',
|
||||||
|
'max_size' => 15,
|
||||||
|
'description' => 'Foto Copy PBB/NJOP Tahun Terakhir',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'NPWP Perorangan/Perusahaan',
|
||||||
|
'max_size' => 10,
|
||||||
|
'description' => 'Copy NPWP Perorangan/Perusahaan',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Siteplan',
|
||||||
|
'max_size' => 10,
|
||||||
|
'description' => 'Siteplan',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Surat Pernyataan Kebenaran Data',
|
||||||
|
'max_size' => 5,
|
||||||
|
'description' => 'Surat Pernyataan Kebenaran Data (Surat Representasi)',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
90
database/seeders/JenisFasilitasKreditSeeder.php
Normal file
90
database/seeders/JenisFasilitasKreditSeeder.php
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\JenisFasilitasKredit;
|
||||||
|
|
||||||
|
class JenisFasilitasKreditSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
JenisFasilitasKredit::insert([
|
||||||
|
[
|
||||||
|
'code' => 'JFK001',
|
||||||
|
'name' => 'KPR FLPP',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JFK002',
|
||||||
|
'name' => 'KPR KERJASAMA',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JFK003',
|
||||||
|
'name' => 'KPR ≤ 500 JT',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JFK004',
|
||||||
|
'name' => 'KPR > 500 JT',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JFK005',
|
||||||
|
'name' => 'KKB',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JFK006',
|
||||||
|
'name' => 'KPA',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JFK007',
|
||||||
|
'name' => 'MODAL KERJA',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JFK008',
|
||||||
|
'name' => 'INVESTASI',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
73
database/seeders/JenisJaminanSeeder.php
Normal file
73
database/seeders/JenisJaminanSeeder.php
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\JenisJaminan;
|
||||||
|
|
||||||
|
class JenisJaminanSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
JenisJaminan::insert([
|
||||||
|
[
|
||||||
|
'code' => 'JJ001',
|
||||||
|
'name' => 'Tanah',
|
||||||
|
'slug' => 'tanah',
|
||||||
|
'jenis_legalitas_jaminan_id' => '["JLJ001","JLJ003","JLJ004","JLJ005","JLJ006"]',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'authorized_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JJ002',
|
||||||
|
'name' => 'Rumah Tinggal / Ruko (Unit) / Apartemen (Unit) / Gudang',
|
||||||
|
'slug' => 'rumah-tinggal-ruko-unit-apartemen-unit-gudang',
|
||||||
|
'jenis_legalitas_jaminan_id' => null,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'authorized_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JJ003',
|
||||||
|
'name' => 'Kawasan Industrial / Komersil / Residensial - Perumahan',
|
||||||
|
'slug' => 'kawasan-industrial-komersil-residensial-perumahan',
|
||||||
|
'jenis_legalitas_jaminan_id' => null,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'authorized_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JJ004',
|
||||||
|
'name' => 'Gedung Apartement / Kantor / Condotel (Strata Tittle)',
|
||||||
|
'slug' => 'gedung-apartement-kantor-condotel-strata-tittle',
|
||||||
|
'jenis_legalitas_jaminan_id' => '["JLJ001","JLJ002"]',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'authorized_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JJ005',
|
||||||
|
'name' => 'Mall',
|
||||||
|
'slug' => 'mall',
|
||||||
|
'jenis_legalitas_jaminan_id' => '["JLJ001","JLJ006"]',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'authorized_at' => null,
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
32
database/seeders/JenisLaporanSeeder.php
Normal file
32
database/seeders/JenisLaporanSeeder.php
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\JenisLaporan;
|
||||||
|
|
||||||
|
class JenisLaporanSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
JenisLaporan::insert([
|
||||||
|
[
|
||||||
|
'code' => 'JL001',
|
||||||
|
'name' => 'Short Report',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JL002',
|
||||||
|
'name' => 'Full Report',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
116
database/seeders/JenisLegalitasJaminanSeeder.php
Normal file
116
database/seeders/JenisLegalitasJaminanSeeder.php
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\JenisLegalitasJaminan;
|
||||||
|
|
||||||
|
class JenisLegalitasJaminanSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
JenisLegalitasJaminan::insert([
|
||||||
|
[
|
||||||
|
'code' => 'JLJ001',
|
||||||
|
'name' => 'Sertifikat',
|
||||||
|
'slug' => 'sertifikat',
|
||||||
|
'custom_field' => 'Luas Tanah',
|
||||||
|
'custom_field_type' => 'number',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => null,
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => null
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JLJ002',
|
||||||
|
'name' => 'SHGB',
|
||||||
|
'slug' => 'shgb',
|
||||||
|
'custom_field' => null,
|
||||||
|
'custom_field_type' => null,
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JLJ003',
|
||||||
|
'name' => 'Copy PBB / NJOP Tahun Terakhir (Jika Ada)',
|
||||||
|
'slug' => 'copy-pbb-njop-tahun-terakhir-jika-ada',
|
||||||
|
'custom_field' => null,
|
||||||
|
'custom_field_type' => null,
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => null,
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => null
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JLJ004',
|
||||||
|
'name' => 'Copy NPWP Perusahaan/Perorangan',
|
||||||
|
'slug' => 'copy-npwp-perusahaanperorangan',
|
||||||
|
'custom_field' => null,
|
||||||
|
'custom_field_type' => null,
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => null,
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => null
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JLJ005',
|
||||||
|
'name' => 'Siteplan',
|
||||||
|
'slug' => 'siteplan',
|
||||||
|
'custom_field' => null,
|
||||||
|
'custom_field_type' => null,
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => null,
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => null
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JLJ006',
|
||||||
|
'name' => 'Surat Pernyataan Kebenaran Data (Surat Representasi)',
|
||||||
|
'slug' => 'surat-pernyataan-kebenaran-data-surat-representasi',
|
||||||
|
'custom_field' => null,
|
||||||
|
'custom_field_type' => null,
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => null,
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => null
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JLJ007',
|
||||||
|
'name' => 'IMB',
|
||||||
|
'slug' => 'imb',
|
||||||
|
'custom_field' => 'Luas Bangunan',
|
||||||
|
'custom_field_type' => 'number',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => null,
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => null
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
30
database/seeders/JenisPenilaianSeeder.php
Normal file
30
database/seeders/JenisPenilaianSeeder.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\JenisPenilaian;
|
||||||
|
|
||||||
|
class JenisPenilaianSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
JenisPenilaian::insert([
|
||||||
|
[
|
||||||
|
'code' => 'JP1',
|
||||||
|
'name' => 'Internal',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JP2',
|
||||||
|
'name' => 'External',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
102
database/seeders/KJPPSeeder.php
Normal file
102
database/seeders/KJPPSeeder.php
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Modules\Lpj\Models\KJPP;
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
|
class KJPPSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
KJPP::insert([
|
||||||
|
[
|
||||||
|
'code' => 'K000101',
|
||||||
|
'name' => 'Bank Anda',
|
||||||
|
'jenis_kantor' => 'Kantor Pusat',
|
||||||
|
'nomor_ijin_usaha' => 'IU001',
|
||||||
|
'province_code' => '32',
|
||||||
|
'city_code' => '32.75',
|
||||||
|
'district_code' => '32.75.03',
|
||||||
|
'village_code' => '32.75.03.1001',
|
||||||
|
'address' => 'Jl. Apel no. 1',
|
||||||
|
'postal_code' => '17125',
|
||||||
|
'nomor_telepon_kantor' => '0219976896',
|
||||||
|
'email_kantor' => 'bankanda@bankanda.id',
|
||||||
|
'nama_pimpinan' => 'Ida Royani',
|
||||||
|
'nomor_hp_pimpinan' => '081800908070',
|
||||||
|
'nama_pic_reviewer' => 'Beno',
|
||||||
|
'nomor_hp_pic_reviewer' => '081765489070',
|
||||||
|
'nama_pic_admin' => 'Dani',
|
||||||
|
'nomor_hp_pic_admin' => '081278786666',
|
||||||
|
'nama_pic_marketing' => 'Feni',
|
||||||
|
'nomor_hp_pic_marketing' => '087867590801',
|
||||||
|
'ijin_usaha_id' => '["IU001","IU002"]',
|
||||||
|
'jenis_aset_id' => '["JJ001","JJ002","JJ003"]',
|
||||||
|
'attachment' => 'default.pdf',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'K000201',
|
||||||
|
'name' => 'Bank Juri',
|
||||||
|
'jenis_kantor' => 'Kantor Pusat',
|
||||||
|
'nomor_ijin_usaha' => 'IU001',
|
||||||
|
'province_code' => '12',
|
||||||
|
'city_code' => '12.04',
|
||||||
|
'district_code' => '12.04.11',
|
||||||
|
'village_code' => '12.04.11.2005',
|
||||||
|
'address' => 'Jl. Mangga no. 1',
|
||||||
|
'postal_code' => '22876',
|
||||||
|
'nomor_telepon_kantor' => '0219976890',
|
||||||
|
'email_kantor' => 'bankjuri@bankjuri.id',
|
||||||
|
'nama_pimpinan' => 'Arif Simbolo bolo',
|
||||||
|
'nomor_hp_pimpinan' => '089643475023',
|
||||||
|
'nama_pic_reviewer' => 'Beno Harefa',
|
||||||
|
'nomor_hp_pic_reviewer' => '081765489080',
|
||||||
|
'nama_pic_admin' => 'Dani Harefa',
|
||||||
|
'nomor_hp_pic_admin' => '081278786667',
|
||||||
|
'nama_pic_marketing' => 'Feni Harefa',
|
||||||
|
'nomor_hp_pic_marketing' => '081765489075',
|
||||||
|
'ijin_usaha_id' => '["IU001","IU002","IU003"]',
|
||||||
|
'jenis_aset_id' => '["JJ001","JJ004","JJ003"]',
|
||||||
|
'attachment' => 'default.pdf',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'K000301',
|
||||||
|
'name' => 'Bank Gantra',
|
||||||
|
'jenis_kantor' => 'Kantor Pusat',
|
||||||
|
'nomor_ijin_usaha' => 'IU001',
|
||||||
|
'province_code' => '12',
|
||||||
|
'city_code' => '12.21',
|
||||||
|
'district_code' => '12.21.05',
|
||||||
|
'village_code' => '12.21.05.2005',
|
||||||
|
'address' => 'Jl. Apel no. 1',
|
||||||
|
'postal_code' => '22776',
|
||||||
|
'nomor_telepon_kantor' => '0219976889',
|
||||||
|
'email_kantor' => 'bankgantra@bankgantra.id',
|
||||||
|
'nama_pimpinan' => 'Arif Simantra',
|
||||||
|
'nomor_hp_pimpinan' => '089643475020',
|
||||||
|
'nama_pic_reviewer' => 'Beno Aditya',
|
||||||
|
'nomor_hp_pic_reviewer' => '081765489079',
|
||||||
|
'nama_pic_admin' => 'Dani Maulana',
|
||||||
|
'nomor_hp_pic_admin' => '081278786680',
|
||||||
|
'nama_pic_marketing' => 'Feni Rose',
|
||||||
|
'nomor_hp_pic_marketing' => '081890901234',
|
||||||
|
'ijin_usaha_id' => '["IU001","IU002","IU003"]',
|
||||||
|
'jenis_aset_id' => '["JJ001","JJ002","JJ005"]',
|
||||||
|
'attachment' => 'default.pdf',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,9 +9,37 @@
|
|||||||
/**
|
/**
|
||||||
* Run the database seeds.
|
* Run the database seeds.
|
||||||
*/
|
*/
|
||||||
public function run()
|
public function run(): void
|
||||||
: void
|
|
||||||
{
|
{
|
||||||
// $this->call([]);
|
$this->call([
|
||||||
|
BranchSeeder::class,
|
||||||
|
CurrencySeeder::class,
|
||||||
|
JenisFasilitasKreditSeeder::class,
|
||||||
|
JenisLegalitasJaminanSeeder::class,
|
||||||
|
JenisJaminanSeeder::class,
|
||||||
|
JenisDokumenSeeder::class,
|
||||||
|
TujuanPenilaianSeeder::class,
|
||||||
|
NilaiPlatformSeeder::class,
|
||||||
|
HubunganPemilikJaminanSeeder::class,
|
||||||
|
HubunganPenghuniJaminanSeeder::class,
|
||||||
|
ArahMataAnginSeeder::class,
|
||||||
|
StatusPermohonanSeeder::class,
|
||||||
|
RegionSeeder::class,
|
||||||
|
TeamsSeeder::class,
|
||||||
|
TeamUsersSeeder::class,
|
||||||
|
JenisPenilaianSeeder::class,
|
||||||
|
TujuanPenilaianKJPPSeeder::class,
|
||||||
|
IjinUsahaSeeder::class,
|
||||||
|
JenisLaporanSeeder::class,
|
||||||
|
DebitureSeeder::class,
|
||||||
|
PermohonanSeeder::class,
|
||||||
|
PemilikJaminanSeeder::class,
|
||||||
|
DokumenJaminanSeeder::class,
|
||||||
|
DetailDokumenJaminanSeeder::class,
|
||||||
|
KJPPSeeder::class,
|
||||||
|
PenawaranSeeder::class,
|
||||||
|
DetailPenawaranSeeder::class,
|
||||||
|
PenilaianSeeder::class,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
45
database/seeders/NilaiPlatformSeeder.php
Normal file
45
database/seeders/NilaiPlatformSeeder.php
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\NilaiPlafond;
|
||||||
|
|
||||||
|
class NilaiPlatformSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
NilaiPlafond::insert([
|
||||||
|
[
|
||||||
|
'code' => 'NP001',
|
||||||
|
'name' => '5 M - 10 M',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'NP002',
|
||||||
|
'name' => '2 M - 5 M',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'NP003',
|
||||||
|
'name' => '< 2M',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
118
database/seeders/PemilikJaminanSeeder.php
Normal file
118
database/seeders/PemilikJaminanSeeder.php
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\PemilikJaminan;
|
||||||
|
|
||||||
|
class PemilikJaminanSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
PemilikJaminan::insert([
|
||||||
|
[
|
||||||
|
'debiture_id' => 2,
|
||||||
|
'hubungan_pemilik_jaminan_id' => 1,
|
||||||
|
'name' => 'Antonius Ginting',
|
||||||
|
'npwp' => '234567890123456',
|
||||||
|
'nomor_id' => '13144213123',
|
||||||
|
'email' => 'x@gmail.com',
|
||||||
|
'phone' => '081234567891',
|
||||||
|
'province_code' => '31',
|
||||||
|
'city_code' => '31.71',
|
||||||
|
'district_code' => '31.71.06',
|
||||||
|
'village_code' => '31.71.06.1001',
|
||||||
|
'postal_code' => '10310',
|
||||||
|
'address' => 'Jl. Menteng Tengah No.66',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'debiture_id' => 7,
|
||||||
|
'hubungan_pemilik_jaminan_id' => 1,
|
||||||
|
'name' => 'Rahmat Rafli',
|
||||||
|
'npwp' => '1234689743418451',
|
||||||
|
'nomor_id' => '32754590325823',
|
||||||
|
'email' => 'testing@mail.com',
|
||||||
|
'phone' => '081385777611',
|
||||||
|
'province_code' => '32',
|
||||||
|
'city_code' => '32.75',
|
||||||
|
'district_code' => '32.75.03',
|
||||||
|
'village_code' => '32.75.03.1001',
|
||||||
|
'postal_code' => '10310',
|
||||||
|
'address' => 'Jl. Apel 1 no. 9',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'debiture_id' => 1,
|
||||||
|
'hubungan_pemilik_jaminan_id' => 1,
|
||||||
|
'name' => 'Willy',
|
||||||
|
'npwp' => '123455432109876',
|
||||||
|
'nomor_id' => null,
|
||||||
|
'email' => 'w@gmail.com',
|
||||||
|
'phone' => '08113242341',
|
||||||
|
'province_code' => '31',
|
||||||
|
'city_code' => '31.74',
|
||||||
|
'district_code' => '31.74.09',
|
||||||
|
'village_code' => '31.74.09.1003',
|
||||||
|
'postal_code' => '12630',
|
||||||
|
'address' => null,
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'debiture_id' => 4,
|
||||||
|
'hubungan_pemilik_jaminan_id' => 1,
|
||||||
|
'name' => 'Testing',
|
||||||
|
'npwp' => '1029280183912111',
|
||||||
|
'nomor_id' => null,
|
||||||
|
'email' => 'testing@email.com',
|
||||||
|
'phone' => '098172386',
|
||||||
|
'province_code' => '11',
|
||||||
|
'city_code' => '11.01',
|
||||||
|
'district_code' => '11.01.01',
|
||||||
|
'village_code' => '11.01.01.2001',
|
||||||
|
'postal_code' => '23773',
|
||||||
|
'address' => 'alamat',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'debiture_id' => 7,
|
||||||
|
'hubungan_pemilik_jaminan_id' => 1,
|
||||||
|
'name' => 'Testing 2',
|
||||||
|
'npwp' => '1234689743418451',
|
||||||
|
'nomor_id' => null,
|
||||||
|
'email' => 'testing@mail.com',
|
||||||
|
'phone' => '081385777611',
|
||||||
|
'province_code' => '31',
|
||||||
|
'city_code' => '31.71',
|
||||||
|
'district_code' => '31.71.06',
|
||||||
|
'village_code' => '31.71.06.1001',
|
||||||
|
'postal_code' => '10310',
|
||||||
|
'address' => 'Jl. Menteng Raya no. 13',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
46
database/seeders/PenawaranSeeder.php
Normal file
46
database/seeders/PenawaranSeeder.php
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\PenawaranTender;
|
||||||
|
|
||||||
|
class PenawaranSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
PenawaranTender::insert([
|
||||||
|
[
|
||||||
|
'code' => 'NP001',
|
||||||
|
'nomor_registrasi' => 'REG0000002',
|
||||||
|
'tujuan_penilaian_kjpp_id' => 3,
|
||||||
|
'jenis_laporan_id' => 2,
|
||||||
|
'start_date' => '2024-10-21',
|
||||||
|
'end_date' => '2024-10-28',
|
||||||
|
'catatan' => 'Hai',
|
||||||
|
'status' => 'tender',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'NP002',
|
||||||
|
'nomor_registrasi' => 'REG0000003',
|
||||||
|
'tujuan_penilaian_kjpp_id' => 1,
|
||||||
|
'jenis_laporan_id' => 1,
|
||||||
|
'start_date' => '2024-10-28',
|
||||||
|
'end_date' => '2024-10-31',
|
||||||
|
'catatan' => null,
|
||||||
|
'status' => 'tender',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
51
database/seeders/PenilaianSeeder.php
Normal file
51
database/seeders/PenilaianSeeder.php
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\Penilaian;
|
||||||
|
|
||||||
|
class PenilaianSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
Penilaian::insert([
|
||||||
|
[
|
||||||
|
'jenis_penilaian_id' => 2,
|
||||||
|
'teams_id' => 2,
|
||||||
|
'tanggal_kunjungan' => now(),
|
||||||
|
'keterangan' => 'Hai',
|
||||||
|
'status' => 'done',
|
||||||
|
'nomor_registrasi' => 'REG0000010',
|
||||||
|
'penilaian_id' => 2,
|
||||||
|
'surveyor_id' => 1,
|
||||||
|
'penilai_surveyor_id' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'jenis_penilaian_id' => 2,
|
||||||
|
'teams_id' => 1,
|
||||||
|
'tanggal_kunjungan' => now(),
|
||||||
|
'keterangan' => 'Hello',
|
||||||
|
'status' => 'done',
|
||||||
|
'nomor_registrasi' => 'REG0000008',
|
||||||
|
'penilaian_id' => 2,
|
||||||
|
'surveyor_id' => 1,
|
||||||
|
'penilai_surveyor_id' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'jenis_penilaian_id' => 2,
|
||||||
|
'teams_id' => 2,
|
||||||
|
'tanggal_kunjungan' => now(),
|
||||||
|
'keterangan' => 'Hello',
|
||||||
|
'status' => 'done',
|
||||||
|
'nomor_registrasi' => 'REG0000007',
|
||||||
|
'penilaian_id' => 1,
|
||||||
|
'surveyor_id' => 1,
|
||||||
|
'penilai_surveyor_id' => 1
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
126
database/seeders/PermohonanSeeder.php
Normal file
126
database/seeders/PermohonanSeeder.php
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\Permohonan;
|
||||||
|
|
||||||
|
class PermohonanSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
Permohonan::insert([
|
||||||
|
[
|
||||||
|
'nomor_registrasi' => 'REG0000002',
|
||||||
|
'tanggal_permohonan' => '2024-09-11',
|
||||||
|
'user_id' => 1,
|
||||||
|
'branch_id' => 1,
|
||||||
|
'tujuan_penilaian_id' => 1,
|
||||||
|
'debiture_id' => 1,
|
||||||
|
'status' => 'registered',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'jenis_fasilitas_kredit_id' => 1,
|
||||||
|
'nilai_plafond_id' => 1,
|
||||||
|
'status_bayar' => 'sudah_bayar',
|
||||||
|
'nilai_njop' => 'KJM3413259230951024',
|
||||||
|
'jenis_penilaian_id' => 2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'nomor_registrasi' => 'REG0000003',
|
||||||
|
'tanggal_permohonan' => '2024-09-13',
|
||||||
|
'user_id' => 1,
|
||||||
|
'branch_id' => 1,
|
||||||
|
'tujuan_penilaian_id' => 1,
|
||||||
|
'debiture_id' => 1,
|
||||||
|
'status' => 'registered',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'jenis_fasilitas_kredit_id' => 1,
|
||||||
|
'nilai_plafond_id' => 1,
|
||||||
|
'status_bayar' => 'sudah_bayar',
|
||||||
|
'nilai_njop' => 'KJM3413259230951025',
|
||||||
|
'jenis_penilaian_id' => 2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'nomor_registrasi' => 'REG0000006',
|
||||||
|
'tanggal_permohonan' => '2024-10-18',
|
||||||
|
'user_id' => 1,
|
||||||
|
'branch_id' => 1,
|
||||||
|
'tujuan_penilaian_id' => 1,
|
||||||
|
'debiture_id' => 2,
|
||||||
|
'status' => 'registered',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'jenis_fasilitas_kredit_id' => 4,
|
||||||
|
'nilai_plafond_id' => 1,
|
||||||
|
'status_bayar' => 'sudah_bayar',
|
||||||
|
'nilai_njop' => '23425654765868',
|
||||||
|
'jenis_penilaian_id' => 2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'nomor_registrasi' => 'REG0000007',
|
||||||
|
'tanggal_permohonan' => '2024-10-28',
|
||||||
|
'user_id' => 1,
|
||||||
|
'branch_id' => 1,
|
||||||
|
'tujuan_penilaian_id' => 7,
|
||||||
|
'debiture_id' => 4,
|
||||||
|
'status' => 'done',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'jenis_fasilitas_kredit_id' => 7,
|
||||||
|
'nilai_plafond_id' => 1,
|
||||||
|
'status_bayar' => 'sudah_bayar',
|
||||||
|
'nilai_njop' => '421354365747658',
|
||||||
|
'jenis_penilaian_id' => 2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'nomor_registrasi' => 'REG0000008',
|
||||||
|
'tanggal_permohonan' => '2024-10-28',
|
||||||
|
'user_id' => 1,
|
||||||
|
'branch_id' => 1,
|
||||||
|
'tujuan_penilaian_id' => 1,
|
||||||
|
'debiture_id' => 7,
|
||||||
|
'status' => 'done',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'jenis_fasilitas_kredit_id' => 7,
|
||||||
|
'nilai_plafond_id' => 2,
|
||||||
|
'status_bayar' => 'sudah_bayar',
|
||||||
|
'nilai_njop' => '421354365747659',
|
||||||
|
'jenis_penilaian_id' => 2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'nomor_registrasi' => 'REG0000010',
|
||||||
|
'tanggal_permohonan' => '2024-10-28',
|
||||||
|
'user_id' => 1,
|
||||||
|
'branch_id' => 1,
|
||||||
|
'tujuan_penilaian_id' => 5,
|
||||||
|
'debiture_id' => 7,
|
||||||
|
'status' => 'done',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'jenis_fasilitas_kredit_id' => 4,
|
||||||
|
'nilai_plafond_id' => 1,
|
||||||
|
'status_bayar' => 'sudah_bayar',
|
||||||
|
'nilai_njop' => '421354365747660',
|
||||||
|
'jenis_penilaian_id' => 2
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
30
database/seeders/RegionSeeder.php
Normal file
30
database/seeders/RegionSeeder.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\Regions;
|
||||||
|
|
||||||
|
class RegionSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
Regions::insert([
|
||||||
|
[
|
||||||
|
'code' => 'R01',
|
||||||
|
'name' => 'Region 1',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'R02',
|
||||||
|
'name' => 'Region 2',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
128
database/seeders/StatusPermohonanSeeder.php
Normal file
128
database/seeders/StatusPermohonanSeeder.php
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\StatusPermohonan;
|
||||||
|
|
||||||
|
class StatusPermohonanSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
StatusPermohonan::insert([
|
||||||
|
[
|
||||||
|
'name' => 'Order',
|
||||||
|
'slug' => 'order',
|
||||||
|
'description' => 'Status pengisian pengajuan dari AO sampai dengan approval dari BD atau EO Pemohon',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Revisi',
|
||||||
|
'slug' => 'revisi',
|
||||||
|
'description' => 'Back to pemohon dari admin',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Register',
|
||||||
|
'slug' => 'register',
|
||||||
|
'description' => 'pengajuan pemohon yang sudah diperiksa admin dan diproses ke SO',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Assign',
|
||||||
|
'slug' => 'assign',
|
||||||
|
'description' => 'posisi dari SO ke penilai setelah penunjukkan penilai',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Survey',
|
||||||
|
'slug' => 'survey',
|
||||||
|
'description' => 'tanggal kunjungan yang sudah ditentukan',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Proses Laporan',
|
||||||
|
'slug' => 'proses-laporan',
|
||||||
|
'description' => 'posisi penginputan yang dilakukan oleh penilai, dengan indikator tanggal kunjungan sampai laporan selesai (sesuai SLA)',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Approved',
|
||||||
|
'slug' => 'approved',
|
||||||
|
'description' => 'Laporan atau resume selesai',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Delivered',
|
||||||
|
'slug' => 'delivered',
|
||||||
|
'description' => 'Sudah isi nilai likuidasi',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Registered',
|
||||||
|
'slug' => 'registered',
|
||||||
|
'description' => 'abc',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Tender',
|
||||||
|
'slug' => 'tender',
|
||||||
|
'description' => 'abc',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Done',
|
||||||
|
'slug' => 'done',
|
||||||
|
'description' => 'abc',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
32
database/seeders/TeamUsersSeeder.php
Normal file
32
database/seeders/TeamUsersSeeder.php
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\TeamsUsers;
|
||||||
|
|
||||||
|
class TeamUsersSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
TeamsUsers::insert([
|
||||||
|
[
|
||||||
|
'teams_id' => 1,
|
||||||
|
'user_id' => 3,
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'teams_id' => 2,
|
||||||
|
'user_id' => 4,
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
32
database/seeders/TeamsSeeder.php
Normal file
32
database/seeders/TeamsSeeder.php
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\Teams;
|
||||||
|
|
||||||
|
class TeamsSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
Teams::insert([
|
||||||
|
[
|
||||||
|
'regions_id' => 1,
|
||||||
|
'code' => 'T01',
|
||||||
|
'name' => 'Penilai 1',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'regions_id' => 2,
|
||||||
|
'code' => 'T02',
|
||||||
|
'name' => 'Penilai 2',
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
46
database/seeders/TujuanPenilaianKJPPSeeder.php
Normal file
46
database/seeders/TujuanPenilaianKJPPSeeder.php
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\TujuanPenilaianKJPP;
|
||||||
|
|
||||||
|
class TujuanPenilaianKJPPSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
TujuanPenilaianKJPP::insert([
|
||||||
|
[
|
||||||
|
'code' => 'TPK01',
|
||||||
|
'name' => 'Transaksi Jual Beli Aset',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'TPK02',
|
||||||
|
'name' => 'Penjaminan Utang atau Pembiayaan',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'TPK03',
|
||||||
|
'name' => 'Pelaporan Keuangan',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'TPK04',
|
||||||
|
'name' => 'Pengambilalihan atau Merger dan Akuisisi (M&A)',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now()
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
95
database/seeders/TujuanPenilaianSeeder.php
Normal file
95
database/seeders/TujuanPenilaianSeeder.php
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Lpj\Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Modules\Lpj\Models\TujuanPenilaian;
|
||||||
|
|
||||||
|
class TujuanPenilaianSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
TujuanPenilaian::insert([
|
||||||
|
[
|
||||||
|
'code' => 'TP0001',
|
||||||
|
'name' => 'Penilaian Baru',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => null,
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => null
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'TP0002',
|
||||||
|
'name' => 'Penilaian Ulang',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => null,
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => null
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'TP0003',
|
||||||
|
'name' => 'Review',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => now(),
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => 1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'TP0004',
|
||||||
|
'name' => 'Lelang',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => null,
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => null
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'TP0005',
|
||||||
|
'name' => 'RAP',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => null,
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => null
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'TP0006',
|
||||||
|
'name' => 'Revaluasi Aset',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => null,
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => null
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'code' => 'TP0007',
|
||||||
|
'name' => 'Asuransi',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => null,
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => null
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
178
module.json
178
module.json
@@ -6,11 +6,10 @@
|
|||||||
"keywords": [],
|
"keywords": [],
|
||||||
"priority": 0,
|
"priority": 0,
|
||||||
"providers": ["Modules\\Lpj\\Providers\\LpjServiceProvider"],
|
"providers": ["Modules\\Lpj\\Providers\\LpjServiceProvider"],
|
||||||
"files": [
|
"files": ["app/Helpers/Lpj.php"],
|
||||||
"app/Helpers/Lpj.php"
|
|
||||||
],
|
|
||||||
"menu": {
|
"menu": {
|
||||||
"main": [{
|
"main": [
|
||||||
|
{
|
||||||
"title": "Permohonan",
|
"title": "Permohonan",
|
||||||
"path": "permohonan",
|
"path": "permohonan",
|
||||||
"icon": "ki-filled ki-questionnaire-tablet text-lg",
|
"icon": "ki-filled ki-questionnaire-tablet text-lg",
|
||||||
@@ -36,7 +35,8 @@
|
|||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"],
|
"roles": ["administrator", "admin"],
|
||||||
"sub": [{
|
"sub": [
|
||||||
|
{
|
||||||
"title": "Data Penawaran",
|
"title": "Data Penawaran",
|
||||||
"path": "tender.penawaran",
|
"path": "tender.penawaran",
|
||||||
"classes": "",
|
"classes": "",
|
||||||
@@ -78,14 +78,25 @@
|
|||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"],
|
"roles": ["administrator", "admin"],
|
||||||
"sub": [{
|
"sub": [
|
||||||
|
{
|
||||||
"title": "Otorisasi Penawaran",
|
"title": "Otorisasi Penawaran",
|
||||||
"path": "otorisasitender.penawaran",
|
"path": "otorisasitender.penawaran",
|
||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "admin"]
|
"roles": ["administrator", "admin"]
|
||||||
}]
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "SPK",
|
||||||
|
"path": "spk",
|
||||||
|
"icon": "ki-filled ki-file-added text-lg",
|
||||||
|
"classes": "",
|
||||||
|
"attributes": [],
|
||||||
|
"permission": "",
|
||||||
|
"roles": ["administrator", "admin"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Registrasi Final",
|
"title": "Registrasi Final",
|
||||||
@@ -139,7 +150,7 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["senior-officer"]
|
"roles": ["administrator","senior-officer"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Otorisator",
|
"title": "Otorisator",
|
||||||
@@ -148,14 +159,15 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["senior-officer"],
|
"roles": ["administrator","senior-officer"],
|
||||||
"sub": [{
|
"sub": [
|
||||||
|
{
|
||||||
"title": "Pelaporan",
|
"title": "Pelaporan",
|
||||||
"path": "otorisator.pelaporan",
|
"path": "otorisator.pelaporan",
|
||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["senior-officer"]
|
"roles": ["administrator","senior-officer"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Pembayaran",
|
"title": "Pembayaran",
|
||||||
@@ -163,7 +175,7 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["senior-officer"]
|
"roles": ["administrator","senior-officer"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Pembatalan",
|
"title": "Pembatalan",
|
||||||
@@ -171,7 +183,7 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["senior-officer"]
|
"roles": ["administrator","senior-officer"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "SLA",
|
"title": "SLA",
|
||||||
@@ -179,7 +191,7 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["ssenior-officero"]
|
"roles": ["administrator","senior-officer"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -190,7 +202,7 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["surveyor"]
|
"roles": ["administrator","surveyor"]
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -200,7 +212,22 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo", "admin", "surveyor"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo",
|
||||||
|
"admin",
|
||||||
|
"surveyor"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Penilai",
|
||||||
|
"path": "penilai",
|
||||||
|
"icon": "ki-filled ki-brush text-lg",
|
||||||
|
"classes": "",
|
||||||
|
"attributes": [],
|
||||||
|
"permission": "",
|
||||||
|
"roles": ["administrator","surveyor"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Laporan",
|
"title": "Laporan",
|
||||||
@@ -209,8 +236,15 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo", "admin", "senior-officer"],
|
"roles": [
|
||||||
"sub": [{
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo",
|
||||||
|
"admin",
|
||||||
|
"senior-officer"
|
||||||
|
],
|
||||||
|
"sub": [
|
||||||
|
{
|
||||||
"title": "Sederhana",
|
"title": "Sederhana",
|
||||||
"path": "laporan.sederhana",
|
"path": "laporan.sederhana",
|
||||||
"classes": "",
|
"classes": "",
|
||||||
@@ -224,7 +258,13 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo", "admin", "senior-officer"]
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo",
|
||||||
|
"admin",
|
||||||
|
"senior-officer"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -238,14 +278,21 @@
|
|||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo"]
|
"roles": ["administrator", "pemohon-ao", "pemohon-eo"]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"master": [{
|
"master": [
|
||||||
|
{
|
||||||
"title": "Basic Data",
|
"title": "Basic Data",
|
||||||
"path": "basicdata",
|
"path": "basicdata",
|
||||||
"icon": "ki-filled ki-category text-lg",
|
"icon": "ki-filled ki-category text-lg",
|
||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["administrator", "pemohon-ao", "pemohon-eo", "admin", "surveyor"],
|
"roles": [
|
||||||
|
"administrator",
|
||||||
|
"pemohon-ao",
|
||||||
|
"pemohon-eo",
|
||||||
|
"admin",
|
||||||
|
"surveyor"
|
||||||
|
],
|
||||||
"sub": [
|
"sub": [
|
||||||
{
|
{
|
||||||
"title": "Jenis Fasilitas Kredit",
|
"title": "Jenis Fasilitas Kredit",
|
||||||
@@ -384,12 +431,20 @@
|
|||||||
"roles": ["administrator", "admin"]
|
"roles": ["administrator", "admin"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Bentuk Tanah",
|
"title": "SLA",
|
||||||
|
"path": "basicdata.sla",
|
||||||
|
"classes": "",
|
||||||
|
"attributes": [],
|
||||||
|
"permission": "",
|
||||||
|
"roles": ["administrator", "admin"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Bentuk",
|
||||||
"path": "basicdata.bentuk-tanah",
|
"path": "basicdata.bentuk-tanah",
|
||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["surveyor"]
|
"roles": ["administrator","surveyor"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kontur Tanah",
|
"title": "Kontur Tanah",
|
||||||
@@ -397,7 +452,7 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["surveyor"]
|
"roles": ["administrator","surveyor"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Posisi Kavling",
|
"title": "Posisi Kavling",
|
||||||
@@ -405,7 +460,7 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["surveyor"]
|
"roles": ["administrator","surveyor"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ketinggian Tanah",
|
"title": "Ketinggian Tanah",
|
||||||
@@ -413,7 +468,7 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["surveyor"]
|
"roles": ["administrator","surveyor"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kondisi Fisik Tanah",
|
"title": "Kondisi Fisik Tanah",
|
||||||
@@ -421,7 +476,7 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["surveyor"]
|
"roles": ["administrator","surveyor"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Jenis Bangunan",
|
"title": "Jenis Bangunan",
|
||||||
@@ -429,7 +484,7 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["surveyor"]
|
"roles": ["administrator","surveyor"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kondisi Bangunan",
|
"title": "Kondisi Bangunan",
|
||||||
@@ -437,7 +492,7 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["surveyor"]
|
"roles": ["administrator","surveyor"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Sifat Bangunan",
|
"title": "Sifat Bangunan",
|
||||||
@@ -445,7 +500,7 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["surveyor"]
|
"roles": ["administrator","surveyor"]
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -454,11 +509,70 @@
|
|||||||
"classes": "",
|
"classes": "",
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"permission": "",
|
"permission": "",
|
||||||
"roles": ["surveyor"]
|
"roles": ["administrator","surveyor"]
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"title": "Lalu Lintas Sekitar",
|
||||||
|
"path": "basicdata.lalu-lintas-lokasi",
|
||||||
|
"classes": "",
|
||||||
|
"attributes": [],
|
||||||
|
"permission": "",
|
||||||
|
"roles": ["administrator","surveyor"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Tingkat Keramaian",
|
||||||
|
"path": "basicdata.tingkat-keramaian",
|
||||||
|
"classes": "",
|
||||||
|
"attributes": [],
|
||||||
|
"permission": "",
|
||||||
|
"roles": ["administrator","surveyor"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Masyarakat Sekitar",
|
||||||
|
"path": "basicdata.gol-mas-sekitar",
|
||||||
|
"classes": "",
|
||||||
|
"attributes": [],
|
||||||
|
"permission": "",
|
||||||
|
"roles": ["administrator","surveyor"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Lantai Unit",
|
||||||
|
"path": "basicdata.lantai-unit",
|
||||||
|
"classes": "",
|
||||||
|
"attributes": [],
|
||||||
|
"permission": "",
|
||||||
|
"roles": ["administrator","surveyor"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "View unit",
|
||||||
|
"path": "basicdata.view-unit",
|
||||||
|
"classes": "",
|
||||||
|
"attributes": [],
|
||||||
|
"permission": "",
|
||||||
|
"roles": ["administrator","surveyor"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Spesifikasi Bangunan",
|
||||||
|
"path": "basicdata.spek-bangunan",
|
||||||
|
"classes": "",
|
||||||
|
"attributes": [],
|
||||||
|
"permission": "",
|
||||||
|
"roles": ["administrator","surveyor"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Kategori Speksikasi Bangunan",
|
||||||
|
"path": "basicdata.spek-kategori-bangunan",
|
||||||
|
"classes": "",
|
||||||
|
"attributes": [],
|
||||||
|
"permission": "",
|
||||||
|
"roles": ["administrator","surveyor"]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
]
|
]
|
||||||
}],
|
}
|
||||||
|
],
|
||||||
"system": []
|
"system": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
8
resources/views/SLA/index.blade.php
Normal file
8
resources/views/SLA/index.blade.php
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
@extends('layouts.main')
|
||||||
|
|
||||||
|
@section('breadcrumbs')
|
||||||
|
{{ Breadcrumbs::render('sla') }}
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
@endsection
|
||||||
@@ -46,14 +46,14 @@
|
|||||||
@php
|
@php
|
||||||
|
|
||||||
$sortedTeamsActivity = $teamsActivity->sortBy(function ($item) {
|
$sortedTeamsActivity = $teamsActivity->sortBy(function ($item) {
|
||||||
return $item->team->penilaian
|
|
||||||
->filter(function ($penilaian) use ($item) {
|
return $item->team->penilaianTeam
|
||||||
return $penilaian->penilaian_id == $item->user->id ||
|
->filter(function ($penilaianTeam) use ($item) {
|
||||||
$penilaian->surveyor_id == $item->user->id ||
|
return $penilaianTeam->user_id == $item->user->id;
|
||||||
$penilaian->penilai_surveyor_id == $item->user->id;
|
|
||||||
})
|
})
|
||||||
->count();
|
->count();
|
||||||
});
|
});
|
||||||
|
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@foreach ($sortedTeamsActivity as $index => $item)
|
@foreach ($sortedTeamsActivity as $index => $item)
|
||||||
@@ -70,11 +70,9 @@
|
|||||||
<th class="min-w-[150px]">
|
<th class="min-w-[150px]">
|
||||||
<span class="text-base text-gray-900 font-normal">
|
<span class="text-base text-gray-900 font-normal">
|
||||||
@php
|
@php
|
||||||
$totalTasks = $item->team->penilaian
|
$totalTasks = $item->team->penilaianTeam
|
||||||
->filter(function ($penilaian) use ($item) {
|
->filter(function ($penilaianTeam) use ($item) {
|
||||||
return $penilaian->penilaian_id == $item->user->id ||
|
return $penilaianTeam->user_id == $item->user->id;
|
||||||
$penilaian->surveyor_id == $item->user->id ||
|
|
||||||
$penilaian->penilai_surveyor_id == $item->user->id;
|
|
||||||
})
|
})
|
||||||
->count();
|
->count();
|
||||||
@endphp
|
@endphp
|
||||||
@@ -156,8 +154,6 @@
|
|||||||
const apiUrl = accordion.querySelector('.card-grid').getAttribute(
|
const apiUrl = accordion.querySelector('.card-grid').getAttribute(
|
||||||
'data-api-url');
|
'data-api-url');
|
||||||
|
|
||||||
console.log("This is the API URL: " + apiUrl);
|
|
||||||
|
|
||||||
const dataTableOptions = {
|
const dataTableOptions = {
|
||||||
apiEndpoint: apiUrl,
|
apiEndpoint: apiUrl,
|
||||||
pageSize: 5,
|
pageSize: 5,
|
||||||
@@ -180,7 +176,7 @@
|
|||||||
},
|
},
|
||||||
jenis_asset: {
|
jenis_asset: {
|
||||||
title: 'Jenis Asset',
|
title: 'Jenis Asset',
|
||||||
render: (item, data) => `${data.jenis_asset || ''}`,
|
render: (item, data) => `${data.permohonan.debiture.documents.map(d => d.jenis_jaminan.name) || ''}`,
|
||||||
},
|
},
|
||||||
jenis_report: {
|
jenis_report: {
|
||||||
title: 'Jenis Report',
|
title: 'Jenis Report',
|
||||||
|
|||||||
@@ -69,14 +69,34 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="py-3 max-w-[100px]">
|
<td class="py-3 max-w-[100px] align-top">
|
||||||
Dokumen Jaminan
|
Dokumen Jaminan
|
||||||
</td>
|
</td>
|
||||||
<td class="py-3 text-gray-700 text-2sm font-normal">
|
<td class="py-3 text-gray-700 text-2sm font-normal">
|
||||||
|
|
||||||
@if(isset($detail->dokumen_jaminan))
|
@if(isset($detail->dokumen_jaminan))
|
||||||
<a href="{{ route('debitur.jaminan.download',['id'=>$permohonan->debiture->id,'dokumen'=>$detail->id]) }}" class="badge badge-sm badge-outline mt-2">{{ basename($detail->dokumen_jaminan) }}
|
@php
|
||||||
<i class="ki-filled ki-cloud-download"></i></a>
|
$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
|
@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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -95,3 +115,5 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@include('lpj::component.pdfviewer')
|
||||||
|
|||||||
25
resources/views/component/pdfviewer.blade.php
Normal file
25
resources/views/component/pdfviewer.blade.php
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<!-- Modal for PDF viewing -->
|
||||||
|
<div id="pdfModal" class="fixed inset-0 bg-gray-800 bg-opacity-75 flex items-center justify-center hidden w-full">
|
||||||
|
<div class="bg-white rounded-lg overflow-hidden shadow-xl transform transition-all min-w-3xl w-[1500px] h-[1200px]">
|
||||||
|
<div class="p-4 h-full">
|
||||||
|
<button onclick="closePDFModal()" class="float-right text-2xl">
|
||||||
|
<i class="ki-filled ki-cross-square text-red-600"></i>
|
||||||
|
</button>
|
||||||
|
<div id="pdfViewer" class="h-full"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@push('scripts')
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.3.0/pdfobject.min.js"></script>
|
||||||
|
<script>
|
||||||
|
function viewPDF(url) {
|
||||||
|
PDFObject.embed(url, "#pdfViewer");
|
||||||
|
document.getElementById('pdfModal').classList.remove('hidden');
|
||||||
|
}
|
||||||
|
|
||||||
|
function closePDFModal() {
|
||||||
|
document.getElementById('pdfModal').classList.add('hidden');
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
@endpush
|
||||||
@@ -22,9 +22,10 @@
|
|||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<div class="input-group w-full">
|
<div class="input-group w-full">
|
||||||
<select class="input tomselect w-full @error('branch_id') border-danger bg-danger-light @enderror" name="pemilik_jaminan_id" id="pemilik_jaminan_id">
|
<select onchange="changePemilikJaminan()" class="input tomselect w-full @error('branch_id') border-danger bg-danger-light @enderror" name="pemilik_jaminan_id" id="pemilik_jaminan_id">
|
||||||
<option value="">Pilih Pemilik Jaminan</option>
|
<option value="">Pilih Pemilik Jaminan</option>
|
||||||
<option value="0">Sama Dengan Debitur</option>
|
<option value="0">Sama Dengan Debitur</option>
|
||||||
|
<option value="00">Tidak Sama Dengan Debitur</option>
|
||||||
@if(isset($pemilikJaminan))
|
@if(isset($pemilikJaminan))
|
||||||
@foreach($pemilikJaminan as $pemilik)
|
@foreach($pemilikJaminan as $pemilik)
|
||||||
@if(isset($document))
|
@if(isset($document))
|
||||||
@@ -39,19 +40,71 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
</select>
|
</select>
|
||||||
@if(isset($document->id))
|
|
||||||
<a href="{{ route('debitur.pemilik.create',$debitur->id) }}?from=update-document&document={{ $document->id }}" class="btn btn-light">
|
|
||||||
<i class="ki-outline ki-plus-squared"></i> Tambah Pemilik Jaminan
|
|
||||||
</a>
|
|
||||||
@else
|
|
||||||
<a href="{{ route('debitur.pemilik.create',$debitur->id) }}?from=create-document" class="btn btn-light">
|
|
||||||
<i class="ki-outline ki-plus-squared"></i> Tambah Pemilik Jaminan
|
|
||||||
</a>
|
|
||||||
@endif
|
|
||||||
</div>
|
</div>
|
||||||
@error('pemilik_jaminan_id')
|
@error('pemilik_jaminan_id')
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
@enderror
|
@enderror
|
||||||
|
<fieldset id="pemilik_jaminan" class="hidden border border-solid border-gray-300 p-3 w-full mt-5 grid gap-5">
|
||||||
|
<legend class="text-sm">Pemilik Jaminan</legend>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Hubungan Pemilik Jaminan
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<select class="input tomselect w-full @error('branch_id') border-danger bg-danger-light @enderror" name="hubungan_pemilik_jaminan_id" id="hubungan_pemilik_jaminan_id">
|
||||||
|
<option value="">Pilih Hubungan Pemilik Jaminan</option>
|
||||||
|
@if(isset($hubunganPemilik))
|
||||||
|
@foreach($hubunganPemilik as $hubungan)
|
||||||
|
@if(isset($pemilik))
|
||||||
|
<option value="{{ $hubungan->id }}" {{ isset($pemilik->hubungan_pemilik_jaminan_id) && $pemilik->hubungan_pemilik_jaminan_id == $hubungan->id?'selected' : '' }}>
|
||||||
|
{{ $hubungan->name }}
|
||||||
|
</option>
|
||||||
|
@else
|
||||||
|
<option value="{{ $hubungan->id }}">
|
||||||
|
{{ $hubungan->name }}
|
||||||
|
</option>
|
||||||
|
@endif
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
</select>
|
||||||
|
@error('hubungan_pemilik_jaminan_id')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nama Lengkap
|
||||||
|
</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 w-full">
|
||||||
|
<input class="input @error('pemilik_name') border-danger bg-danger-light @enderror" type="text " id="pemilik_name" name="pemilik_name" value="{{ $pemilik->name ?? '' }}" placeholder="Nama Pemilik Jaminan">
|
||||||
|
@error('pemilik_name')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input @error('nomor_id') border-danger bg-danger-light @enderror" type="number" name="nomor_id" value="{{ $debitur->nomor_id ?? '' }}" placeholder="Nomor ID/KTP">
|
||||||
|
@error('nomor_id')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="nama_sertifikat">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<button type="button" id="tambah_sertifikat" class="btn btn-primary btn-xs">Tambah Nama di Sertifikat</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
</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">
|
||||||
@@ -79,23 +132,24 @@
|
|||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="doctainer" class="grid gap-5">
|
||||||
@if(isset($document->id))
|
@if(isset($document->id))
|
||||||
|
@php $n = 0; @endphp
|
||||||
@foreach($document->detail as $detail)
|
@foreach($document->detail as $detail)
|
||||||
<input type="hidden" name="detail_dokumen_jaminan_id[]" value="{{ $detail->id }}">
|
<input type="hidden" name="detail_dokumen_jaminan_id[]" value="{{ $detail->id }}">
|
||||||
<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 font-bold">
|
<label class="form-label max-w-56 font-bold">
|
||||||
{{ $loop->index + 1 }}. {{ $detail->jenisLegalitasJaminan->name }}
|
{{ $n + 1 }}. {{ $detail->jenisLegalitasJaminan->name }}
|
||||||
</label>
|
</label>
|
||||||
<input type="hidden" name="jenis_legalitas_jaminan_id[]" value=" {{ $detail->jenis_legalitas_jaminan_id }}">
|
<input type="hidden" name="jenis_legalitas_jaminan_id[]" value=" {{ $detail->jenis_legalitas_jaminan_id }}">
|
||||||
</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">
|
<label class="form-label max-w-56">
|
||||||
Nama Dokumen
|
Nomor
|
||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input class="input " type="text" id="name" name="name[]" value="{{ $detail->name ?? "" }}" placeholder="Nama Dokumen">
|
<input class="input " type="text" id="name" name="name[]" value="{{ $detail->name ?? "" }}" placeholder="Nomor">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -104,14 +158,73 @@
|
|||||||
Dokumen Jaminan
|
Dokumen Jaminan
|
||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input class="file-input" type="file" name="dokumen_jaminan[]" value="">
|
<div class="flex flex-col w-full gap-2" id="file-container-{{$n}}">
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<input class="flex-1 input" type="text" name="dokumen_nomor[{{ $n }}][]" placeholder="Nomor Dokumen">
|
||||||
|
<input class="flex-1 file-input" type="file" name="dokumen_jaminan[{{ $n }}][]">
|
||||||
|
<button type="button" class="flex-none btn btn-primary w-[100px] text-center" onclick="addFileInput({{ $n }})">Add More</button>
|
||||||
|
</div>
|
||||||
|
<div id="additional-files-{{ $n }}"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
@if(isset($detail->dokumen_jaminan))
|
@if(isset($detail->dokumen_jaminan))
|
||||||
<a href="{{ route('debitur.jaminan.download',['id'=>$debitur->id,'dokumen'=>$detail->id]) }}" class="badge badge-sm badge-outline mt-2">{{ basename($detail->dokumen_jaminan) }}
|
@if(isset($detail->dokumen_jaminan))
|
||||||
<i class="ki-filled ki-cloud-download"></i></a>
|
@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
|
||||||
|
<div class="flex flex-col w-full gap-2">
|
||||||
|
@foreach($dokumen_jaminan as $index => $dokumen)
|
||||||
|
<div class="flex w-full lg:w-[30%]">
|
||||||
|
@if(!empty($dokumen_nomor))
|
||||||
|
<span class="flex-1 mt-2 text-info text-sm">Nomor Dokumen : {{ $dokumen_nomor[$index] }}</span>
|
||||||
|
@endif
|
||||||
|
<a href="{{ route('debitur.jaminan.download', ['id' => $debitur->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>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@if($detail->details)
|
||||||
|
@php $custom_field = json_decode($detail->details,true) @endphp
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56 capitalize">
|
||||||
|
{{ str_replace('_',' ',$detail->jenisLegalitasJaminan->custom_field) }}
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input" type="text" name="custom_field[][$detail->jenisLegalitasJaminan->custom_field]" value="{{ $custom_field[$detail->jenisLegalitasJaminan->custom_field] }}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@else
|
||||||
|
@if($detail->jenisLegalitasJaminan->custom_field)
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56 capitalize">
|
||||||
|
{{ str_replace('_',' ',$detail->jenisLegalitasJaminan->custom_field) }}
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if($detail->jenisLegalitasJaminan->custom_field_type === "text")
|
||||||
|
<input class="input" type="text" name="custom_field[][{{$detail->jenisLegalitasJaminan->custom_field}}]" placeholder="... M2">
|
||||||
|
@elseif($detail->jenisLegalitasJaminan->custom_field_type === "number")
|
||||||
|
<input class="input" type="number" name="custom_field[][{{$detail->jenisLegalitasJaminan->custom_field}}]" placeholder="... M2">
|
||||||
|
@elseif($detail->jenisLegalitasJaminan->custom_field_type === "date")
|
||||||
|
<input class="input" type="date" name="custom_field[][{{$detail->jenisLegalitasJaminan->custom_field}}]" placeholder="... M2">
|
||||||
|
@elseif($detail->jenisLegalitasJaminan->custom_field_type === "textarea")
|
||||||
|
<textarea class="textarea" rows="3" name="custom_field[][{{$detail->jenisLegalitasJaminan->custom_field}}]" placeholder="... M2"></textarea>
|
||||||
|
@else
|
||||||
|
<input class="input" type="text" name="custom_field[][{{$detail->jenisLegalitasJaminan->custom_field}}]" placeholder="... M2">
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@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">
|
<label class="form-label max-w-56">
|
||||||
Keterangan
|
Keterangan
|
||||||
@@ -120,13 +233,75 @@
|
|||||||
<textarea class="textarea" rows="3" type="number" name="keterangan[]">{{ $detail->keterangan ?? "" }}</textarea>
|
<textarea class="textarea" rows="3" type="number" name="keterangan[]">{{ $detail->keterangan ?? "" }}</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@php $n++; @endphp
|
||||||
@endforeach
|
@endforeach
|
||||||
@else
|
@foreach($legalitas as $item)
|
||||||
<div id="doctainer" class="grid gap-5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56 font-bold">
|
||||||
|
{{ $n + 1 }}. {{ $item->name }}
|
||||||
|
</label>
|
||||||
|
<input type="hidden" name="jenis_legalitas_jaminan_id[]" value=" {{ $item->id }}">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nomor
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input " type="text" id="name" name="name[]" value="" placeholder="Nomor">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Dokumen Jaminan
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="flex flex-col w-full gap-2" id="file-container-{{$n}}">
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<input class="flex-1 input" type="text" name="dokumen_nomor[{{ $n }}][]" placeholder="Nomor Dokumen">
|
||||||
|
<input class="flex-1 file-input" type="file" name="dokumen_jaminan[{{ $n }}][]" multiple>
|
||||||
|
<button type="button" class="flex-none btn btn-primary w-[100px] text-center" onclick="addFileInput({{ $n }})">Add More</button>
|
||||||
|
</div>
|
||||||
|
<div id="additional-files-{{ $n }}"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@if($item->custom_field)
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56 capitalize">
|
||||||
|
{{ str_replace('_',' ',$item->custom_field) }}
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
@if($item->custom_field_type === "text")
|
||||||
|
<input class="input" type="text" name="custom_field[][{{$item->custom_field}}]" placeholder="... M2">
|
||||||
|
@elseif($item->custom_field_type === "number")
|
||||||
|
<input class="input" type="number" name="custom_field[][{{$item->custom_field}}]" placeholder="... M2">
|
||||||
|
@elseif($item->custom_field_type === "date")
|
||||||
|
<input class="input" type="date" name="custom_field[][{{$item->custom_field}}]" placeholder="... M2">
|
||||||
|
@elseif($item->custom_field_type === "textarea")
|
||||||
|
<textarea class="textarea" rows="3" name="custom_field[][{{$item->custom_field}}]" placeholder="... M2"></textarea>
|
||||||
|
@else
|
||||||
|
<input class="input" type="text" name="custom_field[][{{$item->custom_field}}]" placeholder="... M2">
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Keterangan
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<textarea class="textarea" rows="3" type="number" name="keterangan[]"></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@php $n++; @endphp
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
</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">
|
<label class="form-label max-w-56">
|
||||||
Address
|
Address
|
||||||
@@ -244,14 +419,72 @@
|
|||||||
</form>
|
</form>
|
||||||
|
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
|
{{--Pemilik Jaminan--}}
|
||||||
|
<script>
|
||||||
|
document.addEventListener("DOMContentLoaded", function () {
|
||||||
|
const namaSertifikatDiv = document.getElementById("nama_sertifikat");
|
||||||
|
|
||||||
|
// Function to add delete event listeners to existing buttons
|
||||||
|
function addDeleteListeners() {
|
||||||
|
document.querySelectorAll(".delete-button").forEach(button => {
|
||||||
|
button.addEventListener("click", function () {
|
||||||
|
this.closest(".flex.items-baseline.flex-wrap.lg\\:flex-nowrap.gap-2\\.5.mb-5").remove();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add delete listeners to existing buttons
|
||||||
|
addDeleteListeners();
|
||||||
|
|
||||||
|
document.getElementById("tambah_sertifikat").addEventListener("click", function () {
|
||||||
|
const newDiv = document.createElement("div");
|
||||||
|
newDiv.className = "flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-5";
|
||||||
|
newDiv.innerHTML = `
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nama Lengkap
|
||||||
|
</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 w-full">
|
||||||
|
<input class="input" type="text" name="detail_sertifikat[name][]" value="" placeholder="Nama Pemilik Jaminan">
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input" type="number" name="detail_sertifikat[nomor_id][]" value="" placeholder="Nomor ID/KTP">
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn btn-danger btn-xs delete-button">Hapus</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
namaSertifikatDiv.appendChild(newDiv);
|
||||||
|
|
||||||
|
// Add delete listener to the new button
|
||||||
|
addDeleteListeners();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function changePemilikJaminan() {
|
||||||
|
var pemilikJaminan = document.getElementById("pemilik_jaminan_id").value;
|
||||||
|
var fieldsetPemilikJaminan = document.getElementById("pemilik_jaminan");
|
||||||
|
if (pemilikJaminan === "00") {
|
||||||
|
fieldsetPemilikJaminan.classList.remove("hidden");
|
||||||
|
} else {
|
||||||
|
fieldsetPemilikJaminan.classList.add("hidden");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{{--Legalitas Jaminan--}}
|
||||||
<script>
|
<script>
|
||||||
function getLegalitasJaminan() {
|
function getLegalitasJaminan() {
|
||||||
var legalitasJaminan = document.getElementById('jenis_jaminan_id').value;
|
var legalitasJaminan = document.getElementById("jenis_jaminan_id").value;
|
||||||
var url = '/basic-data/jenis-jaminan/legalitas/' + legalitasJaminan;
|
var documentId = "{{ $document->id ?? "0" }}";
|
||||||
|
var debiturId = "{{ $debitur->id }}";
|
||||||
|
var url = `/basic-data/jenis-jaminan/legalitas/${documentId}/${legalitasJaminan}`;
|
||||||
fetch(url, {
|
fetch(url, {
|
||||||
method: 'GET',
|
method: "GET",
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json'
|
"Content-Type": "application/json",
|
||||||
|
"X-Requested-With": "XMLHttpRequest"
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.then(response => {
|
.then(response => {
|
||||||
@@ -261,23 +494,24 @@
|
|||||||
return response.json();
|
return response.json();
|
||||||
})
|
})
|
||||||
.then(data => {
|
.then(data => {
|
||||||
var doctainer = document.getElementById('doctainer');
|
var doctainer = document.getElementById("doctainer");
|
||||||
doctainer.innerHTML = '';
|
doctainer.innerHTML = "";
|
||||||
data.forEach((item, index) => {
|
data.forEach((item, index) => {
|
||||||
doctainer.innerHTML += `
|
doctainer.innerHTML += `
|
||||||
<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 font-bold">
|
<label class="form-label max-w-56 font-bold">
|
||||||
${index + 1}. ${item.name}
|
${index + 1}. ${item.name}
|
||||||
</label>
|
</label>
|
||||||
<input type="hidden" name="jenis_legalitas_jaminan_id[]" value="${item.id}">
|
<input type="hidden" name="jenis_legalitas_jaminan_id[]" value="${item.jenis_legalitas_jaminan_id}">
|
||||||
|
${item.is_existing ? `<input type="hidden" name="detail_dokumen_jaminan_id[]" value="${item.id}">` : ''}
|
||||||
</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">
|
<label class="form-label max-w-56">
|
||||||
Nama Dokumen
|
Nomor
|
||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input class="input " type="text" id="name" name="name[]" value="" placeholder="Nama Dokumen">
|
<input class="input" type="text" name="name[]" value="${item.name || ''}" placeholder="Nomor">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -285,25 +519,96 @@
|
|||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
Dokumen Jaminan
|
Dokumen Jaminan
|
||||||
</label>
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full" id="file-container-${index}">
|
||||||
|
<div class="flex flex-col w-full gap-2">
|
||||||
|
${item.dokumen_jaminan ? renderExistingFiles(item.dokumen_jaminan, debiturId, item.id, item.dokumen_nomor) : ''}
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center gap-2 my-2 w-full">
|
||||||
|
<input class="flex-1 input" type="text" name="dokumen_nomor[${index}][]" placeholder="Nomor Dokumen">
|
||||||
|
<input class="flex-1 file-input" type="file" name="dokumen_jaminan[${index}][]" multiple>
|
||||||
|
<button type="button" class="flex-none btn btn-primary w-[100px] text-center" onclick="addFileInput(${index})">Add File</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
${item.custom_field ? `
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56 capitalize">
|
||||||
|
${item.custom_field.replace(/_/g, " ")}
|
||||||
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input class="file-input" type="file" name="dokumen_jaminan[]" value="">
|
${getCustomFieldInput(item.custom_field_type, item.custom_field, item.details)}
|
||||||
</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">
|
<label class="form-label max-w-56">
|
||||||
Keterangan
|
Keterangan
|
||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<textarea class="textarea" rows="3" type="number" name="keterangan[]"></textarea>
|
<textarea class="textarea" rows="3" name="keterangan[]">${item.keterangan || ''}</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>`;
|
</div>
|
||||||
})
|
`;
|
||||||
})
|
|
||||||
.catch(error => {
|
|
||||||
console.error('Error:', error);
|
|
||||||
// Handle the error here
|
|
||||||
});
|
});
|
||||||
|
})
|
||||||
|
.catch(error => console.error('Error:', error));
|
||||||
|
}
|
||||||
|
|
||||||
|
function addFileInput(index) {
|
||||||
|
const container = document.getElementById(`file-container-${index}`);
|
||||||
|
const newInput = document.createElement('div');
|
||||||
|
newInput.className = 'flex items-center gap-2 mb-2 w-full';
|
||||||
|
newInput.innerHTML = `
|
||||||
|
<input class="flex-1 input" type="text" name="dokumen_nomor[${index}][]" placeholder="Nomor Dokumen">
|
||||||
|
<input class="flex-1 file-input" type="file" name="dokumen_jaminan[${index}][]" multiple>
|
||||||
|
<button type="button" class="flex-none btn btn-danger w-[100px] text-center" onclick="removeFileInput(this)">Remove</button>
|
||||||
|
`;
|
||||||
|
container.appendChild(newInput);
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeFileInput(button) {
|
||||||
|
button.closest('.flex.items-center.gap-2.mb-2').remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderExistingFiles(dokumenJaminan, debiturId, itemId, dokumenNomor) {
|
||||||
|
if (typeof dokumenJaminan === 'string' && typeof dokumenNomor === 'string') {
|
||||||
|
return `
|
||||||
|
<div class="flex w-full lg:w-[30%]">
|
||||||
|
<span class="flex-1 mt-2 text-info text-sm">Nomor Dokumen : ${dokumenNomor}</span>
|
||||||
|
<a href="/debitur/${debiturId}/jaminan/download?dokumen=${itemId}" class="flex-none badge badge-sm badge-outline mt-2">
|
||||||
|
${dokumenJaminan.split('/').pop()}
|
||||||
|
<i class="ki-filled ki-cloud-download"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
} else if (Array.isArray(dokumenJaminan) && Array.isArray(dokumenNomor)) {
|
||||||
|
return dokumenJaminan.map((file, index) => `<div class="flex w-full lg:w-[30%]">
|
||||||
|
<span class="flex-1 mt-2 text-info text-sm">Nomor Dokumen : ${dokumenNomor[index] || 'N/A'}</span>
|
||||||
|
<a href="/debitur/${debiturId}/jaminan/download?dokumen=${itemId}&file=${file}" class="flex-none badge badge-sm badge-outline mt-2 mr-2">
|
||||||
|
${file.split('/').pop()}
|
||||||
|
<i class="ki-filled ki-cloud-download"></i>
|
||||||
|
</a></div>
|
||||||
|
`).join('');
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
function getCustomFieldInput(type, fieldName, value) {
|
||||||
|
value = value ? JSON.parse(value)[fieldName] || '' : '';
|
||||||
|
switch (type) {
|
||||||
|
case "text":
|
||||||
|
return `<input class="input" type="text" name="custom_field[][${fieldName}]" value="${value}">`;
|
||||||
|
case "number":
|
||||||
|
return `<input class="input" type="number" name="custom_field[][${fieldName}]" value="${value}">`;
|
||||||
|
case "date":
|
||||||
|
return `<input class="input" type="date" name="custom_field[][${fieldName}]" value="${value}">`;
|
||||||
|
case "textarea":
|
||||||
|
return `<textarea class="textarea" rows="3" name="custom_field[][${fieldName}]">${value}</textarea>`;
|
||||||
|
default:
|
||||||
|
return `<input class="input" type="text" name="custom_field[][${fieldName}]" value="${value}">`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@endpush
|
@endpush
|
||||||
|
|||||||
@@ -23,9 +23,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="menu inline-flex" data-menu="true">
|
<div class="menu inline-flex" data-menu="true">
|
||||||
<div class="flex flex-nowrap justify-center gap-1.5">
|
<div class="flex flex-nowrap justify-center gap-1.5">
|
||||||
|
@if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo']))
|
||||||
<a href="{{ route('debitur.jaminan.bulk.download',['id' => $debitur->id,'jaminan' => $document->id]) }}" class="btn btn-sm btn-icon btn-dark">
|
<a href="{{ route('debitur.jaminan.bulk.download',['id' => $debitur->id,'jaminan' => $document->id]) }}" class="btn btn-sm btn-icon btn-dark">
|
||||||
<i class="ki-outline ki-cloud-download"></i>
|
<i class="ki-outline ki-cloud-download"></i>
|
||||||
</a>
|
</a>
|
||||||
|
@endif
|
||||||
<a href="{{ route('debitur.jaminan.edit',['id' => $debitur->id,'jaminan' => $document->id]) }}" class="btn btn-sm btn-icon btn-outline btn-info">
|
<a href="{{ route('debitur.jaminan.edit',['id' => $debitur->id,'jaminan' => $document->id]) }}" class="btn btn-sm btn-icon btn-outline btn-info">
|
||||||
<i class="ki-outline ki-notepad-edit"></i>
|
<i class="ki-outline ki-notepad-edit"></i>
|
||||||
</a>
|
</a>
|
||||||
@@ -68,7 +70,12 @@
|
|||||||
<span class="text-2xs text-gray-600 uppercase">
|
<span class="text-2xs text-gray-600 uppercase">
|
||||||
{{ $loop->index+1 }}. {{ $detail->jenisLegalitasJaminan->name }}
|
{{ $loop->index+1 }}. {{ $detail->jenisLegalitasJaminan->name }}
|
||||||
</span>
|
</span>
|
||||||
<a href="{{ route('debitur.jaminan.download',['id'=>$debitur->id, 'dokumen'=>$detail->id]) }}" class="badge badge-sm badge-outline">{{ basename($detail->dokumen_jaminan) }} <i class="ki-filled ki-cloud-download"></i></a>
|
<div>
|
||||||
|
@if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo']))
|
||||||
|
<a href="{{ route('debitur.jaminan.download',['id'=>$debitur->id,'dokumen'=>$detail->id]) }}" class="badge badge-sm badge-outline mt-2 badge-info"><i class="ki-filled ki-cloud-download mr-2"></i> Download</a>
|
||||||
|
@endif
|
||||||
|
<span class="badge badge-sm badge-outline badge-warning mt-2" onclick="viewPDF('{{ Storage::url($detail->dokumen_jaminan) }}')"><i class="ki-filled ki-eye mr-2"></i>Preview</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="border-t border-gray-300 border-dashed">
|
<div class="border-t border-gray-300 border-dashed">
|
||||||
</div>
|
</div>
|
||||||
@@ -129,6 +136,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@include('lpj::component.pdfviewer')
|
||||||
|
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|||||||
@@ -48,6 +48,38 @@
|
|||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Tambahkan inputan custom_field -->
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Custom Field
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input @error('custom_field') border-danger bg-danger-light @enderror" type="text" name="custom_field" value="{{ $jenisLegalitasJaminan->custom_field ?? '' }}">
|
||||||
|
@error('custom_field')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Tambahkan inputan custom_field_type -->
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Custom Field Type
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<select class="input tomselect @error('custom_field_type') border-danger bg-danger-light @enderror" name="custom_field_type">
|
||||||
|
<option value="">Pilih Tipe</option>
|
||||||
|
<option value="text" {{ (isset($jenisLegalitasJaminan) && $jenisLegalitasJaminan->custom_field_type == 'text') ? 'selected' : '' }}>Text</option>
|
||||||
|
<option value="number" {{ (isset($jenisLegalitasJaminan) && $jenisLegalitasJaminan->custom_field_type == 'number') ? 'selected' : '' }}>Number</option>
|
||||||
|
<option value="date" {{ (isset($jenisLegalitasJaminan) && $jenisLegalitasJaminan->custom_field_type == 'date') ? 'selected' : '' }}>Date</option>
|
||||||
|
</select>
|
||||||
|
@error('custom_field_type')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="flex justify-end">
|
<div class="flex justify-end">
|
||||||
<button type="submit" class="btn btn-primary">
|
<button type="submit" class="btn btn-primary">
|
||||||
Save
|
Save
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user