public static function doInsert($criteria, ConnectionInterface $con = null)
    {
        if (null === $con) {
            $con = Propel::getServiceContainer()->getWriteConnection(DealerAdminTableMap::DATABASE_NAME);
        }

        if ($criteria instanceof Criteria) {
            $criteria = clone $criteria; // rename for clarity
        } else {
            $criteria = $criteria->buildCriteria(); // build Criteria from DealerAdmin object
        }

        if ($criteria->containsKey(DealerAdminTableMap::ID) && $criteria->keyContainsValue(DealerAdminTableMap::ID) ) {
            throw new PropelException('Cannot insert a value for auto-increment primary key ('.DealerAdminTableMap::ID.')');
        }


        // Set the correct dbName
        $query = DealerAdminQuery::create()->mergeWith($criteria);

        try {
            // use transaction because $criteria could contain info
            // for more than one table (I guess, conceivably)
            $con->beginTransaction();
            $pk = $query->doInsert($con);
            $con->commit();
        } catch (PropelException $e) {
            $con->rollBack();
            throw $e;
        }

        return $pk;
    }