db = \Config\Database::connect(); $this->reportHelper = new \App\Libraries\ReportHelper($this->db); helper(['url', 'text']); } public function generate($accessnumber, $eng = 0, $ispdf = 0) { if ($ispdf == 0) { $ispdf = $this->request->getVar('ispdf') ?? 0; } return $this->renderReport($accessnumber, $eng, $ispdf, false); } public function print($accessnumber, $eng = 0, $ispdf = 0) { if ($ispdf == 0) { $ispdf = $this->request->getVar('ispdf') ?? 0; } return $this->renderReport($accessnumber, $eng, $ispdf, true); } private function renderReport($accessnumber, $eng, $ispdf, $shouldLog) { $userroleid = session()->get('userroleid'); if (!in_array($userroleid, [0, 1, 2, 4])) { return $this->response->setStatusCode(403)->setJSON(['message' => 'Unauthorized']); } $data = $this->reportHelper->getReportData($accessnumber, $eng); $data['eng'] = $eng; $data['accessnumber'] = $accessnumber; $data['ispdf'] = $ispdf; if ($shouldLog == true) { $this->logPrintAudit($accessnumber, $data['status']); } return view('report/template', $data); } private function logPrintAudit($accessnumber, $status) { $sql = "INSERT INTO GDC_CMOD.dbo.AUDIT_REQUESTS(ACCESSNUMBER, STEPDATE, STEPTYPE, STEPSTATUS) VALUES(?, GETDATE(), 'PRINT', ?)"; $this->db->query($sql, [$accessnumber, $status]); } }