From ee68d22d15f5bb8e5ad79a3479016e44e1e04664 Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Thu, 26 Feb 2026 13:13:27 +0700 Subject: [PATCH] Update ReportController, RequestsController, and PdfHelper --- app/Controllers/ReportController.php | 2 +- app/Controllers/RequestsController.php | 74 ++++++++++++++++++++++++-- app/Libraries/PdfHelper.php | 2 +- 3 files changed, 72 insertions(+), 6 deletions(-) diff --git a/app/Controllers/ReportController.php b/app/Controllers/ReportController.php index 882d641..74c0435 100644 --- a/app/Controllers/ReportController.php +++ b/app/Controllers/ReportController.php @@ -115,7 +115,7 @@ class ReportController extends BaseController $data['ispdf'] = 1; $html = view('report/template', $data); - $filename = $accessnumber . '.pdf'; + $filename = $accessnumber . ($eng == 1 ? '_eng' : '') . '.pdf'; $collectionDate = $data['collectionDate'] ?? ''; try { diff --git a/app/Controllers/RequestsController.php b/app/Controllers/RequestsController.php index fce09ee..31f2ec3 100644 --- a/app/Controllers/RequestsController.php +++ b/app/Controllers/RequestsController.php @@ -139,15 +139,81 @@ class RequestsController extends BaseController { $userid = session('userid'); $db = \Config\Database::connect(); - + // Set REPORT_LANG to 1 (English) $sql = "UPDATE GDC_CMOD.dbo.CM_REQUESTS SET REPORT_LANG=1 WHERE ACCESSNUMBER='$accessnumber'"; $db->query($sql); - + // Log the action $logAudit = "INSERT INTO GDC_CMOD.dbo.AUDIT_EVENTS (ACCESSNUMBER, EVENT_TYPE, USERID, EVENT_AT) VALUES (?, 'SET_ENG', ?, GETDATE())"; $db->query($logAudit, [$accessnumber, $userid]); - - return $this->response->setJSON(['status' => 'success', 'message' => 'English result created']); + + // Auto-generate English PDF + $pdfResult = $this->generateEngPdf($accessnumber); + + return $this->response->setJSON([ + 'status' => 'success', + 'message' => 'English result created', + 'pdf' => $pdfResult + ]); + } + + private function generateEngPdf(string $accessnumber): array + { + $db = \Config\Database::connect(); + $reportHelper = new \App\Libraries\ReportHelper($db); + + $data = $reportHelper->getReportData($accessnumber, 1); + $data['eng'] = 1; + $data['accessnumber'] = $accessnumber; + $data['ispdf'] = 1; + + $html = view('report/template', $data); + $filename = $accessnumber . '_eng.pdf'; + + // Post to spooler + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, 'http://glenlis:3000/api/pdf/generate'); + curl_setopt($ch, CURLOPT_POST, 1); + + $payload = [ + 'html' => $html, + 'filename' => $filename + ]; + + if (!empty($data['collectionDate'])) { + $payload['collectionDate'] = $data['collectionDate']; + } + + curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload)); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_HTTPHEADER, [ + 'Content-Type: application/json' + ]); + curl_setopt($ch, CURLOPT_TIMEOUT, 10); + + $response = curl_exec($ch); + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + + if ($httpCode !== 200) { + log_message('error', "PDF spooler returned HTTP $httpCode for ENG result $accessnumber"); + return ['success' => false, 'error' => 'Failed to queue PDF generation']; + } + + $responseData = json_decode($response, true); + + // Log PDF generation + $stepType = 'ENG_PDF'; + $stepStatus = 'English'; + $sqlLog = "INSERT INTO GDC_CMOD.dbo.AUDIT_REQUESTS(ACCESSNUMBER, STEPDATE, STEPTYPE, STEPSTATUS) + VALUES (?, GETDATE(), ?, ?)"; + $db->query($sqlLog, [(string)$accessnumber, $stepType, $stepStatus]); + + return [ + 'success' => true, + 'jobId' => $responseData['jobId'] ?? null, + 'message' => 'English PDF queued for generation' + ]; } } diff --git a/app/Libraries/PdfHelper.php b/app/Libraries/PdfHelper.php index ec868d3..44ee894 100644 --- a/app/Libraries/PdfHelper.php +++ b/app/Libraries/PdfHelper.php @@ -19,7 +19,7 @@ class PdfHelper $data['ispdf'] = 1; $html = view('report/template', $data); - $filename = $accessnumber . '.pdf'; + $filename = $accessnumber . ($eng == 1 ? '_eng' : '') . '.pdf'; return $this->postHtmlToSpooler($html, $filename); }