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\Exports\JenisFasilitasKreditExport;
use Modules\Lpj\Http\Requests\JenisFasilitasKreditRequest; use Modules\Lpj\Http\Requests\JenisFasilitasKreditRequest;
use Modules\Lpj\Models\JenisFasilitasKredit; use Modules\Lpj\Models\JenisFasilitasKredit;
use Modules\Lpj\Http\Library\LpjHelpers;
class JenisFasilitasKreditController extends Controller class JenisFasilitasKreditController extends Controller
{ {
use LpjHelpers; // <---- Using the LpjHelpers Trait
public $user; public $user;
public function index() public function index()
@@ -26,11 +28,18 @@
if ($validate) { if ($validate) {
try { try {
// Save to database // Save to database
// andy add
$lastNumberCodeJFK = LpjHelpers::onLastCodeJFK();
$validate['name'] =strtoupper($request->name);
$validate['code'] =$lastNumberCodeJFK;
// andy add
JenisFasilitasKredit::create($validate); JenisFasilitasKredit::create($validate);
return redirect() return redirect()
->route('basicdata.jenis-fasilitas-kredit.index') ->route('basicdata.jenis-fasilitas-kredit.index')
->with('success', 'Jenis Fasilitas Kredit created successfully'); ->with('success', 'Jenis Fasilitas Kredit created successfully');
} catch (Exception $e) { } catch (Exception $e) {dd($e);
return redirect() return redirect()
->route('basicdata.jenis-fasilitas-kredit.create') ->route('basicdata.jenis-fasilitas-kredit.create')
->with('error', 'Failed to create jenis fasilitas kredit'); ->with('error', 'Failed to create jenis fasilitas kredit');
@@ -57,11 +66,16 @@
try { try {
// Update in database // Update in database
$jenisFasilitasKredit = JenisFasilitasKredit::find($id); $jenisFasilitasKredit = JenisFasilitasKredit::find($id);
// andy add
$validate['name'] =strtoupper($request->name);
// andy add
$jenisFasilitasKredit->update($validate); $jenisFasilitasKredit->update($validate);
return redirect() return redirect()
->route('basicdata.jenis-fasilitas-kredit.index') ->route('basicdata.jenis-fasilitas-kredit.index')
->with('success', 'Jenis Fasilitas Kredit updated successfully'); ->with('success', 'Jenis Fasilitas Kredit updated successfully');
} catch (Exception $e) { } catch (Exception $e) {dd($e);
return redirect() return redirect()
->route('basicdata.jenis-fasilitas-kredit.edit', $id) ->route('basicdata.jenis-fasilitas-kredit.edit', $id)
->with('error', 'Failed to update jenis fasilitas kredit'); ->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 : array
{ {
$rules = [ $rules = [
'name' => 'required|max:255', 'name' => 'required|max:255|unique:jenis_fasilitas_kredit,name'
]; ];
if ($this->method() == 'PUT') { 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 { } else {
$rules['code'] = 'required|max:50|unique:jenis_fasilitas_kredit,code'; $rules['code'] = 'max:50|unique:jenis_fasilitas_kredit,code';
} }
return $rules; 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') @extends('layouts.main')
@section('breadcrumbs') @section('breadcrumbs')
@@ -6,7 +10,7 @@
@section('content') @section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto"> <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"> <form action="{{ route('basicdata.jenis-fasilitas-kredit.update', $jenisFasilitasKredit->id) }}" method="POST">
<input type="hidden" name="id" value="{{ $jenisFasilitasKredit->id }}"> <input type="hidden" name="id" value="{{ $jenisFasilitasKredit->id }}">
@method('PUT') @method('PUT')
@@ -20,7 +24,8 @@
{{ isset($jenisFasilitasKredit->id) ? 'Edit' : 'Tambah' }} Jenis Fasilitas Kredit {{ isset($jenisFasilitasKredit->id) ? 'Edit' : 'Tambah' }} Jenis Fasilitas Kredit
</h3> </h3>
<div class="flex items-center gap-2"> <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> <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> </div>
<div class="card-body grid gap-5"> <div class="card-body grid gap-5">
@@ -29,7 +34,8 @@
Code Code
</label> </label>
<div class="flex flex-wrap items-baseline w-full"> <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 ?? '' }}"> <input class="input @error('code') border-danger bg-danger-light @enderror" type="text"
name="code" value="{{ $jenisFasilitasKredit->code ?? '' }}">
@error('code') @error('code')
<em class="alert text-danger text-sm">{{ $message }}</em> <em class="alert text-danger text-sm">{{ $message }}</em>
@enderror @enderror
@@ -40,7 +46,8 @@
Name Name
</label> </label>
<div class="flex flex-wrap items-baseline w-full"> <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 ?? '' }}"> <input class="input @error('name') border-danger bg-danger-light @enderror" type="text"
name="name" value="{{ $jenisFasilitasKredit->name ?? '' }}">
@error('name') @error('name')
<em class="alert text-danger text-sm">{{ $message }}</em> <em class="alert text-danger text-sm">{{ $message }}</em>
@enderror @enderror