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

/**
 * PTA Show Slot Item.
 *
 * @package    PTA
 * @subpackage TSM
 * @category   Helpers
 * @author     Deon George
 * @copyright  (c) 2010 phpTSMadmin Development Team
 * @license    http://phptsmadmin.sf.net/license.html
 */
class Slot {
	private $data = array();
	private $objects = array(
		'VOLUME'=>'barcodelabel',
		'LIBVOLUME'=>'element',
	);

	public function __construct(array $slot) {
		$this->data = $slot;
	}

	public function __get($key) {
		if (isset($this->data[$key]))
			return $this->data[$key];
		// @todo Volume names may not be unique if there is more than 1 library.
		elseif (isset($this->objects[$key]))
			return ORM::factory($key,$this->__get($this->objects[$key]));
		else
			throw new Kohana_Exception('Undefined property :class:::property',array(':class'=>get_class($this),':property'=>$key));
	}

	public function __toString() {
		return $this->slot;
	}

	public function barcodelabel() {
		if ($this->LIBVOLUME->VOLUME_NAME)
			return $this->LIBVOLUME->VOLUME_NAME;
		elseif ($this->status == 'Allocated' AND $this->barcode == 'not present')
			return _('No Label');
		elseif ($this->status == 'Unallocated')
			return _('Slot Empty');
		else
			return $this->barcodelabel;
	}

	public function usage() {
		return $this->status == 'Empty' ? $this->status : $this->LIBVOLUME->volusage();
	}
}
?>
