public static function doDelete($values, ConnectionInterface $con = null)
     {
        if (null === $con) {
            $con = Propel::getServiceContainer()->getWriteConnection(PersonFunctionTableMap::DATABASE_NAME);
        }

        if ($values instanceof Criteria) {
            // rename for clarity
            $criteria = $values;
        } elseif ($values instanceof \Team\Model\PersonFunction) { // it's a model object
            // create criteria based on pk values
            $criteria = $values->buildPkeyCriteria();
        } else { // it's a primary key, or an array of pks
            $criteria = new Criteria(PersonFunctionTableMap::DATABASE_NAME);
            $criteria->add(PersonFunctionTableMap::ID, (array) $values, Criteria::IN);
        }

        $query = PersonFunctionQuery::create()->mergeWith($criteria);

        if ($values instanceof Criteria) { PersonFunctionTableMap::clearInstancePool();
        } elseif (!is_object($values)) { // it's a primary key, or an array of pks
            foreach ((array) $values as $singleval) { PersonFunctionTableMap::removeInstanceFromPool($singleval);
            }
        }

        return $query->delete($con);
    }