Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 16 |
CRAP | |
0.00% |
0 / 355 |
| FeedbackService | |
0.00% |
0 / 1 |
|
0.00% |
0 / 16 |
4032.00 | |
0.00% |
0 / 355 |
| __construct | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 3 |
|||
| __clone | n/a |
0 / 0 |
1 | n/a |
0 / 0 |
|||||
| getInstance | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 5 |
|||
| insertFeedbackToBulkOfStudents | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 26 |
|||
| getAllFeedbackTypes | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 16 |
|||
| getAllBulkFeedbacks | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 35 |
|||
| getBulkFeedbackDetails | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 31 |
|||
| deleteBulkFeedback | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 14 |
|||
| updateBulkFeedback | |
0.00% |
0 / 1 |
132.00 | |
0.00% |
0 / 49 |
|||
| getSelectedStudentListOfBulkFeedback | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 36 |
|||
| addFeedbackAboutStudent | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 9 |
|||
| removeFeedbackAboutStudent | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 9 |
|||
| getFeedbackAboutStudent | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 22 |
|||
| addFeedbackAboutStudentForMentorMentee | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 26 |
|||
| getFeedbackAboutStudentForMentorMentee | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 35 |
|||
| removeFeedbackAboutStudentForMentorMentee | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 9 |
|||
| getFeedbackAboutStudentBatch | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 30 |
|||
| <?php | |
| namespace com\linways\core\ams\professional\service; | |
| use com\linways\core\ams\professional\service\BaseService; | |
| use com\linways\core\ams\professional\dto\SettingsConstents; | |
| use com\linways\core\ams\professional\service\CommonService; | |
| use com\linways\core\ams\professional\service\PermissionService; | |
| use com\linways\core\ams\professional\mapper\FeedbackServiceMapper; | |
| use com\linways\core\ams\professional\exception\ProfessionalException; | |
| use com\linways\core\ams\professional\request\SearchBulkFeedbacksRequest; | |
| use com\linways\core\ams\professional\service\nba\ExtraActivitiesService; | |
| use com\linways\core\ams\professional\dto\nba\FeedbackToStudentBulkInsert; | |
| use com\linways\core\ams\professional\request\nba\GetExtraActivityRequest; | |
| use com\linways\core\ams\professional\dto\FeedbackAboutStudent; | |
| class FeedbackService 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 = FeedbackServiceMapper::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 FeedbackToStudentBulkInsert $feedback | |
| * @return void | |
| */ | |
| public function insertFeedbackToBulkOfStudents($feedback) { | |
| $feedback = $this->realEscapeObject($feedback); | |
| $ignoreNotAttendedStudents = CommonService::getInstance()->getSettings(SettingsConstents::STUDENT_EXTRA_ACTITITY, SettingsConstents::IGNORE_NOT_ATTENDED_STUDENTS); | |
| $sqlForWrapperTable = ""; | |
| $sqlForWrapperTable = "INSERT INTO bulk_add_feedback_about_student (name, description, student_feedback_type_id, batchID, semID, subjectID, created_by, created_date, updated_by, updated_date) VALUES ('$feedback->feedbackName', '$feedback->feedbackDescription', '$feedback->feedbackTypeId', '$feedback->batchId', '$feedback->semId', '$feedback->subjectId', '$feedback->createdBy', UTC_TIMESTAMP(), '$feedback->updatedBy', UTC_TIMESTAMP())"; | |
| try { | |
| $bulkInsertId = $this->executeQueryForObject($sqlForWrapperTable, true); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| $sql = ""; | |
| $sql = "INSERT INTO feedback_about_student (studentID, staffID, feedback, feedback_name, createdDate, student_feedback_type_id, created_by, created_date, updated_by, updated_date, bulk_add_feedback_about_student_id, isAttended) VALUES "; | |
| $values = []; | |
| foreach ($feedback->studentIdList as $student) { | |
| if ( $ignoreNotAttendedStudents == 1 && $student['isAttended'] == 0 ) { | |
| continue; | |
| } | |
| $values[] = "(".$student['studentId'].", ".$feedback->staffId.", '".$feedback->feedbackDescription."', '".$feedback->feedbackName."', UTC_TIMESTAMP(),".$feedback->feedbackTypeId.", ".$feedback->createdBy.", UTC_TIMESTAMP(), ".$feedback->updatedBy.", UTC_TIMESTAMP(), ".$bulkInsertId.", ".$student['isAttended'].")"; | |
| } | |
| $sql .= implode(',', $values); | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return true; | |
| } | |
| /** | |
| * get all feedback/activity types | |
| * | |
| * @return void | |
| */ | |
| public function getAllFeedbackTypes() | |
| { | |
| $sql = ""; | |
| $sql = "SELECT id, name, description, is_activity as isActivity, activity_points as activityPoints, use_in_co as useInCo, use_in_po as useInPo FROM student_feedback_type"; | |
| try { | |
| $responseList = $this->executeQueryForList($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| foreach($responseList as $response){ | |
| if(!PermissionService::isNBAEnabled()){ | |
| $response->useInCo = 0; | |
| $response->useInPo = 0; | |
| } | |
| } | |
| return $responseList; | |
| } | |
| /** | |
| * @param GetAllBulkFeedbacksRequest $request | |
| * @return void | |
| */ | |
| public function getAllBulkFeedbacks($request) | |
| { | |
| $request = $this->realEscapeObject($request); | |
| $responseList = null; | |
| $sql = ""; | |
| $sql = "SELECT | |
| bafs.id AS bulk_add_feedback_about_student_id, | |
| bafs.name AS bulk_add_feedback_about_student_name, | |
| bafs.description AS bulk_add_feedback_about_student_description, | |
| bafs.student_feedback_type_id AS bulk_add_feedback_about_student_student_feedback_type_id, | |
| IF(fas.isAttended, 1, 0) as feedback_about_student_studentAlreadySelected, | |
| sta.studentID AS studentaccount_studentId, | |
| sta.studentName AS studentaccount_studentName, | |
| sta.admissionNo AS studentaccount_admissionNumber, | |
| if(bafs.created_by = $request->staffId, 'ME', sa.staffName) AS created_by | |
| FROM | |
| bulk_add_feedback_about_student bafs | |
| INNER JOIN | |
| staffaccounts sa ON (bafs.created_by = sa.staffID) | |
| INNER JOIN | |
| feedback_about_student fas ON fas.bulk_add_feedback_about_student_id = bafs.id | |
| INNER JOIN | |
| studentaccount sta ON sta.studentID = fas.studentID WHERE 1=1 "; | |
| // if ($request->staffId) { | |
| // $sql .= "AND fas.staffID ='$request->staffId'"; | |
| // } | |
| if ($request->batchId) { | |
| $sql .= "AND sta.batchID ='$request->batchId'"; | |
| } | |
| // if($request->bulkFeedbackId){ | |
| // $sql .= "AND bafs.id = '$request->bulkFeedbackId'"; | |
| // } | |
| if($request->sortBy){ | |
| $sql .= " ORDER BY sta.$request->sortBy"; | |
| } | |
| try { | |
| $responseList = $this->executeQueryForList($sql, $this->mapper[FeedbackServiceMapper::GET_ALL_BULK_FEEDBACK]); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $responseList; | |
| } | |
| public function getBulkFeedbackDetails($request) | |
| { | |
| $request = $this->realEscapeObject($request); | |
| $response = null; | |
| $sql = ""; | |
| $sql = "SELECT | |
| bafs.id AS bulk_add_feedback_about_student_id, | |
| bafs.name AS bulk_add_feedback_about_student_name, | |
| bafs.description AS bulk_add_feedback_about_student_description, | |
| bafs.student_feedback_type_id AS bulk_add_feedback_about_student_student_feedback_type_id, | |
| sta.studentID AS studentaccount_studentId, | |
| sta.studentName AS studentaccount_studentName, | |
| sta.admissionNo AS studentaccount_admissionNumber | |
| FROM | |
| bulk_add_feedback_about_student bafs | |
| INNER JOIN | |
| feedback_about_student fas ON fas.bulk_add_feedback_about_student_id = bafs.id | |
| INNER JOIN | |
| studentaccount sta ON sta.studentID = fas.studentID WHERE 1=1 "; | |
| if ($request->staffId) { | |
| $sql .= "AND fas.staffID ='$request->staffId'"; | |
| } | |
| if ($request->bulkFeedbackId) { | |
| $sql .= "AND bafs.id = '$request->bulkFeedbackId'"; | |
| } | |
| try { | |
| $response = $this->executeQueryForObject($sql, false, $this->mapper[FeedbackServiceMapper::GET_ALL_BULK_FEEDBACK]); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $response; | |
| } | |
| /** | |
| * @param [type] $bulkFeedbackId | |
| * @return void | |
| */ | |
| public function deleteBulkFeedback($bulkFeedbackId) | |
| { | |
| $bulkFeedbackId = $this->realEscapeString($bulkFeedbackId); | |
| $sqlForDeletingFromCoMap = "DELETE mapco.* FROM nba_map_extra_activities_to_course_outcome mapco INNER JOIN feedback_about_student fas ON (mapco.feedback_about_student_feedbackID = fas.feedbackID) WHERE fas.bulk_add_feedback_about_student_id = $bulkFeedbackId"; | |
| $sqlForDeletingFromFas = "DELETE FROM feedback_about_student WHERE bulk_add_feedback_about_student_id = $bulkFeedbackId"; | |
| $sqlForDeletingFromBulk = "DELETE FROM bulk_add_feedback_about_student WHERE id = $bulkFeedbackId"; | |
| try { | |
| $this->executeQuery($sqlForDeletingFromCoMap); | |
| $this->executeQuery($sqlForDeletingFromFas); | |
| $this->executeQuery($sqlForDeletingFromBulk); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return true; | |
| } | |
| /** | |
| * | |
| * @param [type] $bulkFeedback | |
| * @return void | |
| */ | |
| public function updateBulkFeedback($bulkFeedback) | |
| { | |
| $ignoreNotAttendedStudents = CommonService::getInstance()->getSettings(SettingsConstents::STUDENT_EXTRA_ACTITITY, SettingsConstents::IGNORE_NOT_ATTENDED_STUDENTS); | |
| $bulkFeedback = $this->realEscapeObject($bulkFeedback); | |
| if (empty($bulkFeedback->studentIdList)) { | |
| throw new ProfessionalException(ProfessionalException::INSUFFICIENT_PARAMETERS, 'Please Provide Atleast One Student...'); | |
| } | |
| $studentIds = []; | |
| foreach ($bulkFeedback->studentIdList as $student) { | |
| if ( $ignoreNotAttendedStudents == 1 && $student['isAttended'] == 0 ) { | |
| continue; | |
| } | |
| $studentIds[] = $student['studentId']; | |
| } | |
| $request = new GetExtraActivityRequest(); | |
| $request->semId = $bulkFeedback->semId; | |
| $request->batchId = $bulkFeedback->batchId; | |
| $request->subjectId = $bulkFeedback->subjectId; | |
| $request->activityId = $bulkFeedback->id; | |
| $coDetails = ExtraActivitiesService::getInstance()->getCoPercentageOfActivity ( $request, $bulkFeedback->id); | |
| ExtraActivitiesService::getInstance()->deleteExtraActivitiesCoMappingByActivityId($request); | |
| $sqlForDeletingStudents = "DELETE FROM feedback_about_student WHERE studentID NOT IN (" . implode(',', $studentIds) . ") AND bulk_add_feedback_about_student_id = '$bulkFeedback->id'"; | |
| $sqlForupdatingToBulkFeedback = "UPDATE bulk_add_feedback_about_student SET name = '$bulkFeedback->name', description = '$bulkFeedback->description', student_feedback_type_id = $bulkFeedback->feedbackTypeId, batchID = $bulkFeedback->batchId, semID = $bulkFeedback->semId, subjectID = $bulkFeedback->subjectId, updated_by = $bulkFeedback->updatedBy, updated_date = UTC_TIMESTAMP() WHERE id = $bulkFeedback->id"; | |
| $sqlForupdatingToFeedbackAboutStudent = "INSERT INTO feedback_about_student | |
| (studentID, staffID, feedback, feedback_name, createdDate, student_feedback_type_id, created_by, created_date, updated_by, updated_date, bulk_add_feedback_about_student_id, isAttended) VALUES "; | |
| $values = []; | |
| foreach($bulkFeedback->studentIdList as $student) { | |
| if ( $ignoreNotAttendedStudents == 1 && $student['isAttended'] == 0 ) { | |
| continue; | |
| } | |
| $values[] = "(".$student['studentId'].", '$bulkFeedback->staffId', '$bulkFeedback->description', '$bulkFeedback->name', UTC_TIMESTAMP(),'$bulkFeedback->feedbackTypeId', '$bulkFeedback->createdBy', UTC_TIMESTAMP(), '$bulkFeedback->updatedBy', UTC_TIMESTAMP(), '$bulkFeedback->id', ".$student['isAttended'].")"; | |
| } | |
| $sqlForupdatingToFeedbackAboutStudent .= implode(',',$values); | |
| $sqlForupdatingToFeedbackAboutStudent .= "ON DUPLICATE KEY UPDATE | |
| feedback='$bulkFeedback->description', student_feedback_type_id = '$bulkFeedback->feedbackTypeId',feedback_name='$bulkFeedback->name', updated_by= $bulkFeedback->updatedBy, updated_date= UTC_TIMESTAMP(), isAttended = VALUES(isAttended)"; | |
| try { | |
| $this->executeQuery($sqlForDeletingStudents); | |
| $this->executeQuery($sqlForupdatingToBulkFeedback); | |
| $this->executeQuery($sqlForupdatingToFeedbackAboutStudent); | |
| if ( !empty ( $coDetails ) ) { | |
| $co_ids = []; | |
| foreach ($coDetails as $co) { | |
| $co_ids[] = $co->co_id; | |
| } | |
| ExtraActivitiesService::getInstance()->upsertExtraActivities($request, $co_ids); | |
| } | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| public function getSelectedStudentListOfBulkFeedback($bulkFeedbackId, $batchId, $semId, $subjectId, $staffId = NULL) | |
| { | |
| $bulkFeedbackId = $this->realEscapeString($bulkFeedbackId); | |
| $batchId = $this->realEscapeString($batchId); | |
| $semId = $this->realEscapeString($semId); | |
| $subjectId = $this->realEscapeString($subjectId); | |
| $studentList = null; | |
| $isCurrentSem = SemesterService::getInstance()->isCurrentSemester($batchId, $semId); | |
| $subbatches = BatchService::getInstance()->getSubbatchBySubject($subjectId, $semId, $batchId, $staffId); | |
| if (empty($subbatches)) | |
| { | |
| if ($isCurrentSem) { | |
| $sql = "SELECT sa.studentID AS id, studentName AS name, sa.admissionNo AS admissionNumber, sa.rollNo, IF(fas.isAttended, 1, 0) as studentAlreadySelected from studentaccount sa left join feedback_about_student fas ON sa.studentID = fas.studentID AND fas.bulk_add_feedback_about_student_id = '$bulkFeedbackId' where sa.batchID=\"" . $batchId . "\" order by sa.admissionNo ASC";//Here we use "IF" because fas.isAttended can be null due to left join | |
| } else { | |
| $sql = " | |
| SELECT sa.studentID AS id, studentName AS name, admissionNo AS admissionNumber, rollNo, IF(fas.isAttended, 1, 0) as studentAlreadySelected from studentaccount sa inner join batches ba on sa.batchID = ba.batchID left join feedback_about_student fas ON sa.studentID = fas.studentID AND fas.bulk_add_feedback_about_student_id = '$bulkFeedbackId' where ba.batchID = $batchId | |
| UNION SELECT sa.studentID AS id, studentName AS name, admissionNo AS admissionNumber, rollNo, IF(fas.isAttended, 1, 0) as studentAlreadySelected from failed_students fs left join studentaccount sa on fs.studentID= sa.studentID left join feedback_about_student fas ON sa.studentID = fas.studentID AND fas.bulk_add_feedback_about_student_id = '$bulkFeedbackId' where previousBatch = $batchId and failedInSemester > $semId order by admissionNumber ASC; "; | |
| } | |
| } | |
| else | |
| { | |
| if($isCurrentSem) | |
| { | |
| $sql = "SELECT distinct sa.studentID AS id, studentName AS name, admissionNo AS admissionNumber, rollNo, IF(fas.isAttended, 1, 0) as studentAlreadySelected from sbs_relation sr inner join subbatch_sbs ssbs on sr.sbsID = ssbs.sbsID inner join subbatch_student ss on ss.subbatchID = ssbs.subbatchID inner join studentaccount sa on sa.studentID = ss.studentID left join feedback_about_student fas ON sa.studentID = fas.studentID AND fas.bulk_add_feedback_about_student_id = '$bulkFeedbackId' where sr.batchID = $batchId and sr.semID = $semId and subjectID = $subjectId order by admissionNumber ASC"; | |
| } | |
| else | |
| { | |
| $sql = "SELECT distinct sa.studentID AS id, studentName AS name, admissionNo AS admissionNumber, rollNo, IF(fas.isAttended, 1, 0) as studentAlreadySelected from sbs_relation sr inner join subbatch_sbs ssbs on sr.sbsID = ssbs.sbsID inner join subbatch_student ss on ss.subbatchID = ssbs.subbatchID inner join studentaccount sa on sa.studentID = ss.studentID left join feedback_about_student fas ON sa.studentID = fas.studentID AND fas.bulk_add_feedback_about_student_id = '$bulkFeedbackId' where sr.batchID = $batchId and sr.semID = $semId and subjectID = $subjectId and sa.studentID in (select studentID from studentaccount where batchID = $batchId union select studentID from failed_students where previousBatch = $batchId and failedInSemester > $semId) order by admissionNumber ASC"; | |
| } | |
| } | |
| try { | |
| $studentList = $this->executeQueryForList($sql); | |
| }catch(\Exception $e){ | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| return $studentList; | |
| } | |
| /** | |
| * add feedback about student | |
| * @param FeedbackAboutStudent $feedbackAboutStudent | |
| * @throws ProfessionalException | |
| * @return \com\linways\base\dto\MySqlResult|NULL | |
| */ | |
| public function addFeedbackAboutStudent(FeedbackAboutStudent $feedbackAboutStudent) | |
| { | |
| $feedbackAboutStudent = $this->realEscapeObject($feedbackAboutStudent); | |
| $sql = "INSERT INTO feedback_about_student (studentID, staffID, feedback, feedback_name, createdDate, student_feedback_type_id, created_by, created_date, updated_by, updated_date) VALUES (".$feedbackAboutStudent->studentId.", ".$feedbackAboutStudent->staffId.", '".$feedbackAboutStudent->description."', '".$feedbackAboutStudent->feedbackName."', UTC_TIMESTAMP(),'".($feedbackAboutStudent->studentFeedbackTypeId?$feedbackAboutStudent->studentFeedbackTypeId:'null')."', ".$feedbackAboutStudent->createdBy.", UTC_TIMESTAMP(), ".$feedbackAboutStudent->updatedBy.", UTC_TIMESTAMP())"; | |
| try { | |
| return $this->executeQuery($sql); | |
| }catch(\Exception $e){ | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * remove feedback about student | |
| * @param int $feedbackId | |
| * @throws ProfessionalException | |
| * @return \com\linways\base\dto\MySqlResult|NULL | |
| */ | |
| public function removeFeedbackAboutStudent($feedbackId) | |
| { | |
| $feedbackId = $this->realEscapeString($feedbackId); | |
| $sql = "DELETE FROM feedback_about_student WHERE feedbackID='$feedbackId'"; | |
| try { | |
| return $this->executeQuery($sql); | |
| }catch(\Exception $e){ | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| /** | |
| * get feeback about student | |
| * @param FeedbackAboutStudent $feedbackAboutStudent | |
| * @throws ProfessionalException | |
| * @return object|array|\com\linways\base\util\$objectList[] | |
| */ | |
| public function getFeedbackAboutStudent(FeedbackAboutStudent $feedbackAboutStudent) | |
| { | |
| $feedbackAboutStudent = $this->realEscapeObject($feedbackAboutStudent); | |
| $sql ="SELECT fas.feedbackID, fas.feedback_name as feedbackName, fas.feedback, fas.createdDate, fas.staffID, sa.staffName, fas.student_feedback_type_id, sft.name as feedbackTypeName FROM feedback_about_student fas INNER JOIN staffaccounts sa ON sa.staffID=fas.staffID LEFT JOIN student_feedback_type sft ON sft.id=fas.student_feedback_type_id WHERE fas.feedbackID is not null"; | |
| if($feedbackAboutStudent->studentId) | |
| { | |
| $sql .=" AND fas.studentID='$feedbackAboutStudent->studentId'"; | |
| } | |
| if($feedbackAboutStudent->isAttended !==null) | |
| { | |
| $sql .=" AND fas.isAttended=$feedbackAboutStudent->isAttended"; | |
| } | |
| if($feedbackAboutStudent->studentFeedbackTypeId) | |
| { | |
| $sql .=" AND fas.student_feedback_type_id=$feedbackAboutStudent->studentFeedbackTypeId"; | |
| } | |
| $sql .=" ORDER BY fas.createdDate"; | |
| try { | |
| return $this->executeQueryForList($sql); | |
| }catch(\Exception $e){ | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| public function addFeedbackAboutStudentForMentorMentee(FeedbackAboutStudent $feedbackAboutStudent) | |
| { | |
| $feedbackAboutStudent = $this->realEscapeObject($feedbackAboutStudent); | |
| $sql = "INSERT INTO mentor_mentee_student_feedbacks(`studentID`, | |
| `staffID`, | |
| `feedback`, | |
| `feedback_name`, | |
| `student_feedback_type`, | |
| `created_by`, | |
| `created_date`, | |
| `updated_by`, | |
| `updated_date`) | |
| VALUES (".$feedbackAboutStudent->studentId.", | |
| ".$feedbackAboutStudent->staffId.", | |
| '".$feedbackAboutStudent->description."', | |
| '".$feedbackAboutStudent->feedbackName."', | |
| '".($feedbackAboutStudent->studentFeedbackTypeId?$feedbackAboutStudent->studentFeedbackTypeId:'null')."', | |
| .".$feedbackAboutStudent->createdBy.", | |
| UTC_TIMESTAMP(), | |
| ".$feedbackAboutStudent->updatedBy.", | |
| UTC_TIMESTAMP())"; | |
| try { | |
| return $this->executeQuery($sql); | |
| }catch(\Exception $e){ | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| public function getFeedbackAboutStudentForMentorMentee(FeedbackAboutStudent $feedbackAboutStudent) | |
| { | |
| $feedbackAboutStudent = $this->realEscapeObject($feedbackAboutStudent); | |
| $sql ="SELECT fas.id, | |
| fas.feedback_name as feedbackName, | |
| fas.feedback, | |
| fas.createdDate, | |
| fas.staffID, | |
| sa.staffName, | |
| fas.student_feedback_type | |
| FROM mentor_mentee_student_feedbacks fas | |
| INNER JOIN staffaccounts sa ON sa.staffID=fas.staffID | |
| WHERE fas.id is not null"; | |
| if($feedbackAboutStudent->studentId) | |
| { | |
| $sql .=" AND fas.studentID='$feedbackAboutStudent->studentId'"; | |
| } | |
| if($feedbackAboutStudent->isAttended !==null) | |
| { | |
| $sql .=" AND fas.isAttended=$feedbackAboutStudent->isAttended"; | |
| } | |
| if($feedbackAboutStudent->studentFeedbackTypeId) | |
| { | |
| $sql .=" AND fas.student_feedback_type='$feedbackAboutStudent->studentFeedbackTypeId'"; | |
| } | |
| if($feedbackAboutStudent->staffId) | |
| { | |
| $sql .=" AND fas.staffID=$feedbackAboutStudent->staffId"; | |
| } | |
| $sql .=" ORDER BY fas.createdDate"; | |
| try { | |
| return $this->executeQueryForList($sql); | |
| }catch(\Exception $e){ | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| public function removeFeedbackAboutStudentForMentorMentee($feedbackId) | |
| { | |
| $feedbackId = $this->realEscapeString($feedbackId); | |
| $sql = "DELETE FROM mentor_mentee_student_feedbacks WHERE id='$feedbackId'"; | |
| try { | |
| return $this->executeQuery($sql); | |
| }catch(\Exception $e){ | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| public function getFeedbackAboutStudentBatch ($batchIds) | |
| { | |
| try { | |
| $batchIds = $this->realEscapeArray($batchIds); | |
| $batchIds = implode(',',$batchIds); | |
| $sql = "SELECT | |
| s.studentID , | |
| s.studentName , | |
| sft.name , | |
| fas.feedback_name , | |
| fas.feedback, | |
| s2.staffID , | |
| s2.staffName , | |
| b.batchID , | |
| b.batchName | |
| from | |
| feedback_about_student fas | |
| inner join studentaccount s | |
| on s.studentID = fas.studentID | |
| inner join batches b on b.batchID = s.batchID | |
| inner join student_feedback_type sft on sft.id = fas.student_feedback_type_id | |
| inner join staffaccounts s2 on s2.staffID = fas.staffID | |
| where | |
| s.batchID in ($batchIds) | |
| order by | |
| fas.feedbackID,b.batchID desc"; | |
| return $this->executeQueryForList($sql); | |
| //code... | |
| }catch(\Exception $e){ | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| } |