<?php

/**
 * Description of Active
 *
 * @author Arkadiusz Rychlik <a.rychlik at eppe.com.pl>
 */
trait Rtn_CRUD_Trait_Active {

	/**
	 * Zmiana znacznika aktywacji na przeciwny
	 * @param int $beanId
	 */
	public function toggleActive() {
		$beanId = func_get_arg(0);

		$bean = R::load($this->beanName, $beanId);

		$result = false; // w domyśle operacja kończy się niepowodzeniem
		if ($bean->active) {
			$reasons = $bean->whyCantBecomeInactive();
			if (!count($reasons)) {
				$result = $bean->makeInactive();
			}
			else {
				array_unshift($reasons, '<span class="error_caption"><b>' . __('Element nie może być deaktywowany z następujących przyczyn') . ':</b></span>');
			}
		}
		else {
			$reasons = $bean->whyCantBecomeActive();
			if (!count($reasons)) {
				$result = $bean->makeActive();
			}
			else {
				array_unshift($reasons, '<span class="error_caption"><b>' . __('Element nie może być aktywowany z następujących przyczyn') . ':</b></span>');
			}
		}

		return array('result' => $result, 'msg' => join('<br />', $reasons));
	}

}
