<?php
namespace App\Entity;
use App\Application\Application;
use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Mapping as ORM;
/**
* Company
*
* @ORM\Table(name="company")
* @ORM\Entity(repositoryClass="App\Repository\CompanyRepository")
*/
class Company
{
/**
* @var \Ramsey\Uuid\UuidInterface
*
* @ORM\Id
* @ORM\Column(type="uuid", unique=true)
* @ORM\GeneratedValue(strategy="CUSTOM")
* @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=50)
*/
private $name;
/**
* @var int
*
* @ORM\Column(name="telephone", type="integer", nullable=true)
*/
private $telephone;
/**
* @var int
*
* @ORM\Column(name="telephone_main", type="integer", nullable=true)
*/
private $telephoneMain;
/**
* @var int
*
* @ORM\Column(name="telephone_master", type="integer", nullable=true)
*/
private $telephoneMaster;
/**
* @var int
*
* @ORM\Column(name="telephone_slave", type="integer", nullable=true)
*/
private $telephoneSlave;
/**
* @var string
*
* @ORM\Column(name="email_main", type="string", length=50, nullable=true)
*/
private $emailMain;
/**
* @var string
*
* @ORM\Column(name="email_slave", type="string", length=50, nullable=true)
*/
private $emailSlave;
/**
* @var string
*
* @ORM\Column(name="website", type="string", length=50, nullable=true)
*/
private $website;
/**
* @var string
*
* @ORM\Column(name="licenca", type="string", length=1000, nullable=true)
*/
private $licenca;
/**
* @var string
*
* @ORM\Column(name="valid", type="string", length=50, nullable=true)
*/
private $valid;
/**
* @var string
*
* @ORM\Column(name="nif", type="string", length=50, nullable=false)
*/
private $nif;
/**
* @var string
*
* @ORM\Column(name="slogan", type="string", length=100, nullable=true)
*/
private $slogan;
/**
* @var string
*
* @ORM\Column(name="logo", type="text", length=5000, nullable=true)
*/
private $logo;
/**
* @var string
*
* @ORM\Column(name="fullName", type="string", length=255, nullable=true)
*/
private $fullName;
/**
* @var string
*
* @ORM\Column(name="fax", type="string", length=255, nullable=true)
*/
private $fax;
/**
* @var string
*
* @ORM\Column(name="capitalSocial", type="string", length=255, nullable=true)
*/
private $capitalSocial;
/**
* @var string
*
* @ORM\Column(name="endereco", type="string", length=255, nullable=true)
*/
private $endereco;
/**
* @ORM\OneToMany(targetEntity="App\Entity\ContaBancaria", mappedBy="contasBancarias")
*/
private $contasBancarias;
/**
* @ORM\OneToMany(targetEntity="App\Entity\PlanCounter", mappedBy="company")
* @ORM\OrderBy({"dueDate" = "DESC"})
*/
private $plans;
private $plan;
/**
* @ORM\OneToMany(targetEntity="App\Entity\TaxData", mappedBy="company")
*/
private $taxData;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Address", cascade={"persist"})
*/
private $address;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\TaxExemption", cascade={"persist"})
*/
private $taxRegim;
/**
* @var string
*
* @ORM\Column(name="id_tipo", type="string", nullable=true, length=100, unique=false)
*/
private $idType;
/**
* @var string
*
* @ORM\Column(name="sharedware_house", type="boolean")
*/
private $sharedwareHouse;
/**
* @var int
*
* @ORM\Column(name="privacity", type="integer", nullable=true)
*/
private $privacity;
/**
* @var \DateTime
*/
private $licenseDate;
/**
* @return string
*/
public function getNif()
{
return $this->nif;
}
/**
* @param mixed $nif
*/
public function setNif($nif)
{
$this->nif = $nif;
}
/**
* @return mixed
*/
public function getCapitalSocial()
{
return $this->capitalSocial;
}
/**
* @param mixed $capitalSocial
*/
public function setCapitalSocial($capitalSocial)
{
$this->capitalSocial = $capitalSocial;
}
/**
* @return mixed
*/
public function getEndereco()
{
return $this->endereco;
}
/**
* @param mixed $endereco
*/
public function setEndereco($endereco)
{
$this->endereco = $endereco;
}
/**
* @return mixed
*/
public function getProvincia()
{
return $this->provincia;
}
/**
* @param mixed $provincia
*/
public function setProvincia($provincia)
{
$this->provincia = $provincia;
}
/**
* @return string
*/
public function getPais()
{
return $this->pais;
}
/**
* @param string $pais
*/
public function setPais(string $pais)
{
$this->pais = $pais;
}
/**
* @return Diversos
*/
public function getDiversos()
{
return $this->diversos;
}
/**
* @param mixed $diversos
*/
public function setDiversos($diversos)
{
$this->diversos = $diversos;
}
/**
* @var string
*
* @ORM\Column(name="provincia", type="string", length=255, nullable=true)
*/
private $provincia;
/**
* @return string
*/
public function getLicenca()
{
return $this->licenca;
}
/**
* @param string $licenca
* @return Company
*/
public function setLicenca($licenca)
{
if (!is_null($licenca))
$this->licenca = $licenca;
return $this;
}
/**
* @return string
*/
public function getWebsite()
{
return $this->website;
}
/**
* @param string $website
*/
public function setWebsite(string $website)
{
$this->website = $website;
}
/**
* @var string
*
* @ORM\Column(name="pais", type="string", length=255, nullable=true)
*/
private $pais;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Diversos")
*/
private $diversos;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\DocumentSettings")
*/
private $settings;
/**
* @return DocumentSettings
*/
public function getSettings()
{
return $this->settings;
}
/**
* @param mixed $settings
*/
public function setSettings($settings)
{
$this->settings = $settings;
}
/**
* @return Moeda
*/
public function getMoeda()
{
return '';//$this->moeda;
}
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
*
* @return Company
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Set telephone
*
* @param integer $telephone
*
* @return Company
*/
public function setTelephone($telephone)
{
$this->telephone = $telephone;
return $this;
}
/**
* Get telephone
*
* @return int
*/
public function getTelephone()
{
return $this->telephone;
}
/**
* Set telephoneMain
*
* @param integer $telephoneMain
*
* @return Company
*/
public function setTelephoneMain($telephoneMain)
{
$this->telephoneMain = $telephoneMain;
return $this;
}
/**
* Get telephoneMain
*
* @return int
*/
public function getTelephoneMain()
{
return $this->telephoneMain;
}
/**
* Set telephoneMaster
*
* @param integer $telephoneMaster
*
* @return Company
*/
public function setTelephoneMaster($telephoneMaster)
{
$this->telephoneMaster = $telephoneMaster;
return $this;
}
/**
* Get telephoneMaster
*
* @return int
*/
public function getTelephoneMaster()
{
return $this->telephoneMaster;
}
/**
* Set telephoneSlave
*
* @param integer $telephoneSlave
*
* @return Company
*/
public function setTelephoneSlave($telephoneSlave)
{
$this->telephoneSlave = $telephoneSlave;
return $this;
}
/**
* Get telephoneSlave
*
* @return int
*/
public function getTelephoneSlave()
{
return $this->telephoneSlave;
}
/**
* Set emailMain
*
* @param string $emailMain
*
* @return Company
*/
public function setEmailMain($emailMain)
{
$this->emailMain = $emailMain;
return $this;
}
/**
* Get emailMain
*
* @return string
*/
public function getEmailMain()
{
return $this->emailMain;
}
/**
* Set emailSlave
*
* @param string $emailSlave
*
* @return Company
*/
public function setEmailSlave($emailSlave)
{
$this->emailSlave = $emailSlave;
return $this;
}
/**
* Get emailSlave
*
* @return string
*/
public function getEmailSlave()
{
return $this->emailSlave;
}
/**
* Set slogan
*
* @param string $slogan
*
* @return Company
*/
public function setSlogan($slogan)
{
$this->slogan = $slogan;
return $this;
}
/**
* Get slogan
*
* @return string
*/
public function getSlogan()
{
return $this->slogan;
}
/**
* Set fullName
*
* @param string $fullName
*
* @return Company
*/
public function setFullName($fullName)
{
$this->fullName = $fullName;
return $this;
}
/**
* Get fullName
*
* @return string
*/
public function getFullName()
{
return $this->fullName;
}
/**
* Set fax
*
* @param string $fax
*
* @return Company
*/
public function setFax($fax)
{
$this->fax = $fax;
return $this;
}
/**
* Get fax
*
* @return string
*/
public function getFax()
{
return $this->fax;
}
/**
* @return []
*/
public function getContasBancarias()
{
return $this->contasBancarias;
}
/**
* @param mixed $contasBancarias
*/
public function setContasBancarias($contasBancarias)
{
$this->contasBancarias = $contasBancarias;
}
/**
* @return TaxData
*/
public function getTaxData()
{
return $this->taxData;
}
/**
* @param TaxData $taxData
*/
public function setTaxData($taxData)
{
$this->taxData = $taxData;
}
/**
* @return Address
*/
public function getAddress()
{
return is_null($this->address) ? new Address() : $this->address;
}
/**
* @param mixed $address
*/
public function setAddress($address)
{
$this->address = $address;
}
/**
* @return string
*/
public function getValid()
{
return $this->valid;
}
/**
* @param string $valid
* @return Company
*/
public function setValid($valid)
{
$this->valid = $valid;
return $this;
}
/**
* @return PlanCounter[]
*/
public function getPlans()
{
return $this->plans;
}
/**
* @param []PlanCounter $plan
*/
public function setPlans($plans)
{
$this->plans = $plans;
}
/**
* @return string
*/
public function getIdType()
{
return $this->idType;
}
/**
* @param string $id_tipo
*/
public function setIdType($id_tipo)
{
$this->idType = $id_tipo;
}
public function getLicenseDate()
{
return Application::licenseDate($this);
}
/**
* @param string $licenseDate
* @return $this
*/
public function setLicenseDate($licenseDate)
{
return $this;
}
/**
* @return TaxExemption
*/
public function getTaxRegim()
{
return $this->taxRegim;
}
/**
* @param TaxExemption $taxRegim
* @return Company
*/
public function setTaxRegim($taxRegim)
{
$this->taxRegim = $taxRegim;
return $this;
}
/**
* @return PlanCounter
*/
public function getPlan()
{
/**
* @var PlanCounter $plan
*/
foreach ($this->getPlans() as $plan)
if ($plan->getDueDate() > new \DateTime() and !empty($plan->getLicense()))
return $this->plan = $plan;
return new PlanCounter();
}
/**
* @return string
*/
public function getLogo()
{
return $this->logo;
}
/**
* @param string $logo
*/
public function setLogo($logo)
{
$this->logo = $logo;
}
/**
*/
public function isSharedWareHouse()
{
return $this->sharedwareHouse;
}
/**
* @param $is
* @return Company
*/
public function setSharedWareHouse($is)
{
$this->sharedwareHouse = $is;
return $this;
}
/**
* Get the value of privacity
*
* @return int
*/
public function getPrivacity()
{
return $this->privacity ?? 0;
}
/**
* Set the value of privacity
*
* @param int $privacity
*
* @return self
*/
public function setPrivacity(int $privacity)
{
$this->privacity = $privacity;
return $this;
}
}