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