Should be done.

This commit is contained in:
ASTIER Yann 2024-12-20 09:02:51 +01:00
parent 08ae5a6676
commit 6763f991dd
6 changed files with 37 additions and 38 deletions

View File

@ -10,7 +10,7 @@ use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20241206074803 extends AbstractMigration
final class Version20241212162704 extends AbstractMigration
{
public function getDescription(): string
{
@ -38,7 +38,8 @@ final class Version20241206074803 extends AbstractMigration
$this->addSql('CREATE UNIQUE INDEX UNIQ_IDENTIFIER_EMAIL ON employee (email)');
$this->addSql('CREATE TABLE employee_skill (employee INT NOT NULL, skill INT NOT NULL, PRIMARY KEY(employee, skill))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_B630E90E5D9F75A15E3DE477 ON employee_skill (employee, skill)');
$this->addSql('CREATE TABLE incident (id INT NOT NULL, description VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE TABLE incident (id INT NOT NULL, ride_id INT DEFAULT NULL, description VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_3D03A11A302A8A70 ON incident (ride_id)');
$this->addSql('CREATE TABLE incident_type (id INT NOT NULL, incidents_id INT DEFAULT NULL, label VARCHAR(30) NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_66D2209655955332 ON incident_type (incidents_id)');
$this->addSql('CREATE TABLE mission (id INT NOT NULL, label VARCHAR(30) NOT NULL, PRIMARY KEY(id))');
@ -50,9 +51,7 @@ final class Version20241206074803 extends AbstractMigration
$this->addSql('CREATE UNIQUE INDEX UNIQ_29D5499E8C03F15C302A8A70AA9E377A ON representation (employee_id, ride_id, date)');
$this->addSql('CREATE TABLE requirement (mission INT NOT NULL, skill INT NOT NULL, PRIMARY KEY(mission, skill))');
$this->addSql('CREATE UNIQUE INDEX UNIQ_DB3F55509067F23C5E3DE477 ON requirement (mission, skill)');
$this->addSql('CREATE TABLE ride (id INT NOT NULL, incident_types_id INT DEFAULT NULL, missions_id INT DEFAULT NULL, label VARCHAR(30) NOT NULL, count INT NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_9B3D7CD076775724 ON ride (incident_types_id)');
$this->addSql('CREATE INDEX IDX_9B3D7CD017C042CF ON ride (missions_id)');
$this->addSql('CREATE TABLE ride (id INT NOT NULL, label VARCHAR(30) NOT NULL, count INT NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE TABLE skill (id INT NOT NULL, label VARCHAR(30) NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE TABLE messenger_messages (id BIGSERIAL NOT NULL, body TEXT NOT NULL, headers TEXT NOT NULL, queue_name VARCHAR(190) NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, available_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, delivered_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_75EA56E0FB7336F0 ON messenger_messages (queue_name)');
@ -73,11 +72,10 @@ final class Version20241206074803 extends AbstractMigration
$this->addSql('ALTER TABLE assignment ADD CONSTRAINT FK_30C544BA302A8A70 FOREIGN KEY (ride_id) REFERENCES ride (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE employee ADD CONSTRAINT FK_5D9F75A117C042CF FOREIGN KEY (missions_id) REFERENCES mission (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE employee ADD CONSTRAINT FK_5D9F75A155955332 FOREIGN KEY (incidents_id) REFERENCES incident (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE incident ADD CONSTRAINT FK_3D03A11A302A8A70 FOREIGN KEY (ride_id) REFERENCES ride (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE incident_type ADD CONSTRAINT FK_66D2209655955332 FOREIGN KEY (incidents_id) REFERENCES incident (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE representation ADD CONSTRAINT FK_29D5499E8C03F15C FOREIGN KEY (employee_id) REFERENCES employee (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE representation ADD CONSTRAINT FK_29D5499E302A8A70 FOREIGN KEY (ride_id) REFERENCES ride (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE ride ADD CONSTRAINT FK_9B3D7CD076775724 FOREIGN KEY (incident_types_id) REFERENCES incident_type (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE ride ADD CONSTRAINT FK_9B3D7CD017C042CF FOREIGN KEY (missions_id) REFERENCES mission (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
}
public function down(Schema $schema): void
@ -95,11 +93,10 @@ final class Version20241206074803 extends AbstractMigration
$this->addSql('ALTER TABLE assignment DROP CONSTRAINT FK_30C544BA302A8A70');
$this->addSql('ALTER TABLE employee DROP CONSTRAINT FK_5D9F75A117C042CF');
$this->addSql('ALTER TABLE employee DROP CONSTRAINT FK_5D9F75A155955332');
$this->addSql('ALTER TABLE incident DROP CONSTRAINT FK_3D03A11A302A8A70');
$this->addSql('ALTER TABLE incident_type DROP CONSTRAINT FK_66D2209655955332');
$this->addSql('ALTER TABLE representation DROP CONSTRAINT FK_29D5499E8C03F15C');
$this->addSql('ALTER TABLE representation DROP CONSTRAINT FK_29D5499E302A8A70');
$this->addSql('ALTER TABLE ride DROP CONSTRAINT FK_9B3D7CD076775724');
$this->addSql('ALTER TABLE ride DROP CONSTRAINT FK_9B3D7CD017C042CF');
$this->addSql('DROP TABLE assignment');
$this->addSql('DROP TABLE category');
$this->addSql('DROP TABLE employee');

View File

@ -7,6 +7,7 @@ use App\Entity\Representation;
use App\Entity\Ride;
use App\Form\RepresentationType;
use App\Repository\RepresentationRepository;
use App\Repository\RideRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
@ -16,6 +17,12 @@ use Symfony\Component\Routing\Attribute\Route;
#[Route('/representation', name: 'representation')]
final class RepresentationController extends AbstractController
{
public function __toString(): string
{
// TODO: Implement __toString() method.
return "";
}
#[Route(name: '_index', methods: ['GET'])]
public function index(RepresentationRepository $representationRepository): Response
{
@ -25,23 +32,20 @@ final class RepresentationController extends AbstractController
}
#[Route('/new', name: '_new', methods: ['GET', 'POST'])]
public function new(Request $request, EntityManagerInterface $entityManager): Response
public function new(Request $request, EntityManagerInterface $entityManager, RideRepository $rideRepository): Response
{
$representation = new Representation();
$form = $this->createForm(RepresentationType::class, $representation);
$form->handleRequest($request);
// $employee = $entityManager->getRepository(Employee::class)->findOneBy(['email' => $this->getUser()->getEmail()]);
// $ride = $entityManager->getRepository(Ride::class)->findOneBy(['id' => $form->get('ride')->getData()]);
if ($form->isSubmitted() && $form->isValid()) {
// $representation->setEmployee($employee);
// $representation->setRide($ride);
// dd($representation);
$ride = $rideRepository->find($representation->getRide());
$newCount = $ride->getCount() + $representation->getCount();
$ride->setCount($newCount);
$entityManager->persist($representation);
$entityManager->flush();
//
return $this->redirectToRoute('representation_index', [], Response::HTTP_SEE_OTHER);
}

View File

@ -23,7 +23,7 @@ class Incident
#[ORM\OneToMany(targetEntity: IncidentType::class, mappedBy: 'incident')]
private ?IncidentType $incidentType;
#[ORM\OneToMany(targetEntity: Ride::class, mappedBy: 'incident')]
#[ORM\ManyToOne(targetEntity: Ride::class, inversedBy: 'incidents')]
private ?Ride $ride;
public function getEmployeeincidents(): Collection

View File

@ -25,9 +25,6 @@ class Mission
#[ORM\OneToMany(targetEntity: Employee::class, mappedBy: 'mission')]
private ?Employee $employee = null;
#[ORM\OneToMany(targetEntity: Ride::class, mappedBy: 'mission')]
private ?Ride $ride;
#[ORM\OneToMany(targetEntity: MissionCategory::class, mappedBy: 'mission')]
#[ORM\JoinColumn(referencedColumnName: 'mission')]
private Collection $missionCategories;

View File

@ -26,10 +26,10 @@ class Ride
#[ORM\OneToMany(targetEntity: Representation::class, mappedBy: 'ride')]
private Collection $representations;
#[ORM\ManyToOne(targetEntity: IncidentType::class, inversedBy: 'ride')]
private Collection $incidentTypes;
#[ORM\OneToMany(targetEntity: Incident::class, mappedBy: 'ride')]
private Collection $incidents;
#[ORM\ManyToOne(targetEntity: Mission::class, inversedBy: 'ride')]
#[ORM\OneToMany(targetEntity: Mission::class, mappedBy: 'ride')]
private Collection $missions;
public function getAssignments(): Collection
@ -60,7 +60,7 @@ class Ride
public function getRepresentations(): Collection
{
return $this->representations;
return $this->incidents;
}
public function addRepresentation(Representation $representation): static
@ -120,16 +120,6 @@ class Ride
return $this;
}
public function getIncidentTypes(): Collection
{
return $this->incidentTypes;
}
public function setIncidentTypes(Collection $incidentTypes): void
{
$this->incidentTypes = $incidentTypes;
}
public function getMissions(): Collection
{
return $this->missions;
@ -140,6 +130,16 @@ class Ride
$this->missions = $missions;
}
public function getIncidents(): Collection
{
return $this->incidents;
}
public function setIncidents(Collection $incidents): void
{
$this->incidents = $incidents;
}
public function __toString(): string
{
return $this->label;

View File

@ -2,6 +2,7 @@
namespace App\Form;
use App\Entity\Incident;
use App\Entity\IncidentType;
use App\Entity\Mission;
use App\Entity\Ride;
@ -17,8 +18,8 @@ class RideType extends AbstractType
$builder
->add('label')
->add('count')
->add('incidentTypes', EntityType::class, [
'class' => IncidentType::class,
->add('incidents', EntityType::class, [
'class' => Incident::class,
'choice_label' => 'id',
])
->add('missions', EntityType::class, [