{{-- Header --}}

Leases

Manage and review tenant leases.

Agreement Templates Lease Controller
{{-- Table Section --}}
@if($leases && $leases->count() > 0) @foreach($leases as $lease) @php $status = strtolower((string) ($lease->status ?? '')); $badge = match ($status) { 'new' => 'bg-blue-100 text-blue-800', 'renew' => 'bg-indigo-100 text-indigo-800', 'check out' => 'bg-amber-100 text-amber-800', 'end' => 'bg-gray-100 text-gray-800', default => 'bg-slate-100 text-slate-800', }; @endphp {{-- leasable_type & leasable_id --}} {{-- owner --}} {{-- tenant_id --}} {{-- start_date & end_date --}} {{-- term_type & rent_price --}} {{-- deposit_mode, security, utilities --}} {{-- status --}} {{-- action --}} @endforeach
@php // 获取类名,例如 "App\Models\Room" 变成 "Room" $type = basename(str_replace('\\', '/', $lease->leasable_type)); @endphp @if($type === 'Unit') {{ $lease->leasable?->unit_no ?? 'N/A' }} @elseif($type === 'Property') {{ $lease->leasable?->name ?? 'N/A' }} @elseif($type === 'Room') {{ $lease->leasable?->room_no ?? 'N/A' }} @else {{ $type }}: {{ $lease->leasable_id }} @endif
{{ $type }}
@php // 获取类名,例如 "App\Models\Room" 变成 "Room" $type = basename(str_replace('\\', '/', $lease->leasable_type)); @endphp @if($type === 'Unit') {{ $lease->leasable?->owner->name ?? 'N/A' }} @elseif($type === 'Property') {{ $lease->leasable?->owner->name ?? 'N/A' }} @elseif($type === 'Room') {{ $lease->leasable?->unit->owner->name ?? 'N/A' }} @else No Owner @endif
{{ $lease->tenant?->user?->name ?? 'N/A' }}
{{ $lease->start_date_formatted }} to {{ $lease->end_date_formatted }} @if ($lease->agreement_ended_at) End Date:
{{ $lease->agreement_ended_at_formatted }}
@elseif ($lease->checked_out_at) Check Out Date:
{{ $lease->checked_out_at_formatted }}
@endif
RM {{ number_format($lease->rent_price, 2) }}
{{ $lease->term_type ?? 'N/A' }}
Sec: {{ number_format($lease->security_deposit, 2) }}
Util: {{ number_format($lease->utilities_deposit, 2) }}
{{ $lease->deposit_mode ?? 'Manual' }}
{{ $lease->status ?? 'N/A' }}
{{-- 使用垂直容器包裹所有内容 --}} {{-- 第一部分:Stamping 状态区 --}}
{{-- 固定最小高度防止跳动 --}} @if($lease->stamping_status) {{-- 情况 A: 已经上传了证书 --}} @elseif(!in_array(strtolower($lease->status), ['check out', 'end agreement'])) {{-- 情况 B: 还没上传且进行中 --}} @else {{-- 情况 C: 结束了 --}} NO STAMPING NEEDED @endif
{{-- 第二部分:始终显示的 View Agreement 按钮 --}}
@if (!empty($lease->agreement_id)) @endif
{{-- Modal 只有在需要时渲染 --}} @if(!$lease->stamping_status && !in_array(strtolower($lease->status), ['check out', 'end agreement'])) @endif
@else

No leases found

@endif
{{-- Pagination --}} @if($leases && method_exists($leases, 'hasPages') && $leases->hasPages())
{{ $leases->appends(request()->query())->links() }}
@endif