<?php
namespace App\Core\Entity;
use App\Asistencia\Entity\Anuncio;
use App\Asistencia\Entity\Clase;
use App\Asistencia\Entity\Evaluacion;
use App\Core\Entity\Chat\Conversacion;
use App\Core\Entity\Institucion\Nivel;
use App\Core\Entity\Subscripciones\HistorialPagoSubscripcion;
use App\Core\Entity\Subscripciones\PagoSubscripcion;
use App\Entity\ArchivoCurso;
use App\Entity\EstudianteCursoNotaFinal;
use App\Entity\InvitacionInstitucionPermisos;
use App\Entity\Materia;
use App\Entity\TareasCurso;
use App\Core\Entity\Institucion\Seccion;
use DateTimeInterface;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity(repositoryClass="App\Core\Repository\CursoRepository")
* @Vich\Uploadable()
*/
class Curso
{
const JSON_FIELDS = ['id', 'nombre', 'descripcion', 'cupo', 'estado', 'fechaInicio', 'fechaFin', 'cursoClon' => ['id', 'nombre', 'descripcion'], 'duracion', 'horarios' => Horario::JSON_FIELDS, 'maestrosCurso' => ['id'], 'estudiantesCurso' => ['id']];
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=100)
*/
private $nombre;
/**
* @ORM\Column(type="text")
*/
private $descripcion;
/**
* @ORM\Column(type="integer")
*/
private $cupo;
/**
* @ORM\Column(type="integer")
* 0 = en creacion, este estado se utiliza cuando el curso esta en proceso de creacion
* 1 = activo
* 2 = archivado
* 3 = eliminado
*/
private $estado;
/**
* @ORM\Column(type="date")
*/
private $fechaInicio;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $fechaFin;
/**
* @ORM\ManyToOne(targetEntity="App\Core\Entity\Curso", cascade={"persist", "remove"})
*/
private $cursoClon;
/**
* @ORM\Column(type="integer")
*/
private $duracion;
/**
* @ORM\OneToMany(targetEntity="App\Core\Entity\Horario", mappedBy="curso")
*/
private $horarios;
/**
* @ORM\OneToMany(targetEntity="App\Core\Entity\MaestroCurso", mappedBy="curso")
*/
private $maestrosCurso;
/**
* @ORM\OneToMany(targetEntity="App\Core\Entity\EstudianteCurso", mappedBy="curso")
*/
private $estudiantesCurso;
/**
* @ORM\ManyToOne(targetEntity="App\Core\Entity\Color", inversedBy="cursos")
* @ORM\JoinColumn(nullable=false)
*/
private $color;
/**
* @ORM\OneToOne(targetEntity="App\Entity\Materia", inversedBy="curso", cascade={"persist", "remove"})
* @ORM\JoinColumn(name="materia_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
*/
private $materia;
/**
* @ORM\Column(type="boolean")
*/
private $privado;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $cursoInstitucion;
/*
* null o 0 = curso normal
* 1 = curso institucion
*/
/**
* @ORM\OneToMany(targetEntity="App\Core\Entity\CategoriaCurso", mappedBy="curso")
*/
private $cursoCategorias;
/**
* @ORM\ManyToOne(targetEntity="App\Core\Entity\Direccion", inversedBy="cursos")
* @ORM\JoinColumn(nullable=true)
*/
private $direccion;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $excepcionesObservaciones;
/**
* @ORM\OneToMany(targetEntity="App\Asistencia\Entity\Clase", mappedBy="curso", orphanRemoval=true)
*/
private $clases;
/**
* @ORM\Column(type="decimal", precision=3, scale=2)
*/
private $porcentajePresente;
/**
* @ORM\Column(type="decimal", precision=3, scale=2)
*/
private $porcentajeTarde;
/**
* @ORM\Column(type="decimal", precision=3, scale=2)
*/
private $porcentajeAusente;
/**
* @ORM\OneToMany(targetEntity="App\Asistencia\Entity\Anuncio", mappedBy="curso", orphanRemoval=true)
*/
private $anuncios;
/**
* @ORM\OneToMany(targetEntity="App\Asistencia\Entity\Evaluacion", mappedBy="curso", orphanRemoval=true)
*/
private $evaluaciones;
/**
* @ORM\OneToMany(targetEntity="App\Core\Entity\SolicitudAsignacion", mappedBy="curso", orphanRemoval=true)
*/
private $solicitudAsignaciones;
/**
* @ORM\ManyToOne(targetEntity="App\Core\Entity\Maestro")
* @ORM\JoinColumn(nullable=false)
*/
private $maestroPrincipal;
/**
* @ORM\Column(type="datetime")
*/
private $fechaCreacion;
public $esDeMaestro = false;
/**
* @ORM\OneToMany(targetEntity=Conversacion::class, mappedBy="curso", orphanRemoval=true)
*/
private $conversaciones;
/**
* @ORM\OneToMany(targetEntity=Notificacion::class, mappedBy="curso")
*/
private $notificaciones;
/**
* @ORM\OneToMany(targetEntity=PuntuacionCurso::class, mappedBy="curso", orphanRemoval=true)
*/
private $puntuacionesCurso;
/**
* @ORM\OneToMany(targetEntity=PagoSubscripcion::class, mappedBy="curso")
*/
private $pagosSubscripcion;
/**
* @ORM\OneToMany(targetEntity=HistorialPagoSubscripcion::class, mappedBy="curso")
*/
private $historialPagosSubscripcion;
/**
* NOTE: This is not a mapped field of entity metadata, just a simple property.
*
* @Vich\UploadableField(mapping="portada_de_curso", fileNameProperty="imgPortadaName", size="imgPortadaSize")
*
* @var File|null
*/
private $imgPortada;
/**
* @ORM\Column(type="string", length=200, nullable=true)
*
* @var string|null
*/
private $imgPortadaName;
/**
* @ORM\Column(type="integer", nullable=true)
*
* @var int|null
*/
private $imgPortadaSize;
/**
* @ORM\Column(type="string", nullable=true, length=20)
*/
private $modalidad;
/**
* @ORM\ManyToOne(targetEntity="App\Core\Entity\Institucion\Nivel", inversedBy="materias")
* @ORM\JoinColumn(nullable=true)
*/
private $nivel;
/**
* @ORM\Column(type="float", nullable=true)
*/
private $puntuacionPromedio;
/**
* @ORM\OneToMany(targetEntity=EstudianteCursoRol::class, mappedBy="curso")
*/
private $estudianteCursoRols;
/**
* @ORM\OneToMany(targetEntity=ArchivoCurso::class, mappedBy="curso")
*/
private $archivoCursos;
/**
* @ORM\OneToMany(targetEntity=TareasCurso::class, mappedBy="curso")
*/
private $tareasCursos;
/**
* @ORM\Column(type="string", nullable=true)
*/
private $notaMaximaCaracter;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $notaMaximaNumerica;
/**
* @ORM\Column(type="decimal", precision=3, scale=2, nullable=true)
*/
private $notaMaximaPorcentaje;
/**
* @ORM\OneToMany(targetEntity=EstudianteCursoNotaFinal::class, mappedBy="curso")
*/
private $estudianteCursoNotaFinals;
/**
* @ORM\ManyToOne(targetEntity="App\Core\Entity\Institucion\Seccion", inversedBy="cursos")
* @ORM\JoinColumn(nullable=true) // Permite valores nulos
*/
private $seccion;
/**
* @ORM\OneToMany(targetEntity=InvitacionInstitucionPermisos::class, mappedBy="Curso")
*/
private $invitacionInstitucionPermisos;
public function __construct()
{
$this->horarios = new ArrayCollection();
$this->cursoCategorias = new ArrayCollection();
$this->maestrosCurso = new ArrayCollection();
$this->estudiantesCurso = new ArrayCollection();
$this->clases = new ArrayCollection();
$this->anuncios = new ArrayCollection();
$this->evaluaciones = new ArrayCollection();
$this->solicitudAsignaciones = new ArrayCollection();
$this->conversaciones = new ArrayCollection();
$this->notificaciones = new ArrayCollection();
$this->puntuacionesCurso = new ArrayCollection();
$this->pagosSubscripcion = new ArrayCollection();
$this->historialPagosSubscripcion = new ArrayCollection();
$this->estudianteCursoRols = new ArrayCollection();
$this->archivoCursos = new ArrayCollection();
$this->tareasCursos = new ArrayCollection();
$this->estudianteCursoNotaFinals = new ArrayCollection();
$this->modalidad = '';
$this->invitacionInstitucionPermisos = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getNombre(): ?string
{
return $this->nombre;
}
public function setNombre(string $nombre): self
{
$this->nombre = $nombre;
return $this;
}
public function getDescripcion(): ?string
{
return $this->descripcion;
}
public function setDescripcion(string $descripcion): self
{
$this->descripcion = $descripcion;
return $this;
}
public function getCupo(): ?int
{
return $this->cupo;
}
public function setCupo(int $cupo): self
{
$this->cupo = $cupo;
return $this;
}
public function getEstado(): ?int
{
return $this->estado;
}
public function setEstado(int $estado): self
{
$this->estado = $estado;
return $this;
}
public function getFechaInicio(): ?DateTimeInterface
{
return $this->fechaInicio;
}
public function setFechaInicio(DateTimeInterface $fechaInicio): self
{
$this->fechaInicio = $fechaInicio;
return $this;
}
public function getFechaFin(): ?DateTimeInterface
{
return $this->fechaFin;
}
public function setFechaFin(DateTimeInterface $fechaFin = null): self
{
$this->fechaFin = $fechaFin;
return $this;
}
public function getCursoClon(): ?self
{
return $this->cursoClon;
}
public function setCursoClon(?self $cursoClon = null): self
{
$this->cursoClon = $cursoClon;
return $this;
}
public function getDuracion(): ?int
{
return $this->duracion;
}
public function setDuracion(?int $duracion): self
{
$this->duracion = $duracion;
return $this;
}
/**
* @return Collection|Horario[]
*/
public function getHorarios(): Collection
{
return $this->horarios;
}
public function addHorario(Horario $horario): self
{
if (!$this->horarios->contains($horario)) {
$this->horarios[] = $horario;
$horario->setCurso($this);
}
return $this;
}
public function removeHorario(Horario $horario): self
{
if ($this->horarios->contains($horario)) {
$this->horarios->removeElement($horario);
// set the owning side to null (unless already changed)
if ($horario->getCurso() === $this) {
$horario->setCurso(null);
}
}
return $this;
}
public function getColor(): ?Color
{
return $this->color;
}
public function setColor(Color $color): self
{
$this->color = $color;
return $this;
}
public function getPrivado(): ?bool
{
return $this->privado;
}
public function setPrivado(bool $privado): self
{
$this->privado = $privado;
return $this;
}
/**
* @return Collection|CategoriaCurso[]
*/
public function getCursoCategorias(): Collection
{
return $this->cursoCategorias;
}
public function addCategoriaCurso(CategoriaCurso $categoriaCurso): self
{
if (!$this->cursoCategorias->contains($categoriaCurso)) {
$this->cursoCategorias[] = $categoriaCurso;
$categoriaCurso->setCurso($this);
}
return $this;
}
public function removeCategoriaCurso(CategoriaCurso $categoriaCurso): self
{
if ($this->cursoCategorias->contains($categoriaCurso)) {
$this->cursoCategorias->removeElement($categoriaCurso);
// set the owning side to null (unless already changed)
if ($categoriaCurso->getCurso() === $this) {
$categoriaCurso->setCurso(null);
}
}
return $this;
}
public function getDireccion(): ?Direccion
{
return $this->direccion;
}
public function setDireccion(Direccion $direccion = null): self
{
$this->direccion = $direccion;
return $this;
}
public function getExcepcionesObservaciones(): ?string
{
return $this->excepcionesObservaciones;
}
public function setExcepcionesObservaciones(string $excepcionesObservaciones = null): self
{
$this->excepcionesObservaciones = $excepcionesObservaciones;
return $this;
}
/**
* @return Collection|EstudianteCurso[]
*/
public function getEstudiantesCurso(): Collection
{
return $this->estudiantesCurso;
}
public function addEstudianteCurso(EstudianteCurso $estudianteCurso): self
{
if (!$this->estudiantesCurso->contains($estudianteCurso)) {
$this->estudiantesCurso[] = $estudianteCurso;
$estudianteCurso->setCurso($this);
}
return $this;
}
public function removeEstudianteCurso(EstudianteCurso $estudianteCurso): self
{
if ($this->estudiantesCurso->contains($estudianteCurso)) {
$this->estudiantesCurso->removeElement($estudianteCurso);
// set the owning side to null (unless already changed)
if ($estudianteCurso->getCurso() === $this) {
$estudianteCurso->setCurso(null);
}
}
return $this;
}
/**
* @return Collection|MaestroCurso[]
*/
public function getMaestrosCurso(): Collection
{
return $this->maestrosCurso;
}
public function addMaestroCurso(MaestroCurso $maestroCurso): self
{
if (!$this->maestrosCurso->contains($maestroCurso)) {
$this->maestrosCurso[] = $maestroCurso;
$maestroCurso->setCurso($this);
}
return $this;
}
public function removeMaestroCurso(MaestroCurso $maestroCurso): self
{
if ($this->maestrosCurso->contains($maestroCurso)) {
$this->maestrosCurso->removeElement($maestroCurso);
// set the owning side to null (unless already changed)
if ($maestroCurso->getCurso() === $this) {
$maestroCurso->setCurso(null);
}
}
return $this;
}
function getCantidadAlumnos(): int
{
return count($this->getEstudiantesCurso());
}
function getCantidadMaestros(): int
{
return count($this->getMaestrosCurso());
}
/**
* @return Collection|Clase[]
*/
public function getClases(): Collection
{
return $this->clases;
}
public function addClase(Clase $clase): self
{
if (!$this->clases->contains($clase)) {
$this->clases[] = $clase;
$clase->setCurso($this);
}
return $this;
}
public function removeClase(Clase $clase): self
{
if ($this->clases->contains($clase)) {
$this->clases->removeElement($clase);
// set the owning side to null (unless already changed)
if ($clase->getCurso() === $this) {
$clase->setCurso(null);
}
}
return $this;
}
public function getPorcentajePresente(): ?string
{
return $this->porcentajePresente;
}
public function setPorcentajePresente(string $porcentajePresente): self
{
$this->porcentajePresente = $porcentajePresente;
return $this;
}
public function getPorcentajeTarde(): ?string
{
return $this->porcentajeTarde;
}
public function setPorcentajeTarde(string $porcentajeTarde): self
{
$this->porcentajeTarde = $porcentajeTarde;
return $this;
}
public function getPorcentajeAusente(): ?string
{
return $this->porcentajeAusente;
}
public function setPorcentajeAusente(string $porcentajeAusente): self
{
$this->porcentajeAusente = $porcentajeAusente;
return $this;
}
/**
* @return Collection|Anuncio[]
*/
public function getAnuncios(): Collection
{
return $this->anuncios;
}
public function addAnuncio(Anuncio $anuncio): self
{
if (!$this->anuncios->contains($anuncio)) {
$this->anuncios[] = $anuncio;
$anuncio->setCurso($this);
}
return $this;
}
public function removeAnuncio(Anuncio $anuncio): self
{
if ($this->anuncios->contains($anuncio)) {
$this->anuncios->removeElement($anuncio);
// set the owning side to null (unless already changed)
if ($anuncio->getCurso() === $this) {
$anuncio->setCurso(null);
}
}
return $this;
}
/**
* @return Collection|Evaluacion[]
*/
public function getEvaluaciones(): Collection
{
return $this->evaluaciones;
}
public function addEvaluacione(Evaluacion $evaluacione): self
{
if (!$this->evaluaciones->contains($evaluacione)) {
$this->evaluaciones[] = $evaluacione;
$evaluacione->setCurso($this);
}
return $this;
}
public function removeEvaluacione(Evaluacion $evaluacione): self
{
if ($this->evaluaciones->contains($evaluacione)) {
$this->evaluaciones->removeElement($evaluacione);
// set the owning side to null (unless already changed)
if ($evaluacione->getCurso() === $this) {
$evaluacione->setCurso(null);
}
}
return $this;
}
/**
* @return Collection|SolicitudAsignacion[]
*/
public function getSolicitudAsignaciones(): Collection
{
return $this->solicitudAsignaciones;
}
public function addSolicitudAsignacione(SolicitudAsignacion $solicitudAsignacione): self
{
if (!$this->solicitudAsignaciones->contains($solicitudAsignacione)) {
$this->solicitudAsignaciones[] = $solicitudAsignacione;
$solicitudAsignacione->setCurso($this);
}
return $this;
}
public function removeSolicitudAsignacione(SolicitudAsignacion $solicitudAsignacione): self
{
if ($this->solicitudAsignaciones->contains($solicitudAsignacione)) {
$this->solicitudAsignaciones->removeElement($solicitudAsignacione);
// set the owning side to null (unless already changed)
if ($solicitudAsignacione->getCurso() === $this) {
$solicitudAsignacione->setCurso(null);
}
}
return $this;
}
public function getMaestroPrincipal(): ?Maestro
{
return $this->maestroPrincipal;
}
public function setMaestroPrincipal(Maestro $maestro): self
{
$this->maestroPrincipal = $maestro;
return $this;
}
public function getEsDeMaestro() {
return $this->esDeMaestro;
}
public function setEsDeMaestro(bool $esDeMaestro) {
$this->esDeMaestro = $esDeMaestro;
}
/**
* @return Collection|Conversacion[]
*/
public function getConversaciones(): Collection
{
return $this->conversaciones;
}
public function addConversacione(Conversacion $conversacione): self
{
if (!$this->conversaciones->contains($conversacione)) {
$this->conversaciones[] = $conversacione;
$conversacione->setCurso($this);
}
return $this;
}
public function removeConversacione(Conversacion $conversacione): self
{
if ($this->conversaciones->contains($conversacione)) {
$this->conversaciones->removeElement($conversacione);
// set the owning side to null (unless already changed)
if ($conversacione->getCurso() === $this) {
$conversacione->setCurso(null);
}
}
return $this;
}
/**
* @return Collection|Notificacion[]
*/
public function getNotificacions(): Collection
{
return $this->notificaciones;
}
public function addNotificacion(Notificacion $notificacion): self
{
if (!$this->notificaciones->contains($notificacion)) {
$this->notificaciones[] = $notificacion;
$notificacion->setCurso($this);
}
return $this;
}
public function removeNotificacion(Notificacion $notificacion): self
{
if ($this->notificaciones->removeElement($notificacion)) {
// set the owning side to null (unless already changed)
if ($notificacion->getCurso() === $this) {
$notificacion->setCurso(null);
}
}
return $this;
}
/**
* @return Collection|PuntuacionCurso[]
*/
public function getPuntuacionesCurso(): Collection
{
return $this->puntuacionesCurso;
}
public function addPuntuacionesCurso(PuntuacionCurso $puntuacionesCurso): self
{
if (!$this->puntuacionesCurso->contains($puntuacionesCurso)) {
$this->puntuacionesCurso[] = $puntuacionesCurso;
$puntuacionesCurso->setCurso($this);
}
return $this;
}
public function removePuntuacionesCurso(PuntuacionCurso $puntuacionesCurso): self
{
if ($this->puntuacionesCurso->removeElement($puntuacionesCurso)) {
// set the owning side to null (unless already changed)
if ($puntuacionesCurso->getCurso() === $this) {
$puntuacionesCurso->setCurso(null);
}
}
return $this;
}
/**
* @return Collection|PagoSubscripcion[]
*/
public function getPagosSubscripcion(): Collection
{
return $this->pagosSubscripcion;
}
public function addPagosSubscripcion(PagoSubscripcion $pagosSubscripcion): self
{
if (!$this->pagosSubscripcion->contains($pagosSubscripcion)) {
$this->pagosSubscripcion[] = $pagosSubscripcion;
$pagosSubscripcion->setCurso($this);
}
return $this;
}
public function removePagosSubscripcion(PagoSubscripcion $pagosSubscripcion): self
{
if ($this->pagosSubscripcion->removeElement($pagosSubscripcion)) {
// set the owning side to null (unless already changed)
if ($pagosSubscripcion->getCurso() === $this) {
$pagosSubscripcion->setCurso(null);
}
}
return $this;
}
/**
* @return Collection|HistorialPagoSubscripcion[]
*/
public function getHistorialPagosSubscripcion(): Collection
{
return $this->historialPagosSubscripcion;
}
public function getFechaCreacion(): ?DateTimeInterface
{
return $this->fechaCreacion;
}
public function setFechaCreacion(DateTimeInterface $fechaCreacion): self
{
$this->fechaCreacion = $fechaCreacion;
return $this;
}
/**
* If manually uploading a file (i.e. not using Symfony Form) ensure an instance
* of 'UploadedFile' is injected into this setter to trigger the update. If this
* bundle's configuration parameter 'inject_on_load' is set to 'true' this setter
* must be able to accept an instance of 'File' as the bundle will inject one here
* during Doctrine hydration.
*
* @param File|UploadedFile|null $uploadedFile
*/
public function setImgPortada(?File $uploadedFile = null): void
{
$this->imgPortada = $uploadedFile;
if (null !== $uploadedFile) {
// It is required that at least one field changes if you are using doctrine
// otherwise the event listeners won't be called and the file is lost
$this->setImgPortadaSize($uploadedFile->getSize());
}
}
public function getImgPortada(): ?File
{
return $this->imgPortada;
}
public function setImgPortadaName(?string $imgPortadaName): void
{
$this->imgPortadaName = $imgPortadaName;
}
public function getImgPortadaName(): ?string
{
return $this->imgPortadaName;
}
public function setImgPortadaSize(?int $imgPortadaSize): void
{
$this->imgPortadaSize = $imgPortadaSize;
}
public function getImgPortadaSize(): ?int
{
return $this->imgPortadaSize;
}
public function getModalidad(): ?string {
return $this->modalidad;
}
public function setModalidad(?string $modalidad): self
{
$this->modalidad = $modalidad ?? 'virtual';
return $this;
}
public function getNivel(): ?Nivel
{
return $this->nivel;
}
public function setNivel(?Nivel $nivel): self
{
$this->nivel = $nivel;
return $this;
}
/**
* @return ?float
*/
public function getPuntuacionPromedio(): ?float
{
return $this->puntuacionPromedio;
}
/**
* @param float $puntuacionPromedio
*/
public function setPuntuacionPromedio(float $puntuacionPromedio): void
{
$this->puntuacionPromedio = $puntuacionPromedio;
}
/**
* @return Collection<int, EstudianteCursoRol>
*/
public function getEstudianteCursoRols(): Collection
{
return $this->estudianteCursoRols;
}
public function addEstudianteCursoRol(EstudianteCursoRol $estudianteCursoRol): self
{
if (!$this->estudianteCursoRols->contains($estudianteCursoRol)) {
$this->estudianteCursoRols[] = $estudianteCursoRol;
$estudianteCursoRol->setCurso($this);
}
return $this;
}
public function removeEstudianteCursoRol(EstudianteCursoRol $estudianteCursoRol): self
{
if ($this->estudianteCursoRols->removeElement($estudianteCursoRol)) {
// set the owning side to null (unless already changed)
if ($estudianteCursoRol->getCurso() === $this) {
$estudianteCursoRol->setCurso(null);
}
}
return $this;
}
/**
* @return Collection<int, ArchivoCurso>
*/
public function getArchivoCursos(): Collection
{
return $this->archivoCursos;
}
public function addArchivoCurso(ArchivoCurso $archivoCurso): self
{
if (!$this->archivoCursos->contains($archivoCurso)) {
$this->archivoCursos[] = $archivoCurso;
$archivoCurso->setCurso($this);
}
return $this;
}
public function removeArchivoCurso(ArchivoCurso $archivoCurso): self
{
if ($this->archivoCursos->removeElement($archivoCurso)) {
// set the owning side to null (unless already changed)
if ($archivoCurso->getCurso() === $this) {
$archivoCurso->setCurso(null);
}
}
return $this;
}
/**
* @return Collection<int, TareasCurso>
*/
public function getTareasCursos(): Collection
{
return $this->tareasCursos;
}
public function addTareasCurso(TareasCurso $tareasCurso): self
{
if (!$this->tareasCursos->contains($tareasCurso)) {
$this->tareasCursos[] = $tareasCurso;
$tareasCurso->setCurso($this);
}
return $this;
}
public function removeTareasCurso(TareasCurso $tareasCurso): self
{
if ($this->tareasCursos->removeElement($tareasCurso)) {
// set the owning side to null (unless already changed)
if ($tareasCurso->getCurso() === $this) {
$tareasCurso->setCurso(null);
}
}
return $this;
}
/**
* @return mixed
*/
public function getNotaMaximaCaracter()
{
return $this->notaMaximaCaracter;
}
/**
* @param mixed $notaMaximaCaracter
*/
public function setNotaMaximaCaracter($notaMaximaCaracter): void
{
$this->notaMaximaCaracter = $notaMaximaCaracter;
}
/**
* @return mixed
*/
public function getNotaMaximaNumerica()
{
return $this->notaMaximaNumerica;
}
/**
* @param mixed $notaMaximaNumerica
*/
public function setNotaMaximaNumerica($notaMaximaNumerica): void
{
$this->notaMaximaNumerica = $notaMaximaNumerica;
}
/**
* @return mixed
*/
public function getNotaMaximaPorcentaje()
{
return $this->notaMaximaPorcentaje;
}
/**
* @param mixed $notaMaximaPorcentaje
*/
public function setNotaMaximaPorcentaje($notaMaximaPorcentaje): void
{
$this->notaMaximaPorcentaje = $notaMaximaPorcentaje;
}
/**
* @return Collection<int, EstudianteCursoNotaFinal>
*/
public function getEstudianteCursoNotaFinals(): Collection
{
return $this->estudianteCursoNotaFinals;
}
public function addEstudianteCursoNotaFinal(EstudianteCursoNotaFinal $estudianteCursoNotaFinal): self
{
if (!$this->estudianteCursoNotaFinals->contains($estudianteCursoNotaFinal)) {
$this->estudianteCursoNotaFinals[] = $estudianteCursoNotaFinal;
$estudianteCursoNotaFinal->setCurso($this);
}
return $this;
}
public function removeEstudianteCursoNotaFinal(EstudianteCursoNotaFinal $estudianteCursoNotaFinal): self
{
if ($this->estudianteCursoNotaFinals->removeElement($estudianteCursoNotaFinal)) {
// set the owning side to null (unless already changed)
if ($estudianteCursoNotaFinal->getCurso() === $this) {
$estudianteCursoNotaFinal->setCurso(null);
}
}
return $this;
}
public function getMateria(): ?Materia
{
return $this->materia;
}
public function setMateria(?Materia $materia): self
{
$this->materia = $materia;
return $this;
}
public function getSeccion(): ?Seccion
{
return $this->seccion;
}
public function setSeccion(?Seccion $seccion): self
{
$this->seccion = $seccion;
return $this;
}
public function getCursoInstitucion(): ?bool
{
return $this->cursoInstitucion;
}
public function setCursoInstitucion(?bool $cursoInstitucion): self
{
$this->cursoInstitucion = $cursoInstitucion;
return $this;
}
/**
* @return Collection<int, InvitacionInstitucionPermisos>
*/
public function getInvitacionInstitucionPermisos(): Collection
{
return $this->invitacionInstitucionPermisos;
}
public function addInvitacionInstitucionPermiso(InvitacionInstitucionPermisos $invitacionInstitucionPermiso): self
{
if (!$this->invitacionInstitucionPermisos->contains($invitacionInstitucionPermiso)) {
$this->invitacionInstitucionPermisos[] = $invitacionInstitucionPermiso;
$invitacionInstitucionPermiso->setCurso($this);
}
return $this;
}
public function removeInvitacionInstitucionPermiso(InvitacionInstitucionPermisos $invitacionInstitucionPermiso): self
{
if ($this->invitacionInstitucionPermisos->removeElement($invitacionInstitucionPermiso)) {
// set the owning side to null (unless already changed)
if ($invitacionInstitucionPermiso->getCurso() === $this) {
$invitacionInstitucionPermiso->setCurso(null);
}
}
return $this;
}
}