diff --git a/declarationtvaindex.php b/declarationtvaindex.php
index ec488a0..4a86a0b 100644
--- a/declarationtvaindex.php
+++ b/declarationtvaindex.php
@@ -141,14 +141,33 @@ if (empty($declarations)) {
}
print '
' . $langs->trans("Status" . ucfirst($d['status'])) . $status_icon . ' | ';
- // Show VAT amount with proper label
- // Check if there's a VAT credit (refund) or net VAT due
- if ($d['vat_credit'] > 0) {
- // VAT refund case
- print '' . price($d['vat_credit']) . ' ' . $langs->trans("VATToReceive") . ' | ';
- } elseif ($d['net_vat_due'] > 0) {
- // VAT due case - DEBUG: Show raw value
- print '' . price($d['net_vat_due']) . ' ' . $langs->trans("NetVATDue") . ' (DB: ' . $d['net_vat_due'] . ') | ';
+ // Show VAT amount with proper label - use CA-3 line values instead of main table
+ $declarationtva = new DeclarationTVA($db, $conf->entity);
+ $ca3_lines = $declarationtva->getCA3Lines($d['rowid']);
+
+ // Get line 32 (net VAT due) and lines 26/27 (VAT credit)
+ $line_32_amount = 0;
+ $line_26_amount = 0;
+ $line_27_amount = 0;
+
+ foreach ($ca3_lines as $line) {
+ if ($line['ca3_line'] == '32') {
+ $line_32_amount = $line['vat_amount'];
+ } elseif ($line['ca3_line'] == '26') {
+ $line_26_amount = $line['vat_amount'];
+ } elseif ($line['ca3_line'] == '27') {
+ $line_27_amount = $line['vat_amount'];
+ }
+ }
+
+ // Determine which value to show based on CA-3 lines
+ if ($line_32_amount > 0) {
+ // VAT due case - use line 32
+ print '' . price($line_32_amount) . ' ' . $langs->trans("NetVATDue") . ' | ';
+ } elseif ($line_26_amount > 0 || $line_27_amount > 0) {
+ // VAT refund case - use line 26 or 27 (whichever is not 0)
+ $refund_amount = $line_26_amount > 0 ? $line_26_amount : $line_27_amount;
+ print '' . price($refund_amount) . ' ' . $langs->trans("VATToReceive") . ' | ';
} else {
// Balanced case
print '' . price(0) . ' ' . $langs->trans("VATBalanced") . ' | ';