Update ReportController, RequestsController, and PdfHelper

This commit is contained in:
mahdahar 2026-02-26 13:13:27 +07:00
parent 42d5abc25a
commit ee68d22d15
3 changed files with 72 additions and 6 deletions

View File

@ -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 {

View File

@ -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'
];
}
}

View File

@ -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);
}