<?php
namespace App\Entity;
use App\Repository\StudentEvaluationRepository;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=StudentEvaluationRepository::class)
*/
class StudentEvaluation {
const STATUS_IN_PENDING = 'PENDING';
/**
* IN_PROCESS es cuando el estudiante almacena las repuestas de la evaluacion para ser calificadas
*/
const STATUS_IN_PROCESS = 'IN_PROCESS';
/**
* STATUS_FINISHED se da cuando el evaluador da su calificación y da por cerrado el examen
*/
const STATUS_FINISHED = 'FINISHED';
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity=Students::class)
*/
private $student;
/**
* @ORM\ManyToOne(targetEntity=Modules::class)
*/
private $module;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $allPoints;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $gettedPoints;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $scoreMinimun;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $scoreReading;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $scoreWriting;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $scoreListening;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $scoreSpeaking;
/**
* @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
*/
private $score;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $attemps;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $approved;
/**
* @ORM\Column(type="string", nullable=true, options={"default" : "IN_PROCESS"})
*/
private $status;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $presentedAt;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $checkedAt;
public function getId(): ?int {
return $this->id;
}
public function getModule(): ?Modules {
return $this->module;
}
public function setModule(?Modules $module): self {
$this->module = $module;
return $this;
}
public function getScore(): ?string {
return $this->score;
}
public function setScore(?string $score): self {
$this->score = $score;
return $this;
}
public function getAttemps(): ?int {
return $this->attemps;
}
public function setAttemps(?int $attemps): self {
$this->attemps = $attemps;
return $this;
}
public function getApproved(): ?int {
return $this->approved;
}
public function getApprovedText(): ?string {
if ($this->approved == 1) {
return 'Aprobado';
} elseif ($this->approved == 0) {
return 'No Aprobado';
}
return '';
}
public function setApproved(?int $approved): self {
$this->approved = $approved;
return $this;
}
public function getStudent(): ?Students {
return $this->student;
}
public function setStudent(?Students $student): self {
$this->student = $student;
return $this;
}
public function getScoreMinimun() {
return $this->scoreMinimun;
}
public function setScoreMinimun($scoreMinimun): void {
$this->scoreMinimun = $scoreMinimun;
}
public function getStatus() {
return $this->status;
}
public function getStatusText() {
switch ($this->status) {
case self::STATUS_IN_PENDING:
return 'Pendiente';
case self::STATUS_IN_PROCESS:
return 'En Proceso';
case self::STATUS_FINISHED:
return 'Calificado';
default:
break;
}
}
public function setStatus($status): void {
$this->status = $status;
}
public function getAllPoints() {
return $this->allPoints;
}
public function getGettedPoints() {
return $this->gettedPoints;
}
public function setAllPoints($allPoints): void {
$this->allPoints = $allPoints;
}
public function setGettedPoints($getedPoints): void {
$this->gettedPoints = $getedPoints;
}
public function getScoreReading() {
return $this->scoreReading;
}
public function getScoreWriting() {
return $this->scoreWriting;
}
public function getScoreListening() {
return $this->scoreListening;
}
public function getScoreSpeaking() {
return $this->scoreSpeaking;
}
public function setScoreReading($scoreReading): void {
$this->scoreReading = $scoreReading;
}
public function setScoreWriting($scoreWriting): void {
$this->scoreWriting = $scoreWriting;
}
public function setScoreListening($scoreListening): void {
$this->scoreListening = $scoreListening;
}
public function setScoreSpeaking($scoreSpeaking): void {
$this->scoreSpeaking = $scoreSpeaking;
}
public function getPresentedAt() {
return $this->presentedAt;
}
public function setPresentedAt($presentedAt): void {
$this->presentedAt = $presentedAt;
}
public function getCheckedAt() {
return $this->checkedAt;
}
public function setCheckedAt($checkedAt): void {
$this->checkedAt = $checkedAt;
}
}