ValFoncierFixtures.php 1,36 ko
Newer Older
Julien Deveaux's avatar
Julien Deveaux a validé
<?php
namespace App\DataFixtures;

use DateTime;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager;
use App\Entity\ValFoncier;

class ValFoncierFixtures extends Fixture
{
    public function load(ObjectManager $manager)
    {
dim145's avatar
dim145 a validé


        $csv = fopen("./data/valeursfoncieres-2018.txt", "r");
Julien Deveaux's avatar
Julien Deveaux a validé
        $i = 0;
        fgetcsv($csv, 0, '|');
dim145's avatar
dim145 a validé

        while(!feof($csv))
        {
Julien Deveaux's avatar
Julien Deveaux a validé
            $line = fgetcsv($csv, 0, '|');
dim145's avatar
dim145 a validé

            if(is_array($line) && sizeof($line) == 43)
            {
Julien Deveaux's avatar
Julien Deveaux a validé
                $type = $line[36];
dim145's avatar
dim145 a validé
                if (in_array($type, ValFoncier::TYPES))
                {
Julien Deveaux's avatar
Julien Deveaux a validé
                    $valFoncier = new ValFoncier();
                    $valFoncier->setCodePostal($line[16]);
                    $valFoncier->setPrix((float)$line[10]);
                    $valFoncier->setDateAquisition(DateTime::createFromFormat('d/m/Y', $line[8]));
                    $valFoncier->setType($type);
                    $valFoncier->setSurface((float)$line[42]);
                    $manager->persist($valFoncier);
dim145's avatar
dim145 a validé

                    if ($i % 10_000 == 0)
                    {
                        print($i . "\n");

Julien Deveaux's avatar
Julien Deveaux a validé
                        $manager->flush();
dim145's avatar
dim145 a validé
                        $manager->clear();
Julien Deveaux's avatar
Julien Deveaux a validé
                    }
                    $i = $i + 1;
                }
            }
        }
Julien Deveaux's avatar
Julien Deveaux a validé
        $manager->flush();
    }
}
?>