Update Module Jenis Legalitas Jaminan

Penambahan Slug
This commit is contained in:
Daeng Deni Mardaeni 2024-09-04 20:26:00 +07:00
parent 22e2ff51f0
commit 77be1b2685
5 changed files with 58 additions and 15 deletions

View File

@ -2,7 +2,9 @@
namespace Modules\Lpj\Http\Requests; namespace Modules\Lpj\Http\Requests;
use daengdeni\LaravelIdGenerator\IdGenerator;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Str;
class JenisLegalitasJaminanRequest extends FormRequest class JenisLegalitasJaminanRequest extends FormRequest
{ {
@ -12,16 +14,11 @@
public function rules() public function rules()
: array : array
{ {
$rules = [ return [
'code' => 'required|max:6',
'name' => 'required|max:255', 'name' => 'required|max:255',
'slug' => 'required|max:255',
]; ];
if ($this->method() == 'PUT') {
$rules['code'] = 'required|max:50|unique:jenis_legalitas_jaminan,code,' . $this->id;
} else {
$rules['code'] = 'required|max:50|unique:jenis_legalitas_jaminan,code';
}
return $rules;
} }
/** /**
@ -32,4 +29,20 @@
{ {
return true; return true;
} }
public function prepareForValidation()
{
if($this->method() == 'POST' && $this->code == null) {
$this->merge([
'code' => IdGenerator::generate(
['table' => 'jenis_legalitas_jaminan', 'length' => 6, 'prefix' => 'JLJ', 'field' => 'code'],
),
'slug' => Str::slug($this->name),
]);
} else {
$this->merge([
'slug' => Str::slug($this->name),
]);
}
}
} }

View File

@ -7,5 +7,5 @@
class JenisLegalitasJaminan extends Base class JenisLegalitasJaminan extends Base
{ {
protected $table = 'jenis_legalitas_jaminan'; protected $table = 'jenis_legalitas_jaminan';
protected $fillable = ['code', 'name']; protected $fillable = ['code', 'name','slug'];
} }

View File

@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('jenis_legalitas_jaminan', function (Blueprint $table) {
$table->string('slug')->nullable()->after('name');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('jenis_legalitas_jaminan', function (Blueprint $table) {
$table->dropColumn('slug');
});
}
};

View File

@ -104,16 +104,16 @@
"roles": [] "roles": []
}, },
{ {
"title": "Jenis Jaminan", "title": "Jenis Legalitas Jaminan",
"path": "basicdata.jenis-jaminan", "path": "basicdata.jenis-legalitas-jaminan",
"classes": "", "classes": "",
"attributes": [], "attributes": [],
"permission": "", "permission": "",
"roles": [] "roles": []
}, },
{ {
"title": "Jenis Legalitas Jaminan", "title": "Jenis Jaminan",
"path": "basicdata.jenis-legalitas-jaminan", "path": "basicdata.jenis-jaminan",
"classes": "", "classes": "",
"attributes": [], "attributes": [],
"permission": "", "permission": "",

View File

@ -24,23 +24,25 @@
</div> </div>
</div> </div>
<div class="card-body grid gap-5"> <div class="card-body grid gap-5">
@if(isset($jenisLegalitasJaminan->id))
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56"> <label class="form-label max-w-56">
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 @enderror" type="text" name="code" value="{{ $jenisLegalitasJaminan->code ?? '' }}"> <input readonly class="input border-warning bg-warning-light @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $jenisLegalitasJaminan->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
</div> </div>
</div> </div>
@endif
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56"> <label class="form-label max-w-56">
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 @enderror" type="text" name="name" value="{{ $jenisLegalitasJaminan->name ?? '' }}"> <input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $jenisLegalitasJaminan->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