ActivityPeriodTrait.php 4.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace AppBundle\Entity\Traits;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Dunglas\ApiBundle\Annotation\Iri;
  5. use Symfony\Component\Serializer\Annotation\Groups;
  6. /**
  7. * @Iri("http://schema.org/Generic")
  8. */
  9. trait ActivityPeriodTrait
  10. {
  11. /**
  12. * @var \DateTime
  13. *
  14. * @Assert\Date
  15. */
  16. #[ORM\Column(type: 'date', nullable: true)]
  17. #[Groups(['commission', 'commission_list', 'organizationfunction', 'access_details_organizationfunction', 'student_registration_organizationfunction', 'student_registration_guardians', 'accesses_list_organizationfunction', 'adherent_list_organizationfunction', 'personnels_list_organizationfunction', 'ca_list_organizationfunction', 'board_list_organizationfunction', 'organizationresponsability', 'access_details_organizationresponsabilities', 'repair', 'equipmentrepair_list', 'placerepair_list', 'control', 'equipmentcontrol_list', 'placecontrol_list', 'equipment_details_equipmentcontrol', 'donor', 'donor_list', 'access_details_donorsfiltered', 'access_details_organization', 'seizureperiodnotation', 'personactivity', 'rule_personactivityactive', 'commissionmember', 'commission_list_commissionmembers', 'companyperson', 'access_details_companypersonaccesses', 'equipmentloan', 'equipmentrent_list', 'equipmentloan_list', 'accessequipment_grid_equipmentloans', 'access_details_equipmentloans', 'own_student_access_equipmentloans', 'licence_cmf_organizationfunction', 'licence_cmf_personactivity', 'adherent_contact_organizationfunction', 'access_details_personactivityactive', 'networkorganization', 'network_list_network', 'accessintangible', 'educationalprojectintangible', 'student_registration_accessintangibles', 'educationalproject_details_educationalprojectintangibles', 'organization_details_network', 'accessbilling_edit_accessintangibles', 'control_edit', 'repair_edit', 'equipment_list_equipmentloan', 'equipmentmediatheque_list_equipmentloan', 'equipmentcostume_list_equipmentloan', 'organization_function_edit', 'cotisation_responsibles_accesses_organizationfunction', 'equipment_availability_form', 'view_from_manager_create_organizationfunction', 'access_intangible_list', 'online_registration_access_details_organizationfunction', 'organization_params_list_network'])]
  18. private $startDate;
  19. /**
  20. * @var \DateTime
  21. *
  22. * @Assert\Date
  23. */
  24. #[ORM\Column(type: 'date', nullable: true)]
  25. #[Groups(['commission', 'commission_list', 'organizationfunction', 'access_details_organizationfunction', 'student_registration_organizationfunction', 'student_registration_guardians', 'accesses_list_organizationfunction', 'adherent_list_organizationfunction', 'personnels_list_organizationfunction', 'ca_list_organizationfunction', 'board_list_organizationfunction', 'organizationresponsability', 'repair', 'equipmentrepair_list', 'placerepair_list', 'control', 'equipmentcontrol_list', 'placecontrol_list', 'equipment_details_equipmentcontrol', 'donor', 'donor_list', 'access_details_donorsfiltered', 'access_details_organization', 'seizureperiodnotation', 'personactivity', 'rule_personactivityactive', 'commissionmember', 'commission_list_commissionmembers', 'companyperson', 'equipmentloan', 'equipmentrent_list', 'equipmentloan_list', 'accessequipment_grid_equipmentloans', 'access_details_equipmentloans', 'own_student_access_equipmentloans', 'licence_cmf_organizationfunction', 'licence_cmf_personactivity', 'adherent_contact_organizationfunction', 'access_details_personactivityactive', 'networkorganization', 'network_list_network', 'accessintangible', 'educationalprojectintangible', 'student_registration_accessintangibles', 'accessbilling_edit_accessintangibles', 'control_edit', 'repair_edit', 'equipment_list_equipmentloan', 'equipmentmediatheque_list_equipmentloan', 'equipmentcostume_list_equipmentloan', 'organization_function_edit', 'cotisation_responsibles_accesses_organizationfunction', 'equipment_availability_form', 'view_from_manager_create_organizationfunction', 'access_intangible_list', 'online_registration_access_details_organizationfunction', 'organization_params_list_network'])]
  26. private $endDate;
  27. /**
  28. * Gets start date
  29. *
  30. * @return \DateTime
  31. */
  32. public function getStartDate() {
  33. return $this->startDate ? $this->startDate->format('Y-m-d') : $this->startDate;
  34. }
  35. /**
  36. * Sets start date
  37. *
  38. * @param \DateTime $startDate
  39. * @return $this
  40. */
  41. public function setStartDate(\DateTime $startDate = null) {
  42. if($startDate == null) $startDate = new \DateTime();
  43. $this->startDate = $startDate;
  44. return $this;
  45. }
  46. /**
  47. * Gets end date
  48. *
  49. * @return \DateTime
  50. */
  51. public function getEndDate() {
  52. return $this->endDate ? $this->endDate->format('Y-m-d') : $this->endDate;
  53. }
  54. /**
  55. * Sets end date
  56. *
  57. * @param \DateTime $endDate
  58. * @return $this
  59. */
  60. public function setEndDate(\DateTime $endDate = null) {
  61. $this->endDate = $endDate;
  62. return $this;
  63. }
  64. }