Esempio n. 1
0
 public function revertTransaction($id)
 {
     global $wpdb;
     // get transaction record
     $transaction = $this->getItem($id);
     if (!$transaction) {
         return false;
     }
     // restore listing's quantity_sold
     // get current values from db
     $quantity_purchased = $transaction['quantity'];
     $quantity_sold = $wpdb->get_var($wpdb->prepare("SELECT quantity_sold FROM {$wpdb->prefix}ebay_auctions WHERE ebay_id = %s", $transaction['item_id']));
     // decrease the listing's quantity_sold
     $quantity_sold = $quantity_sold - $quantity_purchased;
     $wpdb->update($wpdb->prefix . 'ebay_auctions', array('quantity_sold' => $quantity_sold), array('ebay_id' => $transaction['item_id']));
     // check if we need to restore product stock
     list($reduced_product_id, $new_stock_value) = $this->checkIfStockWasReducedForItemID($transaction);
     if ($reduced_product_id) {
         // echo "<pre>stock was reduced to ";print_r($new_stock_value);echo"</pre>";#die();
         // restore product stock
         $newstock = ProductWrapper::increaseStockBy($reduced_product_id, $transaction['quantity']);
         $this->addHistory($transaction['transaction_id'], 'restored_stock', 'Product stock was restored', array('product_id' => $reduced_product_id, 'newstock' => $newstock));
     }
     // update status
     $this->updateById($id, array('status' => 'reverted'));
     $this->addHistory($transaction['transaction_id'], 'revert_transaction', 'Transaction was reverted');
     return true;
 }