feat(webstatement): implement periode statement management feature
- 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>
This commit is contained in:
113
resources/views/periode-statement/show.blade.php
Normal file
113
resources/views/periode-statement/show.blade.php
Normal file
@@ -0,0 +1,113 @@
|
||||
@extends('layouts.main')
|
||||
|
||||
@section('breadcrumbs')
|
||||
{{ Breadcrumbs::render(request()->route()->getName(), $periodeStatement) }}
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||
<div class="card pb-2.5">
|
||||
<div class="card-header" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Detail 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="grid grid-cols-1 md:grid-cols-2 gap-5">
|
||||
<div class="flex flex-col">
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-4">
|
||||
<label class="form-label max-w-56 font-bold">
|
||||
Periode:
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline">
|
||||
{{ \Carbon\Carbon::parse($periodeStatement->periode . '-01')->format('F Y') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-4">
|
||||
<label class="form-label max-w-56 font-bold">
|
||||
Created By:
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline">
|
||||
{{ $periodeStatement->creator->name ?? 'N/A' }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-4">
|
||||
<label class="form-label max-w-56 font-bold">
|
||||
Created At:
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline">
|
||||
{{ $periodeStatement->created_at ? $periodeStatement->created_at->format('d M Y H:i:s') : 'N/A' }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col">
|
||||
@if($periodeStatement->authorized_by)
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-4">
|
||||
<label class="form-label max-w-56 font-bold">
|
||||
Authorized By:
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline">
|
||||
{{ $periodeStatement->authorizer->name ?? 'N/A' }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-4">
|
||||
<label class="form-label max-w-56 font-bold">
|
||||
Authorized At:
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline">
|
||||
{{ $periodeStatement->authorized_at ? \Carbon\Carbon::parse($periodeStatement->authorized_at)->format('d M Y H:i:s') : 'N/A' }}
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($periodeStatement->processed_at)
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-4">
|
||||
<label class="form-label max-w-56 font-bold">
|
||||
Processed At:
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline">
|
||||
{{ \Carbon\Carbon::parse($periodeStatement->processed_at)->format('d M Y H:i:s') }}
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-4">
|
||||
<label class="form-label max-w-56 font-bold">
|
||||
Authorization Status:
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline">
|
||||
@php
|
||||
$authStatusClass = [
|
||||
'pending' => 'badge-light-warning',
|
||||
'approved' => 'badge-light-success',
|
||||
'rejected' => 'badge-light-danger'
|
||||
][$periodeStatement->authorized_status] ?? 'badge-light-primary';
|
||||
@endphp
|
||||
<span class="badge {{ $authStatusClass }}">{{ ucfirst($periodeStatement->authorized_status) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if($periodeStatement->notes)
|
||||
<div class="flex flex-col mt-4">
|
||||
<label class="form-label font-bold mb-2">
|
||||
Notes:
|
||||
</label>
|
||||
<div class="bg-gray-100 dark:bg-coal-300 p-4 rounded-lg whitespace-pre-line">
|
||||
{{ $periodeStatement->notes }}
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user