diff --git a/declarationtva_create.php b/declarationtva_create.php
new file mode 100644
index 0000000..aae441c
--- /dev/null
+++ b/declarationtva_create.php
@@ -0,0 +1,150 @@
+hasRight("declarationtva", "declarationtva", "write")) {
+ accessforbidden();
+}
+
+// Load language files
+$langs->load("declarationtva@declarationtva");
+
+// Initialize objects
+$declarationtva = new DeclarationTVA($db, $conf->entity);
+$config = new DeclarationTVA_Config($db, $conf->entity);
+$period = new DeclarationTVA_Period($db, $conf->entity);
+
+// Handle form submission
+$action = GETPOST('action', 'alpha');
+$period_id = GETPOST('period_id', 'int');
+$declaration_name = GETPOST('declaration_name', 'alpha');
+$start_date = GETPOST('start_date', 'alpha');
+$end_date = GETPOST('end_date', 'alpha');
+
+$error = '';
+$success = '';
+
+if ($action == 'create' && $period_id > 0) {
+ // Create the declaration
+ $declaration_id = $declarationtva->createDeclaration($period_id, $declaration_name);
+
+ if ($declaration_id > 0) {
+ $success = $langs->trans("DeclarationCreated");
+ // Redirect to view the created declaration
+ header("Location: declarationtva_view.php?id=" . $declaration_id);
+ exit;
+ } else {
+ $error = $langs->trans("ErrorCreatingDeclaration") . ": " . $declarationtva->error;
+ }
+}
+
+// Get available periods
+$periods = $period->getAllPeriods();
+
+// Page title
+$title = $langs->trans("CreateDeclaration");
+llxHeader('', $title);
+
+// Print page header
+print load_fiche_titre($title, '', 'title_accountancy');
+
+// Display messages
+if ($error) {
+ setEventMessages($error, null, 'errors');
+}
+if ($success) {
+ setEventMessages($success, null, 'mesgs');
+}
+
+// Print form
+print '
';
+print '
' . $langs->trans("DeclarationDetails") . '
';
+
+print '
';
+print '
';
+
+// Print configuration section
+print '';
+print '
' . $langs->trans("DeclarationTVAConfiguration") . '
';
+print '
';
+print '
';
+
+// Print footer
+llxFooter();
+?>
diff --git a/declarationtva_view.php b/declarationtva_view.php
new file mode 100644
index 0000000..6b94eed
--- /dev/null
+++ b/declarationtva_view.php
@@ -0,0 +1,171 @@
+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);
+
+// Fetch declaration
+if ($declarationtva->fetch($id) < 0) {
+ setEventMessages($langs->trans("DeclarationNotFound"), null, 'errors');
+ header("Location: declarationtvaindex.php");
+ exit;
+}
+
+// Get period information
+$period_info = array();
+if ($declarationtva->period_id > 0) {
+ $period->fetch($declarationtva->period_id);
+ $period_info = array(
+ 'name' => $period->period_name,
+ 'start_date' => $period->start_date,
+ 'end_date' => $period->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 '' . $period_info['name'] . ' | ';
+print '
';
+
+print '';
+print '| ' . $langs->trans("DateRange") . ' | ';
+print '' . dol_print_date($period_info['start_date'], 'day') . ' - ' . dol_print_date($period_info['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 '
';
+
+// Placeholder CA-3 lines
+$ca3_lines = array(
+ 'A1' => array('desc' => 'Opérations imposables (ventes/prestations)', 'amount' => 0),
+ 'A2' => array('desc' => 'Opérations imposables spéciales', 'amount' => 0),
+ 'A3' => array('desc' => 'Services achetés non établis', 'amount' => 0),
+ 'A4' => array('desc' => 'Importations', 'amount' => 0),
+ 'A5' => array('desc' => 'Sorties de régimes suspensifs', 'amount' => 0),
+ '08' => array('desc' => 'Autres opérations imposables', 'amount' => 0),
+ '09' => array('desc' => 'Opérations exonérées', 'amount' => 0),
+ '9B' => array('desc' => 'Opérations non imposables', 'amount' => 0),
+ '17' => array('desc' => 'TVA due acquisitions intracommunautaires', 'amount' => 0),
+ '20' => array('desc' => 'TVA déductible immobilisations', 'amount' => 0),
+ '21' => array('desc' => 'TVA déductible autres biens/services', 'amount' => 0),
+ '22' => array('desc' => 'Crédit de TVA reportable', 'amount' => 0),
+ '25' => array('desc' => 'TVA brute due', 'amount' => 0),
+ '26' => array('desc' => 'TVA déductible totale', 'amount' => 0),
+ '28' => array('desc' => 'TVA nette à payer', 'amount' => 0),
+ '29' => array('desc' => 'Crédit de TVA', 'amount' => 0)
+);
+
+foreach ($ca3_lines as $line => $data) {
+ print '';
+ print '| ' . $line . ' | ';
+ print '' . $data['desc'] . ' | ';
+ print '' . price($data['amount']) . ' | ';
+ print '
';
+}
+
+print '
';
+print '
';
+
+// Print actions
+print '';
+print '
' . $langs->trans("Actions") . '
';
+
+print '
';
+print '
';
+
+// Print footer
+llxFooter();
+?>
diff --git a/langs/en_US/declarationtva.lang b/langs/en_US/declarationtva.lang
index d075944..e33224d 100644
--- a/langs/en_US/declarationtva.lang
+++ b/langs/en_US/declarationtva.lang
@@ -402,3 +402,22 @@ DeclarationSubmitted = Declaration submitted successfully
ErrorCreatingDeclaration = Error creating declaration
ErrorValidatingDeclaration = Error validating declaration
ErrorSubmittingDeclaration = Error submitting declaration
+
+# Create Declaration Page
+DeclarationDetails = Declaration Details
+SelectPeriod = Select Period
+ChoosePeriod = Choose a period
+DeclarationName = Declaration Name
+DeclarationNameHelp = Enter a descriptive name for this declaration (e.g., "Q1 2024 VAT Declaration")
+DateRange = Date Range (Optional)
+DateRangeHelp = Override the period dates if needed
+Cancel = Cancel
+ConfigurationInfo = Make sure your PCG accounts are properly configured before creating declarations.
+
+# View Declaration Page
+ViewDeclaration = View Declaration
+DeclarationNotFound = Declaration not found
+CreatedDate = Created Date
+CA3Amounts = CA-3 Amounts
+CA3Line = CA-3 Line
+BackToList = Back to List
diff --git a/langs/fr_FR/declarationtva.lang b/langs/fr_FR/declarationtva.lang
index a96d4dd..5246d7c 100644
--- a/langs/fr_FR/declarationtva.lang
+++ b/langs/fr_FR/declarationtva.lang
@@ -391,3 +391,22 @@ DeclarationSubmitted = Déclaration soumise avec succès
ErrorCreatingDeclaration = Erreur lors de la création de la déclaration
ErrorValidatingDeclaration = Erreur lors de la validation de la déclaration
ErrorSubmittingDeclaration = Erreur lors de la soumission de la déclaration
+
+# Create Declaration Page
+DeclarationDetails = Détails de la déclaration
+SelectPeriod = Sélectionner la période
+ChoosePeriod = Choisir une période
+DeclarationName = Nom de la déclaration
+DeclarationNameHelp = Entrez un nom descriptif pour cette déclaration (ex: "Déclaration TVA T1 2024")
+DateRange = Plage de dates (Optionnel)
+DateRangeHelp = Remplacer les dates de période si nécessaire
+Cancel = Annuler
+ConfigurationInfo = Assurez-vous que vos comptes PCG sont correctement configurés avant de créer des déclarations.
+
+# View Declaration Page
+ViewDeclaration = Voir la déclaration
+DeclarationNotFound = Déclaration non trouvée
+CreatedDate = Date de création
+CA3Amounts = Montants CA-3
+CA3Line = Ligne CA-3
+BackToList = Retour à la liste