Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 37 |
CRAP | |
0.00% |
0 / 578 |
| DepartmentService | |
0.00% |
0 / 1 |
|
0.00% |
0 / 37 |
12210.00 | |
0.00% |
0 / 578 |
| __construct | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 3 |
|||
| __clone | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 2 |
|||
| getInstance | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 5 |
|||
| getAllDepartmentForApi | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 26 |
|||
| getDepartmentsByBatchAssociation | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 30 |
|||
| getDepartmentByCourseTypesString | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 25 |
|||
| getDepartmentById | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 11 |
|||
| getDepartmentByCourseTypeID | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 12 |
|||
| getDepartmentByCourseTypeIDForReports | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 21 |
|||
| getDepartmentByBatchCourseType | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 15 |
|||
| getDepartmentByCourseTypes | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 19 |
|||
| getLibraryStaffAssociatedDepartments | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 10 |
|||
| getAccessionPrefixNotSetDepartmentsByBatchCourseType | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 12 |
|||
| getDepartments | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 21 |
|||
| getValidTeachingDepartments | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 13 |
|||
| getDepartmentIdList | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 9 |
|||
| getTimeTableAdminDepartments | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 19 |
|||
| getDepartmentSubjectsByBatches | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 11 |
|||
| getCourseTypesByDeptId | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 10 |
|||
| getDepartmentByBatchId | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 8 |
|||
| getDepartmentByMultiBatchId | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 8 |
|||
| getDepartmentByCode | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 12 |
|||
| getDepartmentsByCourseType | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 15 |
|||
| getAllDepartment | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 9 |
|||
| searchDepartment | |
0.00% |
0 / 1 |
132.00 | |
0.00% |
0 / 38 |
|||
| getDepartmentsByRequest | |
0.00% |
0 / 1 |
132.00 | |
0.00% |
0 / 65 |
|||
| getAllDepartmentForFormways | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 26 |
|||
| getDepartmentNameById | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 9 |
|||
| getHandlingDepartmentBySubjectId | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 18 |
|||
| getDepartmentsFromInternalMarkAssignedStaff | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 21 |
|||
| createDepartment | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 9 |
|||
| updateDepartment | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 12 |
|||
| getAllDepartmentForDataImport | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 8 |
|||
| getDepartmentByStaff | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 16 |
|||
| getAllDepartmentForFilter | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 8 |
|||
| getAllProgramByDepartmentForFilter | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 14 |
|||
| getdepartmentName | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 8 |
|||
| <?php | |
| namespace com\linways\core\ams\professional\service; | |
| use com\linways\base\util\RequestUtil; | |
| use com\linways\base\exception\CoreException; | |
| use com\linways\core\ams\professional\dto\Subject; | |
| use com\linways\core\ams\professional\constant\ExamType; | |
| use com\linways\core\ams\professional\mapper\DepartmentServiceMapper; | |
| use com\linways\core\ams\professional\exception\ProfessionalException; | |
| use com\linways\core\ams\professional\request\SearchDepartmentRequest; | |
| use com\linways\core\ams\professional\request\api\GetAllDepartmentsRequest; | |
| class DepartmentService extends BaseService | |
| { | |
| // /Condition 1 - Presence of a static member variable | |
| private static $_instance = null; | |
| private $mapper = []; | |
| // /Condition 2 - Locked down the constructor | |
| private function __construct() | |
| { | |
| $this->mapper = DepartmentServiceMapper::getInstance()->getMapper(); | |
| } | |
| // Prevent any oustide instantiation of this class | |
| // /Condition 3 - Prevent any object or instance of that class to be cloned | |
| private function __clone() | |
| { | |
| } | |
| // Prevent any copy of this object | |
| // /Condition 4 - Have a single globally accessible static method | |
| public static function getInstance() | |
| { | |
| if (!is_object(self::$_instance)) // or if( is_null(self::$_instance) ) or if( self::$_instance == null ) | |
| self::$_instance = new self(); | |
| return self::$_instance; | |
| } | |
| /** | |
| * | |
| * @param GetAllDepartmentsRequest $request | |
| * @return object|array|\com\linways\base\util\$objectList[] | |
| * @throws ProfessionalException | |
| * @author gadheyan | |
| */ | |
| public function getAllDepartmentForApi(GetAllDepartmentsRequest $request) | |
| { | |
| $sql = ""; | |
| $request = $this->realEscapeObject($request); | |
| $responseList = []; | |
| $sql = "SELECT | |
| deptID AS id, | |
| deptName AS name, | |
| departmentDesc AS description | |
| FROM | |
| department WHERE 1=1 "; | |
| if ($request) { | |
| if ($request->id) { | |
| $sql .= " AND deptID = $request->id"; | |
| } else if (!empty($request->ids)) { | |
| $sql .= " AND deptID in ('" . implode("','", $request->ids) . "')"; | |
| } | |
| if ($request->deptShow) { | |
| $sql .= " AND deptShow = $request->deptShow"; | |
| } | |
| } | |
| try { | |
| return $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * get all batch associated departments | |
| * @param string $sortBy | |
| * @param string $sortOrder | |
| * @return array $departmentList | |
| * @throws ProfessionalException | |
| */ | |
| public function getDepartmentsByBatchAssociation($sortBy = "deptName", $sortOrder = "ASC", $courseTypeId = null) | |
| { | |
| $departmentList = []; | |
| $condition = ""; | |
| if ($courseTypeId) { | |
| $condition = " WHERE b.courseTypeID = $courseTypeId "; | |
| } | |
| $sql = "SELECT DISTINCT d.deptID as id,d.deptName as name, | |
| d.departmentDesc as description, | |
| d.deptShow,d.admissionshow | |
| FROM department d INNER JOIN batches b ON b.deptID = d.deptID $condition | |
| ORDER BY $sortBy $sortOrder"; | |
| //to get External department | |
| $extDeptSql = "SELECT DISTINCT d.deptID as id,d.deptName as name, | |
| d.departmentDesc as description, | |
| d.deptShow,d.admissionshow | |
| FROM department d WHERE d.departmentSpecialization ='" . ExamType::EXTERNAL . "'"; | |
| try { | |
| $departmentList = $this->executeQueryForList($sql); | |
| $departmentExt = $this->executeQueryForObject($extDeptSql); | |
| if($departmentExt && !empty($departmentList)){ | |
| $departmentList[] = $departmentExt; | |
| if($sortBy == "deptName"){ | |
| usort($departmentList, function ($a, $b) { | |
| return $a->name > $b->name; | |
| }); | |
| } | |
| } | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $departmentList; | |
| } | |
| /** | |
| * get all associated departments by Course Types | |
| * @param string $sortBy | |
| * @param string $sortOrder | |
| * @return array $departmentList | |
| * @throws ProfessionalException | |
| */ | |
| public function getDepartmentByCourseTypesString($sortBy = "deptName", $sortOrder = "ASC", $courseTypeId = NULL) | |
| { | |
| $departmentList = []; | |
| $condition = ""; | |
| if ($courseTypeId) { | |
| $condition = " INNER JOIN batches b ON b.deptID = d.deptID WHERE b.courseTypeID IN (" . $courseTypeId . ")"; | |
| } | |
| $sql = "(SELECT d.deptID as id,d.deptName as name, | |
| d.departmentDesc as description, | |
| d.deptShow,d.admissionshow | |
| FROM department d WHERE d.deptID NOT IN (SELECT DISTINCT d.deptID | |
| FROM department d | |
| INNER JOIN batches b ON b.deptID = d.deptID) ORDER BY $sortBy $sortOrder) | |
| UNION | |
| (SELECT d.deptID as id,d.deptName as name, | |
| d.departmentDesc as description, | |
| d.deptShow,d.admissionshow | |
| FROM department d $condition | |
| ORDER BY $sortBy $sortOrder)"; | |
| try { | |
| $departmentList = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $departmentList; | |
| } | |
| /** | |
| * get department details by id | |
| * @param int $deptId | |
| * @return object $department | |
| * @throws ProfessionalException | |
| */ | |
| public function getDepartmentById($deptId) | |
| { | |
| $department = NULL; | |
| $sql = "SELECT deptID as id,deptName as name, | |
| departmentDesc as description FROM department WHERE deptID=$deptId"; | |
| try { | |
| $department = $this->executeQueryForObject($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $department; | |
| } | |
| /** | |
| * get departments by coursetypeID | |
| * @param int $courseTypeID | |
| * @return object|array|\com\linways\base\util\$objectList[] | |
| * @throws ProfessionalException | |
| */ | |
| public function getDepartmentByCourseTypeID($courseTypeID) | |
| { | |
| $departments = []; | |
| try { | |
| $sql = "SELECT DISTINCT dept.* from assigned_dept_courses assigned | |
| INNER JOIN department dept ON assigned.deptId = dept.deptID | |
| WHERE assigned.courseTypeId = $courseTypeID"; | |
| $departments = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $departments; | |
| } | |
| /** | |
| * get departments by coursetypeID for Reports | |
| * @param int $courseTypeID | |
| * @return object|array|\com\linways\base\util\$objectList[] | |
| * @throws ProfessionalException | |
| * @author Ajay C | |
| */ | |
| public function getDepartmentByCourseTypeIDForReports($courseTypeID) | |
| { | |
| $departments = []; | |
| try { | |
| $sql = "SELECT | |
| DISTINCT | |
| d.deptID , | |
| d.deptName | |
| from | |
| batches b | |
| inner join course_type ct on | |
| ct.courseTypeID = b.courseTypeID | |
| inner join department d on | |
| b.deptID = d.deptID | |
| where | |
| b.courseTypeID = '$courseTypeID'"; | |
| $departments = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $departments; | |
| } | |
| /** | |
| * @param int $courseTypeId | |
| * @return object|array|\com\linways\base\util\$objectList[] | |
| * @throws ProfessionalException | |
| * @author sanoop | |
| * get department with course type | |
| */ | |
| public function getDepartmentByBatchCourseType($courseTypeId) | |
| { | |
| $departments = NULL; | |
| $sql = "SELECT DISTINCT dept.deptID AS id,dept.deptName AS name, dept.departmentDesc as description,dept.deptShow, | |
| dept.admissionshow | |
| FROM department dept | |
| INNER JOIN batches bth ON bth.deptID=dept.deptID AND bth.batchHide=0 | |
| INNER JOIN batch_course_type bct ON bct.id=bth.patternID | |
| WHERE bct.id=$courseTypeId"; | |
| try { | |
| $departments = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $departments; | |
| } | |
| /** | |
| * @param $courseTypeIds | |
| * @return object|array| | |
| * @throws ProfessionalException | |
| * @author jithin vijayan | |
| * get department with course type | |
| */ | |
| public function getDepartmentByCourseTypes($courseTypeIds) | |
| { | |
| $departments = NULL; | |
| $courseTypeIds = $this->realEscapeArray($courseTypeIds); | |
| $sql = "SELECT DISTINCT dept.deptID AS id,dept.deptName AS name, dept.departmentDesc as description,dept.deptShow, | |
| dept.admissionshow | |
| FROM department dept | |
| INNER JOIN batches bth ON bth.deptID=dept.deptID AND bth.batchHide=0 | |
| INNER JOIN course_type bct ON bct.courseTypeID=bth.courseTypeID | |
| WHERE 1=1 "; | |
| if (!empty($courseTypeIds) && count($courseTypeIds) > 0) { | |
| $sql .= " AND bct.courseTypeID IN (" . implode(",", $courseTypeIds) . ")"; | |
| } | |
| try { | |
| $departments = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $departments; | |
| } | |
| /** | |
| * get library staff associated departments | |
| * @param int $libraryStaffId | |
| * @return object|array|\com\linways\base\util\$objectList[] | |
| * @throws ProfessionalException | |
| */ | |
| public function getLibraryStaffAssociatedDepartments($libraryStaffId) | |
| { | |
| $departmentList = NULL; | |
| $sql = "SELECT DISTINCT d . deptID as id,d . deptName as name, if (lsd . staffId,1,0) as selected FROM department d INNER JOIN batches b ON b . deptID = d . deptID LEFT JOIN libraryStaffDepartment lsd ON lsd . deptId = d . deptID AND lsd . staffID = $libraryStaffId"; | |
| try { | |
| $departmentList = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $departmentList; | |
| } | |
| public function getAccessionPrefixNotSetDepartmentsByBatchCourseType($courseTypeId) | |
| { | |
| $departments = NULL; | |
| $sql = "select distinct dept . deptID as id,dept . deptName as name, | |
| dept . departmentDesc as description, | |
| dept . deptShow,dept . admissionshow from department dept INNER JOIN batches bth ON bth . deptID = dept . deptID AND bth . batchHide = 0 INNER JOIN batch_course_type bct ON bct . id = bth . patternID LEFT JOIN accessionPrefix ap ON ap . deptId = dept . deptID AND ap . courseTypeId = bct . id WHERE bct . id = $courseTypeId AND ap . id is null"; | |
| try { | |
| $departments = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $departments; | |
| } | |
| /** | |
| * get departments | |
| * @param bool $showHidden | |
| * @param string $sortBy | |
| * @param string $sortOrder | |
| * @return Department list | |
| * @return Department[] | |
| * @throws \com\linways\base\exception\CoreException | |
| * @throws ProfessionalException | |
| * @throws ProfessionalException | |
| * @throws CoreException | |
| */ | |
| public function getDepartments($showHidden = true, $sortBy = "deptName", $sortOrder = "ASC") | |
| { | |
| $departments = []; | |
| $sql = "SELECT deptID as id, | |
| deptName as name, | |
| deptName as text, | |
| departmentDesc as description, | |
| deptShow, | |
| admissionShow | |
| from department "; | |
| if (!$showHidden) { | |
| $sql .= "WHERE deptShow = 1 "; | |
| } | |
| $sql .= "order By $sortBy $sortOrder "; | |
| // Validate sort order and sort by | |
| RequestUtil::validateSortOrder($sortBy, $sortOrder); | |
| try { | |
| $departments = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException(ProfessionalException::QUERY_EXECUTION_FAILED, $e->getMessage()); | |
| } | |
| return $departments; | |
| } | |
| /** | |
| * @return array|Object | |
| * @throws ProfessionalException | |
| * @author jithinvijayan | |
| */ | |
| public function getValidTeachingDepartments() | |
| { | |
| $departments = []; | |
| $sql = "SELECT DISTINCT d.deptID as id,d.deptName as name,d.departmentDesc as description | |
| FROM department d | |
| INNER JOIN sd_relation sr on d.deptID = sr.deptID | |
| WHERE d.deptShow =1 AND d.admissionshow=0"; | |
| try { | |
| $departments = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $departments; | |
| } | |
| public function getDepartmentIdList($showHidden = true, $sortBy = "deptName", $sortOrder = "ASC") | |
| { | |
| $departmentList = []; | |
| $departmentIdList = []; | |
| $departmentList = $this->getDepartments($showHidden, $sortBy, $sortOrder); | |
| foreach ($departmentList as $department) { | |
| $departmentIdList[] = $department->id; | |
| } | |
| return $departmentIdList; | |
| } | |
| /** | |
| * Get timetable privillege admin departments | |
| * @param int $adminTypeId | |
| * @param string $sortBy | |
| * @param string $sortOrder | |
| * @return \com\linways\base\connection\Object | |
| * @throws ProfessionalException | |
| */ | |
| public function getTimeTableAdminDepartments($adminTypeId, $sortBy = "name", $sortOrder = "ASC", $showHiddenDept = true) | |
| { | |
| $departments = []; | |
| $adminTypeId = $this->realEscapeString($adminTypeId); | |
| $sql_depts = null; | |
| $sql_all_selected = "select id FROM timtable_admin_dept_privilleges WHERE adminTypeId = $adminTypeId and deptId = 0"; | |
| try { | |
| $allDeptSelected = $this->executeQueryForObject($sql_all_selected); | |
| $showHiddenDeptCondition = !$showHiddenDept ? " and d . deptShow = 1" : ""; | |
| if (empty($allDeptSelected)) { | |
| $sql_depts = "SELECT d . deptID as id,d . deptName as name,d . departmentDesc as description,d . deptShow,d . admissionshow FROM department d inner join timtable_admin_dept_privilleges tadp on tadp . deptId = d . deptID WHERE tadp . adminTypeId = $adminTypeId $showHiddenDeptCondition order by $sortBy $sortOrder"; | |
| } else { | |
| $sql_depts = "SELECT d . deptID as id,d . deptName as name,d . departmentDesc as description,d . deptShow,d . admissionshow FROM department d where 1 = 1 $showHiddenDeptCondition order by $sortBy $sortOrder "; | |
| } | |
| $departments = $this->executeQueryForList($sql_depts); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $departments; | |
| } | |
| /** | |
| * Get subjects in all batches of a department | |
| * @param int $deptId | |
| * @param int $courseTypeId | |
| * @return Object | |
| * @throws ProfessionalException | |
| */ | |
| public function getDepartmentSubjectsByBatches($deptId, $courseTypeId) | |
| { | |
| $deptId = $this->realEscapeString($deptId); | |
| $courseTypeId = $this->realEscapeString($courseTypeId); | |
| $sql = "SELECT dept . deptID,dept . deptName,dept . departmentDesc, bat . batchID,bat . batchName,bat . batchStartYear,bat . batchEndYear,bat . semID as currentSemId,sem . semID, sem . semName, sem . year, sa . staffID,sa . staffName,sd . deptName as staffDept,sub . subjectID,sub . subjectName,sub . subjectDesc, sc . subjectcatName AS subjectCategory from department dept inner join batches bat on bat . deptID = dept . deptID inner join semesters sem on sem . semID = bat . semID inner join sbs_relation sr on sr . batchID = bat . batchID and sr . semID = bat . semID inner join staffaccounts sa on sa . staffID = sr . staffID inner join subjects sub on sub . subjectID = sr . subjectID INNER JOIN subject_category sc ON(sc . subjectcatID = sub . subjectcatID) LEFT JOIN department sd on(sa . deptID = sd . deptID) where dept . deptID = " . $deptId . " and patternID = " . $courseTypeId . " and sa . isResigned = 0 order by bat . semID , sub . subjectcatID Desc"; | |
| try { | |
| $depatmentSubjectDetails = $this->executeQueryForList($sql, $this->mapper[DepartmentServiceMapper::GET_DEPARTMENT_DETAILS]); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $depatmentSubjectDetails; | |
| } | |
| /** | |
| * Get course types | |
| * @param int $deptId | |
| * @return \com\linways\base\connection\Object | |
| * @throws ProfessionalException | |
| */ | |
| public function getCourseTypesByDeptId($deptId) | |
| { | |
| $deptId = $this->realEscapeString($deptId); | |
| $sql = "SELECT distinct(patternID), bct . type_name, bct . is_pg, bat . courseTypeID, ct . typeName from department dept inner join batches bat on dept . deptID = bat . deptID inner join batch_course_type bct on bct . id = bat . patternID INNER JOIN course_type ct ON(ct . courseTypeID = bat . courseTypeID AND ct . courseTypeID = bct . courseTypeID) where dept . deptID = " . $deptId; | |
| try { | |
| $couseTypes = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $couseTypes; | |
| } | |
| /** | |
| * get department details using batch id | |
| * @param int $batchId | |
| * @return object|NULL|\com\linways\base\util\$objectList[] | |
| * @throws ProfessionalException | |
| */ | |
| public function getDepartmentByBatchId($batchId) | |
| { | |
| $sql = "SELECT dept .* FROM department dept INNER JOIN batches bat ON bat . deptID = dept . deptID WHERE bat . batchID = $batchId"; | |
| try { | |
| return $this->executeQueryForObject($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * get department details using batch id | |
| * @param int $batchId | |
| * @return object|NULL|\com\linways\base\util\$objectList[] | |
| * @throws ProfessionalException | |
| */ | |
| public function getDepartmentByMultiBatchId($batchId) | |
| { | |
| $sql = "SELECT dept .* FROM department dept INNER JOIN batches bat ON bat . deptID = dept . deptID WHERE bat . batchID in ($batchId)"; | |
| try { | |
| return $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * get department details by dept code | |
| * @param string $deptCode | |
| * @return object $department | |
| * @throws ProfessionalException | |
| */ | |
| public function getDepartmentByCode($deptCode) | |
| { | |
| $department = NULL; | |
| $deptCode = $this->realEscapeString($deptCode); | |
| try { | |
| $sql = "SELECT deptID as id,deptName as name, | |
| departmentDesc as description FROM department WHERE deptName = '$deptCode'"; | |
| $department = $this->executeQueryForObject($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $department; | |
| } | |
| /** | |
| * returns batches by course type id | |
| * NOTE: Same function available above, but their `batch_course_type` joined. | |
| * @param $courseTypeId | |
| * @return Object | |
| * @throws ProfessionalException | |
| */ | |
| public function getDepartmentsByCourseType($courseTypeId) | |
| { | |
| if (empty($courseTypeId)) { | |
| throw new ProfessionalException(ProfessionalException::INVALID_COURSE_TYPE_ID, "Invalid course type Id"); | |
| } | |
| $sql = "SELECT DISTINCT d . deptID as id,d . deptName as name,d . departmentDesc as description | |
| FROM department d | |
| INNER JOIN batches b ON b . deptID = d . deptID AND b . batchHide = 0 | |
| INNER JOIN course_type ct on b . courseTypeID = ct . courseTypeID | |
| WHERE ct . courseTypeID = $courseTypeId"; | |
| try { | |
| return $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * @return Object | |
| * @throws ProfessionalException | |
| */ | |
| public function getAllDepartment() | |
| { | |
| $sql = ""; | |
| $sql = "select deptID,deptName,departmentDesc from department where deptShow = 1;"; | |
| try { | |
| return $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * Searching department by batch,course type,name and department id | |
| * @param SearchDepartmentRequest $request | |
| * @return Object | |
| * @throws ProfessionalException | |
| */ | |
| public function searchDepartment(SearchDepartmentRequest $request) | |
| { | |
| $batchJoin = ""; | |
| $batchCondition = ""; | |
| $courseTypeJoin = ""; | |
| $courseTypeCondition = ""; | |
| if (!empty($request->batchId)) { | |
| $batchJoin = "INNER JOIN batches b ON b . deptID = d . deptID "; | |
| $batchCondition .= " AND b . batchID = $request->batchId"; | |
| } | |
| if (!empty($request->courseTypeId) && empty($request->batchId)) { | |
| $courseTypeJoin = " INNER JOIN batches b ON b . deptID = d . deptID | |
| INNER JOIN course_type ct ON ct . courseTypeID = b . courseTypeID "; | |
| $courseTypeCondition = " AND ct . courseTypeID = $request->courseTypeId"; | |
| } else if (!empty($request->courseTypeId) && !empty($request->batchId)) { | |
| $courseTypeJoin = " INNER JOIN course_type ct ON ct . courseTypeID = b . courseTypeID "; | |
| $courseTypeCondition = " AND ct . courseTypeID = $request->courseTypeId"; | |
| } | |
| $sql = "SELECT DISTINCT d . deptID as id,d . deptName as name, d . departmentDesc as description | |
| FROM department d | |
| $batchJoin $courseTypeJoin WHERE 1 = 1 $batchCondition $courseTypeCondition"; | |
| if (!empty($request->name)) { | |
| $sql .= " AND d . deptName = '$request->name' "; | |
| } | |
| if (!empty($request->id)) { | |
| $sql .= " AND d . deptID = $request->id "; | |
| } | |
| if (!$request->showHiddenDepartment) { | |
| $sql .= " AND d . deptShow = 1"; | |
| } | |
| if (!$request->showAdmissionDepartment) { | |
| $sql .= " AND d . admissionshow = 0"; | |
| } | |
| try { | |
| return $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * get departments by request for exam controller common component | |
| * @return Department list | |
| * @throws AMSException | |
| * @throws ProfessionalException | |
| */ | |
| public function getDepartmentsByRequest($request) | |
| { | |
| $departments = []; | |
| $request = $this->realEscapeObject($request); | |
| $coursePattern = $request->coursePattern; | |
| $courseId = $request->courseId; | |
| $examRegId = $request->examRegId; | |
| $examType = $request->examType; | |
| $batch = $request->batch; | |
| $joinTables = ""; | |
| $whereConditions = ""; | |
| if ($examType || $examRegId) { | |
| if ($examType == ExamType::REGULAR) { | |
| $examTypeBatchTable = "exam_registration_batches"; | |
| $examTypeBatchTableColumn = "examregID"; | |
| } else if ($examType == ExamType::SUPPLY) { | |
| $examTypeBatchTable = "supply_improve_batches"; | |
| $examTypeBatchTableColumn = "exam_supplementary_id"; | |
| } | |
| if ($examType != ExamType::INTERNAL) { | |
| // should remove after Internal exam registraion batches table creation | |
| $joinTables .= " INNER JOIN | |
| $examTypeBatchTable erb ON erb . batchID = b . batchID"; | |
| if ($examRegId) { | |
| $whereConditions .= " AND erb . $examTypeBatchTableColumn IN($examRegId)"; | |
| } | |
| } | |
| } | |
| if ($courseId) { | |
| $joinTables .= " INNER JOIN | |
| course_pattern c ON c . patternID = b . patternID | |
| "; | |
| $whereConditions .= " AND b . patternID IN($courseId) | |
| "; | |
| } | |
| if ($batch) { | |
| $whereConditions .= " AND b . batchID IN($batch) | |
| "; | |
| } | |
| if ($coursePattern) { | |
| $joinTables .= " INNER JOIN | |
| pattern_deptcourses pdc ON pdc . patterncourseID = b . patterncourseID"; | |
| $whereConditions .= " AND b . patterncourseID IN($coursePattern)"; | |
| } | |
| $sql = "SELECT DISTINCT | |
| dept . deptID AS id, | |
| dept . deptName AS name, | |
| dept . departmentDesc AS description, | |
| dept . deptShow, | |
| dept . admissionShow | |
| FROM | |
| department dept | |
| INNER JOIN | |
| batches b ON dept . deptID = b . deptID | |
| $joinTables | |
| WHERE | |
| dept . deptShow = 1 | |
| $whereConditions | |
| ORDER BY | |
| dept . deptName ASC"; | |
| try { | |
| $departments = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException(ProfessionalException::QUERY_EXECUTION_FAILED, $e->getMessage()); | |
| } | |
| return $departments; | |
| } | |
| /** Formways services **/ | |
| /** | |
| * | |
| * @param GetAllDepartmentsRequest $request | |
| * @return object|array|\com\linways\base\util\$objectList[] | |
| * @throws ProfessionalException | |
| * @author gadheyan | |
| */ | |
| public function getAllDepartmentForFormways(GetAllDepartmentsRequest $request) | |
| { | |
| $sql = ""; | |
| $request = $this->realEscapeObject($request); | |
| $responseList = []; | |
| $sql = "SELECT | |
| deptID AS value, | |
| deptName AS name, | |
| departmentDesc AS label | |
| FROM | |
| department WHERE 1=1 "; | |
| if ($request) { | |
| if ($request->id) { | |
| $sql .= " AND deptID = '$request->id'"; | |
| } else if (!empty($request->ids)) { | |
| $sql .= " AND deptID in ('" . implode("','", $request->ids) . "')"; | |
| } | |
| if ($request->deptShow) { | |
| $sql .= " AND deptShow = $request->deptShow"; | |
| } | |
| } | |
| try { | |
| return $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * @param $departmentId | |
| * @return mixed|string | |
| * @throws ProfessionalException | |
| * @author jithinvijayan | |
| */ | |
| public function getDepartmentNameById($departmentId) | |
| { | |
| $departmentId = $this->realEscapeString($departmentId); | |
| $sql = "SELECT deptName as name FROM department where deptID = $departmentId"; | |
| try { | |
| return $this->executeQueryForObject($sql)->name; | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * get handling dept of any subject | |
| * @param $subjectId | |
| * @return object | |
| * @throws ProfessionalException | |
| */ | |
| public function getHandlingDepartmentBySubjectId($subjectId) | |
| { | |
| $subjectId = $this->realEscapeString($subjectId); | |
| $sql = "SELECT | |
| d.deptID, d.deptName, d.departmentDesc, d.admissionshow | |
| FROM | |
| subjects s | |
| INNER JOIN | |
| department d ON s.hdl_deptID = d.deptID | |
| WHERE | |
| d.deptShow = 1 | |
| and s.subjectID = $subjectId"; | |
| try { | |
| $result = $this->executeQueryForObject($sql); | |
| return $result; | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * get departments | |
| * @param $sstaffIdortBy | |
| * @return Department[] | |
| * @throws ProfessionalException | |
| */ | |
| public function getDepartmentsFromInternalMarkAssignedStaff($staffId) | |
| { | |
| $departments = []; | |
| $sql = "SELECT | |
| dept.deptID as id, dept.deptName as name, dept.deptName as text, dept.departmentDesc as description | |
| FROM | |
| assign_staff_internal_mark_entry asime | |
| INNER JOIN | |
| batches bt ON (asime.batchID = bt.batchID) | |
| INNER JOIN | |
| department dept ON (dept.deptID = bt.deptID) | |
| WHERE | |
| asime.adminID = $staffId | |
| GROUP BY dept.deptID | |
| ORDER BY dept.deptName ASC"; | |
| try { | |
| $departments = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException(ProfessionalException::QUERY_EXECUTION_FAILED, $e->getMessage()); | |
| } | |
| return $departments; | |
| } | |
| /** | |
| * Create department | |
| * @param Department $department | |
| * @return id | |
| * @throws ProfessionalException | |
| */ | |
| public function createDepartment($department) | |
| { | |
| $sql = "INSERT INTO department (deptName,departmentDesc,deptShow,admissionShow) | |
| VALUES ('$department->name','$department->description','$department->deptShow','$department->admissionShow');"; | |
| try { | |
| return $this->executeQueryForObject($sql, true); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * update department | |
| * @param Department $department | |
| * @return unknown | |
| * @throws AMSException | |
| */ | |
| public function updateDepartment($department) | |
| { | |
| $sql = "UPDATE department SET | |
| deptName = '$department->name', | |
| departmentDesc = '$department->description', | |
| admissionShow = '$department->admissionShow' WHERE deptId = $department->id"; | |
| try { | |
| $this->executeQuery($sql); | |
| return $department->id; | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * @return Object | |
| * @throws ProfessionalException | |
| */ | |
| public function getAllDepartmentForDataImport() | |
| { | |
| $sql = "SELECT deptID as id,deptName as name from department where deptShow = 1;"; | |
| try { | |
| return $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * @param array $departmentIds | |
| * @return array|Object|Staff[] | |
| * @throws ProfessionalException | |
| */ | |
| public function getDepartmentByStaff($staffIds) | |
| { | |
| $staffs = []; | |
| $staffIds = $this->realEscapeArray($staffIds); | |
| if (!is_array($staffIds)) { | |
| throw new ProfessionalException(ProfessionalException::INVALID_ARGUMENT_TYPE, "Expected array, but got " . gettype($staffIds)); | |
| } | |
| $sql = "SELECT dp.deptID ,dp.deptName FROM staffaccounts sa | |
| INNER JOIN department dp ON dp.deptid = sa.deptId | |
| WHERE sa.staffID IN(" . implode(",", $staffIds) . ") GROUP BY dp.deptID"; | |
| try { | |
| $departments = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $departments; | |
| } | |
| public function getAllDepartmentForFilter() | |
| { | |
| $sql = "SELECT deptID as id,deptName as `name` from department"; | |
| try { | |
| return $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| public function getAllProgramByDepartmentForFilter($deptId) | |
| { | |
| $sql = "SELECT | |
| p.id as id, | |
| p.name as `name` | |
| FROM | |
| program p | |
| INNER JOIN program_department_relation pdr ON | |
| p.id = pdr.program_id WHERE pdr.department_id = '$deptId'"; | |
| try { | |
| return $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * @param array $departmentIds | |
| * @return array | |
| * @author Midhun Shaji | |
| */ | |
| public function getdepartmentName($deptId) | |
| { | |
| $sql = "SELECT deptName from department where 1=1 $deptId"; | |
| try { | |
| return $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| } |