<?php defined('SYSPATH') or die('No direct access allowed.');

/**
 *
 * @package    OSB
 * @category   Models
 * @author     Deon George
 * @copyright  (c) 2009-2013 Open Source Billing
 * @license    http://dev.osbill.net/license.html
 */
class Model_Record_ID extends ORM_OSB {
	protected $_primary_key = 'module_id';

	// This module doesnt keep track of column updates automatically
	protected $_created_column = FALSE;
	protected $_updated_column = FALSE;

	public function next_id($mid) {
		if (is_null($this->id)) {
			$this->module_id = $mid;

			// We'll get the next ID as the MAX(id) of the table
			$mo = ORM::factory('Module',$mid);

			$max = DB::select(array('MAX(id)','id'))
				->from($mo->name)
				->where('site_id','=',Company::instance()->site());

			$this->id = $max->execute()->get('id');
		}

		$this->id++;

		if (! $this->save())
			throw HTTP_Exception::factory(501,'Unable to increase ID for :table',array(':table'=>$mid));

		return $this->id;
	}
}
?>
