Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 20 |
CRAP | |
0.00% |
0 / 394 |
SspService | |
0.00% |
0 / 1 |
|
0.00% |
0 / 20 |
4032.00 | |
0.00% |
0 / 394 |
__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 |
|||
SspCourses | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 8 |
|||
SspCourseUpdate | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 11 |
|||
getAllCourseNamesByPatternID | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 10 |
|||
getAllDisciplines | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 9 |
|||
getAllDisciplinesForPatternID | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 16 |
|||
updateDisciplineByPatternID | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 12 |
|||
getAllSspManagementSettings | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 16 |
|||
updateParameterById | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 14 |
|||
getSspDynamicParameters | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 29 |
|||
getPreviousInstitutionDetailsByBatch | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 47 |
|||
getPreviousCollegeWithSspData | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 13 |
|||
checkBatchPresentYearForSsp | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 15 |
|||
getStudentPreviousDetailsForSsp | |
0.00% |
0 / 1 |
272.00 | |
0.00% |
0 / 88 |
|||
getDisciplineCourseStudent | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 24 |
|||
getSeatTypeFromStudentAccount | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 16 |
|||
getLateralEntryStatus | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 16 |
|||
generateReportFromSspStudentLog | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 41 |
<?php | |
namespace com\linways\core\ams\professional\service; | |
use com\linways\core\ams\professional\exception\ProfessionalException; | |
use com\linways\base\util\RequestUtil; | |
use com\linways\core\ams\professional\service\examcontroller\CommonExamService; | |
class SspService 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 Object | |
* @throws ProfessionalException | |
*/ | |
public function SspCourses() | |
{ | |
$sql = "SELECT Course_Code as code ,Course_Name as name,Course_Long_Name as `desc` from ssp_course"; | |
try { | |
return $this->executeQueryForList($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function SspCourseUpdate($coursePattern, $sspCourseId) | |
{ | |
$coursePattern = $this->realEscapeString($coursePattern); | |
$sspCourseId = $this->realEscapeString($sspCourseId); | |
$sql = "UPDATE course_pattern SET ssp_course_id = '$sspCourseId' WHERE patternID = $coursePattern"; | |
try { | |
$this->executeQuery($sql); | |
return true; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function getAllCourseNamesByPatternID($coursePatternID) | |
{ | |
$coursePatternID = $this->realEscapeString($coursePatternID); | |
try { | |
$sql = "SELECT patterncourseID ,patterncourseName , ssp_discipline_id ,patternID from pattern_deptcourses pd WHERE patternID = $coursePatternID"; | |
$courseNames = $this->executeQueryForList($sql); | |
return $courseNames; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function getAllDisciplines() | |
{ | |
try { | |
$sql = "SELECT Discipline_Code,Course_Code ,Discipline_name ,Remarks from ssp_discipline"; | |
$sspDisciplines = $this->executeQueryForList($sql); | |
return $sspDisciplines; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function getAllDisciplinesForPatternID($coursePatternID) | |
{ | |
$coursePatternID = $this->realEscapeString($coursePatternID); | |
$sql = "SELECT patternID ,ssp_course_id from course_pattern cp WHERE patternID = $coursePatternID"; | |
try { | |
$sspCourseId = $this->executeQueryForObject($sql)->ssp_course_id; | |
if(!$sspCourseId) | |
{ | |
return ; | |
}else{ | |
$sqlGetDisciplines = "SELECT id,Discipline_Code,Discipline_name from ssp_discipline sd where Course_Code =$sspCourseId order by Discipline_name"; | |
return $this->executeQueryForList($sqlGetDisciplines); | |
} | |
}catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function updateDisciplineByPatternID($coursePatternID,$disciplineID) | |
{ | |
try{ | |
$coursePatternID = $this->realEscapeString($coursePatternID); | |
$disciplineID = $this->realEscapeString($disciplineID); | |
$sql = "UPDATE pattern_deptcourses SET ssp_discipline_id = '$disciplineID' WHERE patternCourseID = '$coursePatternID'"; | |
$this->executeQuery($sql); | |
return true; | |
} | |
catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function getAllSspManagementSettings($type = null) | |
{ | |
if($type) | |
{ | |
$condition = " AND `type` = '$type' "; | |
} | |
else{ | |
$condition = ""; | |
} | |
$sql = "SELECT * from ssp_management WHERE 1=1 $condition"; | |
try | |
{ | |
return $this->executeQueryForList($sql); | |
}catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function updateParameterById($entry,$id, $isCustom = false) | |
{ | |
$entry = $this->realEscapeString($entry); | |
$id = $this->realEscapeString($id); | |
$additionalcolumn = $isCustom ? ", additionalSettings = '$isCustom' ":""; | |
try{ | |
$sql = "UPDATE ssp_management SET value= '$entry' $additionalcolumn WHERE id = '$id'"; | |
$this->executeQuery($sql); | |
return true; | |
} | |
catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
return false; | |
} | |
} | |
public function getSspDynamicParameters() | |
{ | |
try { | |
$result = []; | |
$sql = "SELECT * from ssp_management"; | |
$parameters = $this->executeQueryForList($sql); | |
$nonMandatory = []; | |
foreach ($parameters as $param) { | |
if($param->isMandatory != "1") | |
{ | |
$nonMandatory[] = $param->type; | |
} | |
$result[$param->type] = html_entity_decode($param->value); | |
if($param->additionalSettings) | |
{ | |
$obj = new \stdClass(); | |
$obj->addittionalSettings = json_decode($param->additionalSettings); | |
$obj->data[$param->type] = html_entity_decode($param->value); | |
$result[$param->type] = $obj; | |
} | |
} | |
$response = new \stdClass(); | |
$response->data = $result; | |
$response->nonMandatory = $nonMandatory; | |
return $response; | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
return false; | |
} | |
} | |
public function getPreviousInstitutionDetailsByBatch($request) | |
{ | |
try { | |
$result = []; | |
$request = $this->realEscapeObject($request); | |
(int) $request->batchId?$where[] = " s.batchID = ".$request->batchId:null; | |
if($request->batchId) | |
{ | |
$sqlgetStudentIds = "SELECT GROUP_CONCAT(studentID) as studentID from studentaccount s WHERE s.batchID = '$request->batchId' GROUP by batchID"; | |
$studentIds = $this->executeQueryForObject($sqlgetStudentIds)->studentID; | |
} | |
if(trim($studentIds) != "") | |
{ | |
$sql = "SELECT | |
s.studentID, | |
aasd.extraDetails->>'$.eleventhAllInstitutionId' AS AdmEleventInstitution, | |
aasd.extraDetails->>'$.twelfthAllInstitutionId' AS AdmTwelfthInstitution, | |
aasd.extraDetails->>'$.ugAllInstitutionId' AS admUgInstitution, | |
asmTwelfth.processed_mark_details->>'$.totalMaxMark' AS twelthMax, | |
asmTwelfth.processed_mark_details->>'$.totalMark' AS twelthObtained, | |
asmUg.processed_mark_details->>'$.totalMaxMark' AS ugMax, | |
asmUg.processed_mark_details->>'$.totalMark' AS ugObtained | |
FROM | |
adm_admission_student_details aasd | |
INNER JOIN | |
adm_admission_admitted_student_details aaasd ON (aasd.id = aaasd.studentId | |
AND aasd.admission_applicant_id = aaasd.applicantId | |
AND aasd.admission_form_id = aaasd.formId) | |
INNER JOIN | |
studentaccount s ON (aaasd.studentAccountId = s.studentID) | |
INNER JOIN | |
studentaccount_extras se ON (se.studentID = s.studentID) | |
LEFT JOIN | |
adm_student_mark asmTwelfth ON (asmTwelfth.studentId = aasd.id and asmTwelfth.`type` = 'TWELFTH') | |
LEFT JOIN | |
adm_student_mark asmUg ON (asmUg.studentId = aasd.id and asmUg.`type` = 'UG') | |
WHERE | |
aaasd.studentAccountId IN ($studentIds);"; | |
return $this->executeQueryForList($sql); | |
} | |
else{ | |
return $result; | |
} | |
}catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
return false; | |
} | |
} | |
public function getPreviousCollegeWithSspData($collegeId){ | |
$sql = "SELECT sc.University_Code AS Previous_Year_SSP_University_Code, | |
sc.University_Name AS Previous_Year_SSP_University_Name, | |
sc.College_Code AS Previous_Year_SSP_College_Code, | |
sc.College_Name AS Previous_Year_SSP_College_Name | |
from ssp_institutions si | |
left join ssp_colleges sc on sc.College_AISHE_Code = si.College_AISHE_Code | |
where si.id = '$collegeId' and sc.University_Code IS NOT NULL"; | |
try { | |
return $this->executeQueryForObject($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
} | |
} | |
public function checkBatchPresentYearForSsp($groupId) | |
{ | |
$groupId = $this->realEscapeString($groupId); | |
$sql = "SELECT | |
at2.properties->>'$.year' as year, | |
at2.properties->>'$.orderNo' as semester | |
from | |
batches b | |
inner join `groups` g on | |
g.id = b.groups_id | |
inner join academic_term at2 on | |
at2.id = g.properties->>'$.currentTermId' | |
WHERE | |
b.groups_id = '$groupId' "; | |
return $this->executeQueryForObject($sql); | |
} | |
public function getStudentPreviousDetailsForSsp($request, $parameter) | |
{ | |
$request = $this->realEscapeObject($request); | |
$responseArr = []; | |
$sqlGetAllPossibleTerms = "SELECT id from academic_term at2 WHERE at2.properties->>'$.year' =$request->year and `type` ='Semester'"; | |
$terms = $this->executeQueryForList($sqlGetAllPossibleTerms); | |
$allTerms = []; | |
foreach ($terms as $key => $t) { | |
$allTerms[] = $t->id; | |
} | |
$sql = "SELECT | |
spa.student_id as studentId,g.id as groupId | |
from | |
batches b | |
inner join `groups` g on g.id = b.groups_id | |
inner join student_program_account spa on spa.current_batch_id = g.id | |
where | |
b.batchID = $request->batchId"; | |
$students = $this->executeQueryForList($sql); | |
foreach ($students as $key => $student) | |
{ | |
$req = new \stdClass(); | |
$req->studentId = $student->studentId; | |
// $req->groupId = $student->groupId; | |
$result = (Object) CommonExamService::getInstance()->getConsolidatedStudentData($req); | |
$returningStudent = null; | |
if(is_object($result)){ | |
foreach ($result as $program){ | |
foreach($program->students as $student){ | |
if ($returningStudent == null) { | |
$returningStudent = $student; | |
} | |
if(is_object($student->academicTerms)){ | |
$student->academicTerms = (array)$student->academicTerms; | |
} | |
foreach($student->academicTerms as $term){ | |
if(is_object($term->subjects)){ | |
$term->subjects = (array)$term->subjects; | |
} | |
} | |
} | |
} | |
} | |
if($returningStudent) | |
{ | |
$academicTerms = $returningStudent->academicTerms; | |
$maxMarks = 0; | |
$marksObtained = 0; | |
$PASS_or_FAIL = "P"; | |
$promoted = "Y"; | |
foreach ($academicTerms as $key => $term) { | |
if(in_array($term->termId, $allTerms)) | |
{ | |
$maxMarks = $maxMarks + $term->markDetails->totalMark; | |
$marksObtained = $marksObtained + $term->markDetails->markObtained; | |
if($term->failedStatus != "PASSED") | |
{ | |
$PASS_or_FAIL = "F"; | |
$promoted = "N"; | |
} | |
} | |
} | |
} | |
$previousStudentsDetail = new \stdClass(); | |
$previousStudentsDetail->studentID = $student->studentId; | |
$previousStudentsDetail->Previous_Year_Max_Marks = $maxMarks; | |
$previousStudentsDetail->Previous_Year_Obtained_Marks = $marksObtained; | |
$previousStudentsDetail->PASS_or_FAIL = $PASS_or_FAIL; | |
$previousStudentsDetail->Promoted = $promoted; | |
$previousStudentsDetail->Previous_Course_Passed_Year = $student->markDetails->latestExamYear; | |
$previousStudentsDetail->Previous_Year_Course_Year = $request->year; | |
$previousStudentsDetail->Previous_Year_SSP_University_Code = $parameter['UNIVERSITY_SSP_CODE']; | |
$previousStudentsDetail->Previous_Year_SSP_University_Name = $parameter['UNIVERSITY_NAME']; | |
$previousStudentsDetail->Previous_Year_SSP_College_Code = $parameter['COLLEGE_SSP_CODE']; | |
$previousStudentsDetail->Previous_Year_SSP_College_Name = $parameter['COLLEGE_NAME']; | |
$previousStudentsDetail->Previous_Year_SSP_Seat_Type_Code = $parameter['SEAT_TYPE_SSP_CODE']; | |
$previousStudentsDetail->Previous_Year_SSP_Seat_Type_Name = $parameter['SEAT_TYPE_NAME']; | |
$courseAndDiscipline = $this->getDisciplineCourseStudent($student->studentId); | |
$previousStudentsDetail->Previous_Year_SSP_Course_Code = $courseAndDiscipline->Course_Code; | |
$previousStudentsDetail->Previous_Year_SSP_Course_Name = $courseAndDiscipline->Course_Name; | |
$previousStudentsDetail->Previous_Year_SSP_Discipline_Code = $courseAndDiscipline->Discipline_Code; | |
$previousStudentsDetail->Previous_Year_SSP_Discipline_Name = $courseAndDiscipline->Discipline_name; | |
if($maxMarks && $marksObtained) | |
{ | |
$previousStudentsDetail->Previous_Year_Percentage_Obtained = round(($marksObtained / $maxMarks) * 100,2); | |
} | |
$responseArr[] = $previousStudentsDetail; | |
} | |
return $responseArr; | |
} | |
public function getDisciplineCourseStudent($studentId) | |
{ | |
try{ | |
$studentId = $this->realEscapeString($studentId); | |
$sql = " SELECT | |
b.batchID , | |
sc.Course_Code , | |
sc.Course_Name , | |
sd.Discipline_Code , | |
sd.Discipline_name | |
from | |
batches b | |
inner join course_pattern cp on cp.patternID = b.patternID | |
inner join pattern_deptcourses pd on pd.patterncourseID = b.patterncourseID | |
inner join ssp_course sc on cp.ssp_course_id = sc.Course_Code | |
inner join ssp_discipline sd on sd.id = pd.ssp_discipline_id | |
inner join studentaccount s on s.batchID = b.batchID | |
WHERE s.studentID = '$studentId' "; | |
return $this->executeQueryForObject($sql); | |
} | |
catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
return false; | |
} | |
} | |
/** | |
* get student seat type for ssp | |
* | |
* get student seat type ssp code generation for data transfer | |
* | |
* @param Integer $studentID unique studentID from studentaccount | |
* @return Object | |
* @throws ProfessionalException | |
**/ | |
public function getSeatTypeFromStudentAccount($studentID) | |
{ | |
try{ | |
$sql = "SELECT | |
s.studentID ,aq.quotaID ,aq.quotaName ,sst.Seat_Type_Code as seatCode,sst.Seat_Type_Name as seatName | |
from | |
studentaccount s | |
inner join admission_quotas aq on aq.quotaID = s.quotaID | |
inner join ssp_seattypes sst on sst.Seat_Type_Code = aq.Seat_Type_Code | |
WHERE | |
s.studentID = $studentID"; | |
return $this->executeQueryForObject($sql); | |
}catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
return false; | |
} | |
} | |
/** | |
* get lateral entry status of student | |
* | |
* get lateral entry status for students for ssp Y-->lateral Entry, N --> regular entry | |
* | |
* @param Integer $studentID unique studentId from student account | |
* @return String | |
* @throws ProfessionalException | |
**/ | |
public function getLateralEntryStatus($studentID) | |
{ | |
try { | |
$sql = "SELECT `lateral` from studentaccount s WHERE studentID = $studentID "; | |
$studentDetail = $this->executeQueryForObject($sql); | |
if($studentDetail->lateral == "0") | |
{ | |
return "N"; | |
} | |
else{ | |
return "Y"; | |
} | |
//code... | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
return false; | |
} | |
} | |
/** | |
* generate report from ssp log | |
* | |
* generate report from ssp log with details like message and other data | |
* | |
* @param Array $batchIds Array of batchIds | |
* @return Array | |
* @throws ProfessionalException | |
**/ | |
public function generateReportFromSspStudentLog($batchIDs, $yearCode) | |
{ | |
$batchIDs = $this->realEscapeArray($batchIDs); | |
if(count($batchIDs) > 0) | |
{ | |
$batchId = implode(",",$batchIDs); | |
$batchIdCondition = " AND b.batchID IN ( $batchId ) "; | |
} | |
else{ | |
$batchIdCondition = ""; | |
} | |
if($yearCode) | |
{ | |
$yearCondition = " AND ssl2.academic_year_code = $yearCode"; | |
} | |
else{ | |
$yearCondition = ""; | |
} | |
try{ | |
$sql = "SELECT | |
s.studentID , | |
s.student_aadhar_name , | |
s.studentName , | |
s.regNo , | |
s.batchID, | |
b.batchName , | |
ssl2.academic_year_code , | |
ssl2.log , | |
s.ssp_id , | |
ct.typeName | |
FROM | |
studentaccount s | |
INNER JOIN batches b ON b.batchID = s.batchID | |
INNER JOIN course_type ct ON ct.courseTypeID = b.courseTypeID | |
INNER JOIN ssp_student_log ssl2 ON ssl2.student_id = s.studentID | |
WHERE 1=1 $batchIdCondition $yearCondition"; | |
return $this->executeQueryForList($sql); | |
} catch (\Exception $e) { | |
throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
return false; | |
} | |
} | |
} |