<?php
namespace App\Entity;
use App\Entity\Base\AbstractTimestampableEntity;
use App\Repository\CompanyRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=CompanyRepository::class)
* @ORM\HasLifecycleCallbacks
*/
class Company extends AbstractTimestampableEntity
{
//fizikai szemely
const COMPANY_TYPE_PF = 1;
//Jogi szemelyek(ceg)
const COMPANY_TYPE_PJ = 2;
/**
* @ORM\Column(type="string", length=255)
*/
private string $name;
/**
* @ORM\Column(type="string", length=255)
*/
private string $codFiscal;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $nrRegCom="";
/**
* @ORM\Column(type="string", length=255)
*/
private string $address;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $banca;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $contBancar;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $contactPerson;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $contactPersonTitle;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $tel;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $email;
/**
* @ORM\OneToMany(targetEntity=Contract::class, mappedBy="company")
*/
private Collection $contracts;
/**
* @ORM\Column(type="integer")
*/
private int $type;
/**
* @ORM\OneToMany(targetEntity=FacturiHeader::class, mappedBy="company")
*/
private Collection $facturiHeaders;
/**
* @ORM\Column(type="boolean",options={"default":false})
*/
private bool $deleted = false;
/**
* @ORM\OneToMany(targetEntity=Payment::class, mappedBy="company")
*/
private Collection $payments;
/**
* @ORM\Column(type="boolean")
*/
private $payerTva;
/**
* @ORM\ManyToOne(targetEntity=Country::class, inversedBy="companies")
*/
private $country;
/**
* @ORM\Column(type="boolean", options={"default":true})
*/
private bool $billWithTva = true;
/**
* @ORM\Column(type="boolean", options={"default":true})
*/
private bool $zeroTva = false;
/**
* @ORM\OneToMany(targetEntity=CashIn::class, mappedBy="company")
*/
private $cashIns;
/**
* @ORM\OneToMany(targetEntity=CashOut::class, mappedBy="company")
*/
private $cashOuts;
/**
* @ORM\ManyToOne(inversedBy="clients")
* @ORM\JoinColumn(nullable=true)
*/
private ?County $county = null;
/**
* @ORM\ManyToOne(inversedBy="clients")
* @ORM\JoinColumn(nullable=true)
*/
private ?City $city = null;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $anafStr;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $anafNr;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $anafLoc;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $anafDenumireJud;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $anafCodJud;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $anafDetaliiAddresa;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $anafCodPostal;
/**
* @return County|null
*/
public function getCounty(): ?County
{
return $this->county;
}
/**
* @param County|null $county
*/
public function setCounty(?County $county): void
{
$this->county = $county;
}
/**
* @return City|null
*/
public function getCity(): ?City
{
return $this->city;
}
/**
* @param City|null $city
*/
public function setCity(?City $city): void
{
$this->city = $city;
}
/**
* @return string|null
*/
public function getAnafStr(): ?string
{
return $this->anafStr;
}
/**
* @param string|null $anafStr
*/
public function setAnafStr(?string $anafStr): void
{
$this->anafStr = $anafStr;
}
/**
* @return string|null
*/
public function getAnafNr(): ?string
{
return $this->anafNr;
}
/**
* @param string|null $anafNr
*/
public function setAnafNr(?string $anafNr): void
{
$this->anafNr = $anafNr;
}
/**
* @return string|null
*/
public function getAnafLoc(): ?string
{
return $this->anafLoc;
}
/**
* @param string|null $anafLoc
*/
public function setAnafLoc(?string $anafLoc): void
{
$this->anafLoc = $anafLoc;
}
/**
* @return string|null
*/
public function getAnafDenumireJud(): ?string
{
return $this->anafDenumireJud;
}
/**
* @param string|null $anafDenumireJud
*/
public function setAnafDenumireJud(?string $anafDenumireJud): void
{
$this->anafDenumireJud = $anafDenumireJud;
}
/**
* @return string|null
*/
public function getAnafCodJud(): ?string
{
return $this->anafCodJud;
}
/**
* @param string|null $anafCodJud
*/
public function setAnafCodJud(?string $anafCodJud): void
{
$this->anafCodJud = $anafCodJud;
}
/**
* @return string|null
*/
public function getAnafDetaliiAddresa(): ?string
{
return $this->anafDetaliiAddresa;
}
/**
* @param string|null $anafDetaliiAddresa
*/
public function setAnafDetaliiAddresa(?string $anafDetaliiAddresa): void
{
$this->anafDetaliiAddresa = $anafDetaliiAddresa;
}
/**
* @return string|null
*/
public function getAnafCodPostal(): ?string
{
return $this->anafCodPostal;
}
/**
* @param string|null $anafCodPostal
*/
public function setAnafCodPostal(?string $anafCodPostal): void
{
$this->anafCodPostal = $anafCodPostal;
}
/**
* @ORM\ManyToOne(targetEntity=CompanyType::class, inversedBy="companies")
* @ORM\JoinColumn(nullable=false, options={"default":1})
*/
private $companyType;
public function __construct()
{
$this->contracts = new ArrayCollection();
$this->facturiHeaders = new ArrayCollection();
$this->payments = new ArrayCollection();
$this->cashIns = new ArrayCollection();
$this->cashOuts = new ArrayCollection();
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getCodFiscal(): ?string
{
return $this->codFiscal;
}
public function setCodFiscal(string $codFiscal): self
{
$this->codFiscal = $codFiscal;
return $this;
}
public function getNrRegCom(): ?string
{
return $this->nrRegCom;
}
public function setNrRegCom(?string $nrRegCom): self
{
$this->nrRegCom = $nrRegCom;
return $this;
}
public function getId(): int
{
return $this->id;
}
public function setId(int $id): void
{
$this->id = $id;
}
public function getAddress(): ?string
{
return $this->address;
}
public function setAddress(string $address): self
{
$this->address = $address;
return $this;
}
public function getBanca(): ?string
{
return $this->banca;
}
public function setBanca(?string $banca): self
{
$this->banca = $banca;
return $this;
}
public function getContBancar(): ?string
{
return $this->contBancar;
}
public function setContBancar(?string $contBancar): self
{
$this->contBancar = $contBancar;
return $this;
}
public function getContactPerson(): ?string
{
return $this->contactPerson;
}
public function setContactPerson(?string $contactPerson): self
{
$this->contactPerson = $contactPerson;
return $this;
}
public function getContactPersonTitle()
{
return $this->contactPersonTitle;
}
public function setContactPersonTitle($contactPersonTitle): void
{
$this->contactPersonTitle = $contactPersonTitle;
}
public function getTel(): ?string
{
return $this->tel;
}
public function setTel(?string $tel): self
{
$this->tel = $tel;
return $this;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(?string $email): self
{
$this->email = $email;
return $this;
}
/**
* @return Collection<int, Contract>
*/
public function getContract(): Collection
{
return $this->contracts;
}
public function addContract(Contract $contract): self
{
if (!$this->contracts->contains($contract)) {
$this->contracts[] = $contract;
$contract->setCompany($this);
}
return $this;
}
public function removeContract(Contract $contract): self
{
if ($this->contracts->removeElement($contract)) {
// set the owning side to null (unless already changed)
if ($contract->getCompany() === $this) {
$contract->setCompany(null);
}
}
return $this;
}
public function getType(): ?int
{
return $this->type;
}
public function setType(int $type): self
{
$this->type = $type;
return $this;
}
/**
* @return Collection<int, FacturiHeader>
*/
public function getFacturiHeaders(): Collection
{
return $this->facturiHeaders;
}
public function addFacturiHeader(FacturiHeader $facturiHeader): self
{
if (!$this->facturiHeaders->contains($facturiHeader)) {
$this->facturiHeaders[] = $facturiHeader;
$facturiHeader->setCompany($this);
}
return $this;
}
public function removeFacturiHeader(FacturiHeader $facturiHeader): self
{
if ($this->facturiHeaders->removeElement($facturiHeader)) {
// set the owning side to null (unless already changed)
if ($facturiHeader->getCompany() === $this) {
$facturiHeader->setCompany(null);
}
}
return $this;
}
public function isDeleted(): ?bool
{
return $this->deleted;
}
public function setDeleted(bool $deleted): self
{
$this->deleted = $deleted;
return $this;
}
/**
* @return Collection<int, Payment>
*/
public function getPayments(): Collection
{
return $this->payments;
}
public function addPayment(Payment $payment): self
{
if (!$this->payments->contains($payment)) {
$this->payments[] = $payment;
$payment->setCompany($this);
}
return $this;
}
public function removePayment(Payment $payment): self
{
if ($this->payments->removeElement($payment)) {
// set the owning side to null (unless already changed)
if ($payment->getCompany() === $this) {
$payment->setCompany(null);
}
}
return $this;
}
public function isPayerTva(): ?bool
{
return $this->payerTva;
}
public function setPayerTva(bool $payerTva): self
{
$this->payerTva = $payerTva;
return $this;
}
public function __toString(): string
{
return $this->getName();
}
public function getCountry(): ?Country
{
return $this->country;
}
public function setCountry(?Country $country): self
{
$this->country = $country;
return $this;
}
public function isBillWithTva(): ?bool
{
return $this->billWithTva;
}
public function setBillWithTva(?bool $billWithTva): self
{
$this->billWithTva = $billWithTva;
return $this;
}
public function isZeroTva(): ?bool
{
return $this->zeroTva;
}
public function setZeroTva(?bool $zeroTva): self
{
$this->zeroTva = $zeroTva;
return $this;
}
/**
* @return Collection<int, CashIn>
*/
public function getCashIns(): Collection
{
return $this->cashIns;
}
public function addCashIn(CashIn $cashIn): self
{
if (!$this->cashIns->contains($cashIn)) {
$this->cashIns[] = $cashIn;
$cashIn->setCompany($this);
}
return $this;
}
public function removeCashIn(CashIn $cashIn): self
{
if ($this->cashIns->removeElement($cashIn)) {
// set the owning side to null (unless already changed)
if ($cashIn->getCompany() === $this) {
$cashIn->setCompany(null);
}
}
return $this;
}
/**
* @return Collection<int, CashOut>
*/
public function getCashOuts(): Collection
{
return $this->cashOuts;
}
public function addCashOut(CashOut $cashOut): self
{
if (!$this->cashOuts->contains($cashOut)) {
$this->cashOuts[] = $cashOut;
$cashOut->setCompany($this);
}
return $this;
}
public function removeCashOut(CashOut $cashOut): self
{
if ($this->cashOuts->removeElement($cashOut)) {
// set the owning side to null (unless already changed)
if ($cashOut->getCompany() === $this) {
$cashOut->setCompany(null);
}
}
return $this;
}
public function getCompanyType(): ?CompanyType
{
return $this->companyType;
}
public function setCompanyType(?CompanyType $companyType): self
{
$this->companyType = $companyType;
return $this;
}
/**
* @return Collection
*/
public function getContracts(): Collection
{
return $this->contracts;
}
/**
* @param Collection $contracts
*/
public function setContracts(Collection $contracts): void
{
$this->contracts = $contracts;
}
}