From b2b7559ed02880080079526bcdbf69bfa64f649e Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Tue, 17 Sep 2024 09:31:09 +0700 Subject: [PATCH 1/7] Membuat tampilan menu Tender dan Sub Menu Tender --- app/Http/Controllers/TenderController.php | 77 ++++ module.json | 381 ++++++++-------- resources/views/penawaran/index.blade.php | 22 + .../views/penawaran_ulang/index.blade.php | 22 + .../views/proses_penawaran/index.blade.php | 22 + routes/breadcrumbs.php | 430 +++++++++--------- routes/web.php | 357 ++++++++------- 7 files changed, 750 insertions(+), 561 deletions(-) create mode 100644 app/Http/Controllers/TenderController.php create mode 100644 resources/views/penawaran/index.blade.php create mode 100644 resources/views/penawaran_ulang/index.blade.php create mode 100644 resources/views/proses_penawaran/index.blade.php diff --git a/app/Http/Controllers/TenderController.php b/app/Http/Controllers/TenderController.php new file mode 100644 index 0000000..b21766b --- /dev/null +++ b/app/Http/Controllers/TenderController.php @@ -0,0 +1,77 @@ + + +
+
+

+ Data Penawaran +

+ +
+
+ {{-- @include('lpj::debitur.form') --}} +
+
+ +@endsection diff --git a/resources/views/penawaran_ulang/index.blade.php b/resources/views/penawaran_ulang/index.blade.php new file mode 100644 index 0000000..037539a --- /dev/null +++ b/resources/views/penawaran_ulang/index.blade.php @@ -0,0 +1,22 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('tender.penawaran.ulang') }} +@endsection + +@section('content') +
+ +
+
+

+ Data Penawaran Ulang +

+ +
+
+ {{-- @include('lpj::debitur.form') --}} +
+
+
+@endsection diff --git a/resources/views/proses_penawaran/index.blade.php b/resources/views/proses_penawaran/index.blade.php new file mode 100644 index 0000000..a9f3007 --- /dev/null +++ b/resources/views/proses_penawaran/index.blade.php @@ -0,0 +1,22 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('tender.proses.penawaran') }} +@endsection + +@section('content') +
+ +
+
+

+ Data Proses Penawaran +

+ +
+
+ {{-- @include('lpj::debitur.form') --}} +
+
+
+@endsection diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 0068876..c0bdc36 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -1,263 +1,281 @@ push('Basic Data'); - }); +Breadcrumbs::for('basicdata', function (BreadcrumbTrail $trail) { + $trail->push('Basic Data'); +}); - Breadcrumbs::for('basicdata.jenis-fasilitas-kredit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Fasilitas Kredit', route('basicdata.jenis-fasilitas-kredit.index')); - }); +Breadcrumbs::for('basicdata.jenis-fasilitas-kredit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Fasilitas Kredit', route('basicdata.jenis-fasilitas-kredit.index')); +}); - Breadcrumbs::for('basicdata.jenis-fasilitas-kredit.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-fasilitas-kredit'); - $trail->push('Tambah Jenis Fasilitas Kredit', route('basicdata.jenis-fasilitas-kredit.create')); - }); +Breadcrumbs::for('basicdata.jenis-fasilitas-kredit.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-fasilitas-kredit'); + $trail->push('Tambah Jenis Fasilitas Kredit', route('basicdata.jenis-fasilitas-kredit.create')); +}); - Breadcrumbs::for('basicdata.jenis-fasilitas-kredit.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-fasilitas-kredit'); - $trail->push('Edit Jenis Fasilitas Kredit'); - }); +Breadcrumbs::for('basicdata.jenis-fasilitas-kredit.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-fasilitas-kredit'); + $trail->push('Edit Jenis Fasilitas Kredit'); +}); - Breadcrumbs::for('basicdata.jenis-legalitas-jaminan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Legalitas Jaminan', route('basicdata.jenis-legalitas-jaminan.index')); - }); +Breadcrumbs::for('basicdata.jenis-legalitas-jaminan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Legalitas Jaminan', route('basicdata.jenis-legalitas-jaminan.index')); +}); - Breadcrumbs::for('basicdata.jenis-legalitas-jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-legalitas-jaminan'); - $trail->push('Tambah Jenis Legalitas Jaminan', route('basicdata.jenis-legalitas-jaminan.create')); - }); +Breadcrumbs::for('basicdata.jenis-legalitas-jaminan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-legalitas-jaminan'); + $trail->push('Tambah Jenis Legalitas Jaminan', route('basicdata.jenis-legalitas-jaminan.create')); +}); - Breadcrumbs::for('basicdata.jenis-legalitas-jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-legalitas-jaminan'); - $trail->push('Edit Jenis Legalitas Jaminan'); - }); +Breadcrumbs::for('basicdata.jenis-legalitas-jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-legalitas-jaminan'); + $trail->push('Edit Jenis Legalitas Jaminan'); +}); - Breadcrumbs::for('basicdata.jenis-jaminan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Aset', route('basicdata.jenis-jaminan.index')); - }); +Breadcrumbs::for('basicdata.jenis-jaminan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Aset', route('basicdata.jenis-jaminan.index')); +}); - Breadcrumbs::for('basicdata.jenis-jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-jaminan'); - $trail->push('Tambah Jenis Aset', route('basicdata.jenis-jaminan.create')); - }); +Breadcrumbs::for('basicdata.jenis-jaminan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-jaminan'); + $trail->push('Tambah Jenis Aset', route('basicdata.jenis-jaminan.create')); +}); - Breadcrumbs::for('basicdata.jenis-jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-jaminan'); - $trail->push('Edit Jenis Aset'); - }); +Breadcrumbs::for('basicdata.jenis-jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-jaminan'); + $trail->push('Edit Jenis Aset'); +}); - Breadcrumbs::for('basicdata.tujuan-penilaian', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Tujuan Penilaian', route('basicdata.tujuan-penilaian.index')); - }); +Breadcrumbs::for('basicdata.tujuan-penilaian', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Tujuan Penilaian', route('basicdata.tujuan-penilaian.index')); +}); - Breadcrumbs::for('basicdata.tujuan-penilaian.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.tujuan-penilaian'); - $trail->push('Tambah Tujuan Penilaian', route('basicdata.tujuan-penilaian.create')); - }); +Breadcrumbs::for('basicdata.tujuan-penilaian.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.tujuan-penilaian'); + $trail->push('Tambah Tujuan Penilaian', route('basicdata.tujuan-penilaian.create')); +}); - Breadcrumbs::for('basicdata.tujuan-penilaian.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.tujuan-penilaian'); - $trail->push('Edit Tujuan Penilaian'); - }); +Breadcrumbs::for('basicdata.tujuan-penilaian.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.tujuan-penilaian'); + $trail->push('Edit Tujuan Penilaian'); +}); - Breadcrumbs::for('basicdata.jenis-dokumen', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Dokumen', route('basicdata.jenis-dokumen.index')); - }); +Breadcrumbs::for('basicdata.jenis-dokumen', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Dokumen', route('basicdata.jenis-dokumen.index')); +}); - Breadcrumbs::for('basicdata.jenis-dokumen.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-dokumen'); - $trail->push('Tambah Jenis Dokumen', route('basicdata.jenis-dokumen.create')); - }); +Breadcrumbs::for('basicdata.jenis-dokumen.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-dokumen'); + $trail->push('Tambah Jenis Dokumen', route('basicdata.jenis-dokumen.create')); +}); - Breadcrumbs::for('basicdata.jenis-dokumen.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-dokumen'); - $trail->push('Edit Jenis Dokumen'); - }); +Breadcrumbs::for('basicdata.jenis-dokumen.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-dokumen'); + $trail->push('Edit Jenis Dokumen'); +}); - Breadcrumbs::for('basicdata.currency', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Mata Uang', route('basicdata.currency.index')); - }); +Breadcrumbs::for('basicdata.currency', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Mata Uang', route('basicdata.currency.index')); +}); - Breadcrumbs::for('basicdata.currency.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.currency'); - $trail->push('Tambah Mata Uang', route('basicdata.currency.create')); - }); +Breadcrumbs::for('basicdata.currency.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.currency'); + $trail->push('Tambah Mata Uang', route('basicdata.currency.create')); +}); - Breadcrumbs::for('basicdata.currency.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.currency'); - $trail->push('Edit Mata Uang'); - }); +Breadcrumbs::for('basicdata.currency.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.currency'); + $trail->push('Edit Mata Uang'); +}); - Breadcrumbs::for('basicdata.branch', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Cabang', route('basicdata.branch.index')); - }); +Breadcrumbs::for('basicdata.branch', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Cabang', route('basicdata.branch.index')); +}); - Breadcrumbs::for('basicdata.branch.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.branch'); - $trail->push('Tambah Cabang', route('basicdata.branch.create')); - }); +Breadcrumbs::for('basicdata.branch.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.branch'); + $trail->push('Tambah Cabang', route('basicdata.branch.create')); +}); - Breadcrumbs::for('basicdata.branch.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.branch'); - $trail->push('Edit Cabang'); - }); +Breadcrumbs::for('basicdata.branch.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.branch'); + $trail->push('Edit Cabang'); +}); - Breadcrumbs::for('basicdata.nilai-plafond', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Nilai Plafond', route('basicdata.nilai-plafond.index')); - }); +Breadcrumbs::for('basicdata.nilai-plafond', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Nilai Plafond', route('basicdata.nilai-plafond.index')); +}); - Breadcrumbs::for('basicdata.nilai-plafond.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.nilai-plafond'); - $trail->push('Tambah Nilai Plafond', route('basicdata.nilai-plafond.create')); - }); +Breadcrumbs::for('basicdata.nilai-plafond.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.nilai-plafond'); + $trail->push('Tambah Nilai Plafond', route('basicdata.nilai-plafond.create')); +}); - Breadcrumbs::for('basicdata.nilai-plafond.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.nilai-plafond'); - $trail->push('Edit Nilai Plafond'); - }); +Breadcrumbs::for('basicdata.nilai-plafond.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.nilai-plafond'); + $trail->push('Edit Nilai Plafond'); +}); - Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Hubungan Pemilik Jaminan', route('basicdata.hubungan-pemilik-jaminan.index')); - }); +Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Hubungan Pemilik Jaminan', route('basicdata.hubungan-pemilik-jaminan.index')); +}); - Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-pemilik-jaminan'); - $trail->push('Tambah Hubungan Pemilik Jaminan', route('basicdata.hubungan-pemilik-jaminan.create')); - }); +Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-pemilik-jaminan'); + $trail->push('Tambah Hubungan Pemilik Jaminan', route('basicdata.hubungan-pemilik-jaminan.create')); +}); - Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-pemilik-jaminan'); - $trail->push('Edit Hubungan Pemilik Jaminan'); - }); +Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-pemilik-jaminan'); + $trail->push('Edit Hubungan Pemilik Jaminan'); +}); - Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Hubungan Penghuni Jaminan', route('basicdata.hubungan-penghuni-jaminan.index')); - }); +Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Hubungan Penghuni Jaminan', route('basicdata.hubungan-penghuni-jaminan.index')); +}); - Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-penghuni-jaminan'); - $trail->push('Tambah Hubungan Penghuni Jaminan', route('basicdata.hubungan-penghuni-jaminan.create')); - }); +Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-penghuni-jaminan'); + $trail->push('Tambah Hubungan Penghuni Jaminan', route('basicdata.hubungan-penghuni-jaminan.create')); +}); - Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-penghuni-jaminan'); - $trail->push('Edit Hubungan Penghuni Jaminan'); - }); +Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-penghuni-jaminan'); + $trail->push('Edit Hubungan Penghuni Jaminan'); +}); - Breadcrumbs::for('basicdata.arah-mata-angin', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Arah Mata Angin', route('basicdata.arah-mata-angin.index')); - }); +Breadcrumbs::for('basicdata.arah-mata-angin', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Arah Mata Angin', route('basicdata.arah-mata-angin.index')); +}); - Breadcrumbs::for('basicdata.arah-mata-angin.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.arah-mata-angin'); - $trail->push('Tambah Arah Mata Angin', route('basicdata.arah-mata-angin.create')); - }); +Breadcrumbs::for('basicdata.arah-mata-angin.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.arah-mata-angin'); + $trail->push('Tambah Arah Mata Angin', route('basicdata.arah-mata-angin.create')); +}); - Breadcrumbs::for('basicdata.arah-mata-angin.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-penghuni-jaminan'); - $trail->push('Edit Arah Mata Angin'); - }); +Breadcrumbs::for('basicdata.arah-mata-angin.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-penghuni-jaminan'); + $trail->push('Edit Arah Mata Angin'); +}); - Breadcrumbs::for('basicdata.status-permohonan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Status Permohonan', route('basicdata.status-permohonan.index')); - }); +Breadcrumbs::for('basicdata.status-permohonan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Status Permohonan', route('basicdata.status-permohonan.index')); +}); - Breadcrumbs::for('basicdata.status-permohonan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.status-permohonan'); - $trail->push('Tambah Status Permohonan', route('basicdata.status-permohonan.create')); - }); +Breadcrumbs::for('basicdata.status-permohonan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.status-permohonan'); + $trail->push('Tambah Status Permohonan', route('basicdata.status-permohonan.create')); +}); - Breadcrumbs::for('basicdata.status-permohonan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.status-permohonan'); - $trail->push('Edit Status Permohonan'); - }); +Breadcrumbs::for('basicdata.status-permohonan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.status-permohonan'); + $trail->push('Edit Status Permohonan'); +}); - Breadcrumbs::for('debitur', function (BreadcrumbTrail $trail) { - $trail->push('Debitur', route('debitur.index')); - }); +Breadcrumbs::for('debitur', function (BreadcrumbTrail $trail) { + $trail->push('Debitur', route('debitur.index')); +}); - Breadcrumbs::for('debitur.create', function (BreadcrumbTrail $trail) { - $trail->parent('debitur'); - $trail->push('Tambah Debitur', route('debitur.create')); - }); +Breadcrumbs::for('debitur.create', function (BreadcrumbTrail $trail) { + $trail->parent('debitur'); + $trail->push('Tambah Debitur', route('debitur.create')); +}); - Breadcrumbs::for('debitur.edit', function (BreadcrumbTrail $trail) { - $trail->parent('debitur'); - $trail->push('Data Debitur'); - }); +Breadcrumbs::for('debitur.edit', function (BreadcrumbTrail $trail) { + $trail->parent('debitur'); + $trail->push('Data Debitur'); +}); - Breadcrumbs::for('debitur.jaminan.index', function (BreadcrumbTrail $trail) { - $trail->parent('debitur'); - $trail->push('Data Jaminan Debitur'); - }); +Breadcrumbs::for('debitur.jaminan.index', function (BreadcrumbTrail $trail) { + $trail->parent('debitur'); + $trail->push('Data Jaminan Debitur'); +}); - Breadcrumbs::for('debitur.jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('debitur.jaminan.index'); - $trail->push('Tambah Data Jaminan Debitur'); - }); +Breadcrumbs::for('debitur.jaminan.create', function (BreadcrumbTrail $trail) { + $trail->parent('debitur.jaminan.index'); + $trail->push('Tambah Data Jaminan Debitur'); +}); - Breadcrumbs::for('debitur.jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('debitur.jaminan.index'); - $trail->push('Edit Data Jaminan Debitur'); - }); +Breadcrumbs::for('debitur.jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('debitur.jaminan.index'); + $trail->push('Edit Data Jaminan Debitur'); +}); - Breadcrumbs::for('debitur.pemilik.index', function (BreadcrumbTrail $trail) { - $trail->parent('debitur'); - $trail->push('Data Pemilik Jaminan Debitur'); - }); +Breadcrumbs::for('debitur.pemilik.index', function (BreadcrumbTrail $trail) { + $trail->parent('debitur'); + $trail->push('Data Pemilik Jaminan Debitur'); +}); - Breadcrumbs::for('debitur.pemilik.create', function (BreadcrumbTrail $trail) { - $trail->parent('debitur.pemilik.index'); - $trail->push('Tambah Data Pemilik Jaminan Debitur'); - }); +Breadcrumbs::for('debitur.pemilik.create', function (BreadcrumbTrail $trail) { + $trail->parent('debitur.pemilik.index'); + $trail->push('Tambah Data Pemilik Jaminan Debitur'); +}); - Breadcrumbs::for('debitur.pemilik.edit', function (BreadcrumbTrail $trail) { - $trail->parent('debitur.pemilik.index'); - $trail->push('Edit Data Pemilik Jaminan Debitur'); - }); +Breadcrumbs::for('debitur.pemilik.edit', function (BreadcrumbTrail $trail) { + $trail->parent('debitur.pemilik.index'); + $trail->push('Edit Data Pemilik Jaminan Debitur'); +}); - Breadcrumbs::for('permohonan.index', function (BreadcrumbTrail $trail) { - $trail->push('Permohonan', route('permohonan.index')); - }); +Breadcrumbs::for('permohonan.index', function (BreadcrumbTrail $trail) { + $trail->push('Permohonan', route('permohonan.index')); +}); - Breadcrumbs::for('permohonan.create', function (BreadcrumbTrail $trail) { - $trail->parent('permohonan.index'); - $trail->push('Tambah Permohonan', route('permohonan.create')); - }); +Breadcrumbs::for('permohonan.create', function (BreadcrumbTrail $trail) { + $trail->parent('permohonan.index'); + $trail->push('Tambah Permohonan', route('permohonan.create')); +}); - Breadcrumbs::for('permohonan.create.debitur', function (BreadcrumbTrail $trail) { - $trail->parent('permohonan.index'); - $trail->push('Tambah Permohonan', route('permohonan.create')); - }); +Breadcrumbs::for('permohonan.create.debitur', function (BreadcrumbTrail $trail) { + $trail->parent('permohonan.index'); + $trail->push('Tambah Permohonan', route('permohonan.create')); +}); - Breadcrumbs::for('permohonan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('permohonan.index'); - $trail->push('Data Permohonan'); - }); +Breadcrumbs::for('permohonan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('permohonan.index'); + $trail->push('Data Permohonan'); +}); - Breadcrumbs::for('authorization.index', function (BreadcrumbTrail $trail) { - $trail->push('Permohonan', route('authorization.index')); - }); +Breadcrumbs::for('authorization.index', function (BreadcrumbTrail $trail) { + $trail->push('Permohonan', route('authorization.index')); +}); - Breadcrumbs::for('authorization.show', function (BreadcrumbTrail $trail) { - $trail->parent('authorization.index'); - $trail->push('Detail Permohonan'); - }); +Breadcrumbs::for('authorization.show', function (BreadcrumbTrail $trail) { + $trail->parent('authorization.index'); + $trail->push('Detail Permohonan'); +}); +Breadcrumbs::for('tender', function (BreadcrumbTrail $trail) { + $trail->push('Tender'); +}); + +Breadcrumbs::for('tender.penawaran', function (BreadcrumbTrail $trail) { + $trail->parent('tender'); + $trail->push('Data Penawaran', route('tender.penawaran.index')); +}); + +Breadcrumbs::for('tender.proses.penawaran', function (BreadcrumbTrail $trail) { + $trail->parent('tender'); + $trail->push('Data Proses Penawaran', route('tender.proses_penawaran.index')); +}); + +Breadcrumbs::for('tender.penawaran.ulang', function (BreadcrumbTrail $trail) { + $trail->parent('tender'); + $trail->push('Data Penawaran Ulang', route('tender.penawaran_ulang.index')); +}); diff --git a/routes/web.php b/routes/web.php index 0a8075f..fd299bf 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,25 +1,26 @@ group(function () { - Route::name('basicdata.')->prefix('basic-data')->group(function () { - Route::name('jenis-fasilitas-kredit.')->prefix('jenis-fasilitas-kredit')->group(function () { - Route::get('restore/{id}', [JenisFasilitasKreditController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisFasilitasKreditController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [JenisFasilitasKreditController::class, 'export'])->name('export'); - }); - Route::resource('jenis-fasilitas-kredit', JenisFasilitasKreditController::class); +Route::middleware(['auth'])->group(function () { + Route::name('basicdata.')->prefix('basic-data')->group(function () { + Route::name('jenis-fasilitas-kredit.')->prefix('jenis-fasilitas-kredit')->group(function () { + Route::get('restore/{id}', [JenisFasilitasKreditController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisFasilitasKreditController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [JenisFasilitasKreditController::class, 'export'])->name('export'); + }); + Route::resource('jenis-fasilitas-kredit', JenisFasilitasKreditController::class); - Route::name('jenis-legalitas-jaminan.')->prefix('jenis-legalitas-jaminan')->group(function () { - Route::get('restore/{id}', [JenisLegalitasJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisLegalitasJaminanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [JenisLegalitasJaminanController::class, 'export'])->name('export'); - }); - Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class); + Route::name('jenis-legalitas-jaminan.')->prefix('jenis-legalitas-jaminan')->group(function () { + Route::get('restore/{id}', [JenisLegalitasJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisLegalitasJaminanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [JenisLegalitasJaminanController::class, 'export'])->name('export'); + }); + Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class); - Route::name('jenis-jaminan.')->prefix('jenis-aset')->group(function () { - Route::get('legalitas/{id}', [JenisJaminanController::class, 'legalitasJaminan'])->name('legalitas'); - Route::get('restore/{id}', [JenisJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisJaminanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [JenisJaminanController::class, 'export'])->name('export'); - }); - Route::resource('jenis-jaminan', JenisJaminanController::class); + Route::name('jenis-jaminan.')->prefix('jenis-aset')->group(function () { + Route::get('legalitas/{id}', [JenisJaminanController::class, 'legalitasJaminan'])->name('legalitas'); + Route::get('restore/{id}', [JenisJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisJaminanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [JenisJaminanController::class, 'export'])->name('export'); + }); + Route::resource('jenis-jaminan', JenisJaminanController::class); - Route::name('tujuan-penilaian.')->prefix('tujuan-penilaian')->group(function () { - Route::get('restore/{id}', [TujuanPenilaianController::class, 'restore'])->name('restore'); - Route::get('datatables', [TujuanPenilaianController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [TujuanPenilaianController::class, 'export'])->name('export'); - }); - Route::resource('tujuan-penilaian', TujuanPenilaianController::class); + Route::name('tujuan-penilaian.')->prefix('tujuan-penilaian')->group(function () { + Route::get('restore/{id}', [TujuanPenilaianController::class, 'restore'])->name('restore'); + Route::get('datatables', [TujuanPenilaianController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [TujuanPenilaianController::class, 'export'])->name('export'); + }); + Route::resource('tujuan-penilaian', TujuanPenilaianController::class); - Route::name('jenis-dokumen.')->prefix('jenis-dokumen')->group(function () { - Route::get('restore/{id}', [JenisDokumenController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisDokumenController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [JenisDokumenController::class, 'export'])->name('export'); - }); - Route::resource('jenis-dokumen', JenisDokumenController::class); + Route::name('jenis-dokumen.')->prefix('jenis-dokumen')->group(function () { + Route::get('restore/{id}', [JenisDokumenController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisDokumenController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [JenisDokumenController::class, 'export'])->name('export'); + }); + Route::resource('jenis-dokumen', JenisDokumenController::class); - Route::name('currency.')->prefix('mata-uang')->group(function () { - Route::get('restore/{id}', [CurrencyController::class, 'restore'])->name('restore'); - Route::get('datatables', [CurrencyController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [CurrencyController::class, 'export'])->name('export'); - }); - - Route::resource('mata-uang', CurrencyController::class, [ - 'names' => [ - 'index' => 'currency.index', - 'show' => 'currency.show', - 'create' => 'currency.create', - 'store' => 'currency.store', - 'edit' => 'currency.edit', - 'update' => 'currency.update', - 'destroy' => 'currency.destroy', - ], - ]); - - Route::name('branch.')->prefix('cabang')->group(function () { - Route::get('restore/{id}', [BranchController::class, 'restore'])->name('restore'); - Route::get('datatables', [BranchController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [BranchController::class, 'export'])->name('export'); - }); - - Route::resource('cabang', BranchController::class, [ - 'names' => [ - 'index' => 'branch.index', - 'show' => 'branch.show', - 'create' => 'branch.create', - 'store' => 'branch.store', - 'edit' => 'branch.edit', - 'update' => 'branch.update', - 'destroy' => 'branch.destroy', - ], - ]); - - Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { - Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); - Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); - }); - Route::resource('nilai-plafond', NilaiPlafondController::class); - - Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); - - Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); - - Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { - Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); - Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); - }); - Route::resource('arah-mata-angin', ArahMataAnginController::class); - - - Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { - Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); - Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); - }); - Route::resource('status-permohonan', StatusPermohonanController::class); + Route::name('currency.')->prefix('mata-uang')->group(function () { + Route::get('restore/{id}', [CurrencyController::class, 'restore'])->name('restore'); + Route::get('datatables', [CurrencyController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [CurrencyController::class, 'export'])->name('export'); }); - Route::name('permohonan.')->prefix('permohonan')->group(function () { - Route::get('{id}/create', [PermohonanController::class, 'createPermohonan'])->name('create.debitur'); - Route::get('download/{id}', [PermohonanController::class, 'download'])->name('download'); - Route::get('restore/{id}', [PermohonanController::class, 'restore'])->name('restore'); - Route::get('datatables', [PermohonanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [PermohonanController::class, 'export'])->name('export'); + Route::resource('mata-uang', CurrencyController::class, [ + 'names' => [ + 'index' => 'currency.index', + 'show' => 'currency.show', + 'create' => 'currency.create', + 'store' => 'currency.store', + 'edit' => 'currency.edit', + 'update' => 'currency.update', + 'destroy' => 'currency.destroy', + ], + ]); + + Route::name('branch.')->prefix('cabang')->group(function () { + Route::get('restore/{id}', [BranchController::class, 'restore'])->name('restore'); + Route::get('datatables', [BranchController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [BranchController::class, 'export'])->name('export'); }); - Route::resource('permohonan', PermohonanController::class); + Route::resource('cabang', BranchController::class, [ + 'names' => [ + 'index' => 'branch.index', + 'show' => 'branch.show', + 'create' => 'branch.create', + 'store' => 'branch.store', + 'edit' => 'branch.edit', + 'update' => 'branch.update', + 'destroy' => 'branch.destroy', + ], + ]); - Route::get('authorization', [PermohonanController::class, 'authorization'])->name('authorization.index'); - Route::get('authorization/datatables', [PermohonanController::class, 'dataForAuthorization']) - ->name('authorization.datatables'); - Route::get('authorization/{id}/edit', [PermohonanController::class, 'showAuthorization'])->name('authorization.show'); - Route::put('authorization/{id}', [PermohonanController::class, 'updateAuthorization'])->name('authorization.update'); - - Route::name('debitur.')->prefix('debitur')->group(function () { - Route::get('restore/{id}', [DebitureController::class, 'restore'])->name('restore'); - Route::get('datatables', [DebitureController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [DebitureController::class, 'export'])->name('export'); - - - Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () { - Route::get('download/{dokumen}', [DokumenJaminanController::class, 'download'])->name('download'); - Route::get('/', [DokumenJaminanController::class, 'index'])->name('index'); - Route::get('create', [DokumenJaminanController::class, 'create'])->name('create'); - Route::get('{jaminan}/edit', [DokumenJaminanController::class, 'edit'])->name('edit'); - Route::put('{jaminan}', [DokumenJaminanController::class, 'update'])->name('update'); - Route::post('store', [DokumenJaminanController::class, 'store'])->name('store'); - Route::delete('{jaminan}', [DokumenJaminanController::class, 'destroy'])->name('destroy'); - }); - - Route::name('pemilik.')->prefix('{id}/pemilik')->group(function () { - Route::get('/', [PemilikJaminanController::class, 'index'])->name('index'); - Route::get('create', [PemilikJaminanController::class, 'create'])->name('create'); - Route::get('{pemilik}/edit', [PemilikJaminanController::class, 'edit'])->name('edit'); - Route::put('{pemilik}', [PemilikJaminanController::class, 'update'])->name('update'); - Route::post('store', [PemilikJaminanController::class, 'store'])->name('store'); - Route::delete('{pemilik}', [PemilikJaminanController::class, 'destroy'])->name('destroy'); - }); + Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { + Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); + Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); }); + Route::resource('nilai-plafond', NilaiPlafondController::class); - Route::resource('debitur', DebitureController::class); + Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); + + Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); + + Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { + Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); + Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); + }); + Route::resource('arah-mata-angin', ArahMataAnginController::class); + + + Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { + Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); + Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); + }); + Route::resource('status-permohonan', StatusPermohonanController::class); }); + + Route::name('permohonan.')->prefix('permohonan')->group(function () { + Route::get('{id}/create', [PermohonanController::class, 'createPermohonan'])->name('create.debitur'); + Route::get('download/{id}', [PermohonanController::class, 'download'])->name('download'); + Route::get('restore/{id}', [PermohonanController::class, 'restore'])->name('restore'); + Route::get('datatables', [PermohonanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [PermohonanController::class, 'export'])->name('export'); + }); + + Route::resource('permohonan', PermohonanController::class); + + Route::get('authorization', [PermohonanController::class, 'authorization'])->name('authorization.index'); + Route::get('authorization/datatables', [PermohonanController::class, 'dataForAuthorization']) + ->name('authorization.datatables'); + Route::get('authorization/{id}/edit', [PermohonanController::class, 'showAuthorization'])->name('authorization.show'); + Route::put('authorization/{id}', [PermohonanController::class, 'updateAuthorization'])->name('authorization.update'); + + Route::name('debitur.')->prefix('debitur')->group(function () { + Route::get('restore/{id}', [DebitureController::class, 'restore'])->name('restore'); + Route::get('datatables', [DebitureController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [DebitureController::class, 'export'])->name('export'); + + + Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () { + Route::get('download/{dokumen}', [DokumenJaminanController::class, 'download'])->name('download'); + Route::get('/', [DokumenJaminanController::class, 'index'])->name('index'); + Route::get('create', [DokumenJaminanController::class, 'create'])->name('create'); + Route::get('{jaminan}/edit', [DokumenJaminanController::class, 'edit'])->name('edit'); + Route::put('{jaminan}', [DokumenJaminanController::class, 'update'])->name('update'); + Route::post('store', [DokumenJaminanController::class, 'store'])->name('store'); + Route::delete('{jaminan}', [DokumenJaminanController::class, 'destroy'])->name('destroy'); + }); + + Route::name('pemilik.')->prefix('{id}/pemilik')->group(function () { + Route::get('/', [PemilikJaminanController::class, 'index'])->name('index'); + Route::get('create', [PemilikJaminanController::class, 'create'])->name('create'); + Route::get('{pemilik}/edit', [PemilikJaminanController::class, 'edit'])->name('edit'); + Route::put('{pemilik}', [PemilikJaminanController::class, 'update'])->name('update'); + Route::post('store', [PemilikJaminanController::class, 'store'])->name('store'); + Route::delete('{pemilik}', [PemilikJaminanController::class, 'destroy'])->name('destroy'); + }); + }); + + Route::resource('debitur', DebitureController::class); + + Route::name('tender.')->prefix('tender')->group(function () { + Route::get('penawaran', [TenderController::class, 'penawaran_index'])->name('penawaran.index'); + Route::get('proses_penawaran', [TenderController::class, 'proses_penawaran_index'])->name('proses_penawaran.index'); + Route::get('penawaran_ulang', [TenderController::class, 'penawaran_ulang_index'])->name('penawaran_ulang.index'); + }); +}); From 2041b3898092b978261da908c24d0160b0ce8972 Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Wed, 18 Sep 2024 11:06:17 +0700 Subject: [PATCH 2/7] Membuat tampilan menu master ijin usaha --- app/Http/Controllers/IjinUsahaController.php | 166 ++++++++++++++++++ app/Http/Controllers/KJPPController.php | 135 ++++++++++++++ app/Http/Controllers/TenderController.php | 47 +++-- app/Http/Requests/IjinUsahaRequest.php | 37 ++++ app/Models/IjinUsaha.php | 24 +++ app/Models/KJPP.php | 32 ++++ ...4_09_18_014746_create_ijin_usaha_table.php | 28 +++ .../2024_09_18_084905_create_kjpp_table.php | 49 ++++++ module.json | 18 +- resources/views/Ijin_usaha/create.blade.php | 50 ++++++ resources/views/Ijin_usaha/index.blade.php | 143 +++++++++++++++ resources/views/kjpp/index.blade.php | 162 +++++++++++++++++ resources/views/penawaran/create.blade.php | 22 +++ resources/views/penawaran/index.blade.php | 7 +- routes/breadcrumbs.php | 20 +++ routes/web.php | 23 +++ 16 files changed, 943 insertions(+), 20 deletions(-) create mode 100644 app/Http/Controllers/IjinUsahaController.php create mode 100644 app/Http/Controllers/KJPPController.php create mode 100644 app/Http/Requests/IjinUsahaRequest.php create mode 100644 app/Models/IjinUsaha.php create mode 100644 app/Models/KJPP.php create mode 100644 database/migrations/2024_09_18_014746_create_ijin_usaha_table.php create mode 100644 database/migrations/2024_09_18_084905_create_kjpp_table.php create mode 100644 resources/views/Ijin_usaha/create.blade.php create mode 100644 resources/views/Ijin_usaha/index.blade.php create mode 100644 resources/views/kjpp/index.blade.php create mode 100644 resources/views/penawaran/create.blade.php diff --git a/app/Http/Controllers/IjinUsahaController.php b/app/Http/Controllers/IjinUsahaController.php new file mode 100644 index 0000000..fb30b5d --- /dev/null +++ b/app/Http/Controllers/IjinUsahaController.php @@ -0,0 +1,166 @@ +validated(); + + if ($validate) { + try { + IjinUsaha::create($validate); + return redirect() + ->route('basicdata.ijin_usaha.index') + ->with('success', 'Ijin Usaha created successfully'); + } catch (Exception $e) { + return redirect() + ->route('basicdata.ijin_usaha.create') + ->with('error', 'Failed to create ijin Usaha'); + } + } + } + + /** + * Show the specified resource. + */ + public function show($id) + { + // return view('lpj::show'); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + $ijin_usaha = IjinUsaha::find($id); + return view('lpj::Ijin_usaha.create', compact('ijin_usaha')); + } + + /** + * Update the specified resource in storage. + */ + public function update(IjinUsahaRequest $request, $id) + { + $validate = $request->validated(); + + if ($validate) { + try { + // Update in database + $ijin_usaha = IjinUsaha::find($id); + $ijin_usaha->update($validate); + return redirect() + ->route('basicdata.ijin_usaha.index') + ->with('success', 'Ijin Usaha updated successfully'); + } catch (Exception $e) { + return redirect() + ->route('basicdata.ijin_usaha.edit', $id) + ->with('error', 'Failed to update ijin$ijin_usaha'); + } + } + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + try { + $ijin_usaha = IjinUsaha::find($id); + $ijin_usaha->delete(); + + echo json_encode(['success' => true, 'message' => 'Ijin Usaha deleted successfully']); + } catch (Exception $e) { + echo json_encode(['success' => false, 'message' => 'Failed to delete Ijin Usaha']); + } + } + + public function dataForDatatables(Request $request) + { + if (is_null($this->user) || !$this->user->can('Ijin_usaha.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + // Retrieve data from the database + $query = IjinUsaha::query(); + + // 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('nama_ijin_usaha', '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->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, + ]); + } +} diff --git a/app/Http/Controllers/KJPPController.php b/app/Http/Controllers/KJPPController.php new file mode 100644 index 0000000..a3b5711 --- /dev/null +++ b/app/Http/Controllers/KJPPController.php @@ -0,0 +1,135 @@ +user) || !$this->user->can('kjpp.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + // Retrieve data from the database + $query = KJPP::query(); + + // 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', 'LIKE', "%$search%"); + $q->orWhere('nama_kjpp', '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->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, + ]); + } + + public function export() + { + // return Excel::download(new CurrencyExport, 'currency.xlsx'); + } +} diff --git a/app/Http/Controllers/TenderController.php b/app/Http/Controllers/TenderController.php index b21766b..d23fd30 100644 --- a/app/Http/Controllers/TenderController.php +++ b/app/Http/Controllers/TenderController.php @@ -6,6 +6,7 @@ use App\Http\Controllers\Controller; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Modules\Lpj\Models\Penawaran; class TenderController extends Controller { @@ -17,36 +18,42 @@ class TenderController extends Controller return view('lpj::penawaran/index'); } - public function proses_penawaran_index() - { - return view('lpj::proses_penawaran/index'); - } - - public function penawaran_ulang_index() - { - return view('lpj::penawaran_ulang/index'); - } - /** * Show the form for creating a new resource. */ - public function create() + public function penawaran_create() { - return view('lpj::create'); + return view('lpj::penawaran/create'); } /** * Store a newly created resource in storage. */ - public function store(Request $request): RedirectResponse + public function penawaran_store(Request $request): RedirectResponse { - // + // $validated = $request->validate([ + // 'nama_kjpp_sebelumnya' => 'required|string', + // 'biaya_kjpp_sebelumnya' => 'required|numeric', + // 'tgl_penilaian_sebelumnya' => 'required|date', + // 'nama_kjpp_1' => 'required|exists:kjpps,id', + // 'nama_kjpp_2' => 'required|exists:kjpps,id', + // 'nama_kjpp_3' => 'required|exists:kjpps,id', + // 'data_jaminan_legalitas' => 'required|string', + // 'tujuan_penilaian' => 'required|in:Penjaminan Hutang,Lelang,Revaluasi Aset', + // 'jenis_laporan' => 'required|in:Short report,Full report', + // 'batas_waktu' => 'required|date', + // 'catatan' => 'nullable|string' + // ]); + + // Penawaran::create($validated); + + // return redirect()->back()->with('success', 'Data berhasil disimpan!'); } /** * Show the specified resource. */ - public function show($id) + public function penawaran_show($id) { return view('lpj::show'); } @@ -74,4 +81,14 @@ class TenderController extends Controller { // } + + public function proses_penawaran_index() + { + return view('lpj::proses_penawaran/index'); + } + + public function penawaran_ulang_index() + { + return view('lpj::penawaran_ulang/index'); + } } diff --git a/app/Http/Requests/IjinUsahaRequest.php b/app/Http/Requests/IjinUsahaRequest.php new file mode 100644 index 0000000..1acbe41 --- /dev/null +++ b/app/Http/Requests/IjinUsahaRequest.php @@ -0,0 +1,37 @@ + 'required|string|not_regex:/^\d+$/|max:255' + ]; + + return $rules; + } + + /** + * Determine if the user is authorized to make this request. + */ + public function authorize(): bool + { + return true; + } + + public function messages(): array + { + return [ + 'nama_ijin_usaha.required' => 'Nama Ijin Usaha harus diisi!', + 'nama_ijin_usaha.not_regex' => 'Nama Ijin Usaha harus berupa huruf!', + 'nama_ijin_usaha.max' => 'Nama Ijin Usaha maksimal 255 huruf!' + ]; + } +} diff --git a/app/Models/IjinUsaha.php b/app/Models/IjinUsaha.php new file mode 100644 index 0000000..f1486fa --- /dev/null +++ b/app/Models/IjinUsaha.php @@ -0,0 +1,24 @@ + 'array', + 'pengalaman' => 'array', + 'kerjasama_sejak' => 'date', // For date fields + ]; + + // protected static function newFactory(): KJPPFactory + // { + // //return KJPPFactory::new(); + // } +} diff --git a/database/migrations/2024_09_18_014746_create_ijin_usaha_table.php b/database/migrations/2024_09_18_014746_create_ijin_usaha_table.php new file mode 100644 index 0000000..9766587 --- /dev/null +++ b/database/migrations/2024_09_18_014746_create_ijin_usaha_table.php @@ -0,0 +1,28 @@ +id(); + $table->string('nama_ijin_usaha'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('ijin_usaha'); + } +}; diff --git a/database/migrations/2024_09_18_084905_create_kjpp_table.php b/database/migrations/2024_09_18_084905_create_kjpp_table.php new file mode 100644 index 0000000..a7e747e --- /dev/null +++ b/database/migrations/2024_09_18_084905_create_kjpp_table.php @@ -0,0 +1,49 @@ +id(); + $table->string('nomor'); + $table->string('nama_kjpp'); + $table->string('kantor_pusat'); + $table->string('nomor_ijin_usaha'); + $table->string('kota'); + $table->date('kerjasama_sejak'); + $table->text('alamat_kantor'); + $table->string('no_tlp_kantor', 15); + $table->string('alamat_email'); + $table->string('nama_pimpinan_kantor'); + $table->string('no_hp_pimpinan', 15); + $table->string('nama_pic_reviewer'); + $table->string('no_pic_reviewer', 15); + $table->string('nama_pic_admin'); + $table->string('no_pic_admin', 15); + $table->string('nama_pic_marketing'); + $table->string('no_pic_marketing', 15); + $table->json('ijin_usaha'); + $table->json('pengalaman'); + $table->string('company_name'); + $table->string('ijin_ijin'); + $table->string('npwp'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('kjpp'); + } +}; diff --git a/module.json b/module.json index dfdeee7..64686ef 100644 --- a/module.json +++ b/module.json @@ -21,7 +21,7 @@ { "title": "Tender", "path": "tender", - "icon": "ki-filled ki-questionnaire-tablet text-lg", + "icon": "ki-filled ki-category text-lg", "classes": "", "attributes": [], "permission": "", @@ -108,6 +108,22 @@ "permission": "", "roles": [] }, + { + "title": "KJPP", + "path": "basicdata.kjpp", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Ijin Usaha", + "path": "basicdata.ijin_usaha", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, { "title": "Mata Uang", "path": "basicdata.currency", diff --git a/resources/views/Ijin_usaha/create.blade.php b/resources/views/Ijin_usaha/create.blade.php new file mode 100644 index 0000000..1bec879 --- /dev/null +++ b/resources/views/Ijin_usaha/create.blade.php @@ -0,0 +1,50 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection + +@section('content') +
+ @if (isset($ijin_usaha->id)) +
+ + @method('PUT') + @else + + @endif + @csrf +
+
+

+ {{ isset($ijin_usaha->id) ? 'Edit' : 'Tambah' }} Ijin Usaha +

+
+ Back +
+
+
+
+ +
+ + @error('nama_ijin_usaha') + {{ $message }} + @enderror +
+
+
+ +
+
+
+
+
+@endsection diff --git a/resources/views/Ijin_usaha/index.blade.php b/resources/views/Ijin_usaha/index.blade.php new file mode 100644 index 0000000..3262d52 --- /dev/null +++ b/resources/views/Ijin_usaha/index.blade.php @@ -0,0 +1,143 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('basicdata.ijin_usaha') }} +@endsection + +@section('content') +
+
+
+

+ Ijin Usaha +

+
+
+ +
+ +
+
+
+
+ + + + + + + + +
+ + + Nama Ijin Usaha + + Action
+
+ +
+
+
+@endsection + +@push('scripts') + + + +@endpush diff --git a/resources/views/kjpp/index.blade.php b/resources/views/kjpp/index.blade.php new file mode 100644 index 0000000..421ece7 --- /dev/null +++ b/resources/views/kjpp/index.blade.php @@ -0,0 +1,162 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('basicdata.kjpp') }} +@endsection + +@section('content') +
+
+
+

+ KJPP +

+ +
+
+
+ + + + + + + + + + +
+ + + Nomor + + + Nama KJPP + + + Kota + + Action
+
+ +
+
+
+@endsection + +@push('scripts') + + + +@endpush diff --git a/resources/views/penawaran/create.blade.php b/resources/views/penawaran/create.blade.php new file mode 100644 index 0000000..08ec062 --- /dev/null +++ b/resources/views/penawaran/create.blade.php @@ -0,0 +1,22 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('tender.penawaran') }} +@endsection + +@section('content') +
+ +
+
+

+ Tambah Data Penawaran +

+ +
+
+ {{-- @include('lpj::debitur.form') --}} +
+
+
+@endsection diff --git a/resources/views/penawaran/index.blade.php b/resources/views/penawaran/index.blade.php index 0357d4b..9158891 100644 --- a/resources/views/penawaran/index.blade.php +++ b/resources/views/penawaran/index.blade.php @@ -7,15 +7,14 @@ @section('content')
-
-
+
+

Data Penawaran

-
- {{-- @include('lpj::debitur.form') --}}
diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index c0bdc36..9e78119 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -188,6 +188,26 @@ Breadcrumbs::for('basicdata.status-permohonan.edit', function (BreadcrumbTrail $ $trail->push('Edit Status Permohonan'); }); +Breadcrumbs::for('basicdata.kjpp', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('KJPP', route('basicdata.kjpp.index')); +}); + +Breadcrumbs::for('basicdata.ijin_usaha', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Ijin Usaha', route('basicdata.ijin_usaha.index')); +}); + +Breadcrumbs::for('basicdata.ijin_usaha.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.ijin_usaha'); + $trail->push('Tambah Ijin Usaha', route('basicdata.ijin_usaha.create')); +}); + +Breadcrumbs::for('basicdata.ijin_usaha.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.ijin_usaha'); + $trail->push('Edit Ijin Usaha'); +}); + Breadcrumbs::for('debitur', function (BreadcrumbTrail $trail) { $trail->push('Debitur', route('debitur.index')); }); diff --git a/routes/web.php b/routes/web.php index fd299bf..965c4a8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -8,11 +8,13 @@ use Modules\Lpj\Http\Controllers\DebitureController; use Modules\Lpj\Http\Controllers\DokumenJaminanController; use Modules\Lpj\Http\Controllers\HubunganPemilikJaminanController; use Modules\Lpj\Http\Controllers\HubunganPenghuniJaminanController; +use Modules\Lpj\Http\Controllers\IjinUsahaController; use Modules\Lpj\Http\Controllers\JenisAsetController; use Modules\Lpj\Http\Controllers\JenisDokumenController; use Modules\Lpj\Http\Controllers\JenisFasilitasKreditController; use Modules\Lpj\Http\Controllers\JenisJaminanController; use Modules\Lpj\Http\Controllers\JenisLegalitasJaminanController; +use Modules\Lpj\Http\Controllers\KJPPController; use Modules\Lpj\Http\Controllers\NilaiPlafondController; use Modules\Lpj\Http\Controllers\PemilikJaminanController; use Modules\Lpj\Http\Controllers\PermohonanController; @@ -152,6 +154,21 @@ Route::middleware(['auth'])->group(function () { Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); }); Route::resource('status-permohonan', StatusPermohonanController::class); + + Route::name('kjpp.')->prefix('kjpp')->group(function () { + Route::get('datatables', [KJPPController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [KJPPController::class, 'export'])->name('export'); + }); + + Route::resource('kjpp', KJPPController::class); + + Route::name('ijin_usaha.')->prefix('ijin_usaha')->group(function () { + Route::get('datatables', [IjinUsahaController::class, 'dataForDatatables']) + ->name('datatables'); + }); + + Route::resource('ijin_usaha', IjinUsahaController::class); }); Route::name('permohonan.')->prefix('permohonan')->group(function () { @@ -201,8 +218,14 @@ Route::middleware(['auth'])->group(function () { Route::resource('debitur', DebitureController::class); Route::name('tender.')->prefix('tender')->group(function () { + // Penawaran Route::get('penawaran', [TenderController::class, 'penawaran_index'])->name('penawaran.index'); + Route::get('penawaran/create', [TenderController::class, 'penawaran_create'])->name('penawaran.create'); + + // Proses Penawaran Route::get('proses_penawaran', [TenderController::class, 'proses_penawaran_index'])->name('proses_penawaran.index'); + + // Penawaran Ulang Route::get('penawaran_ulang', [TenderController::class, 'penawaran_ulang_index'])->name('penawaran_ulang.index'); }); }); From 43e6f8d71edf76b5ecd9530b39444853d69d0b8b Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Wed, 18 Sep 2024 15:53:15 +0700 Subject: [PATCH 3/7] Mengubah tampilan menu master Ijin Usaha --- app/Http/Controllers/KJPPController.php | 14 +- app/Http/Requests/IjinUsahaRequest.php | 17 +- app/Models/Branch.php | 20 +-- app/Models/IjinUsaha.php | 8 +- app/Models/JenisAset.php | 14 +- app/Models/KJPP.php | 12 -- ...4_09_18_014746_create_ijin_usaha_table.php | 10 +- .../2024_09_18_084905_create_kjpp_table.php | 43 ++--- resources/views/Ijin_usaha/create.blade.php | 35 +++- resources/views/Ijin_usaha/index.blade.php | 11 +- .../views/jenis_jaminan/create.blade.php | 151 ++++++++++-------- resources/views/kjpp/create.blade.php | 90 +++++++++++ routes/breadcrumbs.php | 10 ++ 13 files changed, 300 insertions(+), 135 deletions(-) create mode 100644 resources/views/kjpp/create.blade.php diff --git a/app/Http/Controllers/KJPPController.php b/app/Http/Controllers/KJPPController.php index a3b5711..801d6a8 100644 --- a/app/Http/Controllers/KJPPController.php +++ b/app/Http/Controllers/KJPPController.php @@ -3,9 +3,11 @@ namespace Modules\Lpj\Http\Controllers; use App\Http\Controllers\Controller; -use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Modules\Lpj\Models\Branch; +use Modules\Lpj\Models\IjinUsaha; +use Modules\Lpj\Models\JenisAset; use Modules\Lpj\Models\KJPP; class KJPPController extends Controller @@ -24,13 +26,17 @@ class KJPPController extends Controller */ public function create() { - return view('lpj::create'); + $branch = Branch::all(); + $ijin_usaha = IjinUsaha::all(); + $jenis_aset = JenisAset::all(); + + return view('lpj::kjpp.create', compact('branch', 'ijin_usaha', 'jenis_aset')); } /** * Store a newly created resource in storage. */ - public function store(Request $request): RedirectResponse + public function store(Request $request) { // } @@ -54,7 +60,7 @@ class KJPPController extends Controller /** * Update the specified resource in storage. */ - public function update(Request $request, $id): RedirectResponse + public function update(Request $request, $id) { // } diff --git a/app/Http/Requests/IjinUsahaRequest.php b/app/Http/Requests/IjinUsahaRequest.php index 1acbe41..6f5cd80 100644 --- a/app/Http/Requests/IjinUsahaRequest.php +++ b/app/Http/Requests/IjinUsahaRequest.php @@ -12,9 +12,15 @@ class IjinUsahaRequest extends FormRequest public function rules(): array { $rules = [ - 'nama_ijin_usaha' => 'required|string|not_regex:/^\d+$/|max:255' + 'name' => 'required|string|not_regex:/^\d+$/|max:255' ]; + if ($this->method() == 'PUT') { + $rules['code'] = 'required|max:50|unique:ijin_usaha,code,' . $this->id; + } else { + $rules['code'] = 'required|max:50|unique:ijin_usaha,code'; + } + return $rules; } @@ -29,9 +35,12 @@ class IjinUsahaRequest extends FormRequest public function messages(): array { return [ - 'nama_ijin_usaha.required' => 'Nama Ijin Usaha harus diisi!', - 'nama_ijin_usaha.not_regex' => 'Nama Ijin Usaha harus berupa huruf!', - 'nama_ijin_usaha.max' => 'Nama Ijin Usaha maksimal 255 huruf!' + 'code.required' => 'Kode Ijin Usaha harus diisi!', + 'code.max' => 'Kode Ijin Usaha maksimal 255 huruf!', + 'code.unique' => 'Kode Ijin Usaha tidak boleh sama!', + 'name.required' => 'Nama Ijin Usaha harus diisi!', + 'name.not_regex' => 'Nama Ijin Usaha harus berupa huruf!', + 'name.max' => 'Nama Ijin Usaha maksimal 255 huruf!' ]; } } diff --git a/app/Models/Branch.php b/app/Models/Branch.php index 836cca5..834b5cc 100644 --- a/app/Models/Branch.php +++ b/app/Models/Branch.php @@ -1,16 +1,16 @@ hasMany(Debiture::class, 'branch_id', 'id'); - } + return $this->hasMany(Debiture::class, 'branch_id', 'id'); } +} diff --git a/app/Models/IjinUsaha.php b/app/Models/IjinUsaha.php index f1486fa..e2e464a 100644 --- a/app/Models/IjinUsaha.php +++ b/app/Models/IjinUsaha.php @@ -4,7 +4,6 @@ namespace Modules\Lpj\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Factories\HasFactory; -use Modules\Lpj\Database\Factories\IjinUsahaFactory; class IjinUsaha extends Model { @@ -15,10 +14,5 @@ class IjinUsaha extends Model /** * The attributes that are mass assignable. */ - protected $fillable = ['nama_ijin_usaha']; - - // protected static function newFactory(): IjinUsahaFactory - // { - // //return IjinUsahaFactory::new(); - // } + protected $fillable = ['code', 'name']; } diff --git a/app/Models/JenisAset.php b/app/Models/JenisAset.php index 4a3edf8..6d18441 100644 --- a/app/Models/JenisAset.php +++ b/app/Models/JenisAset.php @@ -1,11 +1,11 @@ 'array', - 'pengalaman' => 'array', - 'kerjasama_sejak' => 'date', // For date fields - ]; - - // protected static function newFactory(): KJPPFactory - // { - // //return KJPPFactory::new(); - // } } diff --git a/database/migrations/2024_09_18_014746_create_ijin_usaha_table.php b/database/migrations/2024_09_18_014746_create_ijin_usaha_table.php index 9766587..af9e74f 100644 --- a/database/migrations/2024_09_18_014746_create_ijin_usaha_table.php +++ b/database/migrations/2024_09_18_014746_create_ijin_usaha_table.php @@ -13,8 +13,16 @@ return new class extends Migration { Schema::create('ijin_usaha', function (Blueprint $table) { $table->id(); - $table->string('nama_ijin_usaha'); + $table->string('code')->unique()->index(); + $table->string('name'); + $table->boolean('status')->default(true)->nullable(); + $table->char('authorized_status', 1)->nullable(); + $table->timestamp('authorized_at')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); $table->timestamps(); + $table->softDeletes(); + + $table->unsignedBigInteger('deleted_by')->nullable(); }); } diff --git a/database/migrations/2024_09_18_084905_create_kjpp_table.php b/database/migrations/2024_09_18_084905_create_kjpp_table.php index a7e747e..1a086d7 100644 --- a/database/migrations/2024_09_18_084905_create_kjpp_table.php +++ b/database/migrations/2024_09_18_084905_create_kjpp_table.php @@ -13,28 +13,35 @@ return new class extends Migration { Schema::create('kjpp', function (Blueprint $table) { $table->id(); - $table->string('nomor'); - $table->string('nama_kjpp'); - $table->string('kantor_pusat'); + $table->string('code'); + $table->string('name'); + $table->string('jenis_kantor'); $table->string('nomor_ijin_usaha'); - $table->string('kota'); - $table->date('kerjasama_sejak'); - $table->text('alamat_kantor'); - $table->string('no_tlp_kantor', 15); - $table->string('alamat_email'); - $table->string('nama_pimpinan_kantor'); - $table->string('no_hp_pimpinan', 15); + $table->string('province_code'); + $table->string('city_code'); + $table->string('district_code'); + $table->string('village_code'); + $table->string('address'); + $table->string('postal_code'); + $table->string('nomor_telepon_kantor'); + $table->string('email_kantor'); + $table->string('nomor_hp_pimpinan'); $table->string('nama_pic_reviewer'); - $table->string('no_pic_reviewer', 15); + $table->string('nomor_hp_pic_reviewer'); $table->string('nama_pic_admin'); - $table->string('no_pic_admin', 15); + $table->string('nomor_hp_pic_admin'); $table->string('nama_pic_marketing'); - $table->string('no_pic_marketing', 15); - $table->json('ijin_usaha'); - $table->json('pengalaman'); - $table->string('company_name'); - $table->string('ijin_ijin'); - $table->string('npwp'); + $table->string('nomor_hp_pic_marketing'); + $table->foreignId('ijin_usaha_id')->constrained()->onDelete('cascade'); + $table->foreignId('jenis_aset_id')->constrained()->onDelete('cascade'); + $table->string('attachment'); + $table->boolean('status')->default(true)->nullable(); + $table->char('authorized_status', 1)->nullable(); + $table->timestamp('authorized_at')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + $table->softDeletes(); + + $table->unsignedBigInteger('deleted_by')->nullable(); $table->timestamps(); }); } diff --git a/resources/views/Ijin_usaha/create.blade.php b/resources/views/Ijin_usaha/create.blade.php index 1bec879..507268d 100644 --- a/resources/views/Ijin_usaha/create.blade.php +++ b/resources/views/Ijin_usaha/create.blade.php @@ -25,15 +25,42 @@
+ @if (isset($ijin_usaha->id)) +
+ +
+ + @error('code') + {{ $message }} + @enderror +
+
+ @else +
+ +
+ + @error('code') + {{ $message }} + @enderror +
+
+ @endif
- - @error('nama_ijin_usaha') + + @error('name') {{ $message }} @enderror
diff --git a/resources/views/Ijin_usaha/index.blade.php b/resources/views/Ijin_usaha/index.blade.php index 3262d52..8364f63 100644 --- a/resources/views/Ijin_usaha/index.blade.php +++ b/resources/views/Ijin_usaha/index.blade.php @@ -35,7 +35,11 @@ - + + Kode Ijin Usaha + + + Nama Ijin Usaha @@ -114,7 +118,10 @@ return checkbox.outerHTML.trim(); }, }, - nama_ijin_usaha: { + code: { + title: 'Kode Ijin Usaha', + }, + name: { title: 'Nama Ijin Usaha', }, actions: { diff --git a/resources/views/jenis_jaminan/create.blade.php b/resources/views/jenis_jaminan/create.blade.php index ed04b81..0f9d930 100644 --- a/resources/views/jenis_jaminan/create.blade.php +++ b/resources/views/jenis_jaminan/create.blade.php @@ -6,75 +6,94 @@ @section('content')
- @if(isset($jenisJaminan->id)) + @if (isset($jenisJaminan->id))
@method('PUT') - @else - - @endif - @csrf -
-
-

- {{ isset($jenisJaminan->id) ? 'Edit' : 'Tambah' }} Jenis Jaminan -

-
- Back -
-
-
- @if(isset($jenisJaminan->id)) -
- -
- - @error('code') - {{ $message }} - @enderror -
-
- @endif -
- -
- - @error('name') - {{ $message }} - @enderror -
-
- -
- -
- @foreach($jenisLegalitasJaminan as $row) - - @endforeach -
-
-
- -
-
+ @else + + @endif + @csrf +
+
+

+ {{ isset($jenisJaminan->id) ? 'Edit' : 'Tambah' }} Jenis Jaminan +

+
+ Back +
+
+
+ @if (isset($jenisJaminan->id)) +
+ +
+ + @error('code') + {{ $message }} + @enderror
- +
+ @else +
+ +
+ + @error('code') + {{ $message }} + @enderror +
+
+ @endif +
+ +
+ + @error('name') + {{ $message }} + @enderror +
+
+ +
+ +
+ @foreach ($jenisLegalitasJaminan as $row) + + @endforeach +
+
+
+ +
+
+
+
@endsection diff --git a/resources/views/kjpp/create.blade.php b/resources/views/kjpp/create.blade.php new file mode 100644 index 0000000..3082354 --- /dev/null +++ b/resources/views/kjpp/create.blade.php @@ -0,0 +1,90 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection + +@section('content') +
+ @if (isset($kjpp->id)) +
+ + @method('PUT') + @else + + @endif + @csrf +
+
+

+ {{ isset($kjpp->id) ? 'Edit' : 'Tambah' }} KJPP +

+
+ + Back +
+
+
+
+ +
+ + @error('nomor') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('nama_kjpp') + {{ $message }} + @enderror +
+
+
+ +
+ +
+
+
+ +
+ + @error('nomor_ijin_usaha') + {{ $message }} + @enderror +
+
+
+ +
+
+
+
+
+@endsection diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 9e78119..04ee52d 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -193,6 +193,16 @@ Breadcrumbs::for('basicdata.kjpp', function (BreadcrumbTrail $trail) { $trail->push('KJPP', route('basicdata.kjpp.index')); }); +Breadcrumbs::for('basicdata.kjpp.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.kjpp'); + $trail->push('Tambah KJPP', route('basicdata.kjpp.create')); +}); + +Breadcrumbs::for('basicdata.kjpp.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.kjpp'); + $trail->push('Edit KJPP'); +}); + Breadcrumbs::for('basicdata.ijin_usaha', function (BreadcrumbTrail $trail) { $trail->parent('basicdata'); $trail->push('Ijin Usaha', route('basicdata.ijin_usaha.index')); From d5e13245d4edb2cb6b2c0ee3acae61e5ea2c53ca Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Wed, 18 Sep 2024 16:07:50 +0700 Subject: [PATCH 4/7] Memperbaiki fitur pencarian pada master menu ijin usaha --- app/Http/Controllers/IjinUsahaController.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/IjinUsahaController.php b/app/Http/Controllers/IjinUsahaController.php index fb30b5d..ea0cd95 100644 --- a/app/Http/Controllers/IjinUsahaController.php +++ b/app/Http/Controllers/IjinUsahaController.php @@ -117,7 +117,8 @@ class IjinUsahaController extends Controller if ($request->has('search') && !empty($request->get('search'))) { $search = $request->get('search'); $query->where(function ($q) use ($search) { - $q->where('nama_ijin_usaha', 'LIKE', "%$search%"); + $q->where('code', 'LIKE', "%$search%"); + $q->orWhere('name', 'LIKE', "%$search%"); }); } From 8e73269f7645befe727f91105fdc12c90e8e1642 Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Wed, 18 Sep 2024 17:16:29 +0700 Subject: [PATCH 5/7] menambahkan fitur export to excel di menu master ijin usaha --- app/Exports/IjinUsahaExport.php | 47 +++++++++++++++++++ app/Http/Controllers/IjinUsahaController.php | 7 +++ app/Http/Controllers/KJPPController.php | 28 +++++++++--- app/Http/Requests/KJPPRequest.php | 48 ++++++++++++++++++++ app/Models/Branch.php | 5 ++ app/Models/IjinUsaha.php | 6 +++ app/Models/JenisJaminan.php | 14 ++++-- app/Models/KJPP.php | 18 ++++++++ resources/views/Ijin_usaha/index.blade.php | 2 + resources/views/kjpp/create.blade.php | 37 ++++++--------- resources/views/kjpp/index.blade.php | 18 ++++---- routes/web.php | 1 + 12 files changed, 189 insertions(+), 42 deletions(-) create mode 100644 app/Exports/IjinUsahaExport.php create mode 100644 app/Http/Requests/KJPPRequest.php diff --git a/app/Exports/IjinUsahaExport.php b/app/Exports/IjinUsahaExport.php new file mode 100644 index 0000000..a7d02e4 --- /dev/null +++ b/app/Exports/IjinUsahaExport.php @@ -0,0 +1,47 @@ +id, + $row->code, + $row->name, + $row->created_at + ]; + } + + public function headings(): array + { + return [ + 'ID', + 'Code', + 'Name', + 'Created At' + ]; + } + + public function columnFormats(): array + { + return [ + 'A' => NumberFormat::FORMAT_NUMBER, + 'B' => NumberFormat::FORMAT_NUMBER, + 'E' => NumberFormat::FORMAT_DATE_DATETIME + ]; + } +} diff --git a/app/Http/Controllers/IjinUsahaController.php b/app/Http/Controllers/IjinUsahaController.php index ea0cd95..360d223 100644 --- a/app/Http/Controllers/IjinUsahaController.php +++ b/app/Http/Controllers/IjinUsahaController.php @@ -6,6 +6,8 @@ use App\Http\Controllers\Controller; use Exception; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Maatwebsite\Excel\Facades\Excel; +use Modules\Lpj\Exports\IjinUsahaExport; use Modules\Lpj\Http\Requests\IjinUsahaRequest; use Modules\Lpj\Models\IjinUsaha; @@ -164,4 +166,9 @@ class IjinUsahaController extends Controller 'data' => $data, ]); } + + public function export() + { + return Excel::download(new IjinUsahaExport, 'ijin_usaha.xlsx'); + } } diff --git a/app/Http/Controllers/KJPPController.php b/app/Http/Controllers/KJPPController.php index 801d6a8..d06a80e 100644 --- a/app/Http/Controllers/KJPPController.php +++ b/app/Http/Controllers/KJPPController.php @@ -3,11 +3,13 @@ namespace Modules\Lpj\Http\Controllers; use App\Http\Controllers\Controller; +use Exception; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Modules\Lpj\Http\Requests\KJPPRequest; use Modules\Lpj\Models\Branch; use Modules\Lpj\Models\IjinUsaha; -use Modules\Lpj\Models\JenisAset; +use Modules\Lpj\Models\JenisJaminan; use Modules\Lpj\Models\KJPP; class KJPPController extends Controller @@ -28,7 +30,7 @@ class KJPPController extends Controller { $branch = Branch::all(); $ijin_usaha = IjinUsaha::all(); - $jenis_aset = JenisAset::all(); + $jenis_aset = JenisJaminan::all(); return view('lpj::kjpp.create', compact('branch', 'ijin_usaha', 'jenis_aset')); } @@ -36,9 +38,22 @@ class KJPPController extends Controller /** * Store a newly created resource in storage. */ - public function store(Request $request) + public function store(KJPPRequest $request) { - // + $validate = $request->validated(); + + if ($validate) { + try { + KJPP::create($validate); + return redirect() + ->route('basicdata.kjpp.index') + ->with('success', 'Ijin Usaha created successfully'); + } catch (Exception $e) { + return redirect() + ->route('basicdata.kjpp.create') + ->with('error', 'Failed to create ijin Usaha'); + } + } } /** @@ -86,8 +101,9 @@ class KJPPController extends Controller if ($request->has('search') && !empty($request->get('search'))) { $search = $request->get('search'); $query->where(function ($q) use ($search) { - $q->where('nomor', 'LIKE', "%$search%"); - $q->orWhere('nama_kjpp', 'LIKE', "%$search%"); + $q->where('code', 'LIKE', "%$search%"); + $q->orWhere('name', 'LIKE', "%$search%"); + $q->orWhere('jenis_kantor', 'LIKE', "%$search%"); }); } diff --git a/app/Http/Requests/KJPPRequest.php b/app/Http/Requests/KJPPRequest.php new file mode 100644 index 0000000..faa4b9c --- /dev/null +++ b/app/Http/Requests/KJPPRequest.php @@ -0,0 +1,48 @@ + 'required|string|not_regex:/^\d+$/|max:255', + 'jenis_kantor' => 'required' + ]; + + if ($this->method() == 'PUT') { + $rules['code'] = 'required|max:50|unique:kjpp,code,' . $this->id; + } else { + $rules['code'] = 'required|max:50|unique:kjpp,code'; + } + + return $rules; + } + + /** + * Determine if the user is authorized to make this request. + */ + public function authorize(): bool + { + return true; + } + + public function messages(): array + { + return [ + 'code.required' => 'Kode KJPP harus diisi!', + 'code.max' => 'Kode KJPP maksimal 255 huruf!', + 'code.unique' => 'Kode KJPP tidak boleh sama!', + 'name.required' => 'Nama KJPP harus diisi!', + 'name.not_regex' => 'Nama KJPP harus berupa huruf!', + 'name.max' => 'Nama KJPP maksimal 255 huruf!', + 'jenis_kantor.required' => 'Jenis Kantor harus diisi!' + ]; + } +} diff --git a/app/Models/Branch.php b/app/Models/Branch.php index 834b5cc..4ca5bd9 100644 --- a/app/Models/Branch.php +++ b/app/Models/Branch.php @@ -13,4 +13,9 @@ class Branch extends Base { return $this->hasMany(Debiture::class, 'branch_id', 'id'); } + + public function kjpp() + { + return $this->belongsTo(KJPP::class); + } } diff --git a/app/Models/IjinUsaha.php b/app/Models/IjinUsaha.php index e2e464a..522a183 100644 --- a/app/Models/IjinUsaha.php +++ b/app/Models/IjinUsaha.php @@ -15,4 +15,10 @@ class IjinUsaha extends Model * The attributes that are mass assignable. */ protected $fillable = ['code', 'name']; + + // relasi ke kjpp + public function kjpp() + { + return $this->belongsTo(KJPP::class); + } } diff --git a/app/Models/JenisJaminan.php b/app/Models/JenisJaminan.php index 43ab899..a630686 100644 --- a/app/Models/JenisJaminan.php +++ b/app/Models/JenisJaminan.php @@ -1,9 +1,15 @@ belongsTo(KJPP::class); } +} diff --git a/app/Models/KJPP.php b/app/Models/KJPP.php index 8d35c78..05cad4a 100644 --- a/app/Models/KJPP.php +++ b/app/Models/KJPP.php @@ -17,4 +17,22 @@ class KJPP extends Model * The attributes that are mass assignable. */ protected $guarded = ['id']; + + // relasi ke branch + public function branch() + { + return $this->hasOne(Branch::class, 'jenis_kantor'); + } + + // relasi ke jenis aset + public function jenis_aset() + { + return $this->hasMany(JenisJaminan::class, 'jenis_aset_id'); + } + + // relasi ke ijin usaha + public function ijin_usaha() + { + return $this->hasMany(IjinUsaha::class, 'ijin_usaha_id'); + } } diff --git a/resources/views/Ijin_usaha/index.blade.php b/resources/views/Ijin_usaha/index.blade.php index 8364f63..2d225d5 100644 --- a/resources/views/Ijin_usaha/index.blade.php +++ b/resources/views/Ijin_usaha/index.blade.php @@ -20,6 +20,8 @@
+ Export to Excel + Tambah Ijin Usaha diff --git a/resources/views/kjpp/create.blade.php b/resources/views/kjpp/create.blade.php index 3082354..a7320c8 100644 --- a/resources/views/kjpp/create.blade.php +++ b/resources/views/kjpp/create.blade.php @@ -31,9 +31,9 @@ Nomor KJPP
- - @error('nomor') + + @error('code') {{ $message }} @enderror
@@ -43,37 +43,28 @@ Nama KJPP
- - @error('nama_kjpp') + + @error('name') {{ $message }} @enderror
- +
- + @if (isset($branch)) @foreach ($branch as $branches) - + @endforeach @endif -
-
-
- -
- - @error('nomor_ijin_usaha') + @error('jenis_kantor') {{ $message }} @enderror
diff --git a/resources/views/kjpp/index.blade.php b/resources/views/kjpp/index.blade.php index 421ece7..cd131b7 100644 --- a/resources/views/kjpp/index.blade.php +++ b/resources/views/kjpp/index.blade.php @@ -36,16 +36,16 @@ - - Nomor + + Nomor KJPP - + Nama KJPP - - Kota + + Jenis Kantor / Cabang Action @@ -124,16 +124,16 @@ }, }, nomor: { - title: 'Nomor', + title: 'Nomor KJPP', }, nama_kjpp: { title: 'Nama KJPP', }, - kota: { - title: 'Kota', + jenis_kantor: { + title: 'Jenis Kantor / Cabang', }, actions: { - title: 'Status', + title: 'Action', render: (item, data) => { return `
diff --git a/routes/web.php b/routes/web.php index 965c4a8..bb1bd29 100644 --- a/routes/web.php +++ b/routes/web.php @@ -166,6 +166,7 @@ Route::middleware(['auth'])->group(function () { Route::name('ijin_usaha.')->prefix('ijin_usaha')->group(function () { Route::get('datatables', [IjinUsahaController::class, 'dataForDatatables']) ->name('datatables'); + Route::get('export', [IjinUsahaController::class, 'export'])->name('export'); }); Route::resource('ijin_usaha', IjinUsahaController::class); From 8b4dd34b51cb20ebab2422aa8e025925c194900f Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Tue, 24 Sep 2024 11:51:53 +0700 Subject: [PATCH 6/7] Membuat Fitur Menu KJPP part 1 --- app/Exports/KJPPExport.php | 49 ++ app/Http/Controllers/KJPPController.php | 36 +- app/Http/Requests/KJPPRequest.php | 83 +++- app/Models/KJPP.php | 26 +- .../2024_09_18_084905_create_kjpp_table.php | 5 +- resources/views/kjpp/create.blade.php | 461 +++++++++++++++--- 6 files changed, 575 insertions(+), 85 deletions(-) create mode 100644 app/Exports/KJPPExport.php diff --git a/app/Exports/KJPPExport.php b/app/Exports/KJPPExport.php new file mode 100644 index 0000000..f8026c0 --- /dev/null +++ b/app/Exports/KJPPExport.php @@ -0,0 +1,49 @@ +id, + $row->code, + $row->name, + $row->jenis_kantor, + $row->created_at + ]; + } + + public function headings(): array + { + return [ + 'ID', + 'Code', + 'Name', + 'Jenis Kantor / Cabang', + 'Created At' + ]; + } + + public function columnFormats(): array + { + return [ + 'A' => NumberFormat::FORMAT_NUMBER, + 'B' => NumberFormat::FORMAT_NUMBER, + 'E' => NumberFormat::FORMAT_DATE_DATETIME + ]; + } +} diff --git a/app/Http/Controllers/KJPPController.php b/app/Http/Controllers/KJPPController.php index d06a80e..b854533 100644 --- a/app/Http/Controllers/KJPPController.php +++ b/app/Http/Controllers/KJPPController.php @@ -2,15 +2,21 @@ namespace Modules\Lpj\Http\Controllers; -use App\Http\Controllers\Controller; -use Exception; use Illuminate\Http\Request; -use Illuminate\Http\Response; -use Modules\Lpj\Http\Requests\KJPPRequest; -use Modules\Lpj\Models\Branch; -use Modules\Lpj\Models\IjinUsaha; -use Modules\Lpj\Models\JenisJaminan; use Modules\Lpj\Models\KJPP; +use Illuminate\Http\Response; +use Modules\Lpj\Models\Branch; +use Modules\Location\Models\City; +use Modules\Lpj\Models\IjinUsaha; +use Modules\Lpj\Exports\KJPPExport; +use App\Http\Controllers\Controller; +use Maatwebsite\Excel\Facades\Excel; +use Modules\Location\Models\District; +use Modules\Lpj\Models\JenisJaminan; +use Modules\Location\Models\Province; +use Modules\Location\Models\Village; +use Modules\Lpj\Http\Requests\KJPPRequest; +use Throwable; class KJPPController extends Controller { @@ -31,8 +37,9 @@ class KJPPController extends Controller $branch = Branch::all(); $ijin_usaha = IjinUsaha::all(); $jenis_aset = JenisJaminan::all(); + $provinces = Province::all(); - return view('lpj::kjpp.create', compact('branch', 'ijin_usaha', 'jenis_aset')); + return view('lpj::kjpp.create', compact('branch', 'ijin_usaha', 'jenis_aset', 'provinces')); } /** @@ -44,14 +51,19 @@ class KJPPController extends Controller if ($validate) { try { + $file = $request->file('attachment'); + $filename = time() . '.' . $file->getClientOriginalExtension(); + + $file->storeAs('uploads_pdf', $filename, 'public'); + KJPP::create($validate); return redirect() ->route('basicdata.kjpp.index') ->with('success', 'Ijin Usaha created successfully'); - } catch (Exception $e) { + } catch (Throwable $e) { return redirect() ->route('basicdata.kjpp.create') - ->with('error', 'Failed to create ijin Usaha'); + ->with('error', 'Failed to create ijin Usaha: ' . $e); } } } @@ -75,7 +87,7 @@ class KJPPController extends Controller /** * Update the specified resource in storage. */ - public function update(Request $request, $id) + public function update(KJPP $request, $id) { // } @@ -152,6 +164,6 @@ class KJPPController extends Controller public function export() { - // return Excel::download(new CurrencyExport, 'currency.xlsx'); + return Excel::download(new KJPPExport, 'currency.xlsx'); } } diff --git a/app/Http/Requests/KJPPRequest.php b/app/Http/Requests/KJPPRequest.php index faa4b9c..f8fd822 100644 --- a/app/Http/Requests/KJPPRequest.php +++ b/app/Http/Requests/KJPPRequest.php @@ -3,6 +3,7 @@ namespace Modules\Lpj\Http\Requests; use Illuminate\Foundation\Http\FormRequest; +use daengdeni\LaravelIdGenerator\IdGenerator; class KJPPRequest extends FormRequest { @@ -13,7 +14,27 @@ class KJPPRequest extends FormRequest { $rules = [ 'name' => 'required|string|not_regex:/^\d+$/|max:255', - 'jenis_kantor' => 'required' + 'jenis_kantor' => 'required', + 'nomor_ijin_usaha' => 'required', + 'province_code' => 'required', + 'city_code' => 'required', + 'district_code' => 'required', + 'village_code' => 'required', + 'address' => 'required', + 'postal_code' => 'required|numeric', + 'nomor_telepon_kantor' => 'required|numeric|digits_between:8,15', + 'email_kantor' => 'required|email', + 'nama_pimpinan' => 'required|string|not_regex:/^\d+$/|max:255', + 'nomor_hp_pimpinan' => 'required|numeric|digits_between:10,15', + 'nama_pic_reviewer' => 'required|string|not_regex:/^\d+$/|max:255', + 'nomor_hp_pic_reviewer' => 'required|numeric|digits_between:10,15', + 'nama_pic_admin' => 'required|string|not_regex:/^\d+$/|max:255', + 'nomor_hp_pic_admin' => 'required|numeric|digits_between:10,15', + 'nama_pic_marketing' => 'required|string|not_regex:/^\d+$/|max:255', + 'nomor_hp_pic_marketing' => 'required|numeric|digits_between:10,15', + 'ijin_usaha_id' => 'nullable|exists:ijin_usaha,id', + 'jenis_aset_id' => 'nullable|exists:jenis_jaminan,id', + 'attachment' => 'required|mimes:pdf|max:1024' ]; if ($this->method() == 'PUT') { @@ -33,16 +54,70 @@ class KJPPRequest extends FormRequest return true; } + public function prepareForValidation(): void + { + if ($this->method() == 'POST') { + $this->merge([ + 'code' => IdGenerator::generate( + ['table' => 'ijin_usaha', 'length' => 5, 'prefix' => 'IU', 'field' => 'code'], + ['table' => 'jenis_jaminan', 'length' => 5, 'prefix' => 'JJ', 'field' => 'code'], + ) + ]); + } + + $this->merge([ + 'ijin_usaha_id' => json_encode($this->ijin_usaha_id), + 'jenis_aset_id' => json_encode($this->jenis_aset_id) + ]); + } + public function messages(): array { return [ - 'code.required' => 'Kode KJPP harus diisi!', + 'code.required' => 'Kode KJPP Wajib diisi!', 'code.max' => 'Kode KJPP maksimal 255 huruf!', 'code.unique' => 'Kode KJPP tidak boleh sama!', - 'name.required' => 'Nama KJPP harus diisi!', + 'name.required' => 'Nama KJPP Wajib diisi!', 'name.not_regex' => 'Nama KJPP harus berupa huruf!', 'name.max' => 'Nama KJPP maksimal 255 huruf!', - 'jenis_kantor.required' => 'Jenis Kantor harus diisi!' + 'jenis_kantor.required' => 'Jenis Kantor Wajib diisi!', + 'nomor_ijin_usaha.required' => 'Nomor Ijin Usaha Wajib diisi!', + 'nomor_ijin_usaha.max' => 'Nomor Ijin Usaha maksimal 255 huruf!', + '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!', + '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.digits_between' => 'Nomor Telepon Kantor minimum 8 digit dan maksimum 15 digit!', + 'email_kantor.required' => 'Email Kantor Wajib diisi!', + 'email_kantor.email' => 'Email Kantor tidak valid!', + 'nama_pimpinan.required' => 'Nama Pimpinan Wajib diisi!', + 'nama_pimpinan.not_regex' => 'Nama Pimpinan harus berupa huruf!', + 'nomor_hp_pimpinan.required' => 'Nomor HP Pimpinan Wajib diisi!', + '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!', + 'nama_pic_reviewer.required' => 'Nama PIC Reviewer Wajib diisi!', + '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.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!', + '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.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!', + '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.digits_between' => 'Nomor HP PIC Marketing minimum 10 digit dan maksimum 15 digit!', + 'attachment.required' => 'Attachment Wajib diisi!', + 'attachment.mimes' => 'Attachment harus berformat pdf!', + 'attachment.max' => 'Attachment berukuran maksimum 1 MB!', ]; } } diff --git a/app/Models/KJPP.php b/app/Models/KJPP.php index 05cad4a..e535941 100644 --- a/app/Models/KJPP.php +++ b/app/Models/KJPP.php @@ -16,7 +16,31 @@ class KJPP extends Model /** * The attributes that are mass assignable. */ - protected $guarded = ['id']; + protected $fillable = [ + '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' + ]; // relasi ke branch public function branch() diff --git a/database/migrations/2024_09_18_084905_create_kjpp_table.php b/database/migrations/2024_09_18_084905_create_kjpp_table.php index 1a086d7..8f8ae24 100644 --- a/database/migrations/2024_09_18_084905_create_kjpp_table.php +++ b/database/migrations/2024_09_18_084905_create_kjpp_table.php @@ -25,6 +25,7 @@ return new class extends Migration $table->string('postal_code'); $table->string('nomor_telepon_kantor'); $table->string('email_kantor'); + $table->string('nama_pimpinan'); $table->string('nomor_hp_pimpinan'); $table->string('nama_pic_reviewer'); $table->string('nomor_hp_pic_reviewer'); @@ -32,8 +33,8 @@ return new class extends Migration $table->string('nomor_hp_pic_admin'); $table->string('nama_pic_marketing'); $table->string('nomor_hp_pic_marketing'); - $table->foreignId('ijin_usaha_id')->constrained()->onDelete('cascade'); - $table->foreignId('jenis_aset_id')->constrained()->onDelete('cascade'); + $table->string('ijin_usaha_id')->nullable(); + $table->string('jenis_aset_id')->nullable(); $table->string('attachment'); $table->boolean('status')->default(true)->nullable(); $table->char('authorized_status', 1)->nullable(); diff --git a/resources/views/kjpp/create.blade.php b/resources/views/kjpp/create.blade.php index a7320c8..927857f 100644 --- a/resources/views/kjpp/create.blade.php +++ b/resources/views/kjpp/create.blade.php @@ -6,76 +6,405 @@ @section('content')
- @if (isset($kjpp->id)) -
+ + @if (isset($kjpp->id)) @method('PUT') - @else - - @endif - @csrf -
-
-

- {{ isset($kjpp->id) ? 'Edit' : 'Tambah' }} KJPP -

-
- - Back + @endif + @csrf +
+
+

+ {{ isset($kjpp->id) ? 'Edit' : 'Tambah' }} KJPP +

+
+ + Back +
+
+
+
+ +
+ + @error('code') + {{ $message }} + @enderror +
+ +
+ + @error('name') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('jenis_kantor') + {{ $message }} + @enderror +
+ +
+ + @error('nomor_ijin_usaha') + {{ $message }} + @enderror +
+
+
+ +
+
+
+ + @error('province_code') + {{ $message }} + @enderror +
+
+ + @error('city_code') + {{ $message }} + @enderror +
+
+
+
+ + @error('district_code') + {{ $message }} + @enderror +
+
+ + @error('village_code') + {{ $message }} + @enderror +
+
+ + @error('postal_code') + {{ $message }} + @enderror +
+
+
+ + @error('address') + {{ $message }} + @enderror +
+
+
+
+ +
+ + @error('nomor_telepon_kantor') + {{ $message }} + @enderror +
+ +
+ + @error('email_kantor') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('nama_pimpinan') + {{ $message }} + @enderror +
+ +
+ + @error('nomor_hp_pimpinan') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('nama_pic_reviewer') + {{ $message }} + @enderror +
+ +
+ + @error('nomor_hp_pic_reviewer') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('nama_pic_admin') + {{ $message }} + @enderror +
+ +
+ + @error('nomor_hp_pic_admin') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('nama_pic_marketing') + {{ $message }} + @enderror +
+ +
+ + @error('nomor_hp_pic_marketing') + {{ $message }} + @enderror +
+
+
+ +
+ @foreach ($ijin_usaha as $row) + + @endforeach +
+
+
+ +
+ @foreach ($jenis_aset as $row) + + @endforeach +
+
+
+ +
+ + @error('attachment') + {{ $message }} + @enderror +
+
+
+ +
-
-
- -
- - @error('code') - {{ $message }} - @enderror -
-
-
- -
- - @error('name') - {{ $message }} - @enderror -
-
-
- -
- - @error('jenis_kantor') - {{ $message }} - @enderror -
-
-
- -
-
-
@endsection From 33ba88a2762f8fb72e3e7d3c5651b6163b926858 Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Tue, 24 Sep 2024 17:41:24 +0700 Subject: [PATCH 7/7] Membuat Fitur Menu KJPP part 2 --- app/Http/Controllers/KJPPController.php | 29 +++++++++---------- app/Http/Requests/KJPPRequest.php | 7 ++--- .../2024_09_18_084905_create_kjpp_table.php | 2 +- resources/views/kjpp/create.blade.php | 9 +++--- resources/views/kjpp/index.blade.php | 4 +-- 5 files changed, 24 insertions(+), 27 deletions(-) diff --git a/app/Http/Controllers/KJPPController.php b/app/Http/Controllers/KJPPController.php index b854533..8be9d4d 100644 --- a/app/Http/Controllers/KJPPController.php +++ b/app/Http/Controllers/KJPPController.php @@ -6,17 +6,14 @@ use Illuminate\Http\Request; use Modules\Lpj\Models\KJPP; use Illuminate\Http\Response; use Modules\Lpj\Models\Branch; -use Modules\Location\Models\City; use Modules\Lpj\Models\IjinUsaha; use Modules\Lpj\Exports\KJPPExport; use App\Http\Controllers\Controller; use Maatwebsite\Excel\Facades\Excel; -use Modules\Location\Models\District; use Modules\Lpj\Models\JenisJaminan; use Modules\Location\Models\Province; -use Modules\Location\Models\Village; +use Illuminate\Support\Facades\Storage; use Modules\Lpj\Http\Requests\KJPPRequest; -use Throwable; class KJPPController extends Controller { @@ -49,22 +46,22 @@ class KJPPController extends Controller { $validate = $request->validated(); + if ($validate) { - try { - $file = $request->file('attachment'); - $filename = time() . '.' . $file->getClientOriginalExtension(); + $file = $request->file('attachment'); + $filename = $file ? time() . '.' . $file->getClientOriginalExtension() : 'default.pdf'; + if ($file) { $file->storeAs('uploads_pdf', $filename, 'public'); - - KJPP::create($validate); - return redirect() - ->route('basicdata.kjpp.index') - ->with('success', 'Ijin Usaha created successfully'); - } catch (Throwable $e) { - return redirect() - ->route('basicdata.kjpp.create') - ->with('error', 'Failed to create ijin Usaha: ' . $e); + } else { + Storage::copy('/home/bagi/Downloads/default.pdf', 'public/uploads_pdf/' . $filename); } + + dd($validate); + KJPP::create($validate); + return redirect() + ->route('basicdata.kjpp.index') + ->with('success', 'Ijin Usaha created successfully'); } } diff --git a/app/Http/Requests/KJPPRequest.php b/app/Http/Requests/KJPPRequest.php index f8fd822..b5f4622 100644 --- a/app/Http/Requests/KJPPRequest.php +++ b/app/Http/Requests/KJPPRequest.php @@ -32,9 +32,9 @@ class KJPPRequest extends FormRequest 'nomor_hp_pic_admin' => 'required|numeric|digits_between:10,15', 'nama_pic_marketing' => 'required|string|not_regex:/^\d+$/|max:255', 'nomor_hp_pic_marketing' => 'required|numeric|digits_between:10,15', - 'ijin_usaha_id' => 'nullable|exists:ijin_usaha,id', - 'jenis_aset_id' => 'nullable|exists:jenis_jaminan,id', - 'attachment' => 'required|mimes:pdf|max:1024' + 'ijin_usaha.*' => 'nullable', + 'jenis_jaminan.*' => 'nullable', + 'attachment' => 'nullable|mimes:pdf|max:1024' ]; if ($this->method() == 'PUT') { @@ -115,7 +115,6 @@ class KJPPRequest extends FormRequest '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.digits_between' => 'Nomor HP PIC Marketing minimum 10 digit dan maksimum 15 digit!', - 'attachment.required' => 'Attachment Wajib diisi!', 'attachment.mimes' => 'Attachment harus berformat pdf!', 'attachment.max' => 'Attachment berukuran maksimum 1 MB!', ]; diff --git a/database/migrations/2024_09_18_084905_create_kjpp_table.php b/database/migrations/2024_09_18_084905_create_kjpp_table.php index 8f8ae24..387af1f 100644 --- a/database/migrations/2024_09_18_084905_create_kjpp_table.php +++ b/database/migrations/2024_09_18_084905_create_kjpp_table.php @@ -35,7 +35,7 @@ return new class extends Migration $table->string('nomor_hp_pic_marketing'); $table->string('ijin_usaha_id')->nullable(); $table->string('jenis_aset_id')->nullable(); - $table->string('attachment'); + $table->string('attachment')->nullable(); $table->boolean('status')->default(true)->nullable(); $table->char('authorized_status', 1)->nullable(); $table->timestamp('authorized_at')->nullable(); diff --git a/resources/views/kjpp/create.blade.php b/resources/views/kjpp/create.blade.php index 927857f..78db2c2 100644 --- a/resources/views/kjpp/create.blade.php +++ b/resources/views/kjpp/create.blade.php @@ -13,6 +13,7 @@ @method('PUT') @endif @csrf +

@@ -350,11 +351,11 @@ @if (isset($kjpp->ijin_usaha_id)) code, old('ijin_usaha_id', json_decode($kjpp->ijin_usaha_id, true)))) {{ 'checked' }} @endif - value="{{ $row->code }}" name="ijin_usaha_id[]" /> + value="{{ $row->code }}" name="ijin_usaha[]" /> @else code, old('ijin_usaha_id', []))) {{ 'checked' }} @endif - value="{{ $row->code }}" name="ijin_usaha_id[]" /> + value="{{ $row->code }}" name="ijin_usaha[]" /> @endif {{ $row->name }} @@ -373,11 +374,11 @@ @if (isset($kjpp->jenis_aset_id)) code, old('jenis_aset_id', json_decode($kjpp->jenis_aset_id, true)))) {{ 'checked' }} @endif - value="{{ $row->code }}" name="jenis_aset_id[]" /> + value="{{ $row->code }}" name="jenis_jaminan[]" /> @else code, old('jenis_aset_id', []))) {{ 'checked' }} @endif - value="{{ $row->code }}" name="jenis_aset_id[]" /> + value="{{ $row->code }}" name="jenis_jaminan[]" /> @endif {{ $row->name }} diff --git a/resources/views/kjpp/index.blade.php b/resources/views/kjpp/index.blade.php index cd131b7..40cf230 100644 --- a/resources/views/kjpp/index.blade.php +++ b/resources/views/kjpp/index.blade.php @@ -123,10 +123,10 @@ return checkbox.outerHTML.trim(); }, }, - nomor: { + code: { title: 'Nomor KJPP', }, - nama_kjpp: { + name: { title: 'Nama KJPP', }, jenis_kantor: {