public function getRootByAdministration(Administration $administration)
 {
     $meta = $this->getClassMetadata();
     $config = $this->listener->getConfiguration($this->_em, $meta->name);
     $qb = $this->getQueryBuilder();
     $qb->select('node')->from($config['useObjectClass'], 'node');
     $qb->where($qb->expr()->eq('node.id', 'node.root'));
     $qb->andWhere('node.level = 0');
     $qb->andWhere('node.administration = :administration');
     $qb->setParameter('administration', $administration);
     $query = $qb->getQuery();
     $result = $query->getOneOrNullResult();
     if ($result) {
         return $result;
     }
     //root doesn't exist create one
     $builder = new Builder();
     $rootCategory = $builder->createRootCategory($administration);
     $em = $this->getEntityManager();
     $em->persist($rootCategory);
     $em->flush();
     return $rootCategory;
 }
Example #2
0
 public function createPreset(Administration $administration)
 {
     $builder = new Builder();
     $root = $builder->createRootCategory($administration);
     $inkomsten = $builder->addChild($root, 'Inkomsten', Type::INCOME);
     $builder->addChild($inkomsten, 'Werk', Type::INCOME);
     $builder->addChild($inkomsten, 'Overige inkomsten', Type::INCOME);
     $huishoudelijke_uitgaven = $builder->addChild($root, 'Huishoudelijke uitgaven', Type::EXPENSE);
     $builder->addChild($huishoudelijke_uitgaven, 'Boodschappen', Type::EXPENSE);
     $builder->addChild($huishoudelijke_uitgaven, 'Persoonlijke verzorging', Type::EXPENSE);
     $builder->addChild($huishoudelijke_uitgaven, 'Huishoudelijke artikelen', Type::EXPENSE);
     $builder->addChild($root, 'Kleding', Type::EXPENSE);
     $woon_lasten = $builder->addChild($root, 'Huis en inrichting', Type::EXPENSE);
     $builder->addChild($woon_lasten, 'Huur / Hypotheek', Type::EXPENSE);
     $builder->addChild($woon_lasten, 'Gas, water en licht', Type::EXPENSE);
     $builder->addChild($woon_lasten, 'Inrichting', Type::EXPENSE);
     $builder->addChild($woon_lasten, 'Meubels', Type::EXPENSE);
     $builder->addChild($woon_lasten, 'Telefoon, internet en tv', Type::EXPENSE);
     $builder->addChild($woon_lasten, 'Onderhoud', Type::EXPENSE);
     $abo = $builder->addChild($root, 'Abonnementen en contributies', Type::EXPENSE);
     $builder->addChild($abo, 'Kranten en tijdschriften', Type::EXPENSE);
     $builder->addChild($abo, 'Bibliotheek', Type::EXPENSE);
     $builder->addChild($abo, 'Sport', Type::EXPENSE);
     $autokosten = $builder->addChild($root, 'Autokosten', Type::EXPENSE);
     $builder->addChild($autokosten, 'Brandstof', Type::EXPENSE);
     $builder->addChild($autokosten, 'Parkeerkosten', Type::EXPENSE);
     $builder->addChild($autokosten, 'Onderhoud', Type::EXPENSE);
     $builder->addChild($autokosten, 'Wegenbelasting', Type::EXPENSE);
     $builder->addChild($autokosten, 'Verzekering', Type::EXPENSE);
     $builder->addChild($autokosten, 'Aanschaf', Type::EXPENSE);
     $vervoer = $builder->addChild($root, 'Vervoer', Type::EXPENSE);
     $builder->addChild($vervoer, 'Fiets(onderhoud)', Type::EXPENSE);
     $builder->addChild($vervoer, 'OV Abonnement', Type::EXPENSE);
     $builder->addChild($vervoer, 'OV Chipkaart', Type::EXPENSE);
     $verzekeringen = $builder->addChild($root, 'Verzekeringen', Type::EXPENSE);
     $builder->addChild($verzekeringen, 'Inboedel en WA', Type::EXPENSE);
     $builder->addChild($verzekeringen, 'Zorgverzekering', Type::EXPENSE);
     $builder->addChild($verzekeringen, 'Uitvaartverzekering', Type::EXPENSE);
     $builder->addChild($verzekeringen, 'Reisverzekering', Type::EXPENSE);
     $zorgkosten = $builder->addChild($root, 'Zorgkosten', Type::EXPENSE);
     $hobby = $builder->addChild($root, 'Hobby', Type::EXPENSE);
     $builder->addChild($hobby, 'Boeken', Type::EXPENSE);
     $builder->addChild($hobby, 'Films en muziek', Type::EXPENSE);
     $builder->addChild($hobby, 'Muziek', Type::EXPENSE);
     $uitgaan = $builder->addChild($root, 'Vakanties & Dagjes weg', Type::EXPENSE);
     $builder->addChild($uitgaan, 'Uiteten', Type::EXPENSE);
     $builder->addChild($uitgaan, 'Dagjes weg', Type::EXPENSE);
     $builder->addChild($uitgaan, 'Vakantie', Type::EXPENSE);
     $builder->addChild($root, 'Overboekingen van/naar eigenrekeningen', Type::SUSPENSE);
     return $root;
 }