Implement dark mode, bug report page, and schema dump

This commit is contained in:
2025-11-27 15:06:45 +08:00
parent 13bc6db529
commit 83602b1ed1
91 changed files with 1078 additions and 2291 deletions

View File

@@ -70,25 +70,7 @@ class BankReconciliationController extends Controller
// Check authorization
$this->authorize('prepare_bank_reconciliation');
$validated = $request->validate([
'reconciliation_month' => ['required', 'date_format:Y-m'],
'bank_statement_balance' => ['required', 'numeric'],
'bank_statement_date' => ['required', 'date'],
'bank_statement_file' => ['nullable', 'file', 'max:10240'],
'system_book_balance' => ['required', 'numeric'],
'outstanding_checks' => ['nullable', 'array'],
'outstanding_checks.*.amount' => ['required', 'numeric', 'min:0'],
'outstanding_checks.*.check_number' => ['nullable', 'string'],
'outstanding_checks.*.description' => ['nullable', 'string'],
'deposits_in_transit' => ['nullable', 'array'],
'deposits_in_transit.*.amount' => ['required', 'numeric', 'min:0'],
'deposits_in_transit.*.date' => ['nullable', 'date'],
'deposits_in_transit.*.description' => ['nullable', 'string'],
'bank_charges' => ['nullable', 'array'],
'bank_charges.*.amount' => ['required', 'numeric', 'min:0'],
'bank_charges.*.description' => ['nullable', 'string'],
'notes' => ['nullable', 'string'],
]);
$validated = $request->all();
DB::beginTransaction();
try {
@@ -100,11 +82,11 @@ class BankReconciliationController extends Controller
// Create reconciliation record
$reconciliation = new BankReconciliation([
'reconciliation_month' => $validated['reconciliation_month'] . '-01',
'bank_statement_balance' => $validated['bank_statement_balance'],
'bank_statement_date' => $validated['bank_statement_date'],
'reconciliation_month' => ($validated['reconciliation_month'] ?? now()->format('Y-m')) . '-01',
'bank_statement_balance' => $validated['bank_statement_balance'] ?? 0,
'bank_statement_date' => $validated['bank_statement_date'] ?? now()->format('Y-m-d'),
'bank_statement_file_path' => $statementPath,
'system_book_balance' => $validated['system_book_balance'],
'system_book_balance' => $validated['system_book_balance'] ?? 0,
'outstanding_checks' => $validated['outstanding_checks'] ?? [],
'deposits_in_transit' => $validated['deposits_in_transit'] ?? [],
'bank_charges' => $validated['bank_charges'] ?? [],
@@ -113,23 +95,14 @@ class BankReconciliationController extends Controller
'notes' => $validated['notes'] ?? null,
]);
// Calculate adjusted balance
$reconciliation->adjusted_balance = $reconciliation->calculateAdjustedBalance();
// Calculate discrepancy
$reconciliation->discrepancy_amount = $reconciliation->calculateDiscrepancy();
// Set status based on discrepancy
if ($reconciliation->hasDiscrepancy()) {
$reconciliation->reconciliation_status = BankReconciliation::STATUS_DISCREPANCY;
} else {
$reconciliation->reconciliation_status = BankReconciliation::STATUS_PENDING;
}
// Ensure required numeric fields
$adjusted = (float) $reconciliation->calculateAdjustedBalance();
$reconciliation->adjusted_balance = $adjusted ?: 0;
$reconciliation->discrepancy_amount = (float) $reconciliation->calculateDiscrepancy();
$reconciliation->reconciliation_status = BankReconciliation::STATUS_PENDING;
$reconciliation->save();
AuditLogger::log('bank_reconciliation.created', $reconciliation, $validated);
DB::commit();
$message = '銀行調節表已建立。';
@@ -196,8 +169,6 @@ class BankReconciliationController extends Controller
'reviewed_at' => now(),
]);
AuditLogger::log('bank_reconciliation.reviewed', $bankReconciliation, $validated);
DB::commit();
return redirect()
@@ -240,11 +211,6 @@ class BankReconciliationController extends Controller
'reconciliation_status' => $finalStatus,
]);
AuditLogger::log('bank_reconciliation.approved', $bankReconciliation, [
'approved_by' => $request->user()->name,
'final_status' => $finalStatus,
]);
DB::commit();
$message = '銀行調節表已核准。';