CompanyFlexContract.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace Doctrine\Tests\Models\Company;
  3. /**
  4. * @Entity
  5. */
  6. class CompanyFlexContract extends CompanyContract
  7. {
  8. /**
  9. * @column(type="integer")
  10. * @var int
  11. */
  12. private $hoursWorked = 0;
  13. /**
  14. * @column(type="integer")
  15. * @var int
  16. */
  17. private $pricePerHour = 0;
  18. /**
  19. * @ManyToMany(targetEntity="CompanyManager", inversedBy="managedContracts", fetch="EXTRA_LAZY")
  20. * @JoinTable(name="company_contract_managers",
  21. * joinColumns={@JoinColumn(name="contract_id", referencedColumnName="id", onDelete="CASCADE")},
  22. * inverseJoinColumns={@JoinColumn(name="employee_id", referencedColumnName="id")}
  23. * )
  24. */
  25. public $managers;
  26. public function calculatePrice()
  27. {
  28. return $this->hoursWorked * $this->pricePerHour;
  29. }
  30. public function getHoursWorked()
  31. {
  32. return $this->hoursWorked;
  33. }
  34. public function setHoursWorked($hoursWorked)
  35. {
  36. $this->hoursWorked = $hoursWorked;
  37. }
  38. public function getPricePerHour()
  39. {
  40. return $this->pricePerHour;
  41. }
  42. public function setPricePerHour($pricePerHour)
  43. {
  44. $this->pricePerHour = $pricePerHour;
  45. }
  46. public function getManagers()
  47. {
  48. return $this->managers;
  49. }
  50. public function addManager(CompanyManager $manager)
  51. {
  52. $this->managers[] = $manager;
  53. }
  54. public function removeManager(CompanyManager $manager)
  55. {
  56. $this->managers->removeElement($manager);
  57. }
  58. }