Some checks failed
Auto Tag Develop / tag (push) Has been cancelled
| Numéro du ticket | Titre du ticket | |------------------|-----------------| | #278 | Plan du site | ## Description de la PR [#278] Plan du site ## Modification du .env ## Check list - [ ] Pas de régression - [x] TU/TI/TF rédigée - [x] TU/TI/TF OK - [ ] CHANGELOG modifié Co-authored-by: Matteo <matteo@yuno.malio.fr> Reviewed-on: #33 Co-authored-by: tristan <tristan@yuno.malio.fr> Co-committed-by: tristan <tristan@yuno.malio.fr>
121 lines
4.7 KiB
PHP
121 lines
4.7 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\DataFixtures;
|
|
|
|
use App\Entity\Bovine;
|
|
use App\Entity\BuildingCase;
|
|
use DateTimeImmutable;
|
|
use Doctrine\Bundle\FixturesBundle\Fixture;
|
|
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
|
|
use Doctrine\Persistence\ObjectManager;
|
|
|
|
class BovineFixtures extends Fixture implements DependentFixtureInterface
|
|
{
|
|
public function load(ObjectManager $manager): void
|
|
{
|
|
$rows = [
|
|
[1, 15, '7979580026', 390, '2026-02-25'],
|
|
[5, 113, '4405604924', 397, '2025-05-22'],
|
|
[4, 113, '4405604944', 375, '2025-05-22'],
|
|
[2, 113, '4963291114', 319, '2025-05-22'],
|
|
[3, 113, '4405604922', 386, '2025-05-22'],
|
|
[6, 126, '4415811026', 367, '2025-07-02'],
|
|
[7, 126, '4950971149', 398, '2025-07-02'],
|
|
[8, 126, '4950971170', 386, '2025-07-02'],
|
|
[9, 126, '4489751630', 408, '2025-07-02'],
|
|
[10, 126, '8551323003', 478, '2025-07-02'],
|
|
[11, 126, '8503833703', 378, '2025-07-02'],
|
|
[12, 126, '4402104572', 379, '2025-07-02'],
|
|
[13, 126, '4402104580', 465, '2025-07-02'],
|
|
[14, 126, '4402104607', 381, '2025-07-02'],
|
|
[15, 126, '8504059581', 446, '2025-07-02'],
|
|
[16, 124, '4950971161', 382, '2025-07-02'],
|
|
[17, 124, '5652911499', 376, '2025-07-02'],
|
|
[18, 124, '8551323029', 414, '2025-07-02'],
|
|
[19, 124, '4402104590', 474, '2025-07-02'],
|
|
[20, 124, '4402104594', 408, '2025-07-02'],
|
|
[21, 124, '4402104595', 399, '2025-07-02'],
|
|
[22, 124, '4402104604', 374, '2025-07-02'],
|
|
[23, 124, '8504059579', 403, '2025-07-02'],
|
|
[24, 124, '8504059590', 398, '2025-07-02'],
|
|
[25, 123, '8551782070', 395, '2025-07-02'],
|
|
[26, 123, '8551782080', 443, '2025-07-02'],
|
|
[27, 123, '8551782084', 394, '2025-07-02'],
|
|
[28, 123, '8551782090', 378, '2025-07-02'],
|
|
[29, 123, '8551782092', 424, '2025-07-02'],
|
|
[30, 123, '8551782094', 389, '2025-07-02'],
|
|
[31, 123, '8551782099', 411, '2025-07-02'],
|
|
[32, 123, '8551323020', 392, '2025-07-02'],
|
|
[33, 123, '8551323051', 371, '2025-07-02'],
|
|
[34, 123, '7947673148', 378, '2025-07-02'],
|
|
[39, 114, '1731177447', 395, '2025-06-19'],
|
|
[42, 114, '1726167608', 299, '2025-06-19'],
|
|
[38, 114, '1731177442', 343, '2025-06-19'],
|
|
[40, 114, '1731177448', 362, '2025-06-19'],
|
|
[41, 114, '1731177458', 359, '2025-06-19'],
|
|
[35, 114, '7946282100', 291, '2025-06-19'],
|
|
[43, 114, '1726167613', 339, '2025-06-19'],
|
|
[37, 114, '1731177427', 375, '2025-06-19'],
|
|
[36, 114, '7946282103', 354, '2025-06-19'],
|
|
];
|
|
|
|
$bovineRepository = $manager->getRepository(Bovine::class);
|
|
$caseRepository = $manager->getRepository(BuildingCase::class);
|
|
|
|
foreach ($rows as [, $legacyCaseId, $nationalNumber, $receivedWeight, $arrivalDate]) {
|
|
$buildingCase = $this->resolveBuildingCaseByLegacyId($manager, (int) $legacyCaseId);
|
|
if (!$buildingCase instanceof BuildingCase) {
|
|
$buildingCase = $caseRepository->find((int) $legacyCaseId);
|
|
}
|
|
if (!$buildingCase instanceof BuildingCase) {
|
|
continue;
|
|
}
|
|
|
|
/** @var null|Bovine $bovine */
|
|
$bovine = $bovineRepository->findOneBy(['nationalNumber' => (string) $nationalNumber]);
|
|
if (!$bovine instanceof Bovine) {
|
|
$bovine = new Bovine();
|
|
}
|
|
|
|
$bovine
|
|
->setNationalNumber((string) $nationalNumber)
|
|
->setBuildingCase($buildingCase)
|
|
->setReceivedWeight((int) $receivedWeight)
|
|
->setArrivalDate(new DateTimeImmutable((string) $arrivalDate))
|
|
;
|
|
|
|
$manager->persist($bovine);
|
|
}
|
|
|
|
$manager->flush();
|
|
}
|
|
|
|
public function getDependencies(): array
|
|
{
|
|
return [
|
|
BuildingInfrastructureFixtures::class,
|
|
];
|
|
}
|
|
|
|
private function resolveBuildingCaseByLegacyId(ObjectManager $manager, int $legacyCaseId): ?BuildingCase
|
|
{
|
|
if ($legacyCaseId < 1) {
|
|
return null;
|
|
}
|
|
|
|
$buildingNumber = intdiv($legacyCaseId - 1, 44) + 1;
|
|
$caseNumber = (($legacyCaseId - 1) % 44) + 1;
|
|
|
|
if ($buildingNumber < 1 || $buildingNumber > 3) {
|
|
return null;
|
|
}
|
|
|
|
$code = sprintf('B%d-C%d', $buildingNumber, $caseNumber);
|
|
$buildingCase = $manager->getRepository(BuildingCase::class)->findOneBy(['code' => $code]);
|
|
|
|
return $buildingCase instanceof BuildingCase ? $buildingCase : null;
|
|
}
|
|
}
|