Index: /controller/wpsg_AdminController.class.php
===================================================================
--- /controller/wpsg_AdminController.class.php	(revision 6020)
+++ /controller/wpsg_AdminController.class.php	(revision 6030)
@@ -1384,5 +1384,4 @@
 		} // public function sendMailAction()
 		
-		
 		/**
 		 * Wird aufgerufen wenn die Produkte bearbeitet werden
Index: /mods/wpsg_mod_creditcard.class.php
===================================================================
--- /mods/wpsg_mod_creditcard.class.php	(revision 6020)
+++ /mods/wpsg_mod_creditcard.class.php	(revision 6030)
@@ -262,5 +262,8 @@
 			$k = 2;
 			for ($i = 14; $i >= 0; $i--) {
-				$sum = $sum + $k * intval(substr($knr, $i, 1), 10);
+				$dig = $k * intval(substr($knr, $i, 1), 10);
+				if ($dig > 9) { $dig = $dig - 9;}
+				$sum = $sum + $dig;
+				//$sum = $sum + $k * intval(substr($knr, $i, 1), 10);
 				if ($k == 2) { $k = 1; } else { $k = 2; }
 			}
Index: /mods/wpsg_mod_statistics.class.php
===================================================================
--- /mods/wpsg_mod_statistics.class.php	(revision 6020)
+++ /mods/wpsg_mod_statistics.class.php	(revision 6030)
@@ -66,5 +66,6 @@
 			
 			$this->shop->checkDefault('wpsg_mod_statistics_status', implode(',', array(100, 110)));
-
+			$this->shop->checkDefault('wpsg_mod_statistics_productinterval', '30');
+				
 			/**
 			 * Produkttabelle fÃŒr Kundenkarte erweitern
@@ -699,5 +700,6 @@
 
 			$this->shop->update_option('wpsg_mod_statistics_googlekey', $_REQUEST['wpsg_mod_statistics_googlekey']);
-			
+			$this->shop->update_option('wpsg_mod_statistics_productinterval', $_REQUEST['wpsg_mod_statistics_productinterval']);
+				
 		}
 		
@@ -828,4 +830,118 @@
 		}
 		
+		/*
+		 * Abrufen der Statistikdaten im Produktbackend an
+		 */
+		private function getOrderData()
+		{
+			$sql = "SELECT `".WPSG_TBL_ORDER."`.`id`, `".WPSG_TBL_KU."`.`email`, `".WPSG_TBL_ADRESS."`.`name`, `".WPSG_TBL_ADRESS."`.`vname`, `".WPSG_TBL_ADRESS."`.`tel`, `".WPSG_TBL_ORDER."`.`cdate`, `".WPSG_TBL_ORDERPRODUCT."`.`menge` FROM `".WPSG_TBL_ORDER."` AS `".WPSG_TBL_ORDER."`, `".WPSG_TBL_ORDERPRODUCT."` AS `".WPSG_TBL_ORDERPRODUCT."`, `".WPSG_TBL_KU."` AS `".WPSG_TBL_KU."`, `".WPSG_TBL_ADRESS."` AS `".WPSG_TBL_ADRESS."` ";
+			$sql .= " WHERE (`".WPSG_TBL_ORDER."`.`id` = `".WPSG_TBL_ORDERPRODUCT."`.`o_id`) AND (`".WPSG_TBL_ORDER."`.`k_id` = `".WPSG_TBL_KU."`.`id`) AND (`".WPSG_TBL_ADRESS."`.`id` = `".WPSG_TBL_ORDER."`.`adress_id`)";
+			//$sql .= " AND (`wp_wpsg_order`.`cdate` > {d '2017-01-01' }) AND (`wp_wpsg_order`.`cdate` < {d '2017-01-31' })";
+				
+			$pid = $_REQUEST['edit_id'];
+			$sql .= " AND (`".WPSG_TBL_ORDERPRODUCT."`.`p_id`='".$pid."')";
+			
+			if (isset($_REQUEST['von']))
+			{
+				$von = wpsg_toDate( $_REQUEST['von']);
+				$sql .= " AND (`".WPSG_TBL_ORDER."`.`cdate` > '".$von."')";
+			}
+			
+			if (isset($_REQUEST['bis']))
+			{
+				$bis = wpsg_toDate( $_REQUEST['bis']);
+				$sql .= " AND (`".WPSG_TBL_ORDER."`.`cdate` < '".$bis."')";
+			}
+				
+			$odata = $this->db->fetchAssoc($sql);
+		
+			$sum = 0.0;
+			foreach ($odata as $k => $p)
+			{
+				$sum += $p['menge'];
+			}
+			$odata['sum'] = $sum;
+			$this->shop->view['odata'] = $odata;
+		
+		}
+		
+		/*
+		 * Aktualisieren der Statistik im Produktbackend an
+		 */
+		public function aktualisierenRedirect()
+		{
+			
+			//die('aktualisierenRedirect');
+			$this->getOrderData();
+			
+			if ($this->shop->view['odata']['sum'] == 0)
+			{
+				//return 'Keine Daten vorhanden.';
+			}
+				
+			$this->shop->render(WPSG_PATH_VIEW.'/mods/mod_statistics/statisticProduct.phtml');
+			exit;
+			
+		}
+
+		/*
+		 * Exportieren und Download der Statistik im Produktbackend
+		 */
+		public function exportRedirect()
+		{
+			$mb = new wpsg_mod_basic();
+			$path = $mb->getTmpFilePath();
+		
+			$this->getOrderData();
+				
+			unset($this->shop->view['odata']['sum']);
+		
+			$fp = fopen($path.'/wpsg_productStatistic.csv', 'w');
+			fputcsv($fp, array_keys($this->shop->view['odata'][0]), ';');
+			foreach ($this->shop->view['odata'] as $e)
+			{
+					
+				// ZeilenumbrÃŒche entfernen
+				if (get_option('wpsg_impexp_clearlinebreak') === '1')
+				{
+					foreach ($e as $k => $v) { $e[$k] = preg_replace('/\r|\n/', '', $v); }
+				}
+					
+				fputcsv($fp, $e, ';', '"');
+					
+			}
+			fclose($fp);
+				
+			wpsg_header::startDownloadContent('exp.csv', file_get_contents($path.'/wpsg_productStatistic.csv'));
+				
+			die();
+		
+		}
+	
+		/*
+		 * zeigt die Statistik im Produktbackend an
+		 */
+		public function product_addedit_content(&$product_content, &$product_data)
+		{
+
+			// Nur fÃŒr angelegte Produkte (Shop V3)
+			//if ($produkt_data['id'] <= 0) return false;
+			
+			$int = $this->shop->get_option('wpsg_mod_statistics_productinterval');
+			
+			unset($_SESSION['filter']['statistik']);
+			$_REQUEST['von'] = Date('d.m.Y', strtotime('-'.$int.' days'));
+			$_REQUEST['bis'] = Date('d.m.Y');
+			
+			$this->getOrderData();
+				
+			$product_content['wpsg_mod_statistikproduct'] = array(
+					'title' => __('Statistik', 'wpsg'),
+					'content' => $this->shop->render(WPSG_PATH_VIEW.'/mods/mod_statistics/produkt_edit_sidebar.phtml', false)
+			);
+		
+		} //public function product_addedit_content(&$product_content, &$product_data)
+		
+		
 	}
 
Index: /views/mods/mod_creditcard/paymenthint.phtml
===================================================================
--- /views/mods/mod_creditcard/paymenthint.phtml	(revision 6020)
+++ /views/mods/mod_creditcard/paymenthint.phtml	(revision 6030)
@@ -139,5 +139,8 @@
 	if (!(((a1 === "4") && (typ === "VISA")) || ((a1 === "5") && (typ === "MasterCard")))) { bb = false; }
 	for (i = 14; i >= 0; i--) {
-		sum = sum + k * parseInt(knr.substr(i, 1), 10);
+        dig = k * parseInt(knr.substr(i, 1), 10);
+        if (dig > 9) { dig = dig - 9;}
+		sum = sum + dig;
+		//sum = sum + k * parseInt(knr.substr(i, 1), 10);
 		if (k === 2) { k = 1; } else { k = 2; }
 	}
Index: /views/mods/mod_statistics/produkt_edit_sidebar.phtml
===================================================================
--- /views/mods/mod_statistics/produkt_edit_sidebar.phtml	(revision 6030)
+++ /views/mods/mod_statistics/produkt_edit_sidebar.phtml	(revision 6030)
@@ -0,0 +1,136 @@
+<?php
+
+	/**
+	 * Template fÃŒr die Einstellungen der Statistik innerhalb der Produktverwaltung
+	 */
+
+?>
+<div id="wpsg_voucherproduct" class="panel panel-default">	
+	<div class="panel-heading clearfix">
+		<h3 class="panel-title">
+			<?php echo __('Statistik', 'wpsg'); ?> 
+		</h3>
+	</div>
+	<div class="panel-body">
+		
+		<?php
+		if (isset($_SESSION['filter']['statistik']['st_von']))
+		{
+			$st_von = wpsg_fromDate($_SESSION['filter']['statistik']['st_von'], false);
+			$st_bis = wpsg_fromDate($_SESSION['filter']['statistik']['st_bis'], false);
+		}
+		else
+		{
+			$int = $this->get_option('wpsg_mod_statistics_productinterval');
+		
+			$st_von = Date('d.m.Y', strtotime('-'.$int.' days'));
+			$st_bis = Date('d.m.Y');
+		}
+		?>
+		
+		<label for="st_von">Von</label>
+		<input class="text" type="text" id="st_von" name="st_von" value="<?php $st_von ?>" />
+		<label for="st_bis">bis</label>
+		<input class="text" type="text" id="st_bis" name="st_bis" value="<?php $st_bis ?>" />
+		<input type="button" value="<?php echo __('Aktualisieren', 'wpsg'); ?>" class="button-primary" id="st_refresh" name="st_refresh" />
+		<input type="button" value="<?php echo __('CSV-Export', 'wpsg'); ?>" class="button-primary" id="st_export" name="st_export" />
+	
+	<br /><br />
+	
+		<div id="wpsg_statistic_div">
+			<?php 
+			if ($this->view['odata']['sum'] == 0) {
+				echo __('Keine Daten', 'wpsg');
+			} else {
+			?>
+		        
+		        <?php echo __('Verkaufte Produkte:', 'wpsg');  echo $this->view['odata']['sum'] ?><br /><br />
+		        <table id="wpsg_statistic_table" style="width:100%;">
+		        <thead>
+		        <tr>
+		        <td><?php echo __('Bestell-ID', 'wpsg');?> </td>
+		        <td><?php echo __('Name', 'wpsg');?> </td>
+		        <td><?php echo __('Vorname', 'wpsg');?> </td>
+		        <td><?php echo __('StÃŒck', 'wpsg');?> </td>
+		        <td><?php echo __('e-Mail', 'wpsg');?> </td>
+		        <td><?php echo __('Telefon', 'wpsg');?> </td>
+		        </tr>
+		        </thead>
+		        <tbody id="wpsg_statistic_tbody">
+		
+		        <?php 
+		        unset($this->view['odata']['sum']);
+		        foreach ($this->view['odata'] as $pa) { ?>          
+		        <tr>
+		            <td> <?php echo __($pa['id'], 'wpsg');?></td>
+		            <td> <?php echo __($pa['name'], 'wpsg');?></td>
+		            <td> <?php echo __($pa['vname'], 'wpsg');?></td>
+		            <td> <?php echo __($pa['menge'], 'wpsg');?></td>
+		            <td> <?php echo __($pa['email'], 'wpsg');?></td>
+		            <td> <?php echo __($pa['tel'], 'wpsg');?></td>
+		        </tr>
+		        <?php } ?>
+		
+		        </tbody>
+		        </table>
+			<?php } ?>        
+
+		</div>
+	
+	</div>
+</div>
+
+<script type="text/javascript">
+	jQuery(document).ready(function(){
+
+		jQuery('#st_von').datepicker(jQuery.datepicker.regional['de']);
+		jQuery('#st_bis').datepicker(jQuery.datepicker.regional['de']);
+
+		jQuery('#st_von').val('<?php echo $_REQUEST['von']?>');
+		jQuery('#st_bis').val('<?php echo $_REQUEST['bis']?>');
+
+		jQuery('#st_refresh').bind('click', function(){
+
+			jQuery.ajax( { 
+				url: '<?php echo $this->getUrl(wpsg_ShopController::URL_BASKET, 'wpsg_mod_statistics', 'aktualisieren'); ?>',
+				data: {
+					'edit_id': <?php echo $_REQUEST['edit_id']?>,
+					'von': jQuery('#st_von').val(),
+					'bis': jQuery('#st_bis').val(),
+				},
+				success: function(data) {
+					jQuery('#wpsg_statistic_table').replaceWith(data);
+						
+				}
+			});
+						
+		});
+
+		jQuery('#st_export').bind('click', function(){
+
+			location.href = '<?php echo $this->getUrl(wpsg_ShopController::URL_BASKET, 'wpsg_mod_statistics', 'export', array(
+			'edit_id' => $_REQUEST['edit_id']
+		)); ?>&von=' + jQuery('#st_von').val() + '&bis=' + jQuery('#st_bis').val();
+		
+		/*
+		jQuery.ajax( { 
+			url: '<?php echo $this->getUrl(wpsg_ShopController::URL_BASKET, 'wpsg_mod_statistics', 'export'); ?>',
+			data: {
+				'edit_id': <?php echo $_REQUEST['edit_id']?>,
+				'von': jQuery('#st_von').val(),
+				'bis': jQuery('#st_bis').val(),
+			},
+			success: function(data) {
+				//jQuery('#wpsg_statistic_div').replaceWith(data);
+					
+			}
+		});
+		*/
+
+		});
+
+
+		
+	});
+
+</script>
Index: /views/mods/mod_statistics/settings_edit.phtml
===================================================================
--- /views/mods/mod_statistics/settings_edit.phtml	(revision 6020)
+++ /views/mods/mod_statistics/settings_edit.phtml	(revision 6030)
@@ -133,4 +133,6 @@
 			
 			echo wpsg_drawForm_Input('wpsg_mod_statistics_topproductcount', __('Anzeige Top-Produkte', 'wpsg'), $this->get_option('wpsg_mod_statistics_topproductcount'), array('help' => 'wpsg_mod_statistics_topproductcount'));
+
+			echo wpsg_drawForm_Input('wpsg_mod_statistics_productinterval', __('Intervall-Zeitraum fÃŒr Produktstatistik', 'wpsg'), $this->get_option('wpsg_mod_statistics_productinterval'), array('help' => 'wpsg_mod_statistics_productinterval'));
 		?>
 			<div class="wpsg_clearer"></div>
Index: /views/mods/mod_statistics/statisticProduct.phtml
===================================================================
--- /views/mods/mod_statistics/statisticProduct.phtml	(revision 6030)
+++ /views/mods/mod_statistics/statisticProduct.phtml	(revision 6030)
@@ -0,0 +1,46 @@
+<?php
+
+	/**
+	 * Template fÃŒr die Anzeige der Produktstatistik innerhalb der Produktverwaltung
+	 */
+
+?>
+
+	<?php 
+	if ($this->view['odata']['sum'] == 0) {
+		echo __('Keine Daten', 'wpsg');
+	} else {
+	?>
+        
+        <?php echo __('Verkaufte Produkte:', 'wpsg');  echo $this->view['odata']['sum'] ?><br /><br />
+        <table id="wpsg_statistic_table" style="width:100%;">
+        <thead>
+        <tr>
+        <td><?php echo __('Bestell-ID', 'wpsg');?> </td>
+        <td><?php echo __('Name', 'wpsg');?> </td>
+        <td><?php echo __('Vorname', 'wpsg');?> </td>
+        <td><?php echo __('StÃŒck', 'wpsg');?> </td>
+        <td><?php echo __('e-Mail', 'wpsg');?> </td>
+        <td><?php echo __('Telefon', 'wpsg');?> </td>
+        </tr>
+        </thead>
+        <tbody id="wpsg_statistic_tbody">
+
+        <?php echo __($pa['id'], 'wpsg');?>
+
+        <?php 
+        unset($this->view['odata']['sum']);
+        foreach ($this->view['odata'] as $pa) { ?>          
+        <tr>
+            <td> <?php echo __($pa['id'], 'wpsg');?></td>
+            <td> <?php echo __($pa['name'], 'wpsg');?></td>
+            <td> <?php echo __($pa['vname'], 'wpsg');?></td>
+            <td> <?php echo __($pa['menge'], 'wpsg');?></td>
+            <td> <?php echo __($pa['email'], 'wpsg');?></td>
+            <td> <?php echo __($pa['tel'], 'wpsg');?></td>
+        </tr>
+        <?php } ?>
+
+        </tbody>
+        </table>
+	<?php } ?>        
