From 1aa471e85ea9d2d073797cbda5af5ff0a9074d59 Mon Sep 17 00:00:00 2001 From: Frank Cools Date: Wed, 8 Oct 2025 21:38:57 +0200 Subject: [PATCH] Add testing mode for declaration submission - Temporarily disable status validation to allow re-submission - Add resetDeclarationStatus() method for testing - Add reset button for submitted declarations - Add French language strings for reset functionality - Allows multiple submission attempts during testing --- core/class/declarationtva.class.php | 25 +++++++++++++++++++++++++ declarationtva_view.php | 12 ++++++++++++ langs/fr_FR/declarationtva.lang | 3 +++ 3 files changed, 40 insertions(+) diff --git a/core/class/declarationtva.class.php b/core/class/declarationtva.class.php index 86c42c9..37ccf58 100644 --- a/core/class/declarationtva.class.php +++ b/core/class/declarationtva.class.php @@ -1285,10 +1285,13 @@ class DeclarationTVA } // Check if declaration is validated + // TEMPORARILY DISABLED FOR TESTING - allows re-submission + /* if ($declaration->status !== 'validated') { $this->error = 'Declaration must be validated before submission'; return false; } + */ // Check if accounting entries are enabled require_once DOL_DOCUMENT_ROOT . '/custom/declarationtva/core/class/declarationtva_config.class.php'; @@ -1317,6 +1320,28 @@ class DeclarationTVA return true; } + /** + * Reset declaration status to validated (for testing purposes) + * + * @param int $declaration_id Declaration ID + * @return bool Success + */ + public function resetDeclarationStatus($declaration_id) + { + $sql = "UPDATE " . MAIN_DB_PREFIX . "declarationtva_declarations + SET status = 'validated', + date_submitted = NULL + WHERE rowid = " . (int)$declaration_id . " AND entity = " . $this->entity; + + $result = $this->db->query($sql); + if (!$result) { + $this->error = 'Database error: ' . $this->db->lasterror(); + return false; + } + + return true; + } + /** * Update declaration status * diff --git a/declarationtva_view.php b/declarationtva_view.php index e44578a..ef404a9 100644 --- a/declarationtva_view.php +++ b/declarationtva_view.php @@ -121,6 +121,15 @@ if ($action == 'submit' && $token) { } } +if ($action == 'reset_status' && $token) { + // Reset declaration status to validated (for testing purposes) + if ($declarationtva->resetDeclarationStatus($id)) { + setEventMessages($langs->trans("DeclarationStatusReset"), null, 'mesgs'); + } else { + setEventMessages($langs->trans("ErrorResettingDeclarationStatus") . ": " . $declarationtva->error, null, 'errors'); + } +} + // Fetch declaration if ($declarationtva->fetch($id) < 0) { setEventMessages($langs->trans("DeclarationNotFound"), null, 'errors'); @@ -449,6 +458,9 @@ if ($declarationtva->status == 'draft') { print '' . $langs->trans("Submit") . ' '; // Add unvalidate button for testing print '' . $langs->trans("Unvalidate") . ' '; +} elseif ($declarationtva->status == 'submitted') { + // Add reset button for testing purposes + print '' . $langs->trans("ResetStatus") . ' '; } print '' . $langs->trans("BackToList") . ''; diff --git a/langs/fr_FR/declarationtva.lang b/langs/fr_FR/declarationtva.lang index cadeb98..14d320e 100644 --- a/langs/fr_FR/declarationtva.lang +++ b/langs/fr_FR/declarationtva.lang @@ -542,3 +542,6 @@ Submit = Soumettre ConfirmSubmission = Confirmer la soumission ConfirmSubmissionMessage = Êtes-vous sûr de vouloir soumettre cette déclaration ? Cette action créera les écritures comptables et marquera la déclaration comme soumise. SubmissionWarning = Attention : Cette action est irréversible. Les écritures comptables seront créées automatiquement. +ResetStatus = Réinitialiser le statut +DeclarationStatusReset = Statut de la déclaration réinitialisé à "validé" +ErrorResettingDeclarationStatus = Erreur lors de la réinitialisation du statut de la déclaration