src/Entity/Company.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\Common\Collections\Collection;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Symfony\Component\Validator\Constraints as Assert;
  6. /**
  7. * Company
  8. *
  9. * @ORM\Table(name="company", uniqueConstraints={@ORM\UniqueConstraint(name="company_id_uindex", columns={"id"})}, indexes={@ORM\Index(name="company_user_id_fk", columns={"user_id"})})
  10. * @ORM\Entity(repositoryClass="App\Repository\CompanyRepository")
  11. */
  12. class Company
  13. {
  14. /**
  15. * @var int
  16. *
  17. * @ORM\Column(name="id", type="integer", nullable=false)
  18. * @ORM\Id
  19. * @ORM\GeneratedValue(strategy="IDENTITY")
  20. */
  21. private $id;
  22. /**
  23. * @var string|null
  24. *
  25. * @ORM\Column(name="name", type="string", length=255, nullable=true)
  26. */
  27. private $name;
  28. /**
  29. * @var string|null
  30. *
  31. * @ORM\Column(name="siret", type="string", length=255, nullable=true)
  32. * @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)
  33. */
  34. private $siret;
  35. /**
  36. * @var bool|null
  37. *
  38. * @ORM\Column(name="company_manager", type="boolean", nullable=true, options={"default"="1"})
  39. */
  40. private $companyManager = true;
  41. /**
  42. * @var bool|null
  43. *
  44. * @ORM\Column(name="owner", type="boolean", nullable=true, options={"default"="1"})
  45. */
  46. private $owner = true;
  47. /**
  48. * @var string|null
  49. *
  50. * @ORM\Column(name="address", type="string", length=255, nullable=true)
  51. */
  52. private $address;
  53. /**
  54. * @var string|null
  55. *
  56. * @ORM\Column(name="address_2", type="string", length=255, nullable=true)
  57. */
  58. private $address2;
  59. /**
  60. * @var string|null
  61. *
  62. * @ORM\Column(name="zip_code", type="string", length=32, nullable=true)
  63. */
  64. private $zipCode;
  65. /**
  66. * @var string|null
  67. *
  68. * @ORM\Column(name="city", type="string", length=255, nullable=true)
  69. */
  70. private $city;
  71. /**
  72. * @var string|null
  73. *
  74. * @ORM\Column(name="phone", type="string", length=255, nullable=true)
  75. */
  76. private $phone;
  77. /**
  78. * @var string|null
  79. *
  80. * @ORM\Column(name="phone_fix", type="string", length=255, nullable=true)
  81. */
  82. private $phoneFix;
  83. /**
  84. * @var string|null
  85. *
  86. * @ORM\Column(name="email", type="string", length=255, nullable=true)
  87. */
  88. private $email;
  89. /**
  90. * @var string|null
  91. *
  92. * @ORM\Column(name="ape_code", type="string", length=255, nullable=true)
  93. */
  94. private $apeCode;
  95. /**
  96. * @var int|null
  97. *
  98. * @ORM\Column(name="creditsafe_note", type="integer", nullable=true)
  99. */
  100. private $creditsafeNote = 0;
  101. /**
  102. * @var int|null
  103. *
  104. * @ORM\Column(name="elipro_note", type="integer", nullable=true)
  105. */
  106. private $eliproNote = 0;
  107. /**
  108. * @var \DateTime|null
  109. *
  110. * @ORM\Column(name="contract_expiry_date", type="date", nullable=true)
  111. */
  112. private $contractExpiryDate;
  113. /**
  114. * @var string|null
  115. *
  116. * @ORM\Column(name="pdl_number", type="string", length=255, nullable=true)
  117. */
  118. private $pdlNumber;
  119. /**
  120. * @var string|null
  121. *
  122. * @ORM\Column(name="pce_number", type="string", length=255, nullable=true)
  123. */
  124. private $pceNumber;
  125. /**
  126. * @var bool|null
  127. *
  128. * @ORM\Column(name="gas", type="boolean", nullable=true)
  129. */
  130. private $gas = false;
  131. /**
  132. * @var bool|null
  133. *
  134. * @ORM\Column(name="electricity", type="boolean", nullable=true)
  135. */
  136. private $electricity = false;
  137. /**
  138. * @var string|null
  139. *
  140. * @ORM\Column(name="sector", type="string", length=255, nullable=true)
  141. */
  142. private $sector;
  143. /**
  144. * @var User
  145. *
  146. * @ORM\ManyToOne(targetEntity="User", inversedBy="companies")
  147. * @ORM\JoinColumns({
  148. * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
  149. * })
  150. */
  151. private $user;
  152. /**
  153. * @var string|null
  154. *
  155. * @ORM\Column(name="justificatif", type="string", length=255, nullable=true)
  156. */
  157. private $justificatif;
  158. /**
  159. * @var string|null
  160. *
  161. * @ORM\Column(name="fact_elec", type="string", length=255, nullable=true)
  162. */
  163. private $factElec;
  164. /**
  165. * @var string|null
  166. *
  167. * @ORM\Column(name="fact_gas", type="string", length=255, nullable=true)
  168. */
  169. private $factGas;
  170. /**
  171. * @var string|null
  172. *
  173. * @ORM\Column(name="liasse_fiscale", type="string", length=255, nullable=true)
  174. */
  175. private $liasseFiscale;
  176. /**
  177. * @var string|null
  178. *
  179. * @ORM\Column(name="sge_elec", type="string", length=255, nullable=true)
  180. */
  181. private $sgeElec;
  182. /**
  183. * @var string|null
  184. *
  185. * @ORM\Column(name="omega_gas", type="string", length=255, nullable=true)
  186. */
  187. private $omegaGas;
  188. /**
  189. * @var string|null
  190. *
  191. * @ORM\Column(name="excel_multisite", type="string", length=255, nullable=true)
  192. */
  193. private $excelMultisite;
  194. /**
  195. * @var bool|null
  196. *
  197. * @ORM\Column(name="validated", type="boolean", nullable=true, options={"default"="1"})
  198. */
  199. private $validated = false;
  200. /**
  201. * @var string|null
  202. *
  203. * @ORM\Column(name="sepa_iban", type="string", length=100, nullable=true)
  204. * @Assert\Iban(message="Le format IBAN est invalide.")
  205. */
  206. private $sepaIban;
  207. /**
  208. * @var string|null
  209. *
  210. * @ORM\Column(name="sepa_bic", type="string", length=50, nullable=true)
  211. * @Assert\Bic(message="Le format du BIC est invalide.")
  212. */
  213. private $sepaBic;
  214. /**
  215. * @var Collection
  216. *
  217. * @ORM\OneToMany(targetEntity="Contract", mappedBy="company")
  218. */
  219. private $contracts;
  220. /**
  221. * @return int
  222. */
  223. public function getId()
  224. {
  225. return $this->id;
  226. }
  227. /**
  228. * @param int $id
  229. */
  230. public function setId($id)
  231. {
  232. $this->id = $id;
  233. }
  234. /**
  235. * @return string|null
  236. */
  237. public function getName()
  238. {
  239. return $this->name;
  240. }
  241. /**
  242. * @param string|null $name
  243. */
  244. public function setName($name)
  245. {
  246. $this->name = $name;
  247. }
  248. /**
  249. * @return string|null
  250. */
  251. public function getSiret()
  252. {
  253. return $this->siret;
  254. }
  255. /**
  256. * @param string|null $siret
  257. */
  258. public function setSiret($siret)
  259. {
  260. $this->siret = $siret;
  261. }
  262. /**
  263. * @return bool|null
  264. */
  265. public function getCompanyManager(): ?bool
  266. {
  267. return $this->companyManager;
  268. }
  269. /**
  270. * @param bool|null $companyManager
  271. */
  272. public function setCompanyManager(?bool $companyManager): void
  273. {
  274. $this->companyManager = $companyManager;
  275. }
  276. /**
  277. * @return bool|null
  278. */
  279. public function getOwner()
  280. {
  281. return $this->owner;
  282. }
  283. /**
  284. * @param bool|null $owner
  285. */
  286. public function setOwner($owner)
  287. {
  288. $this->owner = $owner;
  289. }
  290. /**
  291. * @return string|null
  292. */
  293. public function getAddress()
  294. {
  295. return $this->address;
  296. }
  297. /**
  298. * @param string|null $address
  299. */
  300. public function setAddress($address)
  301. {
  302. $this->address = $address;
  303. }
  304. /**
  305. * @return string|null
  306. */
  307. public function getAddress2()
  308. {
  309. return $this->address2;
  310. }
  311. /**
  312. * @param string|null $address2
  313. */
  314. public function setAddress2($address2)
  315. {
  316. $this->address2 = $address2;
  317. }
  318. /**
  319. * @return string|null
  320. */
  321. public function getZipCode()
  322. {
  323. return $this->zipCode;
  324. }
  325. /**
  326. * @param string|null $zipCode
  327. */
  328. public function setZipCode($zipCode)
  329. {
  330. $this->zipCode = $zipCode;
  331. }
  332. /**
  333. * @return string|null
  334. */
  335. public function getCity()
  336. {
  337. return $this->city;
  338. }
  339. /**
  340. * @param string|null $city
  341. */
  342. public function setCity($city)
  343. {
  344. $this->city = $city;
  345. }
  346. /**
  347. * @return string|null
  348. */
  349. public function getPhone()
  350. {
  351. return $this->phone;
  352. }
  353. /**
  354. * @param string|null $phone
  355. */
  356. public function setPhone($phone)
  357. {
  358. $this->phone = $phone;
  359. }
  360. public function getPhoneFix(): ?string
  361. {
  362. return $this->phoneFix;
  363. }
  364. public function setPhoneFix(?string $phoneFix): void
  365. {
  366. $this->phoneFix = $phoneFix;
  367. }
  368. /**
  369. * @return string|null
  370. */
  371. public function getEmail()
  372. {
  373. return $this->email;
  374. }
  375. /**
  376. * @param string|null $email
  377. */
  378. public function setEmail($email)
  379. {
  380. $this->email = $email;
  381. }
  382. /**
  383. * @return string|null
  384. */
  385. public function getApeCode()
  386. {
  387. return $this->apeCode;
  388. }
  389. /**
  390. * @param string|null $apeCode
  391. */
  392. public function setApeCode($apeCode)
  393. {
  394. $this->apeCode = $apeCode;
  395. }
  396. /**
  397. * @return int|null
  398. */
  399. public function getCreditsafeNote()
  400. {
  401. return $this->creditsafeNote;
  402. }
  403. /**
  404. * @param int|null $creditsafeNote
  405. */
  406. public function setCreditsafeNote($creditsafeNote)
  407. {
  408. $this->creditsafeNote = $creditsafeNote;
  409. }
  410. /**
  411. * @return int|null
  412. */
  413. public function getEliproNote(): ?int
  414. {
  415. return $this->eliproNote;
  416. }
  417. /**
  418. * @param int|null $eliproNote
  419. */
  420. public function setEliproNote(?int $eliproNote): void
  421. {
  422. $this->eliproNote = $eliproNote;
  423. }
  424. /**
  425. * @return \DateTime|null
  426. */
  427. public function getContractExpiryDate()
  428. {
  429. return $this->contractExpiryDate;
  430. }
  431. /**
  432. * @param \DateTime|null $contractExpiryDate
  433. */
  434. public function setContractExpiryDate($contractExpiryDate)
  435. {
  436. $this->contractExpiryDate = $contractExpiryDate;
  437. }
  438. /**
  439. * @return string|null
  440. */
  441. public function getPdlNumber()
  442. {
  443. return $this->pdlNumber;
  444. }
  445. /**
  446. * @param string|null $pdlNumber
  447. */
  448. public function setPdlNumber($pdlNumber)
  449. {
  450. $this->pdlNumber = $pdlNumber;
  451. }
  452. /**
  453. * @return string|null
  454. */
  455. public function getPceNumber()
  456. {
  457. return $this->pceNumber;
  458. }
  459. /**
  460. * @param string|null $pceNumber
  461. */
  462. public function setPceNumber($pceNumber)
  463. {
  464. $this->pceNumber = $pceNumber;
  465. }
  466. /**
  467. * @return bool|null
  468. */
  469. public function getGas()
  470. {
  471. return $this->gas;
  472. }
  473. /**
  474. * @param bool|null $gas
  475. */
  476. public function setGas($gas)
  477. {
  478. $this->gas = $gas;
  479. }
  480. /**
  481. * @return bool|null
  482. */
  483. public function getElectricity()
  484. {
  485. return $this->electricity;
  486. }
  487. /**
  488. * @param bool|null $electricity
  489. */
  490. public function setElectricity($electricity)
  491. {
  492. $this->electricity = $electricity;
  493. }
  494. /**
  495. * @return string|null
  496. */
  497. public function getSector()
  498. {
  499. return $this->sector;
  500. }
  501. /**
  502. * @param string|null $sector
  503. */
  504. public function setSector($sector)
  505. {
  506. $this->sector = $sector;
  507. }
  508. /**
  509. * @return User
  510. */
  511. public function getUser()
  512. {
  513. return $this->user;
  514. }
  515. /**
  516. * @param User $user
  517. */
  518. public function setUser($user)
  519. {
  520. $this->user = $user;
  521. }
  522. /**
  523. * @return string|null
  524. */
  525. public function getJustificatif(): ?string
  526. {
  527. return $this->justificatif;
  528. }
  529. /**
  530. * @param string|null $justificatif
  531. */
  532. public function setJustificatif(?string $justificatif): void
  533. {
  534. $this->justificatif = $justificatif;
  535. }
  536. /**
  537. * @return string|null
  538. */
  539. public function getFactElec(): ?string
  540. {
  541. return $this->factElec;
  542. }
  543. /**
  544. * @param string|null $factElec
  545. */
  546. public function setFactElec(?string $factElec): void
  547. {
  548. $this->factElec = $factElec;
  549. }
  550. /**
  551. * @return string|null
  552. */
  553. public function getFactGas(): ?string
  554. {
  555. return $this->factGas;
  556. }
  557. /**
  558. * @param string|null $factGas
  559. */
  560. public function setFactGas(?string $factGas): void
  561. {
  562. $this->factGas = $factGas;
  563. }
  564. /**
  565. * @return string|null
  566. */
  567. public function getLiasseFiscale(): ?string
  568. {
  569. return $this->liasseFiscale;
  570. }
  571. /**
  572. * @param string|null $liasseFiscale
  573. */
  574. public function setLiasseFiscale(?string $liasseFiscale): void
  575. {
  576. $this->liasseFiscale = $liasseFiscale;
  577. }
  578. /**
  579. * @return string|null
  580. */
  581. public function getSgeElec(): ?string
  582. {
  583. return $this->sgeElec;
  584. }
  585. /**
  586. * @param string|null $sgeElec
  587. */
  588. public function setSgeElec(?string $sgeElec): void
  589. {
  590. $this->sgeElec = $sgeElec;
  591. }
  592. /**
  593. * @return string|null
  594. */
  595. public function getOmegaGas(): ?string
  596. {
  597. return $this->omegaGas;
  598. }
  599. /**
  600. * @param string|null $omegaGas
  601. */
  602. public function setOmegaGas(?string $omegaGas): void
  603. {
  604. $this->omegaGas = $omegaGas;
  605. }
  606. public function getExcelMultisite(): ?string
  607. {
  608. return $this->excelMultisite;
  609. }
  610. public function setExcelMultisite(?string $excelMultisite): void
  611. {
  612. $this->excelMultisite = $excelMultisite;
  613. }
  614. /**
  615. * @return bool|null
  616. */
  617. public function getValidated(): ?bool
  618. {
  619. return $this->validated;
  620. }
  621. /**
  622. * @param bool|null $validated
  623. */
  624. public function setValidated(?bool $validated): void
  625. {
  626. $this->validated = $validated;
  627. }
  628. /**
  629. * @return string|null
  630. */
  631. public function getSepaIban(): ?string
  632. {
  633. return $this->sepaIban;
  634. }
  635. /**
  636. * @param string|null $sepaIban
  637. */
  638. public function setSepaIban(?string $sepaIban): void
  639. {
  640. $this->sepaIban = $sepaIban;
  641. }
  642. /**
  643. * @return string|null
  644. */
  645. public function getSepaBic(): ?string
  646. {
  647. return $this->sepaBic;
  648. }
  649. /**
  650. * @param string|null $sepaBic
  651. */
  652. public function setSepaBic(?string $sepaBic): void
  653. {
  654. $this->sepaBic = $sepaBic;
  655. }
  656. /**
  657. * @return Collection
  658. */
  659. public function getContracts(): Collection
  660. {
  661. return $this->contracts;
  662. }
  663. /**
  664. * @param Collection $contracts
  665. */
  666. public function setContracts(Collection $contracts): void
  667. {
  668. $this->contracts = $contracts;
  669. }
  670. public function getServicesString()
  671. {
  672. $services = [];
  673. foreach ($this->getContracts() as $contract) {
  674. foreach ($contract->getTypes() as $type) {
  675. if (!in_array($type, $services)) {
  676. $services[] = $type;
  677. }
  678. }
  679. }
  680. return implode(", ", $services);
  681. }
  682. }