diff --git a/DataTables/FasilitasDataTable.php b/DataTables/FasilitasDataTable.php new file mode 100644 index 0000000..9ff4fc8 --- /dev/null +++ b/DataTables/FasilitasDataTable.php @@ -0,0 +1,103 @@ +eloquent($query) + ->filter(function ($query) { + $search = request()->get('search'); + if ($search['value'] !== "") { + $query->where('name', 'like', "%" . $search['value'] . "%"); + } + }) + ->addIndexColumn() + ->addColumn('status', function ($model) { + return view('master::gender._status', compact('model')); + }) + ->addColumn('action', function ($model) { + return view('master::gender._action', compact('model')); + }) + ->rawColumns(['status','action']); + } + + /** + * Get query source of dataTable. + * + * @param \Modules\Gender\Entities\Gender $model + * + * @return \Illuminate\Database\Eloquent\Builder + */ + public function query(Gender $model) + { + return $model->newQuery(); + } + + /** + * Optional method if you want to use html builder. + * + * @return \Yajra\DataTables\Html\Builder + */ + public function html() + { + return $this->builder() + ->setTableId('master-gender-table') + ->columns($this->getColumns()) + ->minifiedAjax() + ->orderBy(1, 'asc') + ->stateSave(false) + ->responsive() + ->autoWidth(false) + ->parameters([ + 'scrollX' => false, + 'drawCallback' => 'function() { KTMenu.createInstances(); }', + ]) + ->addTableClass('align-middle table-row-dashed fs-6 gy-5'); + } + + /** + * Get columns. + * + * @return array + */ + protected function getColumns() + { + return [ + Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false), + Column::make('name')->title(__('Name')), + Column::computed('status')->title(__('Status'))->width(50)->addClass('text-center')->exportable(false), + Column::computed('action') + ->exportable(false) + ->printable(false) + ->width(100) + ->addClass('text-center') + ->responsivePriority(-1), + ]; + } + + /** + * Get filename for export. + * + * @return string + */ + protected function filename() + : string + { + return 'Gender_' . date('YmdHis'); + } + } \ No newline at end of file diff --git a/Database/Migrations/2023_08_04_062326_fasilitas.php b/Database/Migrations/2023_08_04_062326_fasilitas.php new file mode 100644 index 0000000..ab7164e --- /dev/null +++ b/Database/Migrations/2023_08_04_062326_fasilitas.php @@ -0,0 +1,47 @@ +id(); + $table->string('nomor_rekening'); + $table->string('jenis_fasilitas'); + $table->string('saldo'); + $table->string('start_date'); + $table->string('due_date'); + $table->string('jangka_waktu'); + $table->string('fixed_rate'); + $table->string('keterangan'); + $table->string('status', 1)->default('1'); + $table->timestamps(); + $table->softDeletes(); + $table->unsignedBigInteger("created_by")->nullable(); + $table->unsignedBigInteger("updated_by")->nullable(); + $table->unsignedBigInteger("deleted_by")->nullable(); + }); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('fasilitas'); + } +}; \ No newline at end of file diff --git a/Entities/Fasilitas.php b/Entities/Fasilitas.php new file mode 100644 index 0000000..7c9eca0 --- /dev/null +++ b/Entities/Fasilitas.php @@ -0,0 +1,33 @@ +user) || !$this->user->can('konfirmasibank.read')) { - // abort(403, 'Sorry !! You are Unauthorized to view any master data !'); - // } - - // return $dataTable->render('konfirmasibank::index'); - // } - public function index(Request $request) { $data = []; @@ -50,10 +40,10 @@ $currentYear = $today->format("Y"); // Menambahkan 5 tahun ke tanggal saat ini - $futureYear = $today->subYear(3)->format('Y'); + $pastYear = $today->subYear(3)->format('Y'); $data['currentYear'] = $currentYear; - $data['pastYear'] = $futureYear; + $data['pastYear'] = $pastYear; // dd($data); return view('konfirmasibank::pages.index',compact('data')); @@ -72,7 +62,7 @@ $data[$key]['WORKING_BALANCE'] = $account->WORKING_BALANCE; $data[$key]['PRODUCT'] = $account->PRODUCT; $data[$key]['CURRENCY'] = $account->CURRENCY; - $data[$key]['MATURITY_DATE'] = $account->MATURITY_DATE; + $data[$key]['MATURITY_DATE'] = $account->MATURITY_DATE ?? '-'; } return json_encode($data); } @@ -174,10 +164,176 @@ // Keluarkan file PDF ke browser $pdf->stream('"Konfirmasi_bank_"'.$ListPinjaman[0]->SHORT_NAME.'"'. $formattedDate.'".pdf"'); - // $pdf->render(); - // return $pdf->stream('Konfirmasi_bank_"'.$ListPinjaman[0]->SHORT_NAME.'"'. $formattedDate.'""'); + } + + public function addFasilitas(Request $request){ + + if (is_null($this->user) || !$this->user->can('konfirmasibank.report')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); + } + + $data = []; + $fasilitas = Fasilitas::where('status', 1)->where('created_by',$this->user->id)->paginate(10); + + $limitReference = LimitReference::all(); + $data['fasilitas'] = $fasilitas; + $data['limitReference'] = $limitReference; + + return view('konfirmasibank::pages.index_fasilitas',compact('data')); } + + public function postFasilitas(Request $request){ + + if (is_null($this->user) || !$this->user->can('konfirmasibank.create')) { + abort(403, 'Sorry !! You are Unauthorized to create any konfirmasibank.create !'); + } + + $validated = $request->validate([ + 'nomor_rekening' => 'required|string|max:10|unique:fasilitas,nomor_rekening', + 'jenis_fasilitas' => 'required|string', + 'saldo' => 'required|string', + 'start_date' => 'required|string', + 'due_date' => 'required|string', + 'jangka_waktu' => 'required|string', + 'fixed_rate' => 'required|string' + ]); + + if ($validated) { + try { + // Create New User + $fasilitas = new Fasilitas(); + $fasilitas->nomor_rekening = $request->nomor_rekening; + $fasilitas->jenis_fasilitas = $request->jenis_fasilitas; + $fasilitas->saldo = $request->saldo; + $fasilitas->start_date = $request->start_date; + $fasilitas->due_date = $request->due_date; + $fasilitas->jangka_waktu = $request->jangka_waktu; + $fasilitas->fixed_rate = $request->fixed_rate; + $fasilitas->keterangan = $request->keterangan; + + $fasilitas->save(); + return redirect()->route('konfirmasibank.addFasilitas')->with('success', 'Data berhasil ditambahkan'); + + } catch (Exception $e) { + return json_encode([ + 'status' => 'error', + 'message' => $e->getMessage() + ]); + } + } + + return false; + + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * + * @return Response + */ + public function editFasilitas(Request $request) + { + + if (is_null($this->user) || !$this->user->can('konfirmasibank.update')) { + abort(403, 'Sorry !! You are Unauthorized to edit any role !'); + } + + $fasilitas = Fasilitas::find($request->id); + + return json_encode( $fasilitas); + } + + /** + * Update the specified resource in storage. + * + * @param Request $request + * @param int $id + * + * @return Response + */ + public function updateFasilitas(Request $request) + { + + if (is_null($this->user) || !$this->user->can('konfirmasibank.update')) { + abort(403, 'Sorry !! You are Unauthorized to edit any role !'); + } + + $today = Carbon::now(); + // Menambahkan 1 tahun ke tanggal saat ini + // $currentYear = $today->format("YYYY-MM-DD"); + + // Validation Data\ + $validator = Validator::make($request->all(), [ + 'nomor_rekening' => 'required|string|max:10|unique:fasilitas,nomor_rekening', + 'jenis_fasilitas' => 'required|string', + 'saldo' => 'required|string', + 'start_date' => 'required|string', + 'due_date' => 'required|string', + 'jangka_waktu' => 'required|string', + 'fixed_rate' => 'required|string' + // Other validation rules + ]); + + if ($validator->fails()) { + return response()->json(['errors' => $validator->errors()], 422); // Return validation errors as JSON + } + + + if ($validator) { + try { + $fasilitas = Fasilitas::findOrFail($request->id); + $fasilitas->nomor_rekening = $request->nomor_rekening; + $fasilitas->jenis_fasilitas = $request->jenis_fasilitas; + $fasilitas->saldo = $request->saldo; + $fasilitas->start_date = $request->start_date; + $fasilitas->due_date = $request->due_date; + $fasilitas->jangka_waktu = $request->jangka_waktu; + $fasilitas->fixed_rate = $request->fixed_rate; + $fasilitas->keterangan = $request->keterangan; + $fasilitas->updated_at = $today; + $fasilitas->save(); + + echo json_encode(['status' => 'success', 'message' => ' fasilitas updated successfully.']); + + } catch (Exception $e) { + echo json_encode(['status' => 'error', 'message' => ' fasilitas updated failed.']); + } + + return; + + } + echo json_encode(['status' => 'error', 'message' => ' fasilitas updated failed.']); + } + + + /** + * Remove the specified resource from storage. + * + * @param int $id + * + * @return Renderable + */ + public function destroyFasilitas(Request $request) + { + if (is_null($this->user) || !$this->user->can('konfirmasibank.delete')) { + abort(403, 'Sorry !! You are Unauthorized to delete any konfirmasibank module !'); + } + + $fasilitas = Fasilitas::findOrFail($request->id); + + try { + $fasilitas->status = 0; + $fasilitas->save(); + echo json_encode(['status' => 'success', 'message' => ' fasilitas deleted successfully.']); + } catch (Exception $e) { + echo json_encode(['status' => 'error', 'message' => ' fasilitas deleted failed.']); + } + } + + } \ No newline at end of file diff --git a/Http/Requests/Fasilitas/StoreFasilitasRequest.php b/Http/Requests/Fasilitas/StoreFasilitasRequest.php new file mode 100644 index 0000000..894709c --- /dev/null +++ b/Http/Requests/Fasilitas/StoreFasilitasRequest.php @@ -0,0 +1,71 @@ + + */ + public function rules() + : array + { + return [ + 'nomor_rekening' => 'required|string|max:10|unique:fasilitas,nomor_rekening', + 'jenis_fasilitas' => 'required|string', + 'saldo' => 'required|string', + 'start_date' => 'required|string', + 'due_date' => 'required|string', + 'jangka_waktu' => 'required|string', + 'fixed_rate' => 'required|string' + ]; + } + + /** + * Configure the validator instance. + */ + public function withValidator(Validator $validator) + : void + { + $validator->after(function (Validator $validator) { + if ($validator->errors()->any()) { + $errors = json_decode($validator->errors()->toJson(), true); + + foreach ($errors as $key => $value) { + flash($value[0]); + } + return redirect()->route('konfirmasibank.addFasilitas')->with('error', 'Fasilitas created failed.'); + } + + }); + } + + protected function failedValidation(Validator|\Illuminate\Contracts\Validation\Validator $validator) + : JsonResponse + { + $errors = (new ValidationException($validator))->errors(); + + throw new HttpResponseException(response()->json([ + 'success' => false, + 'errors' => $errors, + 'messages' => 'Fasilitas created failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } + } \ No newline at end of file diff --git a/Http/Requests/Fasilitas/UpdateFasilitasRequest.php b/Http/Requests/Fasilitas/UpdateFasilitasRequest.php new file mode 100644 index 0000000..eacfc9a --- /dev/null +++ b/Http/Requests/Fasilitas/UpdateFasilitasRequest.php @@ -0,0 +1,71 @@ + + */ + public function rules() + : array + { + return [ + 'nomor_rekening' => 'required|string|max:10|unique:fasilitas,nomor_rekening', + 'jenis_fasilitas' => 'required|string', + 'saldo' => 'required|string', + 'start_date' => 'required|string', + 'due_date' => 'required|string', + 'jangka_waktu' => 'required|string', + 'fixed_rate' => 'required|string' + ]; + } + + /** + * Configure the validator instance. + */ + public function withValidator(Validator $validator) + : void + { + $validator->after(function (Validator $validator) { + if ($validator->errors()->any()) { + $errors = json_decode($validator->errors()->toJson(), true); + + foreach ($errors as $key => $value) { + flash($value[0]); + } + return redirect()->route('konfirmasibank.addFasilitas')->with('error', 'Fasilitas created failed.'); + } + + }); + } + + protected function failedValidation(Validator|\Illuminate\Contracts\Validation\Validator $validator) + : JsonResponse + { + $errors = (new ValidationException($validator))->errors(); + + throw new HttpResponseException(response()->json([ + 'success' => false, + 'errors' => $errors, + 'messages' => 'Fasilitas created failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } + } \ No newline at end of file diff --git a/Http/Requests/MasterRequest.php b/Http/Requests/MasterRequest.php new file mode 100644 index 0000000..a565c29 --- /dev/null +++ b/Http/Requests/MasterRequest.php @@ -0,0 +1,19 @@ +status == "on") { + $status = 1; + } + $this->merge([ + 'status' => $status + ]); + } + } \ No newline at end of file diff --git a/Resources/views/pages/dynamic_table.blade.php b/Resources/views/pages/dynamic_table.blade.php new file mode 100644 index 0000000..6236f38 --- /dev/null +++ b/Resources/views/pages/dynamic_table.blade.php @@ -0,0 +1,15 @@ +
No | +No Rekening | +Jenis Rekening | +Saldo | +Start Date | +Due Date | +Fixed Rate | +Keterangan | +Aksi | +|
---|---|---|---|---|---|---|---|---|---|
{{($no++ )}} | +{{$item['nomor_rekening']}} | +{{$item['jenis_fasilitas']}} | +{{$item['saldo']}} | +{{$item['start_date']}} | +{{$item['due_date']}} | +{{$item['fixed_rate']}} | +{{$item['keterangan']}} | ++ {!!getIcon("pencil", "fs-1 text-warning","duotune") !!} + {!! getIcon("trash", "fs-1 text-danger","duotune") !!} + | +|
Tidak Ada Data Yang Ditampilkan | +