diff --git a/admin/setup_mvp.php b/admin/setup_mvp.php index 3b495e0..52484c8 100644 --- a/admin/setup_mvp.php +++ b/admin/setup_mvp.php @@ -154,6 +154,12 @@ foreach ($lines_by_section as $section_code => $lines) { print '
Référence: ' . $section_info['notice'] . '
'; } + // Skip D-section lines (25, 26, 28, 29) as they are calculated + if ($section_code == 'D') { + print '
Note: Les lignes de la section D sont calculées automatiquement à partir des autres sections.
'; + continue; + } + print ''; print ''; print ''; diff --git a/core/class/declarationtva.class.php b/core/class/declarationtva.class.php index 957745f..59dca09 100644 --- a/core/class/declarationtva.class.php +++ b/core/class/declarationtva.class.php @@ -276,6 +276,9 @@ class DeclarationTVA } } + // Calculate D-section result lines (25, 26, 28, 29) + $this->calculateDSectionLines($declaration_id, $total_vat_collected, $total_vat_deductible); + // Calculate net amounts $net_vat_due = $total_vat_collected - $total_vat_deductible; $vat_credit = $net_vat_due < 0 ? abs($net_vat_due) : 0; @@ -287,6 +290,69 @@ class DeclarationTVA return true; } + /** + * Calculate D-section result lines (25, 26, 28, 29) + * + * @param int $declaration_id Declaration ID + * @param float $total_vat_collected Total VAT collected + * @param float $total_vat_deductible Total VAT deductible + * @return bool Success + */ + private function calculateDSectionLines($declaration_id, $total_vat_collected, $total_vat_deductible) + { + // Line 25: TVA brute due (Total VAT due) + $line_25_amount = $total_vat_collected; + $this->createCA3Line($declaration_id, '25', 'Calculated from sections A and B', array( + 'base_amount' => 0, + 'vat_amount' => $line_25_amount, + 'total_amount' => $line_25_amount + )); + + // Line 26: TVA déductible totale (Total deductible VAT) + $line_26_amount = $total_vat_deductible; + $this->createCA3Line($declaration_id, '26', 'Calculated from section C', array( + 'base_amount' => 0, + 'vat_amount' => $line_26_amount, + 'total_amount' => $line_26_amount + )); + + // Calculate net VAT due + $net_vat_due = $total_vat_collected - $total_vat_deductible; + + // Line 28: TVA nette due (Net VAT due) - if positive + if ($net_vat_due > 0) { + $this->createCA3Line($declaration_id, '28', 'Calculated: 25 - 26', array( + 'base_amount' => 0, + 'vat_amount' => $net_vat_due, + 'total_amount' => $net_vat_due + )); + } else { + $this->createCA3Line($declaration_id, '28', 'Calculated: 25 - 26', array( + 'base_amount' => 0, + 'vat_amount' => 0, + 'total_amount' => 0 + )); + } + + // Line 29: Crédit de TVA (VAT Credit) - if negative + if ($net_vat_due < 0) { + $vat_credit = abs($net_vat_due); + $this->createCA3Line($declaration_id, '29', 'Calculated: 26 - 25', array( + 'base_amount' => 0, + 'vat_amount' => $vat_credit, + 'total_amount' => $vat_credit + )); + } else { + $this->createCA3Line($declaration_id, '29', 'Calculated: 26 - 25', array( + 'base_amount' => 0, + 'vat_amount' => 0, + 'total_amount' => 0 + )); + } + + return true; + } + /** * Get account amounts for a period *
' . $langs->trans("CA3Line") . '