Commit Graph

13 Commits

Author SHA1 Message Date
HotSwapp
69f1043be3 Fix upload detection for model class names and add States/Printers/Setup import
- Enhanced get_import_type_from_filename() to recognize model class names (LegacyFile, FilesR, etc.) in addition to legacy CSV names
- Added import functions for States, Printers, and Setup reference tables
- Updated VALID_IMPORT_TYPES and IMPORT_ORDER to include new tables
- Updated admin panel table counts to display new reference tables
- Created UPLOAD_FIX.md documentation explaining the changes and how to handle existing unknown files

This fixes the issue where files uploaded with model class names (e.g., LegacyFile.csv) were being categorized as 'unknown' instead of being properly detected.
2025-10-13 09:08:06 -05:00
HotSwapp
e6a78221e6 Add documentation for pension_schedule schema fix 2025-10-13 08:54:45 -05:00
HotSwapp
ac98bded69 Add detailed skip tracking for phone imports
- Track skipped_no_phone and skipped_no_id separately
- Display skip information in admin UI with warning icon
- Clarify that empty phone numbers cannot be imported (PK constraint)
- Update documentation to explain expected skip behavior
- Example: 143 rows without phone numbers is correct, not an error

When importing PHONE.csv with empty phone numbers:
- Rows are properly skipped (cannot have NULL in primary key)
- User sees: '⚠️ Skipped: 143 rows without phone number'
- This is expected behavior, not a bug
2025-10-13 08:46:53 -05:00
HotSwapp
63809d46fb Fix PHONE.csv import duplicate constraint error
- Implement upsert logic in import_phone() function
- Check for existing (id, phone) combinations before insert
- Track duplicates within CSV to skip gracefully
- Update existing records instead of failing on duplicates
- Add detailed statistics: inserted, updated, skipped counts
- Align with upsert pattern used in other import functions
- Add documentation in docs/PHONE_IMPORT_FIX.md

Fixes: UNIQUE constraint failed: phone.id, phone.phone error
when re-importing or uploading CSV with duplicate entries
2025-10-12 21:45:30 -05:00
HotSwapp
22e99d27ed Fix UNIQUE constraint errors in reference table imports with upsert logic
- Implement upsert (INSERT or UPDATE) logic for all reference table imports
- Fixed functions: import_trnstype, import_trnslkup, import_footers,
  import_filestat, import_employee, import_gruplkup, import_filetype,
  import_fvarlkup, import_rvarlkup
- Now checks if record exists before inserting; updates if exists
- Makes imports idempotent - can safely re-run without errors
- Added tracking of inserted vs updated counts in result dict
- Maintains batch commit performance for large imports
- Fixes sqlite3.IntegrityError when re-importing CSV files
2025-10-12 21:36:28 -05:00
HotSwapp
ad1c75d759 docs: Add comprehensive guide on duplicate record handling 2025-10-12 21:08:38 -05:00
HotSwapp
789eb2c134 docs: Add comprehensive troubleshooting guide for import issues 2025-10-12 20:13:55 -05:00
HotSwapp
89ff90a384 docs: Add comprehensive documentation of CSV encoding fix 2025-10-12 19:19:56 -05:00
HotSwapp
7958556613 Fix: Improved CSV encoding detection for legacy data with non-standard characters
- Changed encoding fallback order to prioritize iso-8859-1/latin-1 over cp1252
- Increased encoding test from 1KB to 10KB to catch issues deeper in files
- Added proper file handle cleanup on encoding failures
- Resolves 'charmap codec can't decode byte 0x9d' error in rolodex import
- Tested with rolodex file containing 52,100 rows successfully
2025-10-12 19:19:25 -05:00
HotSwapp
2e7e9693c5 Add next section prompt and task summary 2025-10-08 09:55:12 -05:00
HotSwapp
e11e9aaf16 Add comprehensive CSV import system documentation
- Created IMPORT_GUIDE.md: Complete user guide with step-by-step instructions
  * Detailed import order for all 27+ tables
  * Troubleshooting guide
  * Data validation procedures
  * Best practices and performance notes

- Created IMPORT_SYSTEM_SUMMARY.md: Technical implementation summary
  * Complete list of all implemented functions (28 import + 7 sync)
  * Architecture and data flow diagrams
  * Module organization
  * Testing status and next steps
  * ~3,000 lines of code documented
2025-10-08 09:54:30 -05:00
HotSwapp
684b947651 docs: add next-section prompt for Reports (Envelope, Phone Book variants, Rolodex Info); confirm TODO next step pending run/test 2025-10-07 17:40:02 -05:00
HotSwapp
432f303a33 docs: add inferred legacy schema from CSV headers and .SC usage to guide migration 2025-10-07 09:51:30 -05:00