Update ReportController, RequestsController, and PdfHelper
This commit is contained in:
parent
42d5abc25a
commit
ee68d22d15
@ -115,7 +115,7 @@ class ReportController extends BaseController
|
|||||||
$data['ispdf'] = 1;
|
$data['ispdf'] = 1;
|
||||||
|
|
||||||
$html = view('report/template', $data);
|
$html = view('report/template', $data);
|
||||||
$filename = $accessnumber . '.pdf';
|
$filename = $accessnumber . ($eng == 1 ? '_eng' : '') . '.pdf';
|
||||||
$collectionDate = $data['collectionDate'] ?? '';
|
$collectionDate = $data['collectionDate'] ?? '';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
@ -139,15 +139,81 @@ class RequestsController extends BaseController
|
|||||||
{
|
{
|
||||||
$userid = session('userid');
|
$userid = session('userid');
|
||||||
$db = \Config\Database::connect();
|
$db = \Config\Database::connect();
|
||||||
|
|
||||||
// Set REPORT_LANG to 1 (English)
|
// Set REPORT_LANG to 1 (English)
|
||||||
$sql = "UPDATE GDC_CMOD.dbo.CM_REQUESTS SET REPORT_LANG=1 WHERE ACCESSNUMBER='$accessnumber'";
|
$sql = "UPDATE GDC_CMOD.dbo.CM_REQUESTS SET REPORT_LANG=1 WHERE ACCESSNUMBER='$accessnumber'";
|
||||||
$db->query($sql);
|
$db->query($sql);
|
||||||
|
|
||||||
// Log the action
|
// Log the action
|
||||||
$logAudit = "INSERT INTO GDC_CMOD.dbo.AUDIT_EVENTS (ACCESSNUMBER, EVENT_TYPE, USERID, EVENT_AT) VALUES (?, 'SET_ENG', ?, GETDATE())";
|
$logAudit = "INSERT INTO GDC_CMOD.dbo.AUDIT_EVENTS (ACCESSNUMBER, EVENT_TYPE, USERID, EVENT_AT) VALUES (?, 'SET_ENG', ?, GETDATE())";
|
||||||
$db->query($logAudit, [$accessnumber, $userid]);
|
$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'
|
||||||
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,7 +19,7 @@ class PdfHelper
|
|||||||
$data['ispdf'] = 1;
|
$data['ispdf'] = 1;
|
||||||
|
|
||||||
$html = view('report/template', $data);
|
$html = view('report/template', $data);
|
||||||
$filename = $accessnumber . '.pdf';
|
$filename = $accessnumber . ($eng == 1 ? '_eng' : '') . '.pdf';
|
||||||
|
|
||||||
return $this->postHtmlToSpooler($html, $filename);
|
return $this->postHtmlToSpooler($html, $filename);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user