Index: /changelog
===================================================================
--- /changelog	(revision 7612)
+++ /changelog	(revision 7613)
@@ -303,3 +303,4 @@
 - Bugfix: ArtikelnummmerÃŒberprÃŒfung nicht mehr fÃŒr Ãbersetzungen
 - Bugfix: Verlinkung zum Kunden in Statistik / Bestellverwaltung wiederhergestellt
+- Feature: Lieferadresse lÃ€sst sich zu einer Bestellung nachtrÃ€glich anlegen und auch lÃ¶schen
 - Feature: Beim kopieren/speichern von Produkten kann der Bestand innerhalb einer Produktgruppe automatisch ermittelt werden (Optional)
Index: /mods/wpsg_mod_shippingadress.class.php
===================================================================
--- /mods/wpsg_mod_shippingadress.class.php	(revision 7612)
+++ /mods/wpsg_mod_shippingadress.class.php	(revision 7613)
@@ -44,32 +44,36 @@
 		} // public function settings_save()
 				
-		public function order_ajax()
-		{
-				
+		public function order_ajax() {
+				
+			if (!wpsg_checkInput($_REQUEST['edit_id'], WPSG_SANITIZE_INT)) throw \wpsg\Exception::getSanitizeException();
+			
+			$r = [
+				'edit_id' => intval($_REQUEST['edit_id'])				
+			];
+			
 			parse_str($_REQUEST['form_data'], $form_data);
 			
-			$a = $this->db->fetchRow("
-						SELECT
-							`shipping_adress_id`
-						FROM
-							`".WPSG_TBL_ORDER."`
-						WHERE
-							`id` = '".wpsg_q(wpsg_sinput("key", $_REQUEST['edit_id']))."'
-					");
-				
-			/* TODO alt
-			$this->db->UpdateQuery(WPSG_TBL_ORDER, array(
-				'shipping_firma' => wpsg_q($form_data['dialog_shipping_firma']),
-				'shipping_title' => wpsg_q($form_data['dialog_shipping_title']),
-				'shipping_vname' => wpsg_q($form_data['dialog_shipping_vname']),
-				'shipping_name' => wpsg_q($form_data['dialog_shipping_name']),
-				'shipping_strasse' => wpsg_q($form_data['dialog_shipping_strasse']),
-				'shipping_plz' => wpsg_q($form_data['dialog_shipping_plz']),
-				'shipping_ort' => wpsg_q($form_data['dialog_shipping_ort']),
-				'shipping_land' => wpsg_q($form_data['dialog_shipping_land'])
-			), " `id` = '".wpsg_q($_REQUEST['edit_id'])."' ");
-			*/
-			if ($a['shipping_adress_id'] > 0) {
-				$this->db->UpdateQuery(WPSG_TBL_ADRESS, array(
+			$shipping_adress_id = intval($this->db->fetchOne("
+				SELECT
+					`shipping_adress_id`
+				FROM
+					`".WPSG_TBL_ORDER."`
+				WHERE
+					`id` = '".wpsg_q(wpsg_sinput("key", $r['edit_id']))."'
+			"));
+			
+			if ($form_data['dialog_delete'] === '1') {
+				
+				if ($shipping_adress_id > 0) {
+				
+					$this->db->Query("DELETE FROM `".WPSG_TBL_ADRESS."` WHERE `id` = '".wpsg_q($shipping_adress_id)."' ");
+					
+				}
+				
+				$this->db->UpdateQuery(WPSG_TBL_ORDER, ['shipping_adress_id' => ''], " `id` = '".wpsg_q($r['edit_id'])."' ");
+				
+			} else {
+			
+				$db_data = [
 					'firma' => wpsg_q($form_data['dialog_shipping_firma']),
 					'title' => wpsg_q($form_data['dialog_shipping_title']),
@@ -81,5 +85,17 @@
 					'ort' => wpsg_q($form_data['dialog_shipping_ort']),
 					'land' => wpsg_q($form_data['dialog_shipping_land'])
-				), " `id` = '".wpsg_q($a['shipping_adress_id'])."' ");
+				];
+				
+				if ($shipping_adress_id > 0) {
+					
+					$this->db->UpdateQuery(WPSG_TBL_ADRESS, $db_data, " `id` = '".wpsg_q($shipping_adress_id)."' ");
+					
+				} else {
+					
+					$shipping_adress_id = $this->db->ImportQuery(WPSG_TBL_ADRESS, $db_data);
+					$this->db->UpdateQuery(WPSG_TBL_ORDER, ['shipping_adress_id' => wpsg_q($shipping_adress_id)], " `id` = '".wpsg_q($r['edit_id'])."' ");
+					 
+				}
+				
 			}
 			
@@ -173,52 +189,32 @@
 			$order_data = $this->shop->cache->loadOrder($order_id);
 			
-			if ($this->check_different_shippingadress($order_data['k_id'], $order_id) === false)
-			{
-
-				$this->shop->view['wpsg_mod_shippingadress'] = Array();
-				//$this->shop->view['wpsg_mod_shippingadress'] = $order_data;
-				//$this->shop->render(WPSG_PATH_VIEW.'/mods/mod_shippingadress/wpsg_order_view_customerdata.phtml');
-				
-			}
-			else
-			{
-					/* TODO alt
-					$this->shop->view['wpsg_mod_shippingadress'] = $this->db->fetchRow("
-						SELECT
-							`shipping_name` AS name,
-							`shipping_vname` AS vname,
-							`shipping_firma` AS firma,
-							`shipping_strasse` AS strasse,
-							`shipping_plz` AS plz,
-							`shipping_ort` AS ort,
-							`shipping_land` AS shipping_land,
-							`shipping_land` AS land
-						FROM
-							`".WPSG_TBL_ORDER."`
-						WHERE
-							`id` = '".wpsg_q($order_id)."'
-					");	
-					*/
-					$this->shop->view['wpsg_mod_shippingadress'] = $this->db->fetchRow("
-						SELECT
-							`title` AS shipping_title,
-							`name` AS shipping_name,
-							`vname` AS shipping_vname,
-							`firma` AS shipping_firma,
-							`strasse` AS shipping_strasse,
-							`nr` AS shipping_nr,
-							`plz` AS shipping_plz,
-							`ort` AS shipping_ort,
-							`land` AS shipping_land
-						FROM
-							`".WPSG_TBL_ADRESS."`
-						WHERE
-							`id` = '".wpsg_q($order_data['shipping_adress_id'])."'
-					");
-
-					$this->shop->view['wpsg_mod_shippingadress']['oCountry'] = wpsg_country::getInstance($this->shop->view['wpsg_mod_shippingadress']['shipping_land']);
-					$this->shop->render(WPSG_PATH_VIEW.'/mods/mod_shippingadress/wpsg_order_view_customerdata.phtml');
-			}
-			
+			if ($this->check_different_shippingadress($order_data['k_id'], $order_id) === false) {
+
+				$this->shop->view['wpsg_mod_shippingadress'] = [];
+				
+			} else {
+				
+				$this->shop->view['wpsg_mod_shippingadress'] = $this->db->fetchRow("
+					SELECT
+						`title` AS shipping_title,
+						`name` AS shipping_name,
+						`vname` AS shipping_vname,
+						`firma` AS shipping_firma,
+						`strasse` AS shipping_strasse,
+						`nr` AS shipping_nr,
+						`plz` AS shipping_plz,
+						`ort` AS shipping_ort,
+						`land` AS shipping_land
+					FROM
+						`".WPSG_TBL_ADRESS."`
+					WHERE
+						`id` = '".wpsg_q($order_data['shipping_adress_id'])."'
+				");
+
+				$this->shop->view['wpsg_mod_shippingadress']['oCountry'] = wpsg_country::getInstance($this->shop->view['wpsg_mod_shippingadress']['shipping_land']);
+									
+			}
+			
+			$this->shop->render(WPSG_PATH_VIEW.'/mods/mod_shippingadress/wpsg_order_view_customerdata.phtml');			
 			
 		} // public function wpsg_order_view_customerdata(&$order_id)
@@ -278,3 +274,2 @@
 	}
 	
-?>
Index: /views/mods/mod_shippingadress/wpsg_order_view_customerdata.phtml
===================================================================
--- /views/mods/mod_shippingadress/wpsg_order_view_customerdata.phtml	(revision 7612)
+++ /views/mods/mod_shippingadress/wpsg_order_view_customerdata.phtml	(revision 7613)
@@ -4,22 +4,25 @@
 	 * Template fÃŒr die Integration der Versandadresse in die Bestellansicht
 	 */
-	//wpsg_debug($this->view);
+	
 ?>
 
-<script type="text/javascript">/* <![CDATA[ */
+<script>
 
-	function wpsg_saveShippingAdress()
-	{
+	function wpsg_saveShippingAdress() {
 
         jQuery('#wpsg_backend_loading').show();
 
         jQuery.ajax( {
-            url: '<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Order&action=ajax&mod=wpsg_mod_shippingadress&edit_id=<?php echo $this->view['data']['id']; ?>&noheader=1',
+            url: '<?php 
+				
+				echo wpsg_admin_url('Order', 'ajax', ['mod' => 'wpsg_mod_shippingadress', 'edit_id' => $this->view['data']['id']], ['noheader' => '1'], true);
+				
+			?>',
             data: {
                 form_data: jQuery('#shipping_dialog_content input, #shipping_dialog_content select').serialize()
             },
-            success: function(data) {
+            success: function() {
 
-                location.href = location.href;
+				location.reload();
 
             }
@@ -28,7 +31,7 @@
 		return false;
 		
-	} // function wpsg_saveShippingAdress()
+	} 
 
-/* ]]> */</script>
+</script>
 
 <div class="modal fade" tabindex="-1" role="dialog" id="wpsg_customer_shipping_edit">
@@ -57,4 +60,9 @@
                     <?php echo wpsg_drawForm_Input('dialog_shipping_ort', __('Ort', 'wpsg'), $this->view['wpsg_mod_shippingadress']['shipping_ort']); ?>
                     <?php echo wpsg_drawForm_Select('dialog_shipping_land', __('Land', 'wpsg'), $this->view['arCountry'], $this->view['wpsg_mod_shippingadress']['shipping_land']); ?>
+					
+					<br />
+					
+					<?php echo wpsg_drawForm_Checkbox('dialog_delete', __('Lieferadresse lÃ¶schen', 'wpsg'), false); ?>
+					
                 </div>
 
@@ -71,19 +79,31 @@
 <?php echo wpsg_drawForm_TextStart(); ?>
 
-    <?php if (trim($this->view['wpsg_mod_shippingadress']['shipping_firma']) != '') { ?>
-    <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_firma']); ?><br />
-    <?php } ?>
-    <?php
+	<?php if (wpsg_isSizedArray($this->view['wpsg_mod_shippingadress'])) { ?>
+	
+		<?php if (trim($this->view['wpsg_mod_shippingadress']['shipping_firma']) != '') { ?>
+		<?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_firma']); ?><br />
+		<?php } ?>
+		<?php
+	
+			if (wpsg_isSizedString($this->view['wpsg_mod_shippingadress']['shipping_title']) && $this->view['wpsg_mod_shippingadress']['shipping_title'] != '-1')
+				echo $this->view['arTitles'][$this->view['wpsg_mod_shippingadress']['shipping_title']];
+	
+		?> <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_vname']); ?> <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_name']); ?><br />
+		<?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_strasse'].rtrim(' '.wpsg_getStr($this->view['wpsg_mod_shippingadress']['shipping_nr']))); ?><br />
+		<?php $lk = $this->view['wpsg_mod_shippingadress']['oCountry']->getShorttext(); ?>
+		<?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_plz']); ?> <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_ort']); ?> <?php echo wpsg_hspc($lk); ?><br />
+		<a style="position: absolute; right:25px; top:10px; display:inline-block;" data-toggle="modal" data-target="#wpsg_customer_shipping_edit" href="#" title="<?php echo __('Lieferanschrift Ã€ndern', 'wpsg'); ?>">
+			<span class="glyphicon glyphicon-pencil"></span>
+		</a>
 
-        if (wpsg_isSizedString($this->view['wpsg_mod_shippingadress']['shipping_title']) && $this->view['wpsg_mod_shippingadress']['shipping_title'] != '-1')
-            echo $this->view['arTitles'][$this->view['wpsg_mod_shippingadress']['shipping_title']];
-
-    ?> <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_vname']); ?> <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_name']); ?><br />
-    <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_strasse'].rtrim(' '.wpsg_getStr($this->view['wpsg_mod_shippingadress']['shipping_nr']))); ?><br />
-	<?php $lk = $this->view['wpsg_mod_shippingadress']['oCountry']->getShorttext(); ?>
-    <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_plz']); ?> <?php echo wpsg_hspc($this->view['wpsg_mod_shippingadress']['shipping_ort']); ?> <?php echo wpsg_hspc($lk); ?><br />
-    <a style="position: absolute; right:25px; top:10px; display:inline-block;" data-toggle="modal" data-target="#wpsg_customer_shipping_edit" href="#" title="<?php echo __('Lieferanschrift Ã€ndern', 'wpsg'); ?>">
-        <span class="glyphicon glyphicon-pencil"></span>
-    </a>
+	<?php } else { ?>
+			
+		<?php echo __('Keine abweichende Lieferadresse angegeben.', 'wpsg'); ?>
+		
+		<a style="position: absolute; right:25px; top:10px; display:inline-block;" data-toggle="modal" data-target="#wpsg_customer_shipping_edit" href="#" title="<?php echo __('Lieferanschrift Ã€ndern', 'wpsg'); ?>">
+			<span class="glyphicon glyphicon-pencil"></span>
+		</a>
+		
+	<?php } ?>
 
 <?php echo wpsg_drawForm_TextEnd(__('Lieferadresse', 'wpsg')); ?>
