- Update module version from 2.3.0 to 2.4.0
- Add comprehensive changelog for version 2.4.0
- Document template management system features
- Document minor version system implementation
- Document bug fixes and technical improvements
- Document template updates and maintenance manual
- Bump template version from 30.1 to 30.2
- Update manifest.json with new version 30.2
- Add release entry for corrected template
- Template now includes proper field positioning
- Other installations will auto-update to version 30.2
- Update isFillablePDF() to recognize ca3_official_template.pdf
- Ensure official template is used for CA-3 form generation
- Fix missing CA-3 pages in PDF output
- Use official template instead of falling back to basic PDF generation
- Use realpath() to get absolute path to templates directory
- Fix template loading for CA-3 PDF generation
- Resolve template path mismatch issue
- Ensure official template is found and used correctly
- Add major.minor version format (30.1)
- Keep government version as major number (30)
- Use minor version for fixes and improvements (.1, .2, .3)
- Update manifest.json with minor version system
- Add practical examples to maintenance manual
- Enable automatic updates for template fixes
- Maintain government version compliance
- Remove debug logging from action handling
- Remove debug logging from template reset method
- Remove debug logging from template info method
- Clean up production code after successful debugging
- Update template_path to use relative path from class file
- Fix REVENIR AU MODELE OFFICIEL button functionality
- Ensure template detection works correctly
- Resolve template path mismatch issue
- Keep template version at 30 (official government version)
- Remove version 31 entry from manifest
- Maintain official CA-3 template version 30
- Template version should match government document version
- Update hardcoded template version in PDF class to 31
- Update manifest.json current_version to 31
- Add new release entry for version 31
- Enable version checking and update notifications
- Add more descriptive error messages for Gitea server access problems
- Indicate potential causes: private repository or server configuration
- Help users understand why online template updates may not work
- Maintain functionality with local fallback
- Add informative messages when using local files due to Gitea inaccessibility
- Provide clear feedback about fallback behavior
- Maintain functionality even when Gitea server is not accessible
- Support both online and offline template management scenarios
- Try to fetch manifest from Gitea first, fallback to local if not accessible
- Try to download templates from Gitea first, fallback to local if not accessible
- Support both online template updates and offline functionality
- Enable other installations to check for template updates when online
- Provide reliable fallback for offline installations
- Replace Gitea manifest fetching with local manifest file
- Use local template files instead of downloading from Gitea
- Fix 'Failed to fetch manifest from Gitea' error in template management tab
- Use local files for template updates instead of external Gitea server
- Improve reliability by removing external dependencies
- Remove D section (calculated lines) from configuration interface
- Remove D section from section headers configuration
- Simplify configuration page by removing unnecessary calculated section
- Clean up interface to show only configurable sections (A and B)
- Remove 'HT amounts of all taxable operations' description
- Remove all section descriptions (A, B, D sections)
- Fix 'Référence:' display to only show when notice is not empty
- Clean up configuration page completely by removing all technical text
- Simplify interface to show only section titles
- Added journal entry table to detailed PDF with columns: Code compte, Libellé compte, Libellé écriture, Débit, Crédit
- Implemented complex balancing logic for TD > 0 and TD <= 0 cases
- Added account label lookup with proper mapping for 4455100, 4456700, 658000, 758000
- Fixed account label retrieval to use custom uppercase labels from chart of accounts
- Optimized table layout with centered positioning and appropriate column widths
- Reduced font sizes for better page fit while maintaining readability
- Added final balancing entries using 658000 (debit) and 758000 (credit) accounts
- Removed all debug logging for production-ready code
- Restored getVATResultEntry call (needed for main journal entries)
- Changed account code from 4456700 to 4455100
- Uses getAccountLabel for proper account name
- Should now show 4455100 with TD amount in journal table
- Removed getVATResultEntry call (was creating 4456700)
- Removed getRoundingEntry call (was creating duplicate entries)
- All balancing now handled in getBalancingEntries method
- Should now show only 4455100 with TD amount, no 4456700
- TD amount is already rounded (69.00), so no rounding difference needed
- Only creates single entry with TD amount on 4455100
- No more unnecessary rounding calculations
- Should show 4455100 with 69.00 (exact TD amount)
- Now uses Line 16 - Line 23 calculation (same as view page)
- Added getLineAmount method to get line amounts from database
- Uses TD amount as main balancing entry instead of journal difference
- Should handle both positive and negative TD amounts correctly
- Main amount on 4455100, rounding difference on 758000
- Main amount (rounded) on 4455100: 69.00
- Rounding difference on 758000: 0.90
- For difference 69.90: 4455100 credit 70.00 + 758000 credit 0.90
- Should now show correct split between main and rounding accounts
- Changed account code from 758000 to 4455100
- Updated debug message to reflect correct account
- Should now show 4455100 with 0.90 for example 1
- Single entry with correct account as requested
- Removed main balancing entry (4455100)
- Only creates 758000 entry with real difference (0.90)
- No more split entries, just single entry as user requested
- Should show only 758000 with 0.90, no 4455100 entry
- Added debug logging to see how many balancing entries are found
- Added logging to show each balancing entry being added
- Added total count of entries after balancing
- Should help identify if entries are being added to the PDF
- Added debug logging to see what template path is being used
- This will help identify if the path is correct or if files are missing
- Should show exactly where the system is looking for template files
- Added *** NEW LOGIC *** to debug messages
- This will help identify if the new code is actually being executed
- Should show if there are multiple code paths or caching issues
- Added debug logging to see what amounts are being created
- Cleared caches and reset OPcache
- Should help identify if the new logic is being executed
- Will show exactly what values are being put in the journal table
- Rounded difference on 4455100 (formatAmount)
- Real difference on 758000 (formatAmountReal)
- For difference 69.90: 4455100 credit 70.00 + 758000 credit 0.90
- No more complex logic, just 2 simple lines
- Exactly what user requested: 69.00 on 4455100 and 0.90 on 758000
- Main amount: rounded value on 4455100/4456700 (formatAmount)
- Rounding difference: real difference on 758000/658000 (formatAmountReal)
- For difference 69.90: 4455100 credit 70.00 + 758000 credit 0.90
- For difference -0.90: 4456700 debit 1.00 + 658000 debit 0.90
- Should now show correct split between main and rounding accounts
- NO round() function anywhere
- Uses real difference values only (formatAmountReal)
- Single entry with real difference on correct account
- For difference 69.90: 4455100 credit 69.90 (real value)
- No more rounding, no more split entries
- Main entry: rounded amount on 4455100/4456700 (formatAmount)
- Rounding entry: real difference on 758000/658000 (formatAmountReal)
- For difference -0.90: 4455100 credit 1.00 + 758000 credit 0.90
- Should now show correct split between main and rounding accounts
- Completely removed rounding logic
- Now uses real difference values only (formatAmountReal)
- No more rounded amounts or complex rounding logic
- Simple: real difference goes to 4455100/4456700 with real value
- Should show 4455100 with 0.90 instead of 1.00
- Added special handling for differences < 1.0 (like -0.90)
- Small differences now create rounding-only entries (758000/658000)
- No main balancing entry (4455100/4456700) for small differences
- Should show 758000 with 0.90 instead of 4455100 with 1.00
- Added handling for cases where rounded difference is 0 but real difference is not 0
- Now creates rounding-only entry when difference is small (like -0.90)
- Should show 758000 with 0.90 instead of 1.00
- Handles edge cases where difference rounds to 0 but real value is significant
- Added debug logging to show which account is being created
- Added logging for difference calculation and condition evaluation
- Should help identify why example 1 shows 4456700 instead of 4455100
- Will help trace the source of duplicate 4455100 entries
- Debit difference: now uses 4455100 credit (not 4456700)
- Credit difference: now uses 4456700 debit (not 4455100)
- Rounding accounts also corrected: 758000 for debit diff, 658000 for credit diff
- Should now match user examples correctly
- Debit difference: 758000 credit (not debit) for rounding
- Credit difference: 658000 debit for rounding
- Now matches user examples where debit difference uses 758000 credit
- Should show correct rounding entries in journal table
- Changed difference calculation from (debits - credits) to (credits - debits)
- Now matches user examples where credit difference uses 4455100
- Should eliminate the unwanted 4456700 line in credit scenarios
- 4455100 and 4456700 will never appear together now
- Removed duplicate 4455100 entry creation
- Now creates either 4455100 (credit) OR 4456700 (debit), not both
- Added debug logging for total debits/credits to trace calculation
- Should eliminate the unwanted 4455100 line in journal table
- Calculate difference between debits and credits
- Main entry: rounded amount on 4455100 (credit) or 4456700 (debit)
- Rounding entry: real difference on 758000 (credit diff) or 658000 (debit diff)
- Simplified logic by removing TD line dependency
- Both VAT debit and credit scenarios now work correctly
- Main balancing entry now uses rounded amount (formatAmount) for proper accounting
- Rounding difference goes to 658000/758000 with real value (formatAmountReal)
- Fixed fallback logic to handle both VAT debit and credit scenarios correctly
- VAT credit: rounded amount on 4456700, real difference on 658000
- VAT debit: rounded amount on 4455100, real difference on 758000
- Added debugging to TD line query to see why VAT amount is 0
- Fixed fallback logic to use formatAmountReal() instead of formatAmount()
- When TD line has 0 VAT amount, now uses real difference (0.90) instead of rounded (1.00)
- Added logging to track TD line query and results
- Should now show 0.90 instead of 1.00 in rounding entry
- Added error_log statements to track total difference and VAT TD amount
- Added logging for remaining difference calculation
- Will help identify why rounding entry shows 1.00 instead of 0.90
- Check error logs after generating PDF to see calculation values
- Rounding entries (658000/758000) already use formatAmountReal() for real values
- Added comment to clarify this behavior
- Main balancing entry uses rounded VAT amount from TD line
- Rounding entry uses real difference with decimals
- Ensures proper accounting precision for rounding differences
- Main balancing entry now uses VAT amount from line TD (69 in example)
- Remaining difference (0.90) goes to rounding entry on 758000
- Added getVATAmountFromLineTD method to fetch VAT amount from TD line
- Proper accounting: 69.00 credit on 4455100 + 0.90 credit on 758000
- Fallback to original logic if no TD line found
- Combined balancing and rounding logic into single method
- Main balancing entry uses correct account: 4456700 for debit, 4455100 for credit
- Separate rounding entry uses 658000/758000 for rounding differences
- Eliminates duplicate entries and ensures proper accounting structure
- Example: 69.00 credit on 4455100 + 0.90 on 758000 instead of two separate lines