Ver código fonte

fix attendance / booking relations

Olivier Massot 6 meses atrás
pai
commit
5b25ec2986

+ 1 - 2
src/Entity/Booking/Attendance.php

@@ -35,8 +35,7 @@ class Attendance
     private ?Access $replacement = null;
 
     /** @var Collection<int, AttendanceBooking> */
-    #[ORM\OneToMany(targetEntity: AttendanceBooking::class, mappedBy: 'attendance', cascade: ['persist'], orphanRemoval: true)]
-    #[ORM\JoinColumn(nullable: false)]
+    #[ORM\OneToMany(targetEntity: AttendanceBooking::class, mappedBy: 'attendance', cascade: ['persist', 'remove'])]
     private Collection $attendanceBooking;
 
     public function __construct()

+ 6 - 0
src/Entity/Booking/AttendanceBooking.php

@@ -23,21 +23,27 @@ class AttendanceBooking
     private ?int $id = null;
 
     #[ORM\ManyToOne(inversedBy: 'attendanceBookings')]
+    #[ORM\JoinColumn(nullable: true)]
     private ?Access $access = null;
 
     #[ORM\ManyToOne(inversedBy: 'attendanceBooking')]
+    #[ORM\JoinColumn(nullable: true)]
     private ?Attendance $attendance = null;
 
     #[ORM\ManyToOne(inversedBy: 'attendanceBooking')]
+    #[ORM\JoinColumn(nullable: true)]
     private ?Course $course = null;
 
     #[ORM\ManyToOne(inversedBy: 'attendanceBooking')]
+    #[ORM\JoinColumn(nullable: true)]
     private ?EducationalProject $educationalProject = null;
 
     #[ORM\ManyToOne(inversedBy: 'attendanceBooking')]
+    #[ORM\JoinColumn(nullable: true)]
     private ?Event $event = null;
 
     #[ORM\ManyToOne(inversedBy: 'attendanceBooking')]
+    #[ORM\JoinColumn(nullable: true)]
     private ?Examen $examen = null;
 
     #[ORM\ManyToOne(inversedBy: 'attendanceBookings')]

+ 5 - 2
src/Entity/Booking/AttendanceBookingReason.php

@@ -64,8 +64,11 @@ class AttendanceBookingReason
     #[ORM\Column(length: 255, nullable: false)]
     private string $reason;
 
-    /** @var Collection<int, AttendanceBooking> */
-    #[ORM\OneToMany(targetEntity: AttendanceBooking::class, mappedBy: 'reason', cascade: ['persist'], orphanRemoval: true)]
+    /**
+     * Pas de cascade remove ici, les absences / présences existent indépendamment de ce motif.
+     * @var Collection<int, AttendanceBooking>
+     */
+    #[ORM\OneToMany(targetEntity: AttendanceBooking::class, mappedBy: 'reason', cascade: ['persist'])]
     private Collection $attendanceBookings;
 
     public function __construct()

+ 3 - 3
src/Entity/Booking/Course.php

@@ -73,16 +73,16 @@ class Course extends AbstractBooking
     protected Collection $students;
 
     /** @var Collection<int, Work> */
-    #[ORM\OneToMany(targetEntity: Work::class, mappedBy: 'course', cascade: ['persist'], orphanRemoval: true)]
+    #[ORM\OneToMany(targetEntity: Work::class, mappedBy: 'course', cascade: ['persist'])]
     protected Collection $work;
 
     /** @var Collection<int, AttendanceBooking> */
-    #[ORM\OneToMany(targetEntity: AttendanceBooking::class, mappedBy: 'course', cascade: ['persist'], orphanRemoval: true)]
+    #[ORM\OneToMany(targetEntity: AttendanceBooking::class, mappedBy: 'course', cascade: ['persist', 'remove'])]
     #[ORM\JoinColumn(nullable: false)]
     protected Collection $attendanceBooking;
 
     /** @var Collection<int, EducationStudentWish> */
-    #[ORM\OneToMany(targetEntity: EducationStudentWish::class, mappedBy: 'course', cascade: [], orphanRemoval: false)]
+    #[ORM\OneToMany(targetEntity: EducationStudentWish::class, mappedBy: 'course', cascade: [])]
     protected Collection $educationStudentWishes;
 
     public function __construct()

+ 1 - 2
src/Entity/Booking/EducationalProject.php

@@ -78,8 +78,7 @@ class EducationalProject extends AbstractBooking
     protected Collection $billLines;
 
     /** @var Collection<int, AttendanceBooking> */
-    #[ORM\OneToMany(targetEntity: AttendanceBooking::class, mappedBy: 'educationalProject', cascade: ['persist'], orphanRemoval: true)]
-    #[ORM\JoinColumn(nullable: false)]
+    #[ORM\OneToMany(targetEntity: AttendanceBooking::class, mappedBy: 'educationalProject', cascade: ['persist', 'remove'])]
     protected Collection $attendanceBooking;
 
     #[ORM\ManyToOne(inversedBy: 'educationalProjects')]

+ 5 - 7
src/Entity/Booking/Event.php

@@ -42,11 +42,11 @@ class Event extends AbstractBooking
     protected ?Room $room = null;
 
     /** @var Collection<int, EventRecur> */
-    #[ORM\OneToMany(targetEntity: EventRecur::class, mappedBy: 'event', cascade: ['persist'], orphanRemoval: true)]
+    #[ORM\OneToMany(targetEntity: EventRecur::class, mappedBy: 'event', cascade: ['persist', 'remove'])]
     protected Collection $eventRecur;
 
     /** @var Collection<int, Event> */
-    #[ORM\OneToMany(targetEntity: Event::class, mappedBy: 'parent', orphanRemoval: true)]
+    #[ORM\OneToMany(targetEntity: Event::class, mappedBy: 'parent', cascade: ['persist', 'remove'])]
     protected Collection $timeline;
 
     #[ORM\ManyToOne(inversedBy: 'timeline')]
@@ -62,7 +62,7 @@ class Event extends AbstractBooking
 
     /** @var Collection<int, EventUser> */
     #[Assert\Valid]
-    #[ORM\OneToMany(targetEntity: EventUser::class, mappedBy: 'event', cascade: ['persist'], orphanRemoval: true)]
+    #[ORM\OneToMany(targetEntity: EventUser::class, mappedBy: 'event', cascade: ['persist', 'remove'])]
     protected Collection $eventUser;
 
     /** @var Collection<int, Categories> */
@@ -70,7 +70,7 @@ class Event extends AbstractBooking
     protected Collection $categories;
 
     /** @var Collection<int, EventReport> */
-    #[ORM\OneToMany(targetEntity: EventReport::class, mappedBy: 'event', orphanRemoval: true)]
+    #[ORM\OneToMany(targetEntity: EventReport::class, mappedBy: 'event', cascade: ['persist', 'remove'])]
     protected Collection $eventReports;
 
     /** @var Collection<int, File> */
@@ -85,8 +85,7 @@ class Event extends AbstractBooking
     protected ?PlaceSystem $placeSystem;
 
     /** @var Collection<int, AttendanceBooking> */
-    #[ORM\OneToMany(targetEntity: AttendanceBooking::class, mappedBy: 'event', cascade: ['persist'], orphanRemoval: true)]
-    #[ORM\JoinColumn(nullable: false)]
+    #[ORM\OneToMany(targetEntity: AttendanceBooking::class, mappedBy: 'event', cascade: ['persist', 'remove'])]
     protected Collection $attendanceBooking;
 
     public function __construct()
@@ -376,7 +375,6 @@ class Event extends AbstractBooking
     public function removeAttendanceBooking(AttendanceBooking $attendanceBooking): self
     {
         if ($this->attendanceBooking->removeElement($attendanceBooking)) {
-            // set the owning side to null (unless already changed)
             if ($attendanceBooking->getEvent() === $this) {
                 $attendanceBooking->setEvent(null);
             }

+ 1 - 2
src/Entity/Booking/Examen.php

@@ -61,8 +61,7 @@ class Examen extends AbstractBooking
     protected Collection $convocation;
 
     /** @var Collection<int, AttendanceBooking> */
-    #[ORM\OneToMany(targetEntity: AttendanceBooking::class, mappedBy: 'examen', cascade: ['persist'], orphanRemoval: true)]
-    #[ORM\JoinColumn(nullable: false)]
+    #[ORM\OneToMany(targetEntity: AttendanceBooking::class, mappedBy: 'examen', cascade: ['persist', 'remove'])]
     protected Collection $attendanceBooking;
 
     #[ORM\ManyToOne(inversedBy: 'examens')]

+ 11 - 11
src/Entity/Organization/Organization.php

@@ -290,11 +290,11 @@ class Organization
     private Collection $courses;
 
     /** @var Collection<int, EducationalProject> */
-    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: EducationalProject::class, cascade: ['persist', 'remove'])]
+    #[ORM\OneToMany(targetEntity: EducationalProject::class, mappedBy: 'organization', cascade: ['persist', 'remove'])]
     private Collection $educationalProjects;
 
     /** @var Collection<int, Event> */
-    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Event::class, cascade: ['persist', 'remove'])]
+    #[ORM\OneToMany(targetEntity: Event::class, mappedBy: 'organization', cascade: ['persist', 'remove'])]
     private Collection $events;
 
     /** @var Collection<int, Examen> */
@@ -322,39 +322,39 @@ class Organization
     private Collection $notifications;
 
     /** @var Collection<int, Email> */
-    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Email::class, cascade: ['persist', 'remove'])]
+    #[ORM\OneToMany(targetEntity: Email::class, mappedBy: 'organization', cascade: ['persist', 'remove'])]
     private Collection $emails;
 
     /** @var Collection<int, Mail> */
-    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Mail::class, cascade: ['persist', 'remove'])]
+    #[ORM\OneToMany(targetEntity: Mail::class, mappedBy: 'organization', cascade: ['persist', 'remove'])]
     private Collection $mails;
 
     /** @var Collection<int, Sms> */
-    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Sms::class, cascade: ['persist', 'remove'])]
+    #[ORM\OneToMany(targetEntity: Sms::class, mappedBy: 'organization', cascade: ['persist', 'remove'])]
     private Collection $sms;
 
     /** @var Collection<int, Activity> */
-    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Activity::class, cascade: ['persist', 'remove'])]
+    #[ORM\OneToMany(targetEntity: Activity::class, mappedBy: 'organization', cascade: ['persist', 'remove'])]
     private Collection $activities;
 
     /** @var Collection<int, Jury> */
-    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Jury::class, cascade: ['persist', 'remove'])]
+    #[ORM\OneToMany(targetEntity: Jury::class, mappedBy: 'organization', cascade: ['persist', 'remove'])]
     private Collection $juries;
 
     /** @var Collection<int, Commission> */
-    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Commission::class, cascade: ['persist', 'remove'])]
+    #[ORM\OneToMany(targetEntity: Commission::class, mappedBy: 'organization', cascade: ['persist', 'remove'])]
     private Collection $commissions;
 
     /** @var Collection<int, Place> */
-    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Place::class, cascade: ['persist', 'remove'])]
+    #[ORM\OneToMany(targetEntity: Place::class, mappedBy: 'organization', cascade: ['persist', 'remove'])]
     private Collection $places;
 
     /** @var Collection<int, Attendance> */
-    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Attendance::class, cascade: ['persist', 'remove'])]
+    #[ORM\OneToMany(targetEntity: Attendance::class, mappedBy: 'organization', cascade: ['persist', 'remove'])]
     private Collection $attendances;
 
     /** @var Collection<int, Equipment> */
-    #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Equipment::class, cascade: ['persist', 'remove'])]
+    #[ORM\OneToMany(targetEntity: Equipment::class, mappedBy: 'organization', cascade: ['persist', 'remove'])]
     private Collection $equipments;
 
     /** @var Collection<int, Intangible> */