- Menambahkan menu "Periode Statement" pada module.json dengan akses untuk role administrator. - Menambahkan model `PeriodeStatement` dengan fitur tracking user dan scoped query. - Menyediakan controller `PeriodeStatementController` dengan fungsi CRUD, otorisasi, proses, ekspor data ke Excel, dan datatables. - Menambahkan request validation melalui `PeriodeStatementRequest`. - Menyediakan view untuk list, create, edit, dan otorisasi periode statement. - Menambahkan routing termasuk resource routes dan breadcrumbs untuk mendukung fitur ini. - Menambahkan migrasi database `periode_statements` dengan kolom untuk menyimpan data periode, status, otorisasi, serta metadata. - Fitur ini memungkinkan pengelolaan dan pemrosesan periode statement secara terstruktur dan aman. Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
83 lines
4.6 KiB
PHP
83 lines
4.6 KiB
PHP
@extends('layouts.main')
|
|
|
|
@section('breadcrumbs')
|
|
@if(isset($periodeStatement->id))
|
|
{{ Breadcrumbs::render(request()->route()->getName(), $periodeStatement) }}
|
|
@else
|
|
{{ Breadcrumbs::render(request()->route()->getName()) }}
|
|
@endif
|
|
@endsection
|
|
|
|
@section('content')
|
|
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
|
@if(isset($periodeStatement->id))
|
|
<form action="{{ route('periode-statements.update', $periodeStatement->id) }}" method="POST">
|
|
<input type="hidden" name="id" value="{{ $periodeStatement->id }}">
|
|
@method('PUT')
|
|
@else
|
|
<form method="POST" action="{{ route('periode-statements.store') }}">
|
|
@endif
|
|
@csrf
|
|
<div class="card pb-2.5">
|
|
<div class="card-header" id="basic_settings">
|
|
<h3 class="card-title">
|
|
{{ isset($periodeStatement->id) ? 'Edit' : 'Tambah' }} Periode Statement
|
|
</h3>
|
|
<div class="flex items-center gap-2">
|
|
<a href="{{ route('periode-statements.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">
|
|
Periode
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
<input class="input @error('periode') border-danger bg-danger-light @enderror"
|
|
type="month"
|
|
name="periode"
|
|
value="{{ $periodeStatement->periode ?? old('periode') }}"
|
|
max="{{ date('Y-m', strtotime('-1 month')) }}">
|
|
@error('periode')
|
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
@enderror
|
|
</div>
|
|
</div>
|
|
|
|
@if(isset($periodeStatement->id))
|
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
|
<label class="form-label max-w-56">
|
|
Notes
|
|
</label>
|
|
<div class="flex flex-wrap items-baseline w-full">
|
|
<textarea class="textarea @error('notes') border-danger bg-danger-light @enderror"
|
|
name="notes"
|
|
rows="3"
|
|
placeholder="Enter notes here...">{{ $periodeStatement->notes ?? old('notes') }}</textarea>
|
|
@error('notes')
|
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
@enderror
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
<div class="flex justify-end gap-2">
|
|
@if(isset($periodeStatement->id))
|
|
<button type="submit" class="btn btn-success" name="status" value="approved">
|
|
Approve
|
|
</button>
|
|
<button type="submit" class="btn btn-danger" name="status" value="rejected">
|
|
Reject
|
|
</button>
|
|
@else
|
|
<button type="submit" class="btn btn-primary">
|
|
Simpan
|
|
</button>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
@endsection
|