<?php

	/**
	 * Mit diesem Modul ist es möglich einen mindest Bestellwert festzulegen
	 * @author Daschmi
	 */
	class wpsg_mod_minrequest extends wpsg_mod_basic 
	{
		
		var $lizenz = 1;
		var $id = 3070;
		var $hilfeURL = 'http://wpshopgermany.maennchen1.de/?p=660915';
		var $version = "9.9.9";
		
		public function __construct()
		{
			
			parent::__construct();
				
			$this->name = __('Mindestbestellwert', 'wpsg');
			$this->group = __('Bestellung', 'wpsg');
			$this->desc = __('Erlaubt das festlegen eines Mindest- und Maximalbestellwertes.', 'wpsg');
			
		} // public function __construct()
		
		public function install()
		{
			
		} // public function install()
		
		public function settings_edit()
		{

			$this->shop->render(WPSG_PATH_VIEW.'/mods/mod_minrequest/settings_edit.phtml');
			
		} // public function settings_edit()
		
		public function settings_save()
		{
			
			$this->shop->update_option('wpsg_mod_minrequest_basketamount', wpsg_tf($_REQUEST['wpsg_mod_minrequest_basketamount']));
			$this->shop->update_option('wpsg_mod_minrequest_basketmaxamount', wpsg_tf($_REQUEST['wpsg_mod_minrequest_basketmaxamount']));
			
		} // public function settings_save()
		
		public function checkBasket(&$bNoErrorBasket) 
		{ 
 
			if (!$this->_checkBasketMin($this->shop->cache->getShopBasketArray()))
			{

				$this->shop->addFrontendError(wpsg_translate(
					__('Der Mindestbestellwert von #1# #2# wurde nicht erreicht.', 'wpsg'),
					wpsg_ff($this->shop->get_option('wpsg_mod_minrequest_basketamount')),
					$this->shop->get_option('wpsg_currency'))	
				);
				
				$bNoErrorBasket = false; 
				
			}		

			if (!$this->_checkBasketMax($this->shop->cache->getShopBasketArray()))
			{
			
				$this->shop->addFrontendError(wpsg_translate(
					__('Der Maximalbestellwert von #1# #2# wurde überschritten.', 'wpsg'),
					wpsg_ff($this->shop->get_option('wpsg_mod_minrequest_basketmaxamount')),
					$this->shop->get_option('wpsg_currency')
				));
			
				$bNoErrorBasket = false;
			
			}
			
		} // public function checkBasket(&$error, &$arBasket) 
		
		public function checkCheckout(&$state, &$error, &$arCheckout)
		{
		 
			// Beim speichern des Kundenprofils nicht prüfen
			if (isset($_REQUEST['wpsg_mod_kundenverwaltung_save']) || isset($_REQUEST['wpsg_mod_kundenverwaltung_register'])) return;
			
			// Im Checkout ist es logischer umgesetzt und $error wird im Fehlerfall true !
			
			$bNoErrorBasket = true;			
			$this->checkBasket($bNoErrorBasket);
			
			if ($bNoErrorBasket === false) $error = true;
			
		} // public function checkCheckout(&$state, &$error, &$arCheckout)
				
		/* Modulfunktionen */
		
		/**
		 * Überprüft den Mindestbestellwert im Warenkorb und gibt true oder false zurück
		 * @param \Array $arBasket
		 * @return \Boolean
		 */
		private function _checkBasketMin($arBasket)
		{
			 
			$check_amount = $arBasket['sum']['preis_brutto'];
			$minAmount = wpsg_tf($this->shop->get_option('wpsg_mod_minrequest_basketamount'));
			
			$bReturn = true;
			
			if ($check_amount < $minAmount)
			{
			
				$bReturn = false;
			
			}
			
			return $bReturn;
			
		} // private function _checkBasketMin($arBasket)
		
		/**
		 * Überprüft den Warenkorb auf den Maximalbestellwert		
		 */
		private function _checkBasketMax($arBasket)
		{
			
			$check_amount = $arBasket['sum']['preis_brutto'];			
			$maxAmount = wpsg_tf($this->shop->get_option('wpsg_mod_minrequest_basketmaxamount'));
				
			$bReturn = true;
							
			if (wpsg_isSizedDouble($maxAmount) && $check_amount > $maxAmount)
			{
			
				$bReturn = false;
			
			}
				
			return $bReturn;
			
		} // private function _checkBasketMax($arBasket)
		
	} // class wpsg_mod_minrequest extends wpsg_mod_basic

?>