diff --git a/declarationtva_view.php b/declarationtva_view.php
index e69de29..95d848e 100644
--- a/declarationtva_view.php
+++ b/declarationtva_view.php
@@ -0,0 +1,163 @@
+hasRight("declarationtva", "declarationtva", "read")) {
+ accessforbidden();
+}
+
+// Load language files
+$langs->load("declarationtva@declarationtva");
+
+// Get declaration ID
+$id = GETPOST('id', 'int');
+if (empty($id)) {
+ accessforbidden();
+}
+
+// Initialize objects
+$declarationtva = new DeclarationTVA($db, $conf->entity);
+$config = new DeclarationTVA_Config($db, $conf->entity);
+$period = new DeclarationTVA_Period($db, $conf->entity);
+
+// Handle actions
+$action = GETPOST('action', 'alpha');
+$token = GETPOST('token', 'alpha');
+
+if ($action == 'recalculate' && $token) {
+ if ($declarationtva->recalculateCA3Amounts($id)) {
+ setEventMessages($langs->trans("DeclarationRecalculated"), null, 'mesgs');
+ } else {
+ setEventMessages($langs->trans("ErrorRecalculatingDeclaration"), null, 'errors');
+ }
+}
+
+// Fetch declaration
+if ($declarationtva->fetch($id) < 0) {
+ setEventMessages($langs->trans("DeclarationNotFound"), null, 'errors');
+ header("Location: declarationtvaindex.php");
+ exit;
+}
+
+// Use declaration's own dates
+$start_date = $declarationtva->start_date;
+$end_date = $declarationtva->end_date;
+
+// Page title
+$title = $langs->trans("ViewDeclaration") . ' - ' . $declarationtva->declaration_number;
+llxHeader('', $title);
+
+// Print page header
+print load_fiche_titre($title, '', 'title_accountancy');
+
+// Print declaration details
+print '
';
+print '
' . $langs->trans("DeclarationDetails") . '
';
+
+print '
';
+
+print '';
+print '| ' . $langs->trans("DeclarationNumber") . ' | ';
+print '' . $declarationtva->declaration_number . ' | ';
+print '
';
+
+print '';
+print '| ' . $langs->trans("DeclarationName") . ' | ';
+print '' . $declarationtva->declaration_name . ' | ';
+print '
';
+
+print '';
+print '| ' . $langs->trans("Period") . ' | ';
+print '' . dol_print_date($start_date, 'day') . ' - ' . dol_print_date($end_date, 'day') . ' | ';
+print '
';
+
+print '';
+print '| ' . $langs->trans("Status") . ' | ';
+print '' . $langs->trans("Status" . ucfirst($declarationtva->status)) . ' | ';
+print '
';
+
+print '';
+print '| ' . $langs->trans("CreatedDate") . ' | ';
+print '' . dol_print_date($declarationtva->created_date, 'dayhour') . ' | ';
+print '
';
+
+print '
';
+print '
';
+
+// Print CA-3 amounts (placeholder for now)
+print '';
+print '
' . $langs->trans("CA3Amounts") . '
';
+
+print '
';
+
+print '';
+print '| ' . $langs->trans("CA3Line") . ' | ';
+print '' . $langs->trans("Description") . ' | ';
+print '' . $langs->trans("Amount") . ' | ';
+print '
';
+
+// Get actual CA-3 lines from database
+$ca3_lines = $declarationtva->getCA3Lines($id);
+
+if (empty($ca3_lines)) {
+ print '';
+ print '| ' . $langs->trans("NoCA3Data") . ' | ';
+ print '
';
+} else {
+ foreach ($ca3_lines as $line) {
+ print '';
+ print '| ' . $line['ca3_line'] . ' | ';
+ print '' . $line['line_label'] . ' | ';
+ print '' . price($line['vat_amount']) . ' | ';
+ print '
';
+ }
+}
+
+print '
';
+print '
';
+
+// Print actions
+print '';
+print '
' . $langs->trans("Actions") . '
';
+
+print '
';
+print '
';
+
+// Print footer
+llxFooter();
+?>