450 lines
17 KiB
PHP
450 lines
17 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\DataFixtures;
|
|
|
|
use App\Entity\Address;
|
|
use App\Entity\BovineType;
|
|
use App\Entity\Building;
|
|
use App\Entity\Customer;
|
|
use App\Entity\MerchandiseType;
|
|
use App\Entity\PelletType;
|
|
use App\Entity\ReceptionType;
|
|
use App\Entity\ShipmentType;
|
|
use App\Entity\Supplier;
|
|
use Doctrine\Bundle\FixturesBundle\Fixture;
|
|
use Doctrine\Persistence\ObjectManager;
|
|
|
|
class ReferenceFixtures extends Fixture
|
|
{
|
|
public function load(ObjectManager $manager): void
|
|
{
|
|
$addressIndex = [];
|
|
|
|
$merchandiseTypes = [
|
|
['label' => 'Foin', 'code' => 'FOIN'],
|
|
['label' => 'Paille', 'code' => 'PAILLE'],
|
|
['label' => 'Granule', 'code' => 'GRANULE'],
|
|
['label' => 'Autres', 'code' => 'AUTRES'],
|
|
];
|
|
foreach ($merchandiseTypes as $type) {
|
|
$merchandiseType = new MerchandiseType()
|
|
->setLabel($type['label'])
|
|
->setCode($type['code'])
|
|
;
|
|
$manager->persist($merchandiseType);
|
|
}
|
|
|
|
$pelletTypes = [
|
|
['label' => 'JB croissance', 'code' => 'K750'],
|
|
['label' => 'Genisse herbe', 'code' => 'K500'],
|
|
['label' => 'Bovistart melasse ferme', 'code' => 'K130'],
|
|
['label' => 'Bovin mise en forme', 'code' => 'K400'],
|
|
];
|
|
foreach ($pelletTypes as $type) {
|
|
$pelletType = new PelletType()
|
|
->setLabel($type['label'])
|
|
->setCode($type['code'])
|
|
;
|
|
$manager->persist($pelletType);
|
|
}
|
|
|
|
$buildings = [
|
|
['label' => 'Bâtiment 1', 'code' => 'B1'],
|
|
['label' => 'Bâtiment 2', 'code' => 'B2'],
|
|
['label' => 'Bâtiment 3', 'code' => 'B3'],
|
|
];
|
|
foreach ($buildings as $buildingData) {
|
|
$building = new Building()
|
|
->setLabel($buildingData['label'])
|
|
->setCode($buildingData['code'])
|
|
;
|
|
$manager->persist($building);
|
|
}
|
|
|
|
$receptionTypes = [
|
|
['label' => 'Marchandises', 'code' => 'MARCHANDISES'],
|
|
['label' => 'Bovins', 'code' => 'BOVINS'],
|
|
];
|
|
foreach ($receptionTypes as $type) {
|
|
$receptionType = new ReceptionType()
|
|
->setLabel($type['label'])
|
|
->setCode($type['code'])
|
|
;
|
|
$manager->persist($receptionType);
|
|
}
|
|
|
|
$bovineTypes = [
|
|
['label' => 'Limousine', 'code' => '34'],
|
|
['label' => 'Charolaise', 'code' => '38'],
|
|
['label' => 'Parthenaise', 'code' => '71'],
|
|
];
|
|
foreach ($bovineTypes as $type) {
|
|
$bovineType = new BovineType()
|
|
->setLabel($type['label'])
|
|
->setCode($type['code'])
|
|
;
|
|
$manager->persist($bovineType);
|
|
}
|
|
|
|
$shipmentTypes = [
|
|
['label' => 'Bovin de boucherie', 'code' => 'BDB'],
|
|
['label' => "Bovin d'équarrissage", 'code' => 'BE'],
|
|
];
|
|
foreach ($shipmentTypes as $type) {
|
|
$shipmentType = new ShipmentType()
|
|
->setLabel($type['label'])
|
|
->setCode($type['code'])
|
|
;
|
|
$manager->persist($shipmentType);
|
|
}
|
|
|
|
$suppliers = [
|
|
[
|
|
'name' => 'LIOT',
|
|
'email' => 'lpc.contacts@lpc-liot.fr',
|
|
'phone' => '05.49.20.09.10',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'LIOT CHATELLERAULT',
|
|
'street' => "14 Allée d'Argenson",
|
|
'street2' => 'ZI Nord',
|
|
'postalCode' => '86100',
|
|
'city' => 'CHATELLERAULT',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'ARNAULT EURL',
|
|
'email' => 'eurl.arnault86@orange.fr',
|
|
'phone' => '05.49.02.65.27',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'ARNAULT EURL',
|
|
'street' => 'Moulin du Guéret',
|
|
'street2' => 'B.P 30425',
|
|
'postalCode' => '86100',
|
|
'city' => 'Antran',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'EARL DES GONNIERES',
|
|
'email' => null,
|
|
'phone' => '06.80.14.18.82',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'EARL DES GONNIERES',
|
|
'street' => "27 Route d'Ingrandes",
|
|
'street2' => 'Les Gonnières',
|
|
'postalCode' => '86220',
|
|
'city' => 'OYRE',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'EARL LESIGNY BABY',
|
|
'email' => null,
|
|
'phone' => '05.49.86.17.95',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'EARL LESIGNY BABY',
|
|
'street' => '2 Lieu Dit Les Bouquins',
|
|
'street2' => null,
|
|
'postalCode' => '86270',
|
|
'city' => 'LESIGNY',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'FEDER',
|
|
'email' => 'contact@uco-feder.fr',
|
|
'phone' => '03.85.24.25.50',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'FEDER',
|
|
'street' => 'Molaise',
|
|
'street2' => null,
|
|
'postalCode' => '71120',
|
|
'city' => 'CHAROLLES',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => "GAEC DE L'ESPOIR",
|
|
'email' => 'contact@uco-feder.fr',
|
|
'phone' => '05.49.86.57.24',
|
|
'addresses' => [
|
|
[
|
|
'label' => "GAEC DE L'ESPOIR",
|
|
'street' => 'La Moujonnerie',
|
|
'street2' => null,
|
|
'postalCode' => '86450',
|
|
'city' => 'PLEUMARTIN',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'GRAVELEAU',
|
|
'email' => 'contact@graveleau-sarl.fr',
|
|
'phone' => '05.49.23.51.66',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'GRAVELEAU',
|
|
'street' => '3, Le Jeu',
|
|
'street2' => null,
|
|
'postalCode' => '86220',
|
|
'city' => 'INGRANDES',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'LORTHOLARY',
|
|
'email' => 'contact86@lortholarybetail.com',
|
|
'phone' => '05.49.52.77.10',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'LORTHOLARY',
|
|
'street' => 'Ferme de Geniec',
|
|
'street2' => null,
|
|
'postalCode' => '86550',
|
|
'city' => 'MIGNALOUX BEAUVOIR',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'NATERA',
|
|
'email' => 'contact86@lortholarybetail.com',
|
|
'phone' => '05.65.67.89.46',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'NATERA',
|
|
'street' => 'Bd des Balquières',
|
|
'street2' => 'BP 3220',
|
|
'postalCode' => '12032',
|
|
'city' => 'RODEZ CEDEX 9',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'SCEA des Bariollières',
|
|
'email' => 'elisregnier@gmail.com',
|
|
'phone' => '06.09.37.65.61',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'SCEA des Bariollières',
|
|
'street' => '2 rue des Barriollières',
|
|
'street2' => null,
|
|
'postalCode' => '86220',
|
|
'city' => 'INGRANDES',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'SCEA SENE',
|
|
'email' => null,
|
|
'phone' => null,
|
|
'addresses' => [
|
|
[
|
|
'label' => 'SCEA SENE',
|
|
'street' => '3 Route de la Roche Posay',
|
|
'street2' => 'Les Girouettes',
|
|
'postalCode' => '86100',
|
|
'city' => 'CHATELLERAULT',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'TERRENA',
|
|
'email' => null,
|
|
'phone' => '02.51.67.17.98',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'TERRENA',
|
|
'street' => 'La Blanchardière',
|
|
'street2' => null,
|
|
'postalCode' => '44522',
|
|
'city' => 'MESANGER',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'TRICHERIE COOPERATIVE',
|
|
'email' => 'contact@cooptricherie.fr',
|
|
'phone' => '05.49.19.44.33',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'TRICHERIE COOPERATIVE',
|
|
'street' => 'B.P n°2',
|
|
'street2' => null,
|
|
'postalCode' => '86490',
|
|
'city' => 'BEAUMONT',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'TURPAULT Muriel',
|
|
'email' => null,
|
|
'phone' => null,
|
|
'addresses' => [
|
|
[
|
|
'label' => 'TURPAULT Muriel',
|
|
'street' => '23Bis Rue Marcel Pagnol',
|
|
'street2' => null,
|
|
'postalCode' => '86100',
|
|
'city' => 'TARGE',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
];
|
|
|
|
foreach ($suppliers as $supplierData) {
|
|
$supplier = new Supplier()
|
|
->setName($supplierData['name'])
|
|
->setEmail($supplierData['email'])
|
|
->setPhone($supplierData['phone'])
|
|
;
|
|
|
|
foreach ($supplierData['addresses'] as $addressData) {
|
|
$addressKey = sprintf('%s|%s', $addressData['label'], $addressData['postalCode']);
|
|
if (!isset($addressIndex[$addressKey])) {
|
|
$addressIndex[$addressKey] = new Address()
|
|
->setLabel($addressData['label'])
|
|
->setStreet($addressData['street'])
|
|
->setStreet2($addressData['street2'])
|
|
->setPostalCode($addressData['postalCode'])
|
|
->setCity($addressData['city'])
|
|
->setCountryCode($addressData['countryCode'])
|
|
;
|
|
$manager->persist($addressIndex[$addressKey]);
|
|
}
|
|
$address = $addressIndex[$addressKey];
|
|
$supplier->getAddresses()->add($address);
|
|
}
|
|
|
|
$manager->persist($supplier);
|
|
}
|
|
|
|
$customers = [
|
|
[
|
|
'name' => 'ARNAULT EURL',
|
|
'phone' => '05.49.02.65.27',
|
|
'email' => 'eurl.arnault86@orange.fr',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'ARNAULT EURL',
|
|
'street' => 'Moulin du Guéret',
|
|
'street2' => 'B.P 30425',
|
|
'postalCode' => '86100',
|
|
'city' => 'Antran',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'COVILIM',
|
|
'phone' => '05.55.30.03.10',
|
|
'email' => 'sandra.robineaux@covilim.com',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'COVILIM',
|
|
'street' => 'Rue de Nexon',
|
|
'street2' => null,
|
|
'postalCode' => '87000',
|
|
'city' => 'LIMOGES',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'Les producteurs de la marche (LPM)',
|
|
'phone' => '05.55.63.04.53',
|
|
'email' => 'f.legalliard@lpmcoop.fr',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'Les producteurs de la marche (LPM)',
|
|
'street' => 'Malonze',
|
|
'street2' => null,
|
|
'postalCode' => '23300',
|
|
'city' => 'LA SOUTERRAINE',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'LORTHOLARY BETAIL',
|
|
'phone' => '05.49.52.77.10',
|
|
'email' => 'contact86@lortholarybetail.com',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'LORTHOLARY BETAIL',
|
|
'street' => 'FERME DE GENIEC',
|
|
'street2' => null,
|
|
'postalCode' => '86550',
|
|
'city' => 'MIGNALOUX BEAUVOIR',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
[
|
|
'name' => 'TERRENA',
|
|
'phone' => '02.40.98.90.00',
|
|
'email' => 'scouillaud@terrena.fr',
|
|
'addresses' => [
|
|
[
|
|
'label' => 'TERRENA',
|
|
'street' => 'LA NOELLE',
|
|
'street2' => 'BP 20199',
|
|
'postalCode' => '44155',
|
|
'city' => 'ANCENIS CEDEX',
|
|
'countryCode' => 'FR',
|
|
],
|
|
],
|
|
],
|
|
];
|
|
|
|
foreach ($customers as $customerData) {
|
|
$customer = new Customer()
|
|
->setName($customerData['name'])
|
|
->setPhone($customerData['phone'])
|
|
->setEmail($customerData['email'])
|
|
;
|
|
|
|
foreach ($customerData['addresses'] as $addressData) {
|
|
$addressKey = sprintf('%s|%s', $addressData['label'], $addressData['postalCode']);
|
|
if (!isset($addressIndex[$addressKey])) {
|
|
$addressIndex[$addressKey] = new Address()
|
|
->setLabel($addressData['label'])
|
|
->setStreet($addressData['street'])
|
|
->setStreet2($addressData['street2'])
|
|
->setPostalCode($addressData['postalCode'])
|
|
->setCity($addressData['city'])
|
|
->setCountryCode($addressData['countryCode'])
|
|
;
|
|
$manager->persist($addressIndex[$addressKey]);
|
|
}
|
|
$customer->getAddresses()->add($addressIndex[$addressKey]);
|
|
}
|
|
|
|
$manager->persist($customer);
|
|
}
|
|
|
|
$manager->flush();
|
|
}
|
|
}
|