title: Magento no increment id when order is submitted
body: <p>I've been working on an extension recently. However, I just ran into a snag, and I am wondering if I should reinstall Magento. The problem that I am running into happened yesterday. I believe that I have traced it to the root, but I don't know how to fix it. When I attempt to submit an order, after the first one has been placed, I get the following error:</p>
  
  <pre><code>There was an error processing your order. Please contact us or try 
  again later.exception 'PDOException' with message 'SQLSTATE[23000]: 
  Integrity constraint violation: 1062 Duplicate entry '' for key 
  'UNQ_INCREMENT_ID'' in 
  /Users/jmax/Documents/websites/max_magento/lib/Zend/Db/Statement/Pdo.php:228
  
  Stack trace:
  #0 /Users/jmax/Documents/websites/max_magento/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement-&gt;execute(Array)
  #1 /Users/jmax/Documents/websites/max_magento/lib/Zend/Db/Statement.php(300): Zend_Db_Statement_Pdo-&gt;_execute(Array)
  #2 /Users/jmax/Documents/websites/max_magento/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement-&gt;execute(Array)
  #3 /Users/jmax/Documents/websites/max_magento/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract-&gt;query('INSERT INTO `sa...', Array)
  #4 /Users/jmax/Documents/websites/max_magento/lib/Varien/Db/Adapter/Pdo/Mysql.php(337): Zend_Db_Adapter_Pdo_Abstract-&gt;query('INSERT INTO `sa...', Array)
  #5 /Users/jmax/Documents/websites/max_magento/lib/Zend/Db/Adapter/Abstract.php(574): Varien_Db_Adapter_Pdo_Mysql-&gt;query('INSERT INTO `sa...', Array)
  #6 /Users/jmax/Documents/websites/max_magento/app/code/core/Mage/Core/Model/Mysql4/Abstract.php(414): Zend_Db_Adapter_Abstract-&gt;insert('sales_flat_orde...', Array)
  #7 /Users/jmax/Documents/websites/max_magento/app/code/core/Mage/Sales/Model/Mysql4/Order/Abstract.php(417): Mage_Core_Model_Mysql4_Abstract-&gt;save(Object(Mage_Sales_Model_Order))
  #8 /Users/jmax/Documents/websites/max_magento/app/code/core/Mage/Core/Model/Abstract.php(318): Mage_Sales_Model_Mysql4_Order_Abstract-&gt;save(Object(Mage_Sales_Model_Order))
  #9 /Users/jmax/Documents/websites/max_magento/app/code/core/Mage/Core/Model/Resource/Transaction.php(150): Mage_Core_Model_Abstract-&gt;save()
  #10 /Users/jmax/Documents/websites/max_magento/app/code/core/Mage/Sales/Model/Service/Quote.php(183): Mage_Core_Model_Resource_Transaction-&gt;save()
  #11 /Users/jmax/Documents/websites/max_magento/app/code/core/Mage/Sales/Model/Service/Quote.php(238): Mage_Sales_Model_Service_Quote-&gt;submitOrder()
  #12 /Users/jmax/Documents/websites/max_magento/app/code/core/Mage/Checkout/Model/Type/Onepage.php(745): Mage_Sales_Model_Service_Quote-&gt;submitAll()
  #13 /Users/jmax/Documents/websites/max_magento/app/code/core/Mage/Checkout/controllers/OnepageController.php(499): Mage_Checkout_Model_Type_Onepage-&gt;saveOrder()
  #14 /Users/jmax/Documents/websites/max_magento/app/code/core/Mage/Core/Controller/Varien/Action.php(420): Mage_Checkout_OnepageController-&gt;saveOrderAction()
  #15 /Users/jmax/Documents/websites/max_magento/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(253): Mage_Core_Controller_Varien_Action-&gt;dispatch('saveOrder')
  #16 /Users/jmax/Documents/websites/max_magento/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard-&gt;match(Object(Mage_Core_Controller_Request_Http))
  #17 /Users/jmax/Documents/websites/max_magento/app/code/core/Mage/Core/Model/App.php(340): Mage_Core_Controller_Varien_Front-&gt;dispatch()
  #18 /Users/jmax/Documents/websites/max_magento/app/Mage.php(627): Mage_Core_Model_App-&gt;run(Array)
  #19 /Users/jmax/Documents/websites/max_magento/index.php(80): Mage::run('', 'store')
  #20 {main}
  </code></pre>
  
  <p>First thing I tried: I completely disabled my extension. So, it is not my extension, but maybe it caused some change in the database that caused that. I have been developing my extension using the proper coding methods (not modifying core files, and extending as opposed to overriding as much as possible).</p>
  
  <p>It appears as if the order's increment id is not being set! I went back to Mage_Eav_Model_Entity_Type -> fetchNewIncrementId (line 141), and found that it returns <code>void</code> on line 145 after finding there is not increment model:</p>
  
  <pre><code>144: if (!$this-&gt;getIncrementModel()) {
  145:    return false;
  146: }
  </code></pre>
  
  <p>And, here is the SQL query that causes the problem (obviously it is not increment id):</p>
  
  <pre><code>INSERT INTO `sales_flat_order` (`coupon_code`, `protect_code`, `shipping_description`, 
  `is_virtual`, `store_id`, `customer_id`, `base_discount_amount`, `base_grand_total`, 
  `base_shipping_amount`, `base_shipping_tax_amount`, `base_subtotal`, `base_tax_amount`,
  `base_to_global_rate`, `base_to_order_rate`, `discount_amount`, `grand_total`, 
  `shipping_amount`, `shipping_tax_amount`, `store_to_base_rate`, `store_to_order_rate`, 
  `subtotal`, `tax_amount`, `total_qty_ordered`, `customer_is_guest`, `customer_note_notify`, 
  `customer_group_id`, `gift_message_id`, `quote_id`, `base_shipping_discount_amount`, 
  `base_subtotal_incl_tax`, `shipping_discount_amount`, `subtotal_incl_tax`, `weight`, 
  `customer_dob`, `increment_id`, `applied_rule_ids`, `base_currency_code`, `customer_email`, 
  `customer_firstname`, `customer_lastname`, `customer_middlename`, `customer_prefix`, 
  `customer_suffix`, `customer_taxvat`, `discount_description`, `global_currency_code`, 
  `order_currency_code`, `remote_ip`, `shipping_method`, `store_currency_code`, `store_name`, 
  `x_forwarded_for`, `customer_note`, `created_at`, `updated_at`, `total_item_count`, 
  `customer_gender`, `hidden_tax_amount`, `base_hidden_tax_amount`, `shipping_hidden_tax_amount`, 
  `base_shipping_hidden_tax_amount`, `shipping_incl_tax`, `base_shipping_incl_tax`) VALUES (NULL, 
  'aa53a6', 'Flat Rate - Fixed', '0', '1', '4', '0', '55', '5', '0', '50', '0', '1', '1', '0', 
  '55', '5', '0', '1', '1', '50', '0', '1', '0', '1', '1', NULL, '38', '0', '50', '0', '50', 
  '1', NULL, '', '', 'USD', 'email@gmail.com', 'J', 'Max', NULL, NULL, NULL, NULL, '', 'USD', 
  'USD', '127.0.0.1', 'flatrate_flatrate', 'USD', 
  'Main Website\nMain Website Store\nDefault Store View', NULL, NULL, '2011-07-19 15:23:28', 
  '2011-07-19 15:23:28', '1', NULL, '0', '0', '0', '0', '5', '5')
  </code></pre>
  
  <p>Is there any other information that I can provide to help come to a solution? Thank you SO much!</p>
  
  <p>JMax</p>