function db_cancelOrder($orderid) { $orderItems = db_getOrderItems($orderid); foreach ($orderItems as $orderItem) { db_cancelOrderItem($orderid, $orderItem->itemid); } $sql = "UPDATE mdl_shoppingcart_order SET cancelled = 1, fulfillmentorderstate= 'CANCELLED' where id =" . $orderid; return execute_sql($sql, false); }
break; case 'CANCELLED': $Gresponse->log->LogResponse("Cancelled " + $data[$root]['google-order-number']['VALUE']); $order = db_getOrderByOrderNumber($data[$root]['google-order-number']['VALUE']); cancelTransaction($order->id); $orderItems = db_getOrderItems($orderid); foreach ($orderItems as $orderItem) { db_cancelOrderItem($orderid, $orderItem->itemid); } $Grequest->SendBuyerMessage($data[$root]['google-order-number']['VALUE'], "Sorry, your order is cancelled by the store", true); break; case 'CANCELLED_BY_GOOGLE': $Gresponse->log->LogResponse("Cancelled by Google " + $data[$root]['google-order-number']['VALUE']); $order = db_getOrderByOrderNumber($data[$root]['google-order-number']['VALUE']); cancelTransaction($order->id); $orderItems = db_getOrderItems($orderid); foreach ($orderItems as $orderItem) { db_cancelOrderItem($orderid, $orderItem->itemid); } $Grequest->SendBuyerMessage($data[$root]['google-order-number']['VALUE'], "Sorry, your order is cancelled by Google", true); break; default: break; } } if ($fulfillmentStateHasChanged) { switch ($new_fulfillment_order) { case 'NEW': break; case 'PROCESSING': break;
function db_cancelOrder($orderid) { $orderItems = db_getOrderItems($orderid); foreach ($orderItems as $orderItem) { db_cancelOrderItem($orderid, $orderItem['itemid']); } $sql = "UPDATE module_vlabs_shoppingcart_order SET cancelled = 1, fulfillmentorderstate= 'CANCELLED' where id =" . $orderid; return eF_executeQuery($sql); }
function deletePurchasedItems($orderid) { session_start(); $user = $_SESSION['userid']; if ($orderid) { $summary = db_getOrderItems($orderid); foreach ($summary as $s) { $item = db_getItem($s->itemid); $prefix = "i-"; if ($item->type == "PACKAGE") { $prefix = "p-"; } $_SESSION[$user . 'cart'] = deleteItem($prefix . "" . $item->id, $_SESSION[$user . 'cart']); } } }
function cancelTransaction($orderid) { //Get orde details $order = db_getOrderById($orderid); $user = db_getUserById($order->userid); $orderItems = db_getOrderItems($orderid); //Prepare request for the quota system cancel call $assignments = array(); foreach ($orderItems as $orderItem) { $item = db_getItem($orderItem->itemid); $type = $item->type; if ($type == "ITEM") { $assignment = array("creditTypeId" => $item->referenceid, "quantity" => $orderItem->quantity, "purchaseId" => $order->ordernumber, "active" => !$orderItem->cancelled); array_push($assignments, $assignment); } else { if ($type == "PACKAGE") { //Get package items $packageitems = db_getPackageItems($item->id); //Initialize array to send a ws request for package items only with rollback true $packageItemsArr = array(); //Save items in request array foreach ($packageitems as $packageitem) { $item = db_getItem($packageitem->itemid); $quantity = $orderItem->quantity * $packageitem->quantity; $assignment = array("creditTypeId" => $item->referenceid, "quantity" => $quantity, "purchaseId" => $order->ordernumber . "" . $orderItem->itemid, "active" => !$orderItem->cancelled); array_push($assignments, $assignment); } } } } //call web service $response = ws_cancelQuotaAssignment($assignments); $assignmentsResponse = array(); if (!is_array($response)) { array_push($assignmentsResponse, $response); } else { $assignmentsResponse = array_merge($assignmentsResponse, $response); } return $assignmentsResponse; }
} } else { $success = false; $message = "Item " . $dbItem->name . " could not be cancelled because it has been consumed by the buyer."; } } else { $success = db_cancelOrderItem($dbOrder->id, $dbItem->id); if ($success) { $body = '<p>The item ' . $dbItem->name . ' from order ' . $dbOrder->ordernumber . ' has been cancelled.<p>'; } else { $message = "Item could not be cancelled in database"; $body = '<p>The cancellation of item ' . $dbItem->name . ' from order ' . $dbOrder->ordernumber . ' has not been completed.<p>'; } } $itemsCancelled = db_getCancelledOrderItems($dbOrder->id); $items = db_getOrderItems($dbOrder->id); if (count($items) == count($itemsCancelled)) { if ($dbOrder->payment) { db_cancelGoogleCheckoutOrder($dbOrder->id); $gresponse = $Grequest->SendCancelOrder($dbOrder->ordernumber, "Order has been cancelled due to a partial or complete refund." . "Contact the administrator for further details."); } else { db_cancelOrder($dbOrder->id); $body = '<p>Order ' . $dbOrder->ordernumber . ' has been cancelled.<p>'; $user = db_getUserById($dbOrder->userid); // sms: 5/19/2011 // sendEmail($user, 'Order['.$dbOrder->ordernumber.'] Cancellation', $body); } } $orderitem = db_getOrderItemById($id); $subtotal = $orderitem->quantity * $orderitem->unitprice; $item = db_getItem($orderitem->itemid);