db->table('testdefcal') ->select('testdefcal.*, d.DisciplineName, dept.DepartmentName') ->join('discipline d', 'd.DisciplineID=testdefcal.DisciplineID', 'left') ->join('department dept', 'dept.DepartmentID=testdefcal.DepartmentID', 'left') ->where('testdefcal.TestSiteID', $testSiteID) ->where('testdefcal.EndDate IS NULL') ->get()->getResultArray(); } /** * Check if calculation exists for a test */ public function existsByTestSiteID($testSiteID) { return $this->db->table('testdefcal') ->where('TestSiteID', $testSiteID) ->where('EndDate IS NULL') ->get()->getRowArray(); } /** * Disable calculation by TestSiteID */ public function disableByTestSiteID($testSiteID) { $this->db->table('testdefcal') ->where('TestSiteID', $testSiteID) ->update(['EndDate' => date('Y-m-d H:i:s')]); } /** * Get calculated tests by discipline */ public function getCalcsByDiscipline($disciplineID, $siteID = null) { $builder = $this->select('testdefcal.*, testdefsite.TestSiteCode, testdefsite.TestSiteName') ->join('testdefsite', 'testdefsite.TestSiteID=testdefcal.TestSiteID', 'left') ->where('testdefcal.DisciplineID', $disciplineID) ->where('testdefcal.EndDate IS NULL'); if ($siteID) { $builder->where('testdefsite.SiteID', $siteID); } return $builder->findAll(); } /** * Get calculated tests by department */ public function getCalcsByDepartment($departmentID, $siteID = null) { $builder = $this->select('testdefcal.*, testdefsite.TestSiteCode, testdefsite.TestSiteName') ->join('testdefsite', 'testdefsite.TestSiteID=testdefcal.TestSiteID', 'left') ->where('testdefcal.DepartmentID', $departmentID) ->where('testdefcal.EndDate IS NULL'); if ($siteID) { $builder->where('testdefsite.SiteID', $siteID); } return $builder->findAll(); } }