Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 40 |
CRAP | |
0.00% |
0 / 577 |
CourseFileElementService | |
0.00% |
0 / 1 |
|
0.00% |
0 / 40 |
17292.00 | |
0.00% |
0 / 577 |
__construct | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 2 |
|||
__clone | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 2 |
|||
getInstance | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 5 |
|||
getAllCourseElementTypes | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 8 |
|||
createElement | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 9 |
|||
updateElement | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 11 |
|||
getAllCustomCourseElements | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 15 |
|||
createContent | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 9 |
|||
updateContent | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 11 |
|||
fetchContentsByElementId | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 12 |
|||
getAllDepartmentAsAttributes | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 31 |
|||
removeMapContent | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 8 |
|||
InsertMapContent | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 9 |
|||
getAllProgramAsAttributes | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 30 |
|||
getAllSubjectsAsAttributes | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 31 |
|||
getAllBatchAsAttributes | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 31 |
|||
deleteContent | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 8 |
|||
deleteCustomElement | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 8 |
|||
fetchCustomElementObjectivesForSubject | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 17 |
|||
fetchCustomElementObjectivesForDepartment | |
0.00% |
0 / 1 |
90.00 | |
0.00% |
0 / 35 |
|||
fetchCustomElementObjectivesForProgram | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 17 |
|||
fetchCustomElementObjectivesForBatch | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 17 |
|||
fetchCustomElementObjectivesForCommon | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 17 |
|||
getCourseFileConstants | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 14 |
|||
getCourseDiaryConstants | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 14 |
|||
updateCourseFileConstants | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 10 |
|||
updateCourseDiaryConstants | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 10 |
|||
updateCourseFileConstantsProperties | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 10 |
|||
updateCourseDiaryConstantsProperties | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 10 |
|||
getCourseFileConstantPropertiesByName | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 9 |
|||
getCourseDiaryConstantPropertiesByName | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 9 |
|||
getCourseDiaryConstantsForRender | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 11 |
|||
getCourseFileConstantsForRender | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 11 |
|||
updateOrder | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 22 |
|||
updateCourseDiaryOrder | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 13 |
|||
editCourseFileSettingsOrder | |
0.00% |
0 / 1 |
56.00 | |
0.00% |
0 / 29 |
|||
getCourseFileConstantsCustom | |
0.00% |
0 / 1 |
90.00 | |
0.00% |
0 / 27 |
|||
resetCourseFileCustomOrder | |
0.00% |
0 / 1 |
90.00 | |
0.00% |
0 / 19 |
|||
getCourseFileWeekDate | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 8 |
|||
updateShow | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 8 |
<?php | |
namespace com\linways\core\ams\professional\service; | |
use com\linways\core\ams\professional\constant\courseFileAndDiary\CourseFileAndDiary; | |
use com\linways\core\ams\professional\exception\ProfessionalException; | |
use stdClass; | |
class CourseFileElementService extends BaseService | |
{ | |
private static $_instance = null; | |
// /Condition 2 - Locked down the constructor | |
private function __construct() | |
{ | |
} | |
// 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; | |
} | |
/** | |
* @return Array | |
* @throws ProfessionalException | |
*/ | |
public function getAllCourseElementTypes() | |
{ | |
$sql = "SELECT id, name from course_file_element_types"; | |
try { | |
return $this->executeQueryForList($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @throws ProfessionalException | |
*/ | |
public function createElement($request) | |
{ | |
$sql = "INSERT INTO `course_file_elements` (`name`, `element_type_id`, `permission`, `created_by`) | |
VALUES ('$request->elementName', '$request->elementType', '$request->updatedPermissions', '$request->adminId') "; | |
try { | |
return $this->executeQuery($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @throws ProfessionalException | |
*/ | |
public function updateElement($request) | |
{ | |
$sql = "UPDATE course_file_elements | |
SET name = '$request->elementName', element_type_id = '$request->elementType', | |
permission = '$request->updatedPermissions' ,created_by= '$request->adminId' | |
WHERE id= '$request->elementId'"; | |
try { | |
$this->executeQuery($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Array | |
* @throws ProfessionalException | |
*/ | |
public function getAllCustomCourseElements() | |
{ | |
$sql = "SELECT cfe.id, cfe.name, cfe.element_type_id as elementTypeId,permission, | |
cfet.name as elementType | |
from course_file_elements cfe inner join course_file_element_types cfet | |
on cfet.id = cfe.element_type_id"; | |
try { | |
$customElements = $this->executeQueryForList($sql); | |
foreach($customElements as $element){ | |
$element->permission = json_decode($element->permission); | |
} | |
return $customElements; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Object|Array | |
* @throws ProfessionalException | |
*/ | |
public function createContent($request) | |
{ | |
$sql = "INSERT INTO course_file_element_content (`title`, `content`, `course_file_element_id`, `course_file_element_type_id`, `created_by`, `created_at`, `updated_by`, `updated_at`) | |
VALUES ('$request->title', '$request->content', '$request->courseFileElementId', '$request->courseFileElementTypeId', '$request->adminId', now(), '$request->adminId', now()) "; | |
try { | |
return $this->executeQuery($sql,true); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Object|Array | |
* @throws ProfessionalException | |
*/ | |
public function updateContent($request) | |
{ | |
$staffId = $request->adminId?$request->adminId:$request->staffId; | |
$sql = "UPDATE course_file_element_content | |
SET title= '$request->title', content = '$request->content', updated_by = '$staffId', updated_at = NOW() | |
WHERE id = '$request->contentId'"; | |
try { | |
$this->executeQuery($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Object|Array | |
* @throws ProfessionalException | |
*/ | |
public function fetchContentsByElementId($elemendId) | |
{ | |
$sql = "SELECT cfec.id ,cfec.title,cfec.content, cfec.course_file_element_id as courseFileElementId,cfec.course_file_element_type_id as elementTypeId, | |
cfec.attribute_id as attributeId, cfet.name as elementTypeName | |
FROM course_file_element_content cfec inner join course_file_element_types cfet | |
on cfet.id = cfec.course_file_element_type_id | |
WHERE cfec.course_file_element_id = $elemendId"; | |
try { | |
return $this->executeQueryForList($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Object | |
* @throws ProfessionalException | |
*/ | |
public function getAllDepartmentAsAttributes($request) | |
{ | |
$joinCond = "";$limit = "";$cond =''; | |
if($request->id){ | |
$joinCond .= " AND cfecm.course_file_content_id = '$request->id'"; | |
} | |
if($request->searchText){ | |
$cond .= " AND d.deptName like '%$request->searchText%' OR d.departmentDesc like '%$request->searchText%' "; | |
} | |
if($request->currentPage && $request->recordsPerPage){ | |
$startFrom = ($request->currentPage -1) * $request->recordsPerPage; | |
$limit .=" limit ".$startFrom." , ".$request->recordsPerPage; | |
} | |
// $cond =" AND d.deptID NOT IN(SELECT cfecm.attribute_id from course_file_element_content_map cfecm | |
// inner join course_file_element_content cfec on cfec.id = cfecm.course_file_content_id | |
// inner join course_file_element_types cfet on cfet.id = cfec.course_file_element_type_id | |
// where cfet.name = 'DEPARTMENT' AND cfecm.course_file_content_id <> '$request->id') "; | |
$sql = "SELECT d.deptID as atrId, concat(d.deptName,'-',d.departmentDesc) as atrName, cfecm.id as contentMapId from department d | |
left join course_file_element_content_map cfecm | |
on cfecm.attribute_id = d.deptID $joinCond | |
where deptShow = 1 $cond | |
order by d.deptName ASC $limit"; | |
$sqlCount = "SELECT count(d.deptID) as count from department d | |
left join course_file_element_content_map cfecm | |
on cfecm.attribute_id = d.deptID $joinCond | |
where deptShow = 1 $cond | |
order by d.deptName ASC"; | |
try { | |
$response = new stdClass(); | |
$response->result = $this->executeQueryForList($sql); | |
$response->totalRecordsCount = $this->executeQueryForObject($sqlCount)->count; | |
return $response; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @throws ProfessionalException | |
*/ | |
public function removeMapContent($request) | |
{ | |
$sql = "DELETE from course_file_element_content_map where id = $request->contentMapId"; | |
try { | |
$this->executeQuery($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @throws ProfessionalException | |
*/ | |
public function InsertMapContent($request) | |
{ | |
$sql = "INSERT INTO course_file_element_content_map(`course_file_content_id`, `attribute_id`, `created_by`, `created_at`) | |
VALUES ('$request->contentId', '$request->attrId', '$request->adminId', now()) "; | |
try { | |
return $this->executeQuery($sql,true); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Object | |
* @throws ProfessionalException | |
*/ | |
public function getAllProgramAsAttributes($request) | |
{ | |
$joinCond = "";$limit = "";$cond = ''; | |
if($request->id){ | |
$joinCond .= " AND cfecm.course_file_content_id = '$request->id' "; | |
} | |
if($request->searchText){ | |
$cond .= " AND cp.patternName like '%$request->searchText%' "; | |
} | |
if($request->currentPage && $request->recordsPerPage){ | |
$startFrom = ($request->currentPage -1) * $request->recordsPerPage; | |
$limit .=" limit ".$startFrom." , ".$request->recordsPerPage; | |
} | |
// $cond =" AND cp.patternID NOT IN(SELECT cfecm.attribute_id from course_file_element_content_map cfecm | |
// inner join course_file_element_content cfec on cfec.id = cfecm.course_file_content_id | |
// inner join course_file_element_types cfet on cfet.id = cfec.course_file_element_type_id | |
// where cfet.name = 'PROGRAM' AND cfecm.course_file_content_id <> '$request->id') "; | |
$sql = "SELECT cp.patternID as atrId,cp.patternName as atrName, cfecm.id as contentMapId | |
from course_pattern cp left join course_file_element_content_map cfecm | |
on cfecm.attribute_id = cp.patternID $joinCond | |
WHERE 1=1 $cond | |
order by cp.patternName ASC $limit"; | |
$sqlCount = "SELECT count(cp.patternID) as count | |
from course_pattern cp left join course_file_element_content_map cfecm | |
on cfecm.attribute_id = cp.patternID $joinCond | |
order by cp.patternName ASC "; | |
try { | |
$response = new stdClass(); | |
$response->result = $this->executeQueryForList($sql); | |
$response->totalRecordsCount = $this->executeQueryForObject($sqlCount)->count; | |
return $response; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Object | |
* @throws ProfessionalException | |
*/ | |
public function getAllSubjectsAsAttributes($request) | |
{ | |
$joinCond = "";$limit = "";$cond = ''; | |
if($request->id){ | |
$joinCond .= " AND cfecm.course_file_content_id = '$request->id' "; | |
} | |
if($request->searchText){ | |
$cond .= " AND sub.subjectName like '%$request->searchText%' OR sub.subjectDesc like '%$request->searchText%' "; | |
} | |
if($request->currentPage && $request->recordsPerPage){ | |
$startFrom = ($request->currentPage -1) * $request->recordsPerPage; | |
$limit .=" limit ".$startFrom." , ".$request->recordsPerPage; | |
} | |
// $cond =" AND sub.subjectID NOT IN(SELECT cfecm.attribute_id from course_file_element_content_map cfecm | |
// inner join course_file_element_content cfec on cfec.id = cfecm.course_file_content_id | |
// inner join course_file_element_types cfet on cfet.id = cfec.course_file_element_type_id | |
// where cfet.name = 'SUBJECT' AND cfecm.course_file_content_id <> '$request->id') "; | |
$sql = "SELECT sub.subjectID as atrId,concat(sub.subjectName,'-',sub.subjectDesc) as atrName, cfecm.id as contentMapId | |
from subjects sub left join course_file_element_content_map cfecm | |
on cfecm.attribute_id = sub.subjectID $joinCond | |
WHERE sub.hide != 1 $cond | |
order by sub.subjectName ASC $limit"; | |
$sqlCount = "SELECT count(sub.subjectID) as count | |
from subjects sub left join course_file_element_content_map cfecm | |
on cfecm.attribute_id = sub.subjectID $joinCond | |
WHERE sub.hide != 1 $cond | |
order by sub.subjectName ASC "; | |
try { | |
$response = new stdClass(); | |
$response->result = $this->executeQueryForList($sql); | |
$response->totalRecordsCount = $this->executeQueryForObject($sqlCount)->count; | |
return $response; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Object | |
* @throws ProfessionalException | |
*/ | |
public function getAllBatchAsAttributes($request) | |
{ | |
$joinCond = "";$limit = "";$cond = ''; | |
if($request->id){ | |
$joinCond .= " AND cfecm.course_file_content_id = '$request->id' "; | |
} | |
if($request->searchText){ | |
$cond .= " AND bat.batchName like '%$request->searchText%' "; | |
} | |
if($request->currentPage && $request->recordsPerPage){ | |
$startFrom = ($request->currentPage -1) * $request->recordsPerPage; | |
$limit .=" limit ".$startFrom." , ".$request->recordsPerPage; | |
} | |
$sql = "SELECT bat.batchID AS atrId,bat.batchName AS atrName, cfecm.id AS contentMapId | |
FROM batches bat | |
LEFT JOIN course_file_element_content_map cfecm ON cfecm.attribute_id = bat.batchID $joinCond | |
WHERE bat.batchHide != 1 AND bat.batchName <> 'failed' $cond | |
ORDER BY bat.batchName ASC $limit"; | |
$sqlCount = "SELECT count(bat.batchID) as count | |
from batches bat left join course_file_element_content_map cfecm | |
on cfecm.attribute_id = bat.batchID $joinCond | |
WHERE bat.batchHide != 1 AND bat.batchName <> 'failed' $cond | |
order by bat.batchName ASC "; | |
try { | |
$response = new stdClass(); | |
$response->result = $this->executeQueryForList($sql); | |
$response->totalRecordsCount = $this->executeQueryForObject($sqlCount)->count; | |
return $response; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Object | |
* @throws ProfessionalException | |
*/ | |
public function deleteContent($contentId) | |
{ | |
$sql = "DELETE FROM course_file_element_content where id = $contentId"; | |
try { | |
$this->executeQuery($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Object | |
* @throws ProfessionalException | |
*/ | |
public function deleteCustomElement($elementId) | |
{ | |
$sql = "DELETE FROM course_file_elements where id = $elementId"; | |
try { | |
$this->executeQuery($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Object | |
* @throws ProfessionalException | |
*/ | |
public function fetchCustomElementObjectivesForSubject($request) | |
{ | |
$sql = "SELECT cfec.id as contentId, cfec.title, cfec.content as description, cfe.permission | |
from course_file_element_content cfec | |
inner join course_file_element_content_map cfecm on cfec.id = cfecm.course_file_content_id | |
inner join course_file_elements cfe on cfe.id = cfec.course_file_element_id | |
inner join course_file_element_types cfet on cfet.id = cfe.element_type_id | |
where cfet.name = 'SUBJECT' AND cfecm.attribute_id = $request->subjectId "; | |
try { | |
$result = $this->executeQueryForList($sql); | |
foreach($result as $item){ | |
$item->permission = json_decode($item->permission); | |
} | |
return $result; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Object | |
* @throws ProfessionalException | |
*/ | |
public function fetchCustomElementObjectivesForDepartment($request) | |
{ | |
try { | |
$isPseudoSubject = $request->pseudoSubjectId ? true : false; | |
if($isPseudoSubject) | |
{ | |
$psDetails = PseudoSubjectService::getInstance()->getPseudoSubjectById($request->pseudoSubjectId); | |
#type1 - department elective, #type2 open course,#type3 foundation ,#type4 mentoring | |
if($psDetails->pseudoSubjectTypeId == "1") | |
{ | |
$psDeptID= DepartmentService::getInstance()->getDepartmentByBatchId($request->batchId); | |
} | |
else{ | |
$psDeptID = $psDetails->handlingDepartmentId; | |
} | |
} | |
$deptID = $psDeptID && $isPseudoSubject ? $psDeptID->deptID :""; | |
$dept= DepartmentService::getInstance()->getDepartmentByBatchId($request->batchId); | |
if(!$deptID) | |
{ | |
$deptID = $dept->deptID; | |
} | |
$sql = "SELECT cfec.id as contentId, cfec.title, cfec.content as description, cfe.permission | |
from course_file_element_content cfec | |
inner join course_file_element_content_map cfecm on cfec.id = cfecm.course_file_content_id | |
inner join course_file_elements cfe on cfe.id = cfec.course_file_element_id | |
inner join course_file_element_types cfet on cfet.id = cfe.element_type_id | |
where cfet.name = 'DEPARTMENT' AND cfecm.attribute_id = $deptID "; | |
$result = $this->executeQueryForList($sql); | |
foreach($result as $item){ | |
$item->permission = json_decode($item->permission); | |
} | |
return $result; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Object | |
* @throws ProfessionalException | |
*/ | |
public function fetchCustomElementObjectivesForProgram($request) | |
{ | |
$sql = "SELECT cfec.id as contentId, cfec.title, cfec.content as description, cfe.permission | |
from course_file_element_content cfec | |
inner join course_file_element_content_map cfecm on cfec.id = cfecm.course_file_content_id | |
inner join course_file_elements cfe on cfe.id = cfec.course_file_element_id | |
inner join course_file_element_types cfet on cfet.id = cfe.element_type_id | |
where cfet.name = 'PROGRAM' AND cfecm.attribute_id = $request->coursePatternId "; | |
try { | |
$result = $this->executeQueryForList($sql); | |
foreach($result as $item){ | |
$item->permission = json_decode($item->permission); | |
} | |
return $result; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Object | |
* @throws ProfessionalException | |
*/ | |
public function fetchCustomElementObjectivesForBatch($request) | |
{ | |
$sql = "SELECT cfec.id as contentId, cfec.title, cfec.content as description, cfe.permission | |
from course_file_element_content cfec | |
inner join course_file_element_content_map cfecm on cfec.id = cfecm.course_file_content_id | |
inner join course_file_elements cfe on cfe.id = cfec.course_file_element_id | |
inner join course_file_element_types cfet on cfet.id = cfe.element_type_id | |
where cfet.name = 'BATCH' AND cfecm.attribute_id = $request->batchId "; | |
try { | |
$result = $this->executeQueryForList($sql); | |
foreach($result as $item){ | |
$item->permission = json_decode($item->permission); | |
} | |
return $result; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
/** | |
* @return Object | |
* @throws ProfessionalException | |
*/ | |
public function fetchCustomElementObjectivesForCommon() | |
{ | |
$sql = "SELECT cfec.id as contentId, cfec.title, cfec.content as description, cfe.permission | |
from course_file_element_content cfec | |
inner join course_file_element_content_map cfecm on cfec.id = cfecm.course_file_content_id | |
inner join course_file_elements cfe on cfe.id = cfec.course_file_element_id | |
inner join course_file_element_types cfet on cfet.id = cfe.element_type_id | |
where cfet.name = 'COMMON' AND cfecm.attribute_id = 0 "; | |
try { | |
$result = $this->executeQueryForList($sql); | |
foreach($result as $item){ | |
$item->permission = json_decode($item->permission); | |
} | |
return $result; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function getCourseFileConstants() | |
{ | |
try { | |
$sql = "SELECT id, constant,label, properties, `show` from | |
course_file_and_diary_constants | |
where is_hidden = '0' AND type = '".CourseFileAndDiary::COURSE_FILE."' order by order_no asc"; | |
$result = $this->executeQueryForList($sql); | |
foreach($result as $r){ | |
$r->properties = json_decode($r->properties); | |
} | |
return $result; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function getCourseDiaryConstants() | |
{ | |
try { | |
$sql = "SELECT id, constant, label, properties, `show` | |
from course_file_and_diary_constants | |
where is_hidden = '0' AND type = '".CourseFileAndDiary::COURSE_DIARY."' order by order_no asc"; | |
$result = $this->executeQueryForList($sql); | |
foreach($result as $r){ | |
$r->properties = json_decode($r->properties); | |
} | |
return $result; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function updateCourseFileConstants($request) | |
{ | |
try { | |
$sql = "UPDATE course_file_and_diary_constants | |
SET label = '$request->customLabel' | |
WHERE id= $request->constantId AND type = '".CourseFileAndDiary::COURSE_FILE."' "; | |
$this->executeQuery($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function updateCourseDiaryConstants($request) | |
{ | |
try { | |
$sql = "UPDATE course_file_and_diary_constants | |
SET label = '$request->customLabel' | |
WHERE id= $request->constantId AND type = '".CourseFileAndDiary::COURSE_DIARY."' "; | |
$this->executeQuery($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function updateCourseFileConstantsProperties($request) | |
{ | |
try { | |
$sql = "UPDATE course_file_and_diary_constants | |
SET properties = '$request->updatedElement' | |
WHERE id= $request->constantId AND type = '".CourseFileAndDiary::COURSE_FILE."' "; | |
$this->executeQuery($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function updateCourseDiaryConstantsProperties($request) | |
{ | |
try { | |
$sql = "UPDATE course_file_and_diary_constants | |
SET properties = '$request->updatedElement' | |
WHERE id= $request->constantId "; | |
$this->executeQuery($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function getCourseFileConstantPropertiesByName($name){ | |
try { | |
$sql = "SELECT properties | |
from course_file_and_diary_constants | |
where constant = '$name' AND type = '".CourseFileAndDiary::COURSE_FILE."' "; | |
return $this->executeQueryForObject($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function getCourseDiaryConstantPropertiesByName($name){ | |
try { | |
$sql = "SELECT properties | |
from course_file_and_diary_constants | |
where constant = '$name' AND type = '".CourseFileAndDiary::COURSE_DIARY."' "; | |
return $this->executeQueryForObject($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function getCourseDiaryConstantsForRender() | |
{ | |
try { | |
$sql = "SELECT id as constantId, constant as const,label as name | |
from course_file_and_diary_constants | |
where is_hidden = '0' AND type = '".CourseFileAndDiary::COURSE_DIARY."' | |
order by order_no asc"; | |
return $this->executeQueryForList($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function getCourseFileConstantsForRender() | |
{ | |
try { | |
$sql = "SELECT id as constantId,constant as const,label as name | |
from course_file_and_diary_constants | |
where is_hidden = '0' AND type = '".CourseFileAndDiary::COURSE_FILE."' | |
order by order_no asc"; | |
return $this->executeQueryForList($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function updateOrder($constants,$type) | |
{ | |
if (empty($type)) { | |
throw new ProfessionalException(ProfessionalException::INVALID_PARAMETERS, "Invalid params"); | |
} | |
try { | |
foreach($constants as $key => $constant){ | |
$order = $key+1; | |
$id = $constant['id']; | |
$label = addslashes($constant['label']); | |
$sql = "UPDATE course_file_and_diary_constants SET order_no = $order, label = '$label' | |
WHERE id = $id AND type = '$type'; "; | |
$this->executeQuery($sql); | |
} | |
// update created staff elements | |
$allUpdate = "UPDATE course_settings_staff_order s | |
INNER JOIN course_file_and_diary_constants c ON c.id = s.constant_id | |
SET s.order_no = c.order_no | |
WHERE c.type = '$type';"; | |
$this->executeQuery($allUpdate); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function updateCourseDiaryOrder($constants) | |
{ | |
try { | |
foreach($constants as $key => $constant){ | |
$order = $key+1; | |
$id = $constant['id']; | |
$label = addslashes($constant['label']); | |
$sql = "UPDATE course_file_and_diary_constants SET order_no = $order, label = '$label' WHERE id = $id"; | |
$this->executeQuery($sql); | |
} | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function editCourseFileSettingsOrder($request){ | |
$constants = $request->courseFileSettings; | |
$psId = $request->pseudoSubjectId?$request->pseudoSubjectId:'null'; | |
try { | |
foreach($constants as $key => $constant){ | |
$order = $key+1; | |
$properties = $constant->properties ? json_encode($constant->properties) : ""; | |
$constantId = $constant->constantId; | |
if(!$constantId){ | |
continue; | |
} | |
$staffOrderConstantId = $constant->customConstantId; | |
if($staffOrderConstantId){ | |
$sql = "UPDATE course_settings_staff_order | |
SET order_no = '$order', | |
properties = '$properties', | |
updatedBy = '$request->updatedBy', | |
updatedDate = now() | |
WHERE id= $staffOrderConstantId "; | |
} | |
else{ | |
$sql = "INSERT INTO course_settings_staff_order (`constant_id`, `sbs_id`, `pseudosubject_id`, `order_no`, `properties`, `createdBy`, `updatedBy`) | |
VALUES ('$constantId', '$request->sbsId', '$psId', '$order', '$properties', '$request->createdBy', '$request->updatedBy')"; | |
} | |
$this->executeQuery($sql); | |
} | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function getCourseFileConstantsCustom($request) | |
{ | |
$where = []; | |
$request->pseudoSubjectId ? $where [] = "ss.pseudosubject_id = '$request->pseudoSubjectId'" : "" ; | |
$request->staffId ? $where [] = "sbs.staffID = '$request->staffId'" : "" ; | |
$request->batchId ? $where [] = "sbs.batchID = '$request->batchId'" : "" ; | |
$request->subjectId ? $where [] = "sbs.subjectID = '$request->subjectId'" : "" ; | |
$request->semId ? $where [] = "sbs.semId = '$request->semId'" : "" ; | |
if(!$request->type){ | |
throw new ProfessionalException (ProfessionalException::INVALID_REQUEST, "Invalid request"); | |
} | |
try { | |
$sql = "SELECT con.id AS constantId, t.id AS customConstantId,con.constant AS const,con.label AS name, t.properties, con.properties as column_properties, IF(t.id, t.order_no, con.order_no) as orderNo, con.show | |
FROM course_file_and_diary_constants con | |
LEFT JOIN ( | |
SELECT ss.id, ss.constant_id, ss.sbs_id, ss.pseudosubject_id, ss.order_no, ss.is_course_diary, ss.properties | |
FROM course_settings_staff_order ss | |
INNER JOIN sbs_relation sbs ON sbs.sbsID = ss.sbs_id | |
".($where?" WHERE ".implode(' AND ',$where):"")." | |
) t on t.constant_id = con.id | |
WHERE con.type = '$request->type' and con.is_hidden = 0 | |
GROUP BY con.id | |
ORDER BY IF(t.id, t.order_no, con.order_no) ASC;"; | |
return $this->executeQueryForList($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function resetCourseFileCustomOrder($request) | |
{ | |
$where = []; | |
$request->pseudoSubjectId ? $where [] = "ss.pseudosubject_id = '$request->pseudoSubjectId'" : "" ; | |
$request->staffId ? $where [] = "sbs.staffID = '$request->staffId'" : "" ; | |
$request->batchId ? $where [] = "sbs.batchID = '$request->batchId'" : "" ; | |
$request->subjectId ? $where [] = "sbs.subjectID = '$request->subjectId'" : "" ; | |
$request->semId ? $where [] = "sbs.semId = '$request->semId'" : "" ; | |
if(!$request->type){ | |
throw new ProfessionalException (ProfessionalException::INVALID_REQUEST, "Invalid request"); | |
} | |
try { | |
$sql = "DELETE ss FROM course_settings_staff_order ss | |
INNER JOIN sbs_relation sbs ON sbs.sbsID = ss.sbs_id | |
".($where?" WHERE ".implode(' AND ',$where):"").""; | |
return $this->executeQuery($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function getCourseFileWeekDate($batchId,$semId) | |
{ | |
try { | |
$sql = "SELECT week_startDate as startDate, week_endDate as endDate FROM coursefile_timetable WHERE batchID = ".$batchId." AND semID = ".$semId.""; | |
return $this->executeQueryForObject($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function updateShow($id) | |
{ | |
try { | |
$sql = "update course_file_and_diary_constants set `show` = if(`show`= 1,0,1) where id = '$id';"; | |
return $this->executeQuery($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
} |