From 7a3cfd1237889577f93662d5a3f74c41dd972caf Mon Sep 17 00:00:00 2001 From: Frank Cools Date: Mon, 6 Oct 2025 17:32:08 +0200 Subject: [PATCH] Fix PDF generation and saving path issues - Modified generateDetailedCA3PDF to save PDFs directly to /documents/declarationtva/YYYY/MM/ - Updated saveValidatedPDF to handle PDFs already in correct location - Added debugging messages to show PDF generation success/failure - Fixed path mismatch between PDF generation and document detection - PDFs should now be properly generated and detected in declaration list --- core/class/declarationtva.class.php | 22 ++++++++++++++-------- core/class/declarationtva_pdf.class.php | 24 ++++++++++++++++++------ declarationtva_view.php | 2 ++ 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/core/class/declarationtva.class.php b/core/class/declarationtva.class.php index c8846c1..6dd1596 100644 --- a/core/class/declarationtva.class.php +++ b/core/class/declarationtva.class.php @@ -1118,14 +1118,20 @@ class DeclarationTVA } } - // Generate filename with proper structure - $filename = 'CA3_' . $this->declaration_number . '_' . date('Y-m-d') . '.pdf'; - $dest_path = $month_dir . $filename; - - // Copy PDF to documents directory - if (!copy($pdf_path, $dest_path)) { - $this->error = "Failed to copy PDF to documents directory"; - return false; + // Check if PDF is already in the correct location + if (strpos($pdf_path, $month_dir) === 0) { + // PDF is already in the correct location, no need to copy + $dest_path = $pdf_path; + } else { + // Generate filename with proper structure + $filename = 'CA3_' . $this->declaration_number . '_' . date('Y-m-d') . '.pdf'; + $dest_path = $month_dir . $filename; + + // Copy PDF to documents directory + if (!copy($pdf_path, $dest_path)) { + $this->error = "Failed to copy PDF to documents directory"; + return false; + } } // Try to add document record to Dolibarr (optional feature) diff --git a/core/class/declarationtva_pdf.class.php b/core/class/declarationtva_pdf.class.php index 0bcafdd..26c40d4 100644 --- a/core/class/declarationtva_pdf.class.php +++ b/core/class/declarationtva_pdf.class.php @@ -181,13 +181,25 @@ class DeclarationTVA_PDF $company->fetch($conf->entity); // Generate PDF filename - $filename = 'CA3_Detailed_' . $declaration->declaration_number . '_' . date('Y-m-d') . '.pdf'; - $filepath = DOL_DATA_ROOT . '/declarationtva/' . $filename; - - // Ensure directory exists - if (!is_dir(DOL_DATA_ROOT . '/declarationtva/')) { - dol_mkdir(DOL_DATA_ROOT . '/declarationtva/'); + $filename = 'CA3_' . $declaration->declaration_number . '_' . date('Y-m-d') . '.pdf'; + + // Create VAT declarations documents directory structure + $vat_declarations_dir = DOL_DATA_ROOT . '/documents/declarationtva/'; + $year_dir = $vat_declarations_dir . date('Y') . '/'; + $month_dir = $year_dir . date('m') . '/'; + + // Create directories if they don't exist + if (!is_dir($vat_declarations_dir)) { + dol_mkdir($vat_declarations_dir); } + if (!is_dir($year_dir)) { + dol_mkdir($year_dir); + } + if (!is_dir($month_dir)) { + dol_mkdir($month_dir); + } + + $filepath = $month_dir . $filename; // Generate detailed PDF with breakdown pages $result = $this->generateDetailedPDF($filepath, $declaration, $ca3_data, $company); diff --git a/declarationtva_view.php b/declarationtva_view.php index ec15d50..2568e33 100644 --- a/declarationtva_view.php +++ b/declarationtva_view.php @@ -113,6 +113,8 @@ if ($action == 'validate' && $token) { $save_result = $declarationtva->saveValidatedPDF($id, $pdf_path); if (!$save_result) { setEventMessages("Warning: Declaration validated but PDF save failed: " . $declarationtva->error, null, 'warnings'); + } else { + setEventMessages("PDF generated and saved successfully: " . $pdf_path, null, 'mesgs'); } } else { setEventMessages("Warning: Declaration validated but PDF generation failed: " . $pdf_generator->error, null, 'warnings');