partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

PartDataLoader.php (6889B)


      1 <?php
      2 
      3 namespace PartKeepr\PartBundle\DataFixtures;
      4 
      5 use Doctrine\Common\DataFixtures\AbstractFixture;
      6 use Doctrine\Common\Persistence\ObjectManager;
      7 use PartKeepr\DoctrineReflectionBundle\Filter\Filter;
      8 use PartKeepr\PartBundle\Entity\MetaPartParameterCriteria;
      9 use PartKeepr\PartBundle\Entity\Part;
     10 use PartKeepr\PartBundle\Entity\PartCategory;
     11 use PartKeepr\PartBundle\Entity\PartMeasurementUnit;
     12 use PartKeepr\PartBundle\Entity\PartParameter;
     13 use PartKeepr\UnitBundle\Entity\Unit;
     14 
     15 class PartDataLoader extends AbstractFixture
     16 {
     17     public function load(ObjectManager $manager)
     18     {
     19         $partUnit = new PartMeasurementUnit();
     20         $partUnit->setName('pieces');
     21         $partUnit->setShortName('pcs');
     22         $partUnit->setDefault(true);
     23 
     24         $this->addReference("partunit.default", $partUnit);
     25 
     26         $part = new Part();
     27         $part->setName('FOOBAR');
     28         $part->setPartUnit($partUnit);
     29         /**
     30          * @var PartCategory $category
     31          */
     32         $category = $this->getReference('partcategory.first');
     33         $storageLocation = $this->getReference('storagelocation.first');
     34 
     35         $part->setCategory($category);
     36         $part->setStorageLocation($storageLocation);
     37 
     38         $part2 = new Part();
     39         $part2->setName('FOOBAR2');
     40 
     41         $category = $this->getReference('partcategory.first');
     42         $storageLocation = $this->getReference('storagelocation.second');
     43 
     44         $part2->setCategory($category);
     45         $part2->setStorageLocation($storageLocation);
     46         $part2->setPartUnit($partUnit);
     47 
     48         $manager->persist($partUnit);
     49         $manager->persist($part);
     50         $manager->persist($part2);
     51 
     52         $this->addReference('part.1', $part);
     53         $this->addReference('part.2', $part2);
     54 
     55         $ohms = new Unit();
     56         $ohms->setName("Ohm");
     57         $ohms->setSymbol("O");
     58         $manager->persist($ohms);
     59 
     60         $partParameterR1 = new PartParameter();
     61         $partParameterR1->setName("Resistance");
     62         $partParameterR1->setValueType(PartParameter::VALUE_TYPE_NUMERIC);
     63         $partParameterR1->setUnit($ohms);
     64         $partParameterR1->setValue(100);
     65 
     66         $partParameterR2 = new PartParameter();
     67         $partParameterR2->setName("Resistance");
     68         $partParameterR2->setValueType(PartParameter::VALUE_TYPE_NUMERIC);
     69         $partParameterR2->setUnit($ohms);
     70         $partParameterR2->setValue(100);
     71 
     72         $partParameterR3 = new PartParameter();
     73         $partParameterR3->setName("Resistance");
     74         $partParameterR3->setValueType(PartParameter::VALUE_TYPE_NUMERIC);
     75         $partParameterR3->setUnit($ohms);
     76         $partParameterR3->setValue(101);
     77 
     78         $partParameterP1 = new PartParameter();
     79         $partParameterP1->setName("Case");
     80         $partParameterP1->setValueType(PartParameter::VALUE_TYPE_STRING);
     81         $partParameterP1->setStringValue("1206");
     82 
     83         $partParameterP2 = new PartParameter();
     84         $partParameterP2->setName("Case");
     85         $partParameterP2->setValueType(PartParameter::VALUE_TYPE_STRING);
     86         $partParameterP2->setStringValue("0805");
     87 
     88         $partParameterP3 = new PartParameter();
     89         $partParameterP3->setName("Case");
     90         $partParameterP3->setValueType(PartParameter::VALUE_TYPE_STRING);
     91         $partParameterP3->setStringValue("0805");
     92 
     93         $metaSourcePart1 = new Part();
     94         $metaSourcePart1->setPartUnit($partUnit);
     95         $metaSourcePart1->setName("100 Ohms 1206 FIRST");
     96         $metaSourcePart1->setPartUnit($partUnit);
     97         $metaSourcePart1->setCategory($category);
     98         $metaSourcePart1->setStorageLocation($storageLocation);
     99         $metaSourcePart1->addParameter($partParameterR1);
    100         $metaSourcePart1->addParameter($partParameterP1);
    101 
    102         $metaSourcePart2 = new Part();
    103         $metaSourcePart2->setPartUnit($partUnit);
    104         $metaSourcePart2->setName("100 Ohms 0805 SECOND");
    105         $metaSourcePart2->setPartUnit($partUnit);
    106         $metaSourcePart2->setCategory($category);
    107         $metaSourcePart2->setStorageLocation($storageLocation);
    108         $metaSourcePart2->addParameter($partParameterR2);
    109         $metaSourcePart2->addParameter($partParameterP2);
    110 
    111         $metaSourcePart3 = new Part();
    112         $metaSourcePart3->setPartUnit($partUnit);
    113         $metaSourcePart3->setName("100 Ohms 0805 THIRD");
    114         $metaSourcePart3->setPartUnit($partUnit);
    115         $metaSourcePart3->setCategory($category);
    116         $metaSourcePart3->setStorageLocation($storageLocation);
    117         $metaSourcePart3->addParameter($partParameterP3);
    118         $metaSourcePart3->addParameter($partParameterR3);
    119 
    120         $manager->persist($metaSourcePart1);
    121         $manager->persist($metaSourcePart2);
    122         $manager->persist($metaSourcePart3);
    123 
    124         $this->addReference('metapart.source.1', $metaSourcePart1);
    125         $this->addReference('metapart.source.2', $metaSourcePart2);
    126         $this->addReference('metapart.source.3', $metaSourcePart3);
    127 
    128         $metaPartParameterCriteria1 = new MetaPartParameterCriteria();
    129         $metaPartParameterCriteria1->setPartParameterName("Resistance");
    130         $metaPartParameterCriteria1->setValueType(PartParameter::VALUE_TYPE_NUMERIC);
    131         $metaPartParameterCriteria1->setOperator(Filter::OPERATOR_EQUALS);
    132         $metaPartParameterCriteria1->setValue(100);
    133 
    134         $metaPartParameterCriteria2 = new MetaPartParameterCriteria();
    135         $metaPartParameterCriteria2->setPartParameterName("Resistance");
    136         $metaPartParameterCriteria2->setValueType(PartParameter::VALUE_TYPE_NUMERIC);
    137         $metaPartParameterCriteria2->setOperator(Filter::OPERATOR_EQUALS);
    138         $metaPartParameterCriteria2->setValue(100);
    139 
    140         $metaPartParameterCriteria3 = new MetaPartParameterCriteria();
    141         $metaPartParameterCriteria3->setValueType(PartParameter::VALUE_TYPE_STRING);
    142         $metaPartParameterCriteria3->setPartParameterName("Case");
    143         $metaPartParameterCriteria3->setOperator(Filter::OPERATOR_EQUALS);
    144         $metaPartParameterCriteria3->setStringValue("0805");
    145 
    146         $metaPart1 = new Part();
    147         $metaPart1->setMetaPart(true);
    148         $metaPart1->setName("all 100 ohms resistors");
    149         $metaPart1->setCategory($category);
    150         $metaPart1->setPartUnit($partUnit);
    151         $metaPart1->addMetaPartParameterCriteria($metaPartParameterCriteria1);
    152 
    153         $metaPart2 = new Part();
    154         $metaPart2->setMetaPart(true);
    155         $metaPart2->setName("all 100 ohms 0805 resistors");
    156         $metaPart2->setCategory($category);
    157         $metaPart2->setPartUnit($partUnit);
    158         $metaPart2->addMetaPartParameterCriteria($metaPartParameterCriteria2);
    159         $metaPart2->addMetaPartParameterCriteria($metaPartParameterCriteria3);
    160 
    161         $manager->persist($metaPart2);
    162         $manager->persist($metaPart1);
    163 
    164         $this->addReference('metapart.1', $metaPart1);
    165         $this->addReference('metapart.2', $metaPart2);
    166 
    167         $manager->flush();
    168     }
    169 }