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/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/IjinUsahaController.php b/app/Http/Controllers/IjinUsahaController.php new file mode 100644 index 0000000..360d223 --- /dev/null +++ b/app/Http/Controllers/IjinUsahaController.php @@ -0,0 +1,174 @@ +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('code', 'LIKE', "%$search%"); + $q->orWhere('name', 'LIKE', "%$search%"); + }); + } + + // Apply sorting if provided + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + // Get the total count of records + $totalRecords = $query->count(); + + // Apply pagination if provided + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page'); + $size = $request->get('size'); + $offset = ($page - 1) * $size; // Calculate the offset + + $query->skip($offset)->take($size); + } + + // Get the filtered count of records + $filteredRecords = $query->count(); + + // Get the data for the current page + $data = $query->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 IjinUsahaExport, 'ijin_usaha.xlsx'); + } +} diff --git a/app/Http/Controllers/KJPPController.php b/app/Http/Controllers/KJPPController.php new file mode 100644 index 0000000..8be9d4d --- /dev/null +++ b/app/Http/Controllers/KJPPController.php @@ -0,0 +1,166 @@ +validated(); + + + if ($validate) { + $file = $request->file('attachment'); + $filename = $file ? time() . '.' . $file->getClientOriginalExtension() : 'default.pdf'; + + if ($file) { + $file->storeAs('uploads_pdf', $filename, 'public'); + } 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'); + } + } + + /** + * Show the specified resource. + */ + public function show($id) + { + return view('lpj::show'); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + return view('lpj::edit'); + } + + /** + * Update the specified resource in storage. + */ + public function update(KJPP $request, $id) + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + // + } + + public function dataForDatatables(Request $request) + { + if (is_null($this->user) || !$this->user->can('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('code', 'LIKE', "%$search%"); + $q->orWhere('name', 'LIKE', "%$search%"); + $q->orWhere('jenis_kantor', '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 KJPPExport, 'currency.xlsx'); + } +} diff --git a/app/Http/Controllers/TenderController.php b/app/Http/Controllers/TenderController.php new file mode 100644 index 0000000..d23fd30 --- /dev/null +++ b/app/Http/Controllers/TenderController.php @@ -0,0 +1,94 @@ +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 penawaran_show($id) + { + return view('lpj::show'); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + return view('lpj::edit'); + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, $id): RedirectResponse + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + // + } + + 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..6f5cd80 --- /dev/null +++ b/app/Http/Requests/IjinUsahaRequest.php @@ -0,0 +1,46 @@ + '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; + } + + /** + * Determine if the user is authorized to make this request. + */ + public function authorize(): bool + { + return true; + } + + public function messages(): array + { + return [ + '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/Http/Requests/KJPPRequest.php b/app/Http/Requests/KJPPRequest.php new file mode 100644 index 0000000..b5f4622 --- /dev/null +++ b/app/Http/Requests/KJPPRequest.php @@ -0,0 +1,122 @@ + 'required|string|not_regex:/^\d+$/|max:255', + '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.*' => 'nullable', + 'jenis_jaminan.*' => 'nullable', + 'attachment' => 'nullable|mimes:pdf|max:1024' + ]; + + 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 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 Wajib diisi!', + 'code.max' => 'Kode KJPP maksimal 255 huruf!', + 'code.unique' => 'Kode KJPP tidak boleh sama!', + '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 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.mimes' => 'Attachment harus berformat pdf!', + 'attachment.max' => 'Attachment berukuran maksimum 1 MB!', + ]; + } +} diff --git a/app/Models/Branch.php b/app/Models/Branch.php index 836cca5..4ca5bd9 100644 --- a/app/Models/Branch.php +++ b/app/Models/Branch.php @@ -1,16 +1,21 @@ hasMany(Debiture::class, 'branch_id', 'id'); - } + 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 new file mode 100644 index 0000000..522a183 --- /dev/null +++ b/app/Models/IjinUsaha.php @@ -0,0 +1,24 @@ +belongsTo(KJPP::class); + } +} 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 @@ belongsTo(KJPP::class); } +} diff --git a/app/Models/KJPP.php b/app/Models/KJPP.php new file mode 100644 index 0000000..e535941 --- /dev/null +++ b/app/Models/KJPP.php @@ -0,0 +1,62 @@ +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/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..af9e74f --- /dev/null +++ b/database/migrations/2024_09_18_014746_create_ijin_usaha_table.php @@ -0,0 +1,36 @@ +id(); + $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(); + }); + } + + /** + * 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..387af1f --- /dev/null +++ b/database/migrations/2024_09_18_084905_create_kjpp_table.php @@ -0,0 +1,57 @@ +id(); + $table->string('code'); + $table->string('name'); + $table->string('jenis_kantor'); + $table->string('nomor_ijin_usaha'); + $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('nama_pimpinan'); + $table->string('nomor_hp_pimpinan'); + $table->string('nama_pic_reviewer'); + $table->string('nomor_hp_pic_reviewer'); + $table->string('nama_pic_admin'); + $table->string('nomor_hp_pic_admin'); + $table->string('nama_pic_marketing'); + $table->string('nomor_hp_pic_marketing'); + $table->string('ijin_usaha_id')->nullable(); + $table->string('jenis_aset_id')->nullable(); + $table->string('attachment')->nullable(); + $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(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('kjpp'); + } +}; diff --git a/module.json b/module.json index ac61330..9141313 100644 --- a/module.json +++ b/module.json @@ -19,8 +19,44 @@ "attributes": [], "permission": "", "roles": [ - "Administrator" - + "administrator" + ] + }, + { + "title": "Tender", + "path": "tender", + "icon": "ki-filled ki-category text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator" + ], + "sub": [ + { + "title": "Data Penawaran", + "path": "tender.penawaran", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Data Proses Penawaran", + "path": "tender.proses_penawaran", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Data Penawaran Ulang", + "path": "tender.penawaran_ulang", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + } ] }, { @@ -31,7 +67,7 @@ "attributes": [], "permission": "", "roles": [ - "Administrator" + "administrator" ] }, { @@ -42,7 +78,7 @@ "attributes": [], "permission": "", "roles": [ - "Administrator" + "administrator" ] }, { @@ -98,7 +134,7 @@ "attributes": [], "permission": "", "roles": [ - "Administrator" + "administrator" ] } ], @@ -233,8 +269,23 @@ "attributes": [], "permission": "", "roles": [] + }, + { + "title": "KJPP", + "path": "basicdata.kjpp", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Ijin Usaha", + "path": "basicdata.ijin_usaha", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] } - ] } ], diff --git a/resources/views/Ijin_usaha/create.blade.php b/resources/views/Ijin_usaha/create.blade.php new file mode 100644 index 0000000..507268d --- /dev/null +++ b/resources/views/Ijin_usaha/create.blade.php @@ -0,0 +1,77 @@ +@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 +
+
+
+ @if (isset($ijin_usaha->id)) +
+ +
+ + @error('code') + {{ $message }} + @enderror +
+
+ @else +
+ +
+ + @error('code') + {{ $message }} + @enderror +
+
+ @endif +
+ +
+ + @error('name') + {{ $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..2d225d5 --- /dev/null +++ b/resources/views/Ijin_usaha/index.blade.php @@ -0,0 +1,152 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('basicdata.ijin_usaha') }} +@endsection + +@section('content') +
+
+
+

+ Ijin Usaha +

+ +
+
+
+ + + + + + + + + +
+ + + Kode Ijin Usaha + + + Nama Ijin Usaha + + Action
+
+ +
+
+
+@endsection + +@push('scripts') + + + +@endpush 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..78db2c2 --- /dev/null +++ b/resources/views/kjpp/create.blade.php @@ -0,0 +1,411 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection + +@section('content') +
+
+ @if (isset($kjpp->id)) + + @method('PUT') + @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 +
+
+
+ +
+
+
+
+
+@endsection diff --git a/resources/views/kjpp/index.blade.php b/resources/views/kjpp/index.blade.php new file mode 100644 index 0000000..40cf230 --- /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 KJPP + + + Nama KJPP + + + Jenis Kantor / Cabang + + 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 new file mode 100644 index 0000000..9158891 --- /dev/null +++ b/resources/views/penawaran/index.blade.php @@ -0,0 +1,21 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('tender.penawaran') }} +@endsection + +@section('content') +
+ +
+
+

+ Data Penawaran +

+
+
+
+
+
+@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 8911635..9b0a5a9 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -188,6 +188,36 @@ $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.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')); + }); + + 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')); }); @@ -294,7 +324,6 @@ $trail->push('Edit Jenis Penilaian'); }); - Breadcrumbs::for('penilaian', function (BreadcrumbTrail $trail) { $trail->push('Penilaian', route('penilaian.index')); }); @@ -313,7 +342,6 @@ $trail->push('Detail Permohonan'); }); - Breadcrumbs::for('activity', function (BreadcrumbTrail $trail) { $trail->push('Activity', route('activity.index')); }); @@ -323,6 +351,25 @@ $trail->push('Activity activity'); }); + 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')); + }); + Breadcrumbs::for('surveyor', function (BreadcrumbTrail $trail) { $trail->push('Surveyor', route('surveyor.index')); }); diff --git a/routes/web.php b/routes/web.php index afca060..f25095e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,29 +1,30 @@ group(function () { }); 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('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('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' => [ @@ -204,18 +204,151 @@ Route::middleware(['auth'])->group(function () { Route::get('export', [JenisPenilaianController::class, 'export'])->name('export'); }); - Route::resource('jenis-penilaian', JenisPenilaianController::class, [ - 'names' => [ - 'index' => 'jenis-penilaian.index', - 'show' => 'jenis-penilaian.show', - 'create' => 'jenis-penilaian.create', - 'store' => 'jenis-penilaian.store', - 'edit' => 'jenis-penilaian.edit', - 'update' => 'jenis-penilaian.update', - 'destroy' => 'jenis-penilaian.destroy', - ], - ]); - }); + Route::resource('jenis-penilaian', JenisPenilaianController::class, [ + 'names' => [ + 'index' => 'jenis-penilaian.index', + 'show' => 'jenis-penilaian.show', + 'create' => 'jenis-penilaian.create', + 'store' => 'jenis-penilaian.store', + 'edit' => 'jenis-penilaian.edit', + 'update' => 'jenis-penilaian.update', + 'destroy' => 'jenis-penilaian.destroy', + ], + ]); + + 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('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('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('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::get('export', [IjinUsahaController::class, 'export'])->name('export'); + }); + + Route::resource('ijin_usaha', IjinUsahaController::class); + }); + + Route::resource('debitur', DebitureController::class); + + Route::name('penilaian.')->prefix('penilaian')->group(function () { + Route::get('restore/{id}', [PenilaianController::class, 'restore'])->name('restore'); + Route::get('datatables', [PenilaianController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [PenilaianController::class, 'export'])->name('export'); + Route::get('/getUserTeams/{id}', [PenilaianController::class, 'getUserTeams']); + + Route::get('/', [PenilaianController::class, 'index'])->name('index'); + Route::get('{id}/assignment', [PenilaianController::class, 'assignment'])->name('assignment'); + Route::put('{id}', [PenilaianController::class, 'update'])->name('update'); + Route::put('revisi/{nomor_registrasi}', [PenilaianController::class, 'revisi'])->name('revisi'); + Route::post('create', [PenilaianController::class, 'create'])->name('create'); + Route::post('store', [PenilaianController::class, 'store'])->name('store'); + }); + + + Route::name('activity.')->prefix('activity')->group(function () { + Route::get('restore/{id}', [ActivityController::class, 'restore'])->name('restore'); + Route::get('datatables', [ActivityController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [ActivityController::class, 'export'])->name('export'); + Route::get('/', [ActivityController::class, 'index'])->name('index'); + + Route::get('/{id}/show', [ActivityController::class, 'show'])->name('show'); + Route::get('download/{id}', [ActivityController::class, 'download'])->name('download'); + }); Route::name('permohonan.')->prefix('permohonan')->group(function () { Route::get('{id}/create', [PermohonanController::class, 'createPermohonan'])->name('create.debitur'); @@ -228,11 +361,15 @@ Route::middleware(['auth'])->group(function () { 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::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'); @@ -263,39 +400,19 @@ Route::middleware(['auth'])->group(function () { Route::resource('debitur', DebitureController::class); - Route::name('penilaian.')->prefix('penilaian')->group(function () { - Route::get('restore/{id}', [PenilaianController::class, 'restore'])->name('restore'); - Route::get('datatables', [PenilaianController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [PenilaianController::class, 'export'])->name('export'); - Route::get('/getUserTeams/{id}', [PenilaianController::class, 'getUserTeams']); + 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'); - Route::get('/', [PenilaianController::class, 'index'])->name('index'); - Route::get('{id}/assignment', [PenilaianController::class, 'assignment'])->name('assignment'); - Route::put('{id}', [PenilaianController::class, 'update'])->name('update'); - Route::put('revisi/{nomor_registrasi}', [PenilaianController::class, 'revisi'])->name('revisi'); - Route::post('create', [PenilaianController::class, 'create'])->name('create'); - Route::post('store', [PenilaianController::class, 'store'])->name('store'); + // 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', + ); + }); }); - - - Route::name('activity.')->prefix('activity')->group(function () { - Route::get('restore/{id}', [ActivityController::class, 'restore'])->name('restore'); - Route::get('datatables', [ActivityController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [ActivityController::class, 'export'])->name('export'); - Route::get('/', [ActivityController::class, 'index'])->name('index'); - - Route::get('/{id}/show', [ActivityController::class, 'show'])->name('show'); - Route::get('download/{id}', [ActivityController::class, 'download'])->name('download'); - }); - - Route::name('surveyor.')->prefix('surveyor')->group(function () { - Route::get('restore/{id}', [SurveyorController::class, 'restore'])->name('restore'); - Route::get('datatables', [SurveyorController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [SurveyorController::class, 'export'])->name('export'); - Route::get('/', [SurveyorController::class, 'index'])->name('index'); - - Route::get('/{id}/show', [SurveyorController::class, 'show'])->name('show'); - Route::get('download/{id}', [SurveyorController::class, 'download'])->name('download'); - }); -});