feat : écran bovins, refacto cases, enrichissement bovins, migrations
- Ajout page infrastructure/bovine avec CRUD - Refacto BuildingCase (suppression Statut, simplification) - Commande EnrichBovinesCommand pour enrichir les données bovins - 4 migrations Doctrine - Mise à jour composables shipment/weighing - Mise à jour README et CHANGELOG Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -8,7 +8,6 @@ use App\Entity\Building;
|
||||
use App\Entity\BuildingCase;
|
||||
use App\Entity\BuildingCasePosition;
|
||||
use App\Entity\BuildingLayout;
|
||||
use App\Entity\Statut;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
@@ -18,10 +17,9 @@ class BuildingInfrastructureFixtures extends Fixture implements DependentFixture
|
||||
{
|
||||
public function load(ObjectManager $manager): void
|
||||
{
|
||||
$statuts = $this->loadStatuts($manager);
|
||||
$buildings = $this->getBuildingsByCode($manager, ['B1', 'B2', 'B3']);
|
||||
$layouts = $this->loadLayouts($manager, $buildings);
|
||||
$cases = $this->loadBuildingCases($manager, $buildings, $statuts);
|
||||
$cases = $this->loadBuildingCases($manager, $buildings);
|
||||
$this->loadCasePositions($manager, $layouts, $cases);
|
||||
|
||||
$manager->flush();
|
||||
@@ -34,38 +32,6 @@ class BuildingInfrastructureFixtures extends Fixture implements DependentFixture
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, Statut>
|
||||
*/
|
||||
private function loadStatuts(ObjectManager $manager): array
|
||||
{
|
||||
$repo = $manager->getRepository(Statut::class);
|
||||
|
||||
$data = [
|
||||
['label' => 'Libre', 'code' => 'LB', 'color' => '#A3B18A'],
|
||||
['label' => 'Occupé', 'code' => 'OC', 'color' => '#3A506B'],
|
||||
['label' => 'Malade', 'code' => 'ML', 'color' => '#E07A5F'],
|
||||
];
|
||||
|
||||
$result = [];
|
||||
foreach ($data as $row) {
|
||||
/** @var null|Statut $statut */
|
||||
$statut = $repo->findOneBy(['code' => $row['code']]);
|
||||
if (!$statut instanceof Statut) {
|
||||
$statut = new Statut()
|
||||
->setLabel($row['label'])
|
||||
->setCode($row['code'])
|
||||
->setColor($row['color'])
|
||||
;
|
||||
$manager->persist($statut);
|
||||
}
|
||||
|
||||
$result[$row['code']] = $statut;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param list<string> $codes
|
||||
*
|
||||
@@ -126,34 +92,21 @@ class BuildingInfrastructureFixtures extends Fixture implements DependentFixture
|
||||
|
||||
/**
|
||||
* @param array<string, Building> $buildings
|
||||
* @param array<string, Statut> $statuts
|
||||
*
|
||||
* @return array<string, BuildingCase>
|
||||
*/
|
||||
private function loadBuildingCases(ObjectManager $manager, array $buildings, array $statuts): array
|
||||
private function loadBuildingCases(ObjectManager $manager, array $buildings): array
|
||||
{
|
||||
$repo = $manager->getRepository(BuildingCase::class);
|
||||
|
||||
$statusRanges = [
|
||||
// B1
|
||||
['buildingCode' => 'B1', 'from' => 1, 'to' => 12, 'statut' => 'LB'],
|
||||
['buildingCode' => 'B1', 'from' => 13, 'to' => 24, 'statut' => 'OC'],
|
||||
['buildingCode' => 'B1', 'from' => 25, 'to' => 32, 'statut' => 'ML'],
|
||||
['buildingCode' => 'B1', 'from' => 33, 'to' => 44, 'statut' => 'LB'],
|
||||
// B2
|
||||
['buildingCode' => 'B2', 'from' => 1, 'to' => 10, 'statut' => 'OC'],
|
||||
['buildingCode' => 'B2', 'from' => 11, 'to' => 22, 'statut' => 'LB'],
|
||||
['buildingCode' => 'B2', 'from' => 23, 'to' => 30, 'statut' => 'ML'],
|
||||
['buildingCode' => 'B2', 'from' => 31, 'to' => 44, 'statut' => 'OC'],
|
||||
// B3
|
||||
['buildingCode' => 'B3', 'from' => 1, 'to' => 8, 'statut' => 'ML'],
|
||||
['buildingCode' => 'B3', 'from' => 9, 'to' => 20, 'statut' => 'LB'],
|
||||
['buildingCode' => 'B3', 'from' => 21, 'to' => 34, 'statut' => 'OC'],
|
||||
['buildingCode' => 'B3', 'from' => 35, 'to' => 44, 'statut' => 'ML'],
|
||||
$caseRanges = [
|
||||
['buildingCode' => 'B1', 'from' => 1, 'to' => 44],
|
||||
['buildingCode' => 'B2', 'from' => 1, 'to' => 44],
|
||||
['buildingCode' => 'B3', 'from' => 1, 'to' => 44],
|
||||
];
|
||||
|
||||
$result = [];
|
||||
foreach ($statusRanges as $range) {
|
||||
foreach ($caseRanges as $range) {
|
||||
for ($caseNumber = $range['from']; $caseNumber <= $range['to']; ++$caseNumber) {
|
||||
$code = sprintf('%s-C%d', $range['buildingCode'], $caseNumber);
|
||||
|
||||
@@ -169,7 +122,6 @@ class BuildingInfrastructureFixtures extends Fixture implements DependentFixture
|
||||
->setCode($code)
|
||||
->setCapacity(15)
|
||||
->setIdBuilding($buildings[$range['buildingCode']])
|
||||
->setStatut($statuts[$range['statut']])
|
||||
;
|
||||
$manager->persist($buildingCase);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user