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 }