Code Coverage  | 
      ||||||||||
Classes and Traits  | 
       Functions and Methods  | 
       Lines  | 
      ||||||||
| Total |         | 
       0.00%  | 
       0 / 1  | 
               | 
       0.00%  | 
       0 / 5  | 
       CRAP |         | 
       0.00%  | 
       0 / 123  | 
      
| AssignmentReportService |         | 
       0.00%  | 
       0 / 1  | 
               | 
       0.00%  | 
       0 / 5  | 
       420.00 |         | 
       0.00%  | 
       0 / 123  | 
      
| __construct |         | 
       0.00%  | 
       0 / 1  | 
       2.00 |         | 
       0.00%  | 
       0 / 3  | 
      |||
| __clone |         | 
       0.00%  | 
       0 / 1  | 
       2.00 |         | 
       0.00%  | 
       0 / 1  | 
      |||
| getInstance |         | 
       0.00%  | 
       0 / 1  | 
       6.00 |         | 
       0.00%  | 
       0 / 5  | 
      |||
| generateAsyncAssignmentStudentDocFile |         | 
       0.00%  | 
       0 / 1  | 
       156.00 |         | 
       0.00%  | 
       0 / 71  | 
      |||
| getAllStudentsAssignmentMarks |         | 
       0.00%  | 
       0 / 1  | 
       20.00 |         | 
       0.00%  | 
       0 / 43  | 
      |||
| <?php | |
| namespace com\linways\core\ams\professional\service; | |
| use com\linways\core\ams\professional\util\CommonUtil; | |
| use com\linways\core\ams\professional\constant\BackendTypes; | |
| use com\linways\core\ams\professional\util\S3Utils; | |
| use com\linways\core\ams\professional\request\UploadResourceRequest; | |
| use com\linways\core\ams\professional\constant\ResourceContext; | |
| use com\linways\base\util\SecurityUtils; | |
| use com\linways\core\ams\professional\request\GetAsyncReportRequest; | |
| use com\linways\core\ams\professional\exception\ProfessionalException; | |
| use com\linways\core\ams\professional\mapper\AssignmentServiceMapper; | |
| use com\linways\core\ams\professional\constant\SettingsConstants; | |
| use com\linways\core\ams\professional\service\CommonService; | |
| class AssignmentReportService 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 = AssignmentServiceMapper::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; | |
| } | |
| public function generateAsyncAssignmentStudentDocFile($request) | |
| { | |
| try { | |
| $files = array(); | |
| $zipname = $request->reportName.".zip"; | |
| $zipPath=DOCUMENT_ROOT."studentdocs/$request->collegeCode"; | |
| if(!empty($request->studentDocList)) | |
| { | |
| foreach($request->studentDocList as $student) | |
| { | |
| $url=false; | |
| $filepath=""; | |
| if($student->backend_type==BackendTypes::LOCAL_STORAGE) | |
| { | |
| $filepath=DOCUMENT_ROOT.substr($student->path,3); | |
| } | |
| else | |
| { | |
| $fileObj = json_decode($student->storage_object); | |
| $url=true; | |
| } | |
| if(file_exists($filepath) || $url) | |
| { | |
| $file = new \stdClass(); | |
| $file->source = $filepath; | |
| $file->url = $url; | |
| if($url) | |
| { | |
| $file->bucket = $fileObj->bucket; | |
| $file->key=$fileObj->key; | |
| } | |
| $removeRollNo = CommonService::getInstance()->getSettings(SettingsConstants::REMOVE_ROLL_NO_ASSIGNMENT_DOWNLOAD_GENERATION_NAME,SettingsConstants::ASSIGNMENT_SETTINGS); | |
| if($removeRollNo){ | |
| $file->name = $url?$fileObj->name:substr($student->path,3); | |
| } | |
| else{ | |
| $file->name = $url?$student->rollNo."-".$fileObj->name:$student->rollNo."-".substr($student->path,3); | |
| } | |
| $files[] = $file; | |
| } | |
| } | |
| $credentials = new \stdClass(); | |
| $credentials->accessKey=SecurityUtils::decryptAndVerify($request->accessKey, "S3-UPLOAD-LINWAYS"); | |
| $credentials->secretKey=SecurityUtils::decryptAndVerify($request->secretKey, "S3-UPLOAD-LINWAYS"); | |
| $isZipCreated=CommonUtil::createZipUsingZipStream($files, $zipPath, $zipname, false, $credentials); | |
| if($isZipCreated) | |
| { | |
| $uploadResourceRequest = new UploadResourceRequest(); | |
| $uploadResourceRequest->fileName = $request->reportName. ".zip"; | |
| $uploadResourceRequest->filePath = $zipPath."/".$zipname; | |
| $uploadResourceRequest->context = ResourceContext::ASSIGNMENT_FILE_DOWNLOAD; | |
| $uploadResourceRequest->backendType = BackendTypes::S3; | |
| $uploadResourceRequest->s3FolderPath = $request->collegeCode. "/AssignmentFile" . "/"; | |
| $uploadResourceRequest->bucket = SecurityUtils::decryptAndVerify($request->bucket, "S3-UPLOAD-LINWAYS"); | |
| $uploadResourceRequest->accessKey = SecurityUtils::decryptAndVerify($request->accessKey, "S3-UPLOAD-LINWAYS"); | |
| $uploadResourceRequest->secretKey = SecurityUtils::decryptAndVerify($request->secretKey, "S3-UPLOAD-LINWAYS"); | |
| $uploadResourceRequest->createdBy = $request->createdBy; | |
| $uploadResourceRequest->updatedBy = $request->updatedBy; | |
| $resourceId = ResourceService::getInstance()->uploadResource($uploadResourceRequest); | |
| $getAsyncReportRequest = new GetAsyncReportRequest(); | |
| $getAsyncReportRequest->asyncReportId = $request->asyncReportId; | |
| $asyncReport = AsyncReportService::getInstance()->getAsyncReport($getAsyncReportRequest)[0]; | |
| unlink($zipPath."/".$zipname); | |
| $asyncReport->linResourceId = $resourceId; | |
| AsyncReportService::getInstance()->saveAsyncReport($asyncReport); | |
| } | |
| return true; | |
| } | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| public function getAllStudentsAssignmentMarks($batchId,$semId,$subbatchId = NULL,$assiNum = NULL){ | |
| $batchId = $this->realEscapeString($batchId); | |
| $semId = $this->realEscapeString($semId); | |
| $condition = ""; | |
| $sql = "SELECT | |
| s.rollNo, | |
| s.studentID, | |
| s.studentName, | |
| s.regNo, | |
| sub.subjectID, | |
| sub.subjectName, | |
| ba.assiNu, | |
| am.marksObtained, | |
| ba.max_mark, | |
| concat(ba.subjectID,ba.assignmentID,ba.assiNu) as subjAssign | |
| FROM | |
| studentaccount s | |
| INNER JOIN | |
| assignment_marks am ON am.studentID = s.studentID | |
| INNER JOIN | |
| batch_assignment ba ON ba.assignmentID = am.assignmentID | |
| INNER JOIN | |
| subjects sub ON sub.subjectID = ba.subjectID | |
| WHERE | |
| ba.batchID = $batchId AND ba.semID = $semId | |
| "; | |
| if (!empty($subbatchId)) { | |
| $subbatchId = $this->realEscapeString($subbatchId); | |
| $sql.= " AND ( subbatchID = 0 OR subbatchID = ".$subbatchId.") ORDER BY assiNu ASC , rollNo ASC"; | |
| } | |
| if(!empty($assiNum)){ | |
| $assiNum = $this->realEscapeString($assiNum); | |
| $sql.= " AND ba.assiNu = ".$assiNum." ORDER BY assiNu ASC , rollNo ASC"; | |
| } | |
| else{ | |
| $sql.= " ORDER BY assiNu ASC , rollNo ASC"; | |
| } | |
| try { | |
| $studentsList = $this->executeQueryForList($sql,$this->mapper[AssignmentServiceMapper::GET_ASSIGNMENT_MARK_LIST_BY_STUDENT]); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode,$e->getMessage()); | |
| } | |
| return $studentsList; | |
| } | |
| } | |