public function generateEnumToEntity($nameMethod = null, $overwrite = false) { $entity = $this->getEntityName(); $array = explode('\\', $entity); $file = 'E' . $array[count($array) - 1] . '.php'; // $dir = __DIR__."/Enums/$file"; $kernel = UtilRepository2::getContainer()->get('kernel'); $dir = $kernel->locateResource("@ComunBundle/Enums/" . $file); // ldd($dir); $objs = $this->findAll(); $enum = "<?php \n namespace backend\\ComunBundle\\Enums;\n class " . 'E' . $array[count($array) - 1] . "{\n"; $class = "backend\\ComunBundle\\Enums\\" . $array[count($array) - 1]; $enumsIds = array(); if ($overwrite === false && class_exists($class)) { $enumsIds = $this->getEnumIds($class); } foreach ($objs as $obj) { if ($overwrite === false) { if (in_array($obj->getId(), $enumsIds)) { $row = $this->createRowFromExisting($this->getConstNameByValue($class, $obj->getId()), $obj->getId()); } else { $row = $this->createRow($obj, null, $nameMethod); } $enum .= $row; } else { $row = $this->createRow($obj, $array[count($array) - 1], $nameMethod); $enum .= $row; } } $enum .= "} \n ?>"; $r = file_put_contents($dir, $enum); return $r; }
public function obtenerMenusPadresXUsuarioLogueado() { $markedPadres = array(); $hojas = $this->obtenerHojas(); for ($i = 0; $i < count($hojas); $i++) { // ld($hojas[$i]->getId()); if (UtilRepository2::getContainer()->get('security.context')->isGranted($hojas[$i]->getPermiso()) && $hojas[$i]->getId() != -1 && !array_key_exists($hojas[$i]->getPadre()->getId(), $markedPadres)) { $markedPadres[$hojas[$i]->getPadre()->getId()] = $hojas[$i]->getPadre()->getId(); $padre = $hojas[$i]->getPadre(); while ($padre->getId() != -1 && !array_key_exists($padre->getPadre()->getId(), $markedPadres)) { $markedPadres[$padre->getPadre()->getId()] = $padre->getPadre()->getId(); $padre = $padre->getPadre(); } } } return array_keys($markedPadres); // UtilRepository2::getContainer()->get('security.context')->isGranted() }
/** * @return NomencladoresRepository */ protected function getRepo($entity = null) { if (!$entity) { return UtilRepository2::getContainer()->get('doctrine.orm.entity_manager')->getRepository($this->entity); } else { return UtilRepository2::getContainer()->get('doctrine.orm.entity_manager')->getRepository($entity); } }
/** * @author Franlin Rivero Grcia <*****@*****.**> * @param string $key * @param type $fields * @param \Doctrine\ORM\Mapping\ClassMetadata $meta * @param QueryBuilder $qb * @param type $asoc */ public static function fieldFilter($class, &$filters, &$fields, &$asoc, &$meta, &$qb) { if (array_key_exists('select', $filters)) { $qb->select($filters['select']); unset($filters['select']); } $fTemp = json_decode(UtilRepository2::getContainer()->get('request')->get('filters')); if (is_array($fTemp)) { if (!(is_array($filters) && count($filters) > 0 || !is_array($filters) && $filters != null)) { $filters = $fTemp; } } if ($filters == null) { $filters = array(); } if (!is_array($filters)) { $filters = array($filters); } foreach ($filters as $key => $value) { if ($value !== null && $value !== '') { if (in_array($key, $fields)) { $map = $meta->getFieldMapping($key); if ($map['type'] == 'string' || $map['type'] == 'text' || $map['type'] == 'varchar') { if (UtilRepository2Config::$defaultStringComparer == 'like') { $qb->andWhere("lower({$class}.{$key}) like :{$key}"); if (strpos($value, '%') === false) { $qb->setParameter($key, "%" . strtolower($value) . "%"); } else { $qb->setParameter($key, strtolower($value)); } } else { if (is_array($value)) { $op = $value[0]; $qb->andWhere("lower({$class}.{$key}) {$op} :{$key}"); $qb->setParameter($key, strtolower($value[1])); } else { $qb->andWhere("lower({$class}.{$key}) = :{$key}"); $qb->setParameter($key, strtolower($value)); } } } else { if (is_array($value)) { $op = $value[0]; if ($op == 'in') { $qb->andWhere("{$class}.{$key} {$op} (:{$key})"); $qb->setParameter($key, $value[1]); } elseif ($op == 'is') { $qb->andWhere("{$class}.{$key} is null"); } else { $qb->andWhere("{$class}.{$key} {$op} :{$key}"); $qb->setParameter($key, strtolower($value[1])); } } else { $qb->andWhere("{$class}.{$key} = :{$key}"); $qb->setParameter($key, $value); } } } elseif (in_array($key, $asoc)) { if (is_array($value)) { $op = $value[0]; if ($op == 'is') { $qb->andWhere("{$class}.{$key} is null"); } } else { $qb->andWhere("{$class}.{$key} = :{$key}"); $qb->setParameter($key, $value); } } else { $op = UtilRepository2Config::$defaultForeignCompareOperator; $param = str_replace(".", '', $key); if (!is_array($value)) { if ($op == 'like') { $qb->andWhere("lower({$key}) {$op} :{$param}"); } else { $qb->andWhere("{$key} {$op} :{$param}"); } if ($op == 'like') { if (strpos($value, '%') === false) { $qb->setParameter($param, "%" . strtolower($value) . "%"); } else { $qb->setParameter($param, strtolower($value)); } } else { $qb->setParameter($param, $value); } } else { if ($value[0] == 'like') { $qb->andWhere("lower({$key}) {$value['0']} :{$param}"); } elseif ($value[0] == 'in') { $qb->andWhere("{$key} {$value['0']} (:{$param})"); } else { $qb->andWhere("{$key} {$value['0']} :{$param}"); } if ($value[0] == 'like') { if (strpos($value[1], '%') === false) { $qb->setParameter($param, "%" . strtolower($value[1]) . "%"); } else { $qb->setParameter($param, strtolower($value[1])); } } else { $qb->setParameter($param, $value[1]); } } } } } if (array_key_exists('start', $filters) && array_key_exists('limit', $filters) && $filters['start'] != null && $filters['limit'] != null) { $total = UtilRepository2::getTotalResult($qb, $class); $start = $filters['start']; $limit = $filters['limit']; $limit = $limit == -1 ? $total : $limit; unset($filters['start']); unset($filters['limit']); UtilRepository2::getSession()->set("total", $total); $qb->setFirstResult($start); $qb->setMaxResults($limit); } else { $start = UtilRepository2::getContainer()->get('request')->get('iDisplayStart'); $size = UtilRepository2::getContainer()->get('request')->get('iDisplayLength'); if ($start !== null && $size !== null) { $total = UtilRepository2::getTotalResult($qb, $class); $size = $size == -1 ? $total : $size; if ($start != null && $size != null) { UtilRepository2::getSession()->set("total", $total); $qb->setFirstResult($start); $qb->setMaxResults($size); } } } }
/** * @return NomencladoresRepository */ public static function getRepo($entity) { return \backend\ComunBundle\Util\UtilRepository2::getContainer()->get('doctrine.orm.entity_manager')->getRepository($entity); }