Index: /changelog
===================================================================
--- /changelog	(revision 8501)
+++ /changelog	(revision 8502)
@@ -653,4 +653,6 @@
 
 #4.4.12
+- Feature: Gutschein Produktauswahl alphabetisch sortiert und inaktive Produkte werden nicht angezeigt
+- Feature: GutscheinÃŒbersicht neue Spalte "Produkte"
 - Feature: Exportprofile/Statistik - Export von KÃ€ufen
 - Bugfix: Exportprofile - Problem mit Feld "Anzahl Produkte" korrigiert
Index: /controller/wpsg_ShopController.class.php
===================================================================
--- /controller/wpsg_ShopController.class.php	(revision 8501)
+++ /controller/wpsg_ShopController.class.php	(revision 8502)
@@ -138,5 +138,6 @@
 
 			$this->arStatus = array(
-				self::STATUS_EINGEGANGEN => __('Eingegangen', 'wpsg'),
+				self::STATUS_EINGEGANGEN => __('Eingegangen', 'wpsg'),const STATUS_UNVOLLSTAENDIG = 2;               // Incomplete
+
 				self::STATUS_AUFTRAGAKZEPTIERT => __('Auftrag akzeptiert', 'wpsg'),
 				self::STATUS_ZAHLUNGAKZEPTIERT => __('Zahlung akzeptiert', 'wpsg'),
@@ -2745,5 +2746,5 @@
 		 * Kombination aus ID/Name fÃŒr Selectboxen
 		 */
-		public function getAllProductsForSelect()
+		public function getAllProductsForSelect($onlyInStock = false)
 		{
 
@@ -2776,4 +2777,29 @@
 
 			}
+
+			if ($onlyInStock && $this->hasMod('wpsg_mod_stock')) {
+
+				foreach (array_keys($arProducts) as $pid) {
+
+					try {
+
+						$oProd = wpsg_product::getInstance($pid);
+						$stock = $this->callMod('wpsg_mod_stock', 'getBestand', [$pid]);
+
+						if (intval($stock) <= 0 || !$oProd->canDisplay()) {
+							unset($arProducts[$pid]);
+						}
+
+					} catch (\Exception $e) {
+						unset($arProducts[$pid]);
+					}
+
+				}
+
+			}
+
+			if (is_array($arProducts)) { asort($arProducts, SORT_NATURAL | SORT_FLAG_CASE); }
+
+
 
 			return $arProducts;
@@ -4738,5 +4764,6 @@
 								{
 
-									if (!wpsg_isSizedArray(array_diff($r, $s_merge)))
+									$__tmp_diff = array_diff($r, $s_merge);
+									if (!wpsg_isSizedArray($__tmp_diff))
 									{
 
@@ -4763,5 +4790,5 @@
 								{
 
-									if (is_array($r) && !wpsg_isSizedArray(array_diff($r, $shipping1))) $bDrin = true;
+									if (is_array($r)) { $__tmp_diff2 = array_diff($r, $shipping1); if (!wpsg_isSizedArray($__tmp_diff2)) $bDrin = true; }
 
 								}
Index: /mods/wpsg_mod_gutschein.class.php
===================================================================
--- /mods/wpsg_mod_gutschein.class.php	(revision 8501)
+++ /mods/wpsg_mod_gutschein.class.php	(revision 8502)
@@ -393,6 +393,6 @@
 				
 			}
-			
-			$this->shop->view['wpsg_mod_gutschein']['arProducts'] = $this->shop->getAllProductsForSelect();
+
+			$this->shop->view['wpsg_mod_gutschein']['arProducts'] = $this->shop->getAllProductsForSelect(true);
 			
 			if (isset($_REQUEST['voucher_id'])) {
Index: /views/mods/mod_gutschein/index.phtml
===================================================================
--- /views/mods/mod_gutschein/index.phtml	(revision 8501)
+++ /views/mods/mod_gutschein/index.phtml	(revision 8502)
@@ -77,5 +77,6 @@
                             <th class="wpsg_order col_end" data-order="end_date"><?php echo __("Ende", 'wpsg'); ?></th>
                             <th class="wpsg_order col_value" data-order="value"><?php echo __("Wert", 'wpsg'); ?></th>
-                            <th class="wpsg_order col_status" data-order="status"><?php echo __("Status", 'wpsg'); ?></th>
+							<th class="wpsg_order col_product" data-order="products"><?php echo __("Produkte", 'wpsg'); ?></th>
+							<th class="wpsg_order col_status" data-order="status"><?php echo __("Status", 'wpsg'); ?></th>
                         </tr>
                     </thead>
@@ -125,4 +126,26 @@
 								
 							?></td>
+							<td class="col_product"><?php
+
+								if ($oVoucher->getAllowedProduct()) {
+
+									$arAllowed = $oVoucher->getAllowedProduct();
+									$names = [];
+
+									foreach ($arAllowed as $productID) {
+										if (!wpsg_isSizedInt($productID)) continue;
+										try {
+											$p = wpsg_product::getInstance($productID);
+											$names[] = wpsg_hspc($p->getProductName());
+										} catch (\Exception $e) {}
+									}
+									echo implode(', ', $names);
+								} else if ($oVoucher->isLimitedProductgroup()) {
+									echo __('spezielle Produktgruppen', 'wpsg');
+								} else {
+									echo __('Alle', 'wpsg');
+								}
+
+								?></td>
                             <td class="col_status">
 
