PHP's default \s is ASCII-only, so the duplicate check missed rows differing only by a non-breaking space (U+00A0) or other Unicode whitespace — common in bank statement descriptions — whereas the old client-side check (JS \s) caught them. Normalize the full Unicode whitespace set before keying, then trim. Also harden the endpoint's tests: Unicode-whitespace matching, the date-range boundary (an out-of-range existing row must not match), and request validation. |
||
|---|---|---|
| .. | ||
| Concerns | ||
| AccountController.php | ||
| CashflowAnalyticsController.php | ||
| CategoryMonthlyBreakdownController.php | ||
| DashboardAnalyticsController.php | ||
| ImportDataController.php | ||
| SavedFilterController.php | ||
| TransactionAnalysisController.php | ||
| TransactionController.php | ||