Added Wizard for Month/Year End Close

This commit is contained in:
2026-06-09 18:48:52 -05:00
parent 9a9f890494
commit 599465bdac
15 changed files with 1374 additions and 25 deletions

View File

@@ -374,6 +374,126 @@
</p>
</section>
<!-- PERIOD CLOSE -->
<section v-show="isShown('close')" class="manual-section">
<h2>Period close month-end &amp; year-end</h2>
<p>
<strong>Financial Period Close</strong> is a guided wizard that walks you through closing an accounting
period for the fixed-asset subledger. It reviews the period's activity, <strong>posts the journal entries the
close generates into the general ledger</strong>, reconciles the Fixed Asset Register to the GL, and then
<strong>locks the period</strong> so it can't be changed after the fact. Every action is recorded in
<a href="#" @click.prevent="select('admin')">Activity &amp; Audit Trail</a>.
</p>
<h3>Scope: which book, which period</h3>
<ul>
<li>A close runs against <strong>one book</strong> pick it at the top of the screen; it defaults to your
<strong>primary book</strong> (the one that feeds the financial GL). Run a separate close for each book you
maintain (for example, close GAAP for the financial GL; tax books are reviewed at year-end).</li>
<li>Choose <strong>Month</strong> (a fiscal year + month) or <strong>Year</strong> (a full fiscal year), then
<strong>Start / Resume</strong>. A close in progress is saved, so you can leave and come back to it. The
<strong>Recent closes</strong> list shows every period with its status and a 🔒 lock badge.</li>
</ul>
<h3>The month-end checklist</h3>
<p>Each step shows the live data for the period and lets you act, then mark it done:</p>
<ol>
<li><strong>Record additions</strong> review capital purchases placed in service in the period. Any asset
below your <strong>capitalization threshold</strong> is flagged so you can confirm it belongs on the register.</li>
<li><strong>Record disposals</strong> review assets sold, scrapped, or retired in the period (cost,
accumulated depreciation, gain/loss). You can <strong>post the disposal journal entries</strong> here.</li>
<li><strong>Capitalize WIP</strong> review Construction-in-progress assets and <strong>capitalize</strong>
completed ones, which moves them into service and begins depreciation.</li>
<li><strong>Process &amp; post depreciation</strong> compute the period's depreciation and <strong>post it to
the GL</strong>, allocated by department / cost center. Fully-depreciated assets that would still compute
depreciation are flagged for review.</li>
<li><strong>Check for impairments</strong> — review flagged assets and record any impairment loss (from the
asset's Adjustments tab).</li>
<li><strong>Reconcile subledger to GL</strong> compare the register to the GL control accounts and clear or
acknowledge any variance (see below). <em>Required to finalize.</em></li>
<li><strong>Generate reports</strong> run and file the Fixed Asset Register, Depreciation Summary, and
Additions / Disposals reports for your records.</li>
<li><strong>Finalize &amp; lock</strong> freeze the period.</li>
</ol>
<h3>What gets posted to the GL</h3>
<p>
The close writes <strong>real, balanced journal entries</strong> into the stored GL layer (visible under
<a href="#" @click.prevent="select('books')">Books GL and Journals</a>). The accounts come from your
<strong>GL posting defaults</strong> (per-asset overrides win where set):
</p>
<table class="manual-table">
<thead><tr><th>Event</th><th>Debit</th><th>Credit</th></tr></thead>
<tbody>
<tr><td>Period depreciation (by department)</td><td>Depreciation Expense</td><td>Accumulated Depreciation</td></tr>
<tr><td>Capitalize WIP</td><td>Fixed Asset cost</td><td>Construction-in-progress (CWIP)</td></tr>
<tr><td>Disposal</td><td>Accum. depreciation + Proceeds (+ Loss)</td><td>Asset cost (+ Gain)</td></tr>
<tr><td>Year-end roll-forward</td><td>Retained Earnings</td><td>Depreciation Expense</td></tr>
</tbody>
</table>
<v-alert type="info" variant="tonal" density="comfortable" class="manual-callout">
Every close posting is <strong>tagged to its period</strong>, which makes posting <strong>idempotent</strong>:
re-running a step (for example, re-posting depreciation after a correction) replaces the prior entries rather
than duplicating them. Manage the accounts these entries use in
<a href="#" @click.prevent="select('books')">Books GL and Journals Chart of accounts</a> (the
<strong>posting defaults</strong>: asset cost, accumulated depreciation, depreciation expense, CWIP, gain/loss,
proceeds clearing, and retained earnings).
</v-alert>
<h3>Reconciling the subledger to the GL</h3>
<p>
The <strong>Reconcile</strong> step compares the Fixed Asset Register (the subledger) to the GL
control-account balances <strong>cost</strong>, <strong>accumulated depreciation</strong>, and
<strong>net book value</strong> and shows the variance per account. A green <em>Balanced</em> badge means
they agree; otherwise the variance is shown so you can clear it (post an adjusting entry) or
<strong>acknowledge</strong> it and finalize anyway.
</p>
<v-alert type="info" variant="tonal" density="comfortable" class="manual-callout">
When you <em>first</em> adopt closes, the GL won't yet hold the asset's full history, so the register
(life-to-date) and the GL (only what's been posted) will differ — that opening variance is expected. Post an
opening-balance entry to clear it, or acknowledge it. Once you run closes forward period over period, the two
stay in step.
</v-alert>
<h3>Finalizing &amp; the period lock</h3>
<p>
<strong>Finalize &amp; lock</strong> becomes available once the required steps are done and the reconciliation
has been run. Finalizing snapshots the period's totals and sets the period to <strong>Closed</strong>. A
closed period is <strong>locked</strong>:
</p>
<ul>
<li>Any change whose effective date falls inside the closed period is <strong>rejected</strong> including
<strong>GL journal entries</strong> (for that book), and <strong>disposals, impairments, and asset
financial-date / cost edits</strong> (gated by the <strong>primary</strong> book's locked periods, since
that book is the subledger that feeds the GL).</li>
<li>Edits to non-financial fields (location, custodian, notes, and so on) are <strong>not</strong> blocked.</li>
</ul>
<h3>Year-end close</h3>
<p>The year-end checklist includes everything above, plus:</p>
<ul>
<li><strong>Final month-end close</strong> — confirm the final month is closed and its depreciation posted.</li>
<li><strong>Physical inventory</strong> — confirm you've verified high-value / mobile assets still exist.</li>
<li><strong>Update tax books</strong> recompute tax depreciation (MACRS / §179) and review book-vs-tax
differences.</li>
<li><strong>Roll-forward</strong> finalizing a year close automatically posts the <strong>roll-forward</strong>
that clears the year's depreciation expense into <strong>Retained Earnings</strong> and locks the year.</li>
</ul>
<h3>Reopening a closed period</h3>
<p>
If you must correct a closed period, use <strong>Reopen</strong> (requires the close permission). Reopening
<strong>reverses all of that close's posted entries</strong>, returns the period to <em>in&nbsp;progress</em>,
and unlocks it so corrections can be made then you re-run and finalize again. The reopen, the reversed
entries, and the re-close are all audited.
</p>
<v-alert type="warning" variant="tonal" density="comfortable" class="manual-callout">
Running the close needs the <strong>Run month-end / year-end close &amp; reopen periods</strong> capability
(included in the Finance role). Because closing posts to the GL and locks the books, keep this permission to
the people responsible for the close.
</v-alert>
</section>
<!-- TAX RULES -->
<section v-show="isShown('taxrules')" class="manual-section">
<h2>Tax rule sets</h2>
@@ -1067,6 +1187,7 @@ export default {
{ id: 'lifecycle', title: 'Asset lifecycle', icon: 'mdi-cash-remove', keywords: 'dispose disposal sale retire gain loss lease amortization impairment adjustment write down' },
{ id: 'barcodes', title: 'Barcodes & scanning', icon: 'mdi-barcode-scan', keywords: 'barcode label print scan camera tag' },
{ id: 'books', title: 'Books, depreciation & tax', icon: 'mdi-book-open-variant', keywords: 'book gaap federal depreciation general ledger gl method convention 179 bonus reports journal entry entries import export csv excel conflict merge history zone section 179' },
{ id: 'close', title: 'Period close (month & year-end)', icon: 'mdi-calendar-lock', keywords: 'close month end year end period lock reconcile subledger gl roll forward retained earnings depreciation post reopen finalize wip capitalize disposal impairment audit' },
{ id: 'taxrules', title: 'Tax rule sets', icon: 'mdi-scale-balance', keywords: 'tax rules jurisdiction method limits activate version' },
{ id: 'templates', title: 'Templates', icon: 'mdi-form-select', keywords: 'template defaults custom fields data entry' },
{ id: 'pm', title: 'Preventative maintenance', icon: 'mdi-wrench-clock', keywords: 'pm maintenance plan steps complete close signature ratings guidance photos schedule meter usage reading hours lifespan wear curve dynamic nightly recompute' },