tambah fungsi add fasilitas

This commit is contained in:
KhatamNugraha
2023-08-10 11:25:03 +07:00
parent 677bb83b5b
commit 1b2c2557aa
14 changed files with 1095 additions and 47 deletions

View File

@ -8,9 +8,13 @@
use Illuminate\Support\Facades\Auth;
use Modules\KonfirmasiBank\DataTables\ViewAccountDataTable;
use Modules\KonfirmasiBank\Entities\ViewAccount;
use Modules\KonfirmasiBank\Entities\LimitReference;
use Modules\KonfirmasiBank\Entities\Fasilitas;
use Dompdf\Dompdf;
use Carbon\Carbon;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Validator;
use Modules\KonfirmasiBank\Http\Requests\Fasilitas\StoreFasilitasRequest;
class KonfirmasiBankController extends Controller
{
public $user;
@ -25,20 +29,6 @@
addVendor('chained-select');
}
/**
* Display a listing of the resource.
*/
// public function index(ViewAccountDataTable $dataTable)
// {
// if (is_null($this->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.']);
}
}
}

View File

@ -0,0 +1,71 @@
<?php
namespace Modules\KonfirmasiBank\Http\Requests\Fasilitas;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Validation\ValidationException;
use Illuminate\Validation\Validator;
use Modules\KonfirmasiBank\Http\Requests\MasterRequest;
use Symfony\Component\HttpFoundation\JsonResponse;
class StoreFasilitasRequest extends MasterRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize()
: bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
*/
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));
}
}

View File

@ -0,0 +1,71 @@
<?php
namespace Modules\KonfirmasiBank\Http\Requests\Fasilitas;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Validation\ValidationException;
use Illuminate\Validation\Validator;
use Modules\KonfirmasiBank\Http\Requests\MasterRequest;
use Symfony\Component\HttpFoundation\JsonResponse;
class UpdateFasilitasRequest extends MasterRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize()
: bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
*/
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));
}
}

View File

@ -0,0 +1,19 @@
<?php
namespace Modules\KonfirmasiBank\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class MasterRequest extends FormRequest
{
protected function prepareForValidation()
{
$status = 0;
if ($this->status == "on") {
$status = 1;
}
$this->merge([
'status' => $status
]);
}
}