Author: shankar
Date: Fri Feb  6 04:06:18 2009
New Revision: 741394

URL: http://svn.apache.org/viewvc?rev=741394&view=rev
Log:
request processor 

Added:
    
incubator/stonehenge/trunk/stocktrader/php/trader_client/request_processor.php

Added: 
incubator/stonehenge/trunk/stocktrader/php/trader_client/request_processor.php
URL: 
http://svn.apache.org/viewvc/incubator/stonehenge/trunk/stocktrader/php/trader_client/request_processor.php?rev=741394&view=auto
==============================================================================
--- 
incubator/stonehenge/trunk/stocktrader/php/trader_client/request_processor.php 
(added)
+++ 
incubator/stonehenge/trunk/stocktrader/php/trader_client/request_processor.php 
Fri Feb  6 04:06:18 2009
@@ -0,0 +1,1001 @@
+<?php
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+define ("STATUS_SUCCESS", 1);
+define ("STATUS_FAILURE", 0);
+define ("TRUE", 1);
+define ("FALSE", 0);
+define ("ORDER_TYPE_BUY", "buy");
+define ("ORDER_TYPE_SELL", "sell");
+define ("COOKIE_USERNAME", "username");
+define ("COOKIE_ENDPOINT", "endpoint");
+define ("DEFAULT_ENDPOINT", 
"http://localhost:80/TradeServiceWcf/TradeServiceWcf.svc";);
+define ("CLIENT_NAME", "PHP_CLIENT");
+
+/*this will set the default end point if end point is NOT already set.*/
+SetDefaultEndpoint(); 
+
+/**
+ * This class includes the summery of acctivities of the user
+ */
+
+class userAccountSummary
+{
+       public $totalBuys; //double
+       public $totalSells; //double
+       public $totalTax; //double
+       public $totalImpact; //double
+}
+
+/**
+ * This class encapsulates login data of a user
+ */
+
+class login 
+{
+    public $userID; // string
+    public $password; // string
+}
+
+/**
+ * This class describes the response of login, if success gives 
+ * the account details of the user
+ */
+
+class loginResponse 
+{
+    public $loginReturn; // AccountDataBean
+}
+
+/**
+ * This class encapsulates user account details
+ */
+
+class AccountDataBean 
+{
+    public $accountID; // int
+    public $loginCount; // int
+    public $logoutCount; // int
+    public $lastLogin; // dateTime
+    public $creationDate; // dateTime
+    public $balance; // decimal
+    public $openBalance; // decimal
+    public $profileID; // string
+}
+
+/**
+ * This class will contain details needed to get the orders of a user
+ */
+
+class getOrders 
+{
+    public $userID; // string
+}
+
+/**
+ * This class encapsulates the response of a getOrders request
+ */
+
+class getOrdersResponse 
+{
+    public $getOrdersReturn; // ArrayOfOrderDataBean
+}
+
+/**
+ * This class encapsulates the order details of a user
+ */
+
+class ArrayOfOrderDataBean 
+{
+    public $OrderDataBean; // array[0, unbounded] of OrderDataBean
+}
+
+/**
+ * This class encapsulates the details of an order
+ */
+
+class OrderDataBean 
+{
+    public $orderID; // int
+    public $orderType; // string
+    public $orderStatus; // string
+    public $openDate; // dateTime
+    public $completionDate; // dateTime
+    public $quantity; // double
+    public $price; // decimal
+    public $orderFee; // decimal
+    public $symbol; // string
+}
+
+/**
+ * This class encapsulates the details needed to get account data of a 
+ * particular user
+ */
+
+class getAccountData 
+{
+    public $userID; // string
+}
+
+/**
+ * This class encapsulates the response of getAccountData request
+ */
+
+class getAccountDataResponse 
+{
+    public $getAccountDataReturn; // AccountDataBean
+}
+
+/** 
+ * This class encapsulates details needed to get account profile information
+ */
+
+class getAccountProfileData 
+{
+    public $userID; // string
+}
+
+/**
+ * This class encapsulates the response of getAccountProfileData request
+ */
+
+class getAccountProfileDataResponse 
+{
+    public $getAccountProfileDataReturn; // AccountProfileDataBean
+}
+
+/**
+ * Encapsulates details of an account profile
+ */
+
+class AccountProfileDataBean 
+{
+    public $userID; // string
+    public $password; // string
+    public $fullName; // string
+    public $address; // string
+    public $email; // string
+    public $creditCard; // string
+}
+
+/**
+ * Contain information needed to update account profile 
+ */
+
+class updateAccountProfile 
+{
+    public $profileData; // AccountProfileDataBean
+}
+
+/**
+ * Contains response of updated account profile
+ */
+
+class updateAccountProfileResponse {
+    public $updateAccountProfileReturn; // AccountProfileDataBean
+}
+
+/**
+ * Information needed to logout a user
+ */
+
+class logout 
+{
+    public $userID; // string
+}
+
+/**
+ * Response of logout
+ */
+
+class logoutResponse 
+{
+}
+
+/**
+ * Details needed to do "buy" transaction
+ */
+
+class buy 
+{
+    public $userID; // string
+    public $symbol; // string
+    public $quantity; // double
+    public $orderProcessingMode; // int
+}
+
+/** 
+ * Response of "buy" transaction
+ */
+
+class buyResponse 
+{
+    public $buyReturn; // OrderDataBean
+}
+
+/**
+ * Details needed to do "sell" transaction
+ */
+
+class sell
+{
+    public $userID; // string
+    public $holdingID; // int
+    public $orderProcessingMode; // int
+}
+
+/**
+ * Response of "sell" transaction
+ */
+
+class sellResponse 
+{
+    public $sellReturn; // OrderDataBean
+}
+
+/**
+ * Details needed to get holdings of a user
+ */
+
+class getHoldings 
+{
+    public $userID; // string
+}
+
+/**
+ * Response of getHolding request
+ */
+
+class getHoldingsResponse 
+{
+    public $getHoldingsReturn; // ArrayOfHoldingDataBean
+}
+
+/**
+ * Details of holdings of a user
+ */
+
+class ArrayOfHoldingDataBean 
+{
+    public $HoldingDataBean; // array[0, unbounded] of HoldingDataBean
+}
+
+/**
+ * Details of a holding
+ */
+
+class HoldingDataBean 
+{
+    public $holdingID; // int
+    public $quantity; // double
+    public $purchasePrice; // decimal
+    public $purchaseDate; // dateTime
+    public $quoteID; // string
+}
+
+/**
+ * Information needed to register a user to the system
+ */
+
+class register 
+{
+    public $userID; // string
+    public $password; // string
+    public $fullname; // string
+    public $address; // string
+    public $email; // string
+    public $creditcard; // string
+    public $openBalance; // decimal
+}
+
+/**
+ * Account details of registered user
+ */
+
+class registerResponse 
+{
+    public $registerReturn; // AccountDataBean
+}
+
+/**
+ * Details needed to get closed orders of a user
+ */
+
+class getClosedOrders 
+{
+    public $userID; // string
+}
+
+/**
+ * Response of getClosedOrder request
+ */
+
+class getClosedOrdersResponse 
+{
+    public $getClosedOrdersReturn; // ArrayOfOrderDataBean
+}
+
+/**
+ * Details needed to get market summery
+ */
+
+class getMarketSummary 
+{
+}
+
+/**
+ * Response of getMarketSummary request
+ */
+
+class getMarketSummaryResponse 
+{
+    public $getMarketSummaryReturn; // MarketSummaryDataBeanWS
+}
+
+/**
+ * Details about market summery
+ */
+
+class MarketSummaryDataBeanWS 
+{
+    public $TSIA; // decimal
+    public $openTSIA; // decimal
+    public $volume; // double
+    public $topGainers; // ArrayOfQuoteDataBean
+    public $topLosers; // ArrayOfQuoteDataBean
+    public $summaryDate; // dateTime
+}
+
+/**
+ * Details of Quote request
+ */
+
+class ArrayOfQuoteDataBean 
+{
+    public $QuoteDataBean; // array[0, unbounded] of QuoteDataBean
+}
+
+/**
+ * Details of a quote
+ */
+
+class QuoteDataBean 
+{
+    public $symbol; // string
+    public $companyName; // string
+    public $price; // decimal
+    public $open; // decimal
+    public $low; // decimal
+    public $high; // decimal
+    public $change; // double
+    public $volume; // double
+}
+
+/**
+ * Details needed to get quote information of a symbol
+ */
+
+class getQuote 
+{
+    public $symbol; // string
+}
+
+/**
+ * Response of getQuote request
+ */
+
+class getQuoteResponse 
+{
+    public $getQuoteReturn; // QuoteDataBean
+}
+
+/**
+ * Details needed to get a particular holding of a user
+ */
+
+class getHolding 
+{
+    public $userID; // string
+    public $holdingID; // int
+}
+
+/**
+ * Response of getHolding request
+ */
+
+class getHoldingResponse 
+{
+    public $getHoldingReturn; // HoldingDataBean
+}
+
+/**
+ * Details needed to get top orders of a user
+ */
+
+class getTopOrders 
+{
+    public $userID; // string
+}
+
+/**
+ * Response of getTopOrders request
+ */
+
+class getTopOrdersResponse 
+{
+    public $getTopOrdersReturn; // ArrayOfOrderDataBean
+}
+
+/**
+ * Details needed to sell a holding of a user
+ */
+
+class sellEnhanced 
+{
+    public $userID; // string
+    public $holdingID; // int
+    public $quantity; // double
+}
+
+/**
+ * Response of sellEnhanced request
+ */
+
+class sellEnhancedResponse 
+{
+    public $sellEnhancedReturn; // OrderDataBean
+}
+
+/**
+ * Details needed to check whether service is online
+ */
+
+class isOnline 
+{
+}
+
+/**
+ * Response of service's online status
+ */
+
+class isOnlineResponse 
+{
+}
+
+/**
+ * Summery of holdings of a particular user
+ */
+
+class holdingInformation
+{
+       public $totalHoldings;
+       public $noOfHoldings;
+}
+
+/*
+ * Request send to get configurations parameter needed by client
+ */
+class ClientConfigRequest 
+{
+    /**
+     * @var string
+     */
+    public $Client;
+}
+
+/*
+ * contains information needed by client 
+ */
+class ClientConfigResponse 
+{
+    /**
+     * @var anyURI
+     */
+    public $BS;
+}
+
+/*
+ * Get the endpoint of business service
+ */
+function GetBSEndPoint()
+{
+
+       // define the class map
+       $class_map = array(
+               "ClientConfigRequest" => "ClientConfigRequest",
+               "ClientConfigResponse" => "ClientConfigResponse");
+
+    // create client in WSDL mode
+    $client = new WSClient(array ("wsdl" =>"wsdl/config_svc.wsdl",
+               "classmap" => $class_map, 
+               "to" => GetEndpoint()));
+
+    // get proxy object reference form client 
+    $proxy = $client->getProxy();
+       $input = new ClientConfigRequest();
+       $input->Client = CLIENT_NAME;
+
+    $response = $proxy->ClientConfigRequest($input);
+       if($response)
+       {
+               $endPoint = $response->BS;
+       }
+
+       return $endPoint;
+}
+
+/**
+ * This method registes a new user in the system
+ * @param userID id of the user
+ * @param password password of the user
+ * @param fullname full name of the user
+ * @param address address of the user
+ * @param email email address of the user
+ * @param creditcard credit card number of the user
+ * @param openBalance initial balance of the user
+ * @return account details of the registerd user on success. NULL otherwise.
+ */
+
+function RegisterUser($userID, $password, $fullname, 
+       $address, $email, $creditcard, $openBalance)
+{
+       $proxy = GetProxy();
+       $input = new register();
+       $input->userID = $userID;
+       $input->password = $password;
+       $input->fullname = $fullname;
+       $input->address = $address;
+       $input->email = $email;
+       $input->creditcard = $creditcard;
+       $input->openBalance = $openBalance;
+
+       $response = $proxy->register($input);
+       return $response;
+}
+
+/**
+ * Updates account profile information
+ * @param userID id of the user
+ * @param fullname full name of the user
+ * @param email email address of the user
+ * @param address address of the user
+ * @param creditcard credit card number of the user
+ * @param password password of the user
+ * @return account details of the modified user on success. NULL otherwise.
+ */
+
+function UpdateAccountProfile($userID, $fullName, $email, 
+       $address, $creditCard, $password)
+{
+       $proxy = GetProxy();
+       $input = new updateAccountProfile();
+       $input->profileData = new AccountProfileDataBean();
+       $input->profileData->userID = $userID;
+       $input->profileData->password = $password;
+       $input->profileData->fullName = $fullName;
+       $input->profileData->address = $address;
+       $input->profileData->email = $email;
+       $input->profileData->creditCard = $creditCard;
+    $response = $proxy->updateAccountProfile($input);
+       return $response;
+}
+
+/**
+ * Given the order details of a user, this method calculates summery of
+ * activities of the user. This includes total money spent on buying stocks
+ * total money earned from selling them etc.
+ * @param ordersReturn collection of orders of a user
+ * @return summery of user's activities
+ */
+
+function GetUserAccountSummary($ordersReturn)
+{
+       $index = 0;
+       while($ordersReturn->OrderDataBean[$index])
+       {
+               if ($ordersReturn->OrderDataBean[$index]->orderType == 
ORDER_TYPE_BUY)
+               {
+                       $buys = $buys + 
(($ordersReturn->OrderDataBean[$index]->price) * 
+                               
($ordersReturn->OrderDataBean[$index]->quantity)) + 
+                               
($ordersReturn->OrderDataBean[$index]->orderFee);
+               }
+               else if ($ordersReturn->OrderDataBean[$index]->orderType == 
ORDER_TYPE_SELL)
+               {
+                       $sells = $sells +  
(($ordersReturn->OrderDataBean[$index]->price) * 
+                               
($ordersReturn->OrderDataBean[$index]->quantity)) - 
+                               
($ordersReturn->OrderDataBean[$index]->orderFee);
+               }
+               $tax = $tax + $ordersReturn->OrderDataBean[$index]->orderFee;
+               $index ++;
+       }
+       $accountSummary = new userAccountSummary();
+       $accountSummary->totalBuys = $buys;
+       $accountSummary->totalSells = $sells;
+       $accountSummary->totalTax = $tax;
+       $accountSummary->totalImpact = $buys + $tax - $sells;
+       return $accountSummary;
+}
+
+/**
+ * Given the holdings of a user, this methods calculate total market value of 
+ * holding and number of holdings
+ * @param holdings collection of holdings of a user
+ * @return summery of holding details
+ */
+
+function GetHoldingInformation($holdings)
+{
+       $holdingsReturn = $holdings->getHoldingsReturn;
+       $index = 0;
+       $totalHoldings= 0;
+       $marketValue = 0;
+
+       while($holdingsReturn->HoldingDataBean[$index])
+       {
+                       $bean = $holdingsReturn->HoldingDataBean[$index];
+                       if (!$quoteInfo[$bean->quoteID])
+                       {
+                               $quotes = GetQuote($bean->quoteID);
+                               if ($quotes)
+                                       $quotesReturn = $quotes->getQuoteReturn;
+                               $quoteInfo[$bean->quoteID] = 
$quotesReturn->price;
+                       }
+                       $marketValue = $marketValue + 
($quoteInfo[$bean->quoteID]) * ($bean->quantity); 
+
+               $totalHoldings = $totalHoldings + 
$holdingsReturn->HoldingDataBean[$index]->quantity *
+                       $holdingsReturn->HoldingDataBean[$index]->purchasePrice;
+               $index ++;
+       }
+       $holdingInfo = new holdingInformation();
+       $holdingInfo->totalHoldings = $marketValue;
+       $holdingInfo->noOfHoldings = $index;
+
+       return $holdingInfo;
+}
+
+/**
+ * Writes user id to cookie
+ * @param username user id of the current user
+ */
+
+function WriteCookie($username)
+{
+       setcookie(COOKIE_USERNAME, $username, time()+3600);
+}
+
+/**
+ * Deletes user id from cookie
+ * @param username user id of current user
+ */
+function DeleteCookie($username)
+{
+       setcookie(COOKIE_USERNAME, $username, time()-3600);
+       if (isset($_COOKIE[COOKIE_USERNAME]))
+               unset($_COOKIE[COOKIE_USERNAME]);
+}
+
+/** 
+ * When user logout, user id will be deleted from the cookie
+ * @param username user id of current user
+ */
+
+function LogoutUser($username)
+{
+       $proxy = GetProxy();
+       $input = new logout();
+       $input->userID = $username;
+       $response = $proxy->logout($input);
+       DeleteCookie($username);
+}
+
+/**
+ * Gets user id from cookie
+ */
+
+function GetUserFromCookie()
+{
+       return ($_COOKIE[COOKIE_USERNAME]);
+}
+
+/**
+ * Checks whether user is logged in. If so, user id cookie would have
+ * been already set. Checking whether cookie is set equals to check 
+ * whether user is logged in
+ */
+
+function IsLoggedIn()
+{
+       return isset($_COOKIE[COOKIE_USERNAME]);
+}
+
+/**
+ * Gets user id of current user
+ */
+
+function GetUser()
+{
+       return ($_COOKIE[COOKIE_USERNAME]);
+}
+
+/**
+ * Store business service's endpoint in cookie
+ * @param endPoint end point address of the business service
+ */
+
+function WriteEndpoint($endPoint)
+{
+       setcookie(COOKIE_ENDPOINT, $endPoint, time()+3600);
+}
+
+/**
+ * Sets default end point
+ */
+
+function SetDefaultEndpoint()
+{
+       if(GetEndpoint() == "")
+               WriteEndpoint(DEFAULT_ENDPOINT);
+}
+
+/**
+ * Gets stored end point address of business service
+ */
+
+function GetEndpoint()
+{
+       return ($_COOKIE[COOKIE_ENDPOINT]);
+}
+
+/**
+ * Gets proxy object to make communication with business service
+ */
+
+function GetProxy()
+{
+       /*define the class map */
+
+       $class_map = array(
+               "anyType" => "anyType", "login" => "login", 
+               "loginResponse" => "loginResponse", "AccountDataBean" => 
+               "AccountDataBean", "getOrders" => "getOrders", 
"getOrdersResponse" => 
+               "getOrdersResponse", "ArrayOfOrderDataBean" => 
"ArrayOfOrderDataBean", 
+               "OrderDataBean" => "OrderDataBean", "getAccountData" => 
"getAccountData", 
+               "getAccountDataResponse" => "getAccountDataResponse", 
+               "getAccountProfileData" => "getAccountProfileData", 
+               "getAccountProfileDataResponse" => 
"getAccountProfileDataResponse", 
+               "AccountProfileDataBean" => "AccountProfileDataBean", 
+               "updateAccountProfile" => "updateAccountProfile", 
+               "updateAccountProfileResponse" => 
"updateAccountProfileResponse", 
+               "logout" => "logout", "logoutResponse" => "logoutResponse", 
"buy" 
+               => "buy", "buyResponse" => "buyResponse", "sell" => "sell", 
+               "sellResponse" => "sellResponse", "getHoldings" => 
"getHoldings", 
+               "getHoldingsResponse" => "getHoldingsResponse", 
"ArrayOfHoldingDataBean" 
+               => "ArrayOfHoldingDataBean", "HoldingDataBean" => 
"HoldingDataBean", 
+               "register" => "register", "registerResponse" => 
"registerResponse", 
+               "getClosedOrders" => "getClosedOrders", 
"getClosedOrdersResponse" => 
+               "getClosedOrdersResponse", "getMarketSummary" => 
"getMarketSummary", 
+               "getMarketSummaryResponse" => "getMarketSummaryResponse", 
+               "MarketSummaryDataBeanWS" => "MarketSummaryDataBeanWS", 
+               "ArrayOfQuoteDataBean" => "ArrayOfQuoteDataBean", 
"QuoteDataBean" => 
+               "QuoteDataBean", "getQuote" => "getQuote", "getQuoteResponse" 
=> 
+               "getQuoteResponse", "getHolding" => "getHolding", 
"getHoldingResponse" 
+               => "getHoldingResponse", "getTopOrders" => "getTopOrders", 
+               "getTopOrdersResponse" => "getTopOrdersResponse", 
"sellEnhanced" => 
+               "sellEnhanced", "sellEnhancedResponse" => 
"sellEnhancedResponse", 
+               "isOnline" => "isOnline", "isOnlineResponse" => 
"isOnlineResponse");
+
+       $client = new WSClient(array ("wsdl" =>"wsdl/TradeServiceWcf.svc.wsdl",
+                       "classmap" => $class_map,
+                       "to" => GetBSEndPoint()));
+               //We can set this port through tcpmon
+
+       $proxy = $client->getProxy();
+       return $proxy;
+}
+
+/**
+ * Sends login request to verify whether current user is authorized
+ * @param userid user id of current user
+ * @param password password given by current user
+ * @return profile id of the user if login is success. NULL otherwise
+ */
+ 
+function Login($userid, $password)
+{
+       $proxy = GetProxy();
+       $input = new login();
+       $input->userID = $userid;
+       $input->password = $password;
+       $response = $proxy->login($input);
+
+       return $response->loginReturn->profileID;
+}
+
+/**
+ * Gets orders of current user
+ * @param userid user id of current user
+ * @return collection of orders of the user
+ */
+
+function GetOrders($userid)
+{
+       $proxy = GetProxy();
+       $input = new getOrders();
+       $input->userID = $userid;
+       $response = $proxy->getOrders($input);
+       return $response;
+}
+
+/**
+ * Gets market summary
+ * @return market summery
+ */
+
+function GetMarketSummary()
+{
+       $proxy = GetProxy();
+    $input = new getMarketSummary();
+       $response = $proxy->getMarketSummary($input);
+       return $response;
+}
+
+/**
+ * Gets account details of current user
+ * @param userid user id of current user
+ * @return account details if success. NULL otherwise
+ */
+
+function GetAccountData($userid)
+{
+       $proxy = GetProxy();
+    $input = new getAccountData();
+       $input->userID = $userid;
+    $response = $proxy->getAccountData($input);
+       return $response;
+}
+
+/**
+ * Gets account profile information of current user
+ * @param userid user id of current user
+ * @return account profile data of current user if success. NULL otherwise
+ */
+
+function GetAccountProfileData($userid)
+{
+       $proxy = GetProxy();
+    $input = new getAccountProfileData();
+       $input->userID = $userid;
+    $response = $proxy->getAccountProfileData($input);
+       return $response;
+}
+
+/**
+ * Gets holding details of given user
+ * @param userid user id of current user
+ * returns collection of holding if success. NULL otherwise
+ */
+
+function GetHoldings($userid)
+{
+       $proxy = GetProxy();
+    $input = new getHoldings();
+       $input->userID = $userid;
+    $response = $proxy->getHoldings($input);
+       return $response;
+}
+
+/**
+ * Gets quote of given symbol
+ * @param symbol id of the stock
+ * @return details of the symbol when success. NULL otherwise
+ */
+
+function GetQuote($symbol)
+{
+       $proxy = GetProxy();
+    $input = new getQuote();
+       $input->symbol = $symbol;
+       $response = $proxy->getQuote($input);
+       return $response;
+}
+
+
+/**
+ * Sells given holding or part of it of given user
+ * @param userID user id of current user
+ * @param holdingID holding id of the holding
+ * @param quantity number of stocks to be sold
+ * @return details of sell order if success. NULL otherwise
+ */
+
+function SellEnhanced($userID, $holdingID, $quantity)
+{
+       $proxy = GetProxy();
+    $input = new sellEnhanced();
+       $input->userID = $userID;
+       $input->holdingID = $holdingID;
+       $input->quantity = $quantity;
+    $response = $proxy->sellEnhanced($input);
+       return $response;
+}
+
+/**
+ * Buys number of stocks of given symbol 
+ * @param userID user id of current user
+ * @param symbol symbol of needed stock
+ * @quantity number of stocks needed
+ * @mode mode of buying
+ * @return details of buy order if success. NULL otherwise
+ */
+
+function Buy($userID, $symbol, $quantity, $mode)
+{
+       $proxy = GetProxy();
+    $input = new buy();
+       $input->symbol = $symbol;
+       $input->userID = $userID;
+       $input->quantity = $quantity;
+       $input->orderProcessingMode = $mode;
+    $response = $proxy->buy($input);
+       return $response;
+}
+
+/**
+ * Gets closed orders of current user
+ * @return collection of orders whose status is closed
+ */
+
+function GetClosedOrders()
+{
+       $proxy = GetProxy();
+       $input = new getClosedOrders();
+       $input->userID = GetUserFromCookie();
+       if($input->userID)
+       {
+               $response = $proxy->getClosedOrders($input);
+               $getClosedOrdersReturn = $response->getClosedOrdersReturn;
+       }
+       return $getClosedOrdersReturn;
+}
+
+/**
+ * Gets closed orders of current user if there are any. Then prints it
+ */
+
+function checkForClosedOrders()
+{
+       $proxy = GetProxy();
+       $input = new getClosedOrders();
+       $input->userID = GetUserFromCookie();
+       if($input->userID)
+       {
+               $response = $proxy->getClosedOrders($input);
+               $getClosedOrdersReturn = $response->getClosedOrdersReturn;
+
+               $index = 0;
+               while ($getClosedOrdersReturn->OrderDataBean[$index])
+               {
+                       print("THIS IS THE ID OF THE JUST CLOSED ORDER:");
+                       
print($getClosedOrdersReturn->OrderDataBean[$index]->orderID);
+                       print("\n");
+                       $index ++;
+               }
+       }
+}
+
+?>


Reply via email to