Index: /controller/wpsg_BasketController.class.php
===================================================================
--- /controller/wpsg_BasketController.class.php	(revision 7185)
+++ /controller/wpsg_BasketController.class.php	(revision 7186)
@@ -623,86 +623,108 @@
 						{
 							
-							// Gutschein ist von der grÃ¶Ãe des Warenkorbes begrenzt.
-							if (wpsg_tf($gs_db['minvalue']) > 0 && wpsg_tf($gs_db['minvalue']) > $arBasket['sum']['preis'])
-							{
-								
-								$this->addFrontendError(wpsg_translate(__('Dieser Gutscheincode kann nicht eingelÃ¶st werden, da der Mindestbestellwert von #1# noch nicht erreicht ist.', 'wpsg'), wpsg_ff(wpsg_tf($gs_db['minvalue']), $this->shop->get_option('wpsg_currency'))));
-								$_SESSION['wpsg']['errorFields'][] = 'gutschein';
+							$bCheckDiscount = true;
+							
+							if ($this->shop->get_option('wpsg_mod_discount_voucher') === '1') {
+																
+								if ($this->shop->callMod('wpsg_mod_discount', 'hasDiscount', [$arBasket]) === true) $bDiscount = true;
+								else $bDiscount = false;
+								 								
+								if ($bDiscount) {
+									
+									$this->addFrontendError(__('Dieser Gutscheincode kann nicht eingelÃ¶st werden, da bereits Rabatte angerechnet sind.', 'wpsg'));
+									$_SESSION['wpsg']['errorFields'][] = 'gutschein';
+									
+									$bCheckDiscount = false;
+									
+								}
 								
 							}
-							else
-							{
-							
-								$this->shop->basket->initFromSession();
-								$arProductIDsBasket = $this->shop->basket->getProductIDs();
-								
-								$wrongProducts = array();
-								
-								// ProduktgÃŒltigkeit prÃŒfen
-								$tarr = wpsg_explode(',', $gs_db['products']);
-								if (wpsg_isSizedArray($tarr))
+							 							
+							if ($bCheckDiscount) {
+							
+								// Gutschein ist von der grÃ¶Ãe des Warenkorbes begrenzt.
+								if (wpsg_tf($gs_db['minvalue']) > 0 && wpsg_tf($gs_db['minvalue']) > $arBasket['sum']['preis'])
 								{
 									
-									if (sizeof(array_diff($arProductIDsBasket, wpsg_explode(',', $gs_db['products']))) > 0)
+									$this->addFrontendError(wpsg_translate(__('Dieser Gutscheincode kann nicht eingelÃ¶st werden, da der Mindestbestellwert von #1# noch nicht erreicht ist.', 'wpsg'), wpsg_ff(wpsg_tf($gs_db['minvalue']), $this->shop->get_option('wpsg_currency'))));
+									$_SESSION['wpsg']['errorFields'][] = 'gutschein';
+									
+								}
+								else
+								{
+								
+									$this->shop->basket->initFromSession();
+									$arProductIDsBasket = $this->shop->basket->getProductIDs();
+									
+									$wrongProducts = array();
+									
+									// ProduktgÃŒltigkeit prÃŒfen
+									$tarr = wpsg_explode(',', $gs_db['products']);
+									if (wpsg_isSizedArray($tarr))
 									{
 										
-										$wrongProducts = array_diff($arProductIDsBasket, wpsg_explode(',', $gs_db['products']));
+										if (sizeof(array_diff($arProductIDsBasket, wpsg_explode(',', $gs_db['products']))) > 0)
+										{
+											
+											$wrongProducts = array_diff($arProductIDsBasket, wpsg_explode(',', $gs_db['products']));
+											
+										}
 										
 									}
 									
-								}
-								
-								// ProduktgruppengÃŒltigkeit prÃŒfen
-								$tarr = wpsg_explode(',', $gs_db['productgroups']);
-								if (wpsg_isSizedArray($tarr))
-								{
-									
-									$ProductGroupIDs = wpsg_explode(',', $gs_db['productgroups']);
-									
-									$arProductIDs = $this->db->fetchAssocField("
-										SELECT P.`id` FROM `".WPSG_TBL_PRODUCTS."` AS P WHERE P.`pgruppe` IN (".wpsg_implode(',', $ProductGroupIDs).")
-									");
-									
-									if (sizeof(array_diff($arProductIDsBasket, $arProductIDs)) > 0)
+									// ProduktgruppengÃŒltigkeit prÃŒfen
+									$tarr = wpsg_explode(',', $gs_db['productgroups']);
+									if (wpsg_isSizedArray($tarr))
 									{
 										
-										$wrongProducts = array_merge($wrongProducts, array_diff($arProductIDsBasket, $arProductIDs));
+										$ProductGroupIDs = wpsg_explode(',', $gs_db['productgroups']);
+										
+										$arProductIDs = $this->db->fetchAssocField("
+											SELECT P.`id` FROM `".WPSG_TBL_PRODUCTS."` AS P WHERE P.`pgruppe` IN (".wpsg_implode(',', $ProductGroupIDs).")
+										");
+										
+										if (sizeof(array_diff($arProductIDsBasket, $arProductIDs)) > 0)
+										{
+											
+											$wrongProducts = array_merge($wrongProducts, array_diff($arProductIDsBasket, $arProductIDs));
+											
+										}
 										
 									}
-									
-								}
-															
-								if (wpsg_isSizedArray($wrongProducts))
-								{
-									
-									if (sizeof($wrongProducts) === 1)
+																
+									if (wpsg_isSizedArray($wrongProducts))
 									{
 										
-										$product = $this->shop->loadProduktArray($wrongProducts[0]);
-										$this->addFrontendError(wpsg_translate(__('Gutschein konnte nicht hinzugefÃŒgt werden, da er fÃŒr das Produkt #1# nicht zulÃ€ssig ist.', 'wpsg'), $product['name']));		
+										if (sizeof($wrongProducts) === 1)
+										{
+											
+											$product = $this->shop->loadProduktArray($wrongProducts[0]);
+											$this->addFrontendError(wpsg_translate(__('Gutschein konnte nicht hinzugefÃŒgt werden, da er fÃŒr das Produkt #1# nicht zulÃ€ssig ist.', 'wpsg'), $product['name']));		
+											
+										}
+										else
+										{
 										
+											$arProductNames = array();
+											foreach ($wrongProducts as $product_id)
+											{
+												
+												$product_data = $this->shop->loadProduktArray($product_id);
+												$arProductNames[] = $product_data['name'];
+												
+											}
+											
+											$this->addFrontendError(wpsg_translate(__('Gutschein konnte nicht hinzugefÃŒgt werden, da er fÃŒr die Produkte #1# nicht zulÃ€ssig ist.', 'wpsg'), wpsg_implode(', ', $arProductNames)));
+											
+										}
+											
 									}
 									else
 									{
-									
-										$arProductNames = array();
-										foreach ($wrongProducts as $product_id)
-										{
-											
-											$product_data = $this->shop->loadProduktArray($product_id);
-											$arProductNames[] = $product_data['name'];
-											
-										}
-										
-										$this->addFrontendError(wpsg_translate(__('Gutschein konnte nicht hinzugefÃŒgt werden, da er fÃŒr die Produkte #1# nicht zulÃ€ssig ist.', 'wpsg'), wpsg_implode(', ', $arProductNames)));
+		
+										$this->addFrontendMessage(__('Gutschein wurde der Bestellung erfolgreich hinzugefÃŒgt.', 'wpsg'));							
+										$this->shop->basket->addGutscheinToSession($gs_db['value'], $gs_db['calc_typ'], $gs_db['code'], $gs_db['id']);
 										
 									}
-										
-								}
-								else
-								{
-	
-									$this->addFrontendMessage(__('Gutschein wurde der Bestellung erfolgreich hinzugefÃŒgt.', 'wpsg'));							
-									$this->shop->basket->addGutscheinToSession($gs_db['value'], $gs_db['calc_typ'], $gs_db['code'], $gs_db['id']);
 									
 								}
Index: /controller/wpsg_ShopController.class.php
===================================================================
--- /controller/wpsg_ShopController.class.php	(revision 7185)
+++ /controller/wpsg_ShopController.class.php	(revision 7186)
@@ -203,5 +203,5 @@
                  
                 $arCustomerID = $this->db->fetchAssoc($strQuery);
-                 wpsg_debug($arCustomerID);               
+                               
                 foreach ($arCustomerID as $row_c) {
                     
Index: /mods/wpsg_mod_discount.class.php
===================================================================
--- /mods/wpsg_mod_discount.class.php	(revision 7185)
+++ /mods/wpsg_mod_discount.class.php	(revision 7186)
@@ -437,5 +437,29 @@
 
 		/* Modulfunktionen */
-
+		
+		/**
+		 * Gibt true zurÃŒck, wenn auf dem Basket ein Rabatt vorhanden ist
+		 * @param $arBasket
+		 */
+		public function hasDiscount($arBasket) {
+			 
+			// Produktrabatt
+			foreach ($arBasket['produkte'] as $p) {
+				
+				if (wpsg_tf($p['discount_value']) > 0) { return true; }
+				
+			}
+			
+			// Warenkorbrabatt
+			if (wpsg_tf($arBasket['sum']['preis_rabatt_netto']) > 0) {
+				
+				return true;
+				
+			}
+				
+			return false;
+			
+		} // public function hasDiscount($arBasket)
+		
 		private function cmp($a, $b)
 		{
@@ -804,5 +828,5 @@
 			if (!isset($product_data['preis_netto_prediscount'])) $product_data['preis_netto_prediscount'] = $product_data['preis_netto'];
 			if (!isset($product_data['preis_brutto_prediscount'])) $product_data['preis_brutto_prediscount'] = $product_data['preis_brutto'];
-			wpsg_debug("::".$product_data['preis_prediscount']);
+			
 			if ($discount_min_price && !isset($product_data['min_preis_prediscount'])) $product_data['min_preis_prediscount'] = $product_data['min_preis'];
 			if ($discount_max_price && !isset($product_data['max_preis_prediscount'])) $product_data['max_preis_prediscount'] = $product_data['max_preis'];
Index: /mods/wpsg_mod_gutschein.class.php
===================================================================
--- /mods/wpsg_mod_gutschein.class.php	(revision 7185)
+++ /mods/wpsg_mod_gutschein.class.php	(revision 7186)
@@ -834,5 +834,14 @@
 
 			if ($gs_db['id'] != $_SESSION['wpsg']['gs']['id']) throw new \wpsg\Exception(__('In der Session befindet sich eine Gutschein ID, die es nicht in der Datenbank gibt', 'wpsg'));
-
+ 
+			if ($this->shop->get_option('wpsg_mod_discount_voucher') === '1' && $this->shop->callMod('wpsg_mod_discount', 'hasDiscount',[$arBasket])) {
+				
+				$this->shop->addFrontendError(wpsg_translate(__('Gutschein wurde entfernt, da ein Rabatt angewendet wurde.', 'wpsg')));
+				unset($_SESSION['wpsg']['gs']);
+				
+				return false;
+				
+			} 
+							
 			if (wpsg_tf($gs_db['minvalue']) > 0 && ($arBasket['sum']['preis'] + $arBasket['sum']['gs']) < $gs_db['minvalue'])
 			{
Index: /views/mods/mod_discount/settings_edit.phtml
===================================================================
--- /views/mods/mod_discount/settings_edit.phtml	(revision 7185)
+++ /views/mods/mod_discount/settings_edit.phtml	(revision 7186)
@@ -11,4 +11,5 @@
         <li role="presentation" class="active"><a href="#tab1" aria-controls="home" role="tab" data-toggle="tab"><?php echo __('Produktrabatt', 'wpsg'); ?></a></li>
         <li role="presentation"><a href="#tab2" aria-controls="profile" role="tab" data-toggle="tab"><?php echo __('Warenkorbrabatt', 'wpsg'); ?></a></li>
+		<li role="presentation"><a href="#tab3" aria-controls="profile" role="tab" data-toggle="tab"><?php echo __('Optionen', 'wpsg'); ?></a></li>
     </ul>
     <div class="tab-content">
@@ -53,11 +54,4 @@
 
             <?php echo wpsg_drawForm_TextEnd(__('Rabattreihenfolge (fÃŒr Berechnung)', 'wpsg'), array('noP' => true)); ?>
-
-            <br />
-
-            <?php echo wpsg_drawForm_Checkbox('wpsg_mod_discount_stopRabatt', __('Nur ersten Rabatt berÃŒcksichtigen', 'wpsg'), $this->get_option('wpsg_mod_discount_stopRabatt'), array('label' => __('Optionen', 'wpsg'))); ?>
-            <?php echo wpsg_drawForm_Checkbox('wpsg_mod_discount_showBasket', __('NÃ€chste Staffelung im Warenkorb anpreisen', 'wpsg'), $this->get_option('wpsg_mod_discount_showBasket'), array('help' => 'wpsg_mod_discount_showBasket')); ?>
-
-        	<?php echo wpsg_drawForm_Checkbox('wpsg_mod_discount_voucher', __('Gutscheine bei aktivem Rabatt nicht zulassen', 'wpsg'), $this->get_option('wpsg_mod_discount_voucher'), array('help' => 'wpsg_mod_discount_voucher')); ?>
         
         </div>
@@ -89,4 +83,11 @@
 
         </div>
+		<div role="tabpanel" class="tab-pane" id="tab3">
+			 
+			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_discount_stopRabatt', __('Nur ersten Rabatt berÃŒcksichtigen', 'wpsg'), $this->get_option('wpsg_mod_discount_stopRabatt')); ?>
+			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_discount_showBasket', __('NÃ€chste Staffelung im Warenkorb anpreisen', 'wpsg'), $this->get_option('wpsg_mod_discount_showBasket'), array('help' => 'wpsg_mod_discount_showBasket')); ?>			
+			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_discount_voucher', __('Gutscheine bei aktivem Rabatt nicht zulassen', 'wpsg'), $this->get_option('wpsg_mod_discount_voucher'), array('help' => 'wpsg_mod_discount_voucher')); ?>
+			
+		</div>
     </div>
 </div>
Index: /views/mods/mod_gutschein/basket_row_end.phtml
===================================================================
--- /views/mods/mod_gutschein/basket_row_end.phtml	(revision 7185)
+++ /views/mods/mod_gutschein/basket_row_end.phtml	(revision 7186)
@@ -8,21 +8,14 @@
 <br />
 <div class="basket_sum_row">
-	<?php /* TODO: Kunden bereits ÃŒber das Widget eingeloggt (Kundengruppenrabatt)? */ ?>
-	<?php if ($this->hasMod('wpsg_mod_discount') && ($this->get_option('wpsg_mod_discount_voucher') == 1)) { ?>
 		
-		<?php echo __('Aufgrund einer Rabattaktion ist das HinzufÃŒgen eines Gutscheines nicht mÃ¶glich', 'wpsg'); ?>
+	<div class="codegs">
+		<label class="codegsf" for="wpsg_gutschein_input"><?php echo __('Gutscheincode:', 'wpsg'); ?></label>
+	</div>
+	<div class="codegsl">
+		<input id="wpsg_gutschein_input" class="wpsg_gutschein_input <?php echo ((in_array("gutschein", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" name="wpsg[gutschein]" value="" />
+	</div>
+	<div class="codegsr">
+		<input class="wpsg_button wpsg_gutschein_add" type="submit" name="wpsg_gutschein_add" value="<?php echo '&nbsp;'.__('EinlÃ¶sen', 'wpsg').'&nbsp;'; ?>" />
+	</div>
 		
-	<?php } else {?>
-	
-		<div class="codegs">
-			<label class="codegsf" for="wpsg_gutschein_input"><?php echo __('Gutscheincode:', 'wpsg'); ?></label>
-		</div>
-		<div class="codegsl">
-			<input id="wpsg_gutschein_input" class="wpsg_gutschein_input <?php echo ((in_array("gutschein", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" name="wpsg[gutschein]" value="" />
-		</div>
-		<div class="codegsr">
-			<input class="wpsg_button wpsg_gutschein_add" type="submit" name="wpsg_gutschein_add" value="<?php echo '&nbsp;'.__('EinlÃ¶sen', 'wpsg').'&nbsp;'; ?>" />
-		</div>
-	
-	<?php }?>	
 </div>
