class_AspirantBC.inc.php 4.96 KB
<?php
/**
 * @file	AspirantBC.inc.php
 * @category freeSN
 * @mailto	code [at] netz.coop
 * @version 0.4.200901
 * @link http://netz.coop
 * 
 *  @copyright Copyright by netz.coop e.G. 2015
 *  
 *
 *   This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */
class AspirantBC extends BasisClipboard {

	const STATE_MASTER_ID = 10;
	const STATE_AUTHOR_ID = 11;
	const STATE_READER_ID = 12;
	const STATE_ASPIRANT = 20;

	public function post_add(Account &$param_HostAccount, iStorable &$param_iStorable, array $param_array){

		if(array_key_exists('State',$param_array)){
			if($param_array['State'])
				$state=$param_array['State'][0];
			else
				$state=AspirantBC::STATE_ASPIRANT;
		}

		if(array_key_exists('MTextID',$param_array)){
			$this->loadPartOf($param_HostAccount, $param_iStorable);
			foreach($param_array['MTextID'] as $value){
				if($value){
					$valueArray=preg_split('/,\s|;\s|,|;|\s/',$value);
					foreach($valueArray as $valueID){
						//toDo Error Meldung wenn schon eingetragen

						if(!$this->PartOf->getClipboard($param_HostAccount, $param_iStorable, 'MemberProfileBC')->isAttached($valueID)){
							if(!$this->isAttached($valueID)){	
								if(!is_subclass_of($this->add($param_HostAccount, $param_iStorable,	$valueID,$state),'Error')){
	
									//Eintragen in GrouProfileBC
									$profile_BasisElement =& MultimediaText::loadElement($param_HostAccount, $param_iStorable,null, $valueID);
	
									if(is_object($profile_BasisElement)){
										$var_GroupBC = $profile_BasisElement->getClipboard($param_HostAccount, $param_iStorable, 'GroupProfileBC');
										if(!$var_GroupBC->isAttached($this->PartOfID)){
											$var_GroupBC->add($param_HostAccount, $param_iStorable,	$this->PartOfID, 4);
										}
									}
									//Antrag gestellt
									Message::newMessage('post_add', $this->ThisClassName,'Profile',array('state'=>'aspirant'));
								}
							}
							else{
								//	schon angefragt Error!!!
								Message::newMessage('post_exist', $this->ThisClassName,'Profile');
							}	
						}
						else{
							//schon angefragt Error!!!
							Message::newMessage('post_exist', 'MemberProfileBC','Profile');
						}
					}
				}
			}
		}
	}
	public function post_deny(Account &$param_HostAccount, iStorable &$param_iStorable, array $param_array){

		if(array_key_exists('MTextID',$param_array)){
			$this->loadPartOf($param_HostAccount, $param_iStorable);
			foreach($param_array['MTextID'] as $value){
				if($value){
					$valueArray=preg_split('/,\s|;\s|,|;|\s/',$value);
					foreach($valueArray as $valueID){
						if(!is_subclass_of($this->remove($param_HostAccount, $param_iStorable, $valueID),'Error')){

							//Austragen aus GroupProfileBC
							$profile_BasisElement =& MultimediaText::loadElement($param_HostAccount, $param_iStorable,null, $valueID);
							if(is_object($profile_BasisElement)){
									$profile_BasisElement->getClipboard($param_HostAccount, $param_iStorable, 'GroupProfileBC')->remove($param_HostAccount, $param_iStorable,$this->PartOfID);
							}
							//abgelehnt
							Message::newMessage('post_deny', $this->ThisClassName,'Profile');							
						}
					}
				}
			}
		}
	}
	/**
	 * adds BEs to an specific BC and removes the BEs from this BC
	 *
	 * @param array $param_array State = {0 => State}, MTextID {0=>ID}, AddTOBC{0=>BCName}
	 */
	public function post_confirm(Account &$param_HostAccount, iStorable &$param_iStorable, array $param_array){
		if(array_key_exists('State',$param_array) && array_key_exists(0,$param_array['State'])){
			if($param_array['State'] and $param_array['State'][0]!= AspirantBC::STATE_ASPIRANT)
				$state=$param_array['State'][0];
			else
				$state=AspirantBC::STATE_READER_ID;
		}
		if(array_key_exists('MTextID',$param_array) && array_key_exists('AddToBC',$param_array)){
			$this->loadPartOf($param_HostAccount, $param_iStorable);
			foreach($param_array['MTextID'] as $value){
				if($value){
					$valueArray=preg_split('/,\s|;\s|,|;|\s/',$value);
					foreach($valueArray as $valueID){
						if(!is_subclass_of($this->PartOf->getClipboard($param_HostAccount, $param_iStorable, $param_array['AddToBC'][0])->add($param_HostAccount, $param_iStorable, $valueID,$state),'Error')){
							$this->remove($param_HostAccount, $param_iStorable, $valueID);
							Message::newMessage('post_confirm', $param_array['AddToBC'][0],'Profile',array('state'=> $this->getStateName($param_iStorable, $state)));
						}
					}
				}
			}
		}		
	}
}

?>