Advertisement
Guest User

Bugfix orgaMAX Schnittstelle Virtuemart 2

a guest
Aug 2nd, 2013
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.51 KB | None | 0 0
  1. orgaMAX Schnittstellen Bugfix
  2. (c) codeXtreme
  3.  
  4. Datei: inc/virtuemart2.php
  5.  
  6.  
  7. Original: (Zeilen ~1013 bis ~1083)
  8. -------------------------------------------------------------------------------------------------
  9. -------------------------------------------------------------------------------------------------
  10. -------------------------------------------------------------------------------------------------
  11. function status_aendern($orderId)
  12. {
  13.     // Datenbank Tabellen-Prefix aus der Joomla! Konfiguration
  14.     $db_tableprefix = db_prefix_aus_config_holen();
  15.  
  16.     $ShopStatus = $GLOBALS["aendern_zu"];
  17.  
  18.     switch($ShopStatus){
  19.         case 1:
  20.             $ShopStatus = 'P';
  21.             break;
  22.         case 2:
  23.             $ShopStatus = 'C';
  24.             break;
  25.         case 3:
  26.             $ShopStatus = 'X';
  27.             break;
  28.         case 4:
  29.             $ShopStatus = 'R';
  30.             break;
  31.         case 5:
  32.             $ShopStatus = 'S';
  33.             break;
  34.     }
  35.     $query  = 'SELECT order_status';
  36.     $query .= ' FROM '.$db_tableprefix.'virtuemart_orders';
  37.     $query .= ' WHERE virtuemart_order_id = '.$orderId;
  38.  
  39.     $data = mysql_query($query);
  40.     if($data) {
  41.         $erg = mysql_fetch_assoc($data);
  42.  
  43.         // Order_status vergleichen
  44.         if($erg['order_status'] !=  'S'){
  45.             // Update Befehl vorbereiten
  46.             $query = 'UPDATE '.$db_tableprefix.'virtuemart_orders SET order_status = \''.$ShopStatus.'\' WHERE virtuemart_order_id = '.$orderId;
  47.             mysql_query($query);
  48.                
  49.             //Kontrolliert ob der Update Befehl geklappt hat
  50.             $error = mysql_error();
  51.  
  52.             if($error == ''){
  53.                 $query = 'UPDATE '.$db_tableprefix.'virtuemart_order_items SET order_status = \''.$ShopStatus.'\' WHERE virtuemart_order_id = '.$orderId;
  54.  
  55.                 mysql_query($query);
  56.                
  57.                 $error = mysql_error();
  58.                
  59.                 if($error == ''){
  60.                     $query  = 'INSERT INTO '.$db_tableprefix.'virtuemart_order_histories(virtuemart_order_id,order_status_code,created_on,customer_notified)';
  61.                     $query .= ' VALUES('.$orderId.',\''.$ShopStatus.'\',\''.date('Y-m-d H:i:s').'\',1)';
  62.                    
  63.                     mysql_query($query);
  64.                     $error = mysql_error();
  65.                     if($error == ''){
  66.                         die(xml_success_ausgeben("Der Status der Bestellung '" . $orderId . "' wurde auf '" . $ShopStatus . "' gesetzt."));
  67.                     }
  68.                     else{
  69.                         die(xml_error_ausgeben("Bei der Fortschreibung der Shop History für die order_id: '$orderId' auf den Wert '$ShopStatus' trat ein Fehler auf. Das Query meldete MySql '. $error .'", __FILE__, __FUNCTION__, __LINE__));
  70.                     }
  71.                 }
  72.                 else{
  73.                     die(xml_error_ausgeben("Bei der Statusänderung der Bestellung '$orderId' auf den Wert '$ShopStatus' trat ein Fehler auf. Das Query meldete MySql '. $error .'", __FILE__, __FUNCTION__, __LINE__));
  74.                 }
  75.             }
  76.             else{
  77.                 die(xml_error_ausgeben("Bei der Statusänderung der Bestellung '$orderId' auf den Wert '$ShopStatus' trat ein Fehler auf. Das Query meldete MySql '. $error .'", __FILE__, __FUNCTION__, __LINE__));
  78.             }
  79.         }
  80.     }
  81. }
  82.  
  83. -------------------------------------------------------------------------------------------------
  84. -------------------------------------------------------------------------------------------------
  85. -------------------------------------------------------------------------------------------------
  86.  
  87.  
  88. Kann nicht funktionieren...
  89.  
  90. Eher so:
  91.  
  92. -------------------------------------------------------------------------------------------------
  93. -------------------------------------------------------------------------------------------------
  94. -------------------------------------------------------------------------------------------------
  95.  
  96. function status_aendern($orderId)
  97. {
  98.     // Datenbank Tabellen-Prefix aus der Joomla! Konfiguration
  99.     $db_tableprefix = db_prefix_aus_config_holen();
  100.     $ShopStatus = $GLOBALS["aendern_zu"];
  101.  
  102.     switch($ShopStatus){
  103.         case 1:
  104.             $ShopStatus = 'P';
  105.             break;
  106.         case 2:
  107.             $ShopStatus = 'C';
  108.             break;
  109.         case 3:
  110.             $ShopStatus = 'X';
  111.             break;
  112.         case 4:
  113.             $ShopStatus = 'R';
  114.             break;
  115.         case 5:
  116.             $ShopStatus = 'S';
  117.             break;
  118.     }
  119.     $query  = 'SELECT order_status, virtuemart_order_id';
  120.     $query .= ' FROM '.$db_tableprefix.'virtuemart_orders';
  121.     $query .= ' WHERE order_number = "'.$orderId.'"';
  122.  
  123.     $data = mysql_query($query);
  124.     if($data) {
  125.         $erg = mysql_fetch_assoc($data);
  126.  
  127.         $bstatus = $erg['order_status'];
  128.         $border_id = $erg['virtuemart_order_id'];
  129.         $border_number = $orderId;
  130.  
  131.         //Wenn Status der Bestellung nicht "Verschickt"
  132.         if($bstatus != 'S'){
  133.  
  134.             //Status der Bestellung ändern
  135.             $query = 'UPDATE '.$db_tableprefix.'virtuemart_orders SET order_status = \''.$ShopStatus.'\' WHERE virtuemart_order_id = '.$border_id;
  136.             mysql_query($query);
  137.             $error = mysql_error();
  138.  
  139.             //Wenn kein Fehler, dann Artikelstatus der Bestellung ändern
  140.             if($error == ''){
  141.                 $query = 'UPDATE '.$db_tableprefix.'virtuemart_order_items SET order_status = \''.$ShopStatus.'\' WHERE virtuemart_order_id = '.$border_id;
  142.                 mysql_query($query);
  143.                 $error = mysql_error();
  144.  
  145.                 //Wenn kein Fehler, dann Status-History ergänzen
  146.                 if($error == ''){
  147.                     $query  = 'INSERT INTO '.$db_tableprefix.'virtuemart_order_histories(virtuemart_order_id,order_status_code,created_on,customer_notified)';
  148.                     $query .= ' VALUES('.$border_id.',\''.$ShopStatus.'\',\''.date('Y-m-d H:i:s').'\',1)';
  149.  
  150.                     mysql_query($query);
  151.                     $error = mysql_error();
  152.  
  153.                     //Wenn alle Operationen ohne Fehler abgeschlossen, dann Meldung ausgeben
  154.                     if($error == ''){
  155.                         die(xml_success_ausgeben("Der Status der Bestellung '".$border_id."' wurde auf '".$ShopStatus."' gesetzt."));
  156.                     }
  157.                     else{
  158.                         die(xml_error_ausgeben("Bei der Fortschreibung der Shop History für die order_id: '".$orderId."' auf den Wert '".$ShopStatus."' trat ein Fehler auf. Das Query meldete MySql '". $error ."'", __FILE__, __FUNCTION__, __LINE__));
  159.                     }
  160.                 }
  161.                 else{
  162.                     die(xml_error_ausgeben("Bei der Statusänderung der Bestellung '".$orderId."' auf den Wert '".$ShopStatus."' trat ein Fehler auf. Das Query meldete MySql '". $error ."'", __FILE__, __FUNCTION__, __LINE__));
  163.                 }
  164.             }
  165.             else{
  166.                 die(xml_error_ausgeben("Bei der Statusänderung der Bestellung '".$orderId."' auf den Wert '".$ShopStatus."' trat ein Fehler auf. Das Query meldete MySql '". $error ."'", __FILE__, __FUNCTION__, __LINE__));
  167.             }
  168.         }
  169.     }
  170. }
  171.  
  172. -------------------------------------------------------------------------------------------------
  173. -------------------------------------------------------------------------------------------------
  174. -------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement