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;
}
     $output[] = '<tr>';
     $output[] = '<td>' . $item->name . '</td>';
     $output[] = '<td>' . $item->quantity . '</td>';
     $output[] = '</tr>';
     //Get item from store inventory ans save it in order summary
     $dbitem = getItemByName($item->name);
     $success = db_addOrderItem($dborder->id, $dbitem->id, $item->quantity, $item->price);
     //Insert order summary for this item
     if (!$success) {
         array_push($purchaseFailed, $dbitem);
     }
 }
 $output[] = '</tbody>';
 $output[] = '</table>';
 //Send Email to customer
 $buyer = db_getUserById($dborder->userid);
 // Buyer Information: added by JAM - 06/18/2012
 $profile_fields = profile_user_record($dborder->userid);
 $data = new object();
 $data->userfullname = fullname($buyer);
 $data->firstname = $buyer->firstname;
 $data->lastname = $buyer->lastname;
 $data->email = $buyer->email;
 $data->username = $buyer->username;
 $data->password = '';
 //$buyer->password;
 $data->gender = $profile_fields->gender;
 $data->skypeid = $profile_fields->skypeid;
 $data->kaseyasalesrep = $profile_fields->kaseyasalesrep;
 $data->maintopic = $profile_fields->maintopic;
 $data->typebundle = $profile_fields->typebundle;
Beispiel #3
0
                                                             "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 = refactored_db_getItem($orderitem['itemid']);
                 $user = db_getUserById($dbOrder_userid);
                 $description = ord_getItemDescription($item['id'], $dbOrder_id);
                 $oi = array("id" => $orderitem['id'], "itemid" => $item['id'], "name" => $item['name'], "type" => $item['type'], "description" => $item['description'], "quantity" => $orderitem['quantity'], "price" => $orderitem['unitprice'], "subtotal" => $subtotal, "cancelled" => $orderitem['cancelled'], "description" => $description);
                 if ($success) {
                     $body = '<p>The item ' . $dbItem_name . ' from order ' . $dbOrder_ordernumber . ' has been cancelled.<p>';
                 } else {
                     $body = '<p>The item ' . $dbItem_name . ' from order ' . $dbOrder_ordernumber . ' has not been cancelled. The reason is: <cite>' . $message . '</cite><p>';
                 }
                 // sms: 5/19/2011
                 // sendEmail($user, 'Item Cancellation from order['.$dbOrder->ordernumber.']', $body);
                 $response = array("success" => $success, "orderitem" => $oi, "message" => $message);
                 echo json_encode($response);
             }
         }
     }
 }