Fix CSV Mapping & Tests

Job ID: 39726130

Budget: ₹100 – ₹400 INR

The reconciliation view in my React app ingests two CSV files—Sales and Purchase—and is supposed to line them up by product ID. Right now that glue logic is mis-mapping rows even when the IDs are identical, so totals and downstream reports are wrong.

What I need from you
• Trace and correct the mapping function so that product IDs match on an exact, case-sensitive basis only. No partial or fuzzy comparisons.
• Leave the other fields (dates, amounts, etc.) untouched; they are working fine.
• Add a Playwright end-to-end test that drops in two sample CSVs, verifies that matching IDs merge correctly, and confirms that a deliberately mismatched ID stays unpaired. The test should run headless in the existing GitHub Actions workflow.

Environment & stack details
React + TypeScript front end, CSV parsing handled with Papa Parse, current tests in Jest. Please confine logic edits to /src/utils/csvMatcher.ts (or its present equivalent) and place the new Playwright spec in /tests.

Acceptance criteria
• Exact product-ID matches align Sales and Purchase rows one-to-one.
• Non-matching IDs remain separate and are reported as unmatched.
• All Jest unit tests and the new Playwright suite pass via `npm test` and `npx playwright test`.
• Code is committed in a clean PR with concise comments explaining the fix.