@extends('layouts.app') @section('title', 'Period Closing') @section('breadcrumb') @endsection @section('content') @if(session('success'))
{{ session('success') }}
@endif @if($errors->any())
@foreach($errors->all() as $error)
{{ $error }}
@endforeach
@endif
Books Closing Date

Set the date through which your books are closed. Transactions dated on or before this date cannot be added or changed unless the closing password is entered — just like QuickBooks.

@if(auth()->user()->hasPermission('settings','edit'))
@csrf @method('PUT')
Leave blank to open all periods. Suggested: @if($suggestedClosingDate) @else last completed fiscal year end @endif
@if($hasClosingPassword)
@endif
@else
@if($closingDate) Current closing date: {{ $closingDate->format('d M Y') }} @else No closing date set — all periods are open. @endif
@endif
QuickBooks-Style Closing Steps
  1. Run your Profit & Loss and Balance Sheet reports for the year you are closing.
  2. Set the Closing Date to the last day of that fiscal year.
  3. Optionally set a password so only authorized users can change closed-period transactions.
  4. No closing journal entry is needed — net income rolls to Retained Earnings automatically on reports.
@if($closingDate)
Books are closed through {{ $closingDate->format('d M Y') }}. Transactions on or before this date are protected.
@endif @if($currentYear)
Current Period: {{ $currentYear->name }} — {{ $currentYear->start_date->format('d M Y') }} to {{ $currentYear->end_date->format('d M Y') }}
@endif
Accounting Periods Created automatically — no annual setup required
@forelse($fiscalYears as $fy) @empty @endforelse
Period Start Date End Date Status Actions
{{ $fy->name }} @if($fy->is_current) Current @endif {{ $fy->start_date->format('d M Y') }} {{ $fy->end_date->format('d M Y') }} @php $statusStyles = ['open'=>'#d1e7dd|#0a3622','locked'=>'#f8d7da|#842029','closed'=>'#e9ecef|#495057']; [$bg,$fg] = explode('|', $statusStyles[$fy->status] ?? '#e9ecef|#495057'); @endphp {{ $fy->status === 'locked' ? 'Closed' : ucfirst($fy->status) }} @if($fy->status !== 'locked' && auth()->user()->hasPermission('settings','edit'))
@csrf @method('PATCH')
@endif
No periods yet. They appear automatically when you post your first transaction.
How Virtual Closing Works
No Closing Entries
Income and expense accounts reset on reports at year-end using date filters — no manual closing journal is posted.
Retained Earnings
Prior-year net profit or loss is calculated automatically and shown as Retained Earnings on the Balance Sheet.
Closing Date Protection
Once set, the closing date prevents accidental changes to finalized periods — matching QuickBooks behaviour.
@endsection