<?php
namespace JF\JuridicusBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use JF\JuridicusBundle\Validator\Constraints as JfAssert;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Entity
* @UniqueEntity(fields={"email","examen"}, message="Die Kombination aus E-Mail und Examen wird bereits verwendet.")
* @UniqueEntity(fields={"kennziffer","examen"}, message="Die Kombination aus Kennziffer und Examen wird bereits verwendet.")
* @UniqueEntity(fields={"handynummer","examen"}, message="Die Kombination aus Handynummer und Examen wird bereits verwendet.")
*/
class Kunde extends InitModeEntity
{
const CLASSNAME = __CLASS__;
/**
* @var integer
*/
private $id;
/**
* @var string
* @Assert\NotBlank(message="Der Vorname darf nicht leer sein.")
* @Assert\Length(max="255")
*/
private $vorname;
/**
* @var string
* @Assert\NotBlank(message="Der Nachname darf nicht leer sein.")
* @Assert\Length(max="255")
*/
private $nachname;
/**
* @var string
* @Assert\NotBlank(message="Die E-Mail-Adresse darf nicht leer sein.")
* @Assert\Email
* @Assert\Length(max="128")
* @JfAssert\EmailRole
*/
private $email;
/**
* @var string
* @Assert\NotBlank(message="Die Straße darf nicht leer sein.")
* @Assert\Length(max="48")
*/
private $strasse;
/**
* @var string
* @Assert\NotBlank(message="Die Hausnummer darf nicht leer sein.")
* @Assert\Length(max="6")
*/
private $hausnummer;
/**
* @var string
* @Assert\NotBlank(message="Die PLZ darf nicht leer sein.")
* @Assert\Regex(pattern="/^\d{5}$/", message = "Die PLZ muss aus 5 Ziffern bestehen.")
*/
private $plz;
/**
* @var string
* @Assert\NotBlank(message="Der Ort darf nicht leer sein.")
* @Assert\Length(max="48")
*/
private $ort;
/**
* @var string
* @Assert\NotBlank(message="Die Handynummer darf nicht leer sein.")
* @Assert\Length(max="20")
*/
private $handynummer;
/**
* @var integer
* @Assert\NotBlank(groups={"Default","step-1"})
*/
private $examen;
/**
* @var \DateTime
* @Assert\NotNull()
* @Assert\Type(\DateTimeInterface::class)
*/
private $geburtsdatum;
/**
* @var string
* @Assert\Length(max="20")
*/
private $telefonnummer;
/**
* @var string
* @Assert\Length(max="8")
*/
private $kennziffer;
/**
* @var boolean
*/
private $export_erlaubt = false;
/**
* @var boolean
*/
private $anruf_erlaubt = false;
/**
* @var boolean
*/
private $logged_in = false;
/**
* @var \DateTime
* @Assert\Type(\DateTimeInterface::class)
*/
private $sms_send_at;
/**
* @var integer
*/
private $sms_status_id;
/**
*
* @var string
*/
private $sms_status_message = 'Unbekannt';
/**
* @var boolean
*/
private $verkaeufer = false;
/**
* @var string
*/
private $notiz;
/**
* @var string
*/
private $kontoinhaber;
/**
* @var string
*/
private $kontonummer;
/**
* @var string
*/
private $bank;
/**
* @var string
*/
private $blz;
/**
* @var string
*/
private $iban;
/**
* @var string
*/
private $bic;
/**
* @var \JF\JuridicusBundle\Entity\Bundesland
* @Assert\NotBlank(groups={"Default","step-1"})
* @Assert\Valid
*/
private $bundesland;
/**
* @var float
*/
private $betrag_strafe;
/**
* @var boolean
*/
private $strafe_bezahlt = false;
/**
* @var \JF\JuridicusBundle\Entity\User
* @Assert\Valid
*/
private $user;
/**
* @var \DateTime
*/
private $created_at;
/**
* @var \JF\JuridicusBundle\Entity\PdfStempel
*/
private $pdf_stempel;
/**
* @var \Doctrine\Common\Collections\Collection
*/
private $downloads;
/**
* @var \Doctrine\Common\Collections\Collection
*/
private $emails;
/**
* @var \Doctrine\Common\Collections\Collection
*/
private $empfehlungen;
/**
* @var \Doctrine\Common\Collections\Collection
*/
private $exporte;
/**
* @var \Doctrine\Common\Collections\Collection
*/
private $kunde_kenntnisse;
/**
* @var string
*/
private $kunde_englisch_kenntniss;
/**
* @var string
*/
private $kunde_wunsch_arbeitsort;
/**
* @var \Doctrine\Common\Collections\Collection
*/
private $kunde_pruefungen;
/**
* @var \Doctrine\Common\Collections\Collection
*/
private $rechnungen;
/**
* @var \DateTime
*/
private $sperrdatum;
/**
* @var boolean
*/
private $pdf_need_update = true;
/**
* @var \JF\JuridicusBundle\Entity\Abo
*/
private $abo;
/**
*
* @var boolean
*/
private $klausurprotokollpflicht = true;
/**
* @var boolean
*/
private $pflicht_facebook_post = false;
/**
*
* @var boolean
*/
private $notenpflicht = true;
/**
* Constructor
*/
public function __construct()
{
$this->exporte = new ArrayCollection();
$this->downloads = new ArrayCollection();
$this->emails = new ArrayCollection();
$this->empfehlungen = new ArrayCollection();
$this->kunde_kenntnisse = new ArrayCollection();
$this->kunde_pruefungen = new ArrayCollection();
$this->rechnungen = new ArrayCollection();
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Add exporte
*
* @param \JF\JuridicusBundle\Entity\Export $exporte
* @return Kunde
*/
public function addExporte(Export $exporte)
{
$this->exporte[] = $exporte;
return $this;
}
/**
* Remove exporte
*
* @param \JF\JuridicusBundle\Entity\Export $exporte
*/
public function removeExporte(Export $exporte)
{
$this->exporte->removeElement($exporte);
}
/**
* Get exporte
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getExporte()
{
return $this->exporte;
}
/**
* Set kennziffer
*
* @param string $kennziffer
* @return Kunde
*/
public function setKennziffer($kennziffer)
{
$this->kennziffer = $kennziffer;
return $this;
}
/**
* Get kennziffer
*
* @return string
*/
public function getKennziffer()
{
return $this->kennziffer;
}
/**
* Set export_erlaubt
*
* @param boolean $exportErlaubt
* @return Kunde
*/
public function setExportErlaubt($exportErlaubt)
{
$this->export_erlaubt = (bool) $exportErlaubt;
return $this;
}
/**
* Get export_erlaubt
*
* @return boolean
*/
public function getExportErlaubt()
{
return $this->export_erlaubt;
}
/**
* Set user [OWNING SIDE]
*
* @param User $user
* @return Kunde
*/
public function setUser(User $user = null)
{
$this->user = $user;
return $this;
}
/**
* Get user
*
* @return User
*/
public function getUser()
{
return $this->user;
}
/**
* Add downloads [INVERSE SIDE]
*
* @param \JF\JuridicusBundle\Entity\Download $downloads
* @return Kunde
*/
public function addDownload(Download $downloads)
{
$this->downloads[] = $downloads;
$downloads->setKunde($this);
return $this;
}
/**
* Remove downloads [INVERSE SIDE]
*
* @param \JF\JuridicusBundle\Entity\Download $downloads
*/
public function removeDownload(Download $downloads)
{
$this->downloads->removeElement($downloads);
$downloads->setKunde(null);
}
/**
* Get downloads
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getDownloads()
{
return $this->downloads;
}
/**
* Add email
*
* @param \JF\JuridicusBundle\Entity\Email $email
* @return Kunde
*/
public function addEmail(Email $email)
{
$this->emails[] = $email;
return $this;
}
/**
* Remove email
*
* @param \JF\JuridicusBundle\Entity\Email $emails
*/
public function removeEmail(Email $email)
{
$this->emails->removeElement($email);
}
/**
* Get emails
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getEmails()
{
return $this->emails;
}
/**
* Add empfehlungen [INVERSE SIDE]
*
* @param \JF\JuridicusBundle\Entity\Empfehlung $empfehlung
* @return Kunde
*/
public function addEmpfehlungen(Empfehlung $empfehlung)
{
$this->empfehlungen[] = $empfehlung;
return $this;
}
/**
* Remove empfehlungen [INVERSE SIDE]
*
* @param \JF\JuridicusBundle\Entity\Empfehlung $empfehlung
*/
public function removeEmpfehlungen(Empfehlung $empfehlung)
{
$this->empfehlungen->removeElement($empfehlungen);
}
/**
* Get empfehlungen
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getEmpfehlungen()
{
return $this->empfehlungen;
}
/**
* Add kunde_kenntnisse [INVERSE SIDE]
*
* @param \JF\JuridicusBundle\Entity\KundeKenntnis $kundeKenntnis
* @return Kunde
*/
public function addKundeKenntnisse(KundeKenntnis $kundeKenntnis)
{
$this->kunde_kenntnisse[] = $kundeKenntnis;
$kundeKenntnis->setKunde($this);
return $this;
}
/**
* Remove kunde_kenntnisse [INVERSE SIDE]
*
* @param \JF\JuridicusBundle\Entity\KundeKenntnis $kundeKenntnis
*/
public function removeKundeKenntnisse(KundeKenntnis $kundeKenntnis)
{
$this->kunde_kenntnisse->removeElement($kundeKenntnis);
$kundeKenntnis->setKunde(null);
}
/**
* Get kunde_kenntnisse
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getKundeKenntnisse()
{
return $this->kunde_kenntnisse;
}
/**
* Set kunde_englisch_kenntniss
*
* @param string $bundesland
* @return Kunde
*/
public function setKundeEnglischKenntniss(String $kunde_englisch_kenntniss)
{
$this->kunde_englisch_kenntniss = $kunde_englisch_kenntniss;
return $this;
}
/**
* Get kunde_englisch_kenntniss
*
* @return string
*/
public function getKundeEnglischKenntniss()
{
return $this->kunde_englisch_kenntniss;
}
/**
* Set kunde_wunsch_arbeitsort
*
* @param string $bundesland
* @return Kunde
*/
public function setKundeWunschArbeitsort(String $kunde_wunsch_arbeitsort)
{
$this->kunde_wunsch_arbeitsort = $kunde_wunsch_arbeitsort;
return $this;
}
/**
* Get kunde_wunsch_arbeitsort
*
* @return string
*/
public function getKundeWunschArbeitsort()
{
return $this->kunde_wunsch_arbeitsort;
}
/**
* Set bundesland [OWNING SIDE]
*
* @param \JF\JuridicusBundle\Entity\Bundesland $bundesland
* @return Kunde
*/
public function setBundesland(Bundesland $bundesland = null)
{
$this->bundesland = $bundesland;
return $this;
}
/**
* Get bundesland
*
* @return \JF\JuridicusBundle\Entity\Bundesland
*/
public function getBundesland()
{
return $this->bundesland;
}
/**
* __toString
*
* @return string String-Repräsentation des Kunden
*/
public function __toString()
{
if ($this->getId()) {
return $this->getEmail();
} else {
return 'Neuer Kunde';
}
}
/**
* Set pdf_stempel [INVERSE SIDE]
*
* @param \JF\JuridicusBundle\Entity\PdfStempel $pdfStempel
* @return Kunde
*/
public function setPdfStempel(PdfStempel $pdfStempel = null)
{
$this->pdf_stempel = $pdfStempel;
return $this;
}
/**
* Get pdf_stempel
*
* @return \JF\JuridicusBundle\Entity\PdfStempel
*/
public function getPdfStempel()
{
return $this->pdf_stempel;
}
/**
*
* @return string
*/
public function getStempelText()
{
return sprintf(
'Persönliche Kopie für %s %s %s- %s - %s',
$this->vorname,
$this->nachname,
$this->kennziffer ? sprintf('(%s) ', $this->kennziffer ) : '',
$this->email,
$this->handynummer
);
}
/**
* Add kunde_pruefungen [INVERSE SIDE]
*
* @param \JF\JuridicusBundle\Entity\KundePruefung $kundePruefungen
* @return Kunde
*/
public function addKundePruefungen(KundePruefung $kundePruefungen)
{
$this->kunde_pruefungen[] = $kundePruefungen;
return $this;
}
/**
* Remove kunde_pruefungen [INVERSE SIDE]
*
* @param \JF\JuridicusBundle\Entity\KundePruefung $kundePruefung
*/
public function removeKundePruefungen(KundePruefung $kundePruefung)
{
$this->kunde_pruefungen->removeElement($kundePruefung);
}
/**
* Get kunde_pruefungen
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getKundePruefungen()
{
return $this->kunde_pruefungen;
}
/**
*
* @return int
*/
public function getAnzahlBuchungen()
{
return $this->getKundePruefungen()->count();
}
/**
*
* @param \JF\JuridicusBundle\Entity\Pruefung $pruefung
* @return boolean
*/
public function isGebucht(Pruefung $pruefung)
{
foreach ($this->getKundePruefungen() as $buchung) {
/* @var $buchung \JF\JuridicusBundle\Entity\KundePruefung */
if ($buchung->getPruefung()->getId() == $pruefung->getId()) {
return true;
}
}
return false;
}
/**
*
* @param \JF\JuridicusBundle\Entity\Pruefung $pruefung
* @return \JF\JuridicusBundle\Entity\KundePruefung|null
*/
public function findBuchung(Pruefung $pruefung)
{
foreach ($this->getKundePruefungen() as $buchung) {
/* @var $buchung \JF\JuridicusBundle\Entity\KundePruefung */
if ($buchung->getPruefung()->getId() == $pruefung->getId()) {
return $buchung;
}
}
return null;
}
/**
* ermittelt das Datum, das für die Bereitstellung der letzten 3 ZA-Ausgaben verwendet wird
* @return \DateTime
*/
public function getZAStichtag()
{
$newest_date = $this->getCreatedAt();
foreach ($this->getKundePruefungen() as $buchung) {
$date = $buchung->getDatumBuchung();
if ($date && $date > $newest_date) {
$newest_date = $date;
}
}
return $newest_date;
}
/**
*
* @return boolean
*/
public function hasBuchung()
{
return ! $this->getKundePruefungen()->isEmpty();
}
/**
* Set strasse
*
* @param string $strasse
* @return Kunde
*/
public function setStrasse($strasse)
{
$this->strasse = $strasse;
return $this;
}
/**
* Get strasse
*
* @return string
*/
public function getStrasse()
{
return $this->strasse;
}
/**
* Set hausnummer
*
* @param string $hausnummer
* @return Kunde
*/
public function setHausnummer($hausnummer)
{
$this->hausnummer = $hausnummer;
return $this;
}
/**
* Get hausnummer
*
* @return string
*/
public function getHausnummer()
{
return $this->hausnummer;
}
/**
* Get Strasse und Hausnummer
*
* @return string
*/
public function getStrasseAndHausnummer()
{
return sprintf( '%s %s', $this->strasse, $this->hausnummer);
}
/**
* Set plz
*
* @param string $plz
* @return Kunde
*/
public function setPlz($plz)
{
$this->plz = $plz;
return $this;
}
/**
* Get plz
*
* @return string
*/
public function getPlz()
{
return $this->plz;
}
/**
* Set ort
*
* @param string $ort
* @return Kunde
*/
public function setOrt($ort)
{
$this->ort = $ort;
return $this;
}
/**
* Get ort
*
* @return string
*/
public function getOrt()
{
return $this->ort;
}
/**
* Get PLZ and Ort
*
* @return string
*/
public function getPlzAndOrt()
{
return sprintf('%s %s', $this->plz, $this->ort);
}
/**
* Set handynummer
*
* @param string $handynummer
* @return Kunde
*/
public function setHandynummer($handynummer)
{
$this->handynummer = $handynummer;
return $this;
}
/**
* Get handynummer
*
* @return string
*/
public function getHandynummer()
{
return $this->handynummer;
}
/**
* Set examen
*
* @param integer $examen
* @return Kunde
*/
public function setExamen($examen)
{
$this->examen = $examen;
return $this;
}
/**
* Get examen
*
* @return integer
*/
public function getExamen()
{
return $this->examen;
}
/**
* Set logged_in
*
* @param boolean $loggedIn
* @return Kunde
*/
public function setLoggedIn($loggedIn)
{
$this->logged_in = (bool) $loggedIn;
return $this;
}
/**
* Get logged_in
*
* @return boolean
*/
public function getLoggedIn()
{
return $this->logged_in;
}
/**
* Set sms_send_at
*
* @param \DateTime $smsSendAt
* @return Kunde
*/
public function setSmsSendAt(\DateTime $smsSendAt = null)
{
$this->sms_send_at = $smsSendAt;
return $this;
}
/**
* Get sms_send_at
*
* @return \DateTime
*/
public function getSmsSendAt()
{
return $this->sms_send_at;
}
/**
* Set notiz
*
* @param string $notiz
* @return Kunde
*/
public function setNotiz($notiz)
{
$this->notiz = $notiz;
return $this;
}
/**
* Get notiz
*
* @return string
*/
public function getNotiz()
{
return $this->notiz;
}
/**
* Set vorname
*
* @param string $vorname
* @return Kunde
*/
public function setVorname($vorname)
{
$this->vorname = $vorname;
return $this;
}
/**
* Get vorname
*
* @return string
*/
public function getVorname()
{
return $this->vorname;
}
/**
* Set nachname
*
* @param string $nachname
* @return Kunde
*/
public function setNachname($nachname)
{
$this->nachname = $nachname;
return $this;
}
/**
* Get nachname
*
* @return string
*/
public function getNachname()
{
return $this->nachname;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return sprintf( '%s %s', $this->vorname, $this->nachname);
}
/**
* Set email
*
* @param string $email
* @return Kunde
*/
public function setEmail($email)
{
$this->email = $email;
return $this;
}
/**
* Get email
*
* @return string
*/
public function getEmail()
{
return $this->email;
}
/**
* Set geburtsdatum
*
* @param \DateTime $geburtsdatum
* @return Kunde
*/
public function setGeburtsdatum(\DateTime $geburtsdatum = null)
{
$this->geburtsdatum = $geburtsdatum;
return $this;
}
/**
* Get geburtsdatum
*
* @return \DateTime
*/
public function getGeburtsdatum()
{
return $this->geburtsdatum;
}
/**
* Set telefonnummer
*
* @param string $telefonnummer
* @return Kunde
*/
public function setTelefonnummer($telefonnummer)
{
$this->telefonnummer = $telefonnummer;
return $this;
}
/**
* Get telefonnummer
*
* @return string
*/
public function getTelefonnummer()
{
return $this->telefonnummer;
}
/**
* Get days since registration
*
* @return integer
*/
public function getDaysSinceRegistration()
{
$now = new \DateTime();
return $this->created_at->diff($now)->format('%r%a');
}
/**
*
* @return string
*/
public function getCssClass()
{
if ($this->getAnzahlBuchungen() > 0)
{
return 'ok';
}
if ($this->betrag_strafe && $this->strafe_bezahlt === false && $this->getDaysSinceRegistration() > 28)
{
return 'unpaid';
}
return 'ok';
}
/**
* Add to Pdf
*
* @param \TCPDF
*/
public function addToPdf(\TCPDF & $pdf)
{
$txt = sprintf(
'© %s by Juridicus. Die Weitergabe dieser Kopie ist nicht erlaubt und wird strafrechtlich geahndet.',
date('Y')
);
$pdf->Cell(0, 0, $txt, 0, 1, 'L');
$pdf->Cell(0, 0, $this->getStempelText(), 0, 1, 'L');
}
/**
* Set created_at
*
* @param \DateTime $createdAt
* @return Kunde
*/
public function setCreatedAt(\DateTime $createdAt = null)
{
$this->created_at = $createdAt;
return $this;
}
/**
* Get created_at
*
* @return \DateTime
*/
public function getCreatedAt()
{
return $this->created_at;
}
/**
* Set anruf_erlaubt
*
* @param boolean $anrufErlaubt
* @return Kunde
*/
public function setAnrufErlaubt($anrufErlaubt)
{
$this->anruf_erlaubt = (bool) $anrufErlaubt;
return $this;
}
/**
* Get anruf_erlaubt
*
* @return boolean
*/
public function getAnrufErlaubt()
{
return $this->anruf_erlaubt;
}
/**
* Set kontoinhaber
*
* @param string $kontoinhaber
* @return Kunde
*/
public function setKontoinhaber($kontoinhaber)
{
$this->kontoinhaber = $kontoinhaber;
return $this;
}
/**
* Get kontoinhaber
*
* @return string
*/
public function getKontoinhaber()
{
return $this->kontoinhaber;
}
/**
* Set kontonummer
*
* @param string $kontonummer
* @return Kunde
*/
public function setKontonummer($kontonummer)
{
$this->kontonummer = $kontonummer;
return $this;
}
/**
* Get kontonummer
*
* @return string
*/
public function getKontonummer()
{
return $this->kontonummer;
}
/**
* Set bank
*
* @param string $bank
* @return Kunde
*/
public function setBank($bank)
{
$this->bank = $bank;
return $this;
}
/**
* Get bank
*
* @return string
*/
public function getBank()
{
return $this->bank;
}
/**
* Set blz
*
* @param string $blz
* @return Kunde
*/
public function setBlz($blz)
{
$this->blz = $blz;
return $this;
}
/**
* Get blz
*
* @return string
*/
public function getBlz()
{
return $this->blz;
}
/**
* Set verkaeufer
*
* @param boolean $verkaeufer
* @return Kunde
*/
public function setVerkaeufer($verkaeufer)
{
$this->verkaeufer = (bool) $verkaeufer;
return $this;
}
/**
* Get verkaeufer
*
* @return boolean
*/
public function getVerkaeufer()
{
return $this->verkaeufer;
}
/**
* Auswahlbereich für ein Prüfungsdatum. Bei Verkaüfern und Kunden von Prüfungsämtern ohne Vollbestand darf das
* Prüfungsdatum auch in der Vergangenheit liegen.
*
* @return string
*/
public function getDatepickerClass()
{
if ($this->verkaeufer || $this->betrag_strafe) {
return 'free';
} else {
return 'future';
}
}
/**
* Set iban
*
* @param string $iban
* @return Kunde
*/
public function setIban($iban)
{
$this->iban = $iban;
return $this;
}
/**
* Get iban
*
* @return string
*/
public function getIban()
{
return $this->iban;
}
/**
* Set bic
*
* @param string $bic
* @return Kunde
*/
public function setBic($bic)
{
$this->bic = $bic;
return $this;
}
/**
* Get bic
*
* @return string
*/
public function getBic()
{
return $this->bic;
}
/**
* Set sms_status_id
*
* @param integer $smsStatusId
* @return Kunde
*/
public function setSmsStatusId($smsStatusId)
{
$this->sms_status_id = $smsStatusId;
return $this;
}
/**
* Get sms_status_id
*
* @return integer
*/
public function getSmsStatusId()
{
return $this->sms_status_id;
}
/**
*
* @param string $message
* @return \JF\JuridicusBundle\Entity\Kunde
*/
public function setSmsStatusMessage($message)
{
$this->sms_status_message = $message;
return $this;
}
/**
*
* @return string
*/
public function getSmsStatusMessage()
{
return $this->sms_status_message;
}
/**
* Set betrag_strafe
*
* @param float $betragStrafe
* @return Kunde
*/
public function setBetragStrafe($betragStrafe)
{
$this->betrag_strafe = $betragStrafe;
return $this;
}
/**
* Get betrag_strafe
*
* @return float
*/
public function getBetragStrafe()
{
return $this->betrag_strafe;
}
/**
* Set strafe_bezahlt
*
* @param boolean $strafeBezahlt
* @return Kunde
*/
public function setStrafeBezahlt($strafeBezahlt)
{
$this->strafe_bezahlt = (bool) $strafeBezahlt;
$rechnung = $this->getRechnungOhneBuchung(Gebuehr::TYP_STRAFGEBUEHR);
if ($rechnung) {
$rechnung->setBezahlt($this->strafe_bezahlt ? $this->betrag_strafe : 0.0);
}
return $this;
}
/**
* Get strafe_bezahlt
*
* @return boolean
*/
public function getStrafeBezahlt()
{
return $this->strafe_bezahlt;
}
/**
* Add rechnung
*
* @param \JF\JuridicusBundle\Entity\Rechnung $rechnung
* @return Kunde
*/
public function addRechnungen(Rechnung $rechnung)
{
$this->rechnungen[] = $rechnung;
return $this;
}
/**
* Remove rechnung
*
* @param \JF\JuridicusBundle\Entity\Rechnung $rechnung
*/
public function removeRechnungen(Rechnung $rechnung)
{
$this->rechnungen->removeElement($rechnung);
}
/**
* Get rechnungen
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getRechnungen()
{
return $this->rechnungen;
}
/**
*
*
* @param integer $gebuehr_typ
* @return Rechnung|null
*/
public function getRechnungOhneBuchung($gebuehr_typ)
{
foreach ($this->getRechnungen() as $rechnung) {
/* @var $rechnung \JF\JuridicusBundle\Entity\Rechnung */
if ($rechnung->getTyp() == $gebuehr_typ && ! $rechnung->getBuchung()) {
return $rechnung;
}
}
return null;
}
/**
* Set sperrdatum
*
* @param \DateTime $sperrdatum
* @return Kunde
*/
public function setSperrdatum(\DateTime $sperrdatum = null)
{
$this->sperrdatum = $sperrdatum;
return $this;
}
/**
* Get sperrdatum
*
* @return \DateTime
*/
public function getSperrdatum()
{
return $this->sperrdatum;
}
/**
* Set pdf_need_update
*
* @param boolean $pdfNeedUpdate
* @return Kunde
*/
public function setPdfNeedUpdate($pdfNeedUpdate = true)
{
$this->pdf_need_update = (bool) $pdfNeedUpdate;
return $this;
}
/**
* Get pdf_need_update
*
* @return boolean
*/
public function getPdfNeedUpdate()
{
return $this->pdf_need_update;
}
/**
* Set abo
*
* @param \JF\JuridicusBundle\Entity\Abo $abo
* @return Kunde
*/
public function setAbo(Abo $abo = null)
{
$this->abo = $abo;
return $this;
}
/**
* Get abo
*
* @return \JF\JuridicusBundle\Entity\Abo
*/
public function getAbo()
{
return $this->abo;
}
/**
*
* @return \JF\JuridicusBundle\Entity\Pruefungsamt|null
*/
public function getPruefungsamt()
{
foreach($this->getBundesland()->getPruefungsaemter() as $pruefungsamt) {
/* @var $pruefungsamt \JF\JuridicusBundle\Entity\Pruefungsamt */
if ($pruefungsamt->getExamen() == $this->getExamen()) {
return $pruefungsamt;
}
}
return null;
}
/**
* Set klausurprotokollpflicht
*
* @param boolean $klausurprotokollpflicht
* @return Kunde
*/
public function setKlausurprotokollpflicht($klausurprotokollpflicht = true)
{
$this->klausurprotokollpflicht = (bool) $klausurprotokollpflicht;
return $this;
}
/**
* Get klausurprotokollpflicht
*
* @return boolean
*/
public function getKlausurprotokollpflicht()
{
return $this->klausurprotokollpflicht;
}
/**
* Set pflicht_facebook_post
*
* @param boolean $pflichtFacebookPost
* @return Kunde
*/
public function setPflichtFacebookPost($pflichtFacebookPost = true)
{
$this->pflicht_facebook_post = (bool) $pflichtFacebookPost;
return $this;
}
/**
* Get pflicht_facebook_post
*
* @return boolean
*/
public function getPflichtFacebookPost()
{
return $this->pflicht_facebook_post;
}
/**
* Set notenpflicht
*
* @param boolean $notenpflicht
* @return \JF\JuridicusBundle\Entity\Kunde
*/
public function setNotenpflicht($notenpflicht = true)
{
$this->notenpflicht = (bool) $notenpflicht;
return $this;
}
/**
* Get notenpflicht
*
* @return boolean
*/
public function getNotenpflicht()
{
return $this->notenpflicht;
}
}