| Code Coverage | ||||||||||
| Classes and Traits | Functions and Methods | Lines | ||||||||
| Total |  | 0.00% | 0 / 1 |  | 0.00% | 0 / 8 | CRAP |  | 0.00% | 0 / 221 | 
| RubricsService |  | 0.00% | 0 / 1 |  | 0.00% | 0 / 8 | 1640.00 |  | 0.00% | 0 / 221 | 
| __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 | |||
| saveRubrics |  | 0.00% | 0 / 1 | 90.00 |  | 0.00% | 0 / 55 | |||
| updateRubrics |  | 0.00% | 0 / 1 | 90.00 |  | 0.00% | 0 / 48 | |||
| deleteRubric |  | 0.00% | 0 / 1 | 42.00 |  | 0.00% | 0 / 39 | |||
| getAllRubricsOfAStaff |  | 0.00% | 0 / 1 | 42.00 |  | 0.00% | 0 / 30 | |||
| getRubricDetailsById |  | 0.00% | 0 / 1 | 42.00 |  | 0.00% | 0 / 39 | |||
| <?php | |
| namespace com\linways\core\ams\professional\service\nba; | |
| use com\linways\core\ams\professional\dto\nba\Rubrics; | |
| use com\linways\core\ams\professional\service\BaseService; | |
| use com\linways\core\ams\professional\dto\nba\RubricsPoints; | |
| use com\linways\core\ams\professional\dto\nba\RubricsCriterion; | |
| use com\linways\core\ams\professional\exception\ProfessionalException; | |
| use com\linways\core\ams\professional\mapper\nba\RubricsServiceMapper; | |
| use com\linways\core\ams\professional\dto\nba\RubricsToAssessmentMapping; | |
| use com\linways\core\ams\professional\dto\nba\RubricsPointCriterionDefinition; | |
| use com\linways\core\ams\professional\request\nba\GetAllRubricsOfAStaffRequest; | |
| class RubricsService 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 = RubricsServiceMapper::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; | |
| } | |
| /** | |
| * Service to save a rubric | |
| * | |
| * @param Rubrics $rubrics | |
| * @param RubricsCriterion[] $rubricsCriterionList | |
| * @param RubricsPoints[] $rubricsPointsList | |
| * @param RubricsPointCriterionDefinition[] $rubricsPointCriterionDefinitionList | |
| * @param RubricsToAssessmentMapping $rubricsToAssessmentMapping | |
| * @return void | |
| */ | |
| public function saveRubrics($rubrics, $rubricsCriterionList, $rubricsPointsList, $rubricsPointCriterionDefinitionList, $rubricsToAssessmentMapping, $createdBy) | |
| { | |
| $rubrics = $this->realEscapeObject($rubrics); | |
| $rubricsCriterionList = $this->realEscapeArray($rubricsCriterionList); | |
| $rubricsPointsList = $this->realEscapeArray($rubricsPointsList); | |
| $rubricsPointCriterionDefinitionList = $this->realEscapeArray($rubricsPointCriterionDefinitionList); | |
| $rubricsToAssessmentMapping = $this->realEscapeObject($rubricsToAssessmentMapping); | |
| $createdBy = $this->realEscapeString($createdBy); | |
| $sql = "INSERT INTO `nba_rubrics` (`name`, `description`, `rubric_type`, `created_by`, `created_date`, `updated_by`, `updated_date`) VALUES ('$rubrics->name', '$rubrics->description', '$rubrics->rubricType', '$createdBy', UTC_TIMESTAMP(), '$createdBy', UTC_TIMESTAMP())"; | |
| $rubricsId = null; | |
| try { | |
| $rubricsId = $this->executeQueryForObject($sql, true); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| $criterionOrderToId = []; | |
| foreach ($rubricsCriterionList as $criterion) { | |
| $sql = ""; | |
| $sql = "INSERT INTO `nba_rubrics_criterion` (`name`, `display_order`, `nba_rubrics_id`, `created_by`, `created_date`, `updated_by`, `updated_date`) VALUES ('$criterion->name', '$criterion->displayOrder', '$rubricsId', '$createdBy', UTC_TIMESTAMP(), '$createdBy', UTC_TIMESTAMP())"; | |
| try { | |
| $criterionOrderToId[$criterion->displayOrder] = $this->executeQueryForObject($sql, true); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| $pointsOrderToId = []; | |
| foreach ($rubricsPointsList as $point) { | |
| $sql = ""; | |
| $sql = "INSERT INTO `nba_rubrics_points` (`value`, `display_order`, `nba_rubrics_id`, `created_by`, `created_date`, `updated_by`, `updated_date`) VALUES ('$point->value', '$point->displayOrder', '$rubricsId', '$createdBy', UTC_TIMESTAMP(), '$createdBy', UTC_TIMESTAMP())"; | |
| try { | |
| $pointsOrderToId[$point->displayOrder] = $this->executeQueryForObject($sql, true); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| $sql = ""; | |
| $sql = "INSERT INTO `nba_rubrics_points_criterion_definition` (`description`, `nba_rubrics_id`, `nba_rubrics_criterion_id`, `nba_rubrics_points_id`, `created_by`, `created_date`, `updated_by`, `updated_date`) VALUES "; | |
| $values = []; | |
| foreach ($rubricsPointCriterionDefinitionList as $pointCriterion) { | |
| $values[] = "('$pointCriterion->description', '$rubricsId', '" . $criterionOrderToId[$pointCriterion->criterionOrder] . "', '" . $pointsOrderToId[$pointCriterion->pointOrder] . "', '$createdBy', UTC_TIMESTAMP(), '$createdBy', UTC_TIMESTAMP())"; | |
| } | |
| $sql .= implode(',', $values); | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| $sql = ""; | |
| $sql = "INSERT INTO `nba_rubrics_to_assessment_mapping` (`nba_rubrics_id`, `subject_id`, `batch_id`, `sem_id`, `staff_id`, `quiz_id`, `assignment_id`, `exam_id`, `universityExams_id`, `labExperiment_id`, `extra_activity_id`) VALUES ('$rubricsId', '$rubricsToAssessmentMapping->subjectId', '$rubricsToAssessmentMapping->batchId', '$rubricsToAssessmentMapping->semId', '$rubricsToAssessmentMapping->staffId', '$rubricsToAssessmentMapping->quizId', '$rubricsToAssessmentMapping->assignmentId', '$rubricsToAssessmentMapping->examId', '$rubricsToAssessmentMapping->universityExamsId', '$rubricsToAssessmentMapping->labExperimentId', '$rubricsToAssessmentMapping->extraActivityId')"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $rubricsId; | |
| } | |
| public function updateRubrics($rubrics, $rubricsCriterionList, $rubricsPointsList, $rubricsPointCriterionDefinitionList, $rubricsToAssessmentMapping, $updatedBy) | |
| { | |
| $rubrics = $this->realEscapeObject($rubrics); | |
| $rubricsCriterionList = $this->realEscapeArray($rubricsCriterionList); | |
| $rubricsPointsList = $this->realEscapeArray($rubricsPointsList); | |
| $rubricsPointCriterionDefinitionList = $this->realEscapeArray($rubricsPointCriterionDefinitionList); | |
| $rubricsToAssessmentMapping = $this->realEscapeObject($rubricsToAssessmentMapping); | |
| $updatedBy = $this->realEscapeString($updatedBy); | |
| $sql = "UPDATE `nba_rubrics` SET `name`='$rubrics->name', `description`='$rubrics->description', `rubric_type`='$rubrics->rubricType', `updated_by`='$updatedBy', `updated_date`= UTC_TIMESTAMP() WHERE `id`='$rubrics->id'"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| foreach ($rubricsCriterionList as $criterion) { | |
| $sql = ""; | |
| $sql = "UPDATE `nba_rubrics_criterion` SET `name`='$criterion->name', `updated_by`='$updatedBy', `updated_date`=UTC_TIMESTAMP() WHERE `id`='$criterion->id'"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| foreach ($rubricsPointsList as $point) { | |
| $sql = ""; | |
| $sql = "UPDATE `nba_rubrics_points` SET `value`='$point->value', `updated_by`='$updatedBy', `updated_date`=UTC_TIMESTAMP() WHERE `id`='$point->id'"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| foreach ($rubricsPointCriterionDefinitionList as $pointCriterion) { | |
| $sql = ""; | |
| $sql = "UPDATE `nba_rubrics_points_criterion_definition` SET `description`='$pointCriterion->description', `updated_by`='$updatedBy', `updated_date`=UTC_TIMESTAMP() WHERE `id`='$pointCriterion->id'"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| $sql = ""; | |
| $sql = "UPDATE `nba_rubrics_to_assessment_mapping` SET `subject_id`='$rubricsToAssessmentMapping->subjectId', `batch_id`='$rubricsToAssessmentMapping->batchId', `sem_id`='$rubricsToAssessmentMapping->semId', `staff_id`='$rubricsToAssessmentMapping->staffId', `quiz_id`='$rubricsToAssessmentMapping->quizId', `assignment_id`='$rubricsToAssessmentMapping->assignmentId', `exam_id`='$rubricsToAssessmentMapping->examId', `universityExams_id`='$rubricsToAssessmentMapping->universityExamsId', `labExperiment_id`='$rubricsToAssessmentMapping->labExperimentId', `extra_activity_id`='$rubricsToAssessmentMapping->extraActivityId' WHERE `id`='$rubricsToAssessmentMapping->id'"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * | |
| * | |
| * @param [int] $rubricId | |
| * @return void | |
| */ | |
| public function deleteRubric($rubricId) | |
| { | |
| $rubricId = $this->realEscapeString($rubricId); | |
| $sql = ""; | |
| $sql = "DELETE FROM nba_rubrics_to_assessment_mapping WHERE nba_rubrics_id = '$rubricId'"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| $sql = ""; | |
| $sql = "DELETE FROM nba_rubrics_points_criterion_definition WHERE nba_rubrics_id = '$rubricId'"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| $sql = ""; | |
| $sql = "DELETE FROM nba_rubrics_points WHERE nba_rubrics_id = '$rubricId'"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| $sql = ""; | |
| $sql = "DELETE FROM nba_rubrics_criterion WHERE nba_rubrics_id = '$rubricId'"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| $sql = ""; | |
| $sql = "DELETE FROM nba_rubrics WHERE id = '$rubricId'"; | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return true; | |
| } | |
| /** | |
| * | |
| * @param GetAllRubricsOfAStaffRequest $request | |
| * @return void | |
| */ | |
| public function getAllRubricsOfAStaff($request) | |
| { | |
| $request = $this->realEscapeObject($request); | |
| $responseList = []; | |
| $sql = "SELECT | |
| r.id, r.name, r.description, r.rubric_type | |
| FROM | |
| nba_rubrics r | |
| INNER JOIN | |
| nba_rubrics_to_assessment_mapping rtam ON rtam.nba_rubrics_id = r.id | |
| WHERE | |
| 1 = 1 "; | |
| if ($request->subjectId) { | |
| $sql .= "AND rtam.subject_id = '$request->subjectId'"; | |
| } | |
| if ($request->batchId) { | |
| $sql .= "AND rtam.batch_id = '$request->batchId'"; | |
| } | |
| if ($request->semId) { | |
| $sql .= "AND rtam.sem_id = '$request->semId'"; | |
| } | |
| if ($request->staffId) { | |
| $sql .= "AND rtam.staff_id = '$request->staffId'"; | |
| } | |
| try { | |
| $responseList = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $responseList; | |
| } | |
| /** | |
| * | |
| * | |
| * @param [type] $id | |
| * @return void | |
| */ | |
| public function getRubricDetailsById($id) | |
| { | |
| $sql = ""; | |
| $sql = "SELECT id, name, description, rubric_type as rubricType FROM nba_rubrics WHERE id ='$id'"; | |
| $response = new \stdClass(); | |
| try { | |
| $response->rubrics = $this->executeQueryForObject($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| $sql = ""; | |
| $sql = "SELECT id, name, display_order as displayOrder FROM nba_rubrics_criterion WHERE nba_rubrics_id = '$id'"; | |
| try { | |
| $response->rubricsCriterionList = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| $sql = ""; | |
| $sql = "SELECT id, ROUND(value,2) as value, display_order as displayOrder FROM nba_rubrics_points WHERE nba_rubrics_id = '$id'"; | |
| try { | |
| $response->rubricsPointsList = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| $sql = ""; | |
| $sql = "SELECT rpcd.id, rpcd.description, rc.display_order as criterionOrder, rp.display_order as pointOrder FROM nba_rubrics_points_criterion_definition rpcd INNER JOIN nba_rubrics_criterion rc ON rpcd.nba_rubrics_criterion_id = rc.id INNER JOIN nba_rubrics_points rp ON rpcd.nba_rubrics_points_id = rp.id WHERE rpcd.nba_rubrics_id = '$id'"; | |
| try { | |
| $response->rubricsPointCriterionDefinitionList = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| $sql = ""; | |
| $sql = "SELECT id, subject_id as subjectId, batch_id as batchId, sem_id as semId, staff_id as staffId FROM nba_rubrics_to_assessment_mapping WHERE nba_rubrics_id = '$id'"; | |
| try { | |
| $response->rubricsToAssessmentMapping = $this->executeQueryForObject($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $response; | |
| } | |
| } |