function ws_isResourceAvailable($itemId, $qty) { session_start(); $userId = $_SESSION["userid"]; $item = db_getItem($itemId); $result = true; if ($item->type == "PACKAGE") { $packageItems = db_getPackageItem($item->id); foreach ($packageItems as $packageItem) { $item = db_getItem($id); if (!ws_isResourceAvailable($item->id, $packageItem->quantity * $qty)) { return false; } } } else { $timeZoneId = db_getUserTimeZone($userId)->data; $item = db_getItem($itemId); $creditType = ws_getCreditTypeById($item->referenceid); $course = db_getCourseById($creditType->courseId); $policy = ws_getPolicyById($creditType->policyId, $timeZoneId); $dates = ws_getItemStartAndEndDates($policy, $timeZoneId); $startDate = $dates['startDate']; $endDate = $dates['endDate']; $quota = $policy->quotaInPeriod * $qty; try { $params = array('course' => $course->fullname, 'resourceType' => $creditType->resource, 'start' => $startDate, 'end' => $endDate, 'quota' => $quota); $client = new SoapClient(WSDL_VL, array('location' => LOCATION_VL)); $response = $client->isResourceAvailable($params); $result = $response->success; } catch (Exception $e) { $result = false; } catch (SoapFault $soapfault) { $result = false; } } return $result; }
} } } } } $items = explode(',', $newcart); $newcart = ''; $contents = array(); foreach ($items as $item) { $contents[$item] = isset($contents[$item]) ? $contents[$item] + 1 : 1; } $formattedShopCartItems = array(); $result = array(); foreach ($contents as $i => $qty) { $id = substr($i, 2); if (ws_isResourceAvailable($id, $qty)) { $item = refactored_db_getItem($id); $prefix = "i-"; if ($item['type'] == "PACKAGE") { $prefix = "p-"; } for ($i = 0; $i < $qty; $i++) { if ($newcart) { $newcart .= ',' . $prefix . $id; } else { $newcart = $prefix . $id; } } } } $_SESSION[$user . 'cart'] = $newcart;