Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 15 |
CRAP | |
0.00% |
0 / 244 |
| UniversityExamCoPoRuleService | |
0.00% |
0 / 1 |
|
0.00% |
0 / 15 |
3306.00 | |
0.00% |
0 / 244 |
| __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 |
|||
| insertUniversityCoPoRules | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 18 |
|||
| deleteCOPORulesOfUniversityExam | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 12 |
|||
| getUniversityExamRules | |
0.00% |
0 / 1 |
342.00 | |
0.00% |
0 / 71 |
|||
| getDataForUniversityExamRules | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 19 |
|||
| upsertUniversityAttainmentRules | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 10 |
|||
| upsertUniversityAttainmentRulesForDepartment | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 10 |
|||
| deleteUniversityAttainmentRule | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 9 |
|||
| deleteUniversityAttainmentRuleForDepartment | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 9 |
|||
| getRulesForUniversityAttainment | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 28 |
|||
| getRulesForUniversityAttainmentForSubject | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 17 |
|||
| getRulesForUniversityAttainmentForDepartment | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 15 |
|||
| getEndSemesterExamDetails | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 16 |
|||
| <?php | |
| namespace com\linways\core\ams\professional\service\nba; | |
| use com\linways\core\ams\professional\util\CommonUtil; | |
| use com\linways\core\ams\professional\service\BaseService; | |
| use com\linways\core\ams\professional\service\BatchService; | |
| use com\linways\core\ams\professional\service\DepartmentService; | |
| use com\linways\core\ams\professional\exception\ProfessionalException; | |
| use com\linways\core\ams\professional\dto\nba\NBASubjectAssessmentCoValue; | |
| use com\linways\core\ams\professional\mapper\nba\UniversityExamCoPoRuleServiceMapper; | |
| class UniversityExamCoPoRuleService 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 = UniversityExamCoPoRuleServiceMapper::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 [type] $rules | |
| * @return void | |
| */ | |
| public function insertUniversityCoPoRules($rules) | |
| { | |
| $rules = $this->realEscapeArray($rules); | |
| if (!empty($rules)) { | |
| $rule = $rules[0]; | |
| $this->deleteCOPORulesOfUniversityExam($rule->subjectId, $rule->batchId, $rule->semId); | |
| } | |
| $sql = "INSERT INTO `nba_university_exam_co_mapping_rules` (`co_id`, `po_id`, `value`, `from_percent`, `to_percent`, `distribution_type`, `subject_id`, `sem_id`, `batch_id`, `staff_id`, `created_by`, `created_date`, `updated_by`, `updated_date`) VALUES "; | |
| $values = []; | |
| foreach ($rules as $rule) { | |
| $values[] = "(".($rule->coId?$rule->coId:'NULL').", ".($rule->poId?$rule->poId:'NULL').", '$rule->value', '$rule->fromPercent', '$rule->toPercent', '$rule->distributionType', '$rule->subjectId', '$rule->semId', '$rule->batchId', '$rule->staffId', '$rule->createdBy', UTC_TIMESTAMP(), $rule->updatedBy, UTC_TIMESTAMP())"; | |
| } | |
| $sql .= implode(',', $values); | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| public function deleteCOPORulesOfUniversityExam($subjectId, $batchId, $semId) | |
| { | |
| $subjectId = $this->realEscapeString($subjectId); | |
| $batchId = $this->realEscapeString($batchId); | |
| $semId = $this->realEscapeString($semId); | |
| $sql = "DELETE FROM nba_university_exam_co_mapping_rules WHERE subject_id = '$subjectId' AND batch_id = '$batchId' AND sem_id = '$semId'"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return true; | |
| } | |
| public function getUniversityExamRules($batchId,$semId,$subjectId,$mapToCoCheck = null){ | |
| $subjectId = $this->realEscapeString($subjectId); | |
| $batchId = $this->realEscapeString($batchId); | |
| $semId = $this->realEscapeString($semId); | |
| $mapToCoCheck = ($mapToCoCheck === null)? NULL: (int) $this->realEscapeString($mapToCoCheck); | |
| $sql = ""; | |
| $percentList = []; | |
| $sql = "SELECT | |
| id, | |
| co_id AS coId, | |
| po_id AS poId, | |
| value, | |
| from_percent AS fromPercent, | |
| to_percent AS toPercent, | |
| concat(from_percent,'_', to_percent) as fromAndToPercent | |
| FROM | |
| nba_university_exam_co_mapping_rules | |
| WHERE | |
| batch_id = '$batchId' AND sem_id = '$semId' | |
| AND subject_id = '$subjectId'"; | |
| try{ | |
| $responseList = $this->executeQueryForList($sql, $this->mapper[UniversityExamCoPoRuleServiceMapper::GET_UNIVERSITY_RULES]); | |
| }catch(\Exception $e){ | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| $mapToCo = true; | |
| if(( $mapToCoCheck !== null) && count($responseList)==0){ | |
| if($mapToCoCheck===0){ | |
| $mapToCo = false; | |
| }elseif($mapToCoCheck===1){ | |
| $mapToCo = true; | |
| } | |
| } | |
| foreach($responseList as $response){ | |
| $percent = new \stdClass(); | |
| if( $mapToCoCheck !== null){ | |
| if(!empty($response->poList) && ($mapToCoCheck===0)){ | |
| $percent->fromPercent = $response->fromPercent; | |
| $percent->toPercent = $response->toPercent; | |
| $mapToCo = false; | |
| $percent->mappings = CommonUtil::getObjectAttributeAsArrayFromObjectList($response->poList, 'id'); | |
| }elseif(!empty($response->coList) && ($mapToCoCheck===1)){ | |
| $percent->fromPercent = $response->fromPercent; | |
| $percent->toPercent = $response->toPercent; | |
| $mapToCo = true; | |
| $percent->mappings = CommonUtil::getObjectAttributeAsArrayFromObjectList($response->coList, 'id'); | |
| }else{ | |
| if($mapToCoCheck===0){ | |
| $mapToCo = false; | |
| }elseif($mapToCoCheck===1){ | |
| $mapToCo = true; | |
| } | |
| } | |
| }else{ | |
| $percent->fromPercent = $response->fromPercent; | |
| $percent->toPercent = $response->toPercent; | |
| if(!empty($response->poList)){ | |
| $mapToCo = false; | |
| $percent->mappings = CommonUtil::getObjectAttributeAsArrayFromObjectList($response->poList, 'id'); | |
| }elseif(!empty($response->coList)){ | |
| $mapToCo = true; | |
| $percent->mappings = CommonUtil::getObjectAttributeAsArrayFromObjectList($response->coList, 'id'); | |
| } | |
| } | |
| if (property_exists($percent, 'fromPercent')) { | |
| $percentList[] = $percent; | |
| } | |
| } | |
| $response->mapToCo = $mapToCo; | |
| $response->ruleList = $percentList; | |
| return $response; | |
| } | |
| public function getDataForUniversityExamRules($batchId,$semId,$subjectId,$mapToCoCheck = null){ | |
| $response = new \stdClass(); | |
| if($mapToCoCheck===null){ | |
| $rules = $this->getUniversityExamRules($batchId,$semId,$subjectId); | |
| }else{ | |
| $rules = $this->getUniversityExamRules($batchId,$semId,$subjectId,$mapToCoCheck); | |
| } | |
| $response->mapToCo = $rules->mapToCo; | |
| $response->mapTo = "co"; | |
| $response->rules = $rules->ruleList; | |
| if($response->mapToCo){ | |
| $response->mapTo = "co"; | |
| }else{ | |
| $response->mapTo = "po"; | |
| } | |
| $response->coList = NbaCoService::getInstance()->getAllCosBySubjectIdBatchIdAndSemId($subjectId, $batchId, $semId); | |
| $departmentId = BatchService::getInstance()->getBatchDetailsById($batchId)->deptId; | |
| $response->poList = NbaCoPoService::getInstance()->getProgramOutcomeListByBatchId($batchId); | |
| return $response; | |
| } | |
| /** | |
| * | |
| * | |
| * @param [type] $universityAttainment | |
| * @return void | |
| */ | |
| public function upsertUniversityAttainmentRules($universityAttainment){ | |
| $universityAttainment = $this->realEscapeObject($universityAttainment); | |
| $universityAttainment->rule = json_encode($universityAttainment->rule); | |
| $sql = "INSERT INTO `nba_university_attainment_rules` (`batch_id`, `sem_id`, `subject_id`, `rule`, `created_by`, `created_date`, `updated_by`, `updated_date`) VALUES ('$universityAttainment->batchId', '$universityAttainment->semId', '$universityAttainment->subjectId', '$universityAttainment->rule', '$universityAttainment->createdBy', UTC_TIMESTAMP(), '$universityAttainment->updatedBy', UTC_TIMESTAMP()) ON DUPLICATE KEY UPDATE rule='$universityAttainment->rule'"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return true; | |
| } | |
| /** | |
| * Undocumented function | |
| * | |
| * @param [type] $universityAttainment | |
| * @return void | |
| */ | |
| public function upsertUniversityAttainmentRulesForDepartment($universityAttainment){ | |
| $universityAttainment = $this->realEscapeObject($universityAttainment); | |
| $universityAttainment->rule = json_encode($universityAttainment->rule); | |
| $sql = "INSERT INTO `nba_university_attainment_rules_for_department` (`department_id`, `enforce_rule`, `rule`, `created_by`, `created_date`, `updated_by`, `updated_date`) VALUES ('$universityAttainment->deptId', '$universityAttainment->enforceRule', '$universityAttainment->rule', '$universityAttainment->createdBy', UTC_TIMESTAMP(), '$universityAttainment->updatedBy', UTC_TIMESTAMP()) ON DUPLICATE KEY UPDATE rule='$universityAttainment->rule', enforce_rule='$universityAttainment->enforceRule'"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return true; | |
| } | |
| /** | |
| * Undocumented function | |
| * | |
| * @param [type] $request | |
| * @return void | |
| */ | |
| public function deleteUniversityAttainmentRule($request){ | |
| $request = $this->realEscapeObject($request); | |
| $sql = "DELETE FROM nba_university_attainment_rules WHERE batch_id = $request->batchId AND sem_id = $request->semId AND subject_id = $request->subjectId"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return true; | |
| } | |
| /** | |
| * Undocumented function | |
| * | |
| * @param [type] $request | |
| * @return void | |
| */ | |
| public function deleteUniversityAttainmentRuleForDepartment($request){ | |
| $request = $this->realEscapeObject($request); | |
| $sql = "DELETE FROM nba_university_attainment_rules_for_department WHERE department_id = $request->deptId "; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return true; | |
| } | |
| /** | |
| * Undocumented function | |
| * | |
| * @param [type] $batchId | |
| * @param [type] $semId | |
| * @param [type] $subjectId | |
| * @return void | |
| */ | |
| public function getRulesForUniversityAttainment($batchId, $semId, $subjectId) | |
| { | |
| try{ | |
| $deptId = DepartmentService::getInstance()->getDepartmentByBatchId($batchId)->deptID; | |
| }catch(\Exception $e){ | |
| $deptId = null; | |
| } | |
| try{ | |
| $ruleDetails = $this->getRulesForUniversityAttainmentForDepartment($deptId); | |
| }catch(\Exception $e){ | |
| $ruleDetails = null; | |
| } | |
| if(empty($ruleDetails)){ | |
| try{ | |
| $ruleDetails = $this->getRulesForUniversityAttainmentForSubject($batchId, $semId, $subjectId); | |
| if(!empty($ruleDetails)){ | |
| $ruleDetails->departmentRule = false; | |
| } | |
| }catch(\Exception $e){ | |
| $ruleDetails = null; | |
| } | |
| }else{ | |
| $ruleDetails->batchId = $batchId; | |
| $ruleDetails->semId = $semId; | |
| $ruleDetails->subjectId = $subjectId; | |
| $ruleDetails->departmentRule = true; | |
| } | |
| return $ruleDetails; | |
| } | |
| public function getRulesForUniversityAttainmentForSubject($batchId, $semId, $subjectId) | |
| { | |
| $batchId = $this->realEscapeString($batchId); | |
| $semId = $this->realEscapeString($semId); | |
| $subjectId = $this->realEscapeString($subjectId); | |
| $ruleDetails = []; | |
| $sql = ""; | |
| $sql = "SELECT rule, batch_id as batchId, sem_id as semId, subject_id as subjectId FROM nba_university_attainment_rules WHERE batch_id = '$batchId' AND sem_id = '$semId' AND subject_id = '$subjectId'"; | |
| try { | |
| $ruleDetails = $this->executeQueryForObject($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| if (!empty($ruleDetails)) { | |
| $ruleDetails->rule = json_decode($ruleDetails->rule); | |
| } | |
| return $ruleDetails; | |
| } | |
| /** | |
| * Undocumented function | |
| * | |
| * @param [type] $deptId | |
| * @return void | |
| */ | |
| public function getRulesForUniversityAttainmentForDepartment($deptId) | |
| { | |
| $deptId = $this->realEscapeString($deptId); | |
| $ruleDetails = []; | |
| $sql = ""; | |
| $sql = "SELECT rule, department_id as deptId, enforce_rule as enforceRule FROM nba_university_attainment_rules_for_department WHERE department_id = '$deptId'"; | |
| try { | |
| $ruleDetails = $this->executeQueryForObject($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| if (!empty($ruleDetails)) { | |
| $ruleDetails->rule = json_decode($ruleDetails->rule); | |
| } | |
| return $ruleDetails; | |
| } | |
| public function getEndSemesterExamDetails($batchId,$semId,$subjectId) | |
| { | |
| $batchId = $this->realEscapeString($batchId); | |
| $semId = $this->realEscapeString($semId); | |
| $subjectId = $this->realEscapeString($subjectId); | |
| $sql = "SELECT distinct erb.examRegId as examRegId from exam_registration_batches erb left join exam_registration er on er.examregID = erb.examRegId where semID ='$semId' and batchID ='$batchId' and er.shortCourse = '0'"; | |
| $examReg = $this->executeQueryForObject($sql); | |
| if(!empty($examReg) && !empty($examReg->examRegId)){ | |
| $sql = "SELECT distinct examID as id,examName as name from exam where semID ='$semId' and batchID ='$batchId' and subjectID='$subjectId' and examregID='$examReg->examRegId'"; | |
| } | |
| try { | |
| $exam = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $exam; | |
| } | |
| } |