<?php
// src/AppBundle/DataFixtures/ORM/LoadData.php

namespace AppBundle\DataFixtures\ORM;

use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;

use AppBundle\Entity\Compagny;
use AppBundle\Entity\Image;


class CompanyData  extends AbstractFixture implements OrderedFixtureInterface
{
  // Dans l'argument de la méthode load, l'objet $manager est l'EntityManager
  public function load(ObjectManager $manager)
  {
    $json = file_get_contents("C:\wamp64\www\inartis-s3\src\AppBundle\DataFixtures\ORM\data.json");
	$array=json_decode($json, true);

	$jsonIterator =new \RecursiveArrayIterator($array);
	$jsonIterator = new \RecursiveIteratorIterator($jsonIterator, \RecursiveIteratorIterator::SELF_FIRST);
	
	foreach ($jsonIterator as $key => $val) {
		if(is_array($val)) {
			if(isset($company)) $manager->persist($company);
			 $company = new Compagny();
		} else { 
			$setter = 'set'.$key;
			if($key=="location_adresse") $setter = 'setLocationAdresse';
			if($key=="website_2") $setter = 'setWebsite2';
			
			if($key=="cantonId"){
				$company->setCanton($this->getReference('c'.$val));
			}
			else if($key=="sectorId"){$company->setSector($this->getReference('s'.$val));
			}	
			else if($key=="logo"&&!empty($val))
			{
				$alt =explode(".",$val);
				//echo $alt[0]."\n";
				$logo = new Image();
				$logo->setAlt($alt[0]);
				$logo->setFilename($val);
				
				
				$manager->persist($logo);
				
				$company->$setter($logo);
			}
			else if($key!="id"&&$key!="cantonId"&&$key!="sectorId")
				$company->$setter($val);
		}
	}
	
	$manager->persist($company);	


    // On déclenche l'enregistrement de toutes les data
    $manager->flush();
  }
  
    public function getOrder()
    {
        // the order in which fixtures will be loaded
        // the lower the number, the sooner that this fixture is loaded
        return 2;
    }
}

