<?php
namespace App\Entity;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Company
*
* @ORM\Table(name="company", uniqueConstraints={@ORM\UniqueConstraint(name="company_id_uindex", columns={"id"})}, indexes={@ORM\Index(name="company_user_id_fk", columns={"user_id"})})
* @ORM\Entity(repositoryClass="App\Repository\CompanyRepository")
*/
class Company
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string|null
*
* @ORM\Column(name="name", type="string", length=255, nullable=true)
*/
private $name;
/**
* @var string|null
*
* @ORM\Column(name="siret", type="string", length=255, nullable=true)
* @Assert\Length(min= 14, max= 14, minMessage="14 caractères nécéssaires", maxMessage="14 caractères nécéssaires", exactMessage="14 caractères nécéssaires", allowEmptyString=true)
*/
private $siret;
/**
* @var bool|null
*
* @ORM\Column(name="company_manager", type="boolean", nullable=true, options={"default"="1"})
*/
private $companyManager = true;
/**
* @var bool|null
*
* @ORM\Column(name="owner", type="boolean", nullable=true, options={"default"="1"})
*/
private $owner = true;
/**
* @var string|null
*
* @ORM\Column(name="address", type="string", length=255, nullable=true)
*/
private $address;
/**
* @var string|null
*
* @ORM\Column(name="address_2", type="string", length=255, nullable=true)
*/
private $address2;
/**
* @var string|null
*
* @ORM\Column(name="zip_code", type="string", length=32, nullable=true)
*/
private $zipCode;
/**
* @var string|null
*
* @ORM\Column(name="city", type="string", length=255, nullable=true)
*/
private $city;
/**
* @var string|null
*
* @ORM\Column(name="phone", type="string", length=255, nullable=true)
*/
private $phone;
/**
* @var string|null
*
* @ORM\Column(name="phone_fix", type="string", length=255, nullable=true)
*/
private $phoneFix;
/**
* @var string|null
*
* @ORM\Column(name="email", type="string", length=255, nullable=true)
*/
private $email;
/**
* @var string|null
*
* @ORM\Column(name="ape_code", type="string", length=255, nullable=true)
*/
private $apeCode;
/**
* @var int|null
*
* @ORM\Column(name="creditsafe_note", type="integer", nullable=true)
*/
private $creditsafeNote = 0;
/**
* @var int|null
*
* @ORM\Column(name="elipro_note", type="integer", nullable=true)
*/
private $eliproNote = 0;
/**
* @var \DateTime|null
*
* @ORM\Column(name="contract_expiry_date", type="date", nullable=true)
*/
private $contractExpiryDate;
/**
* @var string|null
*
* @ORM\Column(name="pdl_number", type="string", length=255, nullable=true)
*/
private $pdlNumber;
/**
* @var string|null
*
* @ORM\Column(name="pce_number", type="string", length=255, nullable=true)
*/
private $pceNumber;
/**
* @var bool|null
*
* @ORM\Column(name="gas", type="boolean", nullable=true)
*/
private $gas = false;
/**
* @var bool|null
*
* @ORM\Column(name="electricity", type="boolean", nullable=true)
*/
private $electricity = false;
/**
* @var string|null
*
* @ORM\Column(name="sector", type="string", length=255, nullable=true)
*/
private $sector;
/**
* @var User
*
* @ORM\ManyToOne(targetEntity="User", inversedBy="companies")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
* })
*/
private $user;
/**
* @var string|null
*
* @ORM\Column(name="justificatif", type="string", length=255, nullable=true)
*/
private $justificatif;
/**
* @var string|null
*
* @ORM\Column(name="fact_elec", type="string", length=255, nullable=true)
*/
private $factElec;
/**
* @var string|null
*
* @ORM\Column(name="fact_gas", type="string", length=255, nullable=true)
*/
private $factGas;
/**
* @var string|null
*
* @ORM\Column(name="liasse_fiscale", type="string", length=255, nullable=true)
*/
private $liasseFiscale;
/**
* @var string|null
*
* @ORM\Column(name="sge_elec", type="string", length=255, nullable=true)
*/
private $sgeElec;
/**
* @var string|null
*
* @ORM\Column(name="omega_gas", type="string", length=255, nullable=true)
*/
private $omegaGas;
/**
* @var string|null
*
* @ORM\Column(name="excel_multisite", type="string", length=255, nullable=true)
*/
private $excelMultisite;
/**
* @var bool|null
*
* @ORM\Column(name="validated", type="boolean", nullable=true, options={"default"="1"})
*/
private $validated = false;
/**
* @var string|null
*
* @ORM\Column(name="sepa_iban", type="string", length=100, nullable=true)
* @Assert\Iban(message="Le format IBAN est invalide.")
*/
private $sepaIban;
/**
* @var string|null
*
* @ORM\Column(name="sepa_bic", type="string", length=50, nullable=true)
* @Assert\Bic(message="Le format du BIC est invalide.")
*/
private $sepaBic;
/**
* @var Collection
*
* @ORM\OneToMany(targetEntity="Contract", mappedBy="company")
*/
private $contracts;
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @param int $id
*/
public function setId($id)
{
$this->id = $id;
}
/**
* @return string|null
*/
public function getName()
{
return $this->name;
}
/**
* @param string|null $name
*/
public function setName($name)
{
$this->name = $name;
}
/**
* @return string|null
*/
public function getSiret()
{
return $this->siret;
}
/**
* @param string|null $siret
*/
public function setSiret($siret)
{
$this->siret = $siret;
}
/**
* @return bool|null
*/
public function getCompanyManager(): ?bool
{
return $this->companyManager;
}
/**
* @param bool|null $companyManager
*/
public function setCompanyManager(?bool $companyManager): void
{
$this->companyManager = $companyManager;
}
/**
* @return bool|null
*/
public function getOwner()
{
return $this->owner;
}
/**
* @param bool|null $owner
*/
public function setOwner($owner)
{
$this->owner = $owner;
}
/**
* @return string|null
*/
public function getAddress()
{
return $this->address;
}
/**
* @param string|null $address
*/
public function setAddress($address)
{
$this->address = $address;
}
/**
* @return string|null
*/
public function getAddress2()
{
return $this->address2;
}
/**
* @param string|null $address2
*/
public function setAddress2($address2)
{
$this->address2 = $address2;
}
/**
* @return string|null
*/
public function getZipCode()
{
return $this->zipCode;
}
/**
* @param string|null $zipCode
*/
public function setZipCode($zipCode)
{
$this->zipCode = $zipCode;
}
/**
* @return string|null
*/
public function getCity()
{
return $this->city;
}
/**
* @param string|null $city
*/
public function setCity($city)
{
$this->city = $city;
}
/**
* @return string|null
*/
public function getPhone()
{
return $this->phone;
}
/**
* @param string|null $phone
*/
public function setPhone($phone)
{
$this->phone = $phone;
}
public function getPhoneFix(): ?string
{
return $this->phoneFix;
}
public function setPhoneFix(?string $phoneFix): void
{
$this->phoneFix = $phoneFix;
}
/**
* @return string|null
*/
public function getEmail()
{
return $this->email;
}
/**
* @param string|null $email
*/
public function setEmail($email)
{
$this->email = $email;
}
/**
* @return string|null
*/
public function getApeCode()
{
return $this->apeCode;
}
/**
* @param string|null $apeCode
*/
public function setApeCode($apeCode)
{
$this->apeCode = $apeCode;
}
/**
* @return int|null
*/
public function getCreditsafeNote()
{
return $this->creditsafeNote;
}
/**
* @param int|null $creditsafeNote
*/
public function setCreditsafeNote($creditsafeNote)
{
$this->creditsafeNote = $creditsafeNote;
}
/**
* @return int|null
*/
public function getEliproNote(): ?int
{
return $this->eliproNote;
}
/**
* @param int|null $eliproNote
*/
public function setEliproNote(?int $eliproNote): void
{
$this->eliproNote = $eliproNote;
}
/**
* @return \DateTime|null
*/
public function getContractExpiryDate()
{
return $this->contractExpiryDate;
}
/**
* @param \DateTime|null $contractExpiryDate
*/
public function setContractExpiryDate($contractExpiryDate)
{
$this->contractExpiryDate = $contractExpiryDate;
}
/**
* @return string|null
*/
public function getPdlNumber()
{
return $this->pdlNumber;
}
/**
* @param string|null $pdlNumber
*/
public function setPdlNumber($pdlNumber)
{
$this->pdlNumber = $pdlNumber;
}
/**
* @return string|null
*/
public function getPceNumber()
{
return $this->pceNumber;
}
/**
* @param string|null $pceNumber
*/
public function setPceNumber($pceNumber)
{
$this->pceNumber = $pceNumber;
}
/**
* @return bool|null
*/
public function getGas()
{
return $this->gas;
}
/**
* @param bool|null $gas
*/
public function setGas($gas)
{
$this->gas = $gas;
}
/**
* @return bool|null
*/
public function getElectricity()
{
return $this->electricity;
}
/**
* @param bool|null $electricity
*/
public function setElectricity($electricity)
{
$this->electricity = $electricity;
}
/**
* @return string|null
*/
public function getSector()
{
return $this->sector;
}
/**
* @param string|null $sector
*/
public function setSector($sector)
{
$this->sector = $sector;
}
/**
* @return User
*/
public function getUser()
{
return $this->user;
}
/**
* @param User $user
*/
public function setUser($user)
{
$this->user = $user;
}
/**
* @return string|null
*/
public function getJustificatif(): ?string
{
return $this->justificatif;
}
/**
* @param string|null $justificatif
*/
public function setJustificatif(?string $justificatif): void
{
$this->justificatif = $justificatif;
}
/**
* @return string|null
*/
public function getFactElec(): ?string
{
return $this->factElec;
}
/**
* @param string|null $factElec
*/
public function setFactElec(?string $factElec): void
{
$this->factElec = $factElec;
}
/**
* @return string|null
*/
public function getFactGas(): ?string
{
return $this->factGas;
}
/**
* @param string|null $factGas
*/
public function setFactGas(?string $factGas): void
{
$this->factGas = $factGas;
}
/**
* @return string|null
*/
public function getLiasseFiscale(): ?string
{
return $this->liasseFiscale;
}
/**
* @param string|null $liasseFiscale
*/
public function setLiasseFiscale(?string $liasseFiscale): void
{
$this->liasseFiscale = $liasseFiscale;
}
/**
* @return string|null
*/
public function getSgeElec(): ?string
{
return $this->sgeElec;
}
/**
* @param string|null $sgeElec
*/
public function setSgeElec(?string $sgeElec): void
{
$this->sgeElec = $sgeElec;
}
/**
* @return string|null
*/
public function getOmegaGas(): ?string
{
return $this->omegaGas;
}
/**
* @param string|null $omegaGas
*/
public function setOmegaGas(?string $omegaGas): void
{
$this->omegaGas = $omegaGas;
}
public function getExcelMultisite(): ?string
{
return $this->excelMultisite;
}
public function setExcelMultisite(?string $excelMultisite): void
{
$this->excelMultisite = $excelMultisite;
}
/**
* @return bool|null
*/
public function getValidated(): ?bool
{
return $this->validated;
}
/**
* @param bool|null $validated
*/
public function setValidated(?bool $validated): void
{
$this->validated = $validated;
}
/**
* @return string|null
*/
public function getSepaIban(): ?string
{
return $this->sepaIban;
}
/**
* @param string|null $sepaIban
*/
public function setSepaIban(?string $sepaIban): void
{
$this->sepaIban = $sepaIban;
}
/**
* @return string|null
*/
public function getSepaBic(): ?string
{
return $this->sepaBic;
}
/**
* @param string|null $sepaBic
*/
public function setSepaBic(?string $sepaBic): void
{
$this->sepaBic = $sepaBic;
}
/**
* @return Collection
*/
public function getContracts(): Collection
{
return $this->contracts;
}
/**
* @param Collection $contracts
*/
public function setContracts(Collection $contracts): void
{
$this->contracts = $contracts;
}
public function getServicesString()
{
$services = [];
foreach ($this->getContracts() as $contract) {
foreach ($contract->getTypes() as $type) {
if (!in_array($type, $services)) {
$services[] = $type;
}
}
}
return implode(", ", $services);
}
}