/** * Si tengo una estructura de herencia, me devuelve un mapeo de las superclases y sus subclases que se mapean en la misma tabla. * @param $levelOneClass es una subclase directa de PO. */ public static function getMultipleTableInheritanceStructureToGenerateModel($levelOneClass) { $C = ModelUtils::getAllSubclassesOf($levelOneClass); $C[] = $levelOneClass; $struct = self::getMultipleTableInheritance($C); return $struct; }
/** * FIXME: pasarle la clase, no una instancia. */ public function countBy($ins, $condition) { Logger::getInstance()->pm_log("PM::countBy"); $objTableName = YuppConventions::tableName($ins); $params = array(); // Quiero solo los registros de las subclases y ella misma. $class = get_class($ins); $scs = ModelUtils::getAllSubclassesOf($class); $scs[] = $class; // Definicion de la condicion. $cond_total = Condition::_AND(); if (count($scs) == 1) { $cond_total->add(Condition::EQ($objTableName, "class", $scs[0])); } else { $cond = Condition::_OR(); foreach ($scs as $subclass) { $cond->add(Condition::EQ($objTableName, "class", $subclass)); } $cond_total->add($cond); } // FIXED: igual que en findByAttributeMatrix usada por findBy // Si no tiene condicion deleted, le pone deleted false. if ($condition == NULL || !$condition->hasCondForAttr('deleted')) { $cond_total->add(Condition::EQ($objTableName, "deleted", 0)); } // CRITERIO DE BUSQUEDA if ($condition != NULL) { $cond_total->add($condition); } $params['where'] = $cond_total; return $this->dal->count($objTableName, $params); }