menerapkan generate code system di feature Jenis Fasilitas Kredit

This commit is contained in:
Andy Chaerudin
2024-08-22 20:40:24 +07:00
committed by rahmatrafli1
parent 5a31258bac
commit 2f3110ba5d
6 changed files with 146 additions and 50 deletions

View File

@@ -9,9 +9,11 @@
use Modules\Lpj\Exports\JenisFasilitasKreditExport;
use Modules\Lpj\Http\Requests\JenisFasilitasKreditRequest;
use Modules\Lpj\Models\JenisFasilitasKredit;
use Modules\Lpj\Http\Library\LpjHelpers;
class JenisFasilitasKreditController extends Controller
{
use LpjHelpers; // <---- Using the LpjHelpers Trait
public $user;
public function index()
@@ -26,11 +28,18 @@
if ($validate) {
try {
// Save to database
// andy add
$lastNumberCodeJFK = LpjHelpers::onLastCodeJFK();
$validate['name'] =strtoupper($request->name);
$validate['code'] =$lastNumberCodeJFK;
// andy add
JenisFasilitasKredit::create($validate);
return redirect()
->route('basicdata.jenis-fasilitas-kredit.index')
->with('success', 'Jenis Fasilitas Kredit created successfully');
} catch (Exception $e) {
} catch (Exception $e) {dd($e);
return redirect()
->route('basicdata.jenis-fasilitas-kredit.create')
->with('error', 'Failed to create jenis fasilitas kredit');
@@ -57,11 +66,16 @@
try {
// Update in database
$jenisFasilitasKredit = JenisFasilitasKredit::find($id);
// andy add
$validate['name'] =strtoupper($request->name);
// andy add
$jenisFasilitasKredit->update($validate);
return redirect()
->route('basicdata.jenis-fasilitas-kredit.index')
->with('success', 'Jenis Fasilitas Kredit updated successfully');
} catch (Exception $e) {
} catch (Exception $e) {dd($e);
return redirect()
->route('basicdata.jenis-fasilitas-kredit.edit', $id)
->with('error', 'Failed to update jenis fasilitas kredit');

View File

@@ -0,0 +1,27 @@
<?php
namespace Modules\Lpj\Http\Library;
use Modules\Lpj\Models\JenisFasilitasKredit;
use Illuminate\Support\Facades\DB;
trait LpjHelpers
{
public static function onLastCodeJFK(): string
{
// max(code)
$noUrutAkhir2 = JenisFasilitasKredit::withTrashed()->max('code');
$noUrutAkhir=sprintf("%06s", 1);
$noUrutAwal = 'JFK';
$noUrutAkhirString = $noUrutAkhir;
if($noUrutAkhir2){
$noUrutAkhir = substr($noUrutAkhir2, 3, 6);
// $noUrutAwal = substr($noUrutAkhir2, 0, 3);
$noUrutAkhirString = sprintf("%06s", abs($noUrutAkhir + 1));
}
return $noUrutAwal . $noUrutAkhirString;
}
}

View File

@@ -13,14 +13,16 @@
: array
{
$rules = [
'name' => 'required|max:255',
'name' => 'required|max:255|unique:jenis_fasilitas_kredit,name'
];
if ($this->method() == 'PUT') {
$rules['code'] = 'required|max:50|unique:jenis_fasilitas_kredit,code,' . $this->id;
$rules['code'] = 'max:50|unique:jenis_fasilitas_kredit,code,' . $this->id;
$rules['name'] = 'required|unique:jenis_fasilitas_kredit,name,' . $this->id;
} else {
$rules['code'] = 'required|max:50|unique:jenis_fasilitas_kredit,code';
$rules['code'] = 'max:50|unique:jenis_fasilitas_kredit,code';
}
return $rules;
}

View File

@@ -0,0 +1,46 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Modules\Lpj\Models\Debiture;
use Modules\Lpj\Models\Branch;
use Modules\Lpj\Models\TujuanPenilaian;
use Modules\Usermanagement\Models\User;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('permohonan', function (Blueprint $table) {
$table->id();
$table->string('nomor_registrasi')->unique();
$table->date('tanggal_permohonan');
$table->foreignIdFor(User::class)->constrained();
$table->foreignIdFor(Branch::class)->constrained();
$table->foreignIdFor(TujuanPenilaian::class)->constrained('tujuan_penilaian')->onDelete('cascade');
$table->foreignIdFor(Debiture::class)->constrained('debitures')->onDelete('cascade');
$table->boolean('status')->default(true)->nullable();
$table->timestamps();
$table->timestamp('authorized_at')->nullable();
$table->char('authorized_status', 1)->nullable();
$table->softDeletes();
$table->unsignedBigInteger('created_by')->nullable();
$table->unsignedBigInteger('updated_by')->nullable();
$table->unsignedBigInteger('deleted_by')->nullable();
$table->unsignedBigInteger('authorized_by')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('permohonan');
}
};

View File

@@ -1,3 +1,7 @@
@php
$route = explode('.', Route::currentRouteName());
@endphp
@extends('layouts.main')
@section('breadcrumbs')
@@ -6,53 +10,56 @@
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
@if(isset($jenisFasilitasKredit->id))
@if (isset($jenisFasilitasKredit->id))
<form action="{{ route('basicdata.jenis-fasilitas-kredit.update', $jenisFasilitasKredit->id) }}" method="POST">
<input type="hidden" name="id" value="{{ $jenisFasilitasKredit->id }}">
@method('PUT')
@else
<form method="POST" action="{{ route('basicdata.jenis-fasilitas-kredit.store') }}">
@endif
@csrf
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
{{ isset($jenisFasilitasKredit->id) ? 'Edit' : 'Tambah' }} Jenis Fasilitas Kredit
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('basicdata.jenis-fasilitas-kredit.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
</div>
</div>
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $jenisFasilitasKredit->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $jenisFasilitasKredit->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
</div>
</form>
@else
<form method="POST" action="{{ route('basicdata.jenis-fasilitas-kredit.store') }}">
@endif
@csrf
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
{{ isset($jenisFasilitasKredit->id) ? 'Edit' : 'Tambah' }} Jenis Fasilitas Kredit
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('basicdata.jenis-fasilitas-kredit.index') }}" class="btn btn-xs btn-info"><i
class="ki-filled ki-exit-left"></i> Back</a>
</div>
</div>
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger bg-danger-light @enderror" type="text"
name="code" value="{{ $jenisFasilitasKredit->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text"
name="name" value="{{ $jenisFasilitasKredit->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
</div>
</form>
</div>
@endsection